YingxuHe commited on
Commit
149d7b6
·
0 Parent(s):

Initial release

Browse files
.gitattributes ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ assets/meralion_hf_comparison.png filter=lfs diff=lfs merge=lfs -text
37
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
38
+ assets/samples/1_cantonese.wav filter=lfs diff=lfs merge=lfs -text
39
+ assets/samples/2_hokkien.wav filter=lfs diff=lfs merge=lfs -text
40
+ assets/samples/3_codeswitch_tamil.wav filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,409 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ pipeline_tag: automatic-speech-recognition
3
+ library_name: transformers
4
+ tags:
5
+ - meralion3
6
+ - meralion
7
+ - audio
8
+ - asr
9
+ - southeast-asian
10
+ - code-switching
11
+ language:
12
+ - en
13
+ - zh
14
+ - ms
15
+ - ta
16
+ - id
17
+ - th
18
+ - vi
19
+ - yue
20
+ - nan
21
+ arxiv:
22
+ - 2412.09818
23
+ - 2501.01034
24
+ - 2409.06635
25
+ ---
26
+
27
+ # MERaLiON-3-ASR
28
+
29
+ **MERaLiON-3-ASR** is the speech-recognition line in the MERaLiON-3 generation of Speech-Text Large Language Models, developed by I2R, A\*STAR, Singapore. It is purpose-built for Singapore- and Southeast-Asia-centric ASR, with broad coverage across regional languages, dialects, and natural conversational code-switching.
30
+
31
+ **Coverage**
32
+
33
+ - **Languages:** English (Global and Singapore), Mandarin, Malay, Tamil, Indonesian, Thai, Vietnamese
34
+ - **Chinese dialects:** Cantonese, Hokkien
35
+ - **Code-switching:** natural conversational English ↔ {Mandarin, Malay, Tamil, Vietnamese, Cantonese, Hokkien} mixtures, including Singlish
36
+
37
+ ## MERaLiON-3-ASR-API
38
+
39
+ **MERaLiON-3-ASR-API** is the hosted production endpoint, tuned for real-time and enterprise transcription workloads.
40
+
41
+ - **Fast streaming ASR**, ~600 ms first-token latency for interactive use cases.
42
+ - **Long-form decoding** for continuous audio up to multiple hours.
43
+ - **Word- and segment-level timestamps** with **speaker diarization** for offline transcription.
44
+ - **Reinforced regional-dialect recognition** for Cantonese and Hokkien.
45
+ - **State-of-the-art Southeast Asian code-switching** performance.
46
+
47
+ On the locked evaluation suite, MERaLiON-3-ASR-API achieves the lowest mean Word Error Rate among all systems tested on English (Singapore) (12.52, vs. 25.97 / 27.34 for Gemini 3.5 Flash / GPT-4o), Cantonese (10.42, best of all systems), Hokkien (36.43, vs. 46.50 next best), and Code-switching (20.87, vs. 22.65 / 31.14). On Healthcare it is statistically tied with Gemini 3.5 Flash (20.47 vs. 20.04, within 0.5 pp).
48
+
49
+ ## MERaLiON-3-3B-ASR
50
+
51
+ **MERaLiON-3-3B-ASR** is the open-weights release published in this repository. At roughly one-third the size of its predecessor MERaLiON-2-10B-ASR, it matches or improves over the larger model on every evaluation section, with the largest gains concentrated where they matter most for the Southeast Asian setting:
52
+
53
+ | Section | MERaLiON-2-10B-ASR | MERaLiON-3-3B-ASR | Δ (pp) |
54
+ |---|---:|---:|---:|
55
+ | Thai | 35.07 | **7.55** | **−27.5** |
56
+ | Hokkien | 59.32 | **46.50** | **−12.8** |
57
+ | Cantonese | 18.55 | **11.27** | **−7.3** |
58
+ | Code-switching | 26.24 | **22.65** | **−3.6** |
59
+ | Tamil | 28.29 | **25.83** | **−2.5** |
60
+
61
+ The smaller footprint makes the open model practical for self-hosting on a single 80 GB GPU.
62
+
63
+ ## Performance
64
+
65
+ ![ASR WER comparison across 12 language and domain sections](assets/meralion_hf_comparison.png)
66
+
67
+ The figure reports mean Word Error Rate (lower is better) across twelve language and domain sections, covering 66 evaluation datasets in total. Datasets in the Healthcare and Code-switching sections also appear in their primary language section, so they contribute to both. The full per-dataset breakdown is at [SEA-SpeechBench](https://github.com/SEA-SpeechBench/SEA-SpeechBench).
68
+
69
+ The table below reports per-dataset Word/Character Error Rate (lower is better) for Cantonese and Hokkien — the two regional Chinese dialects where MERaLiON-3 shows its largest relative advantage. The best result on each row is highlighted.
70
+
71
+ <div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;max-width:1000px;margin:0 auto;padding:16px 0">
72
+ <table style="width:100%;border-collapse:collapse;font-size:13px">
73
+ <thead><tr>
74
+ <th style="padding:10px 7px;text-align:left;font-weight:600;border-bottom:2px solid #1e6f8b;color:#1e6f8b"></th><th style="padding:10px 7px;text-align:center;font-weight:500;border-bottom:2px solid #1e6f8b;color:#1e6f8b;font-size:14px">MERaLiON-3-ASR-API</th><th style="padding:10px 7px;text-align:center;font-weight:500;border-bottom:2px solid #1e6f8b;color:#1e6f8b;font-size:14px">MERaLiON-3-3B-ASR</th><th style="padding:10px 7px;text-align:center;font-weight:500;border-bottom:2px solid #1e6f8b;color:#1e6f8b;font-size:14px">MERaLiON-2-10B-ASR</th><th style="padding:10px 7px;text-align:center;font-weight:500;border-bottom:2px solid #1e6f8b;color:#1e6f8b;font-size:14px">Qwen3-ASR</th><th style="padding:10px 7px;text-align:center;font-weight:500;border-bottom:2px solid #1e6f8b;color:#1e6f8b;font-size:14px">gpt-4o</th><th style="padding:10px 7px;text-align:center;font-weight:500;border-bottom:2px solid #1e6f8b;color:#1e6f8b;font-size:14px">gpt-audio-1.5</th><th style="padding:10px 7px;text-align:center;font-weight:500;border-bottom:2px solid #1e6f8b;color:#1e6f8b;font-size:14px">gemini-3.5-flash</th></tr></thead>
75
+ <tbody>
76
+ <tr><td colspan="8" style="padding:8px 12px;font-weight:600;color:#1e6f8b;border-bottom:1px solid rgba(30, 111, 139, 0.2);background:rgba(30, 111, 139, 0.10)">Cantonese</td></tr>
77
+ <tr>
78
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">cv21_cantonese_test</td>
79
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">11.65</td>
80
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">13.88</td>
81
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">18.29</td>
82
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">25.08</td>
83
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#1e6f8b;font-weight:700">8.74</td>
84
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">21.96</td>
85
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">20.34</td>
86
+ </tr>
87
+ <tr>
88
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">fleurs_cantonese_test</td>
89
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">8.75</td>
90
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">8.93</td>
91
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">10.53</td>
92
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">11.30</td>
93
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#1e6f8b;font-weight:700">6.31</td>
94
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">7.55</td>
95
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">9.63</td>
96
+ </tr>
97
+ <tr>
98
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">mdcc_cantonese_test</td>
99
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#1e6f8b;font-weight:700">4.95</td>
100
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">5.11</td>
101
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">6.95</td>
102
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">8.67</td>
103
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">7.56</td>
104
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">18.51</td>
105
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">11.27</td>
106
+ </tr>
107
+ <tr>
108
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">wsyue_long_test</td>
109
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#1e6f8b;font-weight:700">9.37</td>
110
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">9.76</td>
111
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">18.17</td>
112
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">11.66</td>
113
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">25.16</td>
114
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">29.59</td>
115
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">14.66</td>
116
+ </tr>
117
+ <tr>
118
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">wsyue_short_test</td>
119
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#1e6f8b;font-weight:700">11.19</td>
120
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">12.56</td>
121
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">24.55</td>
122
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">17.77</td>
123
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">18.23</td>
124
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">33.99</td>
125
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">31.01</td>
126
+ </tr>
127
+ <tr>
128
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">ytb_asr_cantonese_short_v3</td>
129
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#1e6f8b;font-weight:700">16.63</td>
130
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">17.38</td>
131
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">32.83</td>
132
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">16.92</td>
133
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">35.48</td>
134
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">38.66</td>
135
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">19.87</td>
136
+ </tr>
137
+ <tr><td colspan="8" style="padding:8px 12px;font-weight:600;color:#1e6f8b;border-bottom:1px solid rgba(30, 111, 139, 0.2);background:rgba(30, 111, 139, 0.10)">Hokkien</td></tr>
138
+ <tr>
139
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">sarahwei_minnan_test</td>
140
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#1e6f8b;font-weight:700">18.93</td>
141
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">22.58</td>
142
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">49.47</td>
143
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">66.17</td>
144
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">44.93</td>
145
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">77.26</td>
146
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">46.38</td>
147
+ </tr>
148
+ <tr>
149
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">taiwan_tongues_hokkien_test</td>
150
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#1e6f8b;font-weight:700">51.64</td>
151
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">58.64</td>
152
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">63.90</td>
153
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">99.05</td>
154
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">66.41</td>
155
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">109.41</td>
156
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">73.40</td>
157
+ </tr>
158
+ <tr>
159
+ <td style="padding:7px 7px;padding-left:20px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">ytb_asr_hokkien_happycanalready_s4</td>
160
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#1e6f8b;font-weight:700">38.72</td>
161
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">58.30</td>
162
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">64.58</td>
163
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">128.21</td>
164
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">78.89</td>
165
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">68.55</td>
166
+ <td style="padding:7px 7px;text-align:center;border-bottom:1px solid rgba(128, 128, 128, 0.15)">63.37</td>
167
+ </tr>
168
+ </tbody>
169
+ </table>
170
+ </div>
171
+
172
+ ### Qualitative examples
173
+
174
+ The four clips below illustrate cases where MERaLiON-3-ASR-API produces the most accurate transcript, MERaLiON-3-3B-ASR a near-equivalent transcript with one or two character-level differences, and a leading general-purpose model produces a substantially less faithful transcript.
175
+
176
+ <div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;max-width:1000px;margin:0 auto;padding:16px 0">
177
+ <h4 style="margin:18px 0 6px 0;color:#1e6f8b">Cantonese (with code-switching to English)</h4>
178
+ <audio controls preload="none" src="https://huggingface.co/MERaLiON/MERaLiON-3-3B-ASR/resolve/main/assets/samples/1_cantonese.wav" style="width:100%;max-width:520px"></audio>
179
+ <table style="width:100%;border-collapse:collapse;font-size:13px;margin:6px 0 4px 0">
180
+ <tbody>
181
+ <tr>
182
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#444;font-weight:600;width:170px;white-space:nowrap;vertical-align:top">Reference</td>
183
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">嚟我公司,In-house PR Director,有冇兴趣? 哇,你问得咁直接,我唔怕直接答啊。</td>
184
+ </tr>
185
+ <tr>
186
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#1e6f8b;;width:170px;white-space:nowrap;vertical-align:top">MERaLiON-3-ASR-API</td>
187
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">嚟我公司,in-house PR director,有冇兴趣?你问得咁直接,我又唔怕直接答啊。</td>
188
+ </tr>
189
+ <tr>
190
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#444;;width:170px;white-space:nowrap;vertical-align:top">MERaLiON-3-3B-ASR</td>
191
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">嚟我公司 in house p r director 有冇兴趣你问得咁直接我用唔怕直接答啊。</td>
192
+ </tr>
193
+ <tr>
194
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#888;;width:170px;white-space:nowrap;vertical-align:top">gemini-3.5-flash</td>
195
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">你間公司 In-house PR director 係咪呀?你問得咁直接,我好難直接答呀。</td>
196
+ </tr>
197
+ </tbody></table>
198
+ <h4 style="margin:18px 0 6px 0;color:#1e6f8b">Hokkien (with code-switching to English)</h4>
199
+ <audio controls preload="none" src="https://huggingface.co/MERaLiON/MERaLiON-3-3B-ASR/resolve/main/assets/samples/2_hokkien.wav" style="width:100%;max-width:520px"></audio>
200
+ <table style="width:100%;border-collapse:collapse;font-size:13px;margin:6px 0 4px 0">
201
+ <tbody>
202
+ <tr>
203
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#444;font-weight:600;width:170px;white-space:nowrap;vertical-align:top">Reference</td>
204
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">我……我……我新来的 recruit 啦!按怎无戴 helmet? 我……我袂使戴!我一戴,人就认袂出是我了!哈哈哈!我是……我是 recruit 梁婆婆!哈哈哈!人夯 full pack,按怎汝无 full pack? 有啊!我这个就是 full pack 啦!哈哈哈!</td>
205
+ </tr>
206
+ <tr>
207
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#1e6f8b;;width:170px;white-space:nowrap;vertical-align:top">MERaLiON-3-ASR-API</td>
208
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">我啊,我是来 recruit 啊!安怎无带 helmet?我未使带,我一个带人欲啉袂出是我了!哈哈哈!我是、我是 recruit,梁某无!哈哈哈!人提 full pack,安怎汝无 full pack?我有啊!我即个就是 full pack 啊!哈哈哈!</td>
209
+ </tr>
210
+ <tr>
211
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#444;;width:170px;white-space:nowrap;vertical-align:top">MERaLiON-3-3B-ASR</td>
212
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">我是哪的 recruit 啊按怎没有 helmet 我是 recruit 咩有 full pack 按怎你没有 full pack 我有啊我今天就是 full pack。</td>
213
+ </tr>
214
+ <tr>
215
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#888;;width:170px;white-space:nowrap;vertical-align:top">gemini-3.5-flash</td>
216
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">Oh my god, 我是那一個 record。安仔,無 feedback 係點呀?Oh my god, 乜嘢 feedback 呀?我係,我係 record 嗰個。人哋有 feedback,你點解無 feedback 呀?Oh my god, 我呢個就係 feedback。</td>
217
+ </tr>
218
+ </tbody></table>
219
+ <h4 style="margin:18px 0 6px 0;color:#1e6f8b">Code-switching (Tamil + English)</h4>
220
+ <audio controls preload="none" src="https://huggingface.co/MERaLiON/MERaLiON-3-3B-ASR/resolve/main/assets/samples/3_codeswitch_tamil.wav" style="width:100%;max-width:520px"></audio>
221
+ <table style="width:100%;border-collapse:collapse;font-size:13px;margin:6px 0 4px 0">
222
+ <tbody>
223
+ <tr>
224
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#444;font-weight:600;width:170px;white-space:nowrap">Reference</td>
225
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">நாம்ம என்ன snacks வீட்ல சைரோ எல்லா snacks கூட குடுக்கலாம்</td>
226
+ </tr>
227
+ <tr>
228
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#1e6f8b;;width:170px;white-space:nowrap">MERaLiON-3-ASR-API</td>
229
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">நம்ம என்ன snacks வீட்ல சேரு எல்லா snacks கூட கொடுக்கலாம்.</td>
230
+ </tr>
231
+ <tr>
232
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#444;;width:170px;white-space:nowrap">MERaLiON-3-3B-ASR</td>
233
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">நம்ம என்ன snacks வீட்ல சேர்ற எல்லா snacks கூட குடுக்கலாம்.</td>
234
+ </tr>
235
+ <tr>
236
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#888;;width:170px;white-space:nowrap">gemini-3.5-flash</td>
237
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">நம்ம என்ன ஸ்நாக்ஸ் வீட்டுல செய்யற எல்லா ஸ்நாக்ஸ் கூட கொடுக்கலாம்</td>
238
+ </tr>
239
+ </tbody></table>
240
+ <h4 style="margin:18px 0 6px 0;color:#1e6f8b">Code-switching (English + Mandarin)</h4>
241
+ <audio controls preload="none" src="https://huggingface.co/MERaLiON/MERaLiON-3-3B-ASR/resolve/main/assets/samples/4_codeswitch_singlish.wav" style="width:100%;max-width:520px"></audio>
242
+ <table style="width:100%;border-collapse:collapse;font-size:13px;margin:6px 0 4px 0">
243
+ <tbody>
244
+ <tr>
245
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#444;font-weight:600;width:170px;white-space:nowrap">Reference</td>
246
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">there's like two quarters 嘛 then 他 会 教</td>
247
+ </tr>
248
+ <tr>
249
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#1e6f8b;;width:170px;white-space:nowrap">MERaLiON-3-ASR-API</td>
250
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">there's like two quarters (mah) then 他会教。</td>
251
+ </tr>
252
+ <tr>
253
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#444;;width:170px;white-space:nowrap">MERaLiON-3-3B-ASR</td>
254
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">there's like two quarters (mah) then 他会叫。</td>
255
+ </tr>
256
+ <tr>
257
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);color:#888;;width:170px;white-space:nowrap">gemini-3.5-flash</td>
258
+ <td style="padding:4px 10px;border-bottom:1px solid rgba(128, 128, 128, 0.15);font-family:monospace">that's like two quarters then how would you</td>
259
+ </tr>
260
+ </tbody></table>
261
+ </div>
262
+
263
+ ## A note on the code-switching benchmark
264
+
265
+ The code-switching section aggregates 13 datasets of natural Southeast Asian conversational speech, totalling 5,430 samples / 35.4 hours, in which English is mixed organically with another SEA language. Coverage by direction:
266
+
267
+ | Code-switch direction | Samples | Hours |
268
+ |---|---:|---:|
269
+ | EN ↔ Mandarin (incl. SEAME) | 506 | 5.3 |
270
+ | IMDA Part 4 (Singlish, EN ↔ Mandarin) | 1,000 | 7.3 |
271
+ | EN ↔ Tamil | 2,184 | 9.0 |
272
+ | EN ↔ Cantonese | 904 | 6.2 |
273
+ | EN ↔ Hokkien | 536 | 3.7 |
274
+ | EN ↔ Malay | 200 | 2.6 |
275
+ | EN ↔ Vietnamese | 100 | 1.3 |
276
+
277
+ The benchmark is intended to capture real-world SEA usage patterns rather than synthetic alternation between scripts. Of the constituent corpora, only [IMDA Part 4 (NSC)](https://www.imda.gov.sg/how-we-can-help/national-speech-corpus) is publicly available; the remaining datasets are proprietary or curated in-house. Per-sample normalisation and scoring scripts for the whole evaluation are available at [SEA-SpeechBench](https://github.com/SEA-SpeechBench/SEA-SpeechBench).
278
+
279
+ ## Model Description
280
+
281
+ | Property | Value |
282
+ |----------|-------|
283
+ | Audio format | Mono, 16,000 Hz |
284
+ | Parameters | 3 B |
285
+ | Precision | BF16 |
286
+ | Supported languages | English (Global + Singapore), Mandarin, Malay, Tamil, Indonesian, Thai, Vietnamese, Cantonese, Hokkien |
287
+ | Supported backend | vLLM |
288
+
289
+ The model is trained as an ASR-optimised fine-tune over a multilingual mixture of curated Southeast Asian speech data, with particular emphasis on Singapore English, regional dialects (Cantonese, Hokkien), and natural English-X code-switching.
290
+
291
+ ## How to Use
292
+
293
+ The recommended way to run MERaLiON-3-3B-ASR is through the [`meralion-3-asr`](https://github.com/YingxuH/MERaLiON-3-ASR) Python package, which wraps a vLLM backend tuned for this model. Install directly from source:
294
+
295
+ ```bash
296
+ pip install "meralion-3-asr[vllm] @ git+https://github.com/YingxuH/MERaLiON-3-ASR.git"
297
+ ```
298
+
299
+ The package pre-wires the transcription prompt, decoding configuration, no-repeat-ngram guard, and 30 s audio chunking — on both the offline path and the served path. Callers only provide audio.
300
+
301
+ ### 1. Offline batch (in-process vLLM)
302
+
303
+ ```python
304
+ from meralion_3_asr import Meralion3ASR
305
+
306
+ model = Meralion3ASR.from_pretrained("MERaLiON/MERaLiON-3-3B-ASR", backend="vllm")
307
+
308
+ text = model.transcribe("audio.wav") # str
309
+ texts = model.transcribe_batch(["a.wav", "b.wav", "c.wav"]) # List[str]
310
+ ```
311
+
312
+ Inputs may be local file paths, `https://` URLs, base64 data URLs, or `(numpy_array, sample_rate)` tuples. Audio is automatically resampled to mono 16 kHz; long files are chunked transparently.
313
+
314
+ ### 2. Serving via the bundled sidecar
315
+
316
+ `meralion-3-asr serve` starts a FastAPI sidecar fronting an internal `vllm serve` process. The sidecar exposes a single OpenAI-compatible endpoint, `/v1/audio/transcriptions`, applies 30 s non-overlapping chunking server-side, and forwards each chunk to the internal vLLM. Clients send audio only — no prompt, no decoding flags.
317
+
318
+ ```bash
319
+ meralion-3-asr serve --model MERaLiON/MERaLiON-3-3B-ASR --port 8000
320
+ ```
321
+
322
+ OpenAI Python SDK:
323
+
324
+ ```python
325
+ from openai import OpenAI
326
+
327
+ client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
328
+
329
+ with open("audio.wav", "rb") as f:
330
+ resp = client.audio.transcriptions.create(
331
+ model="MERaLiON/MERaLiON-3-3B-ASR",
332
+ file=f,
333
+ )
334
+ print(resp.text)
335
+ ```
336
+
337
+ curl:
338
+
339
+ ```bash
340
+ curl -s -X POST http://localhost:8000/v1/audio/transcriptions \
341
+ -F "model=MERaLiON/MERaLiON-3-3B-ASR" \
342
+ -F "file=@audio.wav" \
343
+ | jq -r .text
344
+ ```
345
+
346
+ A `transformers` backend is also available for debugging and small-scale use, but is currently considered experimental — the vLLM backend is the only fully supported and benchmarked path.
347
+
348
+ ## Hardware & Infrastructure
349
+
350
+ MERaLiON-3 was trained on the **ASPIRE 2A+** supercomputer cluster at the National Supercomputing Centre (NSCC), Singapore, hosted by A\*STAR I2R:
351
+
352
+ - **GPUs**: 128 Nvidia H100 GPUs (16 nodes × 8 H100)
353
+ - **Memory**: 2 TB RAM per node
354
+ - **Storage**: 30 TB NVMe per node + 2.5 PB SSD-based Lustre filesystem
355
+ - **Interconnect**: 400 Gb/s NDR InfiniBand (full fat-tree topology)
356
+
357
+ ## Related Resources
358
+
359
+ - [meralion-3-asr Python package (GitHub)](https://github.com/YingxuH/MERaLiON-3-ASR)
360
+ - [SEA-SpeechBench evaluation harness](https://github.com/SEA-SpeechBench/SEA-SpeechBench)
361
+ - Related models:
362
+ - [MERaLiON-2-10B-ASR](https://huggingface.co/MERaLiON/MERaLiON-2-10B-ASR)
363
+ - [MERaLiON-2-3B](https://huggingface.co/MERaLiON/MERaLiON-2-3B)
364
+ - [MERaLiON-2-10B](https://huggingface.co/MERaLiON/MERaLiON-2-10B)
365
+
366
+ ## License
367
+
368
+ License: TBD.
369
+
370
+ ## Disclaimer
371
+
372
+ ⚠️ MERaLiON-3-3B-ASR has not been specifically aligned for safety and may transcribe content that is inappropriate, offensive, or harmful. Developers and users are responsible for performing their own safety fine-tuning and implementing necessary security measures. The authors shall not be held liable for any claims, damages, or other liabilities arising from the use of the released models, weights, or code.
373
+
374
+ ## Citation
375
+
376
+ If you use MERaLiON-3-3B-ASR in your work, please cite the foundational MERaLiON references:
377
+
378
+ ```bibtex
379
+ @misc{he2024meralionaudiollmtechnicalreport,
380
+ title={MERaLiON-AudioLLM: Bridging Audio and Language with Large Language Models},
381
+ author={{MERaLiON Team}},
382
+ year={2024},
383
+ eprint={2412.09818},
384
+ archivePrefix={arXiv},
385
+ primaryClass={cs.CL},
386
+ url={https://arxiv.org/abs/2412.09818},
387
+ }
388
+
389
+ @article{wang2024audiobench,
390
+ title={AudioBench: A Universal Benchmark for Audio Large Language Models},
391
+ author={Wang, Bin and Zou, Xunlong and Lin, Geyu and Sun, Shuo and Liu, Zhuohan and Zhang, Wenyu and Liu, Zhengyuan and Aw, AiTi and Chen, Nancy F},
392
+ journal={NAACL},
393
+ year={2025}
394
+ }
395
+
396
+ @article{wang2025advancing,
397
+ title={Advancing Singlish Understanding: Bridging the Gap with Datasets and Multimodal Models},
398
+ author={Wang, Bin and Zou, Xunlong and Sun, Shuo and Zhang, Wenyu and He, Yingxu and Liu, Zhuohan and Wei, Chengwei and Chen, Nancy F and Aw, AiTi},
399
+ journal={arXiv preprint arXiv:2501.01034},
400
+ year={2025}
401
+ }
402
+
403
+ @article{zhang2024mowe,
404
+ title={MoWE-Audio: Multitask AudioLLMs with Mixture of Weak Encoders},
405
+ author={Zhang, Wenyu and Sun, Shuo and Wang, Bin and Zou, Xunlong and Liu, Zhuohan and He, Yingxu and Lin, Geyu and Chen, Nancy F and Aw, Ai Ti},
406
+ journal={ICASSP},
407
+ year={2025}
408
+ }
409
+ ```
assets/meralion_hf_comparison.png ADDED

Git LFS Details

  • SHA256: e325a3f87f7b20c4e77295fbb45178e58b81ce0ea9cfb445db3b25714356b23c
  • Pointer size: 131 Bytes
  • Size of remote file: 505 kB
assets/samples/1_cantonese.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4165f9fcd06802ca0865c33e815161f2a28d45b7bcd93a53f5a5bfaa656f9f58
3
+ size 288044
assets/samples/2_hokkien.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a683835a420a13467165d8b8e818bb0fce0ae2d6f5f31e1ef520ed0df49f3479
3
+ size 566444
assets/samples/3_codeswitch_tamil.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9c419ea7957fe3e7d73ce41cfac00c530049b52fbc39f5db7b6efc48ee89ae09
3
+ size 115596
assets/samples/4_codeswitch_singlish.wav ADDED
Binary file (78.4 kB). View file
 
config.json ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "MERaLiON3ForConditionalGeneration"
4
+ ],
5
+ "auto_map": {
6
+ "AutoConfig": "configuration_meralion3.MERaLiON3Config",
7
+ "AutoModelForSpeechSeq2Seq": "modeling_meralion3.MERaLiON3ForConditionalGeneration"
8
+ },
9
+ "fixed_speech_embeds_length": 300,
10
+ "head_dim": 256,
11
+ "hidden_size": 2304,
12
+ "intermediate_size": 9216,
13
+ "model_type": "meralion3",
14
+ "num_attention_heads": 8,
15
+ "num_hidden_layers": 26,
16
+ "num_key_value_heads": 4,
17
+ "sliding_window": 4096,
18
+ "speech_config": {
19
+ "_attn_implementation_autoset": true,
20
+ "_name_or_path": "/data/projects/13003558/sunshuo/models/meralion_whisper_v3_normed_cleaned",
21
+ "activation_dropout": 0.0,
22
+ "activation_function": "gelu",
23
+ "apply_spec_augment": true,
24
+ "architectures": [
25
+ "WhisperForConditionalGeneration"
26
+ ],
27
+ "attention_dropout": 0.0,
28
+ "begin_suppress_tokens": null,
29
+ "bos_token_id": 50257,
30
+ "classifier_proj_size": 256,
31
+ "d_model": 1280,
32
+ "decoder_attention_heads": 20,
33
+ "decoder_ffn_dim": 5120,
34
+ "decoder_layerdrop": 0.0,
35
+ "decoder_layers": 32,
36
+ "decoder_start_token_id": 50258,
37
+ "dropout": 0.0,
38
+ "encoder_attention_heads": 20,
39
+ "encoder_ffn_dim": 5120,
40
+ "encoder_layerdrop": 0.0,
41
+ "encoder_layers": 32,
42
+ "eos_token_id": 50257,
43
+ "init_std": 0.02,
44
+ "mask_feature_length": 10,
45
+ "mask_feature_min_masks": 0,
46
+ "mask_feature_prob": 0.1,
47
+ "mask_time_length": 20,
48
+ "mask_time_min_masks": 2,
49
+ "mask_time_prob": 0.1,
50
+ "max_length": null,
51
+ "max_source_positions": 1500,
52
+ "max_target_positions": 448,
53
+ "median_filter_width": 7,
54
+ "model_type": "whisper",
55
+ "num_hidden_layers": 32,
56
+ "num_mel_bins": 128,
57
+ "scale_embedding": false,
58
+ "torch_dtype": "bfloat16",
59
+ "use_cache": true,
60
+ "use_weighted_layer_sum": false,
61
+ "vocab_size": 51866
62
+ },
63
+ "speech_mlp_scale_factor": 5,
64
+ "speech_mlp_use_projection": false,
65
+ "speech_token_index": 255999,
66
+ "text_config": {
67
+ "_attn_implementation_autoset": true,
68
+ "_name_or_path": "google/gemma-2-2b-it",
69
+ "architectures": [
70
+ "Gemma2ForCausalLM"
71
+ ],
72
+ "attention_bias": false,
73
+ "attention_dropout": 0.0,
74
+ "attn_logit_softcapping": 50.0,
75
+ "cache_implementation": "hybrid",
76
+ "final_logit_softcapping": 30.0,
77
+ "head_dim": 256,
78
+ "hidden_act": "gelu_pytorch_tanh",
79
+ "hidden_activation": "gelu_pytorch_tanh",
80
+ "hidden_size": 2304,
81
+ "initializer_range": 0.02,
82
+ "intermediate_size": 9216,
83
+ "max_position_embeddings": 8192,
84
+ "model_type": "gemma2",
85
+ "num_attention_heads": 8,
86
+ "num_hidden_layers": 26,
87
+ "num_key_value_heads": 4,
88
+ "query_pre_attn_scalar": 256,
89
+ "rms_norm_eps": 1e-06,
90
+ "rope_theta": 10000.0,
91
+ "sliding_window": 4096,
92
+ "torch_dtype": "bfloat16",
93
+ "use_cache": true,
94
+ "vocab_size": 256000
95
+ },
96
+ "torch_dtype": "bfloat16",
97
+ "transformers_version": "4.50.1"
98
+ }
configuration_meralion3.py ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """MERaLiON3 model configuration"""
2
+
3
+ from transformers import Gemma2Config, WhisperConfig
4
+ from transformers.configuration_utils import PretrainedConfig
5
+ from transformers.utils import logging
6
+
7
+
8
+ logger = logging.get_logger(__name__)
9
+
10
+
11
+ class MERaLiON3Config(PretrainedConfig):
12
+ r"""
13
+ This is the configuration class to store the configuration of a [`MERaLiON3ForConditionalGeneration`]. It is used to instantiate an
14
+ MERaLiON3 model according to the specified arguments, defining the model architecture. Instantiating a configuration
15
+ with the defaults will yield a similar configuration to that of the MERaLiON3.
16
+
17
+ Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the
18
+ documentation from [`PretrainedConfig`] for more information.
19
+
20
+ Args:
21
+ audio_config (`Union[AutoConfig, dict]`, *optional*, defaults to `CLIPVisionConfig`):
22
+ The config object or dictionary of the audio backbone.
23
+ text_config (`Union[AutoConfig, dict]`, *optional*, defaults to `LlamaConfig`):
24
+ The config object or dictionary of the text backbone.
25
+ audio_token_index (`int`, *optional*, defaults to 151646):
26
+ The image token index to encode the image prompt.
27
+ """
28
+
29
+ model_type = "meralion3"
30
+ is_composition = False
31
+
32
+ def __init__(
33
+ self,
34
+ speech_config=None,
35
+ text_config=None,
36
+ speech_mlp_use_projection=True,
37
+ speech_mlp_scale_factor=15,
38
+ speech_token_index=255999,
39
+ fixed_speech_embeds_length=100,
40
+ **kwargs,
41
+ ):
42
+
43
+ if isinstance(speech_config, dict):
44
+ speech_config = WhisperConfig(**speech_config)
45
+ elif speech_config is None:
46
+ speech_config = WhisperConfig(
47
+ d_model=1280,
48
+ encoder_attention_heads=20,
49
+ encoder_ffn_dim=5120,
50
+ encoder_layerdrop=0.0,
51
+ encoder_layers=32,
52
+ num_mel_bins=128,
53
+ max_source_positions=1500,
54
+ scale_embedding=False,
55
+ activation_function="gelu",
56
+ )
57
+
58
+ self.speech_config = speech_config
59
+
60
+ if isinstance(text_config, dict):
61
+ text_config = Gemma2Config(**text_config)
62
+ elif text_config is None:
63
+ text_config = Gemma2Config()
64
+
65
+ self.text_config = text_config
66
+
67
+ self.speech_mlp_use_projection = speech_mlp_use_projection
68
+ self.speech_mlp_scale_factor = speech_mlp_scale_factor
69
+ self.speech_token_index = speech_token_index
70
+ self.fixed_speech_embeds_length = fixed_speech_embeds_length
71
+
72
+ self.sliding_window = self.text_config.sliding_window
73
+ self.hidden_size = self.text_config.hidden_size
74
+ self.num_attention_heads = self.text_config.num_attention_heads
75
+ self.num_hidden_layers = self.text_config.num_hidden_layers
76
+ self.num_key_value_heads = self.text_config.num_key_value_heads
77
+ self.head_dim = self.text_config.head_dim
78
+ self.intermediate_size = self.text_config.intermediate_size
79
+
80
+ super().__init__(**kwargs)
generation_config.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_from_model_config": true,
3
+ "bos_token_id": 2,
4
+ "cache_implementation": "hybrid",
5
+ "eos_token_id": 1,
6
+ "no_repeat_ngram_size": 6,
7
+ "pad_token_id": 0,
8
+ "repetition_penalty": 1.05,
9
+ "transformers_version": "4.50.1"
10
+ }
model-00001-of-00002.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ea836de00d15a94685d9b69189d0073c9248aa264790634cda38d2cf9b26baac
3
+ size 4971858576
model-00002-of-00002.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0c1472c987cf7360c628c7da8881ff1aad6a7fa00d42de3d07424c0862b7804f
3
+ size 1642292496
model.safetensors.index.json ADDED
@@ -0,0 +1,788 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "metadata": {
3
+ "total_size": 6614055424
4
+ },
5
+ "weight_map": {
6
+ "ln_speech.bias": "model-00001-of-00002.safetensors",
7
+ "ln_speech.weight": "model-00001-of-00002.safetensors",
8
+ "speech_audio_adapter.mlp_adapter.0.bias": "model-00001-of-00002.safetensors",
9
+ "speech_audio_adapter.mlp_adapter.0.weight": "model-00001-of-00002.safetensors",
10
+ "speech_audio_adapter.out_proj.bias": "model-00001-of-00002.safetensors",
11
+ "speech_audio_adapter.out_proj.weight": "model-00001-of-00002.safetensors",
12
+ "speech_encoder.conv1.bias": "model-00001-of-00002.safetensors",
13
+ "speech_encoder.conv1.weight": "model-00001-of-00002.safetensors",
14
+ "speech_encoder.conv2.bias": "model-00001-of-00002.safetensors",
15
+ "speech_encoder.conv2.weight": "model-00001-of-00002.safetensors",
16
+ "speech_encoder.embed_positions.weight": "model-00001-of-00002.safetensors",
17
+ "speech_encoder.layer_norm.bias": "model-00001-of-00002.safetensors",
18
+ "speech_encoder.layer_norm.weight": "model-00001-of-00002.safetensors",
19
+ "speech_encoder.layers.0.fc1.bias": "model-00001-of-00002.safetensors",
20
+ "speech_encoder.layers.0.fc1.weight": "model-00001-of-00002.safetensors",
21
+ "speech_encoder.layers.0.fc2.bias": "model-00001-of-00002.safetensors",
22
+ "speech_encoder.layers.0.fc2.weight": "model-00001-of-00002.safetensors",
23
+ "speech_encoder.layers.0.final_layer_norm.bias": "model-00001-of-00002.safetensors",
24
+ "speech_encoder.layers.0.final_layer_norm.weight": "model-00001-of-00002.safetensors",
25
+ "speech_encoder.layers.0.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
26
+ "speech_encoder.layers.0.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
27
+ "speech_encoder.layers.0.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
28
+ "speech_encoder.layers.0.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
29
+ "speech_encoder.layers.0.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
30
+ "speech_encoder.layers.0.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
31
+ "speech_encoder.layers.0.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
32
+ "speech_encoder.layers.0.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
33
+ "speech_encoder.layers.0.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
34
+ "speech_encoder.layers.1.fc1.bias": "model-00001-of-00002.safetensors",
35
+ "speech_encoder.layers.1.fc1.weight": "model-00001-of-00002.safetensors",
36
+ "speech_encoder.layers.1.fc2.bias": "model-00001-of-00002.safetensors",
37
+ "speech_encoder.layers.1.fc2.weight": "model-00001-of-00002.safetensors",
38
+ "speech_encoder.layers.1.final_layer_norm.bias": "model-00001-of-00002.safetensors",
39
+ "speech_encoder.layers.1.final_layer_norm.weight": "model-00001-of-00002.safetensors",
40
+ "speech_encoder.layers.1.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
41
+ "speech_encoder.layers.1.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
42
+ "speech_encoder.layers.1.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
43
+ "speech_encoder.layers.1.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
44
+ "speech_encoder.layers.1.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
45
+ "speech_encoder.layers.1.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
46
+ "speech_encoder.layers.1.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
47
+ "speech_encoder.layers.1.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
48
+ "speech_encoder.layers.1.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
49
+ "speech_encoder.layers.10.fc1.bias": "model-00001-of-00002.safetensors",
50
+ "speech_encoder.layers.10.fc1.weight": "model-00001-of-00002.safetensors",
51
+ "speech_encoder.layers.10.fc2.bias": "model-00001-of-00002.safetensors",
52
+ "speech_encoder.layers.10.fc2.weight": "model-00001-of-00002.safetensors",
53
+ "speech_encoder.layers.10.final_layer_norm.bias": "model-00001-of-00002.safetensors",
54
+ "speech_encoder.layers.10.final_layer_norm.weight": "model-00001-of-00002.safetensors",
55
+ "speech_encoder.layers.10.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
56
+ "speech_encoder.layers.10.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
57
+ "speech_encoder.layers.10.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
58
+ "speech_encoder.layers.10.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
59
+ "speech_encoder.layers.10.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
60
+ "speech_encoder.layers.10.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
61
+ "speech_encoder.layers.10.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
62
+ "speech_encoder.layers.10.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
63
+ "speech_encoder.layers.10.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
64
+ "speech_encoder.layers.11.fc1.bias": "model-00001-of-00002.safetensors",
65
+ "speech_encoder.layers.11.fc1.weight": "model-00001-of-00002.safetensors",
66
+ "speech_encoder.layers.11.fc2.bias": "model-00001-of-00002.safetensors",
67
+ "speech_encoder.layers.11.fc2.weight": "model-00001-of-00002.safetensors",
68
+ "speech_encoder.layers.11.final_layer_norm.bias": "model-00001-of-00002.safetensors",
69
+ "speech_encoder.layers.11.final_layer_norm.weight": "model-00001-of-00002.safetensors",
70
+ "speech_encoder.layers.11.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
71
+ "speech_encoder.layers.11.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
72
+ "speech_encoder.layers.11.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
73
+ "speech_encoder.layers.11.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
74
+ "speech_encoder.layers.11.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
75
+ "speech_encoder.layers.11.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
76
+ "speech_encoder.layers.11.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
77
+ "speech_encoder.layers.11.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
78
+ "speech_encoder.layers.11.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
79
+ "speech_encoder.layers.12.fc1.bias": "model-00001-of-00002.safetensors",
80
+ "speech_encoder.layers.12.fc1.weight": "model-00001-of-00002.safetensors",
81
+ "speech_encoder.layers.12.fc2.bias": "model-00001-of-00002.safetensors",
82
+ "speech_encoder.layers.12.fc2.weight": "model-00001-of-00002.safetensors",
83
+ "speech_encoder.layers.12.final_layer_norm.bias": "model-00001-of-00002.safetensors",
84
+ "speech_encoder.layers.12.final_layer_norm.weight": "model-00001-of-00002.safetensors",
85
+ "speech_encoder.layers.12.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
86
+ "speech_encoder.layers.12.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
87
+ "speech_encoder.layers.12.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
88
+ "speech_encoder.layers.12.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
89
+ "speech_encoder.layers.12.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
90
+ "speech_encoder.layers.12.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
91
+ "speech_encoder.layers.12.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
92
+ "speech_encoder.layers.12.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
93
+ "speech_encoder.layers.12.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
94
+ "speech_encoder.layers.13.fc1.bias": "model-00001-of-00002.safetensors",
95
+ "speech_encoder.layers.13.fc1.weight": "model-00001-of-00002.safetensors",
96
+ "speech_encoder.layers.13.fc2.bias": "model-00001-of-00002.safetensors",
97
+ "speech_encoder.layers.13.fc2.weight": "model-00001-of-00002.safetensors",
98
+ "speech_encoder.layers.13.final_layer_norm.bias": "model-00001-of-00002.safetensors",
99
+ "speech_encoder.layers.13.final_layer_norm.weight": "model-00001-of-00002.safetensors",
100
+ "speech_encoder.layers.13.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
101
+ "speech_encoder.layers.13.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
102
+ "speech_encoder.layers.13.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
103
+ "speech_encoder.layers.13.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
104
+ "speech_encoder.layers.13.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
105
+ "speech_encoder.layers.13.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
106
+ "speech_encoder.layers.13.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
107
+ "speech_encoder.layers.13.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
108
+ "speech_encoder.layers.13.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
109
+ "speech_encoder.layers.14.fc1.bias": "model-00001-of-00002.safetensors",
110
+ "speech_encoder.layers.14.fc1.weight": "model-00001-of-00002.safetensors",
111
+ "speech_encoder.layers.14.fc2.bias": "model-00001-of-00002.safetensors",
112
+ "speech_encoder.layers.14.fc2.weight": "model-00001-of-00002.safetensors",
113
+ "speech_encoder.layers.14.final_layer_norm.bias": "model-00001-of-00002.safetensors",
114
+ "speech_encoder.layers.14.final_layer_norm.weight": "model-00001-of-00002.safetensors",
115
+ "speech_encoder.layers.14.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
116
+ "speech_encoder.layers.14.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
117
+ "speech_encoder.layers.14.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
118
+ "speech_encoder.layers.14.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
119
+ "speech_encoder.layers.14.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
120
+ "speech_encoder.layers.14.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
121
+ "speech_encoder.layers.14.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
122
+ "speech_encoder.layers.14.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
123
+ "speech_encoder.layers.14.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
124
+ "speech_encoder.layers.15.fc1.bias": "model-00001-of-00002.safetensors",
125
+ "speech_encoder.layers.15.fc1.weight": "model-00001-of-00002.safetensors",
126
+ "speech_encoder.layers.15.fc2.bias": "model-00001-of-00002.safetensors",
127
+ "speech_encoder.layers.15.fc2.weight": "model-00001-of-00002.safetensors",
128
+ "speech_encoder.layers.15.final_layer_norm.bias": "model-00001-of-00002.safetensors",
129
+ "speech_encoder.layers.15.final_layer_norm.weight": "model-00001-of-00002.safetensors",
130
+ "speech_encoder.layers.15.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
131
+ "speech_encoder.layers.15.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
132
+ "speech_encoder.layers.15.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
133
+ "speech_encoder.layers.15.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
134
+ "speech_encoder.layers.15.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
135
+ "speech_encoder.layers.15.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
136
+ "speech_encoder.layers.15.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
137
+ "speech_encoder.layers.15.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
138
+ "speech_encoder.layers.15.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
139
+ "speech_encoder.layers.16.fc1.bias": "model-00001-of-00002.safetensors",
140
+ "speech_encoder.layers.16.fc1.weight": "model-00001-of-00002.safetensors",
141
+ "speech_encoder.layers.16.fc2.bias": "model-00001-of-00002.safetensors",
142
+ "speech_encoder.layers.16.fc2.weight": "model-00001-of-00002.safetensors",
143
+ "speech_encoder.layers.16.final_layer_norm.bias": "model-00001-of-00002.safetensors",
144
+ "speech_encoder.layers.16.final_layer_norm.weight": "model-00001-of-00002.safetensors",
145
+ "speech_encoder.layers.16.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
146
+ "speech_encoder.layers.16.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
147
+ "speech_encoder.layers.16.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
148
+ "speech_encoder.layers.16.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
149
+ "speech_encoder.layers.16.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
150
+ "speech_encoder.layers.16.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
151
+ "speech_encoder.layers.16.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
152
+ "speech_encoder.layers.16.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
153
+ "speech_encoder.layers.16.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
154
+ "speech_encoder.layers.17.fc1.bias": "model-00001-of-00002.safetensors",
155
+ "speech_encoder.layers.17.fc1.weight": "model-00001-of-00002.safetensors",
156
+ "speech_encoder.layers.17.fc2.bias": "model-00001-of-00002.safetensors",
157
+ "speech_encoder.layers.17.fc2.weight": "model-00001-of-00002.safetensors",
158
+ "speech_encoder.layers.17.final_layer_norm.bias": "model-00001-of-00002.safetensors",
159
+ "speech_encoder.layers.17.final_layer_norm.weight": "model-00001-of-00002.safetensors",
160
+ "speech_encoder.layers.17.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
161
+ "speech_encoder.layers.17.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
162
+ "speech_encoder.layers.17.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
163
+ "speech_encoder.layers.17.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
164
+ "speech_encoder.layers.17.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
165
+ "speech_encoder.layers.17.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
166
+ "speech_encoder.layers.17.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
167
+ "speech_encoder.layers.17.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
168
+ "speech_encoder.layers.17.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
169
+ "speech_encoder.layers.18.fc1.bias": "model-00001-of-00002.safetensors",
170
+ "speech_encoder.layers.18.fc1.weight": "model-00001-of-00002.safetensors",
171
+ "speech_encoder.layers.18.fc2.bias": "model-00001-of-00002.safetensors",
172
+ "speech_encoder.layers.18.fc2.weight": "model-00001-of-00002.safetensors",
173
+ "speech_encoder.layers.18.final_layer_norm.bias": "model-00001-of-00002.safetensors",
174
+ "speech_encoder.layers.18.final_layer_norm.weight": "model-00001-of-00002.safetensors",
175
+ "speech_encoder.layers.18.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
176
+ "speech_encoder.layers.18.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
177
+ "speech_encoder.layers.18.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
178
+ "speech_encoder.layers.18.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
179
+ "speech_encoder.layers.18.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
180
+ "speech_encoder.layers.18.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
181
+ "speech_encoder.layers.18.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
182
+ "speech_encoder.layers.18.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
183
+ "speech_encoder.layers.18.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
184
+ "speech_encoder.layers.19.fc1.bias": "model-00001-of-00002.safetensors",
185
+ "speech_encoder.layers.19.fc1.weight": "model-00001-of-00002.safetensors",
186
+ "speech_encoder.layers.19.fc2.bias": "model-00001-of-00002.safetensors",
187
+ "speech_encoder.layers.19.fc2.weight": "model-00001-of-00002.safetensors",
188
+ "speech_encoder.layers.19.final_layer_norm.bias": "model-00001-of-00002.safetensors",
189
+ "speech_encoder.layers.19.final_layer_norm.weight": "model-00001-of-00002.safetensors",
190
+ "speech_encoder.layers.19.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
191
+ "speech_encoder.layers.19.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
192
+ "speech_encoder.layers.19.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
193
+ "speech_encoder.layers.19.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
194
+ "speech_encoder.layers.19.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
195
+ "speech_encoder.layers.19.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
196
+ "speech_encoder.layers.19.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
197
+ "speech_encoder.layers.19.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
198
+ "speech_encoder.layers.19.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
199
+ "speech_encoder.layers.2.fc1.bias": "model-00001-of-00002.safetensors",
200
+ "speech_encoder.layers.2.fc1.weight": "model-00001-of-00002.safetensors",
201
+ "speech_encoder.layers.2.fc2.bias": "model-00001-of-00002.safetensors",
202
+ "speech_encoder.layers.2.fc2.weight": "model-00001-of-00002.safetensors",
203
+ "speech_encoder.layers.2.final_layer_norm.bias": "model-00001-of-00002.safetensors",
204
+ "speech_encoder.layers.2.final_layer_norm.weight": "model-00001-of-00002.safetensors",
205
+ "speech_encoder.layers.2.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
206
+ "speech_encoder.layers.2.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
207
+ "speech_encoder.layers.2.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
208
+ "speech_encoder.layers.2.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
209
+ "speech_encoder.layers.2.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
210
+ "speech_encoder.layers.2.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
211
+ "speech_encoder.layers.2.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
212
+ "speech_encoder.layers.2.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
213
+ "speech_encoder.layers.2.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
214
+ "speech_encoder.layers.20.fc1.bias": "model-00001-of-00002.safetensors",
215
+ "speech_encoder.layers.20.fc1.weight": "model-00001-of-00002.safetensors",
216
+ "speech_encoder.layers.20.fc2.bias": "model-00001-of-00002.safetensors",
217
+ "speech_encoder.layers.20.fc2.weight": "model-00001-of-00002.safetensors",
218
+ "speech_encoder.layers.20.final_layer_norm.bias": "model-00001-of-00002.safetensors",
219
+ "speech_encoder.layers.20.final_layer_norm.weight": "model-00001-of-00002.safetensors",
220
+ "speech_encoder.layers.20.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
221
+ "speech_encoder.layers.20.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
222
+ "speech_encoder.layers.20.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
223
+ "speech_encoder.layers.20.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
224
+ "speech_encoder.layers.20.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
225
+ "speech_encoder.layers.20.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
226
+ "speech_encoder.layers.20.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
227
+ "speech_encoder.layers.20.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
228
+ "speech_encoder.layers.20.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
229
+ "speech_encoder.layers.21.fc1.bias": "model-00001-of-00002.safetensors",
230
+ "speech_encoder.layers.21.fc1.weight": "model-00001-of-00002.safetensors",
231
+ "speech_encoder.layers.21.fc2.bias": "model-00001-of-00002.safetensors",
232
+ "speech_encoder.layers.21.fc2.weight": "model-00001-of-00002.safetensors",
233
+ "speech_encoder.layers.21.final_layer_norm.bias": "model-00001-of-00002.safetensors",
234
+ "speech_encoder.layers.21.final_layer_norm.weight": "model-00001-of-00002.safetensors",
235
+ "speech_encoder.layers.21.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
236
+ "speech_encoder.layers.21.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
237
+ "speech_encoder.layers.21.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
238
+ "speech_encoder.layers.21.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
239
+ "speech_encoder.layers.21.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
240
+ "speech_encoder.layers.21.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
241
+ "speech_encoder.layers.21.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
242
+ "speech_encoder.layers.21.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
243
+ "speech_encoder.layers.21.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
244
+ "speech_encoder.layers.22.fc1.bias": "model-00001-of-00002.safetensors",
245
+ "speech_encoder.layers.22.fc1.weight": "model-00001-of-00002.safetensors",
246
+ "speech_encoder.layers.22.fc2.bias": "model-00001-of-00002.safetensors",
247
+ "speech_encoder.layers.22.fc2.weight": "model-00001-of-00002.safetensors",
248
+ "speech_encoder.layers.22.final_layer_norm.bias": "model-00001-of-00002.safetensors",
249
+ "speech_encoder.layers.22.final_layer_norm.weight": "model-00001-of-00002.safetensors",
250
+ "speech_encoder.layers.22.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
251
+ "speech_encoder.layers.22.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
252
+ "speech_encoder.layers.22.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
253
+ "speech_encoder.layers.22.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
254
+ "speech_encoder.layers.22.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
255
+ "speech_encoder.layers.22.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
256
+ "speech_encoder.layers.22.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
257
+ "speech_encoder.layers.22.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
258
+ "speech_encoder.layers.22.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
259
+ "speech_encoder.layers.23.fc1.bias": "model-00001-of-00002.safetensors",
260
+ "speech_encoder.layers.23.fc1.weight": "model-00001-of-00002.safetensors",
261
+ "speech_encoder.layers.23.fc2.bias": "model-00001-of-00002.safetensors",
262
+ "speech_encoder.layers.23.fc2.weight": "model-00001-of-00002.safetensors",
263
+ "speech_encoder.layers.23.final_layer_norm.bias": "model-00001-of-00002.safetensors",
264
+ "speech_encoder.layers.23.final_layer_norm.weight": "model-00001-of-00002.safetensors",
265
+ "speech_encoder.layers.23.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
266
+ "speech_encoder.layers.23.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
267
+ "speech_encoder.layers.23.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
268
+ "speech_encoder.layers.23.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
269
+ "speech_encoder.layers.23.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
270
+ "speech_encoder.layers.23.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
271
+ "speech_encoder.layers.23.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
272
+ "speech_encoder.layers.23.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
273
+ "speech_encoder.layers.23.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
274
+ "speech_encoder.layers.24.fc1.bias": "model-00001-of-00002.safetensors",
275
+ "speech_encoder.layers.24.fc1.weight": "model-00001-of-00002.safetensors",
276
+ "speech_encoder.layers.24.fc2.bias": "model-00001-of-00002.safetensors",
277
+ "speech_encoder.layers.24.fc2.weight": "model-00001-of-00002.safetensors",
278
+ "speech_encoder.layers.24.final_layer_norm.bias": "model-00001-of-00002.safetensors",
279
+ "speech_encoder.layers.24.final_layer_norm.weight": "model-00001-of-00002.safetensors",
280
+ "speech_encoder.layers.24.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
281
+ "speech_encoder.layers.24.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
282
+ "speech_encoder.layers.24.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
283
+ "speech_encoder.layers.24.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
284
+ "speech_encoder.layers.24.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
285
+ "speech_encoder.layers.24.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
286
+ "speech_encoder.layers.24.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
287
+ "speech_encoder.layers.24.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
288
+ "speech_encoder.layers.24.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
289
+ "speech_encoder.layers.25.fc1.bias": "model-00001-of-00002.safetensors",
290
+ "speech_encoder.layers.25.fc1.weight": "model-00001-of-00002.safetensors",
291
+ "speech_encoder.layers.25.fc2.bias": "model-00001-of-00002.safetensors",
292
+ "speech_encoder.layers.25.fc2.weight": "model-00001-of-00002.safetensors",
293
+ "speech_encoder.layers.25.final_layer_norm.bias": "model-00001-of-00002.safetensors",
294
+ "speech_encoder.layers.25.final_layer_norm.weight": "model-00001-of-00002.safetensors",
295
+ "speech_encoder.layers.25.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
296
+ "speech_encoder.layers.25.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
297
+ "speech_encoder.layers.25.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
298
+ "speech_encoder.layers.25.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
299
+ "speech_encoder.layers.25.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
300
+ "speech_encoder.layers.25.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
301
+ "speech_encoder.layers.25.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
302
+ "speech_encoder.layers.25.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
303
+ "speech_encoder.layers.25.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
304
+ "speech_encoder.layers.26.fc1.bias": "model-00001-of-00002.safetensors",
305
+ "speech_encoder.layers.26.fc1.weight": "model-00001-of-00002.safetensors",
306
+ "speech_encoder.layers.26.fc2.bias": "model-00001-of-00002.safetensors",
307
+ "speech_encoder.layers.26.fc2.weight": "model-00001-of-00002.safetensors",
308
+ "speech_encoder.layers.26.final_layer_norm.bias": "model-00001-of-00002.safetensors",
309
+ "speech_encoder.layers.26.final_layer_norm.weight": "model-00001-of-00002.safetensors",
310
+ "speech_encoder.layers.26.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
311
+ "speech_encoder.layers.26.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
312
+ "speech_encoder.layers.26.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
313
+ "speech_encoder.layers.26.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
314
+ "speech_encoder.layers.26.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
315
+ "speech_encoder.layers.26.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
316
+ "speech_encoder.layers.26.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
317
+ "speech_encoder.layers.26.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
318
+ "speech_encoder.layers.26.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
319
+ "speech_encoder.layers.27.fc1.bias": "model-00001-of-00002.safetensors",
320
+ "speech_encoder.layers.27.fc1.weight": "model-00001-of-00002.safetensors",
321
+ "speech_encoder.layers.27.fc2.bias": "model-00001-of-00002.safetensors",
322
+ "speech_encoder.layers.27.fc2.weight": "model-00001-of-00002.safetensors",
323
+ "speech_encoder.layers.27.final_layer_norm.bias": "model-00001-of-00002.safetensors",
324
+ "speech_encoder.layers.27.final_layer_norm.weight": "model-00001-of-00002.safetensors",
325
+ "speech_encoder.layers.27.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
326
+ "speech_encoder.layers.27.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
327
+ "speech_encoder.layers.27.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
328
+ "speech_encoder.layers.27.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
329
+ "speech_encoder.layers.27.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
330
+ "speech_encoder.layers.27.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
331
+ "speech_encoder.layers.27.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
332
+ "speech_encoder.layers.27.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
333
+ "speech_encoder.layers.27.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
334
+ "speech_encoder.layers.28.fc1.bias": "model-00001-of-00002.safetensors",
335
+ "speech_encoder.layers.28.fc1.weight": "model-00001-of-00002.safetensors",
336
+ "speech_encoder.layers.28.fc2.bias": "model-00001-of-00002.safetensors",
337
+ "speech_encoder.layers.28.fc2.weight": "model-00001-of-00002.safetensors",
338
+ "speech_encoder.layers.28.final_layer_norm.bias": "model-00001-of-00002.safetensors",
339
+ "speech_encoder.layers.28.final_layer_norm.weight": "model-00001-of-00002.safetensors",
340
+ "speech_encoder.layers.28.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
341
+ "speech_encoder.layers.28.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
342
+ "speech_encoder.layers.28.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
343
+ "speech_encoder.layers.28.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
344
+ "speech_encoder.layers.28.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
345
+ "speech_encoder.layers.28.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
346
+ "speech_encoder.layers.28.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
347
+ "speech_encoder.layers.28.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
348
+ "speech_encoder.layers.28.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
349
+ "speech_encoder.layers.29.fc1.bias": "model-00001-of-00002.safetensors",
350
+ "speech_encoder.layers.29.fc1.weight": "model-00001-of-00002.safetensors",
351
+ "speech_encoder.layers.29.fc2.bias": "model-00001-of-00002.safetensors",
352
+ "speech_encoder.layers.29.fc2.weight": "model-00001-of-00002.safetensors",
353
+ "speech_encoder.layers.29.final_layer_norm.bias": "model-00001-of-00002.safetensors",
354
+ "speech_encoder.layers.29.final_layer_norm.weight": "model-00001-of-00002.safetensors",
355
+ "speech_encoder.layers.29.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
356
+ "speech_encoder.layers.29.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
357
+ "speech_encoder.layers.29.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
358
+ "speech_encoder.layers.29.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
359
+ "speech_encoder.layers.29.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
360
+ "speech_encoder.layers.29.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
361
+ "speech_encoder.layers.29.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
362
+ "speech_encoder.layers.29.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
363
+ "speech_encoder.layers.29.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
364
+ "speech_encoder.layers.3.fc1.bias": "model-00001-of-00002.safetensors",
365
+ "speech_encoder.layers.3.fc1.weight": "model-00001-of-00002.safetensors",
366
+ "speech_encoder.layers.3.fc2.bias": "model-00001-of-00002.safetensors",
367
+ "speech_encoder.layers.3.fc2.weight": "model-00001-of-00002.safetensors",
368
+ "speech_encoder.layers.3.final_layer_norm.bias": "model-00001-of-00002.safetensors",
369
+ "speech_encoder.layers.3.final_layer_norm.weight": "model-00001-of-00002.safetensors",
370
+ "speech_encoder.layers.3.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
371
+ "speech_encoder.layers.3.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
372
+ "speech_encoder.layers.3.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
373
+ "speech_encoder.layers.3.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
374
+ "speech_encoder.layers.3.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
375
+ "speech_encoder.layers.3.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
376
+ "speech_encoder.layers.3.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
377
+ "speech_encoder.layers.3.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
378
+ "speech_encoder.layers.3.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
379
+ "speech_encoder.layers.30.fc1.bias": "model-00001-of-00002.safetensors",
380
+ "speech_encoder.layers.30.fc1.weight": "model-00001-of-00002.safetensors",
381
+ "speech_encoder.layers.30.fc2.bias": "model-00001-of-00002.safetensors",
382
+ "speech_encoder.layers.30.fc2.weight": "model-00001-of-00002.safetensors",
383
+ "speech_encoder.layers.30.final_layer_norm.bias": "model-00001-of-00002.safetensors",
384
+ "speech_encoder.layers.30.final_layer_norm.weight": "model-00001-of-00002.safetensors",
385
+ "speech_encoder.layers.30.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
386
+ "speech_encoder.layers.30.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
387
+ "speech_encoder.layers.30.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
388
+ "speech_encoder.layers.30.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
389
+ "speech_encoder.layers.30.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
390
+ "speech_encoder.layers.30.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
391
+ "speech_encoder.layers.30.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
392
+ "speech_encoder.layers.30.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
393
+ "speech_encoder.layers.30.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
394
+ "speech_encoder.layers.31.fc1.bias": "model-00001-of-00002.safetensors",
395
+ "speech_encoder.layers.31.fc1.weight": "model-00001-of-00002.safetensors",
396
+ "speech_encoder.layers.31.fc2.bias": "model-00001-of-00002.safetensors",
397
+ "speech_encoder.layers.31.fc2.weight": "model-00001-of-00002.safetensors",
398
+ "speech_encoder.layers.31.final_layer_norm.bias": "model-00001-of-00002.safetensors",
399
+ "speech_encoder.layers.31.final_layer_norm.weight": "model-00001-of-00002.safetensors",
400
+ "speech_encoder.layers.31.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
401
+ "speech_encoder.layers.31.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
402
+ "speech_encoder.layers.31.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
403
+ "speech_encoder.layers.31.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
404
+ "speech_encoder.layers.31.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
405
+ "speech_encoder.layers.31.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
406
+ "speech_encoder.layers.31.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
407
+ "speech_encoder.layers.31.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
408
+ "speech_encoder.layers.31.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
409
+ "speech_encoder.layers.4.fc1.bias": "model-00001-of-00002.safetensors",
410
+ "speech_encoder.layers.4.fc1.weight": "model-00001-of-00002.safetensors",
411
+ "speech_encoder.layers.4.fc2.bias": "model-00001-of-00002.safetensors",
412
+ "speech_encoder.layers.4.fc2.weight": "model-00001-of-00002.safetensors",
413
+ "speech_encoder.layers.4.final_layer_norm.bias": "model-00001-of-00002.safetensors",
414
+ "speech_encoder.layers.4.final_layer_norm.weight": "model-00001-of-00002.safetensors",
415
+ "speech_encoder.layers.4.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
416
+ "speech_encoder.layers.4.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
417
+ "speech_encoder.layers.4.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
418
+ "speech_encoder.layers.4.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
419
+ "speech_encoder.layers.4.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
420
+ "speech_encoder.layers.4.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
421
+ "speech_encoder.layers.4.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
422
+ "speech_encoder.layers.4.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
423
+ "speech_encoder.layers.4.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
424
+ "speech_encoder.layers.5.fc1.bias": "model-00001-of-00002.safetensors",
425
+ "speech_encoder.layers.5.fc1.weight": "model-00001-of-00002.safetensors",
426
+ "speech_encoder.layers.5.fc2.bias": "model-00001-of-00002.safetensors",
427
+ "speech_encoder.layers.5.fc2.weight": "model-00001-of-00002.safetensors",
428
+ "speech_encoder.layers.5.final_layer_norm.bias": "model-00001-of-00002.safetensors",
429
+ "speech_encoder.layers.5.final_layer_norm.weight": "model-00001-of-00002.safetensors",
430
+ "speech_encoder.layers.5.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
431
+ "speech_encoder.layers.5.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
432
+ "speech_encoder.layers.5.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
433
+ "speech_encoder.layers.5.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
434
+ "speech_encoder.layers.5.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
435
+ "speech_encoder.layers.5.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
436
+ "speech_encoder.layers.5.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
437
+ "speech_encoder.layers.5.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
438
+ "speech_encoder.layers.5.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
439
+ "speech_encoder.layers.6.fc1.bias": "model-00001-of-00002.safetensors",
440
+ "speech_encoder.layers.6.fc1.weight": "model-00001-of-00002.safetensors",
441
+ "speech_encoder.layers.6.fc2.bias": "model-00001-of-00002.safetensors",
442
+ "speech_encoder.layers.6.fc2.weight": "model-00001-of-00002.safetensors",
443
+ "speech_encoder.layers.6.final_layer_norm.bias": "model-00001-of-00002.safetensors",
444
+ "speech_encoder.layers.6.final_layer_norm.weight": "model-00001-of-00002.safetensors",
445
+ "speech_encoder.layers.6.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
446
+ "speech_encoder.layers.6.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
447
+ "speech_encoder.layers.6.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
448
+ "speech_encoder.layers.6.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
449
+ "speech_encoder.layers.6.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
450
+ "speech_encoder.layers.6.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
451
+ "speech_encoder.layers.6.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
452
+ "speech_encoder.layers.6.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
453
+ "speech_encoder.layers.6.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
454
+ "speech_encoder.layers.7.fc1.bias": "model-00001-of-00002.safetensors",
455
+ "speech_encoder.layers.7.fc1.weight": "model-00001-of-00002.safetensors",
456
+ "speech_encoder.layers.7.fc2.bias": "model-00001-of-00002.safetensors",
457
+ "speech_encoder.layers.7.fc2.weight": "model-00001-of-00002.safetensors",
458
+ "speech_encoder.layers.7.final_layer_norm.bias": "model-00001-of-00002.safetensors",
459
+ "speech_encoder.layers.7.final_layer_norm.weight": "model-00001-of-00002.safetensors",
460
+ "speech_encoder.layers.7.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
461
+ "speech_encoder.layers.7.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
462
+ "speech_encoder.layers.7.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
463
+ "speech_encoder.layers.7.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
464
+ "speech_encoder.layers.7.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
465
+ "speech_encoder.layers.7.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
466
+ "speech_encoder.layers.7.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
467
+ "speech_encoder.layers.7.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
468
+ "speech_encoder.layers.7.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
469
+ "speech_encoder.layers.8.fc1.bias": "model-00001-of-00002.safetensors",
470
+ "speech_encoder.layers.8.fc1.weight": "model-00001-of-00002.safetensors",
471
+ "speech_encoder.layers.8.fc2.bias": "model-00001-of-00002.safetensors",
472
+ "speech_encoder.layers.8.fc2.weight": "model-00001-of-00002.safetensors",
473
+ "speech_encoder.layers.8.final_layer_norm.bias": "model-00001-of-00002.safetensors",
474
+ "speech_encoder.layers.8.final_layer_norm.weight": "model-00001-of-00002.safetensors",
475
+ "speech_encoder.layers.8.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
476
+ "speech_encoder.layers.8.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
477
+ "speech_encoder.layers.8.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
478
+ "speech_encoder.layers.8.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
479
+ "speech_encoder.layers.8.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
480
+ "speech_encoder.layers.8.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
481
+ "speech_encoder.layers.8.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
482
+ "speech_encoder.layers.8.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
483
+ "speech_encoder.layers.8.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
484
+ "speech_encoder.layers.9.fc1.bias": "model-00001-of-00002.safetensors",
485
+ "speech_encoder.layers.9.fc1.weight": "model-00001-of-00002.safetensors",
486
+ "speech_encoder.layers.9.fc2.bias": "model-00001-of-00002.safetensors",
487
+ "speech_encoder.layers.9.fc2.weight": "model-00001-of-00002.safetensors",
488
+ "speech_encoder.layers.9.final_layer_norm.bias": "model-00001-of-00002.safetensors",
489
+ "speech_encoder.layers.9.final_layer_norm.weight": "model-00001-of-00002.safetensors",
490
+ "speech_encoder.layers.9.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
491
+ "speech_encoder.layers.9.self_attn.out_proj.bias": "model-00001-of-00002.safetensors",
492
+ "speech_encoder.layers.9.self_attn.out_proj.weight": "model-00001-of-00002.safetensors",
493
+ "speech_encoder.layers.9.self_attn.q_proj.bias": "model-00001-of-00002.safetensors",
494
+ "speech_encoder.layers.9.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
495
+ "speech_encoder.layers.9.self_attn.v_proj.bias": "model-00001-of-00002.safetensors",
496
+ "speech_encoder.layers.9.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
497
+ "speech_encoder.layers.9.self_attn_layer_norm.bias": "model-00001-of-00002.safetensors",
498
+ "speech_encoder.layers.9.self_attn_layer_norm.weight": "model-00001-of-00002.safetensors",
499
+ "text_decoder.model.embed_tokens.weight": "model-00001-of-00002.safetensors",
500
+ "text_decoder.model.layers.0.input_layernorm.weight": "model-00001-of-00002.safetensors",
501
+ "text_decoder.model.layers.0.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
502
+ "text_decoder.model.layers.0.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
503
+ "text_decoder.model.layers.0.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
504
+ "text_decoder.model.layers.0.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
505
+ "text_decoder.model.layers.0.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
506
+ "text_decoder.model.layers.0.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
507
+ "text_decoder.model.layers.0.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
508
+ "text_decoder.model.layers.0.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
509
+ "text_decoder.model.layers.0.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
510
+ "text_decoder.model.layers.0.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
511
+ "text_decoder.model.layers.1.input_layernorm.weight": "model-00001-of-00002.safetensors",
512
+ "text_decoder.model.layers.1.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
513
+ "text_decoder.model.layers.1.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
514
+ "text_decoder.model.layers.1.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
515
+ "text_decoder.model.layers.1.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
516
+ "text_decoder.model.layers.1.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
517
+ "text_decoder.model.layers.1.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
518
+ "text_decoder.model.layers.1.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
519
+ "text_decoder.model.layers.1.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
520
+ "text_decoder.model.layers.1.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
521
+ "text_decoder.model.layers.1.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
522
+ "text_decoder.model.layers.10.input_layernorm.weight": "model-00001-of-00002.safetensors",
523
+ "text_decoder.model.layers.10.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
524
+ "text_decoder.model.layers.10.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
525
+ "text_decoder.model.layers.10.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
526
+ "text_decoder.model.layers.10.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
527
+ "text_decoder.model.layers.10.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
528
+ "text_decoder.model.layers.10.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
529
+ "text_decoder.model.layers.10.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
530
+ "text_decoder.model.layers.10.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
531
+ "text_decoder.model.layers.10.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
532
+ "text_decoder.model.layers.10.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
533
+ "text_decoder.model.layers.11.input_layernorm.weight": "model-00001-of-00002.safetensors",
534
+ "text_decoder.model.layers.11.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
535
+ "text_decoder.model.layers.11.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
536
+ "text_decoder.model.layers.11.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
537
+ "text_decoder.model.layers.11.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
538
+ "text_decoder.model.layers.11.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
539
+ "text_decoder.model.layers.11.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
540
+ "text_decoder.model.layers.11.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
541
+ "text_decoder.model.layers.11.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
542
+ "text_decoder.model.layers.11.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
543
+ "text_decoder.model.layers.11.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
544
+ "text_decoder.model.layers.12.input_layernorm.weight": "model-00001-of-00002.safetensors",
545
+ "text_decoder.model.layers.12.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
546
+ "text_decoder.model.layers.12.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
547
+ "text_decoder.model.layers.12.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
548
+ "text_decoder.model.layers.12.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
549
+ "text_decoder.model.layers.12.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
550
+ "text_decoder.model.layers.12.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
551
+ "text_decoder.model.layers.12.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
552
+ "text_decoder.model.layers.12.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
553
+ "text_decoder.model.layers.12.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
554
+ "text_decoder.model.layers.12.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
555
+ "text_decoder.model.layers.13.input_layernorm.weight": "model-00001-of-00002.safetensors",
556
+ "text_decoder.model.layers.13.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
557
+ "text_decoder.model.layers.13.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
558
+ "text_decoder.model.layers.13.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
559
+ "text_decoder.model.layers.13.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
560
+ "text_decoder.model.layers.13.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
561
+ "text_decoder.model.layers.13.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
562
+ "text_decoder.model.layers.13.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
563
+ "text_decoder.model.layers.13.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
564
+ "text_decoder.model.layers.13.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
565
+ "text_decoder.model.layers.13.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
566
+ "text_decoder.model.layers.14.input_layernorm.weight": "model-00001-of-00002.safetensors",
567
+ "text_decoder.model.layers.14.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
568
+ "text_decoder.model.layers.14.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
569
+ "text_decoder.model.layers.14.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
570
+ "text_decoder.model.layers.14.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
571
+ "text_decoder.model.layers.14.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
572
+ "text_decoder.model.layers.14.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
573
+ "text_decoder.model.layers.14.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
574
+ "text_decoder.model.layers.14.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
575
+ "text_decoder.model.layers.14.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
576
+ "text_decoder.model.layers.14.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
577
+ "text_decoder.model.layers.15.input_layernorm.weight": "model-00002-of-00002.safetensors",
578
+ "text_decoder.model.layers.15.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
579
+ "text_decoder.model.layers.15.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
580
+ "text_decoder.model.layers.15.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
581
+ "text_decoder.model.layers.15.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
582
+ "text_decoder.model.layers.15.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
583
+ "text_decoder.model.layers.15.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
584
+ "text_decoder.model.layers.15.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
585
+ "text_decoder.model.layers.15.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
586
+ "text_decoder.model.layers.15.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
587
+ "text_decoder.model.layers.15.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
588
+ "text_decoder.model.layers.16.input_layernorm.weight": "model-00002-of-00002.safetensors",
589
+ "text_decoder.model.layers.16.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
590
+ "text_decoder.model.layers.16.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
591
+ "text_decoder.model.layers.16.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
592
+ "text_decoder.model.layers.16.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
593
+ "text_decoder.model.layers.16.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
594
+ "text_decoder.model.layers.16.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
595
+ "text_decoder.model.layers.16.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
596
+ "text_decoder.model.layers.16.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
597
+ "text_decoder.model.layers.16.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
598
+ "text_decoder.model.layers.16.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
599
+ "text_decoder.model.layers.17.input_layernorm.weight": "model-00002-of-00002.safetensors",
600
+ "text_decoder.model.layers.17.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
601
+ "text_decoder.model.layers.17.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
602
+ "text_decoder.model.layers.17.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
603
+ "text_decoder.model.layers.17.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
604
+ "text_decoder.model.layers.17.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
605
+ "text_decoder.model.layers.17.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
606
+ "text_decoder.model.layers.17.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
607
+ "text_decoder.model.layers.17.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
608
+ "text_decoder.model.layers.17.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
609
+ "text_decoder.model.layers.17.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
610
+ "text_decoder.model.layers.18.input_layernorm.weight": "model-00002-of-00002.safetensors",
611
+ "text_decoder.model.layers.18.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
612
+ "text_decoder.model.layers.18.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
613
+ "text_decoder.model.layers.18.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
614
+ "text_decoder.model.layers.18.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
615
+ "text_decoder.model.layers.18.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
616
+ "text_decoder.model.layers.18.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
617
+ "text_decoder.model.layers.18.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
618
+ "text_decoder.model.layers.18.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
619
+ "text_decoder.model.layers.18.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
620
+ "text_decoder.model.layers.18.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
621
+ "text_decoder.model.layers.19.input_layernorm.weight": "model-00002-of-00002.safetensors",
622
+ "text_decoder.model.layers.19.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
623
+ "text_decoder.model.layers.19.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
624
+ "text_decoder.model.layers.19.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
625
+ "text_decoder.model.layers.19.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
626
+ "text_decoder.model.layers.19.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
627
+ "text_decoder.model.layers.19.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
628
+ "text_decoder.model.layers.19.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
629
+ "text_decoder.model.layers.19.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
630
+ "text_decoder.model.layers.19.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
631
+ "text_decoder.model.layers.19.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
632
+ "text_decoder.model.layers.2.input_layernorm.weight": "model-00001-of-00002.safetensors",
633
+ "text_decoder.model.layers.2.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
634
+ "text_decoder.model.layers.2.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
635
+ "text_decoder.model.layers.2.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
636
+ "text_decoder.model.layers.2.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
637
+ "text_decoder.model.layers.2.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
638
+ "text_decoder.model.layers.2.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
639
+ "text_decoder.model.layers.2.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
640
+ "text_decoder.model.layers.2.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
641
+ "text_decoder.model.layers.2.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
642
+ "text_decoder.model.layers.2.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
643
+ "text_decoder.model.layers.20.input_layernorm.weight": "model-00002-of-00002.safetensors",
644
+ "text_decoder.model.layers.20.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
645
+ "text_decoder.model.layers.20.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
646
+ "text_decoder.model.layers.20.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
647
+ "text_decoder.model.layers.20.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
648
+ "text_decoder.model.layers.20.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
649
+ "text_decoder.model.layers.20.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
650
+ "text_decoder.model.layers.20.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
651
+ "text_decoder.model.layers.20.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
652
+ "text_decoder.model.layers.20.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
653
+ "text_decoder.model.layers.20.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
654
+ "text_decoder.model.layers.21.input_layernorm.weight": "model-00002-of-00002.safetensors",
655
+ "text_decoder.model.layers.21.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
656
+ "text_decoder.model.layers.21.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
657
+ "text_decoder.model.layers.21.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
658
+ "text_decoder.model.layers.21.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
659
+ "text_decoder.model.layers.21.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
660
+ "text_decoder.model.layers.21.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
661
+ "text_decoder.model.layers.21.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
662
+ "text_decoder.model.layers.21.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
663
+ "text_decoder.model.layers.21.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
664
+ "text_decoder.model.layers.21.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
665
+ "text_decoder.model.layers.22.input_layernorm.weight": "model-00002-of-00002.safetensors",
666
+ "text_decoder.model.layers.22.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
667
+ "text_decoder.model.layers.22.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
668
+ "text_decoder.model.layers.22.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
669
+ "text_decoder.model.layers.22.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
670
+ "text_decoder.model.layers.22.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
671
+ "text_decoder.model.layers.22.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
672
+ "text_decoder.model.layers.22.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
673
+ "text_decoder.model.layers.22.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
674
+ "text_decoder.model.layers.22.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
675
+ "text_decoder.model.layers.22.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
676
+ "text_decoder.model.layers.23.input_layernorm.weight": "model-00002-of-00002.safetensors",
677
+ "text_decoder.model.layers.23.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
678
+ "text_decoder.model.layers.23.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
679
+ "text_decoder.model.layers.23.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
680
+ "text_decoder.model.layers.23.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
681
+ "text_decoder.model.layers.23.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
682
+ "text_decoder.model.layers.23.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
683
+ "text_decoder.model.layers.23.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
684
+ "text_decoder.model.layers.23.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
685
+ "text_decoder.model.layers.23.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
686
+ "text_decoder.model.layers.23.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
687
+ "text_decoder.model.layers.24.input_layernorm.weight": "model-00002-of-00002.safetensors",
688
+ "text_decoder.model.layers.24.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
689
+ "text_decoder.model.layers.24.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
690
+ "text_decoder.model.layers.24.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
691
+ "text_decoder.model.layers.24.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
692
+ "text_decoder.model.layers.24.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
693
+ "text_decoder.model.layers.24.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
694
+ "text_decoder.model.layers.24.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
695
+ "text_decoder.model.layers.24.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
696
+ "text_decoder.model.layers.24.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
697
+ "text_decoder.model.layers.24.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
698
+ "text_decoder.model.layers.25.input_layernorm.weight": "model-00002-of-00002.safetensors",
699
+ "text_decoder.model.layers.25.mlp.down_proj.weight": "model-00002-of-00002.safetensors",
700
+ "text_decoder.model.layers.25.mlp.gate_proj.weight": "model-00002-of-00002.safetensors",
701
+ "text_decoder.model.layers.25.mlp.up_proj.weight": "model-00002-of-00002.safetensors",
702
+ "text_decoder.model.layers.25.post_attention_layernorm.weight": "model-00002-of-00002.safetensors",
703
+ "text_decoder.model.layers.25.post_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
704
+ "text_decoder.model.layers.25.pre_feedforward_layernorm.weight": "model-00002-of-00002.safetensors",
705
+ "text_decoder.model.layers.25.self_attn.k_proj.weight": "model-00002-of-00002.safetensors",
706
+ "text_decoder.model.layers.25.self_attn.o_proj.weight": "model-00002-of-00002.safetensors",
707
+ "text_decoder.model.layers.25.self_attn.q_proj.weight": "model-00002-of-00002.safetensors",
708
+ "text_decoder.model.layers.25.self_attn.v_proj.weight": "model-00002-of-00002.safetensors",
709
+ "text_decoder.model.layers.3.input_layernorm.weight": "model-00001-of-00002.safetensors",
710
+ "text_decoder.model.layers.3.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
711
+ "text_decoder.model.layers.3.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
712
+ "text_decoder.model.layers.3.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
713
+ "text_decoder.model.layers.3.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
714
+ "text_decoder.model.layers.3.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
715
+ "text_decoder.model.layers.3.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
716
+ "text_decoder.model.layers.3.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
717
+ "text_decoder.model.layers.3.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
718
+ "text_decoder.model.layers.3.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
719
+ "text_decoder.model.layers.3.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
720
+ "text_decoder.model.layers.4.input_layernorm.weight": "model-00001-of-00002.safetensors",
721
+ "text_decoder.model.layers.4.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
722
+ "text_decoder.model.layers.4.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
723
+ "text_decoder.model.layers.4.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
724
+ "text_decoder.model.layers.4.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
725
+ "text_decoder.model.layers.4.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
726
+ "text_decoder.model.layers.4.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
727
+ "text_decoder.model.layers.4.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
728
+ "text_decoder.model.layers.4.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
729
+ "text_decoder.model.layers.4.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
730
+ "text_decoder.model.layers.4.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
731
+ "text_decoder.model.layers.5.input_layernorm.weight": "model-00001-of-00002.safetensors",
732
+ "text_decoder.model.layers.5.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
733
+ "text_decoder.model.layers.5.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
734
+ "text_decoder.model.layers.5.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
735
+ "text_decoder.model.layers.5.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
736
+ "text_decoder.model.layers.5.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
737
+ "text_decoder.model.layers.5.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
738
+ "text_decoder.model.layers.5.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
739
+ "text_decoder.model.layers.5.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
740
+ "text_decoder.model.layers.5.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
741
+ "text_decoder.model.layers.5.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
742
+ "text_decoder.model.layers.6.input_layernorm.weight": "model-00001-of-00002.safetensors",
743
+ "text_decoder.model.layers.6.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
744
+ "text_decoder.model.layers.6.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
745
+ "text_decoder.model.layers.6.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
746
+ "text_decoder.model.layers.6.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
747
+ "text_decoder.model.layers.6.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
748
+ "text_decoder.model.layers.6.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
749
+ "text_decoder.model.layers.6.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
750
+ "text_decoder.model.layers.6.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
751
+ "text_decoder.model.layers.6.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
752
+ "text_decoder.model.layers.6.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
753
+ "text_decoder.model.layers.7.input_layernorm.weight": "model-00001-of-00002.safetensors",
754
+ "text_decoder.model.layers.7.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
755
+ "text_decoder.model.layers.7.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
756
+ "text_decoder.model.layers.7.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
757
+ "text_decoder.model.layers.7.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
758
+ "text_decoder.model.layers.7.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
759
+ "text_decoder.model.layers.7.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
760
+ "text_decoder.model.layers.7.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
761
+ "text_decoder.model.layers.7.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
762
+ "text_decoder.model.layers.7.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
763
+ "text_decoder.model.layers.7.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
764
+ "text_decoder.model.layers.8.input_layernorm.weight": "model-00001-of-00002.safetensors",
765
+ "text_decoder.model.layers.8.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
766
+ "text_decoder.model.layers.8.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
767
+ "text_decoder.model.layers.8.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
768
+ "text_decoder.model.layers.8.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
769
+ "text_decoder.model.layers.8.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
770
+ "text_decoder.model.layers.8.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
771
+ "text_decoder.model.layers.8.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
772
+ "text_decoder.model.layers.8.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
773
+ "text_decoder.model.layers.8.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
774
+ "text_decoder.model.layers.8.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
775
+ "text_decoder.model.layers.9.input_layernorm.weight": "model-00001-of-00002.safetensors",
776
+ "text_decoder.model.layers.9.mlp.down_proj.weight": "model-00001-of-00002.safetensors",
777
+ "text_decoder.model.layers.9.mlp.gate_proj.weight": "model-00001-of-00002.safetensors",
778
+ "text_decoder.model.layers.9.mlp.up_proj.weight": "model-00001-of-00002.safetensors",
779
+ "text_decoder.model.layers.9.post_attention_layernorm.weight": "model-00001-of-00002.safetensors",
780
+ "text_decoder.model.layers.9.post_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
781
+ "text_decoder.model.layers.9.pre_feedforward_layernorm.weight": "model-00001-of-00002.safetensors",
782
+ "text_decoder.model.layers.9.self_attn.k_proj.weight": "model-00001-of-00002.safetensors",
783
+ "text_decoder.model.layers.9.self_attn.o_proj.weight": "model-00001-of-00002.safetensors",
784
+ "text_decoder.model.layers.9.self_attn.q_proj.weight": "model-00001-of-00002.safetensors",
785
+ "text_decoder.model.layers.9.self_attn.v_proj.weight": "model-00001-of-00002.safetensors",
786
+ "text_decoder.model.norm.weight": "model-00002-of-00002.safetensors"
787
+ }
788
+ }
modeling_meralion3.py ADDED
@@ -0,0 +1,567 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """PyTorch MERaLiON3 model."""
2
+
3
+ from dataclasses import dataclass
4
+ from typing import List, Optional, Tuple, Union
5
+
6
+ import torch
7
+ import torch.utils.checkpoint
8
+ from torch import nn
9
+
10
+ from transformers import Gemma2ForCausalLM
11
+ from transformers.models.whisper.modeling_whisper import WhisperEncoder
12
+ from transformers.cache_utils import HybridCache
13
+ from transformers.generation import GenerationMixin
14
+ from transformers.modeling_outputs import ModelOutput
15
+ from transformers.modeling_utils import PreTrainedModel
16
+ from transformers.utils import (
17
+ add_start_docstrings,
18
+ add_start_docstrings_to_model_forward,
19
+ logging,
20
+ replace_return_docstrings,
21
+ )
22
+
23
+ from .configuration_meralion3 import MERaLiON3Config
24
+
25
+
26
+ logger = logging.get_logger(__name__)
27
+
28
+ _CONFIG_FOR_DOC = "MERaLiON3Config"
29
+
30
+
31
+ # Copied from transformers.models.llama.modeling_llama._prepare_4d_causal_attention_mask_with_cache_position
32
+ def _prepare_4d_causal_attention_mask_with_cache_position(
33
+ attention_mask: torch.Tensor,
34
+ sequence_length: int,
35
+ target_length: int,
36
+ dtype: torch.dtype,
37
+ device: torch.device,
38
+ min_dtype: float,
39
+ cache_position: torch.Tensor,
40
+ batch_size: int,
41
+ ):
42
+ """
43
+ Creates a causal 4D mask of shape `(batch_size, 1, query_length, key_value_length)` from a 2D mask of shape
44
+ `(batch_size, key_value_length)`, or if the input `attention_mask` is already 4D, do nothing.
45
+
46
+ Args:
47
+ attention_mask (`torch.Tensor`):
48
+ A 2D attention mask of shape `(batch_size, key_value_length)` or a 4D attention mask of shape `(batch_size, 1, query_length, key_value_length)`.
49
+ sequence_length (`int`):
50
+ The sequence length being processed.
51
+ target_length (`int`):
52
+ The target length: when generating with static cache, the mask should be as long as the static cache, to account for the 0 padding, the part of the cache that is not filled yet.
53
+ dtype (`torch.dtype`):
54
+ The dtype to use for the 4D attention mask.
55
+ device (`torch.device`):
56
+ The device to plcae the 4D attention mask on.
57
+ min_dtype (`float`):
58
+ The minimum value representable with the dtype `dtype`.
59
+ cache_position (`torch.Tensor`):
60
+ Indices depicting the position of the input sequence tokens in the sequence.
61
+ batch_size (`torch.Tensor`):
62
+ Batch size.
63
+ """
64
+ if attention_mask is not None and attention_mask.dim() == 4:
65
+ # In this case we assume that the mask comes already in inverted form and requires no inversion or slicing.
66
+ causal_mask = attention_mask
67
+ else:
68
+ causal_mask = torch.full((sequence_length, target_length), fill_value=min_dtype, dtype=dtype, device=device)
69
+ if sequence_length != 1:
70
+ causal_mask = torch.triu(causal_mask, diagonal=1)
71
+ causal_mask *= torch.arange(target_length, device=device) > cache_position.reshape(-1, 1)
72
+ causal_mask = causal_mask[None, None, :, :].expand(batch_size, 1, -1, -1)
73
+ if attention_mask is not None:
74
+ causal_mask = causal_mask.clone() # copy to contiguous memory for in-place edit
75
+ mask_length = attention_mask.shape[-1]
76
+ padding_mask = causal_mask[:, :, :, :mask_length] + attention_mask[:, None, None, :]
77
+ padding_mask = padding_mask == 0
78
+ causal_mask[:, :, :, :mask_length] = causal_mask[:, :, :, :mask_length].masked_fill(
79
+ padding_mask, min_dtype
80
+ )
81
+ return causal_mask
82
+
83
+
84
+ # copied from Qwen2AudioCausalLMOutputWithPast
85
+ @dataclass
86
+ class MERaLiON3OutputWithPast(ModelOutput):
87
+ """
88
+ Base class for MERaLiON3 causal language model (or autoregressive) outputs.
89
+
90
+ Args:
91
+ loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `labels` is provided):
92
+ Language modeling loss (for next-token prediction).
93
+ logits (`torch.FloatTensor` of shape `(batch_size, sequence_length, config.vocab_size)`):
94
+ Prediction scores of the language modeling head (scores for each vocabulary token before SoftMax).
95
+ past_key_values (`tuple(tuple(torch.FloatTensor))`, *optional*, returned when `use_cache=True` is passed or when `config.use_cache=True`):
96
+ Tuple of `tuple(torch.FloatTensor)` of length `config.n_layers`, with each tuple having 2 tensors of shape
97
+ `(batch_size, num_heads, sequence_length, embed_size_per_head)`)
98
+
99
+ Contains pre-computed hidden-states (key and values in the self-attention blocks) that can be used (see
100
+ `past_key_values` input) to speed up sequential decoding.
101
+ hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):
102
+ Tuple of `torch.FloatTensor` (one for the output of the embeddings, if the model has an embedding layer, +
103
+ one for the output of each layer) of shape `(batch_size, sequence_length, hidden_size)`.
104
+
105
+ Hidden-states of the model at the output of each layer plus the optional initial embedding outputs.
106
+ attentions (`tuple(torch.FloatTensor)`, *optional*, returned when `output_attentions=True` is passed or when `config.output_attentions=True`):
107
+ Tuple of `torch.FloatTensor` (one for each layer) of shape `(batch_size, num_heads, sequence_length,
108
+ sequence_length)`.
109
+
110
+ Attentions weights after the attention softmax, used to compute the weighted average in the self-attention
111
+ heads.
112
+ attention_mask (`torch.FloatTensor`, *optional*):
113
+ Attentions mask, used to update attention mask and position_ids.
114
+ """
115
+
116
+ loss: Optional[torch.FloatTensor] = None
117
+ logits: torch.FloatTensor = None
118
+ past_key_values: Optional[List[torch.FloatTensor]] = None
119
+ hidden_states: Optional[Tuple[torch.FloatTensor]] = None
120
+ attentions: Optional[Tuple[torch.FloatTensor]] = None
121
+ attention_mask: Optional[torch.FloatTensor] = None
122
+
123
+
124
+ MERALION_START_DOCSTRING = r"""
125
+ This model inherits from [`PreTrainedModel`]. Check the superclass documentation for the generic methods the
126
+ library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads
127
+ etc.)
128
+
129
+ This model is also a PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) subclass.
130
+ Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage
131
+ and behavior.
132
+
133
+ Parameters:
134
+ config ([`MERaLiON3Config`]):
135
+ Model configuration class with all the parameters of the model. Initializing with a config file does not
136
+ load the weights associated with the model, only the configuration. Check out the
137
+ [`~PreTrainedModel.from_pretrained`] method to load the model weights.
138
+ """
139
+
140
+
141
+ @add_start_docstrings(
142
+ "The bare MERaLiON3 Model outputting raw hidden-states without any specific head on top.",
143
+ MERALION_START_DOCSTRING,
144
+ )
145
+ class MERaLiON3PreTrainedModel(PreTrainedModel):
146
+ config_class = MERaLiON3Config
147
+ base_model_prefix = "model"
148
+ supports_gradient_checkpointing = True
149
+ _no_split_modules = ["WhisperEncoderLayer", "WhisperDecoderLayer", "Gemma2DecoderLayer"]
150
+ _supports_flash_attn_2 = True
151
+ _supports_sdpa = True
152
+ _supports_cache_class = True
153
+ _supports_static_cache = True
154
+
155
+ def _init_weights(self, module):
156
+ # important: this ported version of Qwen2Audio isn't meant for training from scratch - only
157
+ # inference and fine-tuning - so the proper init weights code has been removed
158
+ std = self.config.init_std if hasattr(self.config, "init_std") else self.config.speech_config.init_std
159
+
160
+ if isinstance(module, (nn.Linear, nn.Conv1d)):
161
+ module.weight.data.normal_(mean=0.0, std=std)
162
+ if module.bias is not None:
163
+ module.bias.data.zero_()
164
+ elif isinstance(module, nn.Embedding):
165
+ module.weight.data.normal_(mean=0.0, std=std)
166
+ if module.padding_idx is not None:
167
+ module.weight.data[module.padding_idx].zero_()
168
+
169
+ class MERaLiON3SpeechAudioAdaper(nn.Module):
170
+ def __init__(
171
+ self,
172
+ config,
173
+ **kwargs
174
+ ):
175
+ super(MERaLiON3SpeechAudioAdaper, self).__init__()
176
+ speech_audio_encoder_output_dim = config.speech_config.d_model
177
+ llm_input_hidden_size = config.text_config.hidden_size
178
+ speech_mlp_scale_factor = config.speech_mlp_scale_factor
179
+
180
+ self.speech_mlp_scale_factor = speech_mlp_scale_factor
181
+ self.mlp_adapter = nn.Sequential(
182
+ nn.Linear(
183
+ in_features=speech_audio_encoder_output_dim * speech_mlp_scale_factor,
184
+ out_features=speech_audio_encoder_output_dim
185
+ ),
186
+ nn.SiLU(),
187
+ nn.Dropout(0.1),
188
+ )
189
+
190
+ self.speech_llm_proj = nn.Sequential(
191
+ nn.Linear(
192
+ speech_audio_encoder_output_dim,
193
+ speech_audio_encoder_output_dim * 4
194
+ ),
195
+ nn.SiLU(),
196
+ nn.Dropout(0.1),
197
+
198
+ nn.Linear(
199
+ speech_audio_encoder_output_dim * 4,
200
+ llm_input_hidden_size
201
+ ),
202
+ )
203
+
204
+ def forward(self, speech_embeds, **kwargs):
205
+ B, T, C = speech_embeds.shape
206
+ speech_embeds = self.mlp_adapter(
207
+ speech_embeds.reshape(
208
+ B,
209
+ T // self.speech_mlp_scale_factor,
210
+ C * self.speech_mlp_scale_factor,
211
+ )
212
+ )
213
+ return self.speech_llm_proj(speech_embeds)
214
+
215
+
216
+ class MERaLiON3SpeechAudioAdaperLarge(nn.Module):
217
+ def __init__(
218
+ self,
219
+ config,
220
+ **kwargs
221
+ ):
222
+ super(MERaLiON3SpeechAudioAdaperLarge, self).__init__()
223
+ speech_audio_encoder_output_dim = config.speech_config.d_model
224
+ llm_input_hidden_size = config.text_config.hidden_size
225
+
226
+ self.speech_mlp_use_projection = config.speech_mlp_use_projection
227
+ self.speech_mlp_scale_factor = config.speech_mlp_scale_factor
228
+
229
+ self.mlp_adapter = nn.Sequential(
230
+ nn.Linear(
231
+ in_features=speech_audio_encoder_output_dim * self.speech_mlp_scale_factor,
232
+ out_features=speech_audio_encoder_output_dim * 5,
233
+ ),
234
+ nn.SiLU(),
235
+ nn.Dropout(0.01),
236
+ )
237
+
238
+ if self.speech_mlp_use_projection:
239
+ self.gate_proj = nn.Linear(
240
+ in_features=speech_audio_encoder_output_dim * 5,
241
+ out_features=speech_audio_encoder_output_dim * 5,
242
+ )
243
+
244
+ self.pool_proj = nn.Linear(
245
+ in_features=speech_audio_encoder_output_dim * 5,
246
+ out_features=speech_audio_encoder_output_dim * 5,
247
+ )
248
+ self.act_fn = nn.SiLU()
249
+
250
+ self.out_proj = nn.Linear(
251
+ speech_audio_encoder_output_dim * 5,
252
+ llm_input_hidden_size,
253
+ )
254
+
255
+
256
+ def forward(self, speech_embeds, **kwargs):
257
+ B, T, C = speech_embeds.shape
258
+ speech_embeds = self.mlp_adapter(
259
+ speech_embeds.reshape(
260
+ B,
261
+ T // self.speech_mlp_scale_factor,
262
+ C * self.speech_mlp_scale_factor,
263
+ )
264
+ )
265
+ if self.speech_mlp_use_projection:
266
+ speech_embeds = self.act_fn(self.gate_proj(speech_embeds)) * self.pool_proj(speech_embeds)
267
+ speech_embeds = self.out_proj(speech_embeds)
268
+ return speech_embeds
269
+
270
+
271
+ MERALION_INPUTS_DOCSTRING = r"""
272
+ Args:
273
+ input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):
274
+ Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide
275
+ it.
276
+
277
+ Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and
278
+ [`PreTrainedTokenizer.__call__`] for details.
279
+
280
+ [What are input IDs?](../glossary#input-ids)
281
+ input_features (`torch.FloatTensor` of shape `(batch_size, feature_size, feature_sequence_length)`, *optional*):
282
+ Float values mel features extracted from the raw speech waveform. Raw speech waveform can be obtained by
283
+ loading a `.flac` or `.wav` audio file into an array of type `List[float]` or a `numpy.ndarray`, *e.g.* via
284
+ the soundfile library (`pip install soundfile`). To prepare the array into `input_features`, the
285
+ [`AutoFeatureExtractor`] should be used for extracting the mel features, padding and conversion into a
286
+ tensor of type `torch.FloatTensor`. See [`~WhisperFeatureExtractor.__call__`]
287
+ attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):
288
+ Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:
289
+
290
+ - 1 for tokens that are **not masked**,
291
+ - 0 for tokens that are **masked**.
292
+
293
+ [What are attention masks?](../glossary#attention-mask)
294
+
295
+ Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and
296
+ [`PreTrainedTokenizer.__call__`] for details.
297
+
298
+ If `past_key_values` is used, optionally only the last `decoder_input_ids` have to be input (see
299
+ `past_key_values`).
300
+
301
+ If you want to change padding behavior, you should read [`modeling_opt._prepare_decoder_attention_mask`]
302
+ and modify to your needs. See diagram 1 in [the paper](https://arxiv.org/abs/1910.13461) for more
303
+ information on the default strategy.
304
+
305
+ - 1 indicates the head is **not masked**,
306
+ - 0 indicates the head is **masked**.
307
+ feature_attention_mask (`torch.Tensor` of shape `(batch_size, feature_sequence_length)`, *optional*):
308
+ Mask to avoid performing attention on padding feature indices. Mask values selected in `[0, 1]`:
309
+
310
+ - 1 for tokens that are **not masked**,
311
+ - 0 for tokens that are **masked**.
312
+ position_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
313
+ Indices of positions of each input sequence tokens in the position embeddings. Selected in the range `[0,
314
+ config.n_positions - 1]`. [What are position IDs?](../glossary#position-ids)
315
+ past_key_values (`tuple(tuple(torch.FloatTensor))`, *optional*, returned when `use_cache=True` is passed or when `config.use_cache=True`):
316
+ Tuple of `tuple(torch.FloatTensor)` of length `config.n_layers`, with each tuple having 2 tensors of shape
317
+ `(batch_size, num_heads, sequence_length, embed_size_per_head)`) and 2 additional tensors of shape
318
+ `(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)`.
319
+
320
+ Contains pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention
321
+ blocks) that can be used (see `past_key_values` input) to speed up sequential decoding.
322
+
323
+ If `past_key_values` are used, the user can optionally input only the last `decoder_input_ids` (those that
324
+ don't have their past key value states given to this model) of shape `(batch_size, 1)` instead of all
325
+ `decoder_input_ids` of shape `(batch_size, sequence_length)`.
326
+ inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*):
327
+ Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation. This
328
+ is useful if you want more control over how to convert `input_ids` indices into associated vectors than the
329
+ model's internal embedding lookup matrix.
330
+ use_cache (`bool`, *optional*):
331
+ If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding (see
332
+ `past_key_values`).
333
+ output_attentions (`bool`, *optional*):
334
+ Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned
335
+ tensors for more detail.
336
+ output_hidden_states (`bool`, *optional*):
337
+ Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for
338
+ more detail.
339
+ return_dict (`bool`, *optional*):
340
+ Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.
341
+ """
342
+
343
+ @add_start_docstrings(
344
+ """The MERALION model which consists of a audio backbone and a language model.""",
345
+ MERALION_START_DOCSTRING,
346
+ )
347
+ class MERaLiON3ForConditionalGeneration(MERaLiON3PreTrainedModel, GenerationMixin):
348
+ def __init__(self, config: MERaLiON3Config):
349
+ config.text_config._attn_implementation = config._attn_implementation
350
+ config.speech_config._attn_implementation = config._attn_implementation
351
+
352
+ super().__init__(config)
353
+
354
+ self.speech_encoder = WhisperEncoder(config.speech_config)
355
+ # self.speech_encoder = AutoModel.from_config(config.audio_config, attn_implementation=config._attn_implementation)
356
+
357
+ self.ln_speech = nn.LayerNorm(config.speech_config.d_model)
358
+ self.speech_audio_adapter = MERaLiON3SpeechAudioAdaperLarge(config)
359
+ self.vocab_size = config.text_config.vocab_size
360
+ self.text_decoder = Gemma2ForCausalLM(config.text_config)
361
+ self.pad_token_id = self.config.pad_token_id if self.config.pad_token_id is not None else -1
362
+ self._padding_side = "left" # set it to left by default, user can use setter to change padding_sides
363
+ self.post_init()
364
+
365
+ @property
366
+ def padding_side(self):
367
+ return self._padding_side
368
+
369
+ @padding_side.setter
370
+ def padding_side(self, padding_side: str):
371
+ if padding_side not in ["left", "right"]:
372
+ raise ValueError(f"{padding_side} is not `left` or `right`.")
373
+ self._padding_side = padding_side
374
+
375
+ # Copied from transformers.models.llava.modeling_llava.LlavaForConditionalGeneration.get_input_embeddings
376
+ def get_input_embeddings(self):
377
+ return self.text_decoder.get_input_embeddings()
378
+
379
+ # Copied from transformers.models.llava.modeling_llava.LlavaForConditionalGeneration.set_input_embeddings
380
+ def set_input_embeddings(self, value):
381
+ self.text_decoder.set_input_embeddings(value)
382
+
383
+ # Copied from transformers.models.llava.modeling_llava.LlavaForConditionalGeneration.get_output_embeddings
384
+ def get_output_embeddings(self):
385
+ return self.text_decoder.get_output_embeddings()
386
+
387
+ # Copied from transformers.models.llava.modeling_llava.LlavaForConditionalGeneration.set_output_embeddings
388
+ def set_output_embeddings(self, new_embeddings):
389
+ self.text_decoder.set_output_embeddings(new_embeddings)
390
+
391
+ # Copied from transformers.models.llava.modeling_llava.LlavaForConditionalGeneration.set_decoder
392
+ def set_decoder(self, decoder):
393
+ self.text_decoder.set_decoder(decoder)
394
+
395
+ # Copied from transformers.models.llava.modeling_llava.LlavaForConditionalGeneration.get_decoder
396
+ def get_decoder(self):
397
+ return self.text_decoder.get_decoder()
398
+
399
+ # Copied from transformers.models.llava.modeling_llava.LlavaForConditionalGeneration.tie_weights
400
+ def tie_weights(self):
401
+ return self.text_decoder.tie_weights()
402
+
403
+ # Copied from transformers.models.llava.modeling_llava.LlavaForConditionalGeneration.resize_token_embeddings
404
+ def resize_token_embeddings(self, new_num_tokens: Optional[int] = None, pad_to_multiple_of=None) -> nn.Embedding:
405
+ model_embeds = self.text_decoder.resize_token_embeddings(new_num_tokens, pad_to_multiple_of)
406
+ # update vocab size
407
+ self.config.text_config.vocab_size = model_embeds.num_embeddings
408
+ self.vocab_size = model_embeds.num_embeddings
409
+ return model_embeds
410
+
411
+ @add_start_docstrings_to_model_forward(MERALION_INPUTS_DOCSTRING)
412
+ @replace_return_docstrings(output_type=MERaLiON3OutputWithPast, config_class=_CONFIG_FOR_DOC)
413
+ def forward(
414
+ self,
415
+ input_ids: torch.LongTensor = None,
416
+ input_features: torch.FloatTensor = None,
417
+ attention_mask: Optional[torch.Tensor] = None,
418
+ feature_attention_mask: Optional[torch.Tensor] = None,
419
+ position_ids: Optional[torch.LongTensor] = None,
420
+ past_key_values: Optional[List[torch.FloatTensor]] = None,
421
+ inputs_embeds: Optional[torch.FloatTensor] = None,
422
+ labels: Optional[torch.LongTensor] = None,
423
+ use_cache: Optional[bool] = None,
424
+ cache_position: Optional[torch.LongTensor] = None,
425
+ output_attentions: Optional[bool] = None,
426
+ output_hidden_states: Optional[bool] = None,
427
+ return_dict: Optional[bool] = None,
428
+ ) -> Union[Tuple, MERaLiON3OutputWithPast]:
429
+ r"""
430
+ Args:
431
+ labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
432
+ Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,
433
+ config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored
434
+ (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`.
435
+
436
+ Returns:
437
+ """
438
+
439
+ output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions
440
+ output_hidden_states = (
441
+ output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states
442
+ )
443
+ return_dict = return_dict if return_dict is not None else self.config.use_return_dict
444
+
445
+ speech_encoder_device = self.speech_encoder.device
446
+
447
+ if input_features is not None:
448
+ input_features = input_features.to(speech_encoder_device)
449
+ feature_attention_mask = feature_attention_mask.to(speech_encoder_device)
450
+
451
+ if inputs_embeds is None:
452
+ speech_contexts_embeds = self.speech_encoder(input_features, attention_mask=feature_attention_mask).last_hidden_state
453
+ speech_contexts_embeds = self.ln_speech(speech_contexts_embeds)
454
+ speech_audio_contexts_embeds = self.speech_audio_adapter(speech_contexts_embeds)
455
+
456
+ inputs_embeds = self.text_decoder.base_model.embed_tokens(input_ids)
457
+
458
+ speech_mask = (input_ids == self.config.speech_token_index).unsqueeze(-1)
459
+ speech_mask = speech_mask.expand_as(inputs_embeds).to(inputs_embeds.device)
460
+
461
+ inputs_embeds = inputs_embeds.masked_scatter(speech_mask, speech_audio_contexts_embeds)
462
+
463
+ input_ids = None
464
+
465
+ outputs = self.text_decoder(
466
+ input_ids=input_ids,
467
+ attention_mask=attention_mask,
468
+ position_ids=position_ids,
469
+ past_key_values=past_key_values,
470
+ inputs_embeds=inputs_embeds,
471
+ use_cache=use_cache,
472
+ cache_position=cache_position,
473
+ output_attentions=output_attentions,
474
+ output_hidden_states=output_hidden_states,
475
+ return_dict=return_dict,
476
+ labels=labels
477
+ )
478
+
479
+ return outputs
480
+
481
+ # from transformers.models.gemma2.modeling_gemma2.Gemma2ForCausalLM.prepare_inputs_for_generation
482
+ def prepare_inputs_for_generation(
483
+ self,
484
+ input_ids,
485
+ attention_mask=None,
486
+ input_features=None,
487
+ feature_attention_mask=None,
488
+ past_key_values=None,
489
+ inputs_embeds=None,
490
+ cache_position=None,
491
+ position_ids=None,
492
+ use_cache=None,
493
+ **kwargs,
494
+ ):
495
+ # If we have cache: let's slice `input_ids` through `cache_position`, to keep only the unprocessed tokens
496
+ # Exception 1: when passing input_embeds, input_ids may be missing entries
497
+ # Exception 2: some generation methods do special slicing of input_ids, so we don't need to do it here
498
+ is_first_step = cache_position[0].item() == 0
499
+ if past_key_values is not None:
500
+ if inputs_embeds is not None: # Exception 1
501
+ input_ids = input_ids[:, -cache_position.shape[0] :]
502
+ elif input_ids.shape[1] != cache_position.shape[0]: # Default case (the "else", a no op, is Exception 2)
503
+ input_ids = input_ids[:, cache_position]
504
+
505
+ if attention_mask is not None and position_ids is None:
506
+ # create position_ids on the fly for batch generation
507
+ position_ids = attention_mask.long().cumsum(-1) - 1
508
+ position_ids.masked_fill_(attention_mask == 0, 1)
509
+ if past_key_values:
510
+ position_ids = position_ids[:, -input_ids.shape[1] :]
511
+ # This `clone` call is needed to avoid recapturing cuda graphs with `torch.compile`'s
512
+ # `mode="reduce-overhead`, as otherwise the input `position_ids` would have various stride
513
+ # during the decoding. Here, simply using `.contiguous()` is not sufficient as in the
514
+ # batch size = 1 case, `position_ids` is already contiguous but with varying stride
515
+ # which retriggers a capture.
516
+ position_ids = position_ids.clone(memory_format=torch.contiguous_format)
517
+
518
+ # if `inputs_embeds` are passed, we only want to use them in the 1st generation step
519
+ if inputs_embeds is not None and is_first_step:
520
+ model_inputs = {"inputs_embeds": inputs_embeds, "input_ids": None}
521
+ else:
522
+ # The clone here is for the same reason as for `position_ids`.
523
+ model_inputs = {"input_ids": input_ids.clone(memory_format=torch.contiguous_format), "inputs_embeds": None}
524
+
525
+ if (
526
+ isinstance(past_key_values, HybridCache)
527
+ and attention_mask.ndim == 2
528
+ and not self.config._attn_implementation == "flash_attention_2"
529
+ ):
530
+ if model_inputs["inputs_embeds"] is not None:
531
+ batch_size, sequence_length, _ = model_inputs["inputs_embeds"].shape
532
+ device = model_inputs["inputs_embeds"].device
533
+ else:
534
+ batch_size, sequence_length = model_inputs["input_ids"].shape
535
+ device = model_inputs["input_ids"].device
536
+ dtype = self.text_decoder.lm_head.weight.dtype
537
+ min_dtype = torch.finfo(dtype).min
538
+ attention_mask = _prepare_4d_causal_attention_mask_with_cache_position(
539
+ attention_mask,
540
+ sequence_length=sequence_length,
541
+ target_length=past_key_values.get_max_cache_shape(),
542
+ dtype=dtype,
543
+ device=device,
544
+ min_dtype=min_dtype,
545
+ cache_position=cache_position,
546
+ batch_size=batch_size,
547
+ )
548
+
549
+ model_inputs.update(
550
+ {
551
+ "attention_mask": attention_mask,
552
+ "position_ids": position_ids,
553
+ "cache_position": cache_position,
554
+ "past_key_values": past_key_values,
555
+ "use_cache": use_cache
556
+ }
557
+ )
558
+
559
+ # Input ids will only be used from the second step.
560
+ if is_first_step:
561
+ model_inputs["input_features"] = input_features
562
+ model_inputs["feature_attention_mask"] = feature_attention_mask
563
+
564
+ return model_inputs
565
+
566
+ def _reorder_cache(self, *args, **kwargs):
567
+ return self.text_decoder._reorder_cache(*args, **kwargs)
preprocessor_config.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auto_map": {
3
+ "AutoProcessor": "processing_meralion3.MERaLiON3Processor"
4
+ },
5
+ "chunk_length": 30,
6
+ "dither": 0.0,
7
+ "feature_extractor_type": "WhisperFeatureExtractor",
8
+ "feature_size": 128,
9
+ "hop_length": 160,
10
+ "n_fft": 400,
11
+ "n_samples": 480000,
12
+ "nb_max_frames": 3000,
13
+ "padding_side": "right",
14
+ "padding_value": 0.0,
15
+ "processor_class": "MERaLiON3Processor",
16
+ "return_attention_mask": false,
17
+ "sampling_rate": 16000
18
+ }
processing_meralion3.py ADDED
@@ -0,0 +1,193 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Processor class for MERaLiON3."""
2
+
3
+ from typing import List, Optional, Union
4
+
5
+ import numpy as np
6
+
7
+ from transformers.feature_extraction_utils import BatchFeature
8
+ from transformers.processing_utils import ProcessorMixin
9
+ from transformers.tokenization_utils_base import PaddingStrategy, PreTokenizedInput, TextInput
10
+
11
+
12
+ # copied from transformers.models.qwen2_audio.processing_qwen2_audio.Qwen2AudioProcessor
13
+ class MERaLiON3Processor(ProcessorMixin):
14
+ r"""
15
+ Constructs a MERaLiON3 processor which wraps a whisper feature extractor and a gemma tokenizer into a single processor.
16
+
17
+ [`MERaLiON3Processor`] offers all the functionalities of [`WhisperFeatureExtractor`] and [`GemmaTokenizer`]. See the
18
+ [`~MERaLiON3Processor.__call__`] and [`~MERaLiON3Processor.decode`] for more information.
19
+
20
+ Args:
21
+ feature_extractor ([`WhisperFeatureExtractor`], *optional*):
22
+ The feature extractor is a required input.
23
+ tokenizer ([`GemmaTokenizer`], *optional*):
24
+ The tokenizer is a required input.
25
+ chat_template (`Optional[str]`, *optional*):
26
+ The Jinja template to use for formatting the conversation. If not provided, the default chat template
27
+ is used.
28
+ """
29
+
30
+ attributes = ["feature_extractor", "tokenizer"]
31
+ feature_extractor_class = "WhisperFeatureExtractor"
32
+ tokenizer_class = "AutoTokenizer"
33
+ valid_kwargs = [
34
+ "fixed_speech_embeds_length",
35
+ "speech_token_index",
36
+ "time_duration_limit",
37
+ "whisper_chunk_size",
38
+ "do_normalize"
39
+ ]
40
+
41
+ def __init__(
42
+ self,
43
+ feature_extractor=None,
44
+ tokenizer=None,
45
+ fixed_speech_embeds_length=100,
46
+ speech_token_index=255999,
47
+ time_duration_limit=300,
48
+ whisper_chunk_size=30,
49
+ do_normalize=True
50
+ ):
51
+ self.fixed_speech_embeds_length = fixed_speech_embeds_length
52
+ self.speech_token_index = speech_token_index
53
+ self.time_duration_limit = time_duration_limit
54
+ self.whisper_chunk_size = whisper_chunk_size
55
+ self.number_chunk_limit = self.time_duration_limit // self.whisper_chunk_size
56
+ self.do_normalize = do_normalize
57
+
58
+ super().__init__(feature_extractor, tokenizer)
59
+
60
+ self.speech_token = self.tokenizer.added_tokens_decoder[self.speech_token_index].content
61
+ self.feature_chunk_size = self.whisper_chunk_size * self.feature_extractor.sampling_rate
62
+
63
+ def _process_text(self, text: List[str], audio_number_chunks: np.ndarray):
64
+ pieces = []
65
+ for i, item in enumerate(text):
66
+ target_string = self.speech_token * self.fixed_speech_embeds_length * audio_number_chunks[i]
67
+ pieces.append(item.replace(self.speech_token, target_string))
68
+ return pieces
69
+
70
+ def _get_number_chunks(self, audios: List[np.ndarray]):
71
+ audio_lengths = np.array([_.shape[0] for _ in audios])
72
+ number_chunks = ((audio_lengths - 1) // self.feature_chunk_size) + 1
73
+ return np.clip(number_chunks, a_min=None, a_max=self.number_chunk_limit)
74
+
75
+ def _get_chunked_audios(self, audios: Union[np.ndarray, List[np.ndarray]]):
76
+ if isinstance(audios, np.ndarray):
77
+ audios = [audios]
78
+
79
+ audio_number_chunks = self._get_number_chunks(audios)
80
+ chunked_audios = []
81
+
82
+ for audio_idx, audio in enumerate(audios):
83
+ for cid in range(audio_number_chunks[audio_idx]):
84
+ chunked_audios.append(
85
+ audio[cid * self.feature_chunk_size: (cid + 1) * self.feature_chunk_size]
86
+ )
87
+ return audio_number_chunks, chunked_audios
88
+
89
+ def __call__(
90
+ self,
91
+ text: Union[TextInput, PreTokenizedInput, List[TextInput], List[PreTokenizedInput]] = None,
92
+ audios: Union[np.ndarray, List[np.ndarray]] = None,
93
+ padding: Union[bool, str, PaddingStrategy] = True,
94
+ sampling_rate: Optional[int] = None,
95
+ do_normalize: Optional[bool] = None,
96
+ **kwargs,
97
+ ) -> BatchFeature:
98
+ """
99
+ Main method to prepare for the model one or several sequences(s) and audio(s). This method forwards the `text`
100
+ and `kwargs` arguments to GemmaTokenizer's [`~GemmaTokenizer.__call__`] if `text` is not `None` to encode
101
+ the text. To prepare the audio(s), this method forwards the `audios` and `kwrags` arguments to
102
+ WhisperFeatureExtractor's [`~WhisperFeatureExtractor.__call__`] if `audios` is not `None`. Please refer to the doctsring
103
+ of the above two methods for more information.
104
+
105
+ Args:
106
+ text (`str`, `List[str]`):
107
+ The sequence or batch of sequences to be encoded. Each sequence can be a string or a list of strings
108
+ (pretokenized string). If the sequences are provided as list of strings (pretokenized), you must set
109
+ `is_split_into_words=True` (to lift the ambiguity with a batch of sequences).
110
+ audios (`np.ndarray`, `List[np.ndarray]`):
111
+ The audio or batch of audios to be prepared. Each audio can be a NumPy array.
112
+ padding (`bool`, `str` or [`~utils.PaddingStrategy`], *optional*, defaults to `True`):
113
+ Select a strategy to pad the returned sequences (according to the model's padding side and padding
114
+ index) among:
115
+ - `True` or `'longest'`: Pad to the longest sequence in the batch (or no padding if only a single
116
+ sequence if provided).
117
+ - `'max_length'`: Pad to a maximum length specified with the argument `max_length` or to the maximum
118
+ acceptable input length for the model if that argument is not provided.
119
+ - `False` or `'do_not_pad'` (default): No padding (i.e., can output a batch with sequences of different
120
+ lengths).
121
+ sampling_rate (`int`, defaults to 16000):
122
+ The sampling rate at which the audio files should be digitalized expressed in hertz (Hz).
123
+ do_normalize (`bool`, defaults to `True`):
124
+ Whether or not to zero-mean unit-variance normalize the input.
125
+ Normalizing can help to significantly improve the performance of the model.
126
+ """
127
+
128
+ if text is None:
129
+ raise ValueError("You need to specify either a `text` input to process.")
130
+ if not isinstance(text, list):
131
+ text = [text]
132
+ if not isinstance(audios, list):
133
+ audios = [audios]
134
+ if sampling_rate is None:
135
+ sampling_rate = self.feature_extractor.sampling_rate
136
+ if do_normalize is None:
137
+ do_normalize = self.do_normalize
138
+
139
+ for i, audio in enumerate(audios):
140
+ if audio.ndim > 1:
141
+ raise Exception(f"MERaLiON3 only accepts mono channel audio, {i+1}th audio have {audios[0].ndim} channels")
142
+
143
+ inputs_dict = {}
144
+
145
+ if audios is not None:
146
+ audio_number_chunks, chunked_audios = self._get_chunked_audios(audios)
147
+ text = self._process_text(text, audio_number_chunks)
148
+
149
+ audio_inputs = self.feature_extractor(
150
+ chunked_audios,
151
+ sampling_rate=sampling_rate,
152
+ return_tensors="pt",
153
+ return_attention_mask=True,
154
+ padding="max_length",
155
+ do_normalize=self.do_normalize,
156
+ )
157
+ audio_inputs["feature_attention_mask"] = audio_inputs.pop(
158
+ "attention_mask"
159
+ ) # rename attention_mask to prevent conflicts later on
160
+ inputs_dict.update(audio_inputs)
161
+
162
+ text_input = self.tokenizer(
163
+ text=text,
164
+ return_tensors="pt",
165
+ add_special_tokens=False,
166
+ return_attention_mask=True,
167
+ padding=padding,
168
+ )
169
+
170
+ inputs_dict["input_ids"] = text_input.input_ids
171
+ inputs_dict["attention_mask"] = text_input.attention_mask
172
+
173
+ return BatchFeature(data={**inputs_dict})
174
+
175
+ def batch_decode(self, *args, **kwargs):
176
+ """
177
+ This method forwards all its arguments to GemmaTokenizer's [`~PreTrainedTokenizer.batch_decode`]. Please
178
+ refer to the docstring of this method for more information.
179
+ """
180
+ return self.tokenizer.batch_decode(*args, **kwargs)
181
+
182
+ def decode(self, *args, **kwargs):
183
+ """
184
+ This method forwards all its arguments to GemmaTokenizer's [`~PreTrainedTokenizer.decode`]. Please refer to
185
+ the docstring of this method for more information.
186
+ """
187
+ return self.tokenizer.decode(*args, **kwargs)
188
+
189
+ @property
190
+ def model_input_names(self):
191
+ tokenizer_input_names = self.tokenizer.model_input_names
192
+ feature_extractor_input_names = self.feature_extractor.model_input_names
193
+ return list(dict.fromkeys(tokenizer_input_names + feature_extractor_input_names + ["feature_attention_mask"]))
processor_config.json ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auto_map": {
3
+ "AutoProcessor": "processing_meralion3.MERaLiON3Processor"
4
+ },
5
+ "do_normalize": true,
6
+ "fixed_speech_embeds_length": 300,
7
+ "processor_class": "MERaLiON3Processor",
8
+ "speech_token_index": 255999,
9
+ "time_duration_limit": 300,
10
+ "whisper_chunk_size": 30
11
+ }
special_tokens_map.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ "<start_of_turn>",
4
+ "<end_of_turn>"
5
+ ],
6
+ "bos_token": {
7
+ "content": "<bos>",
8
+ "lstrip": false,
9
+ "normalized": false,
10
+ "rstrip": false,
11
+ "single_word": false
12
+ },
13
+ "eos_token": {
14
+ "content": "<eos>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false
19
+ },
20
+ "pad_token": {
21
+ "content": "<pad>",
22
+ "lstrip": false,
23
+ "normalized": false,
24
+ "rstrip": false,
25
+ "single_word": false
26
+ },
27
+ "unk_token": {
28
+ "content": "<unk>",
29
+ "lstrip": false,
30
+ "normalized": false,
31
+ "rstrip": false,
32
+ "single_word": false
33
+ }
34
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0ead607d5168e96c02d261dfac8408c63ff2f52e0ac240ac89d0450b3ec805d8
3
+ size 34362877
tokenizer.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:61a7b147390c64585d6c3543dd6fc636906c9af3865a5548f27f31aee1d4c8e2
3
+ size 4241003
tokenizer_config.json ADDED
@@ -0,0 +1,2019 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": true,
3
+ "add_eos_token": false,
4
+ "added_tokens_decoder": {
5
+ "0": {
6
+ "content": "<pad>",
7
+ "lstrip": false,
8
+ "normalized": false,
9
+ "rstrip": false,
10
+ "single_word": false,
11
+ "special": true
12
+ },
13
+ "1": {
14
+ "content": "<eos>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false,
19
+ "special": true
20
+ },
21
+ "2": {
22
+ "content": "<bos>",
23
+ "lstrip": false,
24
+ "normalized": false,
25
+ "rstrip": false,
26
+ "single_word": false,
27
+ "special": true
28
+ },
29
+ "3": {
30
+ "content": "<unk>",
31
+ "lstrip": false,
32
+ "normalized": false,
33
+ "rstrip": false,
34
+ "single_word": false,
35
+ "special": true
36
+ },
37
+ "4": {
38
+ "content": "<mask>",
39
+ "lstrip": false,
40
+ "normalized": false,
41
+ "rstrip": false,
42
+ "single_word": false,
43
+ "special": false
44
+ },
45
+ "5": {
46
+ "content": "<2mass>",
47
+ "lstrip": false,
48
+ "normalized": false,
49
+ "rstrip": false,
50
+ "single_word": false,
51
+ "special": false
52
+ },
53
+ "6": {
54
+ "content": "[@BOS@]",
55
+ "lstrip": false,
56
+ "normalized": false,
57
+ "rstrip": false,
58
+ "single_word": false,
59
+ "special": false
60
+ },
61
+ "7": {
62
+ "content": "<unused0>",
63
+ "lstrip": false,
64
+ "normalized": false,
65
+ "rstrip": false,
66
+ "single_word": false,
67
+ "special": false
68
+ },
69
+ "8": {
70
+ "content": "<unused1>",
71
+ "lstrip": false,
72
+ "normalized": false,
73
+ "rstrip": false,
74
+ "single_word": false,
75
+ "special": false
76
+ },
77
+ "9": {
78
+ "content": "<unused2>",
79
+ "lstrip": false,
80
+ "normalized": false,
81
+ "rstrip": false,
82
+ "single_word": false,
83
+ "special": false
84
+ },
85
+ "10": {
86
+ "content": "<unused3>",
87
+ "lstrip": false,
88
+ "normalized": false,
89
+ "rstrip": false,
90
+ "single_word": false,
91
+ "special": false
92
+ },
93
+ "11": {
94
+ "content": "<unused4>",
95
+ "lstrip": false,
96
+ "normalized": false,
97
+ "rstrip": false,
98
+ "single_word": false,
99
+ "special": false
100
+ },
101
+ "12": {
102
+ "content": "<unused5>",
103
+ "lstrip": false,
104
+ "normalized": false,
105
+ "rstrip": false,
106
+ "single_word": false,
107
+ "special": false
108
+ },
109
+ "13": {
110
+ "content": "<unused6>",
111
+ "lstrip": false,
112
+ "normalized": false,
113
+ "rstrip": false,
114
+ "single_word": false,
115
+ "special": false
116
+ },
117
+ "14": {
118
+ "content": "<unused7>",
119
+ "lstrip": false,
120
+ "normalized": false,
121
+ "rstrip": false,
122
+ "single_word": false,
123
+ "special": false
124
+ },
125
+ "15": {
126
+ "content": "<unused8>",
127
+ "lstrip": false,
128
+ "normalized": false,
129
+ "rstrip": false,
130
+ "single_word": false,
131
+ "special": false
132
+ },
133
+ "16": {
134
+ "content": "<unused9>",
135
+ "lstrip": false,
136
+ "normalized": false,
137
+ "rstrip": false,
138
+ "single_word": false,
139
+ "special": false
140
+ },
141
+ "17": {
142
+ "content": "<unused10>",
143
+ "lstrip": false,
144
+ "normalized": false,
145
+ "rstrip": false,
146
+ "single_word": false,
147
+ "special": false
148
+ },
149
+ "18": {
150
+ "content": "<unused11>",
151
+ "lstrip": false,
152
+ "normalized": false,
153
+ "rstrip": false,
154
+ "single_word": false,
155
+ "special": false
156
+ },
157
+ "19": {
158
+ "content": "<unused12>",
159
+ "lstrip": false,
160
+ "normalized": false,
161
+ "rstrip": false,
162
+ "single_word": false,
163
+ "special": false
164
+ },
165
+ "20": {
166
+ "content": "<unused13>",
167
+ "lstrip": false,
168
+ "normalized": false,
169
+ "rstrip": false,
170
+ "single_word": false,
171
+ "special": false
172
+ },
173
+ "21": {
174
+ "content": "<unused14>",
175
+ "lstrip": false,
176
+ "normalized": false,
177
+ "rstrip": false,
178
+ "single_word": false,
179
+ "special": false
180
+ },
181
+ "22": {
182
+ "content": "<unused15>",
183
+ "lstrip": false,
184
+ "normalized": false,
185
+ "rstrip": false,
186
+ "single_word": false,
187
+ "special": false
188
+ },
189
+ "23": {
190
+ "content": "<unused16>",
191
+ "lstrip": false,
192
+ "normalized": false,
193
+ "rstrip": false,
194
+ "single_word": false,
195
+ "special": false
196
+ },
197
+ "24": {
198
+ "content": "<unused17>",
199
+ "lstrip": false,
200
+ "normalized": false,
201
+ "rstrip": false,
202
+ "single_word": false,
203
+ "special": false
204
+ },
205
+ "25": {
206
+ "content": "<unused18>",
207
+ "lstrip": false,
208
+ "normalized": false,
209
+ "rstrip": false,
210
+ "single_word": false,
211
+ "special": false
212
+ },
213
+ "26": {
214
+ "content": "<unused19>",
215
+ "lstrip": false,
216
+ "normalized": false,
217
+ "rstrip": false,
218
+ "single_word": false,
219
+ "special": false
220
+ },
221
+ "27": {
222
+ "content": "<unused20>",
223
+ "lstrip": false,
224
+ "normalized": false,
225
+ "rstrip": false,
226
+ "single_word": false,
227
+ "special": false
228
+ },
229
+ "28": {
230
+ "content": "<unused21>",
231
+ "lstrip": false,
232
+ "normalized": false,
233
+ "rstrip": false,
234
+ "single_word": false,
235
+ "special": false
236
+ },
237
+ "29": {
238
+ "content": "<unused22>",
239
+ "lstrip": false,
240
+ "normalized": false,
241
+ "rstrip": false,
242
+ "single_word": false,
243
+ "special": false
244
+ },
245
+ "30": {
246
+ "content": "<unused23>",
247
+ "lstrip": false,
248
+ "normalized": false,
249
+ "rstrip": false,
250
+ "single_word": false,
251
+ "special": false
252
+ },
253
+ "31": {
254
+ "content": "<unused24>",
255
+ "lstrip": false,
256
+ "normalized": false,
257
+ "rstrip": false,
258
+ "single_word": false,
259
+ "special": false
260
+ },
261
+ "32": {
262
+ "content": "<unused25>",
263
+ "lstrip": false,
264
+ "normalized": false,
265
+ "rstrip": false,
266
+ "single_word": false,
267
+ "special": false
268
+ },
269
+ "33": {
270
+ "content": "<unused26>",
271
+ "lstrip": false,
272
+ "normalized": false,
273
+ "rstrip": false,
274
+ "single_word": false,
275
+ "special": false
276
+ },
277
+ "34": {
278
+ "content": "<unused27>",
279
+ "lstrip": false,
280
+ "normalized": false,
281
+ "rstrip": false,
282
+ "single_word": false,
283
+ "special": false
284
+ },
285
+ "35": {
286
+ "content": "<unused28>",
287
+ "lstrip": false,
288
+ "normalized": false,
289
+ "rstrip": false,
290
+ "single_word": false,
291
+ "special": false
292
+ },
293
+ "36": {
294
+ "content": "<unused29>",
295
+ "lstrip": false,
296
+ "normalized": false,
297
+ "rstrip": false,
298
+ "single_word": false,
299
+ "special": false
300
+ },
301
+ "37": {
302
+ "content": "<unused30>",
303
+ "lstrip": false,
304
+ "normalized": false,
305
+ "rstrip": false,
306
+ "single_word": false,
307
+ "special": false
308
+ },
309
+ "38": {
310
+ "content": "<unused31>",
311
+ "lstrip": false,
312
+ "normalized": false,
313
+ "rstrip": false,
314
+ "single_word": false,
315
+ "special": false
316
+ },
317
+ "39": {
318
+ "content": "<unused32>",
319
+ "lstrip": false,
320
+ "normalized": false,
321
+ "rstrip": false,
322
+ "single_word": false,
323
+ "special": false
324
+ },
325
+ "40": {
326
+ "content": "<unused33>",
327
+ "lstrip": false,
328
+ "normalized": false,
329
+ "rstrip": false,
330
+ "single_word": false,
331
+ "special": false
332
+ },
333
+ "41": {
334
+ "content": "<unused34>",
335
+ "lstrip": false,
336
+ "normalized": false,
337
+ "rstrip": false,
338
+ "single_word": false,
339
+ "special": false
340
+ },
341
+ "42": {
342
+ "content": "<unused35>",
343
+ "lstrip": false,
344
+ "normalized": false,
345
+ "rstrip": false,
346
+ "single_word": false,
347
+ "special": false
348
+ },
349
+ "43": {
350
+ "content": "<unused36>",
351
+ "lstrip": false,
352
+ "normalized": false,
353
+ "rstrip": false,
354
+ "single_word": false,
355
+ "special": false
356
+ },
357
+ "44": {
358
+ "content": "<unused37>",
359
+ "lstrip": false,
360
+ "normalized": false,
361
+ "rstrip": false,
362
+ "single_word": false,
363
+ "special": false
364
+ },
365
+ "45": {
366
+ "content": "<unused38>",
367
+ "lstrip": false,
368
+ "normalized": false,
369
+ "rstrip": false,
370
+ "single_word": false,
371
+ "special": false
372
+ },
373
+ "46": {
374
+ "content": "<unused39>",
375
+ "lstrip": false,
376
+ "normalized": false,
377
+ "rstrip": false,
378
+ "single_word": false,
379
+ "special": false
380
+ },
381
+ "47": {
382
+ "content": "<unused40>",
383
+ "lstrip": false,
384
+ "normalized": false,
385
+ "rstrip": false,
386
+ "single_word": false,
387
+ "special": false
388
+ },
389
+ "48": {
390
+ "content": "<unused41>",
391
+ "lstrip": false,
392
+ "normalized": false,
393
+ "rstrip": false,
394
+ "single_word": false,
395
+ "special": false
396
+ },
397
+ "49": {
398
+ "content": "<unused42>",
399
+ "lstrip": false,
400
+ "normalized": false,
401
+ "rstrip": false,
402
+ "single_word": false,
403
+ "special": false
404
+ },
405
+ "50": {
406
+ "content": "<unused43>",
407
+ "lstrip": false,
408
+ "normalized": false,
409
+ "rstrip": false,
410
+ "single_word": false,
411
+ "special": false
412
+ },
413
+ "51": {
414
+ "content": "<unused44>",
415
+ "lstrip": false,
416
+ "normalized": false,
417
+ "rstrip": false,
418
+ "single_word": false,
419
+ "special": false
420
+ },
421
+ "52": {
422
+ "content": "<unused45>",
423
+ "lstrip": false,
424
+ "normalized": false,
425
+ "rstrip": false,
426
+ "single_word": false,
427
+ "special": false
428
+ },
429
+ "53": {
430
+ "content": "<unused46>",
431
+ "lstrip": false,
432
+ "normalized": false,
433
+ "rstrip": false,
434
+ "single_word": false,
435
+ "special": false
436
+ },
437
+ "54": {
438
+ "content": "<unused47>",
439
+ "lstrip": false,
440
+ "normalized": false,
441
+ "rstrip": false,
442
+ "single_word": false,
443
+ "special": false
444
+ },
445
+ "55": {
446
+ "content": "<unused48>",
447
+ "lstrip": false,
448
+ "normalized": false,
449
+ "rstrip": false,
450
+ "single_word": false,
451
+ "special": false
452
+ },
453
+ "56": {
454
+ "content": "<unused49>",
455
+ "lstrip": false,
456
+ "normalized": false,
457
+ "rstrip": false,
458
+ "single_word": false,
459
+ "special": false
460
+ },
461
+ "57": {
462
+ "content": "<unused50>",
463
+ "lstrip": false,
464
+ "normalized": false,
465
+ "rstrip": false,
466
+ "single_word": false,
467
+ "special": false
468
+ },
469
+ "58": {
470
+ "content": "<unused51>",
471
+ "lstrip": false,
472
+ "normalized": false,
473
+ "rstrip": false,
474
+ "single_word": false,
475
+ "special": false
476
+ },
477
+ "59": {
478
+ "content": "<unused52>",
479
+ "lstrip": false,
480
+ "normalized": false,
481
+ "rstrip": false,
482
+ "single_word": false,
483
+ "special": false
484
+ },
485
+ "60": {
486
+ "content": "<unused53>",
487
+ "lstrip": false,
488
+ "normalized": false,
489
+ "rstrip": false,
490
+ "single_word": false,
491
+ "special": false
492
+ },
493
+ "61": {
494
+ "content": "<unused54>",
495
+ "lstrip": false,
496
+ "normalized": false,
497
+ "rstrip": false,
498
+ "single_word": false,
499
+ "special": false
500
+ },
501
+ "62": {
502
+ "content": "<unused55>",
503
+ "lstrip": false,
504
+ "normalized": false,
505
+ "rstrip": false,
506
+ "single_word": false,
507
+ "special": false
508
+ },
509
+ "63": {
510
+ "content": "<unused56>",
511
+ "lstrip": false,
512
+ "normalized": false,
513
+ "rstrip": false,
514
+ "single_word": false,
515
+ "special": false
516
+ },
517
+ "64": {
518
+ "content": "<unused57>",
519
+ "lstrip": false,
520
+ "normalized": false,
521
+ "rstrip": false,
522
+ "single_word": false,
523
+ "special": false
524
+ },
525
+ "65": {
526
+ "content": "<unused58>",
527
+ "lstrip": false,
528
+ "normalized": false,
529
+ "rstrip": false,
530
+ "single_word": false,
531
+ "special": false
532
+ },
533
+ "66": {
534
+ "content": "<unused59>",
535
+ "lstrip": false,
536
+ "normalized": false,
537
+ "rstrip": false,
538
+ "single_word": false,
539
+ "special": false
540
+ },
541
+ "67": {
542
+ "content": "<unused60>",
543
+ "lstrip": false,
544
+ "normalized": false,
545
+ "rstrip": false,
546
+ "single_word": false,
547
+ "special": false
548
+ },
549
+ "68": {
550
+ "content": "<unused61>",
551
+ "lstrip": false,
552
+ "normalized": false,
553
+ "rstrip": false,
554
+ "single_word": false,
555
+ "special": false
556
+ },
557
+ "69": {
558
+ "content": "<unused62>",
559
+ "lstrip": false,
560
+ "normalized": false,
561
+ "rstrip": false,
562
+ "single_word": false,
563
+ "special": false
564
+ },
565
+ "70": {
566
+ "content": "<unused63>",
567
+ "lstrip": false,
568
+ "normalized": false,
569
+ "rstrip": false,
570
+ "single_word": false,
571
+ "special": false
572
+ },
573
+ "71": {
574
+ "content": "<unused64>",
575
+ "lstrip": false,
576
+ "normalized": false,
577
+ "rstrip": false,
578
+ "single_word": false,
579
+ "special": false
580
+ },
581
+ "72": {
582
+ "content": "<unused65>",
583
+ "lstrip": false,
584
+ "normalized": false,
585
+ "rstrip": false,
586
+ "single_word": false,
587
+ "special": false
588
+ },
589
+ "73": {
590
+ "content": "<unused66>",
591
+ "lstrip": false,
592
+ "normalized": false,
593
+ "rstrip": false,
594
+ "single_word": false,
595
+ "special": false
596
+ },
597
+ "74": {
598
+ "content": "<unused67>",
599
+ "lstrip": false,
600
+ "normalized": false,
601
+ "rstrip": false,
602
+ "single_word": false,
603
+ "special": false
604
+ },
605
+ "75": {
606
+ "content": "<unused68>",
607
+ "lstrip": false,
608
+ "normalized": false,
609
+ "rstrip": false,
610
+ "single_word": false,
611
+ "special": false
612
+ },
613
+ "76": {
614
+ "content": "<unused69>",
615
+ "lstrip": false,
616
+ "normalized": false,
617
+ "rstrip": false,
618
+ "single_word": false,
619
+ "special": false
620
+ },
621
+ "77": {
622
+ "content": "<unused70>",
623
+ "lstrip": false,
624
+ "normalized": false,
625
+ "rstrip": false,
626
+ "single_word": false,
627
+ "special": false
628
+ },
629
+ "78": {
630
+ "content": "<unused71>",
631
+ "lstrip": false,
632
+ "normalized": false,
633
+ "rstrip": false,
634
+ "single_word": false,
635
+ "special": false
636
+ },
637
+ "79": {
638
+ "content": "<unused72>",
639
+ "lstrip": false,
640
+ "normalized": false,
641
+ "rstrip": false,
642
+ "single_word": false,
643
+ "special": false
644
+ },
645
+ "80": {
646
+ "content": "<unused73>",
647
+ "lstrip": false,
648
+ "normalized": false,
649
+ "rstrip": false,
650
+ "single_word": false,
651
+ "special": false
652
+ },
653
+ "81": {
654
+ "content": "<unused74>",
655
+ "lstrip": false,
656
+ "normalized": false,
657
+ "rstrip": false,
658
+ "single_word": false,
659
+ "special": false
660
+ },
661
+ "82": {
662
+ "content": "<unused75>",
663
+ "lstrip": false,
664
+ "normalized": false,
665
+ "rstrip": false,
666
+ "single_word": false,
667
+ "special": false
668
+ },
669
+ "83": {
670
+ "content": "<unused76>",
671
+ "lstrip": false,
672
+ "normalized": false,
673
+ "rstrip": false,
674
+ "single_word": false,
675
+ "special": false
676
+ },
677
+ "84": {
678
+ "content": "<unused77>",
679
+ "lstrip": false,
680
+ "normalized": false,
681
+ "rstrip": false,
682
+ "single_word": false,
683
+ "special": false
684
+ },
685
+ "85": {
686
+ "content": "<unused78>",
687
+ "lstrip": false,
688
+ "normalized": false,
689
+ "rstrip": false,
690
+ "single_word": false,
691
+ "special": false
692
+ },
693
+ "86": {
694
+ "content": "<unused79>",
695
+ "lstrip": false,
696
+ "normalized": false,
697
+ "rstrip": false,
698
+ "single_word": false,
699
+ "special": false
700
+ },
701
+ "87": {
702
+ "content": "<unused80>",
703
+ "lstrip": false,
704
+ "normalized": false,
705
+ "rstrip": false,
706
+ "single_word": false,
707
+ "special": false
708
+ },
709
+ "88": {
710
+ "content": "<unused81>",
711
+ "lstrip": false,
712
+ "normalized": false,
713
+ "rstrip": false,
714
+ "single_word": false,
715
+ "special": false
716
+ },
717
+ "89": {
718
+ "content": "<unused82>",
719
+ "lstrip": false,
720
+ "normalized": false,
721
+ "rstrip": false,
722
+ "single_word": false,
723
+ "special": false
724
+ },
725
+ "90": {
726
+ "content": "<unused83>",
727
+ "lstrip": false,
728
+ "normalized": false,
729
+ "rstrip": false,
730
+ "single_word": false,
731
+ "special": false
732
+ },
733
+ "91": {
734
+ "content": "<unused84>",
735
+ "lstrip": false,
736
+ "normalized": false,
737
+ "rstrip": false,
738
+ "single_word": false,
739
+ "special": false
740
+ },
741
+ "92": {
742
+ "content": "<unused85>",
743
+ "lstrip": false,
744
+ "normalized": false,
745
+ "rstrip": false,
746
+ "single_word": false,
747
+ "special": false
748
+ },
749
+ "93": {
750
+ "content": "<unused86>",
751
+ "lstrip": false,
752
+ "normalized": false,
753
+ "rstrip": false,
754
+ "single_word": false,
755
+ "special": false
756
+ },
757
+ "94": {
758
+ "content": "<unused87>",
759
+ "lstrip": false,
760
+ "normalized": false,
761
+ "rstrip": false,
762
+ "single_word": false,
763
+ "special": false
764
+ },
765
+ "95": {
766
+ "content": "<unused88>",
767
+ "lstrip": false,
768
+ "normalized": false,
769
+ "rstrip": false,
770
+ "single_word": false,
771
+ "special": false
772
+ },
773
+ "96": {
774
+ "content": "<unused89>",
775
+ "lstrip": false,
776
+ "normalized": false,
777
+ "rstrip": false,
778
+ "single_word": false,
779
+ "special": false
780
+ },
781
+ "97": {
782
+ "content": "<unused90>",
783
+ "lstrip": false,
784
+ "normalized": false,
785
+ "rstrip": false,
786
+ "single_word": false,
787
+ "special": false
788
+ },
789
+ "98": {
790
+ "content": "<unused91>",
791
+ "lstrip": false,
792
+ "normalized": false,
793
+ "rstrip": false,
794
+ "single_word": false,
795
+ "special": false
796
+ },
797
+ "99": {
798
+ "content": "<unused92>",
799
+ "lstrip": false,
800
+ "normalized": false,
801
+ "rstrip": false,
802
+ "single_word": false,
803
+ "special": false
804
+ },
805
+ "100": {
806
+ "content": "<unused93>",
807
+ "lstrip": false,
808
+ "normalized": false,
809
+ "rstrip": false,
810
+ "single_word": false,
811
+ "special": false
812
+ },
813
+ "101": {
814
+ "content": "<unused94>",
815
+ "lstrip": false,
816
+ "normalized": false,
817
+ "rstrip": false,
818
+ "single_word": false,
819
+ "special": false
820
+ },
821
+ "102": {
822
+ "content": "<unused95>",
823
+ "lstrip": false,
824
+ "normalized": false,
825
+ "rstrip": false,
826
+ "single_word": false,
827
+ "special": false
828
+ },
829
+ "103": {
830
+ "content": "<unused96>",
831
+ "lstrip": false,
832
+ "normalized": false,
833
+ "rstrip": false,
834
+ "single_word": false,
835
+ "special": false
836
+ },
837
+ "104": {
838
+ "content": "<unused97>",
839
+ "lstrip": false,
840
+ "normalized": false,
841
+ "rstrip": false,
842
+ "single_word": false,
843
+ "special": false
844
+ },
845
+ "105": {
846
+ "content": "<unused98>",
847
+ "lstrip": false,
848
+ "normalized": false,
849
+ "rstrip": false,
850
+ "single_word": false,
851
+ "special": false
852
+ },
853
+ "106": {
854
+ "content": "<start_of_turn>",
855
+ "lstrip": false,
856
+ "normalized": false,
857
+ "rstrip": false,
858
+ "single_word": false,
859
+ "special": true
860
+ },
861
+ "107": {
862
+ "content": "<end_of_turn>",
863
+ "lstrip": false,
864
+ "normalized": false,
865
+ "rstrip": false,
866
+ "single_word": false,
867
+ "special": true
868
+ },
869
+ "108": {
870
+ "content": "\n",
871
+ "lstrip": false,
872
+ "normalized": false,
873
+ "rstrip": false,
874
+ "single_word": false,
875
+ "special": false
876
+ },
877
+ "109": {
878
+ "content": "\n\n",
879
+ "lstrip": false,
880
+ "normalized": false,
881
+ "rstrip": false,
882
+ "single_word": false,
883
+ "special": false
884
+ },
885
+ "110": {
886
+ "content": "\n\n\n",
887
+ "lstrip": false,
888
+ "normalized": false,
889
+ "rstrip": false,
890
+ "single_word": false,
891
+ "special": false
892
+ },
893
+ "111": {
894
+ "content": "\n\n\n\n",
895
+ "lstrip": false,
896
+ "normalized": false,
897
+ "rstrip": false,
898
+ "single_word": false,
899
+ "special": false
900
+ },
901
+ "112": {
902
+ "content": "\n\n\n\n\n",
903
+ "lstrip": false,
904
+ "normalized": false,
905
+ "rstrip": false,
906
+ "single_word": false,
907
+ "special": false
908
+ },
909
+ "113": {
910
+ "content": "\n\n\n\n\n\n",
911
+ "lstrip": false,
912
+ "normalized": false,
913
+ "rstrip": false,
914
+ "single_word": false,
915
+ "special": false
916
+ },
917
+ "114": {
918
+ "content": "\n\n\n\n\n\n\n",
919
+ "lstrip": false,
920
+ "normalized": false,
921
+ "rstrip": false,
922
+ "single_word": false,
923
+ "special": false
924
+ },
925
+ "115": {
926
+ "content": "\n\n\n\n\n\n\n\n",
927
+ "lstrip": false,
928
+ "normalized": false,
929
+ "rstrip": false,
930
+ "single_word": false,
931
+ "special": false
932
+ },
933
+ "116": {
934
+ "content": "\n\n\n\n\n\n\n\n\n",
935
+ "lstrip": false,
936
+ "normalized": false,
937
+ "rstrip": false,
938
+ "single_word": false,
939
+ "special": false
940
+ },
941
+ "117": {
942
+ "content": "\n\n\n\n\n\n\n\n\n\n",
943
+ "lstrip": false,
944
+ "normalized": false,
945
+ "rstrip": false,
946
+ "single_word": false,
947
+ "special": false
948
+ },
949
+ "118": {
950
+ "content": "\n\n\n\n\n\n\n\n\n\n\n",
951
+ "lstrip": false,
952
+ "normalized": false,
953
+ "rstrip": false,
954
+ "single_word": false,
955
+ "special": false
956
+ },
957
+ "119": {
958
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n",
959
+ "lstrip": false,
960
+ "normalized": false,
961
+ "rstrip": false,
962
+ "single_word": false,
963
+ "special": false
964
+ },
965
+ "120": {
966
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n",
967
+ "lstrip": false,
968
+ "normalized": false,
969
+ "rstrip": false,
970
+ "single_word": false,
971
+ "special": false
972
+ },
973
+ "121": {
974
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
975
+ "lstrip": false,
976
+ "normalized": false,
977
+ "rstrip": false,
978
+ "single_word": false,
979
+ "special": false
980
+ },
981
+ "122": {
982
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
983
+ "lstrip": false,
984
+ "normalized": false,
985
+ "rstrip": false,
986
+ "single_word": false,
987
+ "special": false
988
+ },
989
+ "123": {
990
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
991
+ "lstrip": false,
992
+ "normalized": false,
993
+ "rstrip": false,
994
+ "single_word": false,
995
+ "special": false
996
+ },
997
+ "124": {
998
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
999
+ "lstrip": false,
1000
+ "normalized": false,
1001
+ "rstrip": false,
1002
+ "single_word": false,
1003
+ "special": false
1004
+ },
1005
+ "125": {
1006
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1007
+ "lstrip": false,
1008
+ "normalized": false,
1009
+ "rstrip": false,
1010
+ "single_word": false,
1011
+ "special": false
1012
+ },
1013
+ "126": {
1014
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1015
+ "lstrip": false,
1016
+ "normalized": false,
1017
+ "rstrip": false,
1018
+ "single_word": false,
1019
+ "special": false
1020
+ },
1021
+ "127": {
1022
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1023
+ "lstrip": false,
1024
+ "normalized": false,
1025
+ "rstrip": false,
1026
+ "single_word": false,
1027
+ "special": false
1028
+ },
1029
+ "128": {
1030
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1031
+ "lstrip": false,
1032
+ "normalized": false,
1033
+ "rstrip": false,
1034
+ "single_word": false,
1035
+ "special": false
1036
+ },
1037
+ "129": {
1038
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1039
+ "lstrip": false,
1040
+ "normalized": false,
1041
+ "rstrip": false,
1042
+ "single_word": false,
1043
+ "special": false
1044
+ },
1045
+ "130": {
1046
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1047
+ "lstrip": false,
1048
+ "normalized": false,
1049
+ "rstrip": false,
1050
+ "single_word": false,
1051
+ "special": false
1052
+ },
1053
+ "131": {
1054
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1055
+ "lstrip": false,
1056
+ "normalized": false,
1057
+ "rstrip": false,
1058
+ "single_word": false,
1059
+ "special": false
1060
+ },
1061
+ "132": {
1062
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1063
+ "lstrip": false,
1064
+ "normalized": false,
1065
+ "rstrip": false,
1066
+ "single_word": false,
1067
+ "special": false
1068
+ },
1069
+ "133": {
1070
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1071
+ "lstrip": false,
1072
+ "normalized": false,
1073
+ "rstrip": false,
1074
+ "single_word": false,
1075
+ "special": false
1076
+ },
1077
+ "134": {
1078
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1079
+ "lstrip": false,
1080
+ "normalized": false,
1081
+ "rstrip": false,
1082
+ "single_word": false,
1083
+ "special": false
1084
+ },
1085
+ "135": {
1086
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1087
+ "lstrip": false,
1088
+ "normalized": false,
1089
+ "rstrip": false,
1090
+ "single_word": false,
1091
+ "special": false
1092
+ },
1093
+ "136": {
1094
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1095
+ "lstrip": false,
1096
+ "normalized": false,
1097
+ "rstrip": false,
1098
+ "single_word": false,
1099
+ "special": false
1100
+ },
1101
+ "137": {
1102
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1103
+ "lstrip": false,
1104
+ "normalized": false,
1105
+ "rstrip": false,
1106
+ "single_word": false,
1107
+ "special": false
1108
+ },
1109
+ "138": {
1110
+ "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
1111
+ "lstrip": false,
1112
+ "normalized": false,
1113
+ "rstrip": false,
1114
+ "single_word": false,
1115
+ "special": false
1116
+ },
1117
+ "139": {
1118
+ "content": "▁▁",
1119
+ "lstrip": false,
1120
+ "normalized": false,
1121
+ "rstrip": false,
1122
+ "single_word": false,
1123
+ "special": false
1124
+ },
1125
+ "140": {
1126
+ "content": "▁▁▁",
1127
+ "lstrip": false,
1128
+ "normalized": false,
1129
+ "rstrip": false,
1130
+ "single_word": false,
1131
+ "special": false
1132
+ },
1133
+ "141": {
1134
+ "content": "▁▁▁▁",
1135
+ "lstrip": false,
1136
+ "normalized": false,
1137
+ "rstrip": false,
1138
+ "single_word": false,
1139
+ "special": false
1140
+ },
1141
+ "142": {
1142
+ "content": "▁▁▁▁▁",
1143
+ "lstrip": false,
1144
+ "normalized": false,
1145
+ "rstrip": false,
1146
+ "single_word": false,
1147
+ "special": false
1148
+ },
1149
+ "143": {
1150
+ "content": "▁▁▁▁▁▁",
1151
+ "lstrip": false,
1152
+ "normalized": false,
1153
+ "rstrip": false,
1154
+ "single_word": false,
1155
+ "special": false
1156
+ },
1157
+ "144": {
1158
+ "content": "▁▁▁▁▁▁▁",
1159
+ "lstrip": false,
1160
+ "normalized": false,
1161
+ "rstrip": false,
1162
+ "single_word": false,
1163
+ "special": false
1164
+ },
1165
+ "145": {
1166
+ "content": "▁▁▁▁▁▁▁▁",
1167
+ "lstrip": false,
1168
+ "normalized": false,
1169
+ "rstrip": false,
1170
+ "single_word": false,
1171
+ "special": false
1172
+ },
1173
+ "146": {
1174
+ "content": "▁▁▁▁▁▁▁▁▁",
1175
+ "lstrip": false,
1176
+ "normalized": false,
1177
+ "rstrip": false,
1178
+ "single_word": false,
1179
+ "special": false
1180
+ },
1181
+ "147": {
1182
+ "content": "▁▁▁▁▁▁▁▁▁▁",
1183
+ "lstrip": false,
1184
+ "normalized": false,
1185
+ "rstrip": false,
1186
+ "single_word": false,
1187
+ "special": false
1188
+ },
1189
+ "148": {
1190
+ "content": "▁▁▁▁▁▁▁▁▁▁▁",
1191
+ "lstrip": false,
1192
+ "normalized": false,
1193
+ "rstrip": false,
1194
+ "single_word": false,
1195
+ "special": false
1196
+ },
1197
+ "149": {
1198
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁",
1199
+ "lstrip": false,
1200
+ "normalized": false,
1201
+ "rstrip": false,
1202
+ "single_word": false,
1203
+ "special": false
1204
+ },
1205
+ "150": {
1206
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁",
1207
+ "lstrip": false,
1208
+ "normalized": false,
1209
+ "rstrip": false,
1210
+ "single_word": false,
1211
+ "special": false
1212
+ },
1213
+ "151": {
1214
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1215
+ "lstrip": false,
1216
+ "normalized": false,
1217
+ "rstrip": false,
1218
+ "single_word": false,
1219
+ "special": false
1220
+ },
1221
+ "152": {
1222
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1223
+ "lstrip": false,
1224
+ "normalized": false,
1225
+ "rstrip": false,
1226
+ "single_word": false,
1227
+ "special": false
1228
+ },
1229
+ "153": {
1230
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1231
+ "lstrip": false,
1232
+ "normalized": false,
1233
+ "rstrip": false,
1234
+ "single_word": false,
1235
+ "special": false
1236
+ },
1237
+ "154": {
1238
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1239
+ "lstrip": false,
1240
+ "normalized": false,
1241
+ "rstrip": false,
1242
+ "single_word": false,
1243
+ "special": false
1244
+ },
1245
+ "155": {
1246
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1247
+ "lstrip": false,
1248
+ "normalized": false,
1249
+ "rstrip": false,
1250
+ "single_word": false,
1251
+ "special": false
1252
+ },
1253
+ "156": {
1254
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1255
+ "lstrip": false,
1256
+ "normalized": false,
1257
+ "rstrip": false,
1258
+ "single_word": false,
1259
+ "special": false
1260
+ },
1261
+ "157": {
1262
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1263
+ "lstrip": false,
1264
+ "normalized": false,
1265
+ "rstrip": false,
1266
+ "single_word": false,
1267
+ "special": false
1268
+ },
1269
+ "158": {
1270
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1271
+ "lstrip": false,
1272
+ "normalized": false,
1273
+ "rstrip": false,
1274
+ "single_word": false,
1275
+ "special": false
1276
+ },
1277
+ "159": {
1278
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1279
+ "lstrip": false,
1280
+ "normalized": false,
1281
+ "rstrip": false,
1282
+ "single_word": false,
1283
+ "special": false
1284
+ },
1285
+ "160": {
1286
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1287
+ "lstrip": false,
1288
+ "normalized": false,
1289
+ "rstrip": false,
1290
+ "single_word": false,
1291
+ "special": false
1292
+ },
1293
+ "161": {
1294
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1295
+ "lstrip": false,
1296
+ "normalized": false,
1297
+ "rstrip": false,
1298
+ "single_word": false,
1299
+ "special": false
1300
+ },
1301
+ "162": {
1302
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1303
+ "lstrip": false,
1304
+ "normalized": false,
1305
+ "rstrip": false,
1306
+ "single_word": false,
1307
+ "special": false
1308
+ },
1309
+ "163": {
1310
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1311
+ "lstrip": false,
1312
+ "normalized": false,
1313
+ "rstrip": false,
1314
+ "single_word": false,
1315
+ "special": false
1316
+ },
1317
+ "164": {
1318
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1319
+ "lstrip": false,
1320
+ "normalized": false,
1321
+ "rstrip": false,
1322
+ "single_word": false,
1323
+ "special": false
1324
+ },
1325
+ "165": {
1326
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1327
+ "lstrip": false,
1328
+ "normalized": false,
1329
+ "rstrip": false,
1330
+ "single_word": false,
1331
+ "special": false
1332
+ },
1333
+ "166": {
1334
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1335
+ "lstrip": false,
1336
+ "normalized": false,
1337
+ "rstrip": false,
1338
+ "single_word": false,
1339
+ "special": false
1340
+ },
1341
+ "167": {
1342
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1343
+ "lstrip": false,
1344
+ "normalized": false,
1345
+ "rstrip": false,
1346
+ "single_word": false,
1347
+ "special": false
1348
+ },
1349
+ "168": {
1350
+ "content": "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁",
1351
+ "lstrip": false,
1352
+ "normalized": false,
1353
+ "rstrip": false,
1354
+ "single_word": false,
1355
+ "special": false
1356
+ },
1357
+ "169": {
1358
+ "content": "<table>",
1359
+ "lstrip": false,
1360
+ "normalized": false,
1361
+ "rstrip": false,
1362
+ "single_word": false,
1363
+ "special": false
1364
+ },
1365
+ "170": {
1366
+ "content": "<caption>",
1367
+ "lstrip": false,
1368
+ "normalized": false,
1369
+ "rstrip": false,
1370
+ "single_word": false,
1371
+ "special": false
1372
+ },
1373
+ "171": {
1374
+ "content": "<thead>",
1375
+ "lstrip": false,
1376
+ "normalized": false,
1377
+ "rstrip": false,
1378
+ "single_word": false,
1379
+ "special": false
1380
+ },
1381
+ "172": {
1382
+ "content": "<tbody>",
1383
+ "lstrip": false,
1384
+ "normalized": false,
1385
+ "rstrip": false,
1386
+ "single_word": false,
1387
+ "special": false
1388
+ },
1389
+ "173": {
1390
+ "content": "<tfoot>",
1391
+ "lstrip": false,
1392
+ "normalized": false,
1393
+ "rstrip": false,
1394
+ "single_word": false,
1395
+ "special": false
1396
+ },
1397
+ "174": {
1398
+ "content": "<tr>",
1399
+ "lstrip": false,
1400
+ "normalized": false,
1401
+ "rstrip": false,
1402
+ "single_word": false,
1403
+ "special": false
1404
+ },
1405
+ "175": {
1406
+ "content": "<th>",
1407
+ "lstrip": false,
1408
+ "normalized": false,
1409
+ "rstrip": false,
1410
+ "single_word": false,
1411
+ "special": false
1412
+ },
1413
+ "176": {
1414
+ "content": "<td>",
1415
+ "lstrip": false,
1416
+ "normalized": false,
1417
+ "rstrip": false,
1418
+ "single_word": false,
1419
+ "special": false
1420
+ },
1421
+ "177": {
1422
+ "content": "</table>",
1423
+ "lstrip": false,
1424
+ "normalized": false,
1425
+ "rstrip": false,
1426
+ "single_word": false,
1427
+ "special": false
1428
+ },
1429
+ "178": {
1430
+ "content": "</caption>",
1431
+ "lstrip": false,
1432
+ "normalized": false,
1433
+ "rstrip": false,
1434
+ "single_word": false,
1435
+ "special": false
1436
+ },
1437
+ "179": {
1438
+ "content": "</thead>",
1439
+ "lstrip": false,
1440
+ "normalized": false,
1441
+ "rstrip": false,
1442
+ "single_word": false,
1443
+ "special": false
1444
+ },
1445
+ "180": {
1446
+ "content": "</tbody>",
1447
+ "lstrip": false,
1448
+ "normalized": false,
1449
+ "rstrip": false,
1450
+ "single_word": false,
1451
+ "special": false
1452
+ },
1453
+ "181": {
1454
+ "content": "</tfoot>",
1455
+ "lstrip": false,
1456
+ "normalized": false,
1457
+ "rstrip": false,
1458
+ "single_word": false,
1459
+ "special": false
1460
+ },
1461
+ "182": {
1462
+ "content": "</tr>",
1463
+ "lstrip": false,
1464
+ "normalized": false,
1465
+ "rstrip": false,
1466
+ "single_word": false,
1467
+ "special": false
1468
+ },
1469
+ "183": {
1470
+ "content": "</th>",
1471
+ "lstrip": false,
1472
+ "normalized": false,
1473
+ "rstrip": false,
1474
+ "single_word": false,
1475
+ "special": false
1476
+ },
1477
+ "184": {
1478
+ "content": "</td>",
1479
+ "lstrip": false,
1480
+ "normalized": false,
1481
+ "rstrip": false,
1482
+ "single_word": false,
1483
+ "special": false
1484
+ },
1485
+ "185": {
1486
+ "content": "<h1>",
1487
+ "lstrip": false,
1488
+ "normalized": false,
1489
+ "rstrip": false,
1490
+ "single_word": false,
1491
+ "special": false
1492
+ },
1493
+ "186": {
1494
+ "content": "<h2>",
1495
+ "lstrip": false,
1496
+ "normalized": false,
1497
+ "rstrip": false,
1498
+ "single_word": false,
1499
+ "special": false
1500
+ },
1501
+ "187": {
1502
+ "content": "<h3>",
1503
+ "lstrip": false,
1504
+ "normalized": false,
1505
+ "rstrip": false,
1506
+ "single_word": false,
1507
+ "special": false
1508
+ },
1509
+ "188": {
1510
+ "content": "<h4>",
1511
+ "lstrip": false,
1512
+ "normalized": false,
1513
+ "rstrip": false,
1514
+ "single_word": false,
1515
+ "special": false
1516
+ },
1517
+ "189": {
1518
+ "content": "<h5>",
1519
+ "lstrip": false,
1520
+ "normalized": false,
1521
+ "rstrip": false,
1522
+ "single_word": false,
1523
+ "special": false
1524
+ },
1525
+ "190": {
1526
+ "content": "<h6>",
1527
+ "lstrip": false,
1528
+ "normalized": false,
1529
+ "rstrip": false,
1530
+ "single_word": false,
1531
+ "special": false
1532
+ },
1533
+ "191": {
1534
+ "content": "<blockquote>",
1535
+ "lstrip": false,
1536
+ "normalized": false,
1537
+ "rstrip": false,
1538
+ "single_word": false,
1539
+ "special": false
1540
+ },
1541
+ "192": {
1542
+ "content": "</h1>",
1543
+ "lstrip": false,
1544
+ "normalized": false,
1545
+ "rstrip": false,
1546
+ "single_word": false,
1547
+ "special": false
1548
+ },
1549
+ "193": {
1550
+ "content": "</h2>",
1551
+ "lstrip": false,
1552
+ "normalized": false,
1553
+ "rstrip": false,
1554
+ "single_word": false,
1555
+ "special": false
1556
+ },
1557
+ "194": {
1558
+ "content": "</h3>",
1559
+ "lstrip": false,
1560
+ "normalized": false,
1561
+ "rstrip": false,
1562
+ "single_word": false,
1563
+ "special": false
1564
+ },
1565
+ "195": {
1566
+ "content": "</h4>",
1567
+ "lstrip": false,
1568
+ "normalized": false,
1569
+ "rstrip": false,
1570
+ "single_word": false,
1571
+ "special": false
1572
+ },
1573
+ "196": {
1574
+ "content": "</h5>",
1575
+ "lstrip": false,
1576
+ "normalized": false,
1577
+ "rstrip": false,
1578
+ "single_word": false,
1579
+ "special": false
1580
+ },
1581
+ "197": {
1582
+ "content": "</h6>",
1583
+ "lstrip": false,
1584
+ "normalized": false,
1585
+ "rstrip": false,
1586
+ "single_word": false,
1587
+ "special": false
1588
+ },
1589
+ "198": {
1590
+ "content": "</blockquote>",
1591
+ "lstrip": false,
1592
+ "normalized": false,
1593
+ "rstrip": false,
1594
+ "single_word": false,
1595
+ "special": false
1596
+ },
1597
+ "199": {
1598
+ "content": "<strong>",
1599
+ "lstrip": false,
1600
+ "normalized": false,
1601
+ "rstrip": false,
1602
+ "single_word": false,
1603
+ "special": false
1604
+ },
1605
+ "200": {
1606
+ "content": "<em>",
1607
+ "lstrip": false,
1608
+ "normalized": false,
1609
+ "rstrip": false,
1610
+ "single_word": false,
1611
+ "special": false
1612
+ },
1613
+ "201": {
1614
+ "content": "<b>",
1615
+ "lstrip": false,
1616
+ "normalized": false,
1617
+ "rstrip": false,
1618
+ "single_word": false,
1619
+ "special": false
1620
+ },
1621
+ "202": {
1622
+ "content": "<i>",
1623
+ "lstrip": false,
1624
+ "normalized": false,
1625
+ "rstrip": false,
1626
+ "single_word": false,
1627
+ "special": false
1628
+ },
1629
+ "203": {
1630
+ "content": "<u>",
1631
+ "lstrip": false,
1632
+ "normalized": false,
1633
+ "rstrip": false,
1634
+ "single_word": false,
1635
+ "special": false
1636
+ },
1637
+ "204": {
1638
+ "content": "<s>",
1639
+ "lstrip": false,
1640
+ "normalized": false,
1641
+ "rstrip": false,
1642
+ "single_word": false,
1643
+ "special": false
1644
+ },
1645
+ "205": {
1646
+ "content": "<sub>",
1647
+ "lstrip": false,
1648
+ "normalized": false,
1649
+ "rstrip": false,
1650
+ "single_word": false,
1651
+ "special": false
1652
+ },
1653
+ "206": {
1654
+ "content": "<sup>",
1655
+ "lstrip": false,
1656
+ "normalized": false,
1657
+ "rstrip": false,
1658
+ "single_word": false,
1659
+ "special": false
1660
+ },
1661
+ "207": {
1662
+ "content": "<code>",
1663
+ "lstrip": false,
1664
+ "normalized": false,
1665
+ "rstrip": false,
1666
+ "single_word": false,
1667
+ "special": false
1668
+ },
1669
+ "208": {
1670
+ "content": "</strong>",
1671
+ "lstrip": false,
1672
+ "normalized": false,
1673
+ "rstrip": false,
1674
+ "single_word": false,
1675
+ "special": false
1676
+ },
1677
+ "209": {
1678
+ "content": "</em>",
1679
+ "lstrip": false,
1680
+ "normalized": false,
1681
+ "rstrip": false,
1682
+ "single_word": false,
1683
+ "special": false
1684
+ },
1685
+ "210": {
1686
+ "content": "</b>",
1687
+ "lstrip": false,
1688
+ "normalized": false,
1689
+ "rstrip": false,
1690
+ "single_word": false,
1691
+ "special": false
1692
+ },
1693
+ "211": {
1694
+ "content": "</i>",
1695
+ "lstrip": false,
1696
+ "normalized": false,
1697
+ "rstrip": false,
1698
+ "single_word": false,
1699
+ "special": false
1700
+ },
1701
+ "212": {
1702
+ "content": "</u>",
1703
+ "lstrip": false,
1704
+ "normalized": false,
1705
+ "rstrip": false,
1706
+ "single_word": false,
1707
+ "special": false
1708
+ },
1709
+ "213": {
1710
+ "content": "</s>",
1711
+ "lstrip": false,
1712
+ "normalized": false,
1713
+ "rstrip": false,
1714
+ "single_word": false,
1715
+ "special": false
1716
+ },
1717
+ "214": {
1718
+ "content": "</sub>",
1719
+ "lstrip": false,
1720
+ "normalized": false,
1721
+ "rstrip": false,
1722
+ "single_word": false,
1723
+ "special": false
1724
+ },
1725
+ "215": {
1726
+ "content": "</sup>",
1727
+ "lstrip": false,
1728
+ "normalized": false,
1729
+ "rstrip": false,
1730
+ "single_word": false,
1731
+ "special": false
1732
+ },
1733
+ "216": {
1734
+ "content": "</code>",
1735
+ "lstrip": false,
1736
+ "normalized": false,
1737
+ "rstrip": false,
1738
+ "single_word": false,
1739
+ "special": false
1740
+ },
1741
+ "255968": {
1742
+ "content": "[toxicity=0]",
1743
+ "lstrip": false,
1744
+ "normalized": false,
1745
+ "rstrip": false,
1746
+ "single_word": false,
1747
+ "special": false
1748
+ },
1749
+ "255969": {
1750
+ "content": "\t\t",
1751
+ "lstrip": false,
1752
+ "normalized": false,
1753
+ "rstrip": false,
1754
+ "single_word": false,
1755
+ "special": false
1756
+ },
1757
+ "255970": {
1758
+ "content": "\t\t\t",
1759
+ "lstrip": false,
1760
+ "normalized": false,
1761
+ "rstrip": false,
1762
+ "single_word": false,
1763
+ "special": false
1764
+ },
1765
+ "255971": {
1766
+ "content": "\t\t\t\t",
1767
+ "lstrip": false,
1768
+ "normalized": false,
1769
+ "rstrip": false,
1770
+ "single_word": false,
1771
+ "special": false
1772
+ },
1773
+ "255972": {
1774
+ "content": "\t\t\t\t\t",
1775
+ "lstrip": false,
1776
+ "normalized": false,
1777
+ "rstrip": false,
1778
+ "single_word": false,
1779
+ "special": false
1780
+ },
1781
+ "255973": {
1782
+ "content": "\t\t\t\t\t\t",
1783
+ "lstrip": false,
1784
+ "normalized": false,
1785
+ "rstrip": false,
1786
+ "single_word": false,
1787
+ "special": false
1788
+ },
1789
+ "255974": {
1790
+ "content": "\t\t\t\t\t\t\t",
1791
+ "lstrip": false,
1792
+ "normalized": false,
1793
+ "rstrip": false,
1794
+ "single_word": false,
1795
+ "special": false
1796
+ },
1797
+ "255975": {
1798
+ "content": "\t\t\t\t\t\t\t\t",
1799
+ "lstrip": false,
1800
+ "normalized": false,
1801
+ "rstrip": false,
1802
+ "single_word": false,
1803
+ "special": false
1804
+ },
1805
+ "255976": {
1806
+ "content": "\t\t\t\t\t\t\t\t\t",
1807
+ "lstrip": false,
1808
+ "normalized": false,
1809
+ "rstrip": false,
1810
+ "single_word": false,
1811
+ "special": false
1812
+ },
1813
+ "255977": {
1814
+ "content": "\t\t\t\t\t\t\t\t\t\t",
1815
+ "lstrip": false,
1816
+ "normalized": false,
1817
+ "rstrip": false,
1818
+ "single_word": false,
1819
+ "special": false
1820
+ },
1821
+ "255978": {
1822
+ "content": "\t\t\t\t\t\t\t\t\t\t\t",
1823
+ "lstrip": false,
1824
+ "normalized": false,
1825
+ "rstrip": false,
1826
+ "single_word": false,
1827
+ "special": false
1828
+ },
1829
+ "255979": {
1830
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t",
1831
+ "lstrip": false,
1832
+ "normalized": false,
1833
+ "rstrip": false,
1834
+ "single_word": false,
1835
+ "special": false
1836
+ },
1837
+ "255980": {
1838
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t",
1839
+ "lstrip": false,
1840
+ "normalized": false,
1841
+ "rstrip": false,
1842
+ "single_word": false,
1843
+ "special": false
1844
+ },
1845
+ "255981": {
1846
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1847
+ "lstrip": false,
1848
+ "normalized": false,
1849
+ "rstrip": false,
1850
+ "single_word": false,
1851
+ "special": false
1852
+ },
1853
+ "255982": {
1854
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1855
+ "lstrip": false,
1856
+ "normalized": false,
1857
+ "rstrip": false,
1858
+ "single_word": false,
1859
+ "special": false
1860
+ },
1861
+ "255983": {
1862
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1863
+ "lstrip": false,
1864
+ "normalized": false,
1865
+ "rstrip": false,
1866
+ "single_word": false,
1867
+ "special": false
1868
+ },
1869
+ "255984": {
1870
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1871
+ "lstrip": false,
1872
+ "normalized": false,
1873
+ "rstrip": false,
1874
+ "single_word": false,
1875
+ "special": false
1876
+ },
1877
+ "255985": {
1878
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1879
+ "lstrip": false,
1880
+ "normalized": false,
1881
+ "rstrip": false,
1882
+ "single_word": false,
1883
+ "special": false
1884
+ },
1885
+ "255986": {
1886
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1887
+ "lstrip": false,
1888
+ "normalized": false,
1889
+ "rstrip": false,
1890
+ "single_word": false,
1891
+ "special": false
1892
+ },
1893
+ "255987": {
1894
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1895
+ "lstrip": false,
1896
+ "normalized": false,
1897
+ "rstrip": false,
1898
+ "single_word": false,
1899
+ "special": false
1900
+ },
1901
+ "255988": {
1902
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1903
+ "lstrip": false,
1904
+ "normalized": false,
1905
+ "rstrip": false,
1906
+ "single_word": false,
1907
+ "special": false
1908
+ },
1909
+ "255989": {
1910
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1911
+ "lstrip": false,
1912
+ "normalized": false,
1913
+ "rstrip": false,
1914
+ "single_word": false,
1915
+ "special": false
1916
+ },
1917
+ "255990": {
1918
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1919
+ "lstrip": false,
1920
+ "normalized": false,
1921
+ "rstrip": false,
1922
+ "single_word": false,
1923
+ "special": false
1924
+ },
1925
+ "255991": {
1926
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1927
+ "lstrip": false,
1928
+ "normalized": false,
1929
+ "rstrip": false,
1930
+ "single_word": false,
1931
+ "special": false
1932
+ },
1933
+ "255992": {
1934
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1935
+ "lstrip": false,
1936
+ "normalized": false,
1937
+ "rstrip": false,
1938
+ "single_word": false,
1939
+ "special": false
1940
+ },
1941
+ "255993": {
1942
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1943
+ "lstrip": false,
1944
+ "normalized": false,
1945
+ "rstrip": false,
1946
+ "single_word": false,
1947
+ "special": false
1948
+ },
1949
+ "255994": {
1950
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1951
+ "lstrip": false,
1952
+ "normalized": false,
1953
+ "rstrip": false,
1954
+ "single_word": false,
1955
+ "special": false
1956
+ },
1957
+ "255995": {
1958
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1959
+ "lstrip": false,
1960
+ "normalized": false,
1961
+ "rstrip": false,
1962
+ "single_word": false,
1963
+ "special": false
1964
+ },
1965
+ "255996": {
1966
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1967
+ "lstrip": false,
1968
+ "normalized": false,
1969
+ "rstrip": false,
1970
+ "single_word": false,
1971
+ "special": false
1972
+ },
1973
+ "255997": {
1974
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1975
+ "lstrip": false,
1976
+ "normalized": false,
1977
+ "rstrip": false,
1978
+ "single_word": false,
1979
+ "special": false
1980
+ },
1981
+ "255998": {
1982
+ "content": "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",
1983
+ "lstrip": false,
1984
+ "normalized": false,
1985
+ "rstrip": false,
1986
+ "single_word": false,
1987
+ "special": false
1988
+ },
1989
+ "255999": {
1990
+ "content": "<SpeechHere>",
1991
+ "lstrip": false,
1992
+ "normalized": false,
1993
+ "rstrip": false,
1994
+ "single_word": false,
1995
+ "special": false
1996
+ }
1997
+ },
1998
+ "additional_special_tokens": [
1999
+ "<start_of_turn>",
2000
+ "<end_of_turn>"
2001
+ ],
2002
+ "auto_map": {
2003
+ "AutoProcessor": "processing_meralion3.MERaLiON3Processor"
2004
+ },
2005
+ "bos_token": "<bos>",
2006
+ "chat_template": "{{ bos_token }}{% for message in messages %}{% if (message['role'] == 'assistant') %}{% set role = 'model' %}{% else %}{% set role = message['role'] %}{% endif %}{{ '<start_of_turn>' + role + '\n' + message['content'] | trim + '<end_of_turn>\n' }}{% endfor %}{% if add_generation_prompt %}{{'<start_of_turn>model\n'}}{% endif %}",
2007
+ "clean_up_tokenization_spaces": false,
2008
+ "eos_token": "<eos>",
2009
+ "extra_special_tokens": {},
2010
+ "model_max_length": 1000000000000000019884624838656,
2011
+ "pad_token": "<pad>",
2012
+ "padding_side": "left",
2013
+ "processor_class": "MERaLiON3Processor",
2014
+ "sp_model_kwargs": {},
2015
+ "spaces_between_special_tokens": false,
2016
+ "tokenizer_class": "GemmaTokenizer",
2017
+ "unk_token": "<unk>",
2018
+ "use_default_system_prompt": false
2019
+ }