0x8badbeef commited on
Commit
d0002ff
·
verified ·
1 Parent(s): 4c54f5f

Upload folder using huggingface_hub

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* 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
 
 
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
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
added_tokens.json ADDED
@@ -0,0 +1,2483 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "<audio_0>": 152072,
3
+ "<audio_1000>": 153072,
4
+ "<audio_1001>": 153073,
5
+ "<audio_1002>": 153074,
6
+ "<audio_1003>": 153075,
7
+ "<audio_1004>": 153076,
8
+ "<audio_1005>": 153077,
9
+ "<audio_1006>": 153078,
10
+ "<audio_1007>": 153079,
11
+ "<audio_1008>": 153080,
12
+ "<audio_1009>": 153081,
13
+ "<audio_100>": 152172,
14
+ "<audio_1010>": 153082,
15
+ "<audio_1011>": 153083,
16
+ "<audio_1012>": 153084,
17
+ "<audio_1013>": 153085,
18
+ "<audio_1014>": 153086,
19
+ "<audio_1015>": 153087,
20
+ "<audio_1016>": 153088,
21
+ "<audio_1017>": 153089,
22
+ "<audio_1018>": 153090,
23
+ "<audio_1019>": 153091,
24
+ "<audio_101>": 152173,
25
+ "<audio_1020>": 153092,
26
+ "<audio_1021>": 153093,
27
+ "<audio_1022>": 153094,
28
+ "<audio_1023>": 153095,
29
+ "<audio_1024>": 153096,
30
+ "<audio_1025>": 153097,
31
+ "<audio_1026>": 153098,
32
+ "<audio_1027>": 153099,
33
+ "<audio_1028>": 153100,
34
+ "<audio_1029>": 153101,
35
+ "<audio_102>": 152174,
36
+ "<audio_1030>": 153102,
37
+ "<audio_1031>": 153103,
38
+ "<audio_1032>": 153104,
39
+ "<audio_1033>": 153105,
40
+ "<audio_1034>": 153106,
41
+ "<audio_1035>": 153107,
42
+ "<audio_1036>": 153108,
43
+ "<audio_1037>": 153109,
44
+ "<audio_1038>": 153110,
45
+ "<audio_1039>": 153111,
46
+ "<audio_103>": 152175,
47
+ "<audio_1040>": 153112,
48
+ "<audio_1041>": 153113,
49
+ "<audio_1042>": 153114,
50
+ "<audio_1043>": 153115,
51
+ "<audio_1044>": 153116,
52
+ "<audio_1045>": 153117,
53
+ "<audio_1046>": 153118,
54
+ "<audio_1047>": 153119,
55
+ "<audio_1048>": 153120,
56
+ "<audio_1049>": 153121,
57
+ "<audio_104>": 152176,
58
+ "<audio_1050>": 153122,
59
+ "<audio_1051>": 153123,
60
+ "<audio_1052>": 153124,
61
+ "<audio_1053>": 153125,
62
+ "<audio_1054>": 153126,
63
+ "<audio_1055>": 153127,
64
+ "<audio_1056>": 153128,
65
+ "<audio_1057>": 153129,
66
+ "<audio_1058>": 153130,
67
+ "<audio_1059>": 153131,
68
+ "<audio_105>": 152177,
69
+ "<audio_1060>": 153132,
70
+ "<audio_1061>": 153133,
71
+ "<audio_1062>": 153134,
72
+ "<audio_1063>": 153135,
73
+ "<audio_1064>": 153136,
74
+ "<audio_1065>": 153137,
75
+ "<audio_1066>": 153138,
76
+ "<audio_1067>": 153139,
77
+ "<audio_1068>": 153140,
78
+ "<audio_1069>": 153141,
79
+ "<audio_106>": 152178,
80
+ "<audio_1070>": 153142,
81
+ "<audio_1071>": 153143,
82
+ "<audio_1072>": 153144,
83
+ "<audio_1073>": 153145,
84
+ "<audio_1074>": 153146,
85
+ "<audio_1075>": 153147,
86
+ "<audio_1076>": 153148,
87
+ "<audio_1077>": 153149,
88
+ "<audio_1078>": 153150,
89
+ "<audio_1079>": 153151,
90
+ "<audio_107>": 152179,
91
+ "<audio_1080>": 153152,
92
+ "<audio_1081>": 153153,
93
+ "<audio_1082>": 153154,
94
+ "<audio_1083>": 153155,
95
+ "<audio_1084>": 153156,
96
+ "<audio_1085>": 153157,
97
+ "<audio_1086>": 153158,
98
+ "<audio_1087>": 153159,
99
+ "<audio_1088>": 153160,
100
+ "<audio_1089>": 153161,
101
+ "<audio_108>": 152180,
102
+ "<audio_1090>": 153162,
103
+ "<audio_1091>": 153163,
104
+ "<audio_1092>": 153164,
105
+ "<audio_1093>": 153165,
106
+ "<audio_1094>": 153166,
107
+ "<audio_1095>": 153167,
108
+ "<audio_1096>": 153168,
109
+ "<audio_1097>": 153169,
110
+ "<audio_1098>": 153170,
111
+ "<audio_1099>": 153171,
112
+ "<audio_109>": 152181,
113
+ "<audio_10>": 152082,
114
+ "<audio_1100>": 153172,
115
+ "<audio_1101>": 153173,
116
+ "<audio_1102>": 153174,
117
+ "<audio_1103>": 153175,
118
+ "<audio_1104>": 153176,
119
+ "<audio_1105>": 153177,
120
+ "<audio_1106>": 153178,
121
+ "<audio_1107>": 153179,
122
+ "<audio_1108>": 153180,
123
+ "<audio_1109>": 153181,
124
+ "<audio_110>": 152182,
125
+ "<audio_1110>": 153182,
126
+ "<audio_1111>": 153183,
127
+ "<audio_1112>": 153184,
128
+ "<audio_1113>": 153185,
129
+ "<audio_1114>": 153186,
130
+ "<audio_1115>": 153187,
131
+ "<audio_1116>": 153188,
132
+ "<audio_1117>": 153189,
133
+ "<audio_1118>": 153190,
134
+ "<audio_1119>": 153191,
135
+ "<audio_111>": 152183,
136
+ "<audio_1120>": 153192,
137
+ "<audio_1121>": 153193,
138
+ "<audio_1122>": 153194,
139
+ "<audio_1123>": 153195,
140
+ "<audio_1124>": 153196,
141
+ "<audio_1125>": 153197,
142
+ "<audio_1126>": 153198,
143
+ "<audio_1127>": 153199,
144
+ "<audio_1128>": 153200,
145
+ "<audio_1129>": 153201,
146
+ "<audio_112>": 152184,
147
+ "<audio_1130>": 153202,
148
+ "<audio_1131>": 153203,
149
+ "<audio_1132>": 153204,
150
+ "<audio_1133>": 153205,
151
+ "<audio_1134>": 153206,
152
+ "<audio_1135>": 153207,
153
+ "<audio_1136>": 153208,
154
+ "<audio_1137>": 153209,
155
+ "<audio_1138>": 153210,
156
+ "<audio_1139>": 153211,
157
+ "<audio_113>": 152185,
158
+ "<audio_1140>": 153212,
159
+ "<audio_1141>": 153213,
160
+ "<audio_1142>": 153214,
161
+ "<audio_1143>": 153215,
162
+ "<audio_1144>": 153216,
163
+ "<audio_1145>": 153217,
164
+ "<audio_1146>": 153218,
165
+ "<audio_1147>": 153219,
166
+ "<audio_1148>": 153220,
167
+ "<audio_1149>": 153221,
168
+ "<audio_114>": 152186,
169
+ "<audio_1150>": 153222,
170
+ "<audio_1151>": 153223,
171
+ "<audio_1152>": 153224,
172
+ "<audio_1153>": 153225,
173
+ "<audio_1154>": 153226,
174
+ "<audio_1155>": 153227,
175
+ "<audio_1156>": 153228,
176
+ "<audio_1157>": 153229,
177
+ "<audio_1158>": 153230,
178
+ "<audio_1159>": 153231,
179
+ "<audio_115>": 152187,
180
+ "<audio_1160>": 153232,
181
+ "<audio_1161>": 153233,
182
+ "<audio_1162>": 153234,
183
+ "<audio_1163>": 153235,
184
+ "<audio_1164>": 153236,
185
+ "<audio_1165>": 153237,
186
+ "<audio_1166>": 153238,
187
+ "<audio_1167>": 153239,
188
+ "<audio_1168>": 153240,
189
+ "<audio_1169>": 153241,
190
+ "<audio_116>": 152188,
191
+ "<audio_1170>": 153242,
192
+ "<audio_1171>": 153243,
193
+ "<audio_1172>": 153244,
194
+ "<audio_1173>": 153245,
195
+ "<audio_1174>": 153246,
196
+ "<audio_1175>": 153247,
197
+ "<audio_1176>": 153248,
198
+ "<audio_1177>": 153249,
199
+ "<audio_1178>": 153250,
200
+ "<audio_1179>": 153251,
201
+ "<audio_117>": 152189,
202
+ "<audio_1180>": 153252,
203
+ "<audio_1181>": 153253,
204
+ "<audio_1182>": 153254,
205
+ "<audio_1183>": 153255,
206
+ "<audio_1184>": 153256,
207
+ "<audio_1185>": 153257,
208
+ "<audio_1186>": 153258,
209
+ "<audio_1187>": 153259,
210
+ "<audio_1188>": 153260,
211
+ "<audio_1189>": 153261,
212
+ "<audio_118>": 152190,
213
+ "<audio_1190>": 153262,
214
+ "<audio_1191>": 153263,
215
+ "<audio_1192>": 153264,
216
+ "<audio_1193>": 153265,
217
+ "<audio_1194>": 153266,
218
+ "<audio_1195>": 153267,
219
+ "<audio_1196>": 153268,
220
+ "<audio_1197>": 153269,
221
+ "<audio_1198>": 153270,
222
+ "<audio_1199>": 153271,
223
+ "<audio_119>": 152191,
224
+ "<audio_11>": 152083,
225
+ "<audio_1200>": 153272,
226
+ "<audio_1201>": 153273,
227
+ "<audio_1202>": 153274,
228
+ "<audio_1203>": 153275,
229
+ "<audio_1204>": 153276,
230
+ "<audio_1205>": 153277,
231
+ "<audio_1206>": 153278,
232
+ "<audio_1207>": 153279,
233
+ "<audio_1208>": 153280,
234
+ "<audio_1209>": 153281,
235
+ "<audio_120>": 152192,
236
+ "<audio_1210>": 153282,
237
+ "<audio_1211>": 153283,
238
+ "<audio_1212>": 153284,
239
+ "<audio_1213>": 153285,
240
+ "<audio_1214>": 153286,
241
+ "<audio_1215>": 153287,
242
+ "<audio_1216>": 153288,
243
+ "<audio_1217>": 153289,
244
+ "<audio_1218>": 153290,
245
+ "<audio_1219>": 153291,
246
+ "<audio_121>": 152193,
247
+ "<audio_1220>": 153292,
248
+ "<audio_1221>": 153293,
249
+ "<audio_1222>": 153294,
250
+ "<audio_1223>": 153295,
251
+ "<audio_1224>": 153296,
252
+ "<audio_1225>": 153297,
253
+ "<audio_1226>": 153298,
254
+ "<audio_1227>": 153299,
255
+ "<audio_1228>": 153300,
256
+ "<audio_1229>": 153301,
257
+ "<audio_122>": 152194,
258
+ "<audio_1230>": 153302,
259
+ "<audio_1231>": 153303,
260
+ "<audio_1232>": 153304,
261
+ "<audio_1233>": 153305,
262
+ "<audio_1234>": 153306,
263
+ "<audio_1235>": 153307,
264
+ "<audio_1236>": 153308,
265
+ "<audio_1237>": 153309,
266
+ "<audio_1238>": 153310,
267
+ "<audio_1239>": 153311,
268
+ "<audio_123>": 152195,
269
+ "<audio_1240>": 153312,
270
+ "<audio_1241>": 153313,
271
+ "<audio_1242>": 153314,
272
+ "<audio_1243>": 153315,
273
+ "<audio_1244>": 153316,
274
+ "<audio_1245>": 153317,
275
+ "<audio_1246>": 153318,
276
+ "<audio_1247>": 153319,
277
+ "<audio_1248>": 153320,
278
+ "<audio_1249>": 153321,
279
+ "<audio_124>": 152196,
280
+ "<audio_1250>": 153322,
281
+ "<audio_1251>": 153323,
282
+ "<audio_1252>": 153324,
283
+ "<audio_1253>": 153325,
284
+ "<audio_1254>": 153326,
285
+ "<audio_1255>": 153327,
286
+ "<audio_1256>": 153328,
287
+ "<audio_1257>": 153329,
288
+ "<audio_1258>": 153330,
289
+ "<audio_1259>": 153331,
290
+ "<audio_125>": 152197,
291
+ "<audio_1260>": 153332,
292
+ "<audio_1261>": 153333,
293
+ "<audio_1262>": 153334,
294
+ "<audio_1263>": 153335,
295
+ "<audio_1264>": 153336,
296
+ "<audio_1265>": 153337,
297
+ "<audio_1266>": 153338,
298
+ "<audio_1267>": 153339,
299
+ "<audio_1268>": 153340,
300
+ "<audio_1269>": 153341,
301
+ "<audio_126>": 152198,
302
+ "<audio_1270>": 153342,
303
+ "<audio_1271>": 153343,
304
+ "<audio_1272>": 153344,
305
+ "<audio_1273>": 153345,
306
+ "<audio_1274>": 153346,
307
+ "<audio_1275>": 153347,
308
+ "<audio_1276>": 153348,
309
+ "<audio_1277>": 153349,
310
+ "<audio_1278>": 153350,
311
+ "<audio_1279>": 153351,
312
+ "<audio_127>": 152199,
313
+ "<audio_1280>": 153352,
314
+ "<audio_1281>": 153353,
315
+ "<audio_1282>": 153354,
316
+ "<audio_1283>": 153355,
317
+ "<audio_1284>": 153356,
318
+ "<audio_1285>": 153357,
319
+ "<audio_1286>": 153358,
320
+ "<audio_1287>": 153359,
321
+ "<audio_1288>": 153360,
322
+ "<audio_1289>": 153361,
323
+ "<audio_128>": 152200,
324
+ "<audio_1290>": 153362,
325
+ "<audio_1291>": 153363,
326
+ "<audio_1292>": 153364,
327
+ "<audio_1293>": 153365,
328
+ "<audio_1294>": 153366,
329
+ "<audio_1295>": 153367,
330
+ "<audio_1296>": 153368,
331
+ "<audio_1297>": 153369,
332
+ "<audio_1298>": 153370,
333
+ "<audio_1299>": 153371,
334
+ "<audio_129>": 152201,
335
+ "<audio_12>": 152084,
336
+ "<audio_1300>": 153372,
337
+ "<audio_1301>": 153373,
338
+ "<audio_1302>": 153374,
339
+ "<audio_1303>": 153375,
340
+ "<audio_1304>": 153376,
341
+ "<audio_1305>": 153377,
342
+ "<audio_1306>": 153378,
343
+ "<audio_1307>": 153379,
344
+ "<audio_1308>": 153380,
345
+ "<audio_1309>": 153381,
346
+ "<audio_130>": 152202,
347
+ "<audio_1310>": 153382,
348
+ "<audio_1311>": 153383,
349
+ "<audio_1312>": 153384,
350
+ "<audio_1313>": 153385,
351
+ "<audio_1314>": 153386,
352
+ "<audio_1315>": 153387,
353
+ "<audio_1316>": 153388,
354
+ "<audio_1317>": 153389,
355
+ "<audio_1318>": 153390,
356
+ "<audio_1319>": 153391,
357
+ "<audio_131>": 152203,
358
+ "<audio_1320>": 153392,
359
+ "<audio_1321>": 153393,
360
+ "<audio_1322>": 153394,
361
+ "<audio_1323>": 153395,
362
+ "<audio_1324>": 153396,
363
+ "<audio_1325>": 153397,
364
+ "<audio_1326>": 153398,
365
+ "<audio_1327>": 153399,
366
+ "<audio_1328>": 153400,
367
+ "<audio_1329>": 153401,
368
+ "<audio_132>": 152204,
369
+ "<audio_1330>": 153402,
370
+ "<audio_1331>": 153403,
371
+ "<audio_1332>": 153404,
372
+ "<audio_1333>": 153405,
373
+ "<audio_1334>": 153406,
374
+ "<audio_1335>": 153407,
375
+ "<audio_1336>": 153408,
376
+ "<audio_1337>": 153409,
377
+ "<audio_1338>": 153410,
378
+ "<audio_1339>": 153411,
379
+ "<audio_133>": 152205,
380
+ "<audio_1340>": 153412,
381
+ "<audio_1341>": 153413,
382
+ "<audio_1342>": 153414,
383
+ "<audio_1343>": 153415,
384
+ "<audio_1344>": 153416,
385
+ "<audio_1345>": 153417,
386
+ "<audio_1346>": 153418,
387
+ "<audio_1347>": 153419,
388
+ "<audio_1348>": 153420,
389
+ "<audio_1349>": 153421,
390
+ "<audio_134>": 152206,
391
+ "<audio_1350>": 153422,
392
+ "<audio_1351>": 153423,
393
+ "<audio_1352>": 153424,
394
+ "<audio_1353>": 153425,
395
+ "<audio_1354>": 153426,
396
+ "<audio_1355>": 153427,
397
+ "<audio_1356>": 153428,
398
+ "<audio_1357>": 153429,
399
+ "<audio_1358>": 153430,
400
+ "<audio_1359>": 153431,
401
+ "<audio_135>": 152207,
402
+ "<audio_1360>": 153432,
403
+ "<audio_1361>": 153433,
404
+ "<audio_1362>": 153434,
405
+ "<audio_1363>": 153435,
406
+ "<audio_1364>": 153436,
407
+ "<audio_1365>": 153437,
408
+ "<audio_1366>": 153438,
409
+ "<audio_1367>": 153439,
410
+ "<audio_1368>": 153440,
411
+ "<audio_1369>": 153441,
412
+ "<audio_136>": 152208,
413
+ "<audio_1370>": 153442,
414
+ "<audio_1371>": 153443,
415
+ "<audio_1372>": 153444,
416
+ "<audio_1373>": 153445,
417
+ "<audio_1374>": 153446,
418
+ "<audio_1375>": 153447,
419
+ "<audio_1376>": 153448,
420
+ "<audio_1377>": 153449,
421
+ "<audio_1378>": 153450,
422
+ "<audio_1379>": 153451,
423
+ "<audio_137>": 152209,
424
+ "<audio_1380>": 153452,
425
+ "<audio_1381>": 153453,
426
+ "<audio_1382>": 153454,
427
+ "<audio_1383>": 153455,
428
+ "<audio_1384>": 153456,
429
+ "<audio_1385>": 153457,
430
+ "<audio_1386>": 153458,
431
+ "<audio_1387>": 153459,
432
+ "<audio_1388>": 153460,
433
+ "<audio_1389>": 153461,
434
+ "<audio_138>": 152210,
435
+ "<audio_1390>": 153462,
436
+ "<audio_1391>": 153463,
437
+ "<audio_1392>": 153464,
438
+ "<audio_1393>": 153465,
439
+ "<audio_1394>": 153466,
440
+ "<audio_1395>": 153467,
441
+ "<audio_1396>": 153468,
442
+ "<audio_1397>": 153469,
443
+ "<audio_1398>": 153470,
444
+ "<audio_1399>": 153471,
445
+ "<audio_139>": 152211,
446
+ "<audio_13>": 152085,
447
+ "<audio_1400>": 153472,
448
+ "<audio_1401>": 153473,
449
+ "<audio_1402>": 153474,
450
+ "<audio_1403>": 153475,
451
+ "<audio_1404>": 153476,
452
+ "<audio_1405>": 153477,
453
+ "<audio_1406>": 153478,
454
+ "<audio_1407>": 153479,
455
+ "<audio_1408>": 153480,
456
+ "<audio_1409>": 153481,
457
+ "<audio_140>": 152212,
458
+ "<audio_1410>": 153482,
459
+ "<audio_1411>": 153483,
460
+ "<audio_1412>": 153484,
461
+ "<audio_1413>": 153485,
462
+ "<audio_1414>": 153486,
463
+ "<audio_1415>": 153487,
464
+ "<audio_1416>": 153488,
465
+ "<audio_1417>": 153489,
466
+ "<audio_1418>": 153490,
467
+ "<audio_1419>": 153491,
468
+ "<audio_141>": 152213,
469
+ "<audio_1420>": 153492,
470
+ "<audio_1421>": 153493,
471
+ "<audio_1422>": 153494,
472
+ "<audio_1423>": 153495,
473
+ "<audio_1424>": 153496,
474
+ "<audio_1425>": 153497,
475
+ "<audio_1426>": 153498,
476
+ "<audio_1427>": 153499,
477
+ "<audio_1428>": 153500,
478
+ "<audio_1429>": 153501,
479
+ "<audio_142>": 152214,
480
+ "<audio_1430>": 153502,
481
+ "<audio_1431>": 153503,
482
+ "<audio_1432>": 153504,
483
+ "<audio_1433>": 153505,
484
+ "<audio_1434>": 153506,
485
+ "<audio_1435>": 153507,
486
+ "<audio_1436>": 153508,
487
+ "<audio_1437>": 153509,
488
+ "<audio_1438>": 153510,
489
+ "<audio_1439>": 153511,
490
+ "<audio_143>": 152215,
491
+ "<audio_1440>": 153512,
492
+ "<audio_1441>": 153513,
493
+ "<audio_1442>": 153514,
494
+ "<audio_1443>": 153515,
495
+ "<audio_1444>": 153516,
496
+ "<audio_1445>": 153517,
497
+ "<audio_1446>": 153518,
498
+ "<audio_1447>": 153519,
499
+ "<audio_1448>": 153520,
500
+ "<audio_1449>": 153521,
501
+ "<audio_144>": 152216,
502
+ "<audio_1450>": 153522,
503
+ "<audio_1451>": 153523,
504
+ "<audio_1452>": 153524,
505
+ "<audio_1453>": 153525,
506
+ "<audio_1454>": 153526,
507
+ "<audio_1455>": 153527,
508
+ "<audio_1456>": 153528,
509
+ "<audio_1457>": 153529,
510
+ "<audio_1458>": 153530,
511
+ "<audio_1459>": 153531,
512
+ "<audio_145>": 152217,
513
+ "<audio_1460>": 153532,
514
+ "<audio_1461>": 153533,
515
+ "<audio_1462>": 153534,
516
+ "<audio_1463>": 153535,
517
+ "<audio_1464>": 153536,
518
+ "<audio_1465>": 153537,
519
+ "<audio_1466>": 153538,
520
+ "<audio_1467>": 153539,
521
+ "<audio_1468>": 153540,
522
+ "<audio_1469>": 153541,
523
+ "<audio_146>": 152218,
524
+ "<audio_1470>": 153542,
525
+ "<audio_1471>": 153543,
526
+ "<audio_1472>": 153544,
527
+ "<audio_1473>": 153545,
528
+ "<audio_1474>": 153546,
529
+ "<audio_1475>": 153547,
530
+ "<audio_1476>": 153548,
531
+ "<audio_1477>": 153549,
532
+ "<audio_1478>": 153550,
533
+ "<audio_1479>": 153551,
534
+ "<audio_147>": 152219,
535
+ "<audio_1480>": 153552,
536
+ "<audio_1481>": 153553,
537
+ "<audio_1482>": 153554,
538
+ "<audio_1483>": 153555,
539
+ "<audio_1484>": 153556,
540
+ "<audio_1485>": 153557,
541
+ "<audio_1486>": 153558,
542
+ "<audio_1487>": 153559,
543
+ "<audio_1488>": 153560,
544
+ "<audio_1489>": 153561,
545
+ "<audio_148>": 152220,
546
+ "<audio_1490>": 153562,
547
+ "<audio_1491>": 153563,
548
+ "<audio_1492>": 153564,
549
+ "<audio_1493>": 153565,
550
+ "<audio_1494>": 153566,
551
+ "<audio_1495>": 153567,
552
+ "<audio_1496>": 153568,
553
+ "<audio_1497>": 153569,
554
+ "<audio_1498>": 153570,
555
+ "<audio_1499>": 153571,
556
+ "<audio_149>": 152221,
557
+ "<audio_14>": 152086,
558
+ "<audio_1500>": 153572,
559
+ "<audio_1501>": 153573,
560
+ "<audio_1502>": 153574,
561
+ "<audio_1503>": 153575,
562
+ "<audio_1504>": 153576,
563
+ "<audio_1505>": 153577,
564
+ "<audio_1506>": 153578,
565
+ "<audio_1507>": 153579,
566
+ "<audio_1508>": 153580,
567
+ "<audio_1509>": 153581,
568
+ "<audio_150>": 152222,
569
+ "<audio_1510>": 153582,
570
+ "<audio_1511>": 153583,
571
+ "<audio_1512>": 153584,
572
+ "<audio_1513>": 153585,
573
+ "<audio_1514>": 153586,
574
+ "<audio_1515>": 153587,
575
+ "<audio_1516>": 153588,
576
+ "<audio_1517>": 153589,
577
+ "<audio_1518>": 153590,
578
+ "<audio_1519>": 153591,
579
+ "<audio_151>": 152223,
580
+ "<audio_1520>": 153592,
581
+ "<audio_1521>": 153593,
582
+ "<audio_1522>": 153594,
583
+ "<audio_1523>": 153595,
584
+ "<audio_1524>": 153596,
585
+ "<audio_1525>": 153597,
586
+ "<audio_1526>": 153598,
587
+ "<audio_1527>": 153599,
588
+ "<audio_1528>": 153600,
589
+ "<audio_1529>": 153601,
590
+ "<audio_152>": 152224,
591
+ "<audio_1530>": 153602,
592
+ "<audio_1531>": 153603,
593
+ "<audio_1532>": 153604,
594
+ "<audio_1533>": 153605,
595
+ "<audio_1534>": 153606,
596
+ "<audio_1535>": 153607,
597
+ "<audio_1536>": 153608,
598
+ "<audio_1537>": 153609,
599
+ "<audio_1538>": 153610,
600
+ "<audio_1539>": 153611,
601
+ "<audio_153>": 152225,
602
+ "<audio_1540>": 153612,
603
+ "<audio_1541>": 153613,
604
+ "<audio_1542>": 153614,
605
+ "<audio_1543>": 153615,
606
+ "<audio_1544>": 153616,
607
+ "<audio_1545>": 153617,
608
+ "<audio_1546>": 153618,
609
+ "<audio_1547>": 153619,
610
+ "<audio_1548>": 153620,
611
+ "<audio_1549>": 153621,
612
+ "<audio_154>": 152226,
613
+ "<audio_1550>": 153622,
614
+ "<audio_1551>": 153623,
615
+ "<audio_1552>": 153624,
616
+ "<audio_1553>": 153625,
617
+ "<audio_1554>": 153626,
618
+ "<audio_1555>": 153627,
619
+ "<audio_1556>": 153628,
620
+ "<audio_1557>": 153629,
621
+ "<audio_1558>": 153630,
622
+ "<audio_1559>": 153631,
623
+ "<audio_155>": 152227,
624
+ "<audio_1560>": 153632,
625
+ "<audio_1561>": 153633,
626
+ "<audio_1562>": 153634,
627
+ "<audio_1563>": 153635,
628
+ "<audio_1564>": 153636,
629
+ "<audio_1565>": 153637,
630
+ "<audio_1566>": 153638,
631
+ "<audio_1567>": 153639,
632
+ "<audio_1568>": 153640,
633
+ "<audio_1569>": 153641,
634
+ "<audio_156>": 152228,
635
+ "<audio_1570>": 153642,
636
+ "<audio_1571>": 153643,
637
+ "<audio_1572>": 153644,
638
+ "<audio_1573>": 153645,
639
+ "<audio_1574>": 153646,
640
+ "<audio_1575>": 153647,
641
+ "<audio_1576>": 153648,
642
+ "<audio_1577>": 153649,
643
+ "<audio_1578>": 153650,
644
+ "<audio_1579>": 153651,
645
+ "<audio_157>": 152229,
646
+ "<audio_1580>": 153652,
647
+ "<audio_1581>": 153653,
648
+ "<audio_1582>": 153654,
649
+ "<audio_1583>": 153655,
650
+ "<audio_1584>": 153656,
651
+ "<audio_1585>": 153657,
652
+ "<audio_1586>": 153658,
653
+ "<audio_1587>": 153659,
654
+ "<audio_1588>": 153660,
655
+ "<audio_1589>": 153661,
656
+ "<audio_158>": 152230,
657
+ "<audio_1590>": 153662,
658
+ "<audio_1591>": 153663,
659
+ "<audio_1592>": 153664,
660
+ "<audio_1593>": 153665,
661
+ "<audio_1594>": 153666,
662
+ "<audio_1595>": 153667,
663
+ "<audio_1596>": 153668,
664
+ "<audio_1597>": 153669,
665
+ "<audio_1598>": 153670,
666
+ "<audio_1599>": 153671,
667
+ "<audio_159>": 152231,
668
+ "<audio_15>": 152087,
669
+ "<audio_1600>": 153672,
670
+ "<audio_1601>": 153673,
671
+ "<audio_1602>": 153674,
672
+ "<audio_1603>": 153675,
673
+ "<audio_1604>": 153676,
674
+ "<audio_1605>": 153677,
675
+ "<audio_1606>": 153678,
676
+ "<audio_1607>": 153679,
677
+ "<audio_1608>": 153680,
678
+ "<audio_1609>": 153681,
679
+ "<audio_160>": 152232,
680
+ "<audio_1610>": 153682,
681
+ "<audio_1611>": 153683,
682
+ "<audio_1612>": 153684,
683
+ "<audio_1613>": 153685,
684
+ "<audio_1614>": 153686,
685
+ "<audio_1615>": 153687,
686
+ "<audio_1616>": 153688,
687
+ "<audio_1617>": 153689,
688
+ "<audio_1618>": 153690,
689
+ "<audio_1619>": 153691,
690
+ "<audio_161>": 152233,
691
+ "<audio_1620>": 153692,
692
+ "<audio_1621>": 153693,
693
+ "<audio_1622>": 153694,
694
+ "<audio_1623>": 153695,
695
+ "<audio_1624>": 153696,
696
+ "<audio_1625>": 153697,
697
+ "<audio_1626>": 153698,
698
+ "<audio_1627>": 153699,
699
+ "<audio_1628>": 153700,
700
+ "<audio_1629>": 153701,
701
+ "<audio_162>": 152234,
702
+ "<audio_1630>": 153702,
703
+ "<audio_1631>": 153703,
704
+ "<audio_1632>": 153704,
705
+ "<audio_1633>": 153705,
706
+ "<audio_1634>": 153706,
707
+ "<audio_1635>": 153707,
708
+ "<audio_1636>": 153708,
709
+ "<audio_1637>": 153709,
710
+ "<audio_1638>": 153710,
711
+ "<audio_1639>": 153711,
712
+ "<audio_163>": 152235,
713
+ "<audio_1640>": 153712,
714
+ "<audio_1641>": 153713,
715
+ "<audio_1642>": 153714,
716
+ "<audio_1643>": 153715,
717
+ "<audio_1644>": 153716,
718
+ "<audio_1645>": 153717,
719
+ "<audio_1646>": 153718,
720
+ "<audio_1647>": 153719,
721
+ "<audio_1648>": 153720,
722
+ "<audio_1649>": 153721,
723
+ "<audio_164>": 152236,
724
+ "<audio_1650>": 153722,
725
+ "<audio_1651>": 153723,
726
+ "<audio_1652>": 153724,
727
+ "<audio_1653>": 153725,
728
+ "<audio_1654>": 153726,
729
+ "<audio_1655>": 153727,
730
+ "<audio_1656>": 153728,
731
+ "<audio_1657>": 153729,
732
+ "<audio_1658>": 153730,
733
+ "<audio_1659>": 153731,
734
+ "<audio_165>": 152237,
735
+ "<audio_1660>": 153732,
736
+ "<audio_1661>": 153733,
737
+ "<audio_1662>": 153734,
738
+ "<audio_1663>": 153735,
739
+ "<audio_1664>": 153736,
740
+ "<audio_1665>": 153737,
741
+ "<audio_1666>": 153738,
742
+ "<audio_1667>": 153739,
743
+ "<audio_1668>": 153740,
744
+ "<audio_1669>": 153741,
745
+ "<audio_166>": 152238,
746
+ "<audio_1670>": 153742,
747
+ "<audio_1671>": 153743,
748
+ "<audio_1672>": 153744,
749
+ "<audio_1673>": 153745,
750
+ "<audio_1674>": 153746,
751
+ "<audio_1675>": 153747,
752
+ "<audio_1676>": 153748,
753
+ "<audio_1677>": 153749,
754
+ "<audio_1678>": 153750,
755
+ "<audio_1679>": 153751,
756
+ "<audio_167>": 152239,
757
+ "<audio_1680>": 153752,
758
+ "<audio_1681>": 153753,
759
+ "<audio_1682>": 153754,
760
+ "<audio_1683>": 153755,
761
+ "<audio_1684>": 153756,
762
+ "<audio_1685>": 153757,
763
+ "<audio_1686>": 153758,
764
+ "<audio_1687>": 153759,
765
+ "<audio_1688>": 153760,
766
+ "<audio_1689>": 153761,
767
+ "<audio_168>": 152240,
768
+ "<audio_1690>": 153762,
769
+ "<audio_1691>": 153763,
770
+ "<audio_1692>": 153764,
771
+ "<audio_1693>": 153765,
772
+ "<audio_1694>": 153766,
773
+ "<audio_1695>": 153767,
774
+ "<audio_1696>": 153768,
775
+ "<audio_1697>": 153769,
776
+ "<audio_1698>": 153770,
777
+ "<audio_1699>": 153771,
778
+ "<audio_169>": 152241,
779
+ "<audio_16>": 152088,
780
+ "<audio_1700>": 153772,
781
+ "<audio_1701>": 153773,
782
+ "<audio_1702>": 153774,
783
+ "<audio_1703>": 153775,
784
+ "<audio_1704>": 153776,
785
+ "<audio_1705>": 153777,
786
+ "<audio_1706>": 153778,
787
+ "<audio_1707>": 153779,
788
+ "<audio_1708>": 153780,
789
+ "<audio_1709>": 153781,
790
+ "<audio_170>": 152242,
791
+ "<audio_1710>": 153782,
792
+ "<audio_1711>": 153783,
793
+ "<audio_1712>": 153784,
794
+ "<audio_1713>": 153785,
795
+ "<audio_1714>": 153786,
796
+ "<audio_1715>": 153787,
797
+ "<audio_1716>": 153788,
798
+ "<audio_1717>": 153789,
799
+ "<audio_1718>": 153790,
800
+ "<audio_1719>": 153791,
801
+ "<audio_171>": 152243,
802
+ "<audio_1720>": 153792,
803
+ "<audio_1721>": 153793,
804
+ "<audio_1722>": 153794,
805
+ "<audio_1723>": 153795,
806
+ "<audio_1724>": 153796,
807
+ "<audio_1725>": 153797,
808
+ "<audio_1726>": 153798,
809
+ "<audio_1727>": 153799,
810
+ "<audio_1728>": 153800,
811
+ "<audio_1729>": 153801,
812
+ "<audio_172>": 152244,
813
+ "<audio_1730>": 153802,
814
+ "<audio_1731>": 153803,
815
+ "<audio_1732>": 153804,
816
+ "<audio_1733>": 153805,
817
+ "<audio_1734>": 153806,
818
+ "<audio_1735>": 153807,
819
+ "<audio_1736>": 153808,
820
+ "<audio_1737>": 153809,
821
+ "<audio_1738>": 153810,
822
+ "<audio_1739>": 153811,
823
+ "<audio_173>": 152245,
824
+ "<audio_1740>": 153812,
825
+ "<audio_1741>": 153813,
826
+ "<audio_1742>": 153814,
827
+ "<audio_1743>": 153815,
828
+ "<audio_1744>": 153816,
829
+ "<audio_1745>": 153817,
830
+ "<audio_1746>": 153818,
831
+ "<audio_1747>": 153819,
832
+ "<audio_1748>": 153820,
833
+ "<audio_1749>": 153821,
834
+ "<audio_174>": 152246,
835
+ "<audio_1750>": 153822,
836
+ "<audio_1751>": 153823,
837
+ "<audio_1752>": 153824,
838
+ "<audio_1753>": 153825,
839
+ "<audio_1754>": 153826,
840
+ "<audio_1755>": 153827,
841
+ "<audio_1756>": 153828,
842
+ "<audio_1757>": 153829,
843
+ "<audio_1758>": 153830,
844
+ "<audio_1759>": 153831,
845
+ "<audio_175>": 152247,
846
+ "<audio_1760>": 153832,
847
+ "<audio_1761>": 153833,
848
+ "<audio_1762>": 153834,
849
+ "<audio_1763>": 153835,
850
+ "<audio_1764>": 153836,
851
+ "<audio_1765>": 153837,
852
+ "<audio_1766>": 153838,
853
+ "<audio_1767>": 153839,
854
+ "<audio_1768>": 153840,
855
+ "<audio_1769>": 153841,
856
+ "<audio_176>": 152248,
857
+ "<audio_1770>": 153842,
858
+ "<audio_1771>": 153843,
859
+ "<audio_1772>": 153844,
860
+ "<audio_1773>": 153845,
861
+ "<audio_1774>": 153846,
862
+ "<audio_1775>": 153847,
863
+ "<audio_1776>": 153848,
864
+ "<audio_1777>": 153849,
865
+ "<audio_1778>": 153850,
866
+ "<audio_1779>": 153851,
867
+ "<audio_177>": 152249,
868
+ "<audio_1780>": 153852,
869
+ "<audio_1781>": 153853,
870
+ "<audio_1782>": 153854,
871
+ "<audio_1783>": 153855,
872
+ "<audio_1784>": 153856,
873
+ "<audio_1785>": 153857,
874
+ "<audio_1786>": 153858,
875
+ "<audio_1787>": 153859,
876
+ "<audio_1788>": 153860,
877
+ "<audio_1789>": 153861,
878
+ "<audio_178>": 152250,
879
+ "<audio_1790>": 153862,
880
+ "<audio_1791>": 153863,
881
+ "<audio_1792>": 153864,
882
+ "<audio_1793>": 153865,
883
+ "<audio_1794>": 153866,
884
+ "<audio_1795>": 153867,
885
+ "<audio_1796>": 153868,
886
+ "<audio_1797>": 153869,
887
+ "<audio_1798>": 153870,
888
+ "<audio_1799>": 153871,
889
+ "<audio_179>": 152251,
890
+ "<audio_17>": 152089,
891
+ "<audio_1800>": 153872,
892
+ "<audio_1801>": 153873,
893
+ "<audio_1802>": 153874,
894
+ "<audio_1803>": 153875,
895
+ "<audio_1804>": 153876,
896
+ "<audio_1805>": 153877,
897
+ "<audio_1806>": 153878,
898
+ "<audio_1807>": 153879,
899
+ "<audio_1808>": 153880,
900
+ "<audio_1809>": 153881,
901
+ "<audio_180>": 152252,
902
+ "<audio_1810>": 153882,
903
+ "<audio_1811>": 153883,
904
+ "<audio_1812>": 153884,
905
+ "<audio_1813>": 153885,
906
+ "<audio_1814>": 153886,
907
+ "<audio_1815>": 153887,
908
+ "<audio_1816>": 153888,
909
+ "<audio_1817>": 153889,
910
+ "<audio_1818>": 153890,
911
+ "<audio_1819>": 153891,
912
+ "<audio_181>": 152253,
913
+ "<audio_1820>": 153892,
914
+ "<audio_1821>": 153893,
915
+ "<audio_1822>": 153894,
916
+ "<audio_1823>": 153895,
917
+ "<audio_1824>": 153896,
918
+ "<audio_1825>": 153897,
919
+ "<audio_1826>": 153898,
920
+ "<audio_1827>": 153899,
921
+ "<audio_1828>": 153900,
922
+ "<audio_1829>": 153901,
923
+ "<audio_182>": 152254,
924
+ "<audio_1830>": 153902,
925
+ "<audio_1831>": 153903,
926
+ "<audio_1832>": 153904,
927
+ "<audio_1833>": 153905,
928
+ "<audio_1834>": 153906,
929
+ "<audio_1835>": 153907,
930
+ "<audio_1836>": 153908,
931
+ "<audio_1837>": 153909,
932
+ "<audio_1838>": 153910,
933
+ "<audio_1839>": 153911,
934
+ "<audio_183>": 152255,
935
+ "<audio_1840>": 153912,
936
+ "<audio_1841>": 153913,
937
+ "<audio_1842>": 153914,
938
+ "<audio_1843>": 153915,
939
+ "<audio_1844>": 153916,
940
+ "<audio_1845>": 153917,
941
+ "<audio_1846>": 153918,
942
+ "<audio_1847>": 153919,
943
+ "<audio_1848>": 153920,
944
+ "<audio_1849>": 153921,
945
+ "<audio_184>": 152256,
946
+ "<audio_1850>": 153922,
947
+ "<audio_1851>": 153923,
948
+ "<audio_1852>": 153924,
949
+ "<audio_1853>": 153925,
950
+ "<audio_1854>": 153926,
951
+ "<audio_1855>": 153927,
952
+ "<audio_1856>": 153928,
953
+ "<audio_1857>": 153929,
954
+ "<audio_1858>": 153930,
955
+ "<audio_1859>": 153931,
956
+ "<audio_185>": 152257,
957
+ "<audio_1860>": 153932,
958
+ "<audio_1861>": 153933,
959
+ "<audio_1862>": 153934,
960
+ "<audio_1863>": 153935,
961
+ "<audio_1864>": 153936,
962
+ "<audio_1865>": 153937,
963
+ "<audio_1866>": 153938,
964
+ "<audio_1867>": 153939,
965
+ "<audio_1868>": 153940,
966
+ "<audio_1869>": 153941,
967
+ "<audio_186>": 152258,
968
+ "<audio_1870>": 153942,
969
+ "<audio_1871>": 153943,
970
+ "<audio_1872>": 153944,
971
+ "<audio_1873>": 153945,
972
+ "<audio_1874>": 153946,
973
+ "<audio_1875>": 153947,
974
+ "<audio_1876>": 153948,
975
+ "<audio_1877>": 153949,
976
+ "<audio_1878>": 153950,
977
+ "<audio_1879>": 153951,
978
+ "<audio_187>": 152259,
979
+ "<audio_1880>": 153952,
980
+ "<audio_1881>": 153953,
981
+ "<audio_1882>": 153954,
982
+ "<audio_1883>": 153955,
983
+ "<audio_1884>": 153956,
984
+ "<audio_1885>": 153957,
985
+ "<audio_1886>": 153958,
986
+ "<audio_1887>": 153959,
987
+ "<audio_1888>": 153960,
988
+ "<audio_1889>": 153961,
989
+ "<audio_188>": 152260,
990
+ "<audio_1890>": 153962,
991
+ "<audio_1891>": 153963,
992
+ "<audio_1892>": 153964,
993
+ "<audio_1893>": 153965,
994
+ "<audio_1894>": 153966,
995
+ "<audio_1895>": 153967,
996
+ "<audio_1896>": 153968,
997
+ "<audio_1897>": 153969,
998
+ "<audio_1898>": 153970,
999
+ "<audio_1899>": 153971,
1000
+ "<audio_189>": 152261,
1001
+ "<audio_18>": 152090,
1002
+ "<audio_1900>": 153972,
1003
+ "<audio_1901>": 153973,
1004
+ "<audio_1902>": 153974,
1005
+ "<audio_1903>": 153975,
1006
+ "<audio_1904>": 153976,
1007
+ "<audio_1905>": 153977,
1008
+ "<audio_1906>": 153978,
1009
+ "<audio_1907>": 153979,
1010
+ "<audio_1908>": 153980,
1011
+ "<audio_1909>": 153981,
1012
+ "<audio_190>": 152262,
1013
+ "<audio_1910>": 153982,
1014
+ "<audio_1911>": 153983,
1015
+ "<audio_1912>": 153984,
1016
+ "<audio_1913>": 153985,
1017
+ "<audio_1914>": 153986,
1018
+ "<audio_1915>": 153987,
1019
+ "<audio_1916>": 153988,
1020
+ "<audio_1917>": 153989,
1021
+ "<audio_1918>": 153990,
1022
+ "<audio_1919>": 153991,
1023
+ "<audio_191>": 152263,
1024
+ "<audio_1920>": 153992,
1025
+ "<audio_1921>": 153993,
1026
+ "<audio_1922>": 153994,
1027
+ "<audio_1923>": 153995,
1028
+ "<audio_1924>": 153996,
1029
+ "<audio_1925>": 153997,
1030
+ "<audio_1926>": 153998,
1031
+ "<audio_1927>": 153999,
1032
+ "<audio_1928>": 154000,
1033
+ "<audio_1929>": 154001,
1034
+ "<audio_192>": 152264,
1035
+ "<audio_1930>": 154002,
1036
+ "<audio_1931>": 154003,
1037
+ "<audio_1932>": 154004,
1038
+ "<audio_1933>": 154005,
1039
+ "<audio_1934>": 154006,
1040
+ "<audio_1935>": 154007,
1041
+ "<audio_1936>": 154008,
1042
+ "<audio_1937>": 154009,
1043
+ "<audio_1938>": 154010,
1044
+ "<audio_1939>": 154011,
1045
+ "<audio_193>": 152265,
1046
+ "<audio_1940>": 154012,
1047
+ "<audio_1941>": 154013,
1048
+ "<audio_1942>": 154014,
1049
+ "<audio_1943>": 154015,
1050
+ "<audio_1944>": 154016,
1051
+ "<audio_1945>": 154017,
1052
+ "<audio_1946>": 154018,
1053
+ "<audio_1947>": 154019,
1054
+ "<audio_1948>": 154020,
1055
+ "<audio_1949>": 154021,
1056
+ "<audio_194>": 152266,
1057
+ "<audio_1950>": 154022,
1058
+ "<audio_1951>": 154023,
1059
+ "<audio_1952>": 154024,
1060
+ "<audio_1953>": 154025,
1061
+ "<audio_1954>": 154026,
1062
+ "<audio_1955>": 154027,
1063
+ "<audio_1956>": 154028,
1064
+ "<audio_1957>": 154029,
1065
+ "<audio_1958>": 154030,
1066
+ "<audio_1959>": 154031,
1067
+ "<audio_195>": 152267,
1068
+ "<audio_1960>": 154032,
1069
+ "<audio_1961>": 154033,
1070
+ "<audio_1962>": 154034,
1071
+ "<audio_1963>": 154035,
1072
+ "<audio_1964>": 154036,
1073
+ "<audio_1965>": 154037,
1074
+ "<audio_1966>": 154038,
1075
+ "<audio_1967>": 154039,
1076
+ "<audio_1968>": 154040,
1077
+ "<audio_1969>": 154041,
1078
+ "<audio_196>": 152268,
1079
+ "<audio_1970>": 154042,
1080
+ "<audio_1971>": 154043,
1081
+ "<audio_1972>": 154044,
1082
+ "<audio_1973>": 154045,
1083
+ "<audio_1974>": 154046,
1084
+ "<audio_1975>": 154047,
1085
+ "<audio_1976>": 154048,
1086
+ "<audio_1977>": 154049,
1087
+ "<audio_1978>": 154050,
1088
+ "<audio_1979>": 154051,
1089
+ "<audio_197>": 152269,
1090
+ "<audio_1980>": 154052,
1091
+ "<audio_1981>": 154053,
1092
+ "<audio_1982>": 154054,
1093
+ "<audio_1983>": 154055,
1094
+ "<audio_1984>": 154056,
1095
+ "<audio_1985>": 154057,
1096
+ "<audio_1986>": 154058,
1097
+ "<audio_1987>": 154059,
1098
+ "<audio_1988>": 154060,
1099
+ "<audio_1989>": 154061,
1100
+ "<audio_198>": 152270,
1101
+ "<audio_1990>": 154062,
1102
+ "<audio_1991>": 154063,
1103
+ "<audio_1992>": 154064,
1104
+ "<audio_1993>": 154065,
1105
+ "<audio_1994>": 154066,
1106
+ "<audio_1995>": 154067,
1107
+ "<audio_1996>": 154068,
1108
+ "<audio_1997>": 154069,
1109
+ "<audio_1998>": 154070,
1110
+ "<audio_1999>": 154071,
1111
+ "<audio_199>": 152271,
1112
+ "<audio_19>": 152091,
1113
+ "<audio_1>": 152073,
1114
+ "<audio_2000>": 154072,
1115
+ "<audio_2001>": 154073,
1116
+ "<audio_2002>": 154074,
1117
+ "<audio_2003>": 154075,
1118
+ "<audio_2004>": 154076,
1119
+ "<audio_2005>": 154077,
1120
+ "<audio_2006>": 154078,
1121
+ "<audio_2007>": 154079,
1122
+ "<audio_2008>": 154080,
1123
+ "<audio_2009>": 154081,
1124
+ "<audio_200>": 152272,
1125
+ "<audio_2010>": 154082,
1126
+ "<audio_2011>": 154083,
1127
+ "<audio_2012>": 154084,
1128
+ "<audio_2013>": 154085,
1129
+ "<audio_2014>": 154086,
1130
+ "<audio_2015>": 154087,
1131
+ "<audio_2016>": 154088,
1132
+ "<audio_2017>": 154089,
1133
+ "<audio_2018>": 154090,
1134
+ "<audio_2019>": 154091,
1135
+ "<audio_201>": 152273,
1136
+ "<audio_2020>": 154092,
1137
+ "<audio_2021>": 154093,
1138
+ "<audio_2022>": 154094,
1139
+ "<audio_2023>": 154095,
1140
+ "<audio_2024>": 154096,
1141
+ "<audio_2025>": 154097,
1142
+ "<audio_2026>": 154098,
1143
+ "<audio_2027>": 154099,
1144
+ "<audio_2028>": 154100,
1145
+ "<audio_2029>": 154101,
1146
+ "<audio_202>": 152274,
1147
+ "<audio_2030>": 154102,
1148
+ "<audio_2031>": 154103,
1149
+ "<audio_2032>": 154104,
1150
+ "<audio_2033>": 154105,
1151
+ "<audio_2034>": 154106,
1152
+ "<audio_2035>": 154107,
1153
+ "<audio_2036>": 154108,
1154
+ "<audio_2037>": 154109,
1155
+ "<audio_2038>": 154110,
1156
+ "<audio_2039>": 154111,
1157
+ "<audio_203>": 152275,
1158
+ "<audio_2040>": 154112,
1159
+ "<audio_2041>": 154113,
1160
+ "<audio_2042>": 154114,
1161
+ "<audio_2043>": 154115,
1162
+ "<audio_2044>": 154116,
1163
+ "<audio_2045>": 154117,
1164
+ "<audio_2046>": 154118,
1165
+ "<audio_2047>": 154119,
1166
+ "<audio_204>": 152276,
1167
+ "<audio_205>": 152277,
1168
+ "<audio_206>": 152278,
1169
+ "<audio_207>": 152279,
1170
+ "<audio_208>": 152280,
1171
+ "<audio_209>": 152281,
1172
+ "<audio_20>": 152092,
1173
+ "<audio_210>": 152282,
1174
+ "<audio_211>": 152283,
1175
+ "<audio_212>": 152284,
1176
+ "<audio_213>": 152285,
1177
+ "<audio_214>": 152286,
1178
+ "<audio_215>": 152287,
1179
+ "<audio_216>": 152288,
1180
+ "<audio_217>": 152289,
1181
+ "<audio_218>": 152290,
1182
+ "<audio_219>": 152291,
1183
+ "<audio_21>": 152093,
1184
+ "<audio_220>": 152292,
1185
+ "<audio_221>": 152293,
1186
+ "<audio_222>": 152294,
1187
+ "<audio_223>": 152295,
1188
+ "<audio_224>": 152296,
1189
+ "<audio_225>": 152297,
1190
+ "<audio_226>": 152298,
1191
+ "<audio_227>": 152299,
1192
+ "<audio_228>": 152300,
1193
+ "<audio_229>": 152301,
1194
+ "<audio_22>": 152094,
1195
+ "<audio_230>": 152302,
1196
+ "<audio_231>": 152303,
1197
+ "<audio_232>": 152304,
1198
+ "<audio_233>": 152305,
1199
+ "<audio_234>": 152306,
1200
+ "<audio_235>": 152307,
1201
+ "<audio_236>": 152308,
1202
+ "<audio_237>": 152309,
1203
+ "<audio_238>": 152310,
1204
+ "<audio_239>": 152311,
1205
+ "<audio_23>": 152095,
1206
+ "<audio_240>": 152312,
1207
+ "<audio_241>": 152313,
1208
+ "<audio_242>": 152314,
1209
+ "<audio_243>": 152315,
1210
+ "<audio_244>": 152316,
1211
+ "<audio_245>": 152317,
1212
+ "<audio_246>": 152318,
1213
+ "<audio_247>": 152319,
1214
+ "<audio_248>": 152320,
1215
+ "<audio_249>": 152321,
1216
+ "<audio_24>": 152096,
1217
+ "<audio_250>": 152322,
1218
+ "<audio_251>": 152323,
1219
+ "<audio_252>": 152324,
1220
+ "<audio_253>": 152325,
1221
+ "<audio_254>": 152326,
1222
+ "<audio_255>": 152327,
1223
+ "<audio_256>": 152328,
1224
+ "<audio_257>": 152329,
1225
+ "<audio_258>": 152330,
1226
+ "<audio_259>": 152331,
1227
+ "<audio_25>": 152097,
1228
+ "<audio_260>": 152332,
1229
+ "<audio_261>": 152333,
1230
+ "<audio_262>": 152334,
1231
+ "<audio_263>": 152335,
1232
+ "<audio_264>": 152336,
1233
+ "<audio_265>": 152337,
1234
+ "<audio_266>": 152338,
1235
+ "<audio_267>": 152339,
1236
+ "<audio_268>": 152340,
1237
+ "<audio_269>": 152341,
1238
+ "<audio_26>": 152098,
1239
+ "<audio_270>": 152342,
1240
+ "<audio_271>": 152343,
1241
+ "<audio_272>": 152344,
1242
+ "<audio_273>": 152345,
1243
+ "<audio_274>": 152346,
1244
+ "<audio_275>": 152347,
1245
+ "<audio_276>": 152348,
1246
+ "<audio_277>": 152349,
1247
+ "<audio_278>": 152350,
1248
+ "<audio_279>": 152351,
1249
+ "<audio_27>": 152099,
1250
+ "<audio_280>": 152352,
1251
+ "<audio_281>": 152353,
1252
+ "<audio_282>": 152354,
1253
+ "<audio_283>": 152355,
1254
+ "<audio_284>": 152356,
1255
+ "<audio_285>": 152357,
1256
+ "<audio_286>": 152358,
1257
+ "<audio_287>": 152359,
1258
+ "<audio_288>": 152360,
1259
+ "<audio_289>": 152361,
1260
+ "<audio_28>": 152100,
1261
+ "<audio_290>": 152362,
1262
+ "<audio_291>": 152363,
1263
+ "<audio_292>": 152364,
1264
+ "<audio_293>": 152365,
1265
+ "<audio_294>": 152366,
1266
+ "<audio_295>": 152367,
1267
+ "<audio_296>": 152368,
1268
+ "<audio_297>": 152369,
1269
+ "<audio_298>": 152370,
1270
+ "<audio_299>": 152371,
1271
+ "<audio_29>": 152101,
1272
+ "<audio_2>": 152074,
1273
+ "<audio_300>": 152372,
1274
+ "<audio_301>": 152373,
1275
+ "<audio_302>": 152374,
1276
+ "<audio_303>": 152375,
1277
+ "<audio_304>": 152376,
1278
+ "<audio_305>": 152377,
1279
+ "<audio_306>": 152378,
1280
+ "<audio_307>": 152379,
1281
+ "<audio_308>": 152380,
1282
+ "<audio_309>": 152381,
1283
+ "<audio_30>": 152102,
1284
+ "<audio_310>": 152382,
1285
+ "<audio_311>": 152383,
1286
+ "<audio_312>": 152384,
1287
+ "<audio_313>": 152385,
1288
+ "<audio_314>": 152386,
1289
+ "<audio_315>": 152387,
1290
+ "<audio_316>": 152388,
1291
+ "<audio_317>": 152389,
1292
+ "<audio_318>": 152390,
1293
+ "<audio_319>": 152391,
1294
+ "<audio_31>": 152103,
1295
+ "<audio_320>": 152392,
1296
+ "<audio_321>": 152393,
1297
+ "<audio_322>": 152394,
1298
+ "<audio_323>": 152395,
1299
+ "<audio_324>": 152396,
1300
+ "<audio_325>": 152397,
1301
+ "<audio_326>": 152398,
1302
+ "<audio_327>": 152399,
1303
+ "<audio_328>": 152400,
1304
+ "<audio_329>": 152401,
1305
+ "<audio_32>": 152104,
1306
+ "<audio_330>": 152402,
1307
+ "<audio_331>": 152403,
1308
+ "<audio_332>": 152404,
1309
+ "<audio_333>": 152405,
1310
+ "<audio_334>": 152406,
1311
+ "<audio_335>": 152407,
1312
+ "<audio_336>": 152408,
1313
+ "<audio_337>": 152409,
1314
+ "<audio_338>": 152410,
1315
+ "<audio_339>": 152411,
1316
+ "<audio_33>": 152105,
1317
+ "<audio_340>": 152412,
1318
+ "<audio_341>": 152413,
1319
+ "<audio_342>": 152414,
1320
+ "<audio_343>": 152415,
1321
+ "<audio_344>": 152416,
1322
+ "<audio_345>": 152417,
1323
+ "<audio_346>": 152418,
1324
+ "<audio_347>": 152419,
1325
+ "<audio_348>": 152420,
1326
+ "<audio_349>": 152421,
1327
+ "<audio_34>": 152106,
1328
+ "<audio_350>": 152422,
1329
+ "<audio_351>": 152423,
1330
+ "<audio_352>": 152424,
1331
+ "<audio_353>": 152425,
1332
+ "<audio_354>": 152426,
1333
+ "<audio_355>": 152427,
1334
+ "<audio_356>": 152428,
1335
+ "<audio_357>": 152429,
1336
+ "<audio_358>": 152430,
1337
+ "<audio_359>": 152431,
1338
+ "<audio_35>": 152107,
1339
+ "<audio_360>": 152432,
1340
+ "<audio_361>": 152433,
1341
+ "<audio_362>": 152434,
1342
+ "<audio_363>": 152435,
1343
+ "<audio_364>": 152436,
1344
+ "<audio_365>": 152437,
1345
+ "<audio_366>": 152438,
1346
+ "<audio_367>": 152439,
1347
+ "<audio_368>": 152440,
1348
+ "<audio_369>": 152441,
1349
+ "<audio_36>": 152108,
1350
+ "<audio_370>": 152442,
1351
+ "<audio_371>": 152443,
1352
+ "<audio_372>": 152444,
1353
+ "<audio_373>": 152445,
1354
+ "<audio_374>": 152446,
1355
+ "<audio_375>": 152447,
1356
+ "<audio_376>": 152448,
1357
+ "<audio_377>": 152449,
1358
+ "<audio_378>": 152450,
1359
+ "<audio_379>": 152451,
1360
+ "<audio_37>": 152109,
1361
+ "<audio_380>": 152452,
1362
+ "<audio_381>": 152453,
1363
+ "<audio_382>": 152454,
1364
+ "<audio_383>": 152455,
1365
+ "<audio_384>": 152456,
1366
+ "<audio_385>": 152457,
1367
+ "<audio_386>": 152458,
1368
+ "<audio_387>": 152459,
1369
+ "<audio_388>": 152460,
1370
+ "<audio_389>": 152461,
1371
+ "<audio_38>": 152110,
1372
+ "<audio_390>": 152462,
1373
+ "<audio_391>": 152463,
1374
+ "<audio_392>": 152464,
1375
+ "<audio_393>": 152465,
1376
+ "<audio_394>": 152466,
1377
+ "<audio_395>": 152467,
1378
+ "<audio_396>": 152468,
1379
+ "<audio_397>": 152469,
1380
+ "<audio_398>": 152470,
1381
+ "<audio_399>": 152471,
1382
+ "<audio_39>": 152111,
1383
+ "<audio_3>": 152075,
1384
+ "<audio_400>": 152472,
1385
+ "<audio_401>": 152473,
1386
+ "<audio_402>": 152474,
1387
+ "<audio_403>": 152475,
1388
+ "<audio_404>": 152476,
1389
+ "<audio_405>": 152477,
1390
+ "<audio_406>": 152478,
1391
+ "<audio_407>": 152479,
1392
+ "<audio_408>": 152480,
1393
+ "<audio_409>": 152481,
1394
+ "<audio_40>": 152112,
1395
+ "<audio_410>": 152482,
1396
+ "<audio_411>": 152483,
1397
+ "<audio_412>": 152484,
1398
+ "<audio_413>": 152485,
1399
+ "<audio_414>": 152486,
1400
+ "<audio_415>": 152487,
1401
+ "<audio_416>": 152488,
1402
+ "<audio_417>": 152489,
1403
+ "<audio_418>": 152490,
1404
+ "<audio_419>": 152491,
1405
+ "<audio_41>": 152113,
1406
+ "<audio_420>": 152492,
1407
+ "<audio_421>": 152493,
1408
+ "<audio_422>": 152494,
1409
+ "<audio_423>": 152495,
1410
+ "<audio_424>": 152496,
1411
+ "<audio_425>": 152497,
1412
+ "<audio_426>": 152498,
1413
+ "<audio_427>": 152499,
1414
+ "<audio_428>": 152500,
1415
+ "<audio_429>": 152501,
1416
+ "<audio_42>": 152114,
1417
+ "<audio_430>": 152502,
1418
+ "<audio_431>": 152503,
1419
+ "<audio_432>": 152504,
1420
+ "<audio_433>": 152505,
1421
+ "<audio_434>": 152506,
1422
+ "<audio_435>": 152507,
1423
+ "<audio_436>": 152508,
1424
+ "<audio_437>": 152509,
1425
+ "<audio_438>": 152510,
1426
+ "<audio_439>": 152511,
1427
+ "<audio_43>": 152115,
1428
+ "<audio_440>": 152512,
1429
+ "<audio_441>": 152513,
1430
+ "<audio_442>": 152514,
1431
+ "<audio_443>": 152515,
1432
+ "<audio_444>": 152516,
1433
+ "<audio_445>": 152517,
1434
+ "<audio_446>": 152518,
1435
+ "<audio_447>": 152519,
1436
+ "<audio_448>": 152520,
1437
+ "<audio_449>": 152521,
1438
+ "<audio_44>": 152116,
1439
+ "<audio_450>": 152522,
1440
+ "<audio_451>": 152523,
1441
+ "<audio_452>": 152524,
1442
+ "<audio_453>": 152525,
1443
+ "<audio_454>": 152526,
1444
+ "<audio_455>": 152527,
1445
+ "<audio_456>": 152528,
1446
+ "<audio_457>": 152529,
1447
+ "<audio_458>": 152530,
1448
+ "<audio_459>": 152531,
1449
+ "<audio_45>": 152117,
1450
+ "<audio_460>": 152532,
1451
+ "<audio_461>": 152533,
1452
+ "<audio_462>": 152534,
1453
+ "<audio_463>": 152535,
1454
+ "<audio_464>": 152536,
1455
+ "<audio_465>": 152537,
1456
+ "<audio_466>": 152538,
1457
+ "<audio_467>": 152539,
1458
+ "<audio_468>": 152540,
1459
+ "<audio_469>": 152541,
1460
+ "<audio_46>": 152118,
1461
+ "<audio_470>": 152542,
1462
+ "<audio_471>": 152543,
1463
+ "<audio_472>": 152544,
1464
+ "<audio_473>": 152545,
1465
+ "<audio_474>": 152546,
1466
+ "<audio_475>": 152547,
1467
+ "<audio_476>": 152548,
1468
+ "<audio_477>": 152549,
1469
+ "<audio_478>": 152550,
1470
+ "<audio_479>": 152551,
1471
+ "<audio_47>": 152119,
1472
+ "<audio_480>": 152552,
1473
+ "<audio_481>": 152553,
1474
+ "<audio_482>": 152554,
1475
+ "<audio_483>": 152555,
1476
+ "<audio_484>": 152556,
1477
+ "<audio_485>": 152557,
1478
+ "<audio_486>": 152558,
1479
+ "<audio_487>": 152559,
1480
+ "<audio_488>": 152560,
1481
+ "<audio_489>": 152561,
1482
+ "<audio_48>": 152120,
1483
+ "<audio_490>": 152562,
1484
+ "<audio_491>": 152563,
1485
+ "<audio_492>": 152564,
1486
+ "<audio_493>": 152565,
1487
+ "<audio_494>": 152566,
1488
+ "<audio_495>": 152567,
1489
+ "<audio_496>": 152568,
1490
+ "<audio_497>": 152569,
1491
+ "<audio_498>": 152570,
1492
+ "<audio_499>": 152571,
1493
+ "<audio_49>": 152121,
1494
+ "<audio_4>": 152076,
1495
+ "<audio_500>": 152572,
1496
+ "<audio_501>": 152573,
1497
+ "<audio_502>": 152574,
1498
+ "<audio_503>": 152575,
1499
+ "<audio_504>": 152576,
1500
+ "<audio_505>": 152577,
1501
+ "<audio_506>": 152578,
1502
+ "<audio_507>": 152579,
1503
+ "<audio_508>": 152580,
1504
+ "<audio_509>": 152581,
1505
+ "<audio_50>": 152122,
1506
+ "<audio_510>": 152582,
1507
+ "<audio_511>": 152583,
1508
+ "<audio_512>": 152584,
1509
+ "<audio_513>": 152585,
1510
+ "<audio_514>": 152586,
1511
+ "<audio_515>": 152587,
1512
+ "<audio_516>": 152588,
1513
+ "<audio_517>": 152589,
1514
+ "<audio_518>": 152590,
1515
+ "<audio_519>": 152591,
1516
+ "<audio_51>": 152123,
1517
+ "<audio_520>": 152592,
1518
+ "<audio_521>": 152593,
1519
+ "<audio_522>": 152594,
1520
+ "<audio_523>": 152595,
1521
+ "<audio_524>": 152596,
1522
+ "<audio_525>": 152597,
1523
+ "<audio_526>": 152598,
1524
+ "<audio_527>": 152599,
1525
+ "<audio_528>": 152600,
1526
+ "<audio_529>": 152601,
1527
+ "<audio_52>": 152124,
1528
+ "<audio_530>": 152602,
1529
+ "<audio_531>": 152603,
1530
+ "<audio_532>": 152604,
1531
+ "<audio_533>": 152605,
1532
+ "<audio_534>": 152606,
1533
+ "<audio_535>": 152607,
1534
+ "<audio_536>": 152608,
1535
+ "<audio_537>": 152609,
1536
+ "<audio_538>": 152610,
1537
+ "<audio_539>": 152611,
1538
+ "<audio_53>": 152125,
1539
+ "<audio_540>": 152612,
1540
+ "<audio_541>": 152613,
1541
+ "<audio_542>": 152614,
1542
+ "<audio_543>": 152615,
1543
+ "<audio_544>": 152616,
1544
+ "<audio_545>": 152617,
1545
+ "<audio_546>": 152618,
1546
+ "<audio_547>": 152619,
1547
+ "<audio_548>": 152620,
1548
+ "<audio_549>": 152621,
1549
+ "<audio_54>": 152126,
1550
+ "<audio_550>": 152622,
1551
+ "<audio_551>": 152623,
1552
+ "<audio_552>": 152624,
1553
+ "<audio_553>": 152625,
1554
+ "<audio_554>": 152626,
1555
+ "<audio_555>": 152627,
1556
+ "<audio_556>": 152628,
1557
+ "<audio_557>": 152629,
1558
+ "<audio_558>": 152630,
1559
+ "<audio_559>": 152631,
1560
+ "<audio_55>": 152127,
1561
+ "<audio_560>": 152632,
1562
+ "<audio_561>": 152633,
1563
+ "<audio_562>": 152634,
1564
+ "<audio_563>": 152635,
1565
+ "<audio_564>": 152636,
1566
+ "<audio_565>": 152637,
1567
+ "<audio_566>": 152638,
1568
+ "<audio_567>": 152639,
1569
+ "<audio_568>": 152640,
1570
+ "<audio_569>": 152641,
1571
+ "<audio_56>": 152128,
1572
+ "<audio_570>": 152642,
1573
+ "<audio_571>": 152643,
1574
+ "<audio_572>": 152644,
1575
+ "<audio_573>": 152645,
1576
+ "<audio_574>": 152646,
1577
+ "<audio_575>": 152647,
1578
+ "<audio_576>": 152648,
1579
+ "<audio_577>": 152649,
1580
+ "<audio_578>": 152650,
1581
+ "<audio_579>": 152651,
1582
+ "<audio_57>": 152129,
1583
+ "<audio_580>": 152652,
1584
+ "<audio_581>": 152653,
1585
+ "<audio_582>": 152654,
1586
+ "<audio_583>": 152655,
1587
+ "<audio_584>": 152656,
1588
+ "<audio_585>": 152657,
1589
+ "<audio_586>": 152658,
1590
+ "<audio_587>": 152659,
1591
+ "<audio_588>": 152660,
1592
+ "<audio_589>": 152661,
1593
+ "<audio_58>": 152130,
1594
+ "<audio_590>": 152662,
1595
+ "<audio_591>": 152663,
1596
+ "<audio_592>": 152664,
1597
+ "<audio_593>": 152665,
1598
+ "<audio_594>": 152666,
1599
+ "<audio_595>": 152667,
1600
+ "<audio_596>": 152668,
1601
+ "<audio_597>": 152669,
1602
+ "<audio_598>": 152670,
1603
+ "<audio_599>": 152671,
1604
+ "<audio_59>": 152131,
1605
+ "<audio_5>": 152077,
1606
+ "<audio_600>": 152672,
1607
+ "<audio_601>": 152673,
1608
+ "<audio_602>": 152674,
1609
+ "<audio_603>": 152675,
1610
+ "<audio_604>": 152676,
1611
+ "<audio_605>": 152677,
1612
+ "<audio_606>": 152678,
1613
+ "<audio_607>": 152679,
1614
+ "<audio_608>": 152680,
1615
+ "<audio_609>": 152681,
1616
+ "<audio_60>": 152132,
1617
+ "<audio_610>": 152682,
1618
+ "<audio_611>": 152683,
1619
+ "<audio_612>": 152684,
1620
+ "<audio_613>": 152685,
1621
+ "<audio_614>": 152686,
1622
+ "<audio_615>": 152687,
1623
+ "<audio_616>": 152688,
1624
+ "<audio_617>": 152689,
1625
+ "<audio_618>": 152690,
1626
+ "<audio_619>": 152691,
1627
+ "<audio_61>": 152133,
1628
+ "<audio_620>": 152692,
1629
+ "<audio_621>": 152693,
1630
+ "<audio_622>": 152694,
1631
+ "<audio_623>": 152695,
1632
+ "<audio_624>": 152696,
1633
+ "<audio_625>": 152697,
1634
+ "<audio_626>": 152698,
1635
+ "<audio_627>": 152699,
1636
+ "<audio_628>": 152700,
1637
+ "<audio_629>": 152701,
1638
+ "<audio_62>": 152134,
1639
+ "<audio_630>": 152702,
1640
+ "<audio_631>": 152703,
1641
+ "<audio_632>": 152704,
1642
+ "<audio_633>": 152705,
1643
+ "<audio_634>": 152706,
1644
+ "<audio_635>": 152707,
1645
+ "<audio_636>": 152708,
1646
+ "<audio_637>": 152709,
1647
+ "<audio_638>": 152710,
1648
+ "<audio_639>": 152711,
1649
+ "<audio_63>": 152135,
1650
+ "<audio_640>": 152712,
1651
+ "<audio_641>": 152713,
1652
+ "<audio_642>": 152714,
1653
+ "<audio_643>": 152715,
1654
+ "<audio_644>": 152716,
1655
+ "<audio_645>": 152717,
1656
+ "<audio_646>": 152718,
1657
+ "<audio_647>": 152719,
1658
+ "<audio_648>": 152720,
1659
+ "<audio_649>": 152721,
1660
+ "<audio_64>": 152136,
1661
+ "<audio_650>": 152722,
1662
+ "<audio_651>": 152723,
1663
+ "<audio_652>": 152724,
1664
+ "<audio_653>": 152725,
1665
+ "<audio_654>": 152726,
1666
+ "<audio_655>": 152727,
1667
+ "<audio_656>": 152728,
1668
+ "<audio_657>": 152729,
1669
+ "<audio_658>": 152730,
1670
+ "<audio_659>": 152731,
1671
+ "<audio_65>": 152137,
1672
+ "<audio_660>": 152732,
1673
+ "<audio_661>": 152733,
1674
+ "<audio_662>": 152734,
1675
+ "<audio_663>": 152735,
1676
+ "<audio_664>": 152736,
1677
+ "<audio_665>": 152737,
1678
+ "<audio_666>": 152738,
1679
+ "<audio_667>": 152739,
1680
+ "<audio_668>": 152740,
1681
+ "<audio_669>": 152741,
1682
+ "<audio_66>": 152138,
1683
+ "<audio_670>": 152742,
1684
+ "<audio_671>": 152743,
1685
+ "<audio_672>": 152744,
1686
+ "<audio_673>": 152745,
1687
+ "<audio_674>": 152746,
1688
+ "<audio_675>": 152747,
1689
+ "<audio_676>": 152748,
1690
+ "<audio_677>": 152749,
1691
+ "<audio_678>": 152750,
1692
+ "<audio_679>": 152751,
1693
+ "<audio_67>": 152139,
1694
+ "<audio_680>": 152752,
1695
+ "<audio_681>": 152753,
1696
+ "<audio_682>": 152754,
1697
+ "<audio_683>": 152755,
1698
+ "<audio_684>": 152756,
1699
+ "<audio_685>": 152757,
1700
+ "<audio_686>": 152758,
1701
+ "<audio_687>": 152759,
1702
+ "<audio_688>": 152760,
1703
+ "<audio_689>": 152761,
1704
+ "<audio_68>": 152140,
1705
+ "<audio_690>": 152762,
1706
+ "<audio_691>": 152763,
1707
+ "<audio_692>": 152764,
1708
+ "<audio_693>": 152765,
1709
+ "<audio_694>": 152766,
1710
+ "<audio_695>": 152767,
1711
+ "<audio_696>": 152768,
1712
+ "<audio_697>": 152769,
1713
+ "<audio_698>": 152770,
1714
+ "<audio_699>": 152771,
1715
+ "<audio_69>": 152141,
1716
+ "<audio_6>": 152078,
1717
+ "<audio_700>": 152772,
1718
+ "<audio_701>": 152773,
1719
+ "<audio_702>": 152774,
1720
+ "<audio_703>": 152775,
1721
+ "<audio_704>": 152776,
1722
+ "<audio_705>": 152777,
1723
+ "<audio_706>": 152778,
1724
+ "<audio_707>": 152779,
1725
+ "<audio_708>": 152780,
1726
+ "<audio_709>": 152781,
1727
+ "<audio_70>": 152142,
1728
+ "<audio_710>": 152782,
1729
+ "<audio_711>": 152783,
1730
+ "<audio_712>": 152784,
1731
+ "<audio_713>": 152785,
1732
+ "<audio_714>": 152786,
1733
+ "<audio_715>": 152787,
1734
+ "<audio_716>": 152788,
1735
+ "<audio_717>": 152789,
1736
+ "<audio_718>": 152790,
1737
+ "<audio_719>": 152791,
1738
+ "<audio_71>": 152143,
1739
+ "<audio_720>": 152792,
1740
+ "<audio_721>": 152793,
1741
+ "<audio_722>": 152794,
1742
+ "<audio_723>": 152795,
1743
+ "<audio_724>": 152796,
1744
+ "<audio_725>": 152797,
1745
+ "<audio_726>": 152798,
1746
+ "<audio_727>": 152799,
1747
+ "<audio_728>": 152800,
1748
+ "<audio_729>": 152801,
1749
+ "<audio_72>": 152144,
1750
+ "<audio_730>": 152802,
1751
+ "<audio_731>": 152803,
1752
+ "<audio_732>": 152804,
1753
+ "<audio_733>": 152805,
1754
+ "<audio_734>": 152806,
1755
+ "<audio_735>": 152807,
1756
+ "<audio_736>": 152808,
1757
+ "<audio_737>": 152809,
1758
+ "<audio_738>": 152810,
1759
+ "<audio_739>": 152811,
1760
+ "<audio_73>": 152145,
1761
+ "<audio_740>": 152812,
1762
+ "<audio_741>": 152813,
1763
+ "<audio_742>": 152814,
1764
+ "<audio_743>": 152815,
1765
+ "<audio_744>": 152816,
1766
+ "<audio_745>": 152817,
1767
+ "<audio_746>": 152818,
1768
+ "<audio_747>": 152819,
1769
+ "<audio_748>": 152820,
1770
+ "<audio_749>": 152821,
1771
+ "<audio_74>": 152146,
1772
+ "<audio_750>": 152822,
1773
+ "<audio_751>": 152823,
1774
+ "<audio_752>": 152824,
1775
+ "<audio_753>": 152825,
1776
+ "<audio_754>": 152826,
1777
+ "<audio_755>": 152827,
1778
+ "<audio_756>": 152828,
1779
+ "<audio_757>": 152829,
1780
+ "<audio_758>": 152830,
1781
+ "<audio_759>": 152831,
1782
+ "<audio_75>": 152147,
1783
+ "<audio_760>": 152832,
1784
+ "<audio_761>": 152833,
1785
+ "<audio_762>": 152834,
1786
+ "<audio_763>": 152835,
1787
+ "<audio_764>": 152836,
1788
+ "<audio_765>": 152837,
1789
+ "<audio_766>": 152838,
1790
+ "<audio_767>": 152839,
1791
+ "<audio_768>": 152840,
1792
+ "<audio_769>": 152841,
1793
+ "<audio_76>": 152148,
1794
+ "<audio_770>": 152842,
1795
+ "<audio_771>": 152843,
1796
+ "<audio_772>": 152844,
1797
+ "<audio_773>": 152845,
1798
+ "<audio_774>": 152846,
1799
+ "<audio_775>": 152847,
1800
+ "<audio_776>": 152848,
1801
+ "<audio_777>": 152849,
1802
+ "<audio_778>": 152850,
1803
+ "<audio_779>": 152851,
1804
+ "<audio_77>": 152149,
1805
+ "<audio_780>": 152852,
1806
+ "<audio_781>": 152853,
1807
+ "<audio_782>": 152854,
1808
+ "<audio_783>": 152855,
1809
+ "<audio_784>": 152856,
1810
+ "<audio_785>": 152857,
1811
+ "<audio_786>": 152858,
1812
+ "<audio_787>": 152859,
1813
+ "<audio_788>": 152860,
1814
+ "<audio_789>": 152861,
1815
+ "<audio_78>": 152150,
1816
+ "<audio_790>": 152862,
1817
+ "<audio_791>": 152863,
1818
+ "<audio_792>": 152864,
1819
+ "<audio_793>": 152865,
1820
+ "<audio_794>": 152866,
1821
+ "<audio_795>": 152867,
1822
+ "<audio_796>": 152868,
1823
+ "<audio_797>": 152869,
1824
+ "<audio_798>": 152870,
1825
+ "<audio_799>": 152871,
1826
+ "<audio_79>": 152151,
1827
+ "<audio_7>": 152079,
1828
+ "<audio_800>": 152872,
1829
+ "<audio_801>": 152873,
1830
+ "<audio_802>": 152874,
1831
+ "<audio_803>": 152875,
1832
+ "<audio_804>": 152876,
1833
+ "<audio_805>": 152877,
1834
+ "<audio_806>": 152878,
1835
+ "<audio_807>": 152879,
1836
+ "<audio_808>": 152880,
1837
+ "<audio_809>": 152881,
1838
+ "<audio_80>": 152152,
1839
+ "<audio_810>": 152882,
1840
+ "<audio_811>": 152883,
1841
+ "<audio_812>": 152884,
1842
+ "<audio_813>": 152885,
1843
+ "<audio_814>": 152886,
1844
+ "<audio_815>": 152887,
1845
+ "<audio_816>": 152888,
1846
+ "<audio_817>": 152889,
1847
+ "<audio_818>": 152890,
1848
+ "<audio_819>": 152891,
1849
+ "<audio_81>": 152153,
1850
+ "<audio_820>": 152892,
1851
+ "<audio_821>": 152893,
1852
+ "<audio_822>": 152894,
1853
+ "<audio_823>": 152895,
1854
+ "<audio_824>": 152896,
1855
+ "<audio_825>": 152897,
1856
+ "<audio_826>": 152898,
1857
+ "<audio_827>": 152899,
1858
+ "<audio_828>": 152900,
1859
+ "<audio_829>": 152901,
1860
+ "<audio_82>": 152154,
1861
+ "<audio_830>": 152902,
1862
+ "<audio_831>": 152903,
1863
+ "<audio_832>": 152904,
1864
+ "<audio_833>": 152905,
1865
+ "<audio_834>": 152906,
1866
+ "<audio_835>": 152907,
1867
+ "<audio_836>": 152908,
1868
+ "<audio_837>": 152909,
1869
+ "<audio_838>": 152910,
1870
+ "<audio_839>": 152911,
1871
+ "<audio_83>": 152155,
1872
+ "<audio_840>": 152912,
1873
+ "<audio_841>": 152913,
1874
+ "<audio_842>": 152914,
1875
+ "<audio_843>": 152915,
1876
+ "<audio_844>": 152916,
1877
+ "<audio_845>": 152917,
1878
+ "<audio_846>": 152918,
1879
+ "<audio_847>": 152919,
1880
+ "<audio_848>": 152920,
1881
+ "<audio_849>": 152921,
1882
+ "<audio_84>": 152156,
1883
+ "<audio_850>": 152922,
1884
+ "<audio_851>": 152923,
1885
+ "<audio_852>": 152924,
1886
+ "<audio_853>": 152925,
1887
+ "<audio_854>": 152926,
1888
+ "<audio_855>": 152927,
1889
+ "<audio_856>": 152928,
1890
+ "<audio_857>": 152929,
1891
+ "<audio_858>": 152930,
1892
+ "<audio_859>": 152931,
1893
+ "<audio_85>": 152157,
1894
+ "<audio_860>": 152932,
1895
+ "<audio_861>": 152933,
1896
+ "<audio_862>": 152934,
1897
+ "<audio_863>": 152935,
1898
+ "<audio_864>": 152936,
1899
+ "<audio_865>": 152937,
1900
+ "<audio_866>": 152938,
1901
+ "<audio_867>": 152939,
1902
+ "<audio_868>": 152940,
1903
+ "<audio_869>": 152941,
1904
+ "<audio_86>": 152158,
1905
+ "<audio_870>": 152942,
1906
+ "<audio_871>": 152943,
1907
+ "<audio_872>": 152944,
1908
+ "<audio_873>": 152945,
1909
+ "<audio_874>": 152946,
1910
+ "<audio_875>": 152947,
1911
+ "<audio_876>": 152948,
1912
+ "<audio_877>": 152949,
1913
+ "<audio_878>": 152950,
1914
+ "<audio_879>": 152951,
1915
+ "<audio_87>": 152159,
1916
+ "<audio_880>": 152952,
1917
+ "<audio_881>": 152953,
1918
+ "<audio_882>": 152954,
1919
+ "<audio_883>": 152955,
1920
+ "<audio_884>": 152956,
1921
+ "<audio_885>": 152957,
1922
+ "<audio_886>": 152958,
1923
+ "<audio_887>": 152959,
1924
+ "<audio_888>": 152960,
1925
+ "<audio_889>": 152961,
1926
+ "<audio_88>": 152160,
1927
+ "<audio_890>": 152962,
1928
+ "<audio_891>": 152963,
1929
+ "<audio_892>": 152964,
1930
+ "<audio_893>": 152965,
1931
+ "<audio_894>": 152966,
1932
+ "<audio_895>": 152967,
1933
+ "<audio_896>": 152968,
1934
+ "<audio_897>": 152969,
1935
+ "<audio_898>": 152970,
1936
+ "<audio_899>": 152971,
1937
+ "<audio_89>": 152161,
1938
+ "<audio_8>": 152080,
1939
+ "<audio_900>": 152972,
1940
+ "<audio_901>": 152973,
1941
+ "<audio_902>": 152974,
1942
+ "<audio_903>": 152975,
1943
+ "<audio_904>": 152976,
1944
+ "<audio_905>": 152977,
1945
+ "<audio_906>": 152978,
1946
+ "<audio_907>": 152979,
1947
+ "<audio_908>": 152980,
1948
+ "<audio_909>": 152981,
1949
+ "<audio_90>": 152162,
1950
+ "<audio_910>": 152982,
1951
+ "<audio_911>": 152983,
1952
+ "<audio_912>": 152984,
1953
+ "<audio_913>": 152985,
1954
+ "<audio_914>": 152986,
1955
+ "<audio_915>": 152987,
1956
+ "<audio_916>": 152988,
1957
+ "<audio_917>": 152989,
1958
+ "<audio_918>": 152990,
1959
+ "<audio_919>": 152991,
1960
+ "<audio_91>": 152163,
1961
+ "<audio_920>": 152992,
1962
+ "<audio_921>": 152993,
1963
+ "<audio_922>": 152994,
1964
+ "<audio_923>": 152995,
1965
+ "<audio_924>": 152996,
1966
+ "<audio_925>": 152997,
1967
+ "<audio_926>": 152998,
1968
+ "<audio_927>": 152999,
1969
+ "<audio_928>": 153000,
1970
+ "<audio_929>": 153001,
1971
+ "<audio_92>": 152164,
1972
+ "<audio_930>": 153002,
1973
+ "<audio_931>": 153003,
1974
+ "<audio_932>": 153004,
1975
+ "<audio_933>": 153005,
1976
+ "<audio_934>": 153006,
1977
+ "<audio_935>": 153007,
1978
+ "<audio_936>": 153008,
1979
+ "<audio_937>": 153009,
1980
+ "<audio_938>": 153010,
1981
+ "<audio_939>": 153011,
1982
+ "<audio_93>": 152165,
1983
+ "<audio_940>": 153012,
1984
+ "<audio_941>": 153013,
1985
+ "<audio_942>": 153014,
1986
+ "<audio_943>": 153015,
1987
+ "<audio_944>": 153016,
1988
+ "<audio_945>": 153017,
1989
+ "<audio_946>": 153018,
1990
+ "<audio_947>": 153019,
1991
+ "<audio_948>": 153020,
1992
+ "<audio_949>": 153021,
1993
+ "<audio_94>": 152166,
1994
+ "<audio_950>": 153022,
1995
+ "<audio_951>": 153023,
1996
+ "<audio_952>": 153024,
1997
+ "<audio_953>": 153025,
1998
+ "<audio_954>": 153026,
1999
+ "<audio_955>": 153027,
2000
+ "<audio_956>": 153028,
2001
+ "<audio_957>": 153029,
2002
+ "<audio_958>": 153030,
2003
+ "<audio_959>": 153031,
2004
+ "<audio_95>": 152167,
2005
+ "<audio_960>": 153032,
2006
+ "<audio_961>": 153033,
2007
+ "<audio_962>": 153034,
2008
+ "<audio_963>": 153035,
2009
+ "<audio_964>": 153036,
2010
+ "<audio_965>": 153037,
2011
+ "<audio_966>": 153038,
2012
+ "<audio_967>": 153039,
2013
+ "<audio_968>": 153040,
2014
+ "<audio_969>": 153041,
2015
+ "<audio_96>": 152168,
2016
+ "<audio_970>": 153042,
2017
+ "<audio_971>": 153043,
2018
+ "<audio_972>": 153044,
2019
+ "<audio_973>": 153045,
2020
+ "<audio_974>": 153046,
2021
+ "<audio_975>": 153047,
2022
+ "<audio_976>": 153048,
2023
+ "<audio_977>": 153049,
2024
+ "<audio_978>": 153050,
2025
+ "<audio_979>": 153051,
2026
+ "<audio_97>": 152169,
2027
+ "<audio_980>": 153052,
2028
+ "<audio_981>": 153053,
2029
+ "<audio_982>": 153054,
2030
+ "<audio_983>": 153055,
2031
+ "<audio_984>": 153056,
2032
+ "<audio_985>": 153057,
2033
+ "<audio_986>": 153058,
2034
+ "<audio_987>": 153059,
2035
+ "<audio_988>": 153060,
2036
+ "<audio_989>": 153061,
2037
+ "<audio_98>": 152170,
2038
+ "<audio_990>": 153062,
2039
+ "<audio_991>": 153063,
2040
+ "<audio_992>": 153064,
2041
+ "<audio_993>": 153065,
2042
+ "<audio_994>": 153066,
2043
+ "<audio_995>": 153067,
2044
+ "<audio_996>": 153068,
2045
+ "<audio_997>": 153069,
2046
+ "<audio_998>": 153070,
2047
+ "<audio_999>": 153071,
2048
+ "<audio_99>": 152171,
2049
+ "<audio_9>": 152081,
2050
+ "<audio_pad>": 152071,
2051
+ "<eoa>": 152070,
2052
+ "<im_col>": 152067,
2053
+ "<im_end>": 152065,
2054
+ "<im_patch>": 152066,
2055
+ "<im_start>": 152064,
2056
+ "<soa>": 152069,
2057
+ "<spk1>": 154120,
2058
+ "<spk2>": 154121,
2059
+ "<spk3>": 154122,
2060
+ "<spk4>": 154123,
2061
+ "<|endoftext|>": 151643,
2062
+ "<|im_end|>": 151645,
2063
+ "<|im_start|>": 151644,
2064
+ "<|image|>": 152068,
2065
+ "|<EXTRA_TOKENS_0>|": 151646,
2066
+ "|<EXTRA_TOKENS_100>|": 151746,
2067
+ "|<EXTRA_TOKENS_101>|": 151747,
2068
+ "|<EXTRA_TOKENS_102>|": 151748,
2069
+ "|<EXTRA_TOKENS_103>|": 151749,
2070
+ "|<EXTRA_TOKENS_104>|": 151750,
2071
+ "|<EXTRA_TOKENS_105>|": 151751,
2072
+ "|<EXTRA_TOKENS_106>|": 151752,
2073
+ "|<EXTRA_TOKENS_107>|": 151753,
2074
+ "|<EXTRA_TOKENS_108>|": 151754,
2075
+ "|<EXTRA_TOKENS_109>|": 151755,
2076
+ "|<EXTRA_TOKENS_10>|": 151656,
2077
+ "|<EXTRA_TOKENS_110>|": 151756,
2078
+ "|<EXTRA_TOKENS_111>|": 151757,
2079
+ "|<EXTRA_TOKENS_112>|": 151758,
2080
+ "|<EXTRA_TOKENS_113>|": 151759,
2081
+ "|<EXTRA_TOKENS_114>|": 151760,
2082
+ "|<EXTRA_TOKENS_115>|": 151761,
2083
+ "|<EXTRA_TOKENS_116>|": 151762,
2084
+ "|<EXTRA_TOKENS_117>|": 151763,
2085
+ "|<EXTRA_TOKENS_118>|": 151764,
2086
+ "|<EXTRA_TOKENS_119>|": 151765,
2087
+ "|<EXTRA_TOKENS_11>|": 151657,
2088
+ "|<EXTRA_TOKENS_120>|": 151766,
2089
+ "|<EXTRA_TOKENS_121>|": 151767,
2090
+ "|<EXTRA_TOKENS_122>|": 151768,
2091
+ "|<EXTRA_TOKENS_123>|": 151769,
2092
+ "|<EXTRA_TOKENS_124>|": 151770,
2093
+ "|<EXTRA_TOKENS_125>|": 151771,
2094
+ "|<EXTRA_TOKENS_126>|": 151772,
2095
+ "|<EXTRA_TOKENS_127>|": 151773,
2096
+ "|<EXTRA_TOKENS_128>|": 151774,
2097
+ "|<EXTRA_TOKENS_129>|": 151775,
2098
+ "|<EXTRA_TOKENS_12>|": 151658,
2099
+ "|<EXTRA_TOKENS_130>|": 151776,
2100
+ "|<EXTRA_TOKENS_131>|": 151777,
2101
+ "|<EXTRA_TOKENS_132>|": 151778,
2102
+ "|<EXTRA_TOKENS_133>|": 151779,
2103
+ "|<EXTRA_TOKENS_134>|": 151780,
2104
+ "|<EXTRA_TOKENS_135>|": 151781,
2105
+ "|<EXTRA_TOKENS_136>|": 151782,
2106
+ "|<EXTRA_TOKENS_137>|": 151783,
2107
+ "|<EXTRA_TOKENS_138>|": 151784,
2108
+ "|<EXTRA_TOKENS_139>|": 151785,
2109
+ "|<EXTRA_TOKENS_13>|": 151659,
2110
+ "|<EXTRA_TOKENS_140>|": 151786,
2111
+ "|<EXTRA_TOKENS_141>|": 151787,
2112
+ "|<EXTRA_TOKENS_142>|": 151788,
2113
+ "|<EXTRA_TOKENS_143>|": 151789,
2114
+ "|<EXTRA_TOKENS_144>|": 151790,
2115
+ "|<EXTRA_TOKENS_145>|": 151791,
2116
+ "|<EXTRA_TOKENS_146>|": 151792,
2117
+ "|<EXTRA_TOKENS_147>|": 151793,
2118
+ "|<EXTRA_TOKENS_148>|": 151794,
2119
+ "|<EXTRA_TOKENS_149>|": 151795,
2120
+ "|<EXTRA_TOKENS_14>|": 151660,
2121
+ "|<EXTRA_TOKENS_150>|": 151796,
2122
+ "|<EXTRA_TOKENS_151>|": 151797,
2123
+ "|<EXTRA_TOKENS_152>|": 151798,
2124
+ "|<EXTRA_TOKENS_153>|": 151799,
2125
+ "|<EXTRA_TOKENS_154>|": 151800,
2126
+ "|<EXTRA_TOKENS_155>|": 151801,
2127
+ "|<EXTRA_TOKENS_156>|": 151802,
2128
+ "|<EXTRA_TOKENS_157>|": 151803,
2129
+ "|<EXTRA_TOKENS_158>|": 151804,
2130
+ "|<EXTRA_TOKENS_159>|": 151805,
2131
+ "|<EXTRA_TOKENS_15>|": 151661,
2132
+ "|<EXTRA_TOKENS_160>|": 151806,
2133
+ "|<EXTRA_TOKENS_161>|": 151807,
2134
+ "|<EXTRA_TOKENS_162>|": 151808,
2135
+ "|<EXTRA_TOKENS_163>|": 151809,
2136
+ "|<EXTRA_TOKENS_164>|": 151810,
2137
+ "|<EXTRA_TOKENS_165>|": 151811,
2138
+ "|<EXTRA_TOKENS_166>|": 151812,
2139
+ "|<EXTRA_TOKENS_167>|": 151813,
2140
+ "|<EXTRA_TOKENS_168>|": 151814,
2141
+ "|<EXTRA_TOKENS_169>|": 151815,
2142
+ "|<EXTRA_TOKENS_16>|": 151662,
2143
+ "|<EXTRA_TOKENS_170>|": 151816,
2144
+ "|<EXTRA_TOKENS_171>|": 151817,
2145
+ "|<EXTRA_TOKENS_172>|": 151818,
2146
+ "|<EXTRA_TOKENS_173>|": 151819,
2147
+ "|<EXTRA_TOKENS_174>|": 151820,
2148
+ "|<EXTRA_TOKENS_175>|": 151821,
2149
+ "|<EXTRA_TOKENS_176>|": 151822,
2150
+ "|<EXTRA_TOKENS_177>|": 151823,
2151
+ "|<EXTRA_TOKENS_178>|": 151824,
2152
+ "|<EXTRA_TOKENS_179>|": 151825,
2153
+ "|<EXTRA_TOKENS_17>|": 151663,
2154
+ "|<EXTRA_TOKENS_180>|": 151826,
2155
+ "|<EXTRA_TOKENS_181>|": 151827,
2156
+ "|<EXTRA_TOKENS_182>|": 151828,
2157
+ "|<EXTRA_TOKENS_183>|": 151829,
2158
+ "|<EXTRA_TOKENS_184>|": 151830,
2159
+ "|<EXTRA_TOKENS_185>|": 151831,
2160
+ "|<EXTRA_TOKENS_186>|": 151832,
2161
+ "|<EXTRA_TOKENS_187>|": 151833,
2162
+ "|<EXTRA_TOKENS_188>|": 151834,
2163
+ "|<EXTRA_TOKENS_189>|": 151835,
2164
+ "|<EXTRA_TOKENS_18>|": 151664,
2165
+ "|<EXTRA_TOKENS_190>|": 151836,
2166
+ "|<EXTRA_TOKENS_191>|": 151837,
2167
+ "|<EXTRA_TOKENS_192>|": 151838,
2168
+ "|<EXTRA_TOKENS_193>|": 151839,
2169
+ "|<EXTRA_TOKENS_194>|": 151840,
2170
+ "|<EXTRA_TOKENS_195>|": 151841,
2171
+ "|<EXTRA_TOKENS_196>|": 151842,
2172
+ "|<EXTRA_TOKENS_197>|": 151843,
2173
+ "|<EXTRA_TOKENS_198>|": 151844,
2174
+ "|<EXTRA_TOKENS_199>|": 151845,
2175
+ "|<EXTRA_TOKENS_19>|": 151665,
2176
+ "|<EXTRA_TOKENS_1>|": 151647,
2177
+ "|<EXTRA_TOKENS_200>|": 151846,
2178
+ "|<EXTRA_TOKENS_201>|": 151847,
2179
+ "|<EXTRA_TOKENS_202>|": 151848,
2180
+ "|<EXTRA_TOKENS_203>|": 151849,
2181
+ "|<EXTRA_TOKENS_204>|": 151850,
2182
+ "|<EXTRA_TOKENS_205>|": 151851,
2183
+ "|<EXTRA_TOKENS_206>|": 151852,
2184
+ "|<EXTRA_TOKENS_207>|": 151853,
2185
+ "|<EXTRA_TOKENS_208>|": 151854,
2186
+ "|<EXTRA_TOKENS_209>|": 151855,
2187
+ "|<EXTRA_TOKENS_20>|": 151666,
2188
+ "|<EXTRA_TOKENS_210>|": 151856,
2189
+ "|<EXTRA_TOKENS_211>|": 151857,
2190
+ "|<EXTRA_TOKENS_212>|": 151858,
2191
+ "|<EXTRA_TOKENS_213>|": 151859,
2192
+ "|<EXTRA_TOKENS_214>|": 151860,
2193
+ "|<EXTRA_TOKENS_215>|": 151861,
2194
+ "|<EXTRA_TOKENS_216>|": 151862,
2195
+ "|<EXTRA_TOKENS_217>|": 151863,
2196
+ "|<EXTRA_TOKENS_218>|": 151864,
2197
+ "|<EXTRA_TOKENS_219>|": 151865,
2198
+ "|<EXTRA_TOKENS_21>|": 151667,
2199
+ "|<EXTRA_TOKENS_220>|": 151866,
2200
+ "|<EXTRA_TOKENS_221>|": 151867,
2201
+ "|<EXTRA_TOKENS_222>|": 151868,
2202
+ "|<EXTRA_TOKENS_223>|": 151869,
2203
+ "|<EXTRA_TOKENS_224>|": 151870,
2204
+ "|<EXTRA_TOKENS_225>|": 151871,
2205
+ "|<EXTRA_TOKENS_226>|": 151872,
2206
+ "|<EXTRA_TOKENS_227>|": 151873,
2207
+ "|<EXTRA_TOKENS_228>|": 151874,
2208
+ "|<EXTRA_TOKENS_229>|": 151875,
2209
+ "|<EXTRA_TOKENS_22>|": 151668,
2210
+ "|<EXTRA_TOKENS_230>|": 151876,
2211
+ "|<EXTRA_TOKENS_231>|": 151877,
2212
+ "|<EXTRA_TOKENS_232>|": 151878,
2213
+ "|<EXTRA_TOKENS_233>|": 151879,
2214
+ "|<EXTRA_TOKENS_234>|": 151880,
2215
+ "|<EXTRA_TOKENS_235>|": 151881,
2216
+ "|<EXTRA_TOKENS_236>|": 151882,
2217
+ "|<EXTRA_TOKENS_237>|": 151883,
2218
+ "|<EXTRA_TOKENS_238>|": 151884,
2219
+ "|<EXTRA_TOKENS_239>|": 151885,
2220
+ "|<EXTRA_TOKENS_23>|": 151669,
2221
+ "|<EXTRA_TOKENS_240>|": 151886,
2222
+ "|<EXTRA_TOKENS_241>|": 151887,
2223
+ "|<EXTRA_TOKENS_242>|": 151888,
2224
+ "|<EXTRA_TOKENS_243>|": 151889,
2225
+ "|<EXTRA_TOKENS_244>|": 151890,
2226
+ "|<EXTRA_TOKENS_245>|": 151891,
2227
+ "|<EXTRA_TOKENS_246>|": 151892,
2228
+ "|<EXTRA_TOKENS_247>|": 151893,
2229
+ "|<EXTRA_TOKENS_248>|": 151894,
2230
+ "|<EXTRA_TOKENS_249>|": 151895,
2231
+ "|<EXTRA_TOKENS_24>|": 151670,
2232
+ "|<EXTRA_TOKENS_250>|": 151896,
2233
+ "|<EXTRA_TOKENS_251>|": 151897,
2234
+ "|<EXTRA_TOKENS_252>|": 151898,
2235
+ "|<EXTRA_TOKENS_253>|": 151899,
2236
+ "|<EXTRA_TOKENS_254>|": 151900,
2237
+ "|<EXTRA_TOKENS_255>|": 151901,
2238
+ "|<EXTRA_TOKENS_256>|": 151902,
2239
+ "|<EXTRA_TOKENS_257>|": 151903,
2240
+ "|<EXTRA_TOKENS_258>|": 151904,
2241
+ "|<EXTRA_TOKENS_259>|": 151905,
2242
+ "|<EXTRA_TOKENS_25>|": 151671,
2243
+ "|<EXTRA_TOKENS_260>|": 151906,
2244
+ "|<EXTRA_TOKENS_261>|": 151907,
2245
+ "|<EXTRA_TOKENS_262>|": 151908,
2246
+ "|<EXTRA_TOKENS_263>|": 151909,
2247
+ "|<EXTRA_TOKENS_264>|": 151910,
2248
+ "|<EXTRA_TOKENS_265>|": 151911,
2249
+ "|<EXTRA_TOKENS_266>|": 151912,
2250
+ "|<EXTRA_TOKENS_267>|": 151913,
2251
+ "|<EXTRA_TOKENS_268>|": 151914,
2252
+ "|<EXTRA_TOKENS_269>|": 151915,
2253
+ "|<EXTRA_TOKENS_26>|": 151672,
2254
+ "|<EXTRA_TOKENS_270>|": 151916,
2255
+ "|<EXTRA_TOKENS_271>|": 151917,
2256
+ "|<EXTRA_TOKENS_272>|": 151918,
2257
+ "|<EXTRA_TOKENS_273>|": 151919,
2258
+ "|<EXTRA_TOKENS_274>|": 151920,
2259
+ "|<EXTRA_TOKENS_275>|": 151921,
2260
+ "|<EXTRA_TOKENS_276>|": 151922,
2261
+ "|<EXTRA_TOKENS_277>|": 151923,
2262
+ "|<EXTRA_TOKENS_278>|": 151924,
2263
+ "|<EXTRA_TOKENS_279>|": 151925,
2264
+ "|<EXTRA_TOKENS_27>|": 151673,
2265
+ "|<EXTRA_TOKENS_280>|": 151926,
2266
+ "|<EXTRA_TOKENS_281>|": 151927,
2267
+ "|<EXTRA_TOKENS_282>|": 151928,
2268
+ "|<EXTRA_TOKENS_283>|": 151929,
2269
+ "|<EXTRA_TOKENS_284>|": 151930,
2270
+ "|<EXTRA_TOKENS_285>|": 151931,
2271
+ "|<EXTRA_TOKENS_286>|": 151932,
2272
+ "|<EXTRA_TOKENS_287>|": 151933,
2273
+ "|<EXTRA_TOKENS_288>|": 151934,
2274
+ "|<EXTRA_TOKENS_289>|": 151935,
2275
+ "|<EXTRA_TOKENS_28>|": 151674,
2276
+ "|<EXTRA_TOKENS_290>|": 151936,
2277
+ "|<EXTRA_TOKENS_291>|": 151937,
2278
+ "|<EXTRA_TOKENS_292>|": 151938,
2279
+ "|<EXTRA_TOKENS_293>|": 151939,
2280
+ "|<EXTRA_TOKENS_294>|": 151940,
2281
+ "|<EXTRA_TOKENS_295>|": 151941,
2282
+ "|<EXTRA_TOKENS_296>|": 151942,
2283
+ "|<EXTRA_TOKENS_297>|": 151943,
2284
+ "|<EXTRA_TOKENS_298>|": 151944,
2285
+ "|<EXTRA_TOKENS_299>|": 151945,
2286
+ "|<EXTRA_TOKENS_29>|": 151675,
2287
+ "|<EXTRA_TOKENS_2>|": 151648,
2288
+ "|<EXTRA_TOKENS_300>|": 151946,
2289
+ "|<EXTRA_TOKENS_301>|": 151947,
2290
+ "|<EXTRA_TOKENS_302>|": 151948,
2291
+ "|<EXTRA_TOKENS_303>|": 151949,
2292
+ "|<EXTRA_TOKENS_304>|": 151950,
2293
+ "|<EXTRA_TOKENS_305>|": 151951,
2294
+ "|<EXTRA_TOKENS_306>|": 151952,
2295
+ "|<EXTRA_TOKENS_307>|": 151953,
2296
+ "|<EXTRA_TOKENS_308>|": 151954,
2297
+ "|<EXTRA_TOKENS_309>|": 151955,
2298
+ "|<EXTRA_TOKENS_30>|": 151676,
2299
+ "|<EXTRA_TOKENS_310>|": 151956,
2300
+ "|<EXTRA_TOKENS_311>|": 151957,
2301
+ "|<EXTRA_TOKENS_312>|": 151958,
2302
+ "|<EXTRA_TOKENS_313>|": 151959,
2303
+ "|<EXTRA_TOKENS_314>|": 151960,
2304
+ "|<EXTRA_TOKENS_315>|": 151961,
2305
+ "|<EXTRA_TOKENS_316>|": 151962,
2306
+ "|<EXTRA_TOKENS_317>|": 151963,
2307
+ "|<EXTRA_TOKENS_318>|": 151964,
2308
+ "|<EXTRA_TOKENS_319>|": 151965,
2309
+ "|<EXTRA_TOKENS_31>|": 151677,
2310
+ "|<EXTRA_TOKENS_320>|": 151966,
2311
+ "|<EXTRA_TOKENS_321>|": 151967,
2312
+ "|<EXTRA_TOKENS_322>|": 151968,
2313
+ "|<EXTRA_TOKENS_323>|": 151969,
2314
+ "|<EXTRA_TOKENS_324>|": 151970,
2315
+ "|<EXTRA_TOKENS_325>|": 151971,
2316
+ "|<EXTRA_TOKENS_326>|": 151972,
2317
+ "|<EXTRA_TOKENS_327>|": 151973,
2318
+ "|<EXTRA_TOKENS_328>|": 151974,
2319
+ "|<EXTRA_TOKENS_329>|": 151975,
2320
+ "|<EXTRA_TOKENS_32>|": 151678,
2321
+ "|<EXTRA_TOKENS_330>|": 151976,
2322
+ "|<EXTRA_TOKENS_331>|": 151977,
2323
+ "|<EXTRA_TOKENS_332>|": 151978,
2324
+ "|<EXTRA_TOKENS_333>|": 151979,
2325
+ "|<EXTRA_TOKENS_334>|": 151980,
2326
+ "|<EXTRA_TOKENS_335>|": 151981,
2327
+ "|<EXTRA_TOKENS_336>|": 151982,
2328
+ "|<EXTRA_TOKENS_337>|": 151983,
2329
+ "|<EXTRA_TOKENS_338>|": 151984,
2330
+ "|<EXTRA_TOKENS_339>|": 151985,
2331
+ "|<EXTRA_TOKENS_33>|": 151679,
2332
+ "|<EXTRA_TOKENS_340>|": 151986,
2333
+ "|<EXTRA_TOKENS_341>|": 151987,
2334
+ "|<EXTRA_TOKENS_342>|": 151988,
2335
+ "|<EXTRA_TOKENS_343>|": 151989,
2336
+ "|<EXTRA_TOKENS_344>|": 151990,
2337
+ "|<EXTRA_TOKENS_345>|": 151991,
2338
+ "|<EXTRA_TOKENS_346>|": 151992,
2339
+ "|<EXTRA_TOKENS_347>|": 151993,
2340
+ "|<EXTRA_TOKENS_348>|": 151994,
2341
+ "|<EXTRA_TOKENS_349>|": 151995,
2342
+ "|<EXTRA_TOKENS_34>|": 151680,
2343
+ "|<EXTRA_TOKENS_350>|": 151996,
2344
+ "|<EXTRA_TOKENS_351>|": 151997,
2345
+ "|<EXTRA_TOKENS_352>|": 151998,
2346
+ "|<EXTRA_TOKENS_353>|": 151999,
2347
+ "|<EXTRA_TOKENS_354>|": 152000,
2348
+ "|<EXTRA_TOKENS_355>|": 152001,
2349
+ "|<EXTRA_TOKENS_356>|": 152002,
2350
+ "|<EXTRA_TOKENS_357>|": 152003,
2351
+ "|<EXTRA_TOKENS_358>|": 152004,
2352
+ "|<EXTRA_TOKENS_359>|": 152005,
2353
+ "|<EXTRA_TOKENS_35>|": 151681,
2354
+ "|<EXTRA_TOKENS_360>|": 152006,
2355
+ "|<EXTRA_TOKENS_361>|": 152007,
2356
+ "|<EXTRA_TOKENS_362>|": 152008,
2357
+ "|<EXTRA_TOKENS_363>|": 152009,
2358
+ "|<EXTRA_TOKENS_364>|": 152010,
2359
+ "|<EXTRA_TOKENS_365>|": 152011,
2360
+ "|<EXTRA_TOKENS_366>|": 152012,
2361
+ "|<EXTRA_TOKENS_367>|": 152013,
2362
+ "|<EXTRA_TOKENS_368>|": 152014,
2363
+ "|<EXTRA_TOKENS_369>|": 152015,
2364
+ "|<EXTRA_TOKENS_36>|": 151682,
2365
+ "|<EXTRA_TOKENS_370>|": 152016,
2366
+ "|<EXTRA_TOKENS_371>|": 152017,
2367
+ "|<EXTRA_TOKENS_372>|": 152018,
2368
+ "|<EXTRA_TOKENS_373>|": 152019,
2369
+ "|<EXTRA_TOKENS_374>|": 152020,
2370
+ "|<EXTRA_TOKENS_375>|": 152021,
2371
+ "|<EXTRA_TOKENS_376>|": 152022,
2372
+ "|<EXTRA_TOKENS_377>|": 152023,
2373
+ "|<EXTRA_TOKENS_378>|": 152024,
2374
+ "|<EXTRA_TOKENS_379>|": 152025,
2375
+ "|<EXTRA_TOKENS_37>|": 151683,
2376
+ "|<EXTRA_TOKENS_380>|": 152026,
2377
+ "|<EXTRA_TOKENS_381>|": 152027,
2378
+ "|<EXTRA_TOKENS_382>|": 152028,
2379
+ "|<EXTRA_TOKENS_383>|": 152029,
2380
+ "|<EXTRA_TOKENS_384>|": 152030,
2381
+ "|<EXTRA_TOKENS_385>|": 152031,
2382
+ "|<EXTRA_TOKENS_386>|": 152032,
2383
+ "|<EXTRA_TOKENS_387>|": 152033,
2384
+ "|<EXTRA_TOKENS_388>|": 152034,
2385
+ "|<EXTRA_TOKENS_389>|": 152035,
2386
+ "|<EXTRA_TOKENS_38>|": 151684,
2387
+ "|<EXTRA_TOKENS_390>|": 152036,
2388
+ "|<EXTRA_TOKENS_391>|": 152037,
2389
+ "|<EXTRA_TOKENS_392>|": 152038,
2390
+ "|<EXTRA_TOKENS_393>|": 152039,
2391
+ "|<EXTRA_TOKENS_394>|": 152040,
2392
+ "|<EXTRA_TOKENS_395>|": 152041,
2393
+ "|<EXTRA_TOKENS_396>|": 152042,
2394
+ "|<EXTRA_TOKENS_397>|": 152043,
2395
+ "|<EXTRA_TOKENS_398>|": 152044,
2396
+ "|<EXTRA_TOKENS_399>|": 152045,
2397
+ "|<EXTRA_TOKENS_39>|": 151685,
2398
+ "|<EXTRA_TOKENS_3>|": 151649,
2399
+ "|<EXTRA_TOKENS_400>|": 152046,
2400
+ "|<EXTRA_TOKENS_401>|": 152047,
2401
+ "|<EXTRA_TOKENS_402>|": 152048,
2402
+ "|<EXTRA_TOKENS_403>|": 152049,
2403
+ "|<EXTRA_TOKENS_404>|": 152050,
2404
+ "|<EXTRA_TOKENS_405>|": 152051,
2405
+ "|<EXTRA_TOKENS_406>|": 152052,
2406
+ "|<EXTRA_TOKENS_407>|": 152053,
2407
+ "|<EXTRA_TOKENS_408>|": 152054,
2408
+ "|<EXTRA_TOKENS_409>|": 152055,
2409
+ "|<EXTRA_TOKENS_40>|": 151686,
2410
+ "|<EXTRA_TOKENS_410>|": 152056,
2411
+ "|<EXTRA_TOKENS_411>|": 152057,
2412
+ "|<EXTRA_TOKENS_412>|": 152058,
2413
+ "|<EXTRA_TOKENS_413>|": 152059,
2414
+ "|<EXTRA_TOKENS_414>|": 152060,
2415
+ "|<EXTRA_TOKENS_415>|": 152061,
2416
+ "|<EXTRA_TOKENS_416>|": 152062,
2417
+ "|<EXTRA_TOKENS_417>|": 152063,
2418
+ "|<EXTRA_TOKENS_41>|": 151687,
2419
+ "|<EXTRA_TOKENS_42>|": 151688,
2420
+ "|<EXTRA_TOKENS_43>|": 151689,
2421
+ "|<EXTRA_TOKENS_44>|": 151690,
2422
+ "|<EXTRA_TOKENS_45>|": 151691,
2423
+ "|<EXTRA_TOKENS_46>|": 151692,
2424
+ "|<EXTRA_TOKENS_47>|": 151693,
2425
+ "|<EXTRA_TOKENS_48>|": 151694,
2426
+ "|<EXTRA_TOKENS_49>|": 151695,
2427
+ "|<EXTRA_TOKENS_4>|": 151650,
2428
+ "|<EXTRA_TOKENS_50>|": 151696,
2429
+ "|<EXTRA_TOKENS_51>|": 151697,
2430
+ "|<EXTRA_TOKENS_52>|": 151698,
2431
+ "|<EXTRA_TOKENS_53>|": 151699,
2432
+ "|<EXTRA_TOKENS_54>|": 151700,
2433
+ "|<EXTRA_TOKENS_55>|": 151701,
2434
+ "|<EXTRA_TOKENS_56>|": 151702,
2435
+ "|<EXTRA_TOKENS_57>|": 151703,
2436
+ "|<EXTRA_TOKENS_58>|": 151704,
2437
+ "|<EXTRA_TOKENS_59>|": 151705,
2438
+ "|<EXTRA_TOKENS_5>|": 151651,
2439
+ "|<EXTRA_TOKENS_60>|": 151706,
2440
+ "|<EXTRA_TOKENS_61>|": 151707,
2441
+ "|<EXTRA_TOKENS_62>|": 151708,
2442
+ "|<EXTRA_TOKENS_63>|": 151709,
2443
+ "|<EXTRA_TOKENS_64>|": 151710,
2444
+ "|<EXTRA_TOKENS_65>|": 151711,
2445
+ "|<EXTRA_TOKENS_66>|": 151712,
2446
+ "|<EXTRA_TOKENS_67>|": 151713,
2447
+ "|<EXTRA_TOKENS_68>|": 151714,
2448
+ "|<EXTRA_TOKENS_69>|": 151715,
2449
+ "|<EXTRA_TOKENS_6>|": 151652,
2450
+ "|<EXTRA_TOKENS_70>|": 151716,
2451
+ "|<EXTRA_TOKENS_71>|": 151717,
2452
+ "|<EXTRA_TOKENS_72>|": 151718,
2453
+ "|<EXTRA_TOKENS_73>|": 151719,
2454
+ "|<EXTRA_TOKENS_74>|": 151720,
2455
+ "|<EXTRA_TOKENS_75>|": 151721,
2456
+ "|<EXTRA_TOKENS_76>|": 151722,
2457
+ "|<EXTRA_TOKENS_77>|": 151723,
2458
+ "|<EXTRA_TOKENS_78>|": 151724,
2459
+ "|<EXTRA_TOKENS_79>|": 151725,
2460
+ "|<EXTRA_TOKENS_7>|": 151653,
2461
+ "|<EXTRA_TOKENS_80>|": 151726,
2462
+ "|<EXTRA_TOKENS_81>|": 151727,
2463
+ "|<EXTRA_TOKENS_82>|": 151728,
2464
+ "|<EXTRA_TOKENS_83>|": 151729,
2465
+ "|<EXTRA_TOKENS_84>|": 151730,
2466
+ "|<EXTRA_TOKENS_85>|": 151731,
2467
+ "|<EXTRA_TOKENS_86>|": 151732,
2468
+ "|<EXTRA_TOKENS_87>|": 151733,
2469
+ "|<EXTRA_TOKENS_88>|": 151734,
2470
+ "|<EXTRA_TOKENS_89>|": 151735,
2471
+ "|<EXTRA_TOKENS_8>|": 151654,
2472
+ "|<EXTRA_TOKENS_90>|": 151736,
2473
+ "|<EXTRA_TOKENS_91>|": 151737,
2474
+ "|<EXTRA_TOKENS_92>|": 151738,
2475
+ "|<EXTRA_TOKENS_93>|": 151739,
2476
+ "|<EXTRA_TOKENS_94>|": 151740,
2477
+ "|<EXTRA_TOKENS_95>|": 151741,
2478
+ "|<EXTRA_TOKENS_96>|": 151742,
2479
+ "|<EXTRA_TOKENS_97>|": 151743,
2480
+ "|<EXTRA_TOKENS_98>|": 151744,
2481
+ "|<EXTRA_TOKENS_99>|": 151745,
2482
+ "|<EXTRA_TOKENS_9>|": 151655
2483
+ }
audio_modules.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:565a255e42f1a7c8ebaf1179d94c94048db934b7b2bdf40c18ff0bfe64cb06ef
3
+ size 532905901
chat_template.jinja ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {% for message in messages -%}
2
+ {%- if (loop.index % 2 == 1 and message['role'] != 'user') or
3
+ (loop.index % 2 == 0 and message['role'].lower() != 'assistant') -%}
4
+ {{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}
5
+ {%- endif -%}
6
+ {{ message['role'].capitalize() + ': ' + message['content'] }}
7
+ {%- if not loop.last -%}
8
+ {{ ' ' }}
9
+ {%- endif %}
10
+ {%- endfor -%}
11
+ {%- if add_generation_prompt -%}
12
+ {{ ' Assistant:' }}
13
+ {%- endif %}
config.json ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "MolmoAudioForCausalLM"
4
+ ],
5
+ "attention_layer_norm": false,
6
+ "audio_codebook_offset": 152072,
7
+ "audio_codebook_size": 2048,
8
+ "audio_max_input_tokens": 1024,
9
+ "audio_pad_token_id": 152071,
10
+ "auto_map": {
11
+ "AutoConfig": "config_molmo.MolmoConfig",
12
+ "AutoModelForCausalLM": "modeling_molmo.MolmoForCausalLM"
13
+ },
14
+ "clip_qkv": null,
15
+ "dtype": "bfloat16",
16
+ "embedding_size": 154124,
17
+ "eoa_token_id": 152070,
18
+ "hidden_size": 3584,
19
+ "initializer_range": 0.02,
20
+ "intermediate_size": 37888,
21
+ "layer_norm_eps": 1e-06,
22
+ "layer_norm_type": "rms",
23
+ "max_position_embeddings": 4096,
24
+ "model_type": "molmo",
25
+ "norm_after": false,
26
+ "num_attention_heads": 28,
27
+ "num_hidden_layers": 28,
28
+ "num_key_value_heads": 4,
29
+ "qkv_bias": true,
30
+ "rope_theta": 1000000.0,
31
+ "soa_token_id": 152069,
32
+ "spk_token_ids": [
33
+ 154120,
34
+ 154121,
35
+ 154122,
36
+ 154123
37
+ ],
38
+ "tie_word_embeddings": false,
39
+ "transformers_version": "4.43.3",
40
+ "use_cache": true,
41
+ "use_position_ids": true,
42
+ "vocab_size": 154124,
43
+ "weight_tying": false
44
+ }
config_molmo.py ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import List
2
+
3
+ from transformers import PretrainedConfig, AutoTokenizer
4
+
5
+
6
+ class MolmoConfig(PretrainedConfig):
7
+ model_type = "molmo"
8
+ keys_to_ignore_at_inference = ["past_key_values"]
9
+
10
+ def __init__(
11
+ self,
12
+ vocab_size=50304,
13
+ embedding_size=50304,
14
+ hidden_size=4096,
15
+ intermediate_size=11008,
16
+ num_hidden_layers=32,
17
+ num_attention_heads=32,
18
+ num_key_value_heads=None,
19
+ max_position_embeddings=2048,
20
+ initializer_range=0.02,
21
+ use_cache=True,
22
+ layer_norm_eps: float = 1e-5,
23
+ rope_theta=10000.0,
24
+ clip_qkv=None,
25
+ qkv_bias: bool = False,
26
+ weight_tying: bool = False,
27
+ use_position_ids: bool=True,
28
+ tie_word_embeddings: bool=True,
29
+ attention_layer_norm: bool=False,
30
+ norm_after: bool = False,
31
+ layer_norm_type: str="rms",
32
+ **kwargs,
33
+ ):
34
+ self.vocab_size = vocab_size
35
+ self.embedding_size = embedding_size
36
+ self.max_position_embeddings = max_position_embeddings
37
+ self.hidden_size = hidden_size
38
+ self.intermediate_size = intermediate_size
39
+ self.num_hidden_layers = num_hidden_layers
40
+ self.num_attention_heads = num_attention_heads
41
+ self.layer_norm_eps = layer_norm_eps
42
+ self.weight_tying = weight_tying
43
+ self.use_position_ids = use_position_ids
44
+ self.attention_layer_norm = attention_layer_norm
45
+ self.num_key_value_heads = num_key_value_heads
46
+ self.initializer_range = initializer_range
47
+ self.use_cache = use_cache
48
+ self.rope_theta = rope_theta
49
+ self.clip_qkv = clip_qkv
50
+ self.qkv_bias = qkv_bias
51
+ self.norm_after = norm_after
52
+ self.tie_word_embeddings = tie_word_embeddings
53
+ self.layer_norm_type = layer_norm_type
54
+
55
+ super().__init__(
56
+ tie_word_embeddings=tie_word_embeddings,
57
+ **kwargs,
58
+ )
59
+
60
+ MolmoConfig.register_for_auto_class()
generation_config.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "_from_model_config": true,
3
+ "transformers_version": "4.43.3"
4
+ }
image_preprocessing_molmo.py ADDED
@@ -0,0 +1,547 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Image processor class for Molmo"""
2
+ from typing import List, Optional, Union, Mapping
3
+
4
+ import numpy as np
5
+ import einops
6
+ import torch
7
+ import torchvision.transforms
8
+ from torchvision.transforms import InterpolationMode
9
+ from torchvision.transforms.functional import convert_image_dtype
10
+
11
+ from transformers.image_utils import (
12
+ OPENAI_CLIP_MEAN,
13
+ OPENAI_CLIP_STD,
14
+ ImageInput,
15
+ is_valid_image,
16
+ )
17
+ from transformers.processing_utils import ImagesKwargs
18
+ from transformers.image_processing_utils import BaseImageProcessor
19
+ from transformers.utils import logging
20
+
21
+
22
+ logger = logging.get_logger(__name__)
23
+
24
+
25
+ def pad_to_bounding_box(
26
+ image, offset_height, offset_width, target_height,
27
+ target_width, value=0
28
+ ):
29
+ height, width = image.shape[:2]
30
+ after_padding_width = target_width - offset_width - width
31
+ after_padding_height = target_height - offset_height - height
32
+ return np.pad(image, [
33
+ [offset_height, after_padding_height],
34
+ [offset_width, after_padding_width],
35
+ [0, 0]
36
+ ], constant_values=value)
37
+
38
+
39
+ def normalize_image(image, offset, scale):
40
+ image -= np.array(offset, dtype=np.float32)[None, None, :]
41
+ image /= np.array(scale, dtype=np.float32)[None, None, :]
42
+ return image
43
+
44
+
45
+ def resize_and_pad(
46
+ image,
47
+ desired_output_size,
48
+ resize_method="torch-bilinear",
49
+ pad_value=0,
50
+ normalize=True,
51
+ image_mean=OPENAI_CLIP_MEAN,
52
+ image_std=OPENAI_CLIP_STD,
53
+ ):
54
+ desired_height, desired_width = desired_output_size
55
+ height, width = image.shape[:2]
56
+
57
+ # Cast into float32 since the training code did this in float32 and it (very rarely) effects
58
+ # the results after rounding.
59
+ image_scale_y = np.array(desired_height, np.float32) / np.array(height, np.float32)
60
+ image_scale_x = np.array(desired_width, np.float32) / np.array(width, np.float32)
61
+ image_scale = min(image_scale_x, image_scale_y)
62
+ scaled_height = int(np.array(height, np.float32) * image_scale)
63
+ scaled_width = int(np.array(width, np.float32) * image_scale)
64
+
65
+ if resize_method == "tensorflow":
66
+ # This how the original training code did resizing, it can produce slightly different
67
+ # results then using torch resize so we keep it just in case
68
+ import importlib
69
+ tf = importlib.import_module("tensorflow")
70
+ image = tf.image.convert_image_dtype(tf.constant(image), dtype=tf.float32)
71
+ image = tf.image.resize(
72
+ image,
73
+ [scaled_height, scaled_width],
74
+ method=tf.image.ResizeMethod.BILINEAR,
75
+ antialias=True,
76
+ )
77
+ image = tf.clip_by_value(image, 0.0, 1.0)
78
+ image = image.numpy()
79
+ elif resize_method == "torch-bilinear":
80
+ image = torch.permute(torch.from_numpy(image), [2, 0, 1])
81
+ image = convert_image_dtype(image) # resize in float32 to match the training code
82
+ image = torchvision.transforms.Resize(
83
+ [scaled_height, scaled_width], InterpolationMode.BILINEAR, antialias=True
84
+ )(image)
85
+ image = torch.clip(image, 0.0, 1.0)
86
+ image = torch.permute(image, [1, 2, 0]).numpy()
87
+ else:
88
+ raise NotImplementedError(resize_method)
89
+
90
+ top_pad = (desired_height - scaled_height) // 2
91
+ left_pad = (desired_width - scaled_width) // 2
92
+ padding = [
93
+ [top_pad, desired_height - scaled_height - top_pad],
94
+ [left_pad, desired_width - scaled_width - left_pad],
95
+ [0, 0]
96
+ ]
97
+ image_mask = np.pad(np.ones_like(image[:, :, 0], dtype=bool), padding[:2])
98
+ image = np.pad(image, padding, constant_values=pad_value)
99
+ if normalize:
100
+ image = normalize_image(image, offset=image_mean, scale=image_std)
101
+ return image, image_mask
102
+
103
+
104
+ def select_tiling(h, w, patch_size, max_num_patches):
105
+ """Decide how best to divide in image of size [w, h] in up to max_num_patches of size patch_size"""
106
+ original_size = np.stack([h, w]) # [1, 2]
107
+ original_res = h * w
108
+ tilings = []
109
+ for i in range(1, max_num_patches+1):
110
+ for j in range(1, max_num_patches+1):
111
+ if i*j <= max_num_patches:
112
+ tilings.append((i, j))
113
+ # sort so argmin and argmax favour smaller tilings in the event of a tie
114
+ tilings.sort(key=lambda x: (x[0]*x[1], x[0]))
115
+ candidate_tilings = np.array(tilings, dtype=np.int32) # [n_resolutions, 2]
116
+ candidate_resolutions = candidate_tilings * patch_size # [n_resolutions, 2]
117
+
118
+ # How much we would need to scale the image to fit exactly in each tiling
119
+ original_size = np.stack([h, w], dtype=np.float32) # [1, 2]
120
+ required_scale_d = candidate_resolutions.astype(np.float32) / original_size
121
+ required_scale = np.min(required_scale_d, axis=-1, keepdims=True) # [n_resolutions, 1]
122
+ if np.all(required_scale < 1):
123
+ # We are forced to downscale, so try to minimize the amount of downscaling
124
+ ix = np.argmax(required_scale)
125
+ else:
126
+ # Pick the resolution that required the least upscaling so that it most closely fits the image
127
+ required_scale = np.where(required_scale < 1.0, 10e9, required_scale)
128
+ ix = np.argmin(required_scale)
129
+ return candidate_tilings[ix]
130
+
131
+
132
+ class MolmoImagesKwargs(ImagesKwargs, total=False):
133
+ max_crops: Optional[int]
134
+ overlap_margins: Optional[List[int]]
135
+ base_image_input_size: Optional[List[int]]
136
+ image_token_length_w: Optional[int]
137
+ image_token_length_h: Optional[int]
138
+ image_patch_size: Optional[int]
139
+ image_padding_mask: Optional[bool]
140
+
141
+
142
+ class MolmoImageProcessor(BaseImageProcessor):
143
+ """Preprocess images and multi-model inputs"""
144
+
145
+ def __init__(
146
+ self,
147
+ max_crops: int = 12,
148
+ overlap_margins: List[int] = (4, 4),
149
+ base_image_input_size: List[int] = (336, 336),
150
+ image_token_length_w: int = 12,
151
+ image_token_length_h: int = 12,
152
+ image_patch_size: int = 14,
153
+ image_padding_mask: bool = True,
154
+ do_normalize: bool = True,
155
+ image_mean: Optional[Union[float, List[float]]] = None,
156
+ image_std: Optional[Union[float, List[float]]] = None,
157
+ **kwargs,
158
+ ):
159
+ super().__init__(**kwargs)
160
+ self.max_crops = max_crops
161
+ self.overlap_margins = overlap_margins
162
+ self.base_image_input_size = base_image_input_size
163
+ self.image_token_length_w = image_token_length_w
164
+ self.image_token_length_h = image_token_length_h
165
+ self.image_patch_size = image_patch_size
166
+ self.image_padding_mask = image_padding_mask
167
+ self.do_normalize = do_normalize
168
+ self.image_mean = image_mean if image_mean is not None else OPENAI_CLIP_MEAN
169
+ self.image_std = image_std if image_std is not None else OPENAI_CLIP_STD
170
+
171
+ def image_to_patches_and_tokens(
172
+ self,
173
+ image: ImageInput,
174
+ image_patch_token_id: int,
175
+ image_col_token_id: int,
176
+ image_start_token_id: int,
177
+ image_end_token_id: int,
178
+ max_crops: Optional[int] = None,
179
+ overlap_margins: Optional[List[int]] = None,
180
+ base_image_input_size: Optional[Union[int, List[int]]] = None,
181
+ image_token_length_w: Optional[int] = None,
182
+ image_token_length_h: Optional[int] = None,
183
+ image_patch_size: Optional[int] = None,
184
+ ):
185
+ if isinstance(base_image_input_size, int):
186
+ base_image_input_size = (base_image_input_size, base_image_input_size)
187
+
188
+ base_image_input_d = image_patch_size
189
+ tokens_per_image = image_token_length_w * image_token_length_h
190
+ image_base_patch_w = base_image_input_size[1] // base_image_input_d
191
+ image_base_patch_h = base_image_input_size[0] // base_image_input_d
192
+
193
+ original_image_h, original_image_w = image.shape[:2]
194
+ crop_size = base_image_input_size[0]
195
+
196
+ # Discard this many patches from the (left/top, right/bottom) of crops
197
+ left_margin, right_margin = overlap_margins
198
+ # left_margin, right_margin = 2, 2
199
+ assert left_margin % 2 == 0 # Required for compatibility with 2x2 pooling
200
+ total_margin_pixels = base_image_input_d*(right_margin + left_margin) # pixels removed per dim
201
+ crop_patches = base_image_input_size[0] // base_image_input_d # patches per crop dim
202
+ crop_window_patches = crop_patches - (right_margin + left_margin) # usable patches
203
+ crop_window_size = crop_window_patches * base_image_input_d
204
+ tiling = select_tiling(
205
+ original_image_h - total_margin_pixels,
206
+ original_image_w - total_margin_pixels,
207
+ crop_window_size,
208
+ max_crops
209
+ )
210
+ src, img_mask = resize_and_pad(
211
+ image,
212
+ [tiling[0]*crop_window_size+total_margin_pixels, tiling[1]*crop_window_size+total_margin_pixels]
213
+ )
214
+
215
+ # Now we have to split the image into crops, while keeping track of how each patch in the
216
+ # each crop should be ordered in the global image, this require a lot of tricky booking
217
+ n_crops = tiling[0] * tiling[1]
218
+ patches_arr = []
219
+ mask_arr = []
220
+ patch_ordering_arr = []
221
+
222
+ # We assume 2x2 pooling, but can allow padding the right/bottom with extra
223
+ # patches if the number of patches per side is not even
224
+ assert (crop_patches+1)//2 == image_token_length_h
225
+ assert (crop_patches+1)//2 == image_token_length_w
226
+ on = 0
227
+ on_patch = 0
228
+ for i in range(tiling[0]):
229
+ y0 = i*crop_window_size
230
+ if i == 0:
231
+ crop_y0 = 0
232
+ else:
233
+ crop_y0 = left_margin // 2
234
+
235
+ crop_h = image_base_patch_h - (right_margin + left_margin)
236
+ if i == 0:
237
+ crop_h += left_margin
238
+ if i == (tiling[0]-1):
239
+ crop_h += right_margin
240
+ for j in range(tiling[1]):
241
+ x0 = j*crop_window_size
242
+ if j == 0:
243
+ crop_x0 = 0
244
+ else:
245
+ crop_x0 = left_margin // 2
246
+
247
+ crop_w = image_base_patch_w - (right_margin + left_margin)
248
+ if j == 0:
249
+ crop_w += left_margin
250
+ if j == (tiling[1]-1):
251
+ crop_w += right_margin
252
+
253
+ pooled_w = (crop_w + 1) // 2
254
+ pooled_h = (crop_h + 1) // 2
255
+ patch_ordering_arr.append(
256
+ pad_to_bounding_box(
257
+ np.reshape(np.arange(on, on+pooled_h*pooled_w, dtype=np.int32), (pooled_h, pooled_w, 1)),
258
+ crop_y0, crop_x0, image_token_length_h, image_token_length_w, value=-1
259
+ )[:, :, 0]
260
+ )
261
+ patches_arr.append(src[y0:y0+crop_size, x0:x0+crop_size])
262
+ mask_arr.append(img_mask[y0:y0+crop_size, x0:x0+crop_size])
263
+
264
+ on += pooled_h*pooled_w
265
+ on_patch += 1
266
+ patches = np.stack(patches_arr)
267
+ patch_ordering = np.stack(patch_ordering_arr)
268
+ img_mask = np.stack(mask_arr)
269
+
270
+ # Switch to [n_crops, n_patches, pixels_per_patch] format
271
+ image_layout_impatch_w, image_layout_impatch_h = tiling[0], tiling[1]
272
+ patches = einops.rearrange(
273
+ patches, 'p (h dh) (w dw) c -> p (h w) (dh dw c)',
274
+ dh=base_image_input_d,
275
+ dw=base_image_input_d,
276
+ h=image_base_patch_h,
277
+ w=image_base_patch_w
278
+ )
279
+ img_mask = einops.rearrange(
280
+ img_mask, 'p (h dh) (w dw) -> p (h w) (dh dw)',
281
+ dh=base_image_input_d,
282
+ dw=base_image_input_d,
283
+ h=image_base_patch_h,
284
+ w=image_base_patch_w
285
+ )
286
+
287
+ img_mask = img_mask.astype(np.float32).mean(axis=-1)
288
+ patch_ordering = np.reshape(patch_ordering, [-1])
289
+ valid = patch_ordering >= 0
290
+
291
+ # Transpose order, to get left-to-right order instead of crop-by-crop order
292
+ patch_ordering_rh = np.reshape(
293
+ patch_ordering,
294
+ [tiling[0], tiling[1], image_token_length_h, image_token_length_w]
295
+ )
296
+ patch_ordering_rh = np.transpose(patch_ordering_rh, [0, 2, 1, 3])
297
+ patch_ordering_rh = np.reshape(patch_ordering_rh, [-1])
298
+
299
+ # The transpose will screw up which patches are masked, project the
300
+ # new order into sparse structure of `patch_ordering` to fix this
301
+ patch_ordering[valid] = patch_ordering_rh[patch_ordering_rh >= 0]
302
+
303
+ # Now build the output tokens
304
+ h = tiling[0] * crop_window_patches + (right_margin+left_margin)
305
+ w = tiling[1] * crop_window_patches + (right_margin+left_margin)
306
+ per_row = np.full(
307
+ ((w+1)//2,),
308
+ image_patch_token_id,
309
+ )
310
+ per_row = np.concatenate([per_row, [image_col_token_id]], 0)
311
+
312
+ joint = np.tile(per_row, [(h+1)//2])
313
+ joint = [
314
+ [image_start_token_id],
315
+ joint,
316
+ [image_end_token_id]
317
+ ]
318
+
319
+ # Finally do the same for the global image
320
+ resized, _ = resize_and_pad(image, base_image_input_size)
321
+ resized = einops.rearrange(
322
+ resized, '(h dh) (w dw) c -> (h w) (dh dw c)',
323
+ dh=base_image_input_d,
324
+ dw=base_image_input_d,
325
+ h=image_base_patch_h,
326
+ w=image_base_patch_w
327
+ )
328
+ patches = np.concatenate([np.expand_dims(resized, 0), patches], 0)
329
+
330
+ # Global image goes first, so the order of patches in previous crops gets increased
331
+ patch_ordering = np.where(
332
+ patch_ordering >= 0,
333
+ patch_ordering + tokens_per_image,
334
+ -1
335
+ )
336
+ patch_ordering = np.concatenate([np.arange(0, tokens_per_image), patch_ordering], 0)
337
+ per_row = np.full(
338
+ (image_token_length_w,),
339
+ image_patch_token_id,
340
+ )
341
+ per_row = np.concatenate([per_row, [image_col_token_id]], 0)
342
+ extra_tokens = np.tile(per_row, [image_token_length_h])
343
+ joint = [
344
+ [image_start_token_id],
345
+ extra_tokens,
346
+ [image_end_token_id],
347
+ ] + joint
348
+
349
+ joint = np.concatenate(joint, 0)
350
+ img_mask = np.pad(img_mask, [[0, 1], [0, 0]], constant_values=-1)
351
+ return patches, joint, patch_ordering, img_mask
352
+
353
+ def build_image_input_idx(
354
+ self,
355
+ image_tokens: np.ndarray,
356
+ patch_order: np.ndarray,
357
+ image_patch_token_id: int,
358
+ no_image: Optional[bool] = None,
359
+ image_token_length_w: Optional[int] = None,
360
+ image_token_length_h: Optional[int] = None,
361
+ ):
362
+ """Converts `patch_order` into a mapping of token_id -> patch_id"""
363
+
364
+ tokens_per_image = image_token_length_w * image_token_length_h
365
+ if no_image is not None and no_image:
366
+ return np.zeros((0, tokens_per_image), np.int32)
367
+
368
+ # Indices to insert the patches
369
+ image_input_idx = image_tokens == image_patch_token_id
370
+ image_input_idx = np.nonzero(image_input_idx)[0].astype(np.int32)
371
+
372
+ if patch_order is not None:
373
+ n_tokens = image_input_idx.shape[0]
374
+ patch_order = np.reshape(patch_order, [-1])
375
+ n_patches = patch_order.shape[0]
376
+
377
+ valid = patch_order >= 0
378
+ n_valid_patches = valid.sum()
379
+ assert len(image_input_idx) == n_valid_patches
380
+
381
+ sorted_patch_ixs = np.zeros([n_tokens], np.int32)
382
+ sorted_patch_ixs[patch_order[valid]] = np.arange(n_valid_patches, dtype=np.int32)
383
+
384
+ # Project the inverted mapping into same sparse structure
385
+ sorted_patch_ixs_ex = np.full(np.shape(patch_order), -1)
386
+ sorted_patch_ixs_ex[valid] = sorted_patch_ixs
387
+
388
+ # Do the gather and then re-masked outputs that were masked in `sorted_patch_ixs`
389
+ valid = (sorted_patch_ixs_ex >= 0).astype(np.int32)
390
+ image_input_idx = image_input_idx[sorted_patch_ixs_ex*valid]
391
+ image_input_idx = image_input_idx*valid - 100*(1 - valid)
392
+ image_input_idx = np.reshape(image_input_idx, [-1, tokens_per_image])
393
+ return image_input_idx
394
+
395
+ def preprocess(
396
+ self,
397
+ image: np.ndarray,
398
+ image_patch_token_id: int,
399
+ image_col_token_id: int,
400
+ image_start_token_id: int,
401
+ image_end_token_id: int,
402
+ max_crops: Optional[int] = None,
403
+ overlap_margins: Optional[List[int]] = None,
404
+ base_image_input_size: Optional[Union[int, List[int]]] = None,
405
+ image_token_length_w: Optional[int] = None,
406
+ image_token_length_h: Optional[int] = None,
407
+ image_patch_size: Optional[int] = None,
408
+ **kwargs,
409
+ ):
410
+ """Preprocesses an image
411
+
412
+ Returns:
413
+ crops: (n_crops, n_patches, patch_dim) individual crops, `n_crops` might
414
+ change between images but the other dimension are fixed
415
+ tokens: (n_tokens,) int32 tokens, pad tokens indicate where to insert the
416
+ patch features, might include other special tokens as well
417
+ image_idx: (n_crops, n_patches) index in `tokens` to put the patch features from the
418
+ crops after pooling, negative values indicates patches features to exclude
419
+ padding_mask: (n_crops, n_patches) what percent of each crop is padding, can be None
420
+ if the image mask is not being used.
421
+ """
422
+
423
+ max_crops = max_crops or self.max_crops
424
+ overlap_margins = overlap_margins or self.overlap_margins
425
+ base_image_input_size = base_image_input_size or self.base_image_input_size
426
+ image_token_length_w = image_token_length_w or self.image_token_length_w
427
+ image_token_length_h = image_token_length_h or self.image_token_length_h
428
+ image_patch_size = image_patch_size or self.image_patch_size
429
+
430
+ crops, image_tokens, patch_ordering, img_mask = self.image_to_patches_and_tokens(
431
+ image,
432
+ image_patch_token_id,
433
+ image_col_token_id,
434
+ image_start_token_id,
435
+ image_end_token_id,
436
+ max_crops,
437
+ overlap_margins,
438
+ base_image_input_size,
439
+ image_token_length_w,
440
+ image_token_length_h,
441
+ image_patch_size,
442
+ )
443
+ patch_idx = self.build_image_input_idx(
444
+ image_tokens,
445
+ patch_ordering,
446
+ image_patch_token_id,
447
+ image_token_length_w=image_token_length_w,
448
+ image_token_length_h=image_token_length_h,
449
+ )
450
+ return crops, image_tokens, patch_idx, img_mask
451
+
452
+ def multimodal_preprocess(
453
+ self,
454
+ images: np.ndarray,
455
+ tokens: List[int],
456
+ image_idx: np.ndarray,
457
+ sequence_length: int,
458
+ image_patch_token_id: int,
459
+ image_col_token_id: int,
460
+ image_start_token_id: int,
461
+ image_end_token_id: int,
462
+ **kwargs,
463
+ ):
464
+ """Merge images and text tokens into multi-modal features for the model
465
+
466
+ :param images: images to use as input
467
+ :param tokens: input text tokens
468
+ :param image_idx: where to insert the images into `tokens`
469
+ :params image_patch_token_id: id to use of tokens that will contain image features
470
+ :params image_col_token_id: token id for image column special tokens
471
+ :params image_start_token_id: token id for image start special tokens
472
+ :params image_end_token_id: token id for image end special tokens
473
+ :params kwargs: override preprocessor default args
474
+ """
475
+ max_total_crops = kwargs.get("max_crops") or self.max_crops
476
+ image_token_length_w = kwargs.get("image_token_length_w") or self.image_token_length_w
477
+ image_token_length_h = kwargs.get("image_token_length_h") or self.image_token_length_h
478
+ image_patch_size = kwargs.get("image_patch_size") or self.image_patch_size
479
+ base_image_input_size = kwargs.get("base_image_input_size") or self.base_image_input_size
480
+ image_num_patch = (
481
+ base_image_input_size[0] // image_patch_size,
482
+ base_image_input_size[1] // image_patch_size,
483
+ )
484
+ image_padding_mask = kwargs.get("image_padding_mask") or self.image_padding_mask
485
+
486
+ tokens_per_image = image_token_length_w * image_token_length_h
487
+ n_pixels = image_patch_size * image_patch_size * 3
488
+ n_patches = image_num_patch[0] * image_num_patch[1]
489
+
490
+ if images is None:
491
+ return {
492
+ "input_ids": tokens,
493
+ }
494
+ else:
495
+ n = len(images)
496
+ all_crops = []
497
+ all_image_idx = []
498
+ out_tokens = []
499
+ all_crop_masks = []
500
+
501
+ for ix in range(n):
502
+ token_ix = image_idx[ix]
503
+ crops, image_tokens, patch_idx, img_mask = self.preprocess(
504
+ images[ix],
505
+ image_patch_token_id,
506
+ image_col_token_id,
507
+ image_start_token_id,
508
+ image_end_token_id,
509
+ **kwargs,
510
+ )
511
+
512
+ if token_ix == -1: # -1 is an image inserted at the very start
513
+ start = 0
514
+ token_ix = 0
515
+ end = 0
516
+ else:
517
+ start = 0 if ix == 0 else image_idx[ix-1] + 1
518
+ end = token_ix + 1
519
+
520
+ all_image_idx.append(patch_idx + token_ix)
521
+ all_crops.append(crops)
522
+ out_tokens.append(tokens[start:token_ix])
523
+ out_tokens.append(image_tokens)
524
+ if ix == (n - 1):
525
+ out_tokens.append(tokens[end:])
526
+ if image_padding_mask:
527
+ all_crop_masks.append(img_mask)
528
+
529
+ input_ids = np.concatenate(out_tokens, 0)
530
+ images = np.concatenate(all_crops, 0)
531
+ image_input_idx = np.concatenate(all_image_idx, 0)
532
+ if image_padding_mask:
533
+ image_masks = np.concatenate(all_crop_masks, 0)
534
+ else:
535
+ image_masks = None
536
+
537
+ out = {
538
+ "input_ids": input_ids,
539
+ "images": images,
540
+ "image_input_idx": image_input_idx
541
+ }
542
+ if image_masks is not None:
543
+ out["image_masks"] = image_masks
544
+ return out
545
+
546
+
547
+ MolmoImageProcessor.register_for_auto_class()
merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
model-00001-of-00005.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6c4f011b584c85493adec12eee3cbd9f7f3df40ea7252a3dba801a394552ed17
3
+ size 3961128688
model-00002-of-00005.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1d7aeb98f5c48bb2c703d211195f81d75dbd792dddabd87ee6e7f5c88fd122ea
3
+ size 3864722032
model-00003-of-00005.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7ca8b7dbc02260b365054c5e9ebffdd4e032366ac3d0798bd101aa75f4b285ad
3
+ size 3728931368
model-00004-of-00005.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:88ffcf43f09e6a0c7f2e01254a65637c346bc6a2c161c9273ac2cc57dd51789b
3
+ size 3996192344
model-00005-of-00005.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:daf0f1d9eb2a5fffbe316aa8b8baa08d88166a6c048eca125c272d28408dfacb
3
+ size 520688944
model.safetensors.index.json ADDED
@@ -0,0 +1,592 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "metadata": {
3
+ "total_size": 16071582720
4
+ },
5
+ "weight_map": {
6
+ "model.transformer.blocks.0.att_proj.bias": "model-00001-of-00005.safetensors",
7
+ "model.transformer.blocks.0.att_proj.weight": "model-00001-of-00005.safetensors",
8
+ "model.transformer.blocks.0.attn_norm.weight": "model-00001-of-00005.safetensors",
9
+ "model.transformer.blocks.0.attn_out.weight": "model-00001-of-00005.safetensors",
10
+ "model.transformer.blocks.0.ff_norm.weight": "model-00001-of-00005.safetensors",
11
+ "model.transformer.blocks.0.ff_out.weight": "model-00001-of-00005.safetensors",
12
+ "model.transformer.blocks.0.ff_proj.weight": "model-00001-of-00005.safetensors",
13
+ "model.transformer.blocks.1.att_proj.bias": "model-00001-of-00005.safetensors",
14
+ "model.transformer.blocks.1.att_proj.weight": "model-00001-of-00005.safetensors",
15
+ "model.transformer.blocks.1.attn_norm.weight": "model-00001-of-00005.safetensors",
16
+ "model.transformer.blocks.1.attn_out.weight": "model-00001-of-00005.safetensors",
17
+ "model.transformer.blocks.1.ff_norm.weight": "model-00001-of-00005.safetensors",
18
+ "model.transformer.blocks.1.ff_out.weight": "model-00001-of-00005.safetensors",
19
+ "model.transformer.blocks.1.ff_proj.weight": "model-00001-of-00005.safetensors",
20
+ "model.transformer.blocks.10.att_proj.bias": "model-00002-of-00005.safetensors",
21
+ "model.transformer.blocks.10.att_proj.weight": "model-00002-of-00005.safetensors",
22
+ "model.transformer.blocks.10.attn_norm.weight": "model-00002-of-00005.safetensors",
23
+ "model.transformer.blocks.10.attn_out.weight": "model-00002-of-00005.safetensors",
24
+ "model.transformer.blocks.10.ff_norm.weight": "model-00002-of-00005.safetensors",
25
+ "model.transformer.blocks.10.ff_out.weight": "model-00002-of-00005.safetensors",
26
+ "model.transformer.blocks.10.ff_proj.weight": "model-00002-of-00005.safetensors",
27
+ "model.transformer.blocks.11.att_proj.bias": "model-00002-of-00005.safetensors",
28
+ "model.transformer.blocks.11.att_proj.weight": "model-00002-of-00005.safetensors",
29
+ "model.transformer.blocks.11.attn_norm.weight": "model-00002-of-00005.safetensors",
30
+ "model.transformer.blocks.11.attn_out.weight": "model-00002-of-00005.safetensors",
31
+ "model.transformer.blocks.11.ff_norm.weight": "model-00002-of-00005.safetensors",
32
+ "model.transformer.blocks.11.ff_out.weight": "model-00002-of-00005.safetensors",
33
+ "model.transformer.blocks.11.ff_proj.weight": "model-00002-of-00005.safetensors",
34
+ "model.transformer.blocks.12.att_proj.bias": "model-00002-of-00005.safetensors",
35
+ "model.transformer.blocks.12.att_proj.weight": "model-00002-of-00005.safetensors",
36
+ "model.transformer.blocks.12.attn_norm.weight": "model-00002-of-00005.safetensors",
37
+ "model.transformer.blocks.12.attn_out.weight": "model-00002-of-00005.safetensors",
38
+ "model.transformer.blocks.12.ff_norm.weight": "model-00002-of-00005.safetensors",
39
+ "model.transformer.blocks.12.ff_out.weight": "model-00002-of-00005.safetensors",
40
+ "model.transformer.blocks.12.ff_proj.weight": "model-00002-of-00005.safetensors",
41
+ "model.transformer.blocks.13.att_proj.bias": "model-00002-of-00005.safetensors",
42
+ "model.transformer.blocks.13.att_proj.weight": "model-00002-of-00005.safetensors",
43
+ "model.transformer.blocks.13.attn_norm.weight": "model-00002-of-00005.safetensors",
44
+ "model.transformer.blocks.13.attn_out.weight": "model-00002-of-00005.safetensors",
45
+ "model.transformer.blocks.13.ff_norm.weight": "model-00002-of-00005.safetensors",
46
+ "model.transformer.blocks.13.ff_out.weight": "model-00002-of-00005.safetensors",
47
+ "model.transformer.blocks.13.ff_proj.weight": "model-00002-of-00005.safetensors",
48
+ "model.transformer.blocks.14.att_proj.bias": "model-00002-of-00005.safetensors",
49
+ "model.transformer.blocks.14.att_proj.weight": "model-00002-of-00005.safetensors",
50
+ "model.transformer.blocks.14.attn_norm.weight": "model-00002-of-00005.safetensors",
51
+ "model.transformer.blocks.14.attn_out.weight": "model-00002-of-00005.safetensors",
52
+ "model.transformer.blocks.14.ff_norm.weight": "model-00002-of-00005.safetensors",
53
+ "model.transformer.blocks.14.ff_out.weight": "model-00002-of-00005.safetensors",
54
+ "model.transformer.blocks.14.ff_proj.weight": "model-00003-of-00005.safetensors",
55
+ "model.transformer.blocks.15.att_proj.bias": "model-00003-of-00005.safetensors",
56
+ "model.transformer.blocks.15.att_proj.weight": "model-00003-of-00005.safetensors",
57
+ "model.transformer.blocks.15.attn_norm.weight": "model-00003-of-00005.safetensors",
58
+ "model.transformer.blocks.15.attn_out.weight": "model-00003-of-00005.safetensors",
59
+ "model.transformer.blocks.15.ff_norm.weight": "model-00003-of-00005.safetensors",
60
+ "model.transformer.blocks.15.ff_out.weight": "model-00003-of-00005.safetensors",
61
+ "model.transformer.blocks.15.ff_proj.weight": "model-00003-of-00005.safetensors",
62
+ "model.transformer.blocks.16.att_proj.bias": "model-00003-of-00005.safetensors",
63
+ "model.transformer.blocks.16.att_proj.weight": "model-00003-of-00005.safetensors",
64
+ "model.transformer.blocks.16.attn_norm.weight": "model-00003-of-00005.safetensors",
65
+ "model.transformer.blocks.16.attn_out.weight": "model-00003-of-00005.safetensors",
66
+ "model.transformer.blocks.16.ff_norm.weight": "model-00003-of-00005.safetensors",
67
+ "model.transformer.blocks.16.ff_out.weight": "model-00003-of-00005.safetensors",
68
+ "model.transformer.blocks.16.ff_proj.weight": "model-00003-of-00005.safetensors",
69
+ "model.transformer.blocks.17.att_proj.bias": "model-00003-of-00005.safetensors",
70
+ "model.transformer.blocks.17.att_proj.weight": "model-00003-of-00005.safetensors",
71
+ "model.transformer.blocks.17.attn_norm.weight": "model-00003-of-00005.safetensors",
72
+ "model.transformer.blocks.17.attn_out.weight": "model-00003-of-00005.safetensors",
73
+ "model.transformer.blocks.17.ff_norm.weight": "model-00003-of-00005.safetensors",
74
+ "model.transformer.blocks.17.ff_out.weight": "model-00003-of-00005.safetensors",
75
+ "model.transformer.blocks.17.ff_proj.weight": "model-00003-of-00005.safetensors",
76
+ "model.transformer.blocks.18.att_proj.bias": "model-00003-of-00005.safetensors",
77
+ "model.transformer.blocks.18.att_proj.weight": "model-00003-of-00005.safetensors",
78
+ "model.transformer.blocks.18.attn_norm.weight": "model-00003-of-00005.safetensors",
79
+ "model.transformer.blocks.18.attn_out.weight": "model-00003-of-00005.safetensors",
80
+ "model.transformer.blocks.18.ff_norm.weight": "model-00003-of-00005.safetensors",
81
+ "model.transformer.blocks.18.ff_out.weight": "model-00003-of-00005.safetensors",
82
+ "model.transformer.blocks.18.ff_proj.weight": "model-00003-of-00005.safetensors",
83
+ "model.transformer.blocks.19.att_proj.bias": "model-00003-of-00005.safetensors",
84
+ "model.transformer.blocks.19.att_proj.weight": "model-00003-of-00005.safetensors",
85
+ "model.transformer.blocks.19.attn_norm.weight": "model-00003-of-00005.safetensors",
86
+ "model.transformer.blocks.19.attn_out.weight": "model-00003-of-00005.safetensors",
87
+ "model.transformer.blocks.19.ff_norm.weight": "model-00003-of-00005.safetensors",
88
+ "model.transformer.blocks.19.ff_out.weight": "model-00003-of-00005.safetensors",
89
+ "model.transformer.blocks.19.ff_proj.weight": "model-00003-of-00005.safetensors",
90
+ "model.transformer.blocks.2.att_proj.bias": "model-00001-of-00005.safetensors",
91
+ "model.transformer.blocks.2.att_proj.weight": "model-00001-of-00005.safetensors",
92
+ "model.transformer.blocks.2.attn_norm.weight": "model-00001-of-00005.safetensors",
93
+ "model.transformer.blocks.2.attn_out.weight": "model-00001-of-00005.safetensors",
94
+ "model.transformer.blocks.2.ff_norm.weight": "model-00001-of-00005.safetensors",
95
+ "model.transformer.blocks.2.ff_out.weight": "model-00001-of-00005.safetensors",
96
+ "model.transformer.blocks.2.ff_proj.weight": "model-00001-of-00005.safetensors",
97
+ "model.transformer.blocks.20.att_proj.bias": "model-00003-of-00005.safetensors",
98
+ "model.transformer.blocks.20.att_proj.weight": "model-00003-of-00005.safetensors",
99
+ "model.transformer.blocks.20.attn_norm.weight": "model-00003-of-00005.safetensors",
100
+ "model.transformer.blocks.20.attn_out.weight": "model-00003-of-00005.safetensors",
101
+ "model.transformer.blocks.20.ff_norm.weight": "model-00003-of-00005.safetensors",
102
+ "model.transformer.blocks.20.ff_out.weight": "model-00003-of-00005.safetensors",
103
+ "model.transformer.blocks.20.ff_proj.weight": "model-00003-of-00005.safetensors",
104
+ "model.transformer.blocks.21.att_proj.bias": "model-00003-of-00005.safetensors",
105
+ "model.transformer.blocks.21.att_proj.weight": "model-00003-of-00005.safetensors",
106
+ "model.transformer.blocks.21.attn_norm.weight": "model-00003-of-00005.safetensors",
107
+ "model.transformer.blocks.21.attn_out.weight": "model-00003-of-00005.safetensors",
108
+ "model.transformer.blocks.21.ff_norm.weight": "model-00003-of-00005.safetensors",
109
+ "model.transformer.blocks.21.ff_out.weight": "model-00003-of-00005.safetensors",
110
+ "model.transformer.blocks.21.ff_proj.weight": "model-00003-of-00005.safetensors",
111
+ "model.transformer.blocks.22.att_proj.bias": "model-00003-of-00005.safetensors",
112
+ "model.transformer.blocks.22.att_proj.weight": "model-00003-of-00005.safetensors",
113
+ "model.transformer.blocks.22.attn_norm.weight": "model-00003-of-00005.safetensors",
114
+ "model.transformer.blocks.22.attn_out.weight": "model-00003-of-00005.safetensors",
115
+ "model.transformer.blocks.22.ff_norm.weight": "model-00003-of-00005.safetensors",
116
+ "model.transformer.blocks.22.ff_out.weight": "model-00003-of-00005.safetensors",
117
+ "model.transformer.blocks.22.ff_proj.weight": "model-00004-of-00005.safetensors",
118
+ "model.transformer.blocks.23.att_proj.bias": "model-00004-of-00005.safetensors",
119
+ "model.transformer.blocks.23.att_proj.weight": "model-00004-of-00005.safetensors",
120
+ "model.transformer.blocks.23.attn_norm.weight": "model-00004-of-00005.safetensors",
121
+ "model.transformer.blocks.23.attn_out.weight": "model-00004-of-00005.safetensors",
122
+ "model.transformer.blocks.23.ff_norm.weight": "model-00004-of-00005.safetensors",
123
+ "model.transformer.blocks.23.ff_out.weight": "model-00004-of-00005.safetensors",
124
+ "model.transformer.blocks.23.ff_proj.weight": "model-00004-of-00005.safetensors",
125
+ "model.transformer.blocks.24.att_proj.bias": "model-00004-of-00005.safetensors",
126
+ "model.transformer.blocks.24.att_proj.weight": "model-00004-of-00005.safetensors",
127
+ "model.transformer.blocks.24.attn_norm.weight": "model-00004-of-00005.safetensors",
128
+ "model.transformer.blocks.24.attn_out.weight": "model-00004-of-00005.safetensors",
129
+ "model.transformer.blocks.24.ff_norm.weight": "model-00004-of-00005.safetensors",
130
+ "model.transformer.blocks.24.ff_out.weight": "model-00004-of-00005.safetensors",
131
+ "model.transformer.blocks.24.ff_proj.weight": "model-00004-of-00005.safetensors",
132
+ "model.transformer.blocks.25.att_proj.bias": "model-00004-of-00005.safetensors",
133
+ "model.transformer.blocks.25.att_proj.weight": "model-00004-of-00005.safetensors",
134
+ "model.transformer.blocks.25.attn_norm.weight": "model-00004-of-00005.safetensors",
135
+ "model.transformer.blocks.25.attn_out.weight": "model-00004-of-00005.safetensors",
136
+ "model.transformer.blocks.25.ff_norm.weight": "model-00004-of-00005.safetensors",
137
+ "model.transformer.blocks.25.ff_out.weight": "model-00004-of-00005.safetensors",
138
+ "model.transformer.blocks.25.ff_proj.weight": "model-00004-of-00005.safetensors",
139
+ "model.transformer.blocks.26.att_proj.bias": "model-00004-of-00005.safetensors",
140
+ "model.transformer.blocks.26.att_proj.weight": "model-00004-of-00005.safetensors",
141
+ "model.transformer.blocks.26.attn_norm.weight": "model-00004-of-00005.safetensors",
142
+ "model.transformer.blocks.26.attn_out.weight": "model-00004-of-00005.safetensors",
143
+ "model.transformer.blocks.26.ff_norm.weight": "model-00004-of-00005.safetensors",
144
+ "model.transformer.blocks.26.ff_out.weight": "model-00004-of-00005.safetensors",
145
+ "model.transformer.blocks.26.ff_proj.weight": "model-00004-of-00005.safetensors",
146
+ "model.transformer.blocks.27.att_proj.bias": "model-00004-of-00005.safetensors",
147
+ "model.transformer.blocks.27.att_proj.weight": "model-00004-of-00005.safetensors",
148
+ "model.transformer.blocks.27.attn_norm.weight": "model-00004-of-00005.safetensors",
149
+ "model.transformer.blocks.27.attn_out.weight": "model-00004-of-00005.safetensors",
150
+ "model.transformer.blocks.27.ff_norm.weight": "model-00004-of-00005.safetensors",
151
+ "model.transformer.blocks.27.ff_out.weight": "model-00004-of-00005.safetensors",
152
+ "model.transformer.blocks.27.ff_proj.weight": "model-00004-of-00005.safetensors",
153
+ "model.transformer.blocks.3.att_proj.bias": "model-00001-of-00005.safetensors",
154
+ "model.transformer.blocks.3.att_proj.weight": "model-00001-of-00005.safetensors",
155
+ "model.transformer.blocks.3.attn_norm.weight": "model-00001-of-00005.safetensors",
156
+ "model.transformer.blocks.3.attn_out.weight": "model-00001-of-00005.safetensors",
157
+ "model.transformer.blocks.3.ff_norm.weight": "model-00001-of-00005.safetensors",
158
+ "model.transformer.blocks.3.ff_out.weight": "model-00001-of-00005.safetensors",
159
+ "model.transformer.blocks.3.ff_proj.weight": "model-00001-of-00005.safetensors",
160
+ "model.transformer.blocks.4.att_proj.bias": "model-00001-of-00005.safetensors",
161
+ "model.transformer.blocks.4.att_proj.weight": "model-00001-of-00005.safetensors",
162
+ "model.transformer.blocks.4.attn_norm.weight": "model-00001-of-00005.safetensors",
163
+ "model.transformer.blocks.4.attn_out.weight": "model-00001-of-00005.safetensors",
164
+ "model.transformer.blocks.4.ff_norm.weight": "model-00001-of-00005.safetensors",
165
+ "model.transformer.blocks.4.ff_out.weight": "model-00001-of-00005.safetensors",
166
+ "model.transformer.blocks.4.ff_proj.weight": "model-00001-of-00005.safetensors",
167
+ "model.transformer.blocks.5.att_proj.bias": "model-00001-of-00005.safetensors",
168
+ "model.transformer.blocks.5.att_proj.weight": "model-00001-of-00005.safetensors",
169
+ "model.transformer.blocks.5.attn_norm.weight": "model-00001-of-00005.safetensors",
170
+ "model.transformer.blocks.5.attn_out.weight": "model-00001-of-00005.safetensors",
171
+ "model.transformer.blocks.5.ff_norm.weight": "model-00001-of-00005.safetensors",
172
+ "model.transformer.blocks.5.ff_out.weight": "model-00001-of-00005.safetensors",
173
+ "model.transformer.blocks.5.ff_proj.weight": "model-00001-of-00005.safetensors",
174
+ "model.transformer.blocks.6.att_proj.bias": "model-00001-of-00005.safetensors",
175
+ "model.transformer.blocks.6.att_proj.weight": "model-00001-of-00005.safetensors",
176
+ "model.transformer.blocks.6.attn_norm.weight": "model-00001-of-00005.safetensors",
177
+ "model.transformer.blocks.6.attn_out.weight": "model-00001-of-00005.safetensors",
178
+ "model.transformer.blocks.6.ff_norm.weight": "model-00001-of-00005.safetensors",
179
+ "model.transformer.blocks.6.ff_out.weight": "model-00002-of-00005.safetensors",
180
+ "model.transformer.blocks.6.ff_proj.weight": "model-00002-of-00005.safetensors",
181
+ "model.transformer.blocks.7.att_proj.bias": "model-00002-of-00005.safetensors",
182
+ "model.transformer.blocks.7.att_proj.weight": "model-00002-of-00005.safetensors",
183
+ "model.transformer.blocks.7.attn_norm.weight": "model-00002-of-00005.safetensors",
184
+ "model.transformer.blocks.7.attn_out.weight": "model-00002-of-00005.safetensors",
185
+ "model.transformer.blocks.7.ff_norm.weight": "model-00002-of-00005.safetensors",
186
+ "model.transformer.blocks.7.ff_out.weight": "model-00002-of-00005.safetensors",
187
+ "model.transformer.blocks.7.ff_proj.weight": "model-00002-of-00005.safetensors",
188
+ "model.transformer.blocks.8.att_proj.bias": "model-00002-of-00005.safetensors",
189
+ "model.transformer.blocks.8.att_proj.weight": "model-00002-of-00005.safetensors",
190
+ "model.transformer.blocks.8.attn_norm.weight": "model-00002-of-00005.safetensors",
191
+ "model.transformer.blocks.8.attn_out.weight": "model-00002-of-00005.safetensors",
192
+ "model.transformer.blocks.8.ff_norm.weight": "model-00002-of-00005.safetensors",
193
+ "model.transformer.blocks.8.ff_out.weight": "model-00002-of-00005.safetensors",
194
+ "model.transformer.blocks.8.ff_proj.weight": "model-00002-of-00005.safetensors",
195
+ "model.transformer.blocks.9.att_proj.bias": "model-00002-of-00005.safetensors",
196
+ "model.transformer.blocks.9.att_proj.weight": "model-00002-of-00005.safetensors",
197
+ "model.transformer.blocks.9.attn_norm.weight": "model-00002-of-00005.safetensors",
198
+ "model.transformer.blocks.9.attn_out.weight": "model-00002-of-00005.safetensors",
199
+ "model.transformer.blocks.9.ff_norm.weight": "model-00002-of-00005.safetensors",
200
+ "model.transformer.blocks.9.ff_out.weight": "model-00002-of-00005.safetensors",
201
+ "model.transformer.blocks.9.ff_proj.weight": "model-00002-of-00005.safetensors",
202
+ "model.transformer.ff_out.weight": "model-00004-of-00005.safetensors",
203
+ "model.transformer.ln_f.weight": "model-00001-of-00005.safetensors",
204
+ "model.transformer.wte.embedding": "model-00001-of-00005.safetensors",
205
+ "model.transformer.wte.new_embedding": "model-00001-of-00005.safetensors",
206
+ "model.vision_backbone.image_pooling_2d.wk.bias": "model-00004-of-00005.safetensors",
207
+ "model.vision_backbone.image_pooling_2d.wk.weight": "model-00004-of-00005.safetensors",
208
+ "model.vision_backbone.image_pooling_2d.wo.bias": "model-00004-of-00005.safetensors",
209
+ "model.vision_backbone.image_pooling_2d.wo.weight": "model-00004-of-00005.safetensors",
210
+ "model.vision_backbone.image_pooling_2d.wq.bias": "model-00004-of-00005.safetensors",
211
+ "model.vision_backbone.image_pooling_2d.wq.weight": "model-00004-of-00005.safetensors",
212
+ "model.vision_backbone.image_pooling_2d.wv.bias": "model-00004-of-00005.safetensors",
213
+ "model.vision_backbone.image_pooling_2d.wv.weight": "model-00004-of-00005.safetensors",
214
+ "model.vision_backbone.image_projector.w1.weight": "model-00004-of-00005.safetensors",
215
+ "model.vision_backbone.image_projector.w2.weight": "model-00004-of-00005.safetensors",
216
+ "model.vision_backbone.image_projector.w3.weight": "model-00004-of-00005.safetensors",
217
+ "model.vision_backbone.image_vit.class_embedding": "model-00004-of-00005.safetensors",
218
+ "model.vision_backbone.image_vit.patch_embedding.weight": "model-00004-of-00005.safetensors",
219
+ "model.vision_backbone.image_vit.positional_embedding": "model-00004-of-00005.safetensors",
220
+ "model.vision_backbone.image_vit.pre_ln.bias": "model-00004-of-00005.safetensors",
221
+ "model.vision_backbone.image_vit.pre_ln.weight": "model-00004-of-00005.safetensors",
222
+ "model.vision_backbone.image_vit.transformer.resblocks.0.attention.wk.bias": "model-00004-of-00005.safetensors",
223
+ "model.vision_backbone.image_vit.transformer.resblocks.0.attention.wk.weight": "model-00004-of-00005.safetensors",
224
+ "model.vision_backbone.image_vit.transformer.resblocks.0.attention.wo.bias": "model-00004-of-00005.safetensors",
225
+ "model.vision_backbone.image_vit.transformer.resblocks.0.attention.wo.weight": "model-00004-of-00005.safetensors",
226
+ "model.vision_backbone.image_vit.transformer.resblocks.0.attention.wq.bias": "model-00004-of-00005.safetensors",
227
+ "model.vision_backbone.image_vit.transformer.resblocks.0.attention.wq.weight": "model-00004-of-00005.safetensors",
228
+ "model.vision_backbone.image_vit.transformer.resblocks.0.attention.wv.bias": "model-00004-of-00005.safetensors",
229
+ "model.vision_backbone.image_vit.transformer.resblocks.0.attention.wv.weight": "model-00004-of-00005.safetensors",
230
+ "model.vision_backbone.image_vit.transformer.resblocks.0.attention_norm.bias": "model-00004-of-00005.safetensors",
231
+ "model.vision_backbone.image_vit.transformer.resblocks.0.attention_norm.weight": "model-00004-of-00005.safetensors",
232
+ "model.vision_backbone.image_vit.transformer.resblocks.0.feed_forward.w1.bias": "model-00004-of-00005.safetensors",
233
+ "model.vision_backbone.image_vit.transformer.resblocks.0.feed_forward.w1.weight": "model-00004-of-00005.safetensors",
234
+ "model.vision_backbone.image_vit.transformer.resblocks.0.feed_forward.w2.bias": "model-00004-of-00005.safetensors",
235
+ "model.vision_backbone.image_vit.transformer.resblocks.0.feed_forward.w2.weight": "model-00004-of-00005.safetensors",
236
+ "model.vision_backbone.image_vit.transformer.resblocks.0.ffn_norm.bias": "model-00004-of-00005.safetensors",
237
+ "model.vision_backbone.image_vit.transformer.resblocks.0.ffn_norm.weight": "model-00004-of-00005.safetensors",
238
+ "model.vision_backbone.image_vit.transformer.resblocks.1.attention.wk.bias": "model-00004-of-00005.safetensors",
239
+ "model.vision_backbone.image_vit.transformer.resblocks.1.attention.wk.weight": "model-00004-of-00005.safetensors",
240
+ "model.vision_backbone.image_vit.transformer.resblocks.1.attention.wo.bias": "model-00004-of-00005.safetensors",
241
+ "model.vision_backbone.image_vit.transformer.resblocks.1.attention.wo.weight": "model-00004-of-00005.safetensors",
242
+ "model.vision_backbone.image_vit.transformer.resblocks.1.attention.wq.bias": "model-00004-of-00005.safetensors",
243
+ "model.vision_backbone.image_vit.transformer.resblocks.1.attention.wq.weight": "model-00004-of-00005.safetensors",
244
+ "model.vision_backbone.image_vit.transformer.resblocks.1.attention.wv.bias": "model-00004-of-00005.safetensors",
245
+ "model.vision_backbone.image_vit.transformer.resblocks.1.attention.wv.weight": "model-00004-of-00005.safetensors",
246
+ "model.vision_backbone.image_vit.transformer.resblocks.1.attention_norm.bias": "model-00004-of-00005.safetensors",
247
+ "model.vision_backbone.image_vit.transformer.resblocks.1.attention_norm.weight": "model-00004-of-00005.safetensors",
248
+ "model.vision_backbone.image_vit.transformer.resblocks.1.feed_forward.w1.bias": "model-00004-of-00005.safetensors",
249
+ "model.vision_backbone.image_vit.transformer.resblocks.1.feed_forward.w1.weight": "model-00004-of-00005.safetensors",
250
+ "model.vision_backbone.image_vit.transformer.resblocks.1.feed_forward.w2.bias": "model-00004-of-00005.safetensors",
251
+ "model.vision_backbone.image_vit.transformer.resblocks.1.feed_forward.w2.weight": "model-00004-of-00005.safetensors",
252
+ "model.vision_backbone.image_vit.transformer.resblocks.1.ffn_norm.bias": "model-00004-of-00005.safetensors",
253
+ "model.vision_backbone.image_vit.transformer.resblocks.1.ffn_norm.weight": "model-00004-of-00005.safetensors",
254
+ "model.vision_backbone.image_vit.transformer.resblocks.10.attention.wk.bias": "model-00004-of-00005.safetensors",
255
+ "model.vision_backbone.image_vit.transformer.resblocks.10.attention.wk.weight": "model-00004-of-00005.safetensors",
256
+ "model.vision_backbone.image_vit.transformer.resblocks.10.attention.wo.bias": "model-00004-of-00005.safetensors",
257
+ "model.vision_backbone.image_vit.transformer.resblocks.10.attention.wo.weight": "model-00004-of-00005.safetensors",
258
+ "model.vision_backbone.image_vit.transformer.resblocks.10.attention.wq.bias": "model-00004-of-00005.safetensors",
259
+ "model.vision_backbone.image_vit.transformer.resblocks.10.attention.wq.weight": "model-00004-of-00005.safetensors",
260
+ "model.vision_backbone.image_vit.transformer.resblocks.10.attention.wv.bias": "model-00004-of-00005.safetensors",
261
+ "model.vision_backbone.image_vit.transformer.resblocks.10.attention.wv.weight": "model-00004-of-00005.safetensors",
262
+ "model.vision_backbone.image_vit.transformer.resblocks.10.attention_norm.bias": "model-00004-of-00005.safetensors",
263
+ "model.vision_backbone.image_vit.transformer.resblocks.10.attention_norm.weight": "model-00004-of-00005.safetensors",
264
+ "model.vision_backbone.image_vit.transformer.resblocks.10.feed_forward.w1.bias": "model-00004-of-00005.safetensors",
265
+ "model.vision_backbone.image_vit.transformer.resblocks.10.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
266
+ "model.vision_backbone.image_vit.transformer.resblocks.10.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
267
+ "model.vision_backbone.image_vit.transformer.resblocks.10.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
268
+ "model.vision_backbone.image_vit.transformer.resblocks.10.ffn_norm.bias": "model-00005-of-00005.safetensors",
269
+ "model.vision_backbone.image_vit.transformer.resblocks.10.ffn_norm.weight": "model-00005-of-00005.safetensors",
270
+ "model.vision_backbone.image_vit.transformer.resblocks.11.attention.wk.bias": "model-00005-of-00005.safetensors",
271
+ "model.vision_backbone.image_vit.transformer.resblocks.11.attention.wk.weight": "model-00005-of-00005.safetensors",
272
+ "model.vision_backbone.image_vit.transformer.resblocks.11.attention.wo.bias": "model-00005-of-00005.safetensors",
273
+ "model.vision_backbone.image_vit.transformer.resblocks.11.attention.wo.weight": "model-00005-of-00005.safetensors",
274
+ "model.vision_backbone.image_vit.transformer.resblocks.11.attention.wq.bias": "model-00005-of-00005.safetensors",
275
+ "model.vision_backbone.image_vit.transformer.resblocks.11.attention.wq.weight": "model-00005-of-00005.safetensors",
276
+ "model.vision_backbone.image_vit.transformer.resblocks.11.attention.wv.bias": "model-00005-of-00005.safetensors",
277
+ "model.vision_backbone.image_vit.transformer.resblocks.11.attention.wv.weight": "model-00005-of-00005.safetensors",
278
+ "model.vision_backbone.image_vit.transformer.resblocks.11.attention_norm.bias": "model-00005-of-00005.safetensors",
279
+ "model.vision_backbone.image_vit.transformer.resblocks.11.attention_norm.weight": "model-00005-of-00005.safetensors",
280
+ "model.vision_backbone.image_vit.transformer.resblocks.11.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
281
+ "model.vision_backbone.image_vit.transformer.resblocks.11.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
282
+ "model.vision_backbone.image_vit.transformer.resblocks.11.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
283
+ "model.vision_backbone.image_vit.transformer.resblocks.11.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
284
+ "model.vision_backbone.image_vit.transformer.resblocks.11.ffn_norm.bias": "model-00005-of-00005.safetensors",
285
+ "model.vision_backbone.image_vit.transformer.resblocks.11.ffn_norm.weight": "model-00005-of-00005.safetensors",
286
+ "model.vision_backbone.image_vit.transformer.resblocks.12.attention.wk.bias": "model-00005-of-00005.safetensors",
287
+ "model.vision_backbone.image_vit.transformer.resblocks.12.attention.wk.weight": "model-00005-of-00005.safetensors",
288
+ "model.vision_backbone.image_vit.transformer.resblocks.12.attention.wo.bias": "model-00005-of-00005.safetensors",
289
+ "model.vision_backbone.image_vit.transformer.resblocks.12.attention.wo.weight": "model-00005-of-00005.safetensors",
290
+ "model.vision_backbone.image_vit.transformer.resblocks.12.attention.wq.bias": "model-00005-of-00005.safetensors",
291
+ "model.vision_backbone.image_vit.transformer.resblocks.12.attention.wq.weight": "model-00005-of-00005.safetensors",
292
+ "model.vision_backbone.image_vit.transformer.resblocks.12.attention.wv.bias": "model-00005-of-00005.safetensors",
293
+ "model.vision_backbone.image_vit.transformer.resblocks.12.attention.wv.weight": "model-00005-of-00005.safetensors",
294
+ "model.vision_backbone.image_vit.transformer.resblocks.12.attention_norm.bias": "model-00005-of-00005.safetensors",
295
+ "model.vision_backbone.image_vit.transformer.resblocks.12.attention_norm.weight": "model-00005-of-00005.safetensors",
296
+ "model.vision_backbone.image_vit.transformer.resblocks.12.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
297
+ "model.vision_backbone.image_vit.transformer.resblocks.12.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
298
+ "model.vision_backbone.image_vit.transformer.resblocks.12.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
299
+ "model.vision_backbone.image_vit.transformer.resblocks.12.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
300
+ "model.vision_backbone.image_vit.transformer.resblocks.12.ffn_norm.bias": "model-00005-of-00005.safetensors",
301
+ "model.vision_backbone.image_vit.transformer.resblocks.12.ffn_norm.weight": "model-00005-of-00005.safetensors",
302
+ "model.vision_backbone.image_vit.transformer.resblocks.13.attention.wk.bias": "model-00005-of-00005.safetensors",
303
+ "model.vision_backbone.image_vit.transformer.resblocks.13.attention.wk.weight": "model-00005-of-00005.safetensors",
304
+ "model.vision_backbone.image_vit.transformer.resblocks.13.attention.wo.bias": "model-00005-of-00005.safetensors",
305
+ "model.vision_backbone.image_vit.transformer.resblocks.13.attention.wo.weight": "model-00005-of-00005.safetensors",
306
+ "model.vision_backbone.image_vit.transformer.resblocks.13.attention.wq.bias": "model-00005-of-00005.safetensors",
307
+ "model.vision_backbone.image_vit.transformer.resblocks.13.attention.wq.weight": "model-00005-of-00005.safetensors",
308
+ "model.vision_backbone.image_vit.transformer.resblocks.13.attention.wv.bias": "model-00005-of-00005.safetensors",
309
+ "model.vision_backbone.image_vit.transformer.resblocks.13.attention.wv.weight": "model-00005-of-00005.safetensors",
310
+ "model.vision_backbone.image_vit.transformer.resblocks.13.attention_norm.bias": "model-00005-of-00005.safetensors",
311
+ "model.vision_backbone.image_vit.transformer.resblocks.13.attention_norm.weight": "model-00005-of-00005.safetensors",
312
+ "model.vision_backbone.image_vit.transformer.resblocks.13.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
313
+ "model.vision_backbone.image_vit.transformer.resblocks.13.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
314
+ "model.vision_backbone.image_vit.transformer.resblocks.13.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
315
+ "model.vision_backbone.image_vit.transformer.resblocks.13.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
316
+ "model.vision_backbone.image_vit.transformer.resblocks.13.ffn_norm.bias": "model-00005-of-00005.safetensors",
317
+ "model.vision_backbone.image_vit.transformer.resblocks.13.ffn_norm.weight": "model-00005-of-00005.safetensors",
318
+ "model.vision_backbone.image_vit.transformer.resblocks.14.attention.wk.bias": "model-00005-of-00005.safetensors",
319
+ "model.vision_backbone.image_vit.transformer.resblocks.14.attention.wk.weight": "model-00005-of-00005.safetensors",
320
+ "model.vision_backbone.image_vit.transformer.resblocks.14.attention.wo.bias": "model-00005-of-00005.safetensors",
321
+ "model.vision_backbone.image_vit.transformer.resblocks.14.attention.wo.weight": "model-00005-of-00005.safetensors",
322
+ "model.vision_backbone.image_vit.transformer.resblocks.14.attention.wq.bias": "model-00005-of-00005.safetensors",
323
+ "model.vision_backbone.image_vit.transformer.resblocks.14.attention.wq.weight": "model-00005-of-00005.safetensors",
324
+ "model.vision_backbone.image_vit.transformer.resblocks.14.attention.wv.bias": "model-00005-of-00005.safetensors",
325
+ "model.vision_backbone.image_vit.transformer.resblocks.14.attention.wv.weight": "model-00005-of-00005.safetensors",
326
+ "model.vision_backbone.image_vit.transformer.resblocks.14.attention_norm.bias": "model-00005-of-00005.safetensors",
327
+ "model.vision_backbone.image_vit.transformer.resblocks.14.attention_norm.weight": "model-00005-of-00005.safetensors",
328
+ "model.vision_backbone.image_vit.transformer.resblocks.14.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
329
+ "model.vision_backbone.image_vit.transformer.resblocks.14.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
330
+ "model.vision_backbone.image_vit.transformer.resblocks.14.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
331
+ "model.vision_backbone.image_vit.transformer.resblocks.14.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
332
+ "model.vision_backbone.image_vit.transformer.resblocks.14.ffn_norm.bias": "model-00005-of-00005.safetensors",
333
+ "model.vision_backbone.image_vit.transformer.resblocks.14.ffn_norm.weight": "model-00005-of-00005.safetensors",
334
+ "model.vision_backbone.image_vit.transformer.resblocks.15.attention.wk.bias": "model-00005-of-00005.safetensors",
335
+ "model.vision_backbone.image_vit.transformer.resblocks.15.attention.wk.weight": "model-00005-of-00005.safetensors",
336
+ "model.vision_backbone.image_vit.transformer.resblocks.15.attention.wo.bias": "model-00005-of-00005.safetensors",
337
+ "model.vision_backbone.image_vit.transformer.resblocks.15.attention.wo.weight": "model-00005-of-00005.safetensors",
338
+ "model.vision_backbone.image_vit.transformer.resblocks.15.attention.wq.bias": "model-00005-of-00005.safetensors",
339
+ "model.vision_backbone.image_vit.transformer.resblocks.15.attention.wq.weight": "model-00005-of-00005.safetensors",
340
+ "model.vision_backbone.image_vit.transformer.resblocks.15.attention.wv.bias": "model-00005-of-00005.safetensors",
341
+ "model.vision_backbone.image_vit.transformer.resblocks.15.attention.wv.weight": "model-00005-of-00005.safetensors",
342
+ "model.vision_backbone.image_vit.transformer.resblocks.15.attention_norm.bias": "model-00005-of-00005.safetensors",
343
+ "model.vision_backbone.image_vit.transformer.resblocks.15.attention_norm.weight": "model-00005-of-00005.safetensors",
344
+ "model.vision_backbone.image_vit.transformer.resblocks.15.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
345
+ "model.vision_backbone.image_vit.transformer.resblocks.15.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
346
+ "model.vision_backbone.image_vit.transformer.resblocks.15.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
347
+ "model.vision_backbone.image_vit.transformer.resblocks.15.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
348
+ "model.vision_backbone.image_vit.transformer.resblocks.15.ffn_norm.bias": "model-00005-of-00005.safetensors",
349
+ "model.vision_backbone.image_vit.transformer.resblocks.15.ffn_norm.weight": "model-00005-of-00005.safetensors",
350
+ "model.vision_backbone.image_vit.transformer.resblocks.16.attention.wk.bias": "model-00005-of-00005.safetensors",
351
+ "model.vision_backbone.image_vit.transformer.resblocks.16.attention.wk.weight": "model-00005-of-00005.safetensors",
352
+ "model.vision_backbone.image_vit.transformer.resblocks.16.attention.wo.bias": "model-00005-of-00005.safetensors",
353
+ "model.vision_backbone.image_vit.transformer.resblocks.16.attention.wo.weight": "model-00005-of-00005.safetensors",
354
+ "model.vision_backbone.image_vit.transformer.resblocks.16.attention.wq.bias": "model-00005-of-00005.safetensors",
355
+ "model.vision_backbone.image_vit.transformer.resblocks.16.attention.wq.weight": "model-00005-of-00005.safetensors",
356
+ "model.vision_backbone.image_vit.transformer.resblocks.16.attention.wv.bias": "model-00005-of-00005.safetensors",
357
+ "model.vision_backbone.image_vit.transformer.resblocks.16.attention.wv.weight": "model-00005-of-00005.safetensors",
358
+ "model.vision_backbone.image_vit.transformer.resblocks.16.attention_norm.bias": "model-00005-of-00005.safetensors",
359
+ "model.vision_backbone.image_vit.transformer.resblocks.16.attention_norm.weight": "model-00005-of-00005.safetensors",
360
+ "model.vision_backbone.image_vit.transformer.resblocks.16.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
361
+ "model.vision_backbone.image_vit.transformer.resblocks.16.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
362
+ "model.vision_backbone.image_vit.transformer.resblocks.16.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
363
+ "model.vision_backbone.image_vit.transformer.resblocks.16.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
364
+ "model.vision_backbone.image_vit.transformer.resblocks.16.ffn_norm.bias": "model-00005-of-00005.safetensors",
365
+ "model.vision_backbone.image_vit.transformer.resblocks.16.ffn_norm.weight": "model-00005-of-00005.safetensors",
366
+ "model.vision_backbone.image_vit.transformer.resblocks.17.attention.wk.bias": "model-00005-of-00005.safetensors",
367
+ "model.vision_backbone.image_vit.transformer.resblocks.17.attention.wk.weight": "model-00005-of-00005.safetensors",
368
+ "model.vision_backbone.image_vit.transformer.resblocks.17.attention.wo.bias": "model-00005-of-00005.safetensors",
369
+ "model.vision_backbone.image_vit.transformer.resblocks.17.attention.wo.weight": "model-00005-of-00005.safetensors",
370
+ "model.vision_backbone.image_vit.transformer.resblocks.17.attention.wq.bias": "model-00005-of-00005.safetensors",
371
+ "model.vision_backbone.image_vit.transformer.resblocks.17.attention.wq.weight": "model-00005-of-00005.safetensors",
372
+ "model.vision_backbone.image_vit.transformer.resblocks.17.attention.wv.bias": "model-00005-of-00005.safetensors",
373
+ "model.vision_backbone.image_vit.transformer.resblocks.17.attention.wv.weight": "model-00005-of-00005.safetensors",
374
+ "model.vision_backbone.image_vit.transformer.resblocks.17.attention_norm.bias": "model-00005-of-00005.safetensors",
375
+ "model.vision_backbone.image_vit.transformer.resblocks.17.attention_norm.weight": "model-00005-of-00005.safetensors",
376
+ "model.vision_backbone.image_vit.transformer.resblocks.17.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
377
+ "model.vision_backbone.image_vit.transformer.resblocks.17.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
378
+ "model.vision_backbone.image_vit.transformer.resblocks.17.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
379
+ "model.vision_backbone.image_vit.transformer.resblocks.17.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
380
+ "model.vision_backbone.image_vit.transformer.resblocks.17.ffn_norm.bias": "model-00005-of-00005.safetensors",
381
+ "model.vision_backbone.image_vit.transformer.resblocks.17.ffn_norm.weight": "model-00005-of-00005.safetensors",
382
+ "model.vision_backbone.image_vit.transformer.resblocks.18.attention.wk.bias": "model-00005-of-00005.safetensors",
383
+ "model.vision_backbone.image_vit.transformer.resblocks.18.attention.wk.weight": "model-00005-of-00005.safetensors",
384
+ "model.vision_backbone.image_vit.transformer.resblocks.18.attention.wo.bias": "model-00005-of-00005.safetensors",
385
+ "model.vision_backbone.image_vit.transformer.resblocks.18.attention.wo.weight": "model-00005-of-00005.safetensors",
386
+ "model.vision_backbone.image_vit.transformer.resblocks.18.attention.wq.bias": "model-00005-of-00005.safetensors",
387
+ "model.vision_backbone.image_vit.transformer.resblocks.18.attention.wq.weight": "model-00005-of-00005.safetensors",
388
+ "model.vision_backbone.image_vit.transformer.resblocks.18.attention.wv.bias": "model-00005-of-00005.safetensors",
389
+ "model.vision_backbone.image_vit.transformer.resblocks.18.attention.wv.weight": "model-00005-of-00005.safetensors",
390
+ "model.vision_backbone.image_vit.transformer.resblocks.18.attention_norm.bias": "model-00005-of-00005.safetensors",
391
+ "model.vision_backbone.image_vit.transformer.resblocks.18.attention_norm.weight": "model-00005-of-00005.safetensors",
392
+ "model.vision_backbone.image_vit.transformer.resblocks.18.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
393
+ "model.vision_backbone.image_vit.transformer.resblocks.18.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
394
+ "model.vision_backbone.image_vit.transformer.resblocks.18.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
395
+ "model.vision_backbone.image_vit.transformer.resblocks.18.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
396
+ "model.vision_backbone.image_vit.transformer.resblocks.18.ffn_norm.bias": "model-00005-of-00005.safetensors",
397
+ "model.vision_backbone.image_vit.transformer.resblocks.18.ffn_norm.weight": "model-00005-of-00005.safetensors",
398
+ "model.vision_backbone.image_vit.transformer.resblocks.19.attention.wk.bias": "model-00005-of-00005.safetensors",
399
+ "model.vision_backbone.image_vit.transformer.resblocks.19.attention.wk.weight": "model-00005-of-00005.safetensors",
400
+ "model.vision_backbone.image_vit.transformer.resblocks.19.attention.wo.bias": "model-00005-of-00005.safetensors",
401
+ "model.vision_backbone.image_vit.transformer.resblocks.19.attention.wo.weight": "model-00005-of-00005.safetensors",
402
+ "model.vision_backbone.image_vit.transformer.resblocks.19.attention.wq.bias": "model-00005-of-00005.safetensors",
403
+ "model.vision_backbone.image_vit.transformer.resblocks.19.attention.wq.weight": "model-00005-of-00005.safetensors",
404
+ "model.vision_backbone.image_vit.transformer.resblocks.19.attention.wv.bias": "model-00005-of-00005.safetensors",
405
+ "model.vision_backbone.image_vit.transformer.resblocks.19.attention.wv.weight": "model-00005-of-00005.safetensors",
406
+ "model.vision_backbone.image_vit.transformer.resblocks.19.attention_norm.bias": "model-00005-of-00005.safetensors",
407
+ "model.vision_backbone.image_vit.transformer.resblocks.19.attention_norm.weight": "model-00005-of-00005.safetensors",
408
+ "model.vision_backbone.image_vit.transformer.resblocks.19.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
409
+ "model.vision_backbone.image_vit.transformer.resblocks.19.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
410
+ "model.vision_backbone.image_vit.transformer.resblocks.19.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
411
+ "model.vision_backbone.image_vit.transformer.resblocks.19.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
412
+ "model.vision_backbone.image_vit.transformer.resblocks.19.ffn_norm.bias": "model-00005-of-00005.safetensors",
413
+ "model.vision_backbone.image_vit.transformer.resblocks.19.ffn_norm.weight": "model-00005-of-00005.safetensors",
414
+ "model.vision_backbone.image_vit.transformer.resblocks.2.attention.wk.bias": "model-00005-of-00005.safetensors",
415
+ "model.vision_backbone.image_vit.transformer.resblocks.2.attention.wk.weight": "model-00005-of-00005.safetensors",
416
+ "model.vision_backbone.image_vit.transformer.resblocks.2.attention.wo.bias": "model-00005-of-00005.safetensors",
417
+ "model.vision_backbone.image_vit.transformer.resblocks.2.attention.wo.weight": "model-00005-of-00005.safetensors",
418
+ "model.vision_backbone.image_vit.transformer.resblocks.2.attention.wq.bias": "model-00005-of-00005.safetensors",
419
+ "model.vision_backbone.image_vit.transformer.resblocks.2.attention.wq.weight": "model-00005-of-00005.safetensors",
420
+ "model.vision_backbone.image_vit.transformer.resblocks.2.attention.wv.bias": "model-00005-of-00005.safetensors",
421
+ "model.vision_backbone.image_vit.transformer.resblocks.2.attention.wv.weight": "model-00005-of-00005.safetensors",
422
+ "model.vision_backbone.image_vit.transformer.resblocks.2.attention_norm.bias": "model-00005-of-00005.safetensors",
423
+ "model.vision_backbone.image_vit.transformer.resblocks.2.attention_norm.weight": "model-00005-of-00005.safetensors",
424
+ "model.vision_backbone.image_vit.transformer.resblocks.2.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
425
+ "model.vision_backbone.image_vit.transformer.resblocks.2.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
426
+ "model.vision_backbone.image_vit.transformer.resblocks.2.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
427
+ "model.vision_backbone.image_vit.transformer.resblocks.2.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
428
+ "model.vision_backbone.image_vit.transformer.resblocks.2.ffn_norm.bias": "model-00005-of-00005.safetensors",
429
+ "model.vision_backbone.image_vit.transformer.resblocks.2.ffn_norm.weight": "model-00005-of-00005.safetensors",
430
+ "model.vision_backbone.image_vit.transformer.resblocks.20.attention.wk.bias": "model-00005-of-00005.safetensors",
431
+ "model.vision_backbone.image_vit.transformer.resblocks.20.attention.wk.weight": "model-00005-of-00005.safetensors",
432
+ "model.vision_backbone.image_vit.transformer.resblocks.20.attention.wo.bias": "model-00005-of-00005.safetensors",
433
+ "model.vision_backbone.image_vit.transformer.resblocks.20.attention.wo.weight": "model-00005-of-00005.safetensors",
434
+ "model.vision_backbone.image_vit.transformer.resblocks.20.attention.wq.bias": "model-00005-of-00005.safetensors",
435
+ "model.vision_backbone.image_vit.transformer.resblocks.20.attention.wq.weight": "model-00005-of-00005.safetensors",
436
+ "model.vision_backbone.image_vit.transformer.resblocks.20.attention.wv.bias": "model-00005-of-00005.safetensors",
437
+ "model.vision_backbone.image_vit.transformer.resblocks.20.attention.wv.weight": "model-00005-of-00005.safetensors",
438
+ "model.vision_backbone.image_vit.transformer.resblocks.20.attention_norm.bias": "model-00005-of-00005.safetensors",
439
+ "model.vision_backbone.image_vit.transformer.resblocks.20.attention_norm.weight": "model-00005-of-00005.safetensors",
440
+ "model.vision_backbone.image_vit.transformer.resblocks.20.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
441
+ "model.vision_backbone.image_vit.transformer.resblocks.20.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
442
+ "model.vision_backbone.image_vit.transformer.resblocks.20.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
443
+ "model.vision_backbone.image_vit.transformer.resblocks.20.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
444
+ "model.vision_backbone.image_vit.transformer.resblocks.20.ffn_norm.bias": "model-00005-of-00005.safetensors",
445
+ "model.vision_backbone.image_vit.transformer.resblocks.20.ffn_norm.weight": "model-00005-of-00005.safetensors",
446
+ "model.vision_backbone.image_vit.transformer.resblocks.21.attention.wk.bias": "model-00005-of-00005.safetensors",
447
+ "model.vision_backbone.image_vit.transformer.resblocks.21.attention.wk.weight": "model-00005-of-00005.safetensors",
448
+ "model.vision_backbone.image_vit.transformer.resblocks.21.attention.wo.bias": "model-00005-of-00005.safetensors",
449
+ "model.vision_backbone.image_vit.transformer.resblocks.21.attention.wo.weight": "model-00005-of-00005.safetensors",
450
+ "model.vision_backbone.image_vit.transformer.resblocks.21.attention.wq.bias": "model-00005-of-00005.safetensors",
451
+ "model.vision_backbone.image_vit.transformer.resblocks.21.attention.wq.weight": "model-00005-of-00005.safetensors",
452
+ "model.vision_backbone.image_vit.transformer.resblocks.21.attention.wv.bias": "model-00005-of-00005.safetensors",
453
+ "model.vision_backbone.image_vit.transformer.resblocks.21.attention.wv.weight": "model-00005-of-00005.safetensors",
454
+ "model.vision_backbone.image_vit.transformer.resblocks.21.attention_norm.bias": "model-00005-of-00005.safetensors",
455
+ "model.vision_backbone.image_vit.transformer.resblocks.21.attention_norm.weight": "model-00005-of-00005.safetensors",
456
+ "model.vision_backbone.image_vit.transformer.resblocks.21.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
457
+ "model.vision_backbone.image_vit.transformer.resblocks.21.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
458
+ "model.vision_backbone.image_vit.transformer.resblocks.21.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
459
+ "model.vision_backbone.image_vit.transformer.resblocks.21.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
460
+ "model.vision_backbone.image_vit.transformer.resblocks.21.ffn_norm.bias": "model-00005-of-00005.safetensors",
461
+ "model.vision_backbone.image_vit.transformer.resblocks.21.ffn_norm.weight": "model-00005-of-00005.safetensors",
462
+ "model.vision_backbone.image_vit.transformer.resblocks.22.attention.wk.bias": "model-00005-of-00005.safetensors",
463
+ "model.vision_backbone.image_vit.transformer.resblocks.22.attention.wk.weight": "model-00005-of-00005.safetensors",
464
+ "model.vision_backbone.image_vit.transformer.resblocks.22.attention.wo.bias": "model-00005-of-00005.safetensors",
465
+ "model.vision_backbone.image_vit.transformer.resblocks.22.attention.wo.weight": "model-00005-of-00005.safetensors",
466
+ "model.vision_backbone.image_vit.transformer.resblocks.22.attention.wq.bias": "model-00005-of-00005.safetensors",
467
+ "model.vision_backbone.image_vit.transformer.resblocks.22.attention.wq.weight": "model-00005-of-00005.safetensors",
468
+ "model.vision_backbone.image_vit.transformer.resblocks.22.attention.wv.bias": "model-00005-of-00005.safetensors",
469
+ "model.vision_backbone.image_vit.transformer.resblocks.22.attention.wv.weight": "model-00005-of-00005.safetensors",
470
+ "model.vision_backbone.image_vit.transformer.resblocks.22.attention_norm.bias": "model-00005-of-00005.safetensors",
471
+ "model.vision_backbone.image_vit.transformer.resblocks.22.attention_norm.weight": "model-00005-of-00005.safetensors",
472
+ "model.vision_backbone.image_vit.transformer.resblocks.22.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
473
+ "model.vision_backbone.image_vit.transformer.resblocks.22.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
474
+ "model.vision_backbone.image_vit.transformer.resblocks.22.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
475
+ "model.vision_backbone.image_vit.transformer.resblocks.22.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
476
+ "model.vision_backbone.image_vit.transformer.resblocks.22.ffn_norm.bias": "model-00005-of-00005.safetensors",
477
+ "model.vision_backbone.image_vit.transformer.resblocks.22.ffn_norm.weight": "model-00005-of-00005.safetensors",
478
+ "model.vision_backbone.image_vit.transformer.resblocks.3.attention.wk.bias": "model-00005-of-00005.safetensors",
479
+ "model.vision_backbone.image_vit.transformer.resblocks.3.attention.wk.weight": "model-00005-of-00005.safetensors",
480
+ "model.vision_backbone.image_vit.transformer.resblocks.3.attention.wo.bias": "model-00005-of-00005.safetensors",
481
+ "model.vision_backbone.image_vit.transformer.resblocks.3.attention.wo.weight": "model-00005-of-00005.safetensors",
482
+ "model.vision_backbone.image_vit.transformer.resblocks.3.attention.wq.bias": "model-00005-of-00005.safetensors",
483
+ "model.vision_backbone.image_vit.transformer.resblocks.3.attention.wq.weight": "model-00005-of-00005.safetensors",
484
+ "model.vision_backbone.image_vit.transformer.resblocks.3.attention.wv.bias": "model-00005-of-00005.safetensors",
485
+ "model.vision_backbone.image_vit.transformer.resblocks.3.attention.wv.weight": "model-00005-of-00005.safetensors",
486
+ "model.vision_backbone.image_vit.transformer.resblocks.3.attention_norm.bias": "model-00005-of-00005.safetensors",
487
+ "model.vision_backbone.image_vit.transformer.resblocks.3.attention_norm.weight": "model-00005-of-00005.safetensors",
488
+ "model.vision_backbone.image_vit.transformer.resblocks.3.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
489
+ "model.vision_backbone.image_vit.transformer.resblocks.3.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
490
+ "model.vision_backbone.image_vit.transformer.resblocks.3.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
491
+ "model.vision_backbone.image_vit.transformer.resblocks.3.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
492
+ "model.vision_backbone.image_vit.transformer.resblocks.3.ffn_norm.bias": "model-00005-of-00005.safetensors",
493
+ "model.vision_backbone.image_vit.transformer.resblocks.3.ffn_norm.weight": "model-00005-of-00005.safetensors",
494
+ "model.vision_backbone.image_vit.transformer.resblocks.4.attention.wk.bias": "model-00005-of-00005.safetensors",
495
+ "model.vision_backbone.image_vit.transformer.resblocks.4.attention.wk.weight": "model-00005-of-00005.safetensors",
496
+ "model.vision_backbone.image_vit.transformer.resblocks.4.attention.wo.bias": "model-00005-of-00005.safetensors",
497
+ "model.vision_backbone.image_vit.transformer.resblocks.4.attention.wo.weight": "model-00005-of-00005.safetensors",
498
+ "model.vision_backbone.image_vit.transformer.resblocks.4.attention.wq.bias": "model-00005-of-00005.safetensors",
499
+ "model.vision_backbone.image_vit.transformer.resblocks.4.attention.wq.weight": "model-00005-of-00005.safetensors",
500
+ "model.vision_backbone.image_vit.transformer.resblocks.4.attention.wv.bias": "model-00005-of-00005.safetensors",
501
+ "model.vision_backbone.image_vit.transformer.resblocks.4.attention.wv.weight": "model-00005-of-00005.safetensors",
502
+ "model.vision_backbone.image_vit.transformer.resblocks.4.attention_norm.bias": "model-00005-of-00005.safetensors",
503
+ "model.vision_backbone.image_vit.transformer.resblocks.4.attention_norm.weight": "model-00005-of-00005.safetensors",
504
+ "model.vision_backbone.image_vit.transformer.resblocks.4.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
505
+ "model.vision_backbone.image_vit.transformer.resblocks.4.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
506
+ "model.vision_backbone.image_vit.transformer.resblocks.4.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
507
+ "model.vision_backbone.image_vit.transformer.resblocks.4.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
508
+ "model.vision_backbone.image_vit.transformer.resblocks.4.ffn_norm.bias": "model-00005-of-00005.safetensors",
509
+ "model.vision_backbone.image_vit.transformer.resblocks.4.ffn_norm.weight": "model-00005-of-00005.safetensors",
510
+ "model.vision_backbone.image_vit.transformer.resblocks.5.attention.wk.bias": "model-00005-of-00005.safetensors",
511
+ "model.vision_backbone.image_vit.transformer.resblocks.5.attention.wk.weight": "model-00005-of-00005.safetensors",
512
+ "model.vision_backbone.image_vit.transformer.resblocks.5.attention.wo.bias": "model-00005-of-00005.safetensors",
513
+ "model.vision_backbone.image_vit.transformer.resblocks.5.attention.wo.weight": "model-00005-of-00005.safetensors",
514
+ "model.vision_backbone.image_vit.transformer.resblocks.5.attention.wq.bias": "model-00005-of-00005.safetensors",
515
+ "model.vision_backbone.image_vit.transformer.resblocks.5.attention.wq.weight": "model-00005-of-00005.safetensors",
516
+ "model.vision_backbone.image_vit.transformer.resblocks.5.attention.wv.bias": "model-00005-of-00005.safetensors",
517
+ "model.vision_backbone.image_vit.transformer.resblocks.5.attention.wv.weight": "model-00005-of-00005.safetensors",
518
+ "model.vision_backbone.image_vit.transformer.resblocks.5.attention_norm.bias": "model-00005-of-00005.safetensors",
519
+ "model.vision_backbone.image_vit.transformer.resblocks.5.attention_norm.weight": "model-00005-of-00005.safetensors",
520
+ "model.vision_backbone.image_vit.transformer.resblocks.5.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
521
+ "model.vision_backbone.image_vit.transformer.resblocks.5.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
522
+ "model.vision_backbone.image_vit.transformer.resblocks.5.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
523
+ "model.vision_backbone.image_vit.transformer.resblocks.5.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
524
+ "model.vision_backbone.image_vit.transformer.resblocks.5.ffn_norm.bias": "model-00005-of-00005.safetensors",
525
+ "model.vision_backbone.image_vit.transformer.resblocks.5.ffn_norm.weight": "model-00005-of-00005.safetensors",
526
+ "model.vision_backbone.image_vit.transformer.resblocks.6.attention.wk.bias": "model-00005-of-00005.safetensors",
527
+ "model.vision_backbone.image_vit.transformer.resblocks.6.attention.wk.weight": "model-00005-of-00005.safetensors",
528
+ "model.vision_backbone.image_vit.transformer.resblocks.6.attention.wo.bias": "model-00005-of-00005.safetensors",
529
+ "model.vision_backbone.image_vit.transformer.resblocks.6.attention.wo.weight": "model-00005-of-00005.safetensors",
530
+ "model.vision_backbone.image_vit.transformer.resblocks.6.attention.wq.bias": "model-00005-of-00005.safetensors",
531
+ "model.vision_backbone.image_vit.transformer.resblocks.6.attention.wq.weight": "model-00005-of-00005.safetensors",
532
+ "model.vision_backbone.image_vit.transformer.resblocks.6.attention.wv.bias": "model-00005-of-00005.safetensors",
533
+ "model.vision_backbone.image_vit.transformer.resblocks.6.attention.wv.weight": "model-00005-of-00005.safetensors",
534
+ "model.vision_backbone.image_vit.transformer.resblocks.6.attention_norm.bias": "model-00005-of-00005.safetensors",
535
+ "model.vision_backbone.image_vit.transformer.resblocks.6.attention_norm.weight": "model-00005-of-00005.safetensors",
536
+ "model.vision_backbone.image_vit.transformer.resblocks.6.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
537
+ "model.vision_backbone.image_vit.transformer.resblocks.6.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
538
+ "model.vision_backbone.image_vit.transformer.resblocks.6.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
539
+ "model.vision_backbone.image_vit.transformer.resblocks.6.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
540
+ "model.vision_backbone.image_vit.transformer.resblocks.6.ffn_norm.bias": "model-00005-of-00005.safetensors",
541
+ "model.vision_backbone.image_vit.transformer.resblocks.6.ffn_norm.weight": "model-00005-of-00005.safetensors",
542
+ "model.vision_backbone.image_vit.transformer.resblocks.7.attention.wk.bias": "model-00005-of-00005.safetensors",
543
+ "model.vision_backbone.image_vit.transformer.resblocks.7.attention.wk.weight": "model-00005-of-00005.safetensors",
544
+ "model.vision_backbone.image_vit.transformer.resblocks.7.attention.wo.bias": "model-00005-of-00005.safetensors",
545
+ "model.vision_backbone.image_vit.transformer.resblocks.7.attention.wo.weight": "model-00005-of-00005.safetensors",
546
+ "model.vision_backbone.image_vit.transformer.resblocks.7.attention.wq.bias": "model-00005-of-00005.safetensors",
547
+ "model.vision_backbone.image_vit.transformer.resblocks.7.attention.wq.weight": "model-00005-of-00005.safetensors",
548
+ "model.vision_backbone.image_vit.transformer.resblocks.7.attention.wv.bias": "model-00005-of-00005.safetensors",
549
+ "model.vision_backbone.image_vit.transformer.resblocks.7.attention.wv.weight": "model-00005-of-00005.safetensors",
550
+ "model.vision_backbone.image_vit.transformer.resblocks.7.attention_norm.bias": "model-00005-of-00005.safetensors",
551
+ "model.vision_backbone.image_vit.transformer.resblocks.7.attention_norm.weight": "model-00005-of-00005.safetensors",
552
+ "model.vision_backbone.image_vit.transformer.resblocks.7.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
553
+ "model.vision_backbone.image_vit.transformer.resblocks.7.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
554
+ "model.vision_backbone.image_vit.transformer.resblocks.7.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
555
+ "model.vision_backbone.image_vit.transformer.resblocks.7.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
556
+ "model.vision_backbone.image_vit.transformer.resblocks.7.ffn_norm.bias": "model-00005-of-00005.safetensors",
557
+ "model.vision_backbone.image_vit.transformer.resblocks.7.ffn_norm.weight": "model-00005-of-00005.safetensors",
558
+ "model.vision_backbone.image_vit.transformer.resblocks.8.attention.wk.bias": "model-00005-of-00005.safetensors",
559
+ "model.vision_backbone.image_vit.transformer.resblocks.8.attention.wk.weight": "model-00005-of-00005.safetensors",
560
+ "model.vision_backbone.image_vit.transformer.resblocks.8.attention.wo.bias": "model-00005-of-00005.safetensors",
561
+ "model.vision_backbone.image_vit.transformer.resblocks.8.attention.wo.weight": "model-00005-of-00005.safetensors",
562
+ "model.vision_backbone.image_vit.transformer.resblocks.8.attention.wq.bias": "model-00005-of-00005.safetensors",
563
+ "model.vision_backbone.image_vit.transformer.resblocks.8.attention.wq.weight": "model-00005-of-00005.safetensors",
564
+ "model.vision_backbone.image_vit.transformer.resblocks.8.attention.wv.bias": "model-00005-of-00005.safetensors",
565
+ "model.vision_backbone.image_vit.transformer.resblocks.8.attention.wv.weight": "model-00005-of-00005.safetensors",
566
+ "model.vision_backbone.image_vit.transformer.resblocks.8.attention_norm.bias": "model-00005-of-00005.safetensors",
567
+ "model.vision_backbone.image_vit.transformer.resblocks.8.attention_norm.weight": "model-00005-of-00005.safetensors",
568
+ "model.vision_backbone.image_vit.transformer.resblocks.8.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
569
+ "model.vision_backbone.image_vit.transformer.resblocks.8.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
570
+ "model.vision_backbone.image_vit.transformer.resblocks.8.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
571
+ "model.vision_backbone.image_vit.transformer.resblocks.8.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
572
+ "model.vision_backbone.image_vit.transformer.resblocks.8.ffn_norm.bias": "model-00005-of-00005.safetensors",
573
+ "model.vision_backbone.image_vit.transformer.resblocks.8.ffn_norm.weight": "model-00005-of-00005.safetensors",
574
+ "model.vision_backbone.image_vit.transformer.resblocks.9.attention.wk.bias": "model-00005-of-00005.safetensors",
575
+ "model.vision_backbone.image_vit.transformer.resblocks.9.attention.wk.weight": "model-00005-of-00005.safetensors",
576
+ "model.vision_backbone.image_vit.transformer.resblocks.9.attention.wo.bias": "model-00005-of-00005.safetensors",
577
+ "model.vision_backbone.image_vit.transformer.resblocks.9.attention.wo.weight": "model-00005-of-00005.safetensors",
578
+ "model.vision_backbone.image_vit.transformer.resblocks.9.attention.wq.bias": "model-00005-of-00005.safetensors",
579
+ "model.vision_backbone.image_vit.transformer.resblocks.9.attention.wq.weight": "model-00005-of-00005.safetensors",
580
+ "model.vision_backbone.image_vit.transformer.resblocks.9.attention.wv.bias": "model-00005-of-00005.safetensors",
581
+ "model.vision_backbone.image_vit.transformer.resblocks.9.attention.wv.weight": "model-00005-of-00005.safetensors",
582
+ "model.vision_backbone.image_vit.transformer.resblocks.9.attention_norm.bias": "model-00005-of-00005.safetensors",
583
+ "model.vision_backbone.image_vit.transformer.resblocks.9.attention_norm.weight": "model-00005-of-00005.safetensors",
584
+ "model.vision_backbone.image_vit.transformer.resblocks.9.feed_forward.w1.bias": "model-00005-of-00005.safetensors",
585
+ "model.vision_backbone.image_vit.transformer.resblocks.9.feed_forward.w1.weight": "model-00005-of-00005.safetensors",
586
+ "model.vision_backbone.image_vit.transformer.resblocks.9.feed_forward.w2.bias": "model-00005-of-00005.safetensors",
587
+ "model.vision_backbone.image_vit.transformer.resblocks.9.feed_forward.w2.weight": "model-00005-of-00005.safetensors",
588
+ "model.vision_backbone.image_vit.transformer.resblocks.9.ffn_norm.bias": "model-00005-of-00005.safetensors",
589
+ "model.vision_backbone.image_vit.transformer.resblocks.9.ffn_norm.weight": "model-00005-of-00005.safetensors",
590
+ "model.vision_backbone.pad_embed": "model-00005-of-00005.safetensors"
591
+ }
592
+ }
modeling_molmo.py ADDED
@@ -0,0 +1,2371 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import logging
2
+ import math
3
+ from copy import deepcopy
4
+ from dataclasses import fields, dataclass, replace
5
+ from enum import Enum
6
+ from typing import List, Optional, Tuple, Union, Dict, Any, Sequence, Callable, cast, MutableMapping
7
+
8
+ import torch
9
+ from einops import einsum, einops
10
+ from transformers import PreTrainedModel, GenerationConfig
11
+ from transformers.cache_utils import Cache
12
+ from transformers.modeling_outputs import CausalLMOutputWithPast, ModelOutput
13
+ from transformers.models.auto import AutoModelForCausalLM
14
+ from torch import nn
15
+
16
+ from .config_molmo import MolmoConfig
17
+ from torch.nn import functional as F
18
+
19
+
20
+ log = logging.getLogger(__name__)
21
+
22
+
23
+ class BufferCache(dict, MutableMapping[str, torch.Tensor]):
24
+ """
25
+ Cache for attention biases and other things that would normally be stored as buffers.
26
+ We avoid using buffers because we've run into various issues doing so with FSDP.
27
+ In general it appears the way FSDP handles buffers is not well-defined.
28
+ It doesn't shard them but apparently it does synchronize them across processes, which we want to avoid
29
+ since (A) it isn't necessary, and (B) we sometimes have `-inf` in these biases which might get turned into
30
+ NaNs when they're synchronized due to casting or some other issue.
31
+ """
32
+
33
+
34
+ class StrEnum(str, Enum):
35
+ def __str__(self) -> str:
36
+ return self.value
37
+
38
+ def __repr__(self) -> str:
39
+ return f"'{str(self)}'"
40
+
41
+
42
+ class ImageProjectType(StrEnum):
43
+ mlp = "mlp"
44
+ mlpx2 = "2mlp"
45
+ linear = "linear"
46
+
47
+
48
+ class ImagePooling2DType(StrEnum):
49
+ attention = "attention"
50
+ attention_meanq = "attention-meanq"
51
+ attention_2wide = "attention_2wide"
52
+ attention_v2 = "attention-v2"
53
+ none = "none"
54
+ stack = "stack"
55
+
56
+
57
+ class ActivationType(StrEnum):
58
+ quick_gelu = "quick_gelu"
59
+ gelu = "gelu"
60
+ gelu_tanh = "gelu_tanh"
61
+ relu = "relu"
62
+ silu = "silu"
63
+ llama_geglu = "llama_geglu"
64
+ llama_geglu_tanh = "llama_geglu_tanh"
65
+ llama_swiglu = "llama_swiglu"
66
+ swiglu = "swiglu"
67
+
68
+
69
+ def ensure_finite_(x: torch.Tensor, check_neg_inf: bool = True, check_pos_inf: bool = False):
70
+ """
71
+ Modify ``x`` in place to replace ``float("-inf")`` with the minimum value of the dtype when ``check_neg_inf``
72
+ is ``True`` and to replace ``float("inf")`` with the maximum value of the dtype when ``check_pos_inf`` is ``True``.
73
+ """
74
+ if check_neg_inf:
75
+ x.masked_fill_(x == float("-inf"), torch.finfo(x.dtype).min)
76
+ if check_pos_inf:
77
+ x.masked_fill_(x == float("inf"), torch.finfo(x.dtype).max)
78
+
79
+
80
+ class MolmoConfigurationError(Exception):
81
+ pass
82
+
83
+
84
+ def _non_meta_init_device(config) -> torch.device:
85
+ if config.init_device is not None and config.init_device != "meta":
86
+ return torch.device(config.init_device)
87
+ else:
88
+ return torch.device("cuda" if torch.cuda.is_available() else "cpu")
89
+
90
+
91
+ class RotaryEmbedding(nn.Module):
92
+ """
93
+ [Rotary positional embeddings (RoPE)](https://arxiv.org/abs/2104.09864).
94
+ """
95
+
96
+ def __init__(self, config: MolmoConfig, cache: BufferCache):
97
+ super().__init__()
98
+ self.config = config
99
+ self.__cache = cache
100
+ # Warm up cache.
101
+ self.get_rotary_embedding(
102
+ config.max_position_embeddings or config.max_sequence_length,
103
+ _non_meta_init_device(config)
104
+ )
105
+
106
+ def get_rotary_embedding(self, seq_len: int, device: torch.device) -> Tuple[torch.Tensor, torch.Tensor]:
107
+ if (
108
+ (pos_sin := self.__cache.get("rope_pos_sin")) is not None
109
+ and (pos_cos := self.__cache.get("rope_pos_cos")) is not None
110
+ and pos_sin.shape[-2] >= seq_len
111
+ and pos_cos.shape[-2] >= seq_len
112
+ ):
113
+ if pos_sin.device != device:
114
+ pos_sin = pos_sin.to(device)
115
+ self.__cache["rope_pos_sin"] = pos_sin
116
+ if pos_cos.device != device:
117
+ pos_cos = pos_cos.to(device)
118
+ self.__cache["rope_pos_cos"] = pos_cos
119
+ return pos_sin[:, :, :seq_len, :], pos_cos[:, :, :seq_len, :]
120
+
121
+ with torch.autocast(device.type, enabled=False):
122
+ dim = self.config.d_model // self.config.n_heads
123
+ inv_freq = 1.0 / (self.config.rope_theta ** (torch.arange(0, dim, 2, device=device, dtype=torch.float) / dim))
124
+ seq = torch.arange(seq_len, device=device, dtype=torch.float)
125
+ freqs = torch.einsum("i , j -> i j", seq, inv_freq)
126
+ if self.config.rope_impl == "interleave":
127
+ positions = freqs.repeat_interleave(2, dim=-1)
128
+ else:
129
+ positions = torch.cat((freqs, freqs), dim=-1)
130
+ pos_sin, pos_cos = positions.sin()[None, None, :, :], positions.cos()[None, None, :, :]
131
+ self.__cache["rope_pos_sin"] = pos_sin
132
+ self.__cache["rope_pos_cos"] = pos_cos
133
+ return pos_sin, pos_cos
134
+
135
+ def rotate_half(self, x: torch.Tensor) -> torch.Tensor:
136
+ B, nh, T, hs = x.size()
137
+ x = x.view(B, nh, T, 2, hs // 2)
138
+ x1, x2 = x.unbind(dim=-2)
139
+ return torch.cat((-x2, x1), dim=-1)
140
+
141
+ def rotate_every_two(self, x: torch.Tensor) -> torch.Tensor:
142
+ B, nh, T, hs = x.size()
143
+ x = x.view(B, nh, T, hs // 2, 2)
144
+ x1, x2 = x.unbind(dim=-1)
145
+ x = torch.stack((-x2, x1), dim=-1)
146
+ return x.view(B, nh, T, hs)
147
+
148
+ def apply_rotary_pos_emb(self, pos_sin: torch.Tensor, pos_cos: torch.Tensor, t: torch.Tensor) -> torch.Tensor:
149
+ if self.config.rope_impl == "interleave":
150
+ return ((t * pos_cos) + (self.rotate_every_two(t) * pos_sin)).to(t.dtype)
151
+ else:
152
+ return ((t * pos_cos) + (self.rotate_half(t) * pos_sin)).to(t.dtype)
153
+
154
+ def forward(
155
+ self,
156
+ q: torch.Tensor,
157
+ k: torch.Tensor,
158
+ position_ids: Optional[torch.Tensor] = None
159
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
160
+ if self.config.rope_full_precision:
161
+ q_, k_ = q.float(), k.float()
162
+ else:
163
+ q_, k_ = q, k
164
+
165
+ with torch.autocast(q.device.type, enabled=False):
166
+ batch_size = q_.shape[0]
167
+ query_len, key_len = q_.shape[-2], k_.shape[-2] # could be different if layer_past not None
168
+ if position_ids is not None:
169
+ freqs_cis_len = (self.config.max_position_embeddings or self.config.max_sequence_length)
170
+ else:
171
+ freqs_cis_len = key_len
172
+ pos_sin, pos_cos = self.get_rotary_embedding(freqs_cis_len, q_.device)
173
+ pos_sin = pos_sin.type_as(q_)
174
+ pos_cos = pos_cos.type_as(q_)
175
+ if position_ids is not None:
176
+ assert query_len == key_len, "Query and key lengths must be equal when using position IDs."
177
+ pos_sin = pos_sin[0, 0][position_ids].view(
178
+ (batch_size, 1, key_len, pos_sin.shape[-1])
179
+ )
180
+ pos_cos = pos_cos[0, 0][position_ids].view(
181
+ (batch_size, 1, key_len, pos_cos.shape[-1])
182
+ )
183
+ q_ = self.apply_rotary_pos_emb(
184
+ pos_sin[:, :, key_len - query_len : key_len, :],
185
+ pos_cos[:, :, key_len - query_len : key_len, :],
186
+ q_,
187
+ )
188
+ k_ = self.apply_rotary_pos_emb(pos_sin, pos_cos, k_)
189
+ return q_.type_as(q), k_.type_as(k)
190
+
191
+
192
+ class MolmoBlock(nn.Module):
193
+ """
194
+ A base class for transformer block implementations.
195
+ """
196
+
197
+ def __init__(self, layer_id: int, config: MolmoConfig, cache: BufferCache):
198
+ super().__init__()
199
+ self.layer_id = layer_id
200
+ self.config = config
201
+ self.hidden_size = (
202
+ config.mlp_hidden_size if config.mlp_hidden_size is not None else config.mlp_ratio * config.d_model
203
+ )
204
+ self.__cache = cache
205
+ self._activation_checkpoint_fn = None
206
+
207
+ # Dropout.
208
+ self.dropout = Dropout(config.residual_dropout)
209
+
210
+ # Layer norms.
211
+ self.k_norm: Optional[LayerNormBase] = None
212
+ self.q_norm: Optional[LayerNormBase] = None
213
+ if config.attention_layer_norm:
214
+ assert config.effective_n_kv_heads is not None
215
+ self.k_norm = LayerNormBase.build(
216
+ config,
217
+ size=(config.d_model // config.n_heads) * config.effective_n_kv_heads,
218
+ elementwise_affine=config.attention_layer_norm_with_affine,
219
+ )
220
+ self.q_norm = LayerNormBase.build(config, elementwise_affine=config.attention_layer_norm_with_affine)
221
+
222
+ # Make sure QKV clip coefficient is positive, otherwise it's not well-defined.
223
+ if config.clip_qkv is not None:
224
+ assert config.clip_qkv > 0
225
+
226
+ # Activation function.
227
+ self.act = Activation.build(config)
228
+ assert (self.act.output_multiplier * self.hidden_size) % 1 == 0
229
+
230
+ # Attention output projection.
231
+ input_dim = config.d_model
232
+ self.attn_out = nn.Linear(
233
+ input_dim, config.d_model,
234
+ bias=config.include_bias,
235
+ device=config.init_device
236
+ )
237
+
238
+ # Feed-forward output projection.
239
+ self.ff_out = nn.Linear(
240
+ int(self.act.output_multiplier * self.hidden_size),
241
+ config.d_model,
242
+ bias=config.include_bias,
243
+ device=config.init_device,
244
+ )
245
+ self.ff_out._is_residual = True # type: ignore
246
+
247
+ # Rotary embeddings.
248
+ if self.config.rope:
249
+ self.rotary_emb = RotaryEmbedding(config, self.__cache)
250
+
251
+ self.flash_attn_func = None
252
+ if config.attention_type == "flash":
253
+ try:
254
+ from flash_attn import flash_attn_func # type: ignore
255
+
256
+ self.flash_attn_func = flash_attn_func
257
+ except ModuleNotFoundError:
258
+ pass
259
+
260
+ def reset_parameters(self):
261
+ if self.k_norm is not None:
262
+ self.k_norm.reset_parameters()
263
+ if self.q_norm is not None:
264
+ self.q_norm.reset_parameters()
265
+ init_weights(
266
+ self.config,
267
+ self.attn_out,
268
+ d=self.config.d_model,
269
+ layer_id=self.layer_id,
270
+ type_of_module=ModuleType.out_module,
271
+ )
272
+ init_weights(
273
+ self.config,
274
+ self.ff_out,
275
+ d=self.ff_out.in_features,
276
+ layer_id=self.layer_id,
277
+ type_of_module=ModuleType.out_module,
278
+ )
279
+
280
+ @classmethod
281
+ def _cast_attn_bias(cls, bias: torch.Tensor, input_dtype: torch.dtype) -> torch.Tensor:
282
+ target_dtype = input_dtype
283
+ # NOTE: `is_autocast_enabled()` only checks for CUDA autocast, so we use the separate function
284
+ # `is_autocast_cpu_enabled()` for CPU autocast.
285
+ # See https://github.com/pytorch/pytorch/issues/110966.
286
+ if bias.device.type == "cuda" and torch.is_autocast_enabled():
287
+ target_dtype = torch.get_autocast_gpu_dtype()
288
+ elif bias.device.type == "cpu" and torch.is_autocast_cpu_enabled():
289
+ target_dtype = torch.get_autocast_cpu_dtype()
290
+ if bias.dtype != target_dtype:
291
+ bias = bias.to(target_dtype)
292
+ ensure_finite_(bias, check_neg_inf=True, check_pos_inf=False)
293
+ return bias
294
+
295
+ def _scaled_dot_product_attention(
296
+ self,
297
+ q: torch.Tensor,
298
+ k: torch.Tensor,
299
+ v: torch.Tensor,
300
+ attn_mask: Optional[torch.Tensor] = None,
301
+ dropout_p: float = 0.0,
302
+ response_dropout_p: float = 0.0,
303
+ is_causal: bool = False,
304
+ ) -> torch.Tensor:
305
+ """
306
+ Computes scaled dot product attention on query, key and value tensors, using an optional
307
+ attention mask if passed, and applying dropout if a probability greater than 0.0 is specified.
308
+ """
309
+ if attn_mask is not None:
310
+ attn_mask = attn_mask.to(q.device)
311
+
312
+ if self.flash_attn_func is not None and attn_mask is None:
313
+ r = self.flash_attn_func(
314
+ q.transpose(1, 2), k.transpose(1, 2), v.transpose(1, 2), dropout_p=dropout_p, causal=is_causal
315
+ )
316
+ return r.transpose(1, 2)
317
+ else:
318
+ # torch's sdpa doesn't support GQA, so we're doing this
319
+ assert k.size(1) == v.size(1)
320
+ num_kv_heads = k.size(1)
321
+ num_q_heads = q.size(1)
322
+ if num_q_heads != num_kv_heads:
323
+ assert num_q_heads % num_kv_heads == 0
324
+ k = k.repeat_interleave(num_q_heads // num_kv_heads, dim=1, output_size=num_q_heads)
325
+ v = v.repeat_interleave(num_q_heads // num_kv_heads, dim=1, output_size=num_q_heads)
326
+
327
+ return F.scaled_dot_product_attention(
328
+ q,
329
+ k,
330
+ v,
331
+ attn_mask=attn_mask,
332
+ dropout_p=dropout_p,
333
+ is_causal=is_causal,
334
+ )
335
+
336
+ def attention(
337
+ self,
338
+ q: torch.Tensor,
339
+ k: torch.Tensor,
340
+ v: torch.Tensor,
341
+ attention_bias: Optional[torch.Tensor] = None,
342
+ position_ids: Optional[torch.Tensor] = None,
343
+ layer_past: Optional[Tuple[torch.Tensor, torch.Tensor]] = None,
344
+ use_cache: bool = False,
345
+ ) -> Tuple[torch.Tensor, Optional[Tuple[torch.Tensor, torch.Tensor]]]:
346
+ B, T, C = q.size() # batch size, sequence length, d_model
347
+ dtype = k.dtype
348
+
349
+ # Optionally apply layer norm to keys and queries.
350
+ if self.q_norm is not None and self.k_norm is not None:
351
+ q = self.q_norm(q).to(dtype=dtype)
352
+ k = self.k_norm(k).to(dtype=dtype)
353
+
354
+ # Move head forward to be next to the batch dim.
355
+ # shape: (B, nh, T, hs)
356
+ q = q.view(B, T, self.config.n_heads, C // self.config.n_heads).transpose(1, 2)
357
+ # shape: (B, n_kv_h, T, hs)
358
+ k = k.view(B, T, self.config.effective_n_kv_heads, C // self.config.n_heads).transpose(1, 2)
359
+ # shape: (B, n_kv_h, T, hs)
360
+ v = v.view(B, T, self.config.effective_n_kv_heads, C // self.config.n_heads).transpose(1, 2)
361
+
362
+ if self.config.use_position_ids and self.config.rope:
363
+ # Apply rotary embeddings
364
+ q, k = self.rotary_emb(q, k, position_ids=position_ids)
365
+
366
+ if layer_past is not None:
367
+ past_key, past_value = layer_past
368
+ k = torch.cat((past_key.to(k.device), k), dim=-2)
369
+ v = torch.cat((past_value.to(v.device), v), dim=-2)
370
+
371
+ present = (k, v) if use_cache else None
372
+ query_len, key_len = q.shape[-2], k.shape[-2] # could be different if layer_past not None
373
+
374
+ if not self.config.use_position_ids and self.config.rope:
375
+ # Apply rotary embeddings
376
+ q, k = self.rotary_emb(q, k)
377
+
378
+ if attention_bias is not None:
379
+ # Resize and cast attention bias.
380
+ # The current dtype of the attention bias might not match the dtype that the SDP attn function will
381
+ # run in if AMP is enabled, and this can be a problem if some tokens are masked out due to padding
382
+ # as down-casting the attention bias to the autocast precision will result in -infs, which will
383
+ # cause the SDP attn function to produce NaNs.
384
+ attention_bias = self._cast_attn_bias(
385
+ attention_bias[:, :, key_len - query_len : key_len, :key_len], dtype
386
+ )
387
+
388
+ # Get the attention scores.
389
+ # shape: (B, nh, T, hs)
390
+ att = self._scaled_dot_product_attention(
391
+ q,
392
+ k,
393
+ v,
394
+ attn_mask=attention_bias,
395
+ dropout_p=0.0 if not self.training else self.config.attention_dropout,
396
+ response_dropout_p=0.0 if not self.training else self.config.response_attention_dropout,
397
+ is_causal=attention_bias is None,
398
+ )
399
+
400
+ # Re-assemble all head outputs side-by-side.
401
+ att = att.transpose(1, 2).contiguous().view(B, T, C)
402
+
403
+ # Apply output projection.
404
+ return self.attn_out(att), present
405
+
406
+ def forward(
407
+ self,
408
+ x: torch.Tensor,
409
+ attention_bias: Optional[torch.FloatTensor] = None,
410
+ position_ids: Optional[torch.Tensor] = None,
411
+ layer_past: Optional[Tuple[torch.Tensor, torch.Tensor]] = None,
412
+ use_cache: bool = False,
413
+ ) -> Tuple[torch.Tensor, Optional[Tuple[torch.Tensor, torch.Tensor]]]:
414
+ raise NotImplementedError
415
+
416
+ @classmethod
417
+ def build(cls, layer_id: int, config: MolmoConfig, cache: BufferCache):
418
+ return MolmoSequentialBlock(layer_id, config, cache)
419
+
420
+
421
+ class MolmoSequentialBlock(MolmoBlock):
422
+ """
423
+ This is a typical transformer block where the output is computed as ``MLP(LN(x + Attention(LN(x))))``
424
+ (plus another skip connection).
425
+ """
426
+
427
+ def __init__(self, layer_id: int, config: MolmoConfig, cache: BufferCache):
428
+ super().__init__(layer_id, config, cache)
429
+ # Layer norms.
430
+ self.attn_norm = LayerNorm.build(config)
431
+ self.ff_norm = LayerNorm.build(config)
432
+ # Attention input projection. Projects x -> (q, k, v)
433
+
434
+ head_dim = config.d_model // config.n_heads
435
+ self.fused_dims = (
436
+ config.d_model,
437
+ config.effective_n_kv_heads * head_dim,
438
+ config.effective_n_kv_heads * head_dim,
439
+ )
440
+ self.att_proj = nn.Linear(
441
+ config.d_model, sum(self.fused_dims),
442
+ bias=config.include_bias or config.qkv_bias,
443
+ device=config.init_device
444
+ )
445
+ # Feed-forward input projection.
446
+ self.ff_proj = nn.Linear(
447
+ config.d_model, self.hidden_size, bias=config.include_bias, device=config.init_device
448
+ )
449
+
450
+ def reset_parameters(self):
451
+ super().reset_parameters()
452
+ self.attn_norm.reset_parameters()
453
+ self.ff_norm.reset_parameters()
454
+ # NOTE: the standard deviation for these weights does not depend on the layer.
455
+ init_weights(
456
+ self.config, self.att_proj, d=self.config.d_model, layer_id=None, type_of_module=ModuleType.in_module
457
+ )
458
+ init_weights(
459
+ self.config, self.ff_proj, d=self.config.d_model, layer_id=None, type_of_module=ModuleType.in_module
460
+ )
461
+
462
+ def forward(
463
+ self,
464
+ x: torch.Tensor,
465
+ attention_bias: Optional[torch.Tensor] = None,
466
+ position_ids: Optional[torch.Tensor] = None,
467
+ layer_past: Optional[Tuple[torch.Tensor, torch.Tensor]] = None,
468
+ use_cache: bool = False,
469
+ ) -> Tuple[torch.Tensor, Optional[Tuple[torch.Tensor, torch.Tensor]]]:
470
+ # Get query, key, value projections.
471
+ # shape:
472
+ # - for regular attn q, k, v: (batch_size, seq_len, d_model)
473
+ # - for multi-query attn q: (batch_size, seq_len, d_model)
474
+ # k, v: (batch_size, seq_len, d_model // n_heads)
475
+ # - for group query attn q: (batch_size, seq_len, d_model)
476
+ # k, v: (batch_size, seq_len, d_model // n_kv_heads)
477
+
478
+ if not self.config.norm_after:
479
+ if self._activation_checkpoint_fn is not None:
480
+ atten_in = self._activation_checkpoint_fn(self.attn_norm, x)
481
+ else:
482
+ atten_in = self.attn_norm(x)
483
+ else:
484
+ atten_in = x
485
+ qkv = self.att_proj(atten_in)
486
+
487
+ if self.config.clip_qkv is not None:
488
+ qkv.clamp_(min=-self.config.clip_qkv, max=self.config.clip_qkv)
489
+
490
+ q, k, v = qkv.split(self.fused_dims, dim=-1)
491
+
492
+ # Get attention scores.
493
+ if self._activation_checkpoint_fn is not None:
494
+ att, cache = self._activation_checkpoint_fn( # type: ignore
495
+ self.attention, q, k, v, attention_bias, position_ids=position_ids, layer_past=layer_past, use_cache=use_cache
496
+ )
497
+ else:
498
+ att, cache = self.attention(q, k, v, attention_bias, position_ids=position_ids, layer_past=layer_past, use_cache=use_cache)
499
+
500
+ if self.config.norm_after:
501
+ if self._activation_checkpoint_fn is not None:
502
+ att = self._activation_checkpoint_fn(self.attn_norm, att)
503
+ else:
504
+ att = self.attn_norm(att)
505
+
506
+ # Add attention scores.
507
+ # shape: (B, T, C)
508
+ x = x + self.dropout(att)
509
+
510
+ # Add feed-forward projection.
511
+ # shape: (batch_size, seq_len, d_model)
512
+ og_x = x
513
+
514
+ if not self.config.norm_after:
515
+ if self._activation_checkpoint_fn is not None:
516
+ x = self._activation_checkpoint_fn(self.ff_norm, x) # type: ignore
517
+ else:
518
+ x = self.ff_norm(x)
519
+
520
+ x = self.ff_proj(x)
521
+ if self._activation_checkpoint_fn is not None:
522
+ x = self._activation_checkpoint_fn(self.act, x) # type: ignore
523
+ else:
524
+ x = self.act(x)
525
+ x = self.ff_out(x)
526
+
527
+ if self.config.norm_after:
528
+ if self._activation_checkpoint_fn is not None:
529
+ x = self._activation_checkpoint_fn(self.ff_norm, x) # type: ignore
530
+ else:
531
+ x = self.ff_norm(x)
532
+
533
+ x = self.dropout(x)
534
+ x = og_x + x
535
+
536
+ return x, cache
537
+
538
+
539
+ class Embedding(nn.Module):
540
+ def __init__(
541
+ self,
542
+ num_embeddings: int,
543
+ num_new_embeddings: int,
544
+ features: int,
545
+ device: Union[str, torch.device],
546
+ initializer_range: float = 0.02,
547
+ new_embed_initializer_range: float = 0.02,
548
+ ):
549
+ super().__init__()
550
+ self.initializer_range = initializer_range
551
+ self.new_embed_initializer_range = new_embed_initializer_range
552
+ self.embedding = nn.Parameter(
553
+ torch.zeros(num_embeddings, features, device=device),
554
+ )
555
+ self.new_embedding = nn.Parameter(
556
+ torch.zeros(num_new_embeddings, features, device=device),
557
+ )
558
+
559
+ def reset_parameters(self):
560
+ nn.init.normal_(self.embedding, std=self.initializer_range)
561
+ nn.init.normal_(self.new_embedding, std=self.new_embed_initializer_range)
562
+
563
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
564
+ return F.embedding(x, torch.cat([self.embedding, self.new_embedding], dim=0))
565
+
566
+
567
+ class Dropout(nn.Dropout):
568
+ def __init__(
569
+ self,
570
+ p: float = 0.5,
571
+ inplace: bool = False,
572
+ mask_p: float = 0,
573
+ broadcast_dims: Sequence[int] = (),
574
+ ):
575
+ super().__init__(p, inplace)
576
+ self.mask_p = mask_p
577
+ self.broadcast_dims = broadcast_dims
578
+
579
+ def forward(self, input: torch.Tensor) -> torch.Tensor:
580
+ """
581
+ :param input: A tensor of shape `(batch_size, seq_len, embed_dim)`
582
+ """
583
+ if self.p == 0.0 and (self.mask_p is None or self.mask_p == 0.0):
584
+ return input
585
+ else:
586
+ if self.p > 0. and len(self.broadcast_dims) > 0 and self.training:
587
+ keep_prob = 1.0 - self.p
588
+ dropout_shape = list(input.shape)
589
+ for dim in self.broadcast_dims:
590
+ dropout_shape[dim] = 1
591
+ keep = input.new_empty(dropout_shape).bernoulli_(keep_prob)
592
+ multiplier = keep.broadcast_to(input.shape)
593
+ multiplier.div_(keep_prob)
594
+ input = input * multiplier
595
+ else:
596
+ return F.dropout(input, self.p, self.training, self.inplace)
597
+
598
+
599
+ @dataclass
600
+ class VisionBackboneConfig:
601
+ image_default_input_size: Tuple[int, int] = (336, 336)
602
+ image_patch_size: int = 14
603
+ image_pos_patch_size: int = 14
604
+ image_emb_dim: int = 1024
605
+ image_num_heads: int = 16
606
+ image_num_key_value_heads: int = 16
607
+ image_num_layers: int = 24
608
+ image_head_dim: int = 64
609
+ image_mlp_dim: int = 4096
610
+ image_mlp_activations: str = "gelu"
611
+ image_dropout_rate: float = 0.0
612
+ image_num_pos: int = 577
613
+ image_norm_eps: float = 1e-5
614
+ attention_dropout: float = 0.0
615
+ residual_dropout: float = 0.0
616
+ initializer_range: float = 0.02
617
+ fsdp_wrap: bool = False
618
+ resize_mode: str = "default"
619
+
620
+ def __post_init__(self):
621
+ self.image_default_input_size = tuple(self.image_default_input_size) # type: ignore[assignment]
622
+
623
+ @property
624
+ def image_num_patch(self):
625
+ h, w = self.image_default_input_size
626
+ return h // self.image_patch_size, w // self.image_patch_size
627
+
628
+
629
+ @dataclass
630
+ class FullMolmoConfig:
631
+ d_model: int = 768
632
+ n_heads: int = 12
633
+ n_kv_heads: Optional[int] = None
634
+ qkv_bias: bool = False
635
+ clip_qkv: Optional[float] = None
636
+ n_layers: int = 12
637
+ mlp_ratio: int = 4
638
+ mlp_hidden_size: Optional[int] = None
639
+ activation_type: str = "swiglu"
640
+ block_group_size: int = 1
641
+ rope: bool = True
642
+ rope_full_precision: bool = True
643
+ rope_theta: float = 10000.
644
+ rope_impl: str = "interleave"
645
+ vision_backbone: Optional[VisionBackboneConfig] = None
646
+ attention_type: str = "sdpa"
647
+ float32_attention: bool = True
648
+ attention_dropout: float = 0.1
649
+ response_attention_dropout: float = 0.0
650
+ multi_query_attention: Optional[bool] = None
651
+ attention_layer_norm: bool = False
652
+ residual_dropout: float = 0.1
653
+ embedding_dropout: float = 0.1
654
+ layer_norm_type: str = "default"
655
+ layer_norm_with_affine: bool = True
656
+ layer_norm_eps: Optional[float] = None
657
+ attention_layer_norm_with_affine: bool = True
658
+ max_sequence_length: int = 1024
659
+ max_position_embeddings: Optional[int] = None
660
+ include_bias: bool = True
661
+ bias_for_layer_norm: Optional[bool] = None
662
+ scale_logits: bool = False
663
+ vocab_size: int = 50257
664
+ embedding_size: Optional[int] = 50304
665
+ additional_vocab_size: Optional[int] = None
666
+ new_embedding_init_range: float = 0.02
667
+ weight_tying: bool = True
668
+ pad_token_id: int = -1
669
+ init_device: Optional[str] = None
670
+ init_std: float = 0.02
671
+ init_cutoff_factor: Optional[float] = None
672
+ norm_after: bool = False
673
+ precision: Optional[str] = None
674
+ image_padding_embed: Optional[str] = None
675
+ vit_layers: Tuple = (-1,)
676
+ image_pooling_h: int = 2
677
+ image_pooling_w: int = 2
678
+ image_pooling_2d: str = "attention"
679
+ image_projector: str = "mlp"
680
+ image_feature_dropout: float = 0.0
681
+ initializer_range: float = 0.02
682
+ normalize_input_embeds: bool = False
683
+ use_position_ids: bool = True
684
+
685
+ @property
686
+ def effective_n_kv_heads(self) -> int:
687
+ if self.n_kv_heads is None:
688
+ if self.multi_query_attention is True:
689
+ return 1
690
+ else:
691
+ return self.n_heads
692
+ else:
693
+ if self.multi_query_attention is None:
694
+ return self.n_kv_heads
695
+ if self.multi_query_attention:
696
+ n_kv_heads_should_be = 1
697
+ else:
698
+ n_kv_heads_should_be = self.n_heads
699
+ if self.n_kv_heads == n_kv_heads_should_be:
700
+ return n_kv_heads_should_be
701
+ else:
702
+ raise MolmoConfigurationError(
703
+ "You can't set `multi_query_attention` and `n_kv_heads` at the same time."
704
+ )
705
+
706
+ @property
707
+ def image_num_patch(self):
708
+ assert self.vision_backbone is not None
709
+ return self.vision_backbone.image_num_patch
710
+
711
+ @property
712
+ def image_patch_size(self):
713
+ assert self.vision_backbone is not None
714
+ return self.visoin_backbone.image_patch_size
715
+
716
+ def llm_patches_per_crop(self):
717
+ h, w = self.image_num_patch
718
+ # Round up in case we need to pad the image features for pooling
719
+ h = (h + self.image_pooling_h - 1) // self.image_pooling_h
720
+ w = (w + self.image_pooling_w - 1) // self.image_pooling_w
721
+ return h, w
722
+
723
+
724
+ def _expand_token(token, batch_size: int):
725
+ return token.view(1, 1, -1).expand(batch_size, -1, -1)
726
+
727
+
728
+ class ViTMLP(nn.Module):
729
+ def __init__(self, config: FullMolmoConfig):
730
+ super().__init__()
731
+ self.config = config
732
+ v_cfg = config.vision_backbone
733
+
734
+ self.w1 = nn.Linear(
735
+ v_cfg.image_emb_dim,
736
+ v_cfg.image_mlp_dim,
737
+ bias=True,
738
+ device=config.init_device,
739
+ )
740
+ # Activation function.
741
+ cfg = deepcopy(config)
742
+ cfg.activation_type = v_cfg.image_mlp_activations
743
+ self.act = Activation.build(cfg)
744
+ self.w2 = nn.Linear(
745
+ v_cfg.image_mlp_dim,
746
+ v_cfg.image_emb_dim,
747
+ bias=True,
748
+ device=config.init_device,
749
+ )
750
+
751
+ def reset_parameters(self):
752
+ v_cfg = self.config.vision_backbone
753
+ nn.init.trunc_normal_(self.w1.weight, std=math.sqrt(1 / v_cfg.image_emb_dim), a=-2.0, b=2.0)
754
+ nn.init.trunc_normal_(self.w2.weight, std=math.sqrt(1 / v_cfg.image_mlp_dim), a=-2.0, b=2.0)
755
+ nn.init.zeros_(self.w1.bias)
756
+ nn.init.zeros_(self.w2.bias)
757
+
758
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
759
+ x = self.w1(x)
760
+ x = self.act(x)
761
+ x = self.w2(x)
762
+ return x
763
+
764
+
765
+ class ResidualAttentionBlock(nn.Module):
766
+
767
+ def __init__(self, config: FullMolmoConfig):
768
+ super().__init__()
769
+ self.config = config
770
+
771
+ v_cfg = config.vision_backbone
772
+ self.attention = MultiHeadDotProductAttention(config)
773
+ self.feed_forward = ViTMLP(config)
774
+ self.attention_norm = nn.LayerNorm(
775
+ v_cfg.image_emb_dim,
776
+ eps=v_cfg.image_norm_eps,
777
+ device=config.init_device,
778
+ )
779
+ self.ffn_norm = nn.LayerNorm(
780
+ v_cfg.image_emb_dim,
781
+ eps=v_cfg.image_norm_eps,
782
+ device=config.init_device,
783
+ )
784
+
785
+ def reset_parameters(self):
786
+ self.attention.reset_parameters()
787
+ self.feed_forward.reset_parameters()
788
+ self.attention_norm.reset_parameters()
789
+ self.ffn_norm.reset_parameters()
790
+
791
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
792
+ x = x + self.attention(self.attention_norm(x))
793
+ x = x + self.feed_forward(self.ffn_norm(x))
794
+ return x
795
+
796
+
797
+ class BlockCollection(nn.Module):
798
+
799
+ def __init__(self, config: FullMolmoConfig):
800
+ super().__init__()
801
+ self.config = config
802
+ self.grad_checkpointing: bool = False
803
+
804
+ v_cfg = config.vision_backbone
805
+ self.resblocks = nn.ModuleList([
806
+ ResidualAttentionBlock(config) for _ in range(v_cfg.image_num_layers)
807
+ ])
808
+
809
+ def reset_parameters(self):
810
+ for r in self.resblocks:
811
+ r.reset_parameters()
812
+
813
+ def forward(self, x: torch.Tensor) -> List[torch.Tensor]:
814
+ hidden_states = []
815
+ for r in self.resblocks:
816
+ x = r(x)
817
+ hidden_states.append(x)
818
+ return hidden_states
819
+
820
+
821
+ class LayerNormFp32(nn.LayerNorm):
822
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
823
+ orig_type = x.dtype
824
+ x = F.layer_norm(x.to(torch.float32), self.normalized_shape, self.weight.to(torch.float32),
825
+ self.bias.to(torch.float32), self.eps)
826
+ return x.to(orig_type)
827
+
828
+
829
+ class VisionTransformer(nn.Module):
830
+
831
+ def __init__(self, config: FullMolmoConfig):
832
+ super().__init__()
833
+ self.config = config
834
+
835
+ v_cfg = config.vision_backbone
836
+ # class embeddings and positional embeddings
837
+ self.scale = v_cfg.image_emb_dim ** -0.5
838
+ self.class_embedding = nn.Parameter(
839
+ torch.zeros(v_cfg.image_emb_dim, device=config.init_device),
840
+ )
841
+ self.num_prefix_tokens: int = 1
842
+ self.positional_embedding = nn.Parameter(
843
+ torch.zeros(v_cfg.image_num_pos, v_cfg.image_emb_dim, device=config.init_device),
844
+ )
845
+
846
+ image_patch_size = v_cfg.image_patch_size
847
+ self.patch_embedding = nn.Linear(
848
+ image_patch_size * image_patch_size * 3,
849
+ v_cfg.image_emb_dim,
850
+ bias=False,
851
+ device=config.init_device,
852
+ )
853
+
854
+ self.pre_ln = LayerNormFp32(
855
+ v_cfg.image_emb_dim,
856
+ eps=v_cfg.image_norm_eps,
857
+ )
858
+
859
+ self.transformer = BlockCollection(config)
860
+
861
+ @torch.jit.ignore
862
+ def set_grad_checkpointing(self, enable=True):
863
+ self.transformer.grad_checkpointing = enable
864
+
865
+ def reset_parameters(self):
866
+ nn.init.normal_(self.class_embedding, std=self.scale)
867
+ nn.init.normal_(self.positional_embedding, std=self.scale)
868
+ nn.init.normal_(self.patch_embedding.weight, std=0.02)
869
+ self.pre_ln.reset_parameters()
870
+ self.transformer.reset_parameters()
871
+
872
+ def add_pos_emb(self, x: torch.Tensor, patch_num: int) -> torch.Tensor:
873
+ cls_emb = self.positional_embedding[0:1]
874
+ pos_emb = self.positional_embedding[1:]
875
+
876
+ pos_emb = pos_emb.reshape(
877
+ (int(math.sqrt(pos_emb.shape[0])), int(math.sqrt(pos_emb.shape[0])), pos_emb.shape[1])
878
+ )
879
+
880
+ (patch_num_0, patch_num_1) = patch_num
881
+
882
+ if pos_emb.shape[0] != patch_num_0 or pos_emb.shape[1] != patch_num_1:
883
+ # Dervied from https://github.com/facebookresearch/mae/blob/main/util/pos_embed.py
884
+ # antialias: default True in jax.image.resize
885
+ pos_emb = pos_emb.unsqueeze(0).permute(0, 3, 1, 2)
886
+ pos_emb = F.interpolate(
887
+ pos_emb, size=(patch_num_0, patch_num_1), mode="bicubic", align_corners=False, antialias=True,
888
+ )
889
+ pos_emb = pos_emb.permute(0, 2, 3, 1).squeeze(0)
890
+
891
+ pos_emb = pos_emb.reshape(-1, pos_emb.shape[-1])
892
+ x = x + torch.cat([cls_emb[None, :, :], pos_emb[None, :, :]], dim=1).to(x.dtype)
893
+ return x
894
+
895
+ def forward(self, x: torch.Tensor, patch_num: int = None) -> List[torch.Tensor]:
896
+ """
897
+ : param x: (batch_size, num_patch, n_pixels)
898
+ """
899
+ if patch_num is None:
900
+ patch_num = self.config.vision_backbone.image_num_patch
901
+ B, N, D = x.shape
902
+
903
+ x = self.patch_embedding(x)
904
+
905
+ # class embeddings and positional embeddings
906
+ x = torch.cat([_expand_token(self.class_embedding, x.shape[0]).to(x.dtype), x], dim=1)
907
+ x = self.add_pos_emb(x, patch_num)
908
+
909
+ x = self.pre_ln(x)
910
+
911
+ hidden_states = self.transformer(x)
912
+ return hidden_states
913
+
914
+
915
+ class MultiHeadDotProductAttention(nn.Module):
916
+ def __init__(self, config: FullMolmoConfig, use_bias: bool = True, is_vit_layer: Optional[bool] = True):
917
+ super().__init__()
918
+ self.config = config
919
+ self.use_bias = use_bias
920
+
921
+ v_cfg = config.vision_backbone
922
+ self.embed_dim = v_cfg.image_emb_dim
923
+ self.num_heads = v_cfg.image_num_heads
924
+ self.head_dim = v_cfg.image_head_dim
925
+ self.num_key_value_heads = v_cfg.image_num_key_value_heads
926
+ self.num_key_value_groups = self.num_heads // self.num_key_value_heads
927
+ self.initializer_range = v_cfg.initializer_range
928
+ self.is_vit_layer = is_vit_layer
929
+
930
+ nlayers = 1 if (is_vit_layer or config.vit_layers is None) else len(config.vit_layers)
931
+
932
+ self.wq = nn.Linear(
933
+ nlayers * self.embed_dim,
934
+ self.num_heads * self.head_dim,
935
+ bias=use_bias,
936
+ device=config.init_device,
937
+ )
938
+ self.wk = nn.Linear(
939
+ nlayers * self.embed_dim,
940
+ self.num_key_value_heads * self.head_dim,
941
+ bias=use_bias,
942
+ device=config.init_device,
943
+ )
944
+ self.wv = nn.Linear(
945
+ nlayers * self.embed_dim,
946
+ self.num_key_value_heads * self.head_dim,
947
+ bias=use_bias,
948
+ device=config.init_device,
949
+ )
950
+ self.wo = nn.Linear(
951
+ self.num_heads * self.head_dim,
952
+ self.embed_dim,
953
+ bias=use_bias,
954
+ device=config.init_device,
955
+ )
956
+ self.attention_dropout: Optional[Dropout] = None
957
+ if v_cfg.attention_dropout > 0:
958
+ self.attention_dropout = Dropout(v_cfg.attention_dropout, broadcast_dims=(0, 1))
959
+ self.residual_dropout = Dropout(v_cfg.residual_dropout)
960
+
961
+ def reset_parameters(self):
962
+ nn.init.normal_(self.wq.weight, std=self.initializer_range)
963
+ nn.init.normal_(self.wk.weight, std=self.initializer_range)
964
+ nn.init.normal_(self.wv.weight, std=self.initializer_range)
965
+ nn.init.normal_(self.wo.weight, std=self.initializer_range)
966
+ if self.use_bias:
967
+ nn.init.constant_(self.wq.bias, 0)
968
+ nn.init.constant_(self.wk.bias, 0)
969
+ nn.init.constant_(self.wv.bias, 0)
970
+ nn.init.constant_(self.wo.bias, 0)
971
+
972
+ def _split_heads(self, hidden_states, num_heads) -> torch.Tensor:
973
+ return hidden_states.reshape(hidden_states.shape[:2] + (num_heads, self.head_dim))
974
+
975
+ def _merge_heads(self, hidden_states) -> torch.Tensor:
976
+ return hidden_states.reshape(hidden_states.shape[:2] + (self.embed_dim,))
977
+
978
+ def forward(self, inputs_q: torch.Tensor, inputs_kv: Optional[torch.Tensor] = None) -> torch.Tensor:
979
+
980
+ if inputs_kv is not None:
981
+ inputs_k = inputs_kv
982
+ inputs_v = inputs_kv
983
+ else:
984
+ inputs_k = inputs_q
985
+ inputs_v = inputs_q
986
+
987
+ xq, xk, xv = self.wq(inputs_q), self.wk(inputs_k), self.wv(inputs_v)
988
+
989
+ xq = self._split_heads(xq, self.num_heads)
990
+ xk = self._split_heads(xk, self.num_key_value_heads)
991
+ xv = self._split_heads(xv, self.num_key_value_heads)
992
+
993
+ if self.num_heads != self.num_key_value_heads:
994
+ xk = xk.repeat_interleave(self.num_key_value_groups, dim=2, output_size=self.num_heads)
995
+ xv = xv.repeat_interleave(self.num_key_value_groups, dim=2, output_size=self.num_heads)
996
+
997
+ og_dtype = xq.dtype
998
+
999
+ if self.config.float32_attention:
1000
+ xq = xq.to(torch.float)
1001
+ xk = xk.to(torch.float)
1002
+
1003
+ if self.config.attention_type == "direct":
1004
+ attn_weights = torch.einsum("...qhd,...khd->...hqk", xq / math.sqrt(xq.size(-1)), xk)
1005
+ attn_weights = F.softmax(attn_weights, dim=-1, dtype=torch.float32).to(xq.dtype)
1006
+ if self.attention_dropout is not None:
1007
+ attn_weights = self.attention_dropout(attn_weights)
1008
+ attn_output = torch.einsum("...hqk,...khd->...qhd", attn_weights.to(xv.dtype), xv)
1009
+
1010
+ elif self.config.attention_type == "sdpa":
1011
+ if self.config.float32_attention and not torch.is_autocast_enabled():
1012
+ xv = xv.to(torch.float32)
1013
+ attn_output = F.scaled_dot_product_attention(
1014
+ xq.transpose(1, 2).contiguous(),
1015
+ xk.transpose(1, 2).contiguous(),
1016
+ xv.transpose(1, 2).contiguous(),
1017
+ is_causal=False,
1018
+ dropout_p=self.config.vision_backbone.attention_dropout
1019
+ ).transpose(1, 2)
1020
+ else:
1021
+ raise NotImplementedError(self.config.attention_type)
1022
+ attn_output = attn_output.to(og_dtype)
1023
+ attn_output = self._merge_heads(attn_output)
1024
+ attn_output = self.wo(attn_output)
1025
+ attn_output = self.residual_dropout(attn_output)
1026
+
1027
+ return attn_output
1028
+
1029
+
1030
+ class MultiHeadAttentionPool(nn.Module):
1031
+ def __init__(
1032
+ self,
1033
+ config: FullMolmoConfig,
1034
+ factor: int = 1,
1035
+ use_bias: bool = True,
1036
+ dropout: bool = True,
1037
+ output_layer: bool = True,
1038
+ mean_residual: bool = False,
1039
+ query: str = "mean",
1040
+ is_vit_layer: Optional[bool] = True
1041
+ ):
1042
+ super().__init__()
1043
+ self.config = config
1044
+ self.factor = factor
1045
+ self.use_bias = use_bias
1046
+ self.dropout = dropout
1047
+ self.output_layer = output_layer
1048
+ self.mean_residual = mean_residual
1049
+ self.query = query
1050
+
1051
+ v_cfg = config.vision_backbone
1052
+ input_dim = v_cfg.image_emb_dim
1053
+ self.embed_dim = v_cfg.image_emb_dim * factor
1054
+ self.num_heads = v_cfg.image_num_heads
1055
+ self.head_dim = v_cfg.image_head_dim * factor
1056
+ self.num_key_value_heads = v_cfg.image_num_key_value_heads
1057
+ self.num_key_value_groups = self.num_heads // self.num_key_value_heads
1058
+ self.initializer_range = v_cfg.initializer_range
1059
+
1060
+ nlayers = 1 if (is_vit_layer or config.vit_layers is None) else len(config.vit_layers)
1061
+
1062
+ if query != "vector":
1063
+ self.wq = nn.Linear(
1064
+ nlayers * input_dim,
1065
+ self.num_heads * self.head_dim,
1066
+ bias=use_bias,
1067
+ device=config.init_device,
1068
+ )
1069
+ self.wk = nn.Linear(
1070
+ nlayers * input_dim,
1071
+ self.num_key_value_heads * self.head_dim,
1072
+ bias=use_bias,
1073
+ device=config.init_device,
1074
+ )
1075
+ self.wv = nn.Linear(
1076
+ nlayers * input_dim,
1077
+ self.num_key_value_heads * self.head_dim,
1078
+ bias=use_bias,
1079
+ device=config.init_device,
1080
+ )
1081
+
1082
+ if query == "vector":
1083
+ self.attention_query = nn.Parameter(
1084
+ torch.zeros(
1085
+ 1, self.num_key_value_heads * self.head_dim, device=config.init_device,
1086
+ ),
1087
+ )
1088
+
1089
+ if output_layer:
1090
+ self.wo = nn.Linear(
1091
+ self.num_heads * self.head_dim,
1092
+ self.embed_dim,
1093
+ bias=use_bias,
1094
+ device=config.init_device,
1095
+ )
1096
+ self.attention_dropout = Dropout(v_cfg.attention_dropout, broadcast_dims=(0, 1))
1097
+ if dropout:
1098
+ self.residual_dropout = Dropout(v_cfg.residual_dropout)
1099
+
1100
+ def reset_parameters(self):
1101
+ if self.query != "vector":
1102
+ nn.init.normal_(self.wq.weight, std=self.initializer_range)
1103
+ nn.init.normal_(self.wk.weight, std=self.initializer_range)
1104
+ nn.init.normal_(self.wv.weight, std=self.initializer_range)
1105
+ if self.output_layer:
1106
+ nn.init.normal_(self.wo.weight, std=self.initializer_range)
1107
+ if self.use_bias:
1108
+ if self.query != "vector":
1109
+ nn.init.constant_(self.wq.bias, 0)
1110
+ nn.init.constant_(self.wk.bias, 0)
1111
+ nn.init.constant_(self.wv.bias, 0)
1112
+ if self.output_layer:
1113
+ nn.init.constant_(self.wo.bias, 0)
1114
+ if self.query == "vector":
1115
+ nn.init.normal_(self.attention_query, std=self.initializer_range)
1116
+
1117
+ def _split_heads(self, hidden_states, num_heads):
1118
+ return hidden_states.reshape(hidden_states.shape[:2] + (num_heads, self.head_dim))
1119
+
1120
+ def _merge_heads(self, hidden_states):
1121
+ return hidden_states.reshape(hidden_states.shape[:2] + (self.embed_dim,))
1122
+
1123
+ def forward(self, inputs_kv: torch.Tensor) -> torch.Tensor:
1124
+
1125
+ xk, xv = self.wk(inputs_kv), self.wv(inputs_kv)
1126
+
1127
+ if self.query == "mean":
1128
+ inputs_q = inputs_kv.mean(dim=1, keepdim=True)
1129
+ xq = self.wq(inputs_q)
1130
+ elif self.query == "first":
1131
+ inputs_q = inputs_kv[:, :1]
1132
+ xq = self.wq(inputs_q)
1133
+ elif self.query == "vector":
1134
+ xq = self.attention_query.expand(inputs_kv.size(0), -1, -1)
1135
+ elif self.query == "constant":
1136
+ inputs_q = torch.ones_like(inputs_kv[:, :1]) / math.sqrt(inputs_kv.shape[-1])
1137
+ xq = self.wq(inputs_q)
1138
+ else:
1139
+ raise ValueError(f"Unknown query type: {self.query}")
1140
+
1141
+ xq = self._split_heads(xq, self.num_heads)
1142
+ xk = self._split_heads(xk, self.num_key_value_heads)
1143
+ xv = self._split_heads(xv, self.num_key_value_heads)
1144
+
1145
+ if self.num_heads != self.num_key_value_heads:
1146
+ xk = xk.repeat_interleave(self.num_key_value_groups, dim=2, output_size=self.num_heads)
1147
+ xv = xv.repeat_interleave(self.num_key_value_groups, dim=2, output_size=self.num_heads)
1148
+
1149
+ xq = xq.to(torch.float)
1150
+ xk = xk.to(torch.float)
1151
+
1152
+ xq = xq / math.sqrt(xq.size(-1))
1153
+ attn_weights = torch.einsum("...qhd,...khd->...hqk", xq, xk)
1154
+
1155
+ attn_weights = F.softmax(attn_weights, dim=-1).to(xq.dtype)
1156
+
1157
+ attn_weights = self.attention_dropout(attn_weights).to(xv.dtype)
1158
+
1159
+ attn_output = torch.einsum("...hqk,...khd->...qhd", attn_weights, xv)
1160
+ attn_output = self._merge_heads(attn_output)
1161
+ if self.output_layer:
1162
+ attn_output = self.wo(attn_output)
1163
+ if self.dropout:
1164
+ attn_output = self.residual_dropout(attn_output)
1165
+ if self.mean_residual:
1166
+ attn_output += inputs_kv.mean(dim=1, keepdim=True)
1167
+
1168
+ return attn_output
1169
+
1170
+
1171
+ class MLP(nn.Module):
1172
+ def __init__(self, config: FullMolmoConfig, input_dim: int, dropout: float = 0.0):
1173
+ super().__init__()
1174
+ self.config = config
1175
+ self.hidden_size = (
1176
+ config.mlp_hidden_size if config.mlp_hidden_size is not None else config.mlp_ratio * config.d_model
1177
+ )
1178
+ self.initializer_range = config.initializer_range
1179
+
1180
+ self.w1 = nn.Linear(
1181
+ input_dim,
1182
+ self.hidden_size // 2,
1183
+ bias=False,
1184
+ device=config.init_device,
1185
+ )
1186
+ self.w2 = nn.Linear(
1187
+ self.hidden_size // 2,
1188
+ config.d_model,
1189
+ bias=False,
1190
+ device=config.init_device,
1191
+ )
1192
+ self.w3 = nn.Linear(
1193
+ input_dim,
1194
+ self.hidden_size // 2,
1195
+ bias=False,
1196
+ device=config.init_device,
1197
+ )
1198
+ # Activation function.
1199
+ self.act = Activation.build(config)
1200
+ self.dropout = Dropout(dropout)
1201
+
1202
+ def reset_parameters(self):
1203
+ nn.init.normal_(self.w1.weight, std=self.initializer_range)
1204
+ nn.init.normal_(self.w2.weight, std=self.initializer_range)
1205
+ nn.init.normal_(self.w3.weight, std=self.initializer_range)
1206
+
1207
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
1208
+ x = self.w2(self.act(self.w1(x), self.w3(x)))
1209
+ x = self.dropout(x)
1210
+ return x
1211
+
1212
+
1213
+ class Residual(nn.Module):
1214
+ def __init__(self, submodule: nn.Module):
1215
+ super().__init__()
1216
+ self.submodule = submodule
1217
+
1218
+ def reset_parameters(self):
1219
+ self.submodule.reset_parameters()
1220
+
1221
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
1222
+ return x + self.submodule(x)
1223
+
1224
+
1225
+ class OLMoVisionBackbone(nn.Module):
1226
+ def __init__(self, config: FullMolmoConfig):
1227
+ super().__init__()
1228
+ self.config = config
1229
+ self.image_vit = VisionTransformer(config)
1230
+
1231
+ input_dim: int = None
1232
+ self.image_pooling_2d: nn.Module = None
1233
+ if config.image_pooling_2d in {ImagePooling2DType.attention, ImagePooling2DType.attention_meanq}:
1234
+ self.image_pooling_2d = MultiHeadDotProductAttention(config, is_vit_layer=False)
1235
+ input_dim = config.vision_backbone.image_emb_dim
1236
+ elif config.image_pooling_2d == ImagePooling2DType.attention_2wide:
1237
+ cfg = deepcopy(config)
1238
+ cfg.vision_backbone.image_emb_dim *= 2
1239
+ cfg.vision_backbone.image_head_dim *= 2
1240
+ self.image_pooling_2d = MultiHeadDotProductAttention(cfg, is_vit_layer=False)
1241
+ input_dim = cfg.vision_backbone.image_emb_dim
1242
+ elif config.image_pooling_2d == ImagePooling2DType.attention_v2:
1243
+ assert config.vit_layers is not None
1244
+ use_bias = True
1245
+ dropout = True
1246
+ output_layer = True
1247
+ query = "mean"
1248
+ mean_residual = False
1249
+ factor = len(config.vit_layers)
1250
+ self.image_pooling_2d = MultiHeadAttentionPool(
1251
+ config,
1252
+ factor=factor,
1253
+ use_bias=use_bias,
1254
+ dropout=dropout,
1255
+ output_layer=output_layer,
1256
+ mean_residual=mean_residual,
1257
+ query=query,
1258
+ is_vit_layer=False,
1259
+ )
1260
+ input_dim = config.vision_backbone.image_emb_dim * factor
1261
+ elif config.image_pooling_2d in [ImagePooling2DType.none, ImagePooling2DType.stack]:
1262
+ self.image_pooling_2d = None
1263
+ nlayers = 1 if config.vit_layers is None else len(config.vit_layers)
1264
+ input_dim = nlayers * config.vision_backbone.image_emb_dim
1265
+ else:
1266
+ raise NotImplementedError(f"Unknown image pooling 2D method: {config.image_pooling_2d}")
1267
+
1268
+ self.input_dim = input_dim
1269
+
1270
+ # `MLP` assume the activation takes two inputs, so it must be a 'llama' version
1271
+ if config.activation_type == ActivationType.swiglu:
1272
+ mlp_config = replace(config, activation_type=ActivationType.llama_swiglu)
1273
+ elif config.activation_type == ActivationType.gelu:
1274
+ mlp_config = replace(config, activation_type=ActivationType.llama_geglu)
1275
+ else:
1276
+ mlp_config = config
1277
+ if config.image_projector == ImageProjectType.mlpx2:
1278
+ self.image_projector = nn.ModuleList(
1279
+ [MLP(mlp_config, input_dim), Residual(MLP(config, input_dim))]
1280
+ )
1281
+ elif config.image_projector == ImageProjectType.mlp:
1282
+ self.image_projector = MLP(mlp_config, input_dim)
1283
+ elif config.image_projector == ImageProjectType.linear:
1284
+ self.image_projector = nn.Linear(
1285
+ input_dim,
1286
+ config.d_model,
1287
+ bias=False,
1288
+ device=config.init_device,
1289
+ )
1290
+ else:
1291
+ raise NotImplementedError(f"Unknown image projector: {config.image_projector}")
1292
+
1293
+ self.image_feature_dropout = Dropout(config.image_feature_dropout)
1294
+
1295
+ def reset_parameters(self):
1296
+ if self.image_pooling_2d is not None:
1297
+ self.image_pooling_2d.reset_parameters()
1298
+ if self.config.image_projector == "2mlp":
1299
+ for module in self.image_projector:
1300
+ module.reset_parameters()
1301
+ elif self.config.image_projector == "linear":
1302
+ nn.init.xavier_uniform_(self.image_projector.weight)
1303
+ else:
1304
+ self.image_projector.reset_parameters()
1305
+
1306
+ def forward(self, images: torch.Tensor, image_masks: torch.Tensor) -> Tuple[torch.Tensor, Optional[torch.Tensor]]:
1307
+ raise NotImplementedError
1308
+
1309
+
1310
+ class OLMoPretrainedVisionBackbone(OLMoVisionBackbone):
1311
+ def __init__(self, config: FullMolmoConfig):
1312
+ super().__init__(config)
1313
+ v_cfg = self.config.vision_backbone
1314
+ self.grad_checkpointing = False
1315
+
1316
+ self.num_prefix_tokens = self.image_vit.num_prefix_tokens
1317
+ assert self.num_prefix_tokens in {0, 1}, "Only 0 or 1 prefix tokens are supported"
1318
+
1319
+ self.pad_embed = None
1320
+ if config.image_padding_embed:
1321
+ image_dim = v_cfg.image_emb_dim*len(self.config.vit_layers)
1322
+ if config.image_padding_embed in ["pad_embed", "regress"]:
1323
+ self.pad_embed = nn.Parameter(
1324
+ torch.zeros((image_dim,), device=config.init_device))
1325
+ elif config.image_padding_embed == "pad_and_partial_pad":
1326
+ self.pad_embed = nn.Parameter(
1327
+ torch.zeros((2, image_dim), device=config.init_device))
1328
+ else:
1329
+ raise ValueError(config.image_padding_embed)
1330
+
1331
+ def reset_parameters(self):
1332
+ super().reset_parameters()
1333
+ self.image_vit.reset_parameters()
1334
+
1335
+ def encode_image(self, images: torch.Tensor) -> torch.Tensor:
1336
+ """
1337
+ : param images: (batch_size, num_crops, num_patch, n_pixels)
1338
+ """
1339
+ cfg = self.config
1340
+ v_cfg = self.config.vision_backbone
1341
+ B, T, N, D = images.shape
1342
+
1343
+ mask = ~torch.all(images.view(B * T, N, D) == -1, dim=(1, 2), keepdim=True)
1344
+
1345
+ # Output all hidden states
1346
+ # n_layers x (batch_num_crops, (1+)n_tokens, image_emb_dim)
1347
+ images = images.view(B * T, N, D)
1348
+ image_features = self.image_vit(images)
1349
+
1350
+ if cfg.vit_layers is not None:
1351
+ features = []
1352
+ for layer in cfg.vit_layers:
1353
+ features.append(image_features[layer])
1354
+ image_features = torch.cat(features, dim=-1)
1355
+ else:
1356
+ image_features = image_features[-1]
1357
+
1358
+ cls_embed: torch.Tensor = None
1359
+ if self.num_prefix_tokens > 0:
1360
+ cls_embed = image_features[:, 0]
1361
+ image_features = image_features[:, 1:]
1362
+
1363
+ image_features = image_features * mask
1364
+ image_features = image_features.view(B, T, N, -1)
1365
+
1366
+ cls_embed = cls_embed.view(B, T, -1) if cls_embed is not None else None
1367
+
1368
+ return image_features, cls_embed
1369
+
1370
+ def forward(self, images: torch.Tensor, image_masks: torch.Tensor) -> Tuple[torch.Tensor, Optional[torch.Tensor]]:
1371
+ cfg = self.config
1372
+
1373
+ # image_features: (batch_size, num_crops(=num_image), num_patch, nximage_emb_dim)
1374
+ batch_size, num_image = images.shape[:2]
1375
+ image_features, cls_embed = self.encode_image(images)
1376
+
1377
+ if cfg.image_padding_embed:
1378
+ assert image_masks is not None
1379
+ if cfg.image_padding_embed == "pad_embed":
1380
+ all_pad = (image_masks == 0).to(dtype=torch.float32)
1381
+ pad_embed = self.pad_embed[None, None, None, :]
1382
+ image_features = image_features + pad_embed * torch.unsqueeze(all_pad, -1)
1383
+ elif cfg.image_padding_embed == "regress":
1384
+ pad_embed = self.pad_embed[None, None, None, :]
1385
+ image_features = image_features + pad_embed * torch.unsqueeze(torch.maximum(image_masks, torch.zeros_like(image_masks)), -1)
1386
+ elif cfg.image_padding_embed == "pad_and_partial_pad":
1387
+ pad_embed = self.pad_embed[:, None, None, None, :]
1388
+ all_pad = image_masks == 0
1389
+ partial_pad = torch.logical_and(image_masks < 1, torch.logical_not(all_pad)).to(dtype=image_features.dtype)
1390
+ all_pad = all_pad.to(dtype=image_features.dtype)
1391
+ image_features = image_features + pad_embed[0] * torch.unsqueeze(all_pad, -1)
1392
+ image_features = image_features + pad_embed[1] * torch.unsqueeze(partial_pad, -1)
1393
+ else:
1394
+ raise ValueError(cfg.image_padding_embed)
1395
+
1396
+ image_features = self.image_feature_dropout(image_features)
1397
+ if cls_embed is not None:
1398
+ cls_embed = self.image_feature_dropout(cls_embed)
1399
+
1400
+ image_features = image_features.reshape(
1401
+ (batch_size, num_image) + cfg.image_num_patch + (-1,),
1402
+ )
1403
+
1404
+ if cfg.image_num_patch[0] % cfg.image_pooling_h == 1:
1405
+ # Pad so we can still pool 2x2 patches
1406
+ image_features = F.pad(
1407
+ image_features,
1408
+ (0, 0, 0, 1, 0, 1, 0, 0, 0, 0),
1409
+ )
1410
+
1411
+ # image pooling
1412
+ image_features = einops.rearrange(
1413
+ image_features,
1414
+ 'b n (h dh) (w dw) c -> (b n h w) (dh dw) c',
1415
+ dh=cfg.image_pooling_h,
1416
+ dw=cfg.image_pooling_w,
1417
+ )
1418
+
1419
+ if cfg.image_pooling_2d == ImagePooling2DType.attention_meanq:
1420
+ query = image_features.mean(-2, keepdim=True)
1421
+ image_features = self.image_pooling_2d(query, image_features)
1422
+ elif cfg.image_pooling_2d not in {ImagePooling2DType.none, ImagePooling2DType.stack}:
1423
+ if self.grad_checkpointing:
1424
+ from torch.utils.checkpoint import checkpoint
1425
+ image_features = checkpoint(self.image_pooling_2d, image_features[:, :1, :], image_features, use_reentrant=False)
1426
+ else:
1427
+ image_features = self.image_pooling_2d(image_features[:, :1, :], image_features)
1428
+
1429
+ h, w = cfg.llm_patches_per_crop()
1430
+ image_features = image_features.reshape(batch_size, num_image, h * w, -1)
1431
+
1432
+ # MLP layer to map the feature.
1433
+ if self.grad_checkpointing:
1434
+ from torch.utils.checkpoint import checkpoint
1435
+ image_features = checkpoint(self.image_projector, image_features, use_reentrant=False)
1436
+ else:
1437
+ image_features = self.image_projector(image_features)
1438
+
1439
+ # image_features: (batch_size, num_image, num_patch, d_model)
1440
+ # cls_embed: (batch_size, num_image, d_model)
1441
+ return image_features, cls_embed
1442
+
1443
+
1444
+ class ModuleType(str, Enum):
1445
+ in_module = "in"
1446
+ out_module = "out"
1447
+ emb = "emb"
1448
+ final_out = "final_out"
1449
+
1450
+
1451
+ def init_weights(
1452
+ config: FullMolmoConfig,
1453
+ module: Union[nn.Linear, nn.Embedding],
1454
+ d: Optional[int] = None,
1455
+ layer_id: Optional[int] = None,
1456
+ std_factor: float = 1.0,
1457
+ type_of_module: Optional[ModuleType] = None,
1458
+ ) -> None:
1459
+ d = d if d is not None else config.d_model
1460
+ std = config.init_std * std_factor
1461
+ if config.init_cutoff_factor is not None:
1462
+ cutoff_value = config.init_cutoff_factor * std
1463
+ nn.init.trunc_normal_(module.weight, mean=0.0, std=std, a=-cutoff_value, b=cutoff_value)
1464
+ else:
1465
+ nn.init.normal_(module.weight, mean=0.0, std=std)
1466
+
1467
+
1468
+ class LlamaSwiGLU(nn.Module):
1469
+ def forward(self, x1: torch.Tensor, x2: torch.Tensor) -> torch.Tensor:
1470
+ return F.silu(x1) * x2
1471
+
1472
+ @property
1473
+ def output_multiplier(self) -> float:
1474
+ return 0.5
1475
+
1476
+
1477
+ class SwiGLU(nn.Module):
1478
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
1479
+ x, gate = x.chunk(2, dim=-1)
1480
+ return F.silu(gate) * x
1481
+
1482
+ @property
1483
+ def output_multiplier(self) -> float:
1484
+ return 0.5
1485
+
1486
+
1487
+ class Activation(nn.Module):
1488
+ def __init__(self, config: FullMolmoConfig):
1489
+ super().__init__()
1490
+ self.config = config
1491
+
1492
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
1493
+ raise NotImplementedError
1494
+
1495
+ @property
1496
+ def output_multiplier(self) -> float:
1497
+ raise NotImplementedError
1498
+
1499
+ @classmethod
1500
+ def build(cls, config: FullMolmoConfig) -> 'Activation':
1501
+ if config.activation_type == "quick_gelu":
1502
+ return QuickGELU(config)
1503
+ elif config.activation_type == "gelu":
1504
+ return cast(Activation, GELU(approximate="none"))
1505
+ elif config.activation_type == "gelu_tanh":
1506
+ return cast(Activation, GELU(approximate="tanh"))
1507
+ elif config.activation_type == "relu":
1508
+ return cast(Activation, ReLU(inplace=False))
1509
+ elif config.activation_type == "silu":
1510
+ return cast(Activation, SiLU(inplace=False))
1511
+ # elif config.activation_type == "llama_geglu":
1512
+ # return LlamaGEGLU(config)
1513
+ # elif config.activation_type == "llama_geglu_tanh":
1514
+ # return LlamaGEGLUTanh(config)
1515
+ elif config.activation_type == "llama_swiglu":
1516
+ return LlamaSwiGLU()
1517
+ elif config.activation_type == "swiglu":
1518
+ return SwiGLU()
1519
+ else:
1520
+ raise NotImplementedError(f"Unknown activation: '{config.activation_type}'")
1521
+
1522
+
1523
+ class QuickGELU(Activation):
1524
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
1525
+ return x * torch.sigmoid(1.702 * x)
1526
+
1527
+ @property
1528
+ def output_multiplier(self) -> float:
1529
+ return 1.0
1530
+
1531
+
1532
+ class GELU(nn.GELU):
1533
+ @property
1534
+ def output_multiplier(self) -> float:
1535
+ return 1.0
1536
+
1537
+
1538
+ class ReLU(nn.ReLU):
1539
+ @property
1540
+ def output_multiplier(self) -> float:
1541
+ return 1.0
1542
+
1543
+
1544
+ class SiLU(nn.SiLU):
1545
+ @property
1546
+ def output_multiplier(self) -> float:
1547
+ return 1.0
1548
+
1549
+
1550
+ def causal_attention_bias(seq_len: int, device: torch.device) -> torch.FloatTensor:
1551
+ att_bias = torch.triu(
1552
+ torch.ones(seq_len, seq_len, device=device, dtype=torch.float),
1553
+ diagonal=1,
1554
+ )
1555
+ att_bias.masked_fill_(att_bias == 1, torch.finfo(att_bias.dtype).min)
1556
+ return att_bias.view(1, 1, seq_len, seq_len) # type: ignore
1557
+
1558
+
1559
+ def get_causal_attention_bias(cache: BufferCache, seq_len: int, device: torch.device) -> torch.Tensor:
1560
+ if (causal_bias := cache.get("causal_attention_bias")) is not None and causal_bias.shape[-1] >= seq_len:
1561
+ if causal_bias.device != device:
1562
+ causal_bias = causal_bias.to(device)
1563
+ cache["causal_attention_bias"] = causal_bias
1564
+ return causal_bias
1565
+ with torch.autocast(device.type, enabled=False):
1566
+ causal_bias = causal_attention_bias(seq_len, device)
1567
+ cache["causal_attention_bias"] = causal_bias
1568
+ return causal_bias
1569
+
1570
+
1571
+ class LayerNormBase(nn.Module):
1572
+ def __init__(
1573
+ self,
1574
+ config: MolmoConfig,
1575
+ *,
1576
+ size: Optional[int] = None,
1577
+ elementwise_affine: Optional[bool] = True,
1578
+ eps: float = 1e-05,
1579
+ weight_initializer: Optional[Callable] = torch.ones,
1580
+ bias_initializer: Optional[Callable] = torch.zeros,
1581
+ ):
1582
+ super().__init__()
1583
+ self.config = config
1584
+ self.eps = self.config.layer_norm_eps or eps
1585
+ self.normalized_shape = (size or config.d_model,)
1586
+ if elementwise_affine or (elementwise_affine is None and self.config.layer_norm_with_affine):
1587
+ self.weight = nn.Parameter(weight_initializer(self.normalized_shape, device=config.init_device))
1588
+ use_bias = self.config.bias_for_layer_norm
1589
+ if use_bias is None:
1590
+ use_bias = self.config.include_bias
1591
+ if use_bias:
1592
+ self.bias = nn.Parameter(bias_initializer(self.normalized_shape, device=config.init_device))
1593
+ else:
1594
+ self.register_parameter("bias", None)
1595
+ else:
1596
+ self.register_parameter("bias", None)
1597
+ self.register_parameter("weight", None)
1598
+
1599
+ @classmethod
1600
+ def build(cls, config: FullMolmoConfig, size: Optional[int] = None, **kwargs):
1601
+ if config.layer_norm_type == "default":
1602
+ return LayerNorm(config, size=size, low_precision=False, **kwargs)
1603
+ elif config.layer_norm_type == "low_precision":
1604
+ return LayerNorm(config, size=size, low_precision=True, **kwargs)
1605
+ elif config.layer_norm_type == "rms":
1606
+ return RMSLayerNorm(config, size=size, **kwargs)
1607
+ else:
1608
+ raise NotImplementedError(f"Unknown LayerNorm type: '{config.layer_norm_type}'")
1609
+
1610
+
1611
+ class RMSLayerNorm(LayerNormBase):
1612
+ """
1613
+ RMS layer norm, a simplified :class:`LayerNorm` implementation
1614
+ """
1615
+
1616
+ def __init__(
1617
+ self,
1618
+ config: FullMolmoConfig,
1619
+ size: Optional[int] = None,
1620
+ elementwise_affine: Optional[bool] = None,
1621
+ eps: float = 1e-5,
1622
+ ):
1623
+ super().__init__(config, size=size, elementwise_affine=elementwise_affine, eps=eps)
1624
+
1625
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
1626
+ with torch.autocast(enabled=False, device_type=x.device.type):
1627
+ og_dtype = x.dtype
1628
+ x = x.to(torch.float32)
1629
+ variance = x.pow(2).mean(-1, keepdim=True)
1630
+ x = x * torch.rsqrt(variance + self.eps)
1631
+ x = x.to(og_dtype)
1632
+
1633
+ if self.weight is not None:
1634
+ if self.bias is not None:
1635
+ return self.weight * x + self.bias
1636
+ else:
1637
+ return self.weight * x
1638
+ else:
1639
+ return x
1640
+
1641
+
1642
+ class LayerNorm(LayerNormBase):
1643
+ """
1644
+ The default :class:`LayerNorm` implementation which can optionally run in low precision.
1645
+ """
1646
+
1647
+ def __init__(
1648
+ self,
1649
+ config: FullMolmoConfig,
1650
+ size: Optional[int] = None,
1651
+ low_precision: bool = False,
1652
+ elementwise_affine: Optional[bool] = None,
1653
+ eps: float = 1e-05,
1654
+ ):
1655
+ super().__init__(config, size=size, elementwise_affine=elementwise_affine, eps=eps)
1656
+ self.low_precision = low_precision
1657
+
1658
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
1659
+ if self.low_precision:
1660
+ module_device = x.device
1661
+ downcast_x = self._cast_if_autocast_enabled(x)
1662
+ downcast_weight = (
1663
+ self._cast_if_autocast_enabled(self.weight) if self.weight is not None else self.weight
1664
+ )
1665
+ downcast_bias = self._cast_if_autocast_enabled(self.bias) if self.bias is not None else self.bias
1666
+ with torch.autocast(enabled=False, device_type=module_device.type):
1667
+ return F.layer_norm(
1668
+ downcast_x, self.normalized_shape, weight=downcast_weight, bias=downcast_bias, eps=self.eps
1669
+ )
1670
+ else:
1671
+ return F.layer_norm(x, self.normalized_shape, weight=self.weight, bias=self.bias, eps=self.eps)
1672
+
1673
+
1674
+ class Molmo(nn.Module):
1675
+ def __init__(self, config: FullMolmoConfig, init_params: bool = True):
1676
+ super().__init__()
1677
+ self.config = config
1678
+ self.__cache = BufferCache()
1679
+
1680
+ # Validate config.
1681
+ if self.config.embedding_size is not None and self.config.embedding_size != self.config.vocab_size:
1682
+ if self.config.embedding_size < self.config.vocab_size:
1683
+ raise MolmoConfigurationError("embedding size should be at least as big as vocab size")
1684
+ elif self.config.embedding_size % 128 != 0:
1685
+ import warnings
1686
+
1687
+ warnings.warn(
1688
+ "Embedding size is not a multiple of 128! This could hurt throughput performance.", UserWarning
1689
+ )
1690
+ torch.backends.cuda.enable_flash_sdp(True)
1691
+ torch.backends.cuda.enable_mem_efficient_sdp(False) # this is super slow so make sure torch won't use it
1692
+
1693
+ wte = None
1694
+ if self.config.additional_vocab_size is not None:
1695
+ wte = Embedding(
1696
+ config.embedding_size or config.vocab_size,
1697
+ config.additional_vocab_size,
1698
+ config.d_model,
1699
+ device=config.init_device,
1700
+ initializer_range=config.initializer_range,
1701
+ new_embed_initializer_range=config.new_embedding_init_range
1702
+ )
1703
+ else:
1704
+ wte=nn.Embedding(
1705
+ config.embedding_size or config.vocab_size, config.d_model, device=config.init_device
1706
+ )
1707
+
1708
+ self.transformer = nn.ModuleDict(
1709
+ dict(
1710
+ wte=wte,
1711
+ emb_drop=Dropout(config.embedding_dropout),
1712
+ ln_f=LayerNorm.build(config),
1713
+ )
1714
+ )
1715
+
1716
+ blocks = [MolmoBlock.build(i, config, self.__cache) for i in range(config.n_layers)]
1717
+ if self.config.block_group_size > 1:
1718
+ raise NotImplementedError()
1719
+ else:
1720
+ self.transformer.update({"blocks": nn.ModuleList(blocks)})
1721
+
1722
+ if not self.config.rope:
1723
+ self.transformer.update(
1724
+ {"wpe": nn.Embedding(config.max_sequence_length, config.d_model, device=config.init_device)}
1725
+ )
1726
+ if not config.weight_tying:
1727
+ self.transformer.update(
1728
+ {
1729
+ "ff_out": nn.Linear(
1730
+ config.d_model,
1731
+ config.embedding_size or config.vocab_size,
1732
+ bias=config.include_bias,
1733
+ device=config.init_device,
1734
+ )
1735
+ }
1736
+ )
1737
+
1738
+ self.vision_backbone: Optional[OLMoVisionBackbone] = None
1739
+ if config.vision_backbone is not None:
1740
+ self.vision_backbone = OLMoPretrainedVisionBackbone(config)
1741
+
1742
+ self.__num_fwd_flops: Optional[int] = None
1743
+
1744
+ def reset_parameters(self):
1745
+ if self.vision_backbone is not None:
1746
+ self.vision_backbone.reset_parameters()
1747
+ self.reset_non_vision_parameters()
1748
+
1749
+ def reset_non_vision_parameters(self):
1750
+ self.transformer.wte.reset_parameters()
1751
+ if hasattr(self.transformer.wte, "new_embedding"):
1752
+ nn.init.normal_(self.transformer.wte.new_embedding, std=self.config.new_embedding_init_range)
1753
+
1754
+ if hasattr(self.transformer, "wpe"):
1755
+ nn.init.normal_(self.transformer.wpe, mean=0.0, std=1.0)
1756
+
1757
+ self.transformer.ln_f.reset_parameters() # type: ignore
1758
+
1759
+ if hasattr(self.transformer, "ff_out"):
1760
+ nn.init.normal_(self.transformer.ff_out, mean=0.0, std=0.02)
1761
+
1762
+ if self.config.block_group_size == 1:
1763
+ for block in self.transformer.blocks:
1764
+ block.reset_parameters()
1765
+ else:
1766
+ for block_group in self.transformer.block_groups:
1767
+ block_group.reset_parameters()
1768
+
1769
+
1770
+ def forward(
1771
+ self,
1772
+ input_ids: torch.LongTensor,
1773
+ input_embeddings: Optional[torch.FloatTensor] = None,
1774
+ attention_mask: Optional[torch.Tensor] = None,
1775
+ attention_bias: Optional[torch.Tensor] = None,
1776
+ response_mask: Optional[torch.Tensor] = None,
1777
+ images: Optional[torch.Tensor] = None,
1778
+ image_masks: Optional[torch.Tensor] = None,
1779
+ image_input_idx: Optional[torch.Tensor] = None,
1780
+ subsegment_ids: Optional[torch.Tensor] = None,
1781
+ position_ids: Optional[torch.Tensor] = None,
1782
+ past_key_values: Optional[Sequence[Tuple[torch.Tensor, torch.Tensor]]] = None,
1783
+ use_cache: bool = False,
1784
+ last_logits_only: bool = False,
1785
+ output_hidden_states: Optional[bool] = None,
1786
+ append_last_valid_logits: Optional[torch.Tensor] = None,
1787
+ ) -> ModelOutput:
1788
+ """
1789
+ :param input_ids: A tensor of shape `(batch_size, seq_len)`.
1790
+ :param input_embeddings: A tensor of shape `(batch_size, seq_len, d_model)` with input
1791
+ embeddings. When provided, it is treated as the output of the input embedding layer.
1792
+ :param attention_mask: A tensor of shape `(batch_size, seq_len)` that indicates
1793
+ which input IDs are masked. A `1` value in the mask means that
1794
+ the corresponding input ID should *not* be ignored. A `0` means
1795
+ that the corresponding input ID is masked.
1796
+
1797
+ This has the same meaning as the `attention_mask` in HuggingFace's `transformers`
1798
+ library.
1799
+ :param attention_bias: A tensor of shape `(batch_size, 1, seq_len, seq_len)`,
1800
+ `(1, 1, seq_len, seq_len)`, or `(seq_len, seq_len)`. This is used
1801
+ to introduce causal or other biases.
1802
+
1803
+ If the tensor is a bool or byte tensor, a `True` or `1` at `attention_bias[:, :, i, j]`
1804
+ indicates that the i-th element in the sequence is allowed to attend to the j-th
1805
+ element in the sequence.
1806
+
1807
+ If the tensor is a float tensor, it will just be added to the attention
1808
+ scores before the softmax.
1809
+
1810
+ The default is causal, which corresponds to a lower-diagonal byte matrix of ones.
1811
+ :param response_mask: A tensor of shape `(batch_size, seq_len)` that indicates
1812
+ the response mask. A `1` value in the mask means that the corresponding token
1813
+ is a response token. A `0` means that the corresponding token is not
1814
+ a response token.
1815
+ :param past_key_values: Pre-computed keys and values for each attention block.
1816
+ Can be used to speed up sequential decoding. The `input_ids` which have
1817
+ their past given to this model should not be passed as `input_ids` as they have already been computed.
1818
+ :param use_cache: If `True`, return key and value tensors for each block.
1819
+ :param last_logits_only: If `True`, only compute the logits for the last token of each sequence.
1820
+ This can speed up decoding when you only care about the next token.
1821
+ """
1822
+ output_hidden_states = output_hidden_states if output_hidden_states is not None else False
1823
+
1824
+ if past_key_values:
1825
+ assert len(past_key_values) == self.config.n_layers
1826
+
1827
+ has_image = images is not None
1828
+
1829
+ assert not (has_image and input_embeddings is not None), "Cannot provide both images and input embeddings."
1830
+ assert not (has_image and past_key_values is not None), "Cached key and values should not be used with images."
1831
+
1832
+ batch_size, seq_len = input_ids.size() if input_embeddings is None else input_embeddings.size()[:2]
1833
+ if past_key_values is None:
1834
+ past_length = 0
1835
+ else:
1836
+ past_length = past_key_values[0][0].size(-2)
1837
+
1838
+ if self.config.use_position_ids and attention_mask is None:
1839
+ attention_mask = input_ids != -1
1840
+
1841
+ if subsegment_ids is not None:
1842
+ assert not use_cache, "Subsegment_ids cannot be used with cache."
1843
+ subsegment_mask = subsegment_ids.unsqueeze(2) <= subsegment_ids.unsqueeze(1)
1844
+ attention_mask = (
1845
+ subsegment_mask.to(attention_mask.dtype) *
1846
+ attention_mask.unsqueeze(2) *
1847
+ attention_mask.unsqueeze(1))
1848
+ if position_ids is None:
1849
+ raise ValueError(f"Positioned ids must be given if using subsegment_ids")
1850
+ else:
1851
+ if self.config.use_position_ids and position_ids is None:
1852
+ position_ids = torch.clamp(
1853
+ torch.cumsum(attention_mask.to(torch.int32), dim=-1) - 1,
1854
+ min=0,
1855
+ ).broadcast_to((batch_size, attention_mask.shape[-1]))
1856
+
1857
+ # Get embeddings of input.
1858
+ # shape: (batch_size, seq_len, d_model)
1859
+ if input_ids is not None:
1860
+ input_ids = input_ids * (input_ids != -1).to(input_ids.dtype)
1861
+ x = self.transformer.wte(input_ids) if input_embeddings is None else input_embeddings # type: ignore
1862
+
1863
+ num_image: Optional[int] = None
1864
+ if images is not None:
1865
+ # shape: (batch_size, num_image, num_patch, d_model)
1866
+ # cls_embed: (batch_size, num_image, d_model)
1867
+ image_features, cls_embed = self.vision_backbone(images, image_masks)
1868
+ num_image, num_patch = image_features.shape[1:3]
1869
+ assert image_input_idx.shape == (batch_size, num_image, num_patch)
1870
+
1871
+ # inster the image feature into the embedding.
1872
+ image_features = image_features.view(batch_size, num_image * num_patch, -1)
1873
+ image_input_idx = image_input_idx.view(batch_size, num_image * num_patch)
1874
+
1875
+ valid = image_input_idx >= 0
1876
+ batch_idx = torch.arange(batch_size, device=x.device)
1877
+ batch_idx = torch.tile(batch_idx[:, None], [1, image_features.shape[1]])
1878
+
1879
+ # For hf demo/endpoint
1880
+ image_features = image_features.to(x.device)
1881
+
1882
+ x[batch_idx[valid], image_input_idx[valid]] += image_features[valid]
1883
+
1884
+ if not self.config.rope:
1885
+ # Get positional embeddings.
1886
+ # shape: (1, seq_len)
1887
+ pos = torch.arange(past_length, past_length + seq_len, dtype=torch.long, device=x.device).unsqueeze(0)
1888
+ # shape: (1, seq_len, d_model)
1889
+ pos_emb = self.transformer.wpe(pos) # type: ignore
1890
+ x = pos_emb + x
1891
+
1892
+ # Add input + positional embeddings and apply dropout.
1893
+ # shape: (batch_size, seq_len, d_model)
1894
+ x = self.transformer.emb_drop(x) # type: ignore
1895
+
1896
+ # normalized
1897
+ if self.config.normalize_input_embeds:
1898
+ x = x * (self.config.d_model ** 0.5)
1899
+
1900
+ # Transform the attention mask into what the blocks expect.
1901
+ if attention_mask is not None:
1902
+ # shape: (batch_size, 1, 1, seq_len)
1903
+ if len(attention_mask.shape) == 2:
1904
+ attention_mask = attention_mask[:, :past_length + seq_len]
1905
+ attention_mask = attention_mask.to(dtype=torch.float).view(batch_size, -1)[:, None, None, :]
1906
+ else:
1907
+ attention_mask = attention_mask.unsqueeze(1).to(dtype=torch.float)
1908
+ attention_mask = (1.0 - attention_mask) * torch.finfo(attention_mask.dtype).min
1909
+
1910
+ # Merge attention mask with attention bias.
1911
+ if (
1912
+ attention_bias is not None
1913
+ or attention_mask is not None
1914
+ # NOTE (epwalsh): we need to initialize the attn bias in order for attn to work properly
1915
+ # with key+value cache. Otherwise `F.scaled_dot_product_attention()` doesn't seem to compute
1916
+ # scores correctly.
1917
+ or past_key_values is not None
1918
+ ):
1919
+ if attention_bias is None:
1920
+ attention_bias = get_causal_attention_bias(self.__cache, past_length + seq_len, x.device)
1921
+ elif attention_bias.dtype in (torch.int8, torch.bool):
1922
+ attention_bias = attention_bias.to(dtype=torch.float)
1923
+ attention_bias.masked_fill_(attention_bias == 0.0, torch.finfo(attention_bias.dtype).min)
1924
+
1925
+ # Transform to the right shape and data type.
1926
+ mask_len = seq_len
1927
+ if attention_mask is not None:
1928
+ mask_len = attention_mask.shape[-1]
1929
+ elif past_key_values is not None:
1930
+ mask_len = past_key_values[0][0].shape[-2] + seq_len
1931
+ attention_bias = attention_bias[:, :, :mask_len, :mask_len].to(dtype=torch.float)
1932
+
1933
+ # Add in the masking bias.
1934
+ if attention_mask is not None:
1935
+ attention_bias = attention_bias + attention_mask
1936
+ # Might get -infs after adding attention mask, since dtype.min + dtype.min = -inf.
1937
+ # `F.scaled_dot_product_attention()` doesn't handle -inf like you'd expect, instead
1938
+ # it can produce NaNs.
1939
+ ensure_finite_(attention_bias, check_neg_inf=True, check_pos_inf=False)
1940
+
1941
+ attn_key_values: Optional[List[Tuple[torch.Tensor, torch.Tensor]]] = [] if use_cache else None
1942
+
1943
+ # decoder layers
1944
+ all_hidden_states = []
1945
+
1946
+ # Apply blocks one-by-one.
1947
+ if self.config.block_group_size == 1:
1948
+ for block_idx, block in enumerate(self.transformer.blocks):
1949
+ if output_hidden_states:
1950
+ # add hidden states
1951
+ all_hidden_states.append(x)
1952
+
1953
+ layer_past = None if past_key_values is None else past_key_values[block_idx]
1954
+ x, cache = block(x, attention_bias=attention_bias, position_ids=position_ids, layer_past=layer_past, use_cache=use_cache)
1955
+
1956
+ if attn_key_values is not None:
1957
+ assert cache is not None
1958
+ attn_key_values.append(cache)
1959
+ else:
1960
+ for group_idx, block_group in enumerate(self.transformer.block_groups):
1961
+ if output_hidden_states:
1962
+ # add hidden states
1963
+ all_hidden_states.append(x)
1964
+
1965
+ layers_past = (
1966
+ None
1967
+ if past_key_values is None
1968
+ else past_key_values[
1969
+ group_idx * self.config.block_group_size : (group_idx + 1) * self.config.block_group_size
1970
+ ]
1971
+ )
1972
+ x, cache = block_group(
1973
+ x, attention_bias=attention_bias, position_ids=position_ids, layers_past=layers_past, use_cache=use_cache
1974
+ )
1975
+ if attn_key_values is not None:
1976
+ assert cache is not None
1977
+ attn_key_values.extend(cache)
1978
+
1979
+ if last_logits_only:
1980
+ # shape: (batch_size, 1, d_model)
1981
+ if append_last_valid_logits is not None:
1982
+ last_valid_output = x[
1983
+ torch.arange(x.shape[0], device=x.device), append_last_valid_logits.to(x.device)]
1984
+ x = last_valid_output.unsqueeze(1)
1985
+ else:
1986
+ x = x[:, -1, :].unsqueeze(1)
1987
+
1988
+ # Apply final layer norm.
1989
+ # shape: (batch_size, seq_len or 1, d_model)
1990
+ x = self.transformer.ln_f(x) # type: ignore
1991
+ if output_hidden_states:
1992
+ # add final hidden state post-final-layernorm, following HuggingFace's convention
1993
+ all_hidden_states.append(x)
1994
+
1995
+ # Get logits.
1996
+ # shape: (batch_size, seq_len or 1, vocab_size)
1997
+ if self.config.weight_tying:
1998
+ logits = F.linear(x, self.transformer.wte.weight, None) # type: ignore
1999
+ else:
2000
+ logits = self.transformer.ff_out(x) # type: ignore
2001
+ if self.config.scale_logits:
2002
+ logits.mul_(1 / math.sqrt(self.config.d_model))
2003
+
2004
+ if not last_logits_only and append_last_valid_logits is not None:
2005
+ last_valid_logit = logits[
2006
+ torch.arange(logits.shape[0], device=logits.device), append_last_valid_logits]
2007
+ logits = torch.cat([logits[:, :-1], last_valid_logit[:, None]], dim=1)
2008
+
2009
+ return ModelOutput(logits=logits, attn_key_values=attn_key_values, hidden_states=tuple(all_hidden_states) if output_hidden_states else None) # type: ignore[arg-type]
2010
+
2011
+
2012
+ class MolmoForCausalLM(PreTrainedModel):
2013
+ config_class = MolmoConfig
2014
+ base_model_prefix = "model"
2015
+ _no_split_modules = ["MolmoBlock"]
2016
+
2017
+ def __init__(self, config: MolmoConfig, model: Optional[Molmo] = None, init_params: bool = False):
2018
+ super().__init__(config)
2019
+
2020
+ if not model:
2021
+ full_config = FullMolmoConfig(
2022
+ image_padding_embed="pad_and_partial_pad",
2023
+ image_pooling_2d="attention-meanq",
2024
+ attention_layer_norm=config.attention_layer_norm,
2025
+ rope_impl="llama",
2026
+ vocab_size=config.vocab_size,
2027
+ max_sequence_length=config.max_position_embeddings,
2028
+ qkv_bias=config.qkv_bias,
2029
+ norm_after=config.norm_after,
2030
+ embedding_size=config.embedding_size,
2031
+ attention_type="sdpa",
2032
+ embedding_dropout=0,
2033
+ attention_dropout=0,
2034
+ residual_dropout=0,
2035
+ rope=True,
2036
+ weight_tying=False,
2037
+ include_bias=False,
2038
+ d_model=config.hidden_size,
2039
+ mlp_hidden_size=config.intermediate_size,
2040
+ n_layers=config.num_hidden_layers,
2041
+ additional_vocab_size=128,
2042
+ n_heads=config.num_attention_heads,
2043
+ n_kv_heads=config.num_key_value_heads,
2044
+ rope_theta=config.rope_theta,
2045
+ layer_norm_eps=config.layer_norm_eps,
2046
+ layer_norm_type=config.layer_norm_type,
2047
+ vit_layers=[-2, -9],
2048
+ vision_backbone=VisionBackboneConfig(
2049
+ image_default_input_size=(336, 336),
2050
+ image_patch_size=14,
2051
+ image_pos_patch_size=14,
2052
+ image_emb_dim=1024,
2053
+ image_num_heads=16,
2054
+ image_num_key_value_heads=16,
2055
+ image_num_layers=23,
2056
+ image_head_dim=64,
2057
+ image_mlp_dim=4096,
2058
+ image_mlp_activations="quick_gelu",
2059
+ image_dropout_rate=0.0,
2060
+ image_num_pos=577,
2061
+ image_norm_eps=1e-5,
2062
+ attention_dropout=0.0,
2063
+ residual_dropout=0.0,
2064
+ initializer_range=0.02,
2065
+ )
2066
+ )
2067
+ self.model = Molmo(full_config, init_params=init_params)
2068
+ else:
2069
+ self.model = model
2070
+
2071
+
2072
+ def forward(
2073
+ self,
2074
+ input_ids: torch.LongTensor = None,
2075
+ inputs_embeds: Optional[torch.FloatTensor] = None,
2076
+ attention_mask: Optional[torch.Tensor] = None,
2077
+ attention_bias: Optional[torch.Tensor] = None,
2078
+ response_mask: Optional[torch.Tensor] = None,
2079
+ images: Optional[torch.Tensor] = None,
2080
+ image_masks: Optional[torch.Tensor] = None,
2081
+ image_input_idx: Optional[torch.Tensor] = None,
2082
+ subsegment_ids: Optional[torch.Tensor] = None,
2083
+ position_ids: Optional[torch.Tensor] = None,
2084
+ past_key_values: Optional[List[torch.FloatTensor]] = None,
2085
+ labels: Optional[torch.LongTensor] = None,
2086
+ loss_masks: Optional[torch.Tensor] = None,
2087
+ use_cache: Optional[bool] = None,
2088
+ last_logits_only: Optional[bool] = None,
2089
+ output_attentions: Optional[bool] = None,
2090
+ output_hidden_states: Optional[bool] = None,
2091
+ append_last_valid_logits: Optional[torch.Tensor] = None,
2092
+ return_dict: Optional[bool] = None,
2093
+ cache_position: Optional[
2094
+ Cache
2095
+ ] = None, # This is a hack mitigation of an issue in transformers `4.39.x` https://github.com/huggingface/transformers/issues/29426
2096
+ ) -> Union[Tuple, CausalLMOutputWithPast]:
2097
+ if use_cache is None:
2098
+ use_cache = self.config.use_cache
2099
+
2100
+ if output_attentions:
2101
+ raise ValueError("output_attentions is not yet supported in Molmo")
2102
+
2103
+ return_dict = return_dict if return_dict is not None else self.config.use_return_dict
2104
+
2105
+ # decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn)
2106
+ outputs = self.model.forward(
2107
+ input_ids=input_ids,
2108
+ input_embeddings=inputs_embeds,
2109
+ attention_mask=attention_mask,
2110
+ attention_bias=attention_bias,
2111
+ response_mask=response_mask,
2112
+ images=images,
2113
+ image_masks=image_masks,
2114
+ image_input_idx=image_input_idx,
2115
+ subsegment_ids=subsegment_ids,
2116
+ position_ids=position_ids,
2117
+ past_key_values=past_key_values,
2118
+ use_cache=use_cache,
2119
+ last_logits_only=last_logits_only,
2120
+ output_hidden_states=output_hidden_states,
2121
+ append_last_valid_logits=append_last_valid_logits,
2122
+ )
2123
+
2124
+ logits = outputs.logits
2125
+ hidden_states = outputs.hidden_states
2126
+
2127
+ loss = None
2128
+ if labels is not None:
2129
+ if loss_masks is not None:
2130
+ loss_masks = loss_masks * (loss_masks > 0)
2131
+ batch_size_in_tokens = max(loss_masks.sum().item(), 1)
2132
+ labels = labels.long()
2133
+ labels.masked_fill_(~(loss_masks > 0), -100)
2134
+ labels = labels.view(-1)
2135
+ logits_for_loss = logits.to(torch.float32).view(-1, logits.size(-1))
2136
+ loss_fct = torch.nn.CrossEntropyLoss(ignore_index=-100, reduction='none')
2137
+ loss = loss_fct(logits_for_loss, labels)
2138
+ loss = loss.view(input_ids.shape[0], -1)
2139
+ loss = loss * loss_masks
2140
+ loss = loss.sum() / batch_size_in_tokens
2141
+ use_zloss = getattr(self.config, "softmax_auxiliary_loss", False)
2142
+ if use_zloss:
2143
+ z_squared = logits_for_loss.logsumexp(-1).pow(2)
2144
+ z_loss = self.config.softmax_auxiliary_loss_scale * z_squared
2145
+ z_loss = z_loss.view(input_ids.shape[0], -1)
2146
+ z_loss = z_loss * loss_masks
2147
+ z_loss = z_loss.sum() / batch_size_in_tokens
2148
+ loss += z_loss
2149
+ else:
2150
+ # Shift so that tokens < n predict n
2151
+ shift_logits = logits[..., :-1, :].contiguous()
2152
+ shift_labels = labels[..., 1:].contiguous()
2153
+ # Flatten the tokens
2154
+ loss_fct = torch.nn.CrossEntropyLoss()
2155
+ shift_logits = shift_logits.view(-1, self.config.embedding_size)
2156
+ shift_labels = shift_labels.view(-1)
2157
+ # Enable model parallelism
2158
+ shift_labels = shift_labels.to(shift_logits.device)
2159
+ loss = loss_fct(shift_logits, shift_labels)
2160
+
2161
+ if not return_dict:
2162
+ output = (logits,) + outputs[1:]
2163
+ return (loss,) + output if loss is not None else output
2164
+
2165
+ return CausalLMOutputWithPast(
2166
+ loss=loss,
2167
+ logits=logits,
2168
+ past_key_values=outputs.attn_key_values,
2169
+ hidden_states=hidden_states,
2170
+ )
2171
+
2172
+ def can_generate(self) -> bool:
2173
+ return True
2174
+
2175
+ @torch.no_grad()
2176
+ def generate_from_batch(
2177
+ self,
2178
+ batch: Dict[str, Any],
2179
+ generation_config: Optional[GenerationConfig] = None,
2180
+ **kwargs,
2181
+ ):
2182
+ if generation_config is not None:
2183
+ assert generation_config.use_cache
2184
+
2185
+ images = batch.get("images")
2186
+ image_masks = batch.get("image_masks")
2187
+ image_input_idx = batch.get("image_input_idx")
2188
+
2189
+ # Validate inputs.
2190
+ input_ids = batch["input_ids"]
2191
+ batch_size, seq_len = input_ids.shape
2192
+ attention_mask = batch.get("attention_mask", None)
2193
+ max_new_tokens = generation_config.max_new_tokens
2194
+ assert max_new_tokens is not None
2195
+ mask_len = seq_len + max_new_tokens if self.config.use_position_ids else seq_len
2196
+ position_ids: Optional[torch.Tensor] = None
2197
+ append_last_valid_logits: Optional[torch.Tensor] = None
2198
+ if self.config.use_position_ids and attention_mask is None:
2199
+ attention_mask = input_ids != -1
2200
+ position_ids = torch.clamp(
2201
+ torch.cumsum(attention_mask.to(torch.int32), dim=-1) - 1,
2202
+ min=0
2203
+ )
2204
+ append_last_valid_logits = attention_mask.long().sum(dim=-1) - 1
2205
+ attention_mask = torch.cat(
2206
+ [attention_mask, attention_mask.new_ones((batch_size, max_new_tokens))],
2207
+ dim=1,
2208
+ )
2209
+ if attention_mask is not None:
2210
+ assert attention_mask.shape == (batch_size, mask_len)
2211
+
2212
+ out = super().generate(
2213
+ batch["input_ids"],
2214
+ generation_config,
2215
+ attention_mask=attention_mask,
2216
+ images=images,
2217
+ image_masks=image_masks,
2218
+ image_input_idx=image_input_idx,
2219
+ position_ids=position_ids,
2220
+ append_last_valid_logits=append_last_valid_logits,
2221
+ **kwargs,
2222
+ )
2223
+
2224
+ return out
2225
+
2226
+ def prepare_inputs_for_generation(
2227
+ self, input_ids: torch.LongTensor, past_key_values: Optional[List[Tuple]] = None, **kwargs
2228
+ ):
2229
+ if past_key_values:
2230
+ # This is because we want the model to only process the last generated token.
2231
+ input_ids = input_ids[:, -1:]
2232
+
2233
+ if self.config.use_position_ids:
2234
+ attention_mask = kwargs.get("attention_mask")
2235
+ images = kwargs.get("images")
2236
+ image_masks = kwargs.get("image_masks")
2237
+ image_input_idx = kwargs.get("image_input_idx")
2238
+ position_ids = kwargs.get("position_ids")
2239
+ append_last_valid_logits = kwargs.get("append_last_valid_logits")
2240
+ model_inputs = {
2241
+ "input_ids": input_ids,
2242
+ "attention_mask": attention_mask,
2243
+ "position_ids": position_ids,
2244
+ "past_key_values": past_key_values,
2245
+ "use_cache": True,
2246
+ "last_logits_only": True,
2247
+ }
2248
+ if past_key_values is None:
2249
+ model_inputs["images"] = images
2250
+ model_inputs["image_masks"] = image_masks
2251
+ model_inputs["image_input_idx"] = image_input_idx
2252
+ model_inputs["append_last_valid_logits"] = append_last_valid_logits
2253
+ else:
2254
+ model_inputs = {"input_ids": input_ids, "past_key_values": past_key_values}
2255
+
2256
+ model_inputs.update(kwargs)
2257
+ model_inputs["use_cache"] = kwargs.pop("use_cache", self.config.use_cache)
2258
+ return model_inputs
2259
+
2260
+ def _update_model_kwargs_for_generation(
2261
+ self,
2262
+ outputs: ModelOutput,
2263
+ model_kwargs: Dict[str, Any],
2264
+ is_encoder_decoder: bool = False,
2265
+ num_new_tokens: int = 1,
2266
+ ) -> Dict[str, Any]:
2267
+ if self.config.use_position_ids:
2268
+ model_kwargs["position_ids"] = model_kwargs["position_ids"][:, -1:] + 1
2269
+ if "append_last_valid_logits" in model_kwargs:
2270
+ del model_kwargs["append_last_valid_logits"]
2271
+ if "images" in model_kwargs:
2272
+ del model_kwargs["images"]
2273
+ del model_kwargs["image_masks"]
2274
+ del model_kwargs["image_input_idx"]
2275
+ try:
2276
+ cache_name, cache = super()._extract_past_from_model_output(outputs)
2277
+ except AttributeError:
2278
+ past_key_values = outputs.past_key_values if "past_key_values" in outputs else None
2279
+ cache_name, cache = "past_key_values", past_key_values
2280
+ model_kwargs[cache_name] = cache
2281
+ model_kwargs["cache_position"] = model_kwargs["cache_position"][-1:] + num_new_tokens
2282
+ return model_kwargs
2283
+
2284
+ def get_input_embeddings(self) -> torch.nn.Module:
2285
+ return self.model.transformer.wte
2286
+
2287
+ def set_input_embeddings(self, value: torch.nn.Module):
2288
+ self.model.transformer.wte = value
2289
+
2290
+ def get_output_embeddings(self):
2291
+ if self.config.weight_tying:
2292
+ return self.model.transformer.wte
2293
+ else:
2294
+ return self.model.transformer.ff_out
2295
+
2296
+ def set_output_embeddings(self, value: torch.nn.Module):
2297
+ if self.config.weight_tying:
2298
+ self.model.transformer.wte = value
2299
+ else:
2300
+ self.model.transformer.ff_out = value
2301
+
2302
+ def tie_weights(self):
2303
+ """
2304
+ This function is intentionally left as a no-op.
2305
+
2306
+ Weight tying is handled as follows:
2307
+ - When the model is initialized, the `ff_out` layer is conditionally defined based on the `weight_tying` configuration.
2308
+ See: `if not config.weight_tying: self.transformer.update(...)` in `olmo/model.py`.
2309
+ - When computing logits, the `wte` weights are used directly if `weight_tying` is enabled.
2310
+ See: `if self.config.weight_tying: logits = F.linear(x, self.transformer.wte.weight, None)` in the `forward` method.
2311
+
2312
+ Therefore, there is no need to explicitly tie the weights in this function.
2313
+ """
2314
+ pass
2315
+
2316
+ def resize_token_embeddings(
2317
+ self, new_num_tokens: Optional[int] = None, pad_to_multiple_of: Optional[int] = None
2318
+ ) -> torch.nn.Embedding:
2319
+ """
2320
+ Resizes input token embeddings matrix of the model if `new_num_tokens != config.embedding_size`.
2321
+
2322
+ Takes care of tying weights embeddings afterwards if the model class has a `tie_weights()` method.
2323
+
2324
+ Arguments:
2325
+ new_num_tokens (`int`, *optional*):
2326
+ The new number of tokens in the embedding matrix. Increasing the size will add newly initialized
2327
+ vectors at the end. Reducing the size will remove vectors from the end. If not provided or `None`, just
2328
+ returns a pointer to the input tokens `torch.nn.Embedding` module of the model without doing anything.
2329
+ pad_to_multiple_of (`int`, *optional*):
2330
+ If set will pad the embedding matrix to a multiple of the provided value. If `new_num_tokens` is set to
2331
+ `None` will just pad the embedding to a multiple of `pad_to_multiple_of`.
2332
+
2333
+ This is especially useful to enable the use of Tensor Cores on NVIDIA hardware with compute capability
2334
+ `>= 7.5` (Volta), or on TPUs which benefit from having sequence lengths be a multiple of 128. For more
2335
+ details about this, or help on choosing the correct value for resizing, refer to this guide:
2336
+ https://docs.nvidia.com/deeplearning/performance/dl-performance-matrix-multiplication/index.html#requirements-tc
2337
+
2338
+ Return:
2339
+ `torch.nn.Embedding`: Pointer to the input tokens Embeddings Module of the model.
2340
+
2341
+ Note:
2342
+ This method differs from the base class implementation by resizing the `embedding_size` attribute of the
2343
+ model configuration instead of the `vocab_size`. It also includes a warning if the resized `embedding_size`
2344
+ is less than the `vocab_size`. In OLMo, `embedding_size` refers to the dimensionality of the model's token
2345
+ embeddings, while `vocab_size` refers to the number of unique tokens in the vocabulary.
2346
+ """
2347
+ model_embeds = self._resize_token_embeddings(new_num_tokens, pad_to_multiple_of)
2348
+ if new_num_tokens is None and pad_to_multiple_of is None:
2349
+ return model_embeds
2350
+
2351
+ # Update base model and current model config
2352
+ self.config.embedding_size = model_embeds.weight.shape[0]
2353
+ self.model.config.embedding_size = model_embeds.weight.shape[0]
2354
+
2355
+ # Check if the embedding size is less than the vocab size
2356
+ if self.config.embedding_size < self.config.vocab_size:
2357
+ warning_message = (
2358
+ f"Resizing token embeddings to size {self.config.embedding_size}, which is less than the vocab size "
2359
+ f"{self.config.vocab_size} defined in the model configuration. Make sure your tokenizer's vocabulary "
2360
+ "size is less than or equal to the new token embedding size."
2361
+ )
2362
+ log.warning(warning_message)
2363
+
2364
+ # Tie weights again if needed
2365
+ self.tie_weights()
2366
+
2367
+ return model_embeds
2368
+
2369
+
2370
+ # Always register for multi-modal features
2371
+ AutoModelForCausalLM.register(MolmoConfig, MolmoForCausalLM)
preprocessing_molmo.py ADDED
@@ -0,0 +1,192 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Processor class for Molmo.
3
+ """
4
+
5
+ from typing import Optional
6
+
7
+ import PIL
8
+ from PIL import ImageOps
9
+ from PIL.Image import Image
10
+
11
+ try:
12
+ from typing import Unpack
13
+ except ImportError:
14
+ from typing_extensions import Unpack
15
+
16
+ import numpy as np
17
+ import torch
18
+
19
+ from transformers.image_utils import ImageInput
20
+ from transformers.processing_utils import (
21
+ TextKwargs,
22
+ ProcessingKwargs,
23
+ ProcessorMixin,
24
+ )
25
+
26
+ from transformers.tokenization_utils_base import TextInput, PreTokenizedInput
27
+ from transformers.utils import logging
28
+
29
+ from transformers import AutoTokenizer
30
+ from .image_preprocessing_molmo import MolmoImagesKwargs, MolmoImageProcessor
31
+
32
+
33
+ logger = logging.get_logger(__name__)
34
+
35
+
36
+ DEFAULT_IMAGE_PATCH_TOKEN = f"<im_patch>"
37
+ DEFAULT_IM_START_TOKEN = f"<im_start>"
38
+ DEFAULT_IM_END_TOKEN = f"<im_end>"
39
+ DEFAULT_IM_COL_TOKEN = f"<im_col>"
40
+ IMAGE_PROMPT = "<|image|>"
41
+
42
+ EXTRA_TOKENS = (DEFAULT_IM_START_TOKEN, DEFAULT_IM_END_TOKEN, DEFAULT_IMAGE_PATCH_TOKEN, DEFAULT_IM_COL_TOKEN, IMAGE_PROMPT)
43
+
44
+
45
+ def get_special_token_ids(tokenizer):
46
+ ids = tokenizer.encode("".join(EXTRA_TOKENS), add_special_tokens=False)
47
+ assert len(ids) == len(EXTRA_TOKENS)
48
+ return {k: i for k, i in zip(EXTRA_TOKENS, ids)}
49
+
50
+
51
+ class MolmoTextKwargs(TextKwargs, total=False):
52
+ style: Optional[str]
53
+ system_prompt: Optional[str]
54
+ message_format: Optional[str]
55
+ always_start_with_space: Optional[bool]
56
+ sequence_length: Optional[int]
57
+
58
+
59
+ class MolmoProcessorKwargs(ProcessingKwargs, total=False):
60
+ text_kwargs: MolmoTextKwargs
61
+ images_kwargs: MolmoImagesKwargs
62
+ _defaults = {
63
+ "images_kwargs": {
64
+ "max_crops": 12,
65
+ "overlap_margins": [4, 4],
66
+ "base_image_input_size": [336, 336],
67
+ "image_token_length_w": 12,
68
+ "image_token_length_h": 12,
69
+ "image_patch_size": 14,
70
+ "image_padding_mask": True,
71
+ },
72
+ "text_kwargs": {
73
+ "style": "long_caption",
74
+ "system_prompt": "none",
75
+ "message_format": "role",
76
+ "always_start_with_space": True,
77
+ "sequence_length": 1536,
78
+ "padding": False,
79
+ },
80
+ }
81
+
82
+
83
+ class MolmoProcessor(ProcessorMixin):
84
+ attributes = ["image_processor", "tokenizer"]
85
+ image_processor_class = "AutoImageProcessor"
86
+ tokenizer_class = ("Qwen2Tokenizer", "Qwen2TokenizerFast")
87
+
88
+ def __init__(self, image_processor: MolmoImageProcessor = None, tokenizer : AutoTokenizer = None, **kwargs):
89
+ # self.image_processor = image_processor
90
+ # self.tokenizer = tokenizer
91
+ super().__init__(image_processor, tokenizer)
92
+ self._special_tokens = None
93
+
94
+ @property
95
+ def special_token_ids(self):
96
+ if self._special_tokens is None:
97
+ self._special_tokens = get_special_token_ids(self.tokenizer)
98
+ return self._special_tokens
99
+
100
+ def get_tokens_input(self, prompt, message_format, always_start_with_space):
101
+ if message_format == "none" or message_format is None:
102
+ pass
103
+ elif message_format == "role":
104
+ prompt = "User: " + prompt + " Assistant:"
105
+ else:
106
+ raise NotImplementedError(f"Message format {message_format} not implemented")
107
+
108
+ if always_start_with_space:
109
+ prompt = " " + prompt
110
+
111
+ tokens = self.tokenizer.encode(prompt, add_special_tokens=False)
112
+
113
+ return tokens
114
+
115
+ def process(
116
+ self,
117
+ text: TextInput = None,
118
+ images: ImageInput = None,
119
+ *,
120
+ tokens: Optional[PreTokenizedInput] = None,
121
+ **kwargs: Unpack[MolmoProcessorKwargs],
122
+ ):
123
+ output_kwargs = self._merge_kwargs(
124
+ MolmoProcessorKwargs,
125
+ tokenizer_init_kwargs=self.tokenizer.init_kwargs,
126
+ **kwargs,
127
+ )
128
+
129
+ if tokens is None:
130
+ tokens = self.get_tokens_input(
131
+ text,
132
+ output_kwargs["text_kwargs"]["message_format"],
133
+ output_kwargs["text_kwargs"]["always_start_with_space"],
134
+ )
135
+
136
+ image_token_id = self.special_token_ids[IMAGE_PROMPT]
137
+
138
+ if images is not None:
139
+ if not isinstance(images, (list, tuple)):
140
+ images = [images]
141
+ image_arrays = []
142
+ for image in images:
143
+ if isinstance(image, Image):
144
+ image = image.convert("RGB")
145
+ # Handle images with EXIF orientation tags, which PIL will ignore by default
146
+ # https://github.com/python-pillow/Pillow/issues/4703
147
+ img = ImageOps.exif_transpose(image)
148
+ image_arrays.append(np.array(image))
149
+ else:
150
+ assert len(image.shape) == 3 and image.shape[-1] == 3
151
+ image_arrays.append(image.astype(np.uint8))
152
+ images = image_arrays
153
+ # For now only support inserting images at the start
154
+ image_idx = [-1]*len(images)
155
+ else:
156
+ image_idx = None
157
+
158
+ sequence_length = output_kwargs["text_kwargs"]["sequence_length"]
159
+
160
+ image_patch_token_id = self.special_token_ids[DEFAULT_IMAGE_PATCH_TOKEN]
161
+ image_col_token_id = self.special_token_ids[DEFAULT_IM_COL_TOKEN]
162
+ image_start_token_id = self.special_token_ids[DEFAULT_IM_START_TOKEN]
163
+ image_end_token_id = self.special_token_ids[DEFAULT_IM_END_TOKEN]
164
+ out = self.image_processor.multimodal_preprocess(
165
+ images=images,
166
+ image_idx=image_idx,
167
+ tokens=np.asarray(tokens).astype(np.int32),
168
+ sequence_length=sequence_length,
169
+ image_patch_token_id=image_patch_token_id,
170
+ image_col_token_id=image_col_token_id,
171
+ image_start_token_id=image_start_token_id,
172
+ image_end_token_id=image_end_token_id,
173
+ **output_kwargs["images_kwargs"]
174
+ )
175
+
176
+ # Prepend BOS
177
+ # qwen2 and olmo do not have a BOS, and instead use EOS as a generic seperator token.
178
+ bos = self.tokenizer.bos_token_id or self.tokenizer.eos_token_id
179
+ decoder_input_tokens = np.pad(out["input_ids"], [[1, 0]], constant_values=bos)
180
+ out["input_ids"] = decoder_input_tokens
181
+ if "image_input_idx" in out:
182
+ # Shift patch mapping up by one since we added BOS
183
+ image_input_idx = out["image_input_idx"]
184
+ out["image_input_idx"] = np.where(image_input_idx < 0, image_input_idx, image_input_idx + 1)
185
+
186
+ for k, v in out.items():
187
+ out[k] = torch.from_numpy(v)
188
+
189
+ return out
190
+
191
+
192
+ MolmoProcessor.register_for_auto_class()
preprocessor_config.json ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "auto_map": {
3
+ "AutoImageProcessor": "image_preprocessing_molmo.MolmoImageProcessor",
4
+ "AutoProcessor": "preprocessing_molmo.MolmoProcessor"
5
+ },
6
+ "base_image_input_size": [
7
+ 336,
8
+ 336
9
+ ],
10
+ "do_normalize": true,
11
+ "image_mean": [
12
+ 0.48145466,
13
+ 0.4578275,
14
+ 0.40821073
15
+ ],
16
+ "image_padding_mask": true,
17
+ "image_patch_size": 14,
18
+ "image_processor_type": "MolmoImageProcessor",
19
+ "image_std": [
20
+ 0.26862954,
21
+ 0.26130258,
22
+ 0.27577711
23
+ ],
24
+ "image_token_length_h": 12,
25
+ "image_token_length_w": 12,
26
+ "max_crops": 12,
27
+ "overlap_margins": [
28
+ 4,
29
+ 4
30
+ ],
31
+ "processor_class": "MolmoProcessor"
32
+ }
processor_config.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "auto_map": {
3
+ "AutoProcessor": "preprocessing_molmo.MolmoProcessor"
4
+ },
5
+ "processor_class": "MolmoProcessor"
6
+ }
special_tokens_map.json ADDED
@@ -0,0 +1,2073 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ "<soa>",
4
+ "<eoa>",
5
+ "<audio_pad>",
6
+ "<audio_0>",
7
+ "<audio_1>",
8
+ "<audio_2>",
9
+ "<audio_3>",
10
+ "<audio_4>",
11
+ "<audio_5>",
12
+ "<audio_6>",
13
+ "<audio_7>",
14
+ "<audio_8>",
15
+ "<audio_9>",
16
+ "<audio_10>",
17
+ "<audio_11>",
18
+ "<audio_12>",
19
+ "<audio_13>",
20
+ "<audio_14>",
21
+ "<audio_15>",
22
+ "<audio_16>",
23
+ "<audio_17>",
24
+ "<audio_18>",
25
+ "<audio_19>",
26
+ "<audio_20>",
27
+ "<audio_21>",
28
+ "<audio_22>",
29
+ "<audio_23>",
30
+ "<audio_24>",
31
+ "<audio_25>",
32
+ "<audio_26>",
33
+ "<audio_27>",
34
+ "<audio_28>",
35
+ "<audio_29>",
36
+ "<audio_30>",
37
+ "<audio_31>",
38
+ "<audio_32>",
39
+ "<audio_33>",
40
+ "<audio_34>",
41
+ "<audio_35>",
42
+ "<audio_36>",
43
+ "<audio_37>",
44
+ "<audio_38>",
45
+ "<audio_39>",
46
+ "<audio_40>",
47
+ "<audio_41>",
48
+ "<audio_42>",
49
+ "<audio_43>",
50
+ "<audio_44>",
51
+ "<audio_45>",
52
+ "<audio_46>",
53
+ "<audio_47>",
54
+ "<audio_48>",
55
+ "<audio_49>",
56
+ "<audio_50>",
57
+ "<audio_51>",
58
+ "<audio_52>",
59
+ "<audio_53>",
60
+ "<audio_54>",
61
+ "<audio_55>",
62
+ "<audio_56>",
63
+ "<audio_57>",
64
+ "<audio_58>",
65
+ "<audio_59>",
66
+ "<audio_60>",
67
+ "<audio_61>",
68
+ "<audio_62>",
69
+ "<audio_63>",
70
+ "<audio_64>",
71
+ "<audio_65>",
72
+ "<audio_66>",
73
+ "<audio_67>",
74
+ "<audio_68>",
75
+ "<audio_69>",
76
+ "<audio_70>",
77
+ "<audio_71>",
78
+ "<audio_72>",
79
+ "<audio_73>",
80
+ "<audio_74>",
81
+ "<audio_75>",
82
+ "<audio_76>",
83
+ "<audio_77>",
84
+ "<audio_78>",
85
+ "<audio_79>",
86
+ "<audio_80>",
87
+ "<audio_81>",
88
+ "<audio_82>",
89
+ "<audio_83>",
90
+ "<audio_84>",
91
+ "<audio_85>",
92
+ "<audio_86>",
93
+ "<audio_87>",
94
+ "<audio_88>",
95
+ "<audio_89>",
96
+ "<audio_90>",
97
+ "<audio_91>",
98
+ "<audio_92>",
99
+ "<audio_93>",
100
+ "<audio_94>",
101
+ "<audio_95>",
102
+ "<audio_96>",
103
+ "<audio_97>",
104
+ "<audio_98>",
105
+ "<audio_99>",
106
+ "<audio_100>",
107
+ "<audio_101>",
108
+ "<audio_102>",
109
+ "<audio_103>",
110
+ "<audio_104>",
111
+ "<audio_105>",
112
+ "<audio_106>",
113
+ "<audio_107>",
114
+ "<audio_108>",
115
+ "<audio_109>",
116
+ "<audio_110>",
117
+ "<audio_111>",
118
+ "<audio_112>",
119
+ "<audio_113>",
120
+ "<audio_114>",
121
+ "<audio_115>",
122
+ "<audio_116>",
123
+ "<audio_117>",
124
+ "<audio_118>",
125
+ "<audio_119>",
126
+ "<audio_120>",
127
+ "<audio_121>",
128
+ "<audio_122>",
129
+ "<audio_123>",
130
+ "<audio_124>",
131
+ "<audio_125>",
132
+ "<audio_126>",
133
+ "<audio_127>",
134
+ "<audio_128>",
135
+ "<audio_129>",
136
+ "<audio_130>",
137
+ "<audio_131>",
138
+ "<audio_132>",
139
+ "<audio_133>",
140
+ "<audio_134>",
141
+ "<audio_135>",
142
+ "<audio_136>",
143
+ "<audio_137>",
144
+ "<audio_138>",
145
+ "<audio_139>",
146
+ "<audio_140>",
147
+ "<audio_141>",
148
+ "<audio_142>",
149
+ "<audio_143>",
150
+ "<audio_144>",
151
+ "<audio_145>",
152
+ "<audio_146>",
153
+ "<audio_147>",
154
+ "<audio_148>",
155
+ "<audio_149>",
156
+ "<audio_150>",
157
+ "<audio_151>",
158
+ "<audio_152>",
159
+ "<audio_153>",
160
+ "<audio_154>",
161
+ "<audio_155>",
162
+ "<audio_156>",
163
+ "<audio_157>",
164
+ "<audio_158>",
165
+ "<audio_159>",
166
+ "<audio_160>",
167
+ "<audio_161>",
168
+ "<audio_162>",
169
+ "<audio_163>",
170
+ "<audio_164>",
171
+ "<audio_165>",
172
+ "<audio_166>",
173
+ "<audio_167>",
174
+ "<audio_168>",
175
+ "<audio_169>",
176
+ "<audio_170>",
177
+ "<audio_171>",
178
+ "<audio_172>",
179
+ "<audio_173>",
180
+ "<audio_174>",
181
+ "<audio_175>",
182
+ "<audio_176>",
183
+ "<audio_177>",
184
+ "<audio_178>",
185
+ "<audio_179>",
186
+ "<audio_180>",
187
+ "<audio_181>",
188
+ "<audio_182>",
189
+ "<audio_183>",
190
+ "<audio_184>",
191
+ "<audio_185>",
192
+ "<audio_186>",
193
+ "<audio_187>",
194
+ "<audio_188>",
195
+ "<audio_189>",
196
+ "<audio_190>",
197
+ "<audio_191>",
198
+ "<audio_192>",
199
+ "<audio_193>",
200
+ "<audio_194>",
201
+ "<audio_195>",
202
+ "<audio_196>",
203
+ "<audio_197>",
204
+ "<audio_198>",
205
+ "<audio_199>",
206
+ "<audio_200>",
207
+ "<audio_201>",
208
+ "<audio_202>",
209
+ "<audio_203>",
210
+ "<audio_204>",
211
+ "<audio_205>",
212
+ "<audio_206>",
213
+ "<audio_207>",
214
+ "<audio_208>",
215
+ "<audio_209>",
216
+ "<audio_210>",
217
+ "<audio_211>",
218
+ "<audio_212>",
219
+ "<audio_213>",
220
+ "<audio_214>",
221
+ "<audio_215>",
222
+ "<audio_216>",
223
+ "<audio_217>",
224
+ "<audio_218>",
225
+ "<audio_219>",
226
+ "<audio_220>",
227
+ "<audio_221>",
228
+ "<audio_222>",
229
+ "<audio_223>",
230
+ "<audio_224>",
231
+ "<audio_225>",
232
+ "<audio_226>",
233
+ "<audio_227>",
234
+ "<audio_228>",
235
+ "<audio_229>",
236
+ "<audio_230>",
237
+ "<audio_231>",
238
+ "<audio_232>",
239
+ "<audio_233>",
240
+ "<audio_234>",
241
+ "<audio_235>",
242
+ "<audio_236>",
243
+ "<audio_237>",
244
+ "<audio_238>",
245
+ "<audio_239>",
246
+ "<audio_240>",
247
+ "<audio_241>",
248
+ "<audio_242>",
249
+ "<audio_243>",
250
+ "<audio_244>",
251
+ "<audio_245>",
252
+ "<audio_246>",
253
+ "<audio_247>",
254
+ "<audio_248>",
255
+ "<audio_249>",
256
+ "<audio_250>",
257
+ "<audio_251>",
258
+ "<audio_252>",
259
+ "<audio_253>",
260
+ "<audio_254>",
261
+ "<audio_255>",
262
+ "<audio_256>",
263
+ "<audio_257>",
264
+ "<audio_258>",
265
+ "<audio_259>",
266
+ "<audio_260>",
267
+ "<audio_261>",
268
+ "<audio_262>",
269
+ "<audio_263>",
270
+ "<audio_264>",
271
+ "<audio_265>",
272
+ "<audio_266>",
273
+ "<audio_267>",
274
+ "<audio_268>",
275
+ "<audio_269>",
276
+ "<audio_270>",
277
+ "<audio_271>",
278
+ "<audio_272>",
279
+ "<audio_273>",
280
+ "<audio_274>",
281
+ "<audio_275>",
282
+ "<audio_276>",
283
+ "<audio_277>",
284
+ "<audio_278>",
285
+ "<audio_279>",
286
+ "<audio_280>",
287
+ "<audio_281>",
288
+ "<audio_282>",
289
+ "<audio_283>",
290
+ "<audio_284>",
291
+ "<audio_285>",
292
+ "<audio_286>",
293
+ "<audio_287>",
294
+ "<audio_288>",
295
+ "<audio_289>",
296
+ "<audio_290>",
297
+ "<audio_291>",
298
+ "<audio_292>",
299
+ "<audio_293>",
300
+ "<audio_294>",
301
+ "<audio_295>",
302
+ "<audio_296>",
303
+ "<audio_297>",
304
+ "<audio_298>",
305
+ "<audio_299>",
306
+ "<audio_300>",
307
+ "<audio_301>",
308
+ "<audio_302>",
309
+ "<audio_303>",
310
+ "<audio_304>",
311
+ "<audio_305>",
312
+ "<audio_306>",
313
+ "<audio_307>",
314
+ "<audio_308>",
315
+ "<audio_309>",
316
+ "<audio_310>",
317
+ "<audio_311>",
318
+ "<audio_312>",
319
+ "<audio_313>",
320
+ "<audio_314>",
321
+ "<audio_315>",
322
+ "<audio_316>",
323
+ "<audio_317>",
324
+ "<audio_318>",
325
+ "<audio_319>",
326
+ "<audio_320>",
327
+ "<audio_321>",
328
+ "<audio_322>",
329
+ "<audio_323>",
330
+ "<audio_324>",
331
+ "<audio_325>",
332
+ "<audio_326>",
333
+ "<audio_327>",
334
+ "<audio_328>",
335
+ "<audio_329>",
336
+ "<audio_330>",
337
+ "<audio_331>",
338
+ "<audio_332>",
339
+ "<audio_333>",
340
+ "<audio_334>",
341
+ "<audio_335>",
342
+ "<audio_336>",
343
+ "<audio_337>",
344
+ "<audio_338>",
345
+ "<audio_339>",
346
+ "<audio_340>",
347
+ "<audio_341>",
348
+ "<audio_342>",
349
+ "<audio_343>",
350
+ "<audio_344>",
351
+ "<audio_345>",
352
+ "<audio_346>",
353
+ "<audio_347>",
354
+ "<audio_348>",
355
+ "<audio_349>",
356
+ "<audio_350>",
357
+ "<audio_351>",
358
+ "<audio_352>",
359
+ "<audio_353>",
360
+ "<audio_354>",
361
+ "<audio_355>",
362
+ "<audio_356>",
363
+ "<audio_357>",
364
+ "<audio_358>",
365
+ "<audio_359>",
366
+ "<audio_360>",
367
+ "<audio_361>",
368
+ "<audio_362>",
369
+ "<audio_363>",
370
+ "<audio_364>",
371
+ "<audio_365>",
372
+ "<audio_366>",
373
+ "<audio_367>",
374
+ "<audio_368>",
375
+ "<audio_369>",
376
+ "<audio_370>",
377
+ "<audio_371>",
378
+ "<audio_372>",
379
+ "<audio_373>",
380
+ "<audio_374>",
381
+ "<audio_375>",
382
+ "<audio_376>",
383
+ "<audio_377>",
384
+ "<audio_378>",
385
+ "<audio_379>",
386
+ "<audio_380>",
387
+ "<audio_381>",
388
+ "<audio_382>",
389
+ "<audio_383>",
390
+ "<audio_384>",
391
+ "<audio_385>",
392
+ "<audio_386>",
393
+ "<audio_387>",
394
+ "<audio_388>",
395
+ "<audio_389>",
396
+ "<audio_390>",
397
+ "<audio_391>",
398
+ "<audio_392>",
399
+ "<audio_393>",
400
+ "<audio_394>",
401
+ "<audio_395>",
402
+ "<audio_396>",
403
+ "<audio_397>",
404
+ "<audio_398>",
405
+ "<audio_399>",
406
+ "<audio_400>",
407
+ "<audio_401>",
408
+ "<audio_402>",
409
+ "<audio_403>",
410
+ "<audio_404>",
411
+ "<audio_405>",
412
+ "<audio_406>",
413
+ "<audio_407>",
414
+ "<audio_408>",
415
+ "<audio_409>",
416
+ "<audio_410>",
417
+ "<audio_411>",
418
+ "<audio_412>",
419
+ "<audio_413>",
420
+ "<audio_414>",
421
+ "<audio_415>",
422
+ "<audio_416>",
423
+ "<audio_417>",
424
+ "<audio_418>",
425
+ "<audio_419>",
426
+ "<audio_420>",
427
+ "<audio_421>",
428
+ "<audio_422>",
429
+ "<audio_423>",
430
+ "<audio_424>",
431
+ "<audio_425>",
432
+ "<audio_426>",
433
+ "<audio_427>",
434
+ "<audio_428>",
435
+ "<audio_429>",
436
+ "<audio_430>",
437
+ "<audio_431>",
438
+ "<audio_432>",
439
+ "<audio_433>",
440
+ "<audio_434>",
441
+ "<audio_435>",
442
+ "<audio_436>",
443
+ "<audio_437>",
444
+ "<audio_438>",
445
+ "<audio_439>",
446
+ "<audio_440>",
447
+ "<audio_441>",
448
+ "<audio_442>",
449
+ "<audio_443>",
450
+ "<audio_444>",
451
+ "<audio_445>",
452
+ "<audio_446>",
453
+ "<audio_447>",
454
+ "<audio_448>",
455
+ "<audio_449>",
456
+ "<audio_450>",
457
+ "<audio_451>",
458
+ "<audio_452>",
459
+ "<audio_453>",
460
+ "<audio_454>",
461
+ "<audio_455>",
462
+ "<audio_456>",
463
+ "<audio_457>",
464
+ "<audio_458>",
465
+ "<audio_459>",
466
+ "<audio_460>",
467
+ "<audio_461>",
468
+ "<audio_462>",
469
+ "<audio_463>",
470
+ "<audio_464>",
471
+ "<audio_465>",
472
+ "<audio_466>",
473
+ "<audio_467>",
474
+ "<audio_468>",
475
+ "<audio_469>",
476
+ "<audio_470>",
477
+ "<audio_471>",
478
+ "<audio_472>",
479
+ "<audio_473>",
480
+ "<audio_474>",
481
+ "<audio_475>",
482
+ "<audio_476>",
483
+ "<audio_477>",
484
+ "<audio_478>",
485
+ "<audio_479>",
486
+ "<audio_480>",
487
+ "<audio_481>",
488
+ "<audio_482>",
489
+ "<audio_483>",
490
+ "<audio_484>",
491
+ "<audio_485>",
492
+ "<audio_486>",
493
+ "<audio_487>",
494
+ "<audio_488>",
495
+ "<audio_489>",
496
+ "<audio_490>",
497
+ "<audio_491>",
498
+ "<audio_492>",
499
+ "<audio_493>",
500
+ "<audio_494>",
501
+ "<audio_495>",
502
+ "<audio_496>",
503
+ "<audio_497>",
504
+ "<audio_498>",
505
+ "<audio_499>",
506
+ "<audio_500>",
507
+ "<audio_501>",
508
+ "<audio_502>",
509
+ "<audio_503>",
510
+ "<audio_504>",
511
+ "<audio_505>",
512
+ "<audio_506>",
513
+ "<audio_507>",
514
+ "<audio_508>",
515
+ "<audio_509>",
516
+ "<audio_510>",
517
+ "<audio_511>",
518
+ "<audio_512>",
519
+ "<audio_513>",
520
+ "<audio_514>",
521
+ "<audio_515>",
522
+ "<audio_516>",
523
+ "<audio_517>",
524
+ "<audio_518>",
525
+ "<audio_519>",
526
+ "<audio_520>",
527
+ "<audio_521>",
528
+ "<audio_522>",
529
+ "<audio_523>",
530
+ "<audio_524>",
531
+ "<audio_525>",
532
+ "<audio_526>",
533
+ "<audio_527>",
534
+ "<audio_528>",
535
+ "<audio_529>",
536
+ "<audio_530>",
537
+ "<audio_531>",
538
+ "<audio_532>",
539
+ "<audio_533>",
540
+ "<audio_534>",
541
+ "<audio_535>",
542
+ "<audio_536>",
543
+ "<audio_537>",
544
+ "<audio_538>",
545
+ "<audio_539>",
546
+ "<audio_540>",
547
+ "<audio_541>",
548
+ "<audio_542>",
549
+ "<audio_543>",
550
+ "<audio_544>",
551
+ "<audio_545>",
552
+ "<audio_546>",
553
+ "<audio_547>",
554
+ "<audio_548>",
555
+ "<audio_549>",
556
+ "<audio_550>",
557
+ "<audio_551>",
558
+ "<audio_552>",
559
+ "<audio_553>",
560
+ "<audio_554>",
561
+ "<audio_555>",
562
+ "<audio_556>",
563
+ "<audio_557>",
564
+ "<audio_558>",
565
+ "<audio_559>",
566
+ "<audio_560>",
567
+ "<audio_561>",
568
+ "<audio_562>",
569
+ "<audio_563>",
570
+ "<audio_564>",
571
+ "<audio_565>",
572
+ "<audio_566>",
573
+ "<audio_567>",
574
+ "<audio_568>",
575
+ "<audio_569>",
576
+ "<audio_570>",
577
+ "<audio_571>",
578
+ "<audio_572>",
579
+ "<audio_573>",
580
+ "<audio_574>",
581
+ "<audio_575>",
582
+ "<audio_576>",
583
+ "<audio_577>",
584
+ "<audio_578>",
585
+ "<audio_579>",
586
+ "<audio_580>",
587
+ "<audio_581>",
588
+ "<audio_582>",
589
+ "<audio_583>",
590
+ "<audio_584>",
591
+ "<audio_585>",
592
+ "<audio_586>",
593
+ "<audio_587>",
594
+ "<audio_588>",
595
+ "<audio_589>",
596
+ "<audio_590>",
597
+ "<audio_591>",
598
+ "<audio_592>",
599
+ "<audio_593>",
600
+ "<audio_594>",
601
+ "<audio_595>",
602
+ "<audio_596>",
603
+ "<audio_597>",
604
+ "<audio_598>",
605
+ "<audio_599>",
606
+ "<audio_600>",
607
+ "<audio_601>",
608
+ "<audio_602>",
609
+ "<audio_603>",
610
+ "<audio_604>",
611
+ "<audio_605>",
612
+ "<audio_606>",
613
+ "<audio_607>",
614
+ "<audio_608>",
615
+ "<audio_609>",
616
+ "<audio_610>",
617
+ "<audio_611>",
618
+ "<audio_612>",
619
+ "<audio_613>",
620
+ "<audio_614>",
621
+ "<audio_615>",
622
+ "<audio_616>",
623
+ "<audio_617>",
624
+ "<audio_618>",
625
+ "<audio_619>",
626
+ "<audio_620>",
627
+ "<audio_621>",
628
+ "<audio_622>",
629
+ "<audio_623>",
630
+ "<audio_624>",
631
+ "<audio_625>",
632
+ "<audio_626>",
633
+ "<audio_627>",
634
+ "<audio_628>",
635
+ "<audio_629>",
636
+ "<audio_630>",
637
+ "<audio_631>",
638
+ "<audio_632>",
639
+ "<audio_633>",
640
+ "<audio_634>",
641
+ "<audio_635>",
642
+ "<audio_636>",
643
+ "<audio_637>",
644
+ "<audio_638>",
645
+ "<audio_639>",
646
+ "<audio_640>",
647
+ "<audio_641>",
648
+ "<audio_642>",
649
+ "<audio_643>",
650
+ "<audio_644>",
651
+ "<audio_645>",
652
+ "<audio_646>",
653
+ "<audio_647>",
654
+ "<audio_648>",
655
+ "<audio_649>",
656
+ "<audio_650>",
657
+ "<audio_651>",
658
+ "<audio_652>",
659
+ "<audio_653>",
660
+ "<audio_654>",
661
+ "<audio_655>",
662
+ "<audio_656>",
663
+ "<audio_657>",
664
+ "<audio_658>",
665
+ "<audio_659>",
666
+ "<audio_660>",
667
+ "<audio_661>",
668
+ "<audio_662>",
669
+ "<audio_663>",
670
+ "<audio_664>",
671
+ "<audio_665>",
672
+ "<audio_666>",
673
+ "<audio_667>",
674
+ "<audio_668>",
675
+ "<audio_669>",
676
+ "<audio_670>",
677
+ "<audio_671>",
678
+ "<audio_672>",
679
+ "<audio_673>",
680
+ "<audio_674>",
681
+ "<audio_675>",
682
+ "<audio_676>",
683
+ "<audio_677>",
684
+ "<audio_678>",
685
+ "<audio_679>",
686
+ "<audio_680>",
687
+ "<audio_681>",
688
+ "<audio_682>",
689
+ "<audio_683>",
690
+ "<audio_684>",
691
+ "<audio_685>",
692
+ "<audio_686>",
693
+ "<audio_687>",
694
+ "<audio_688>",
695
+ "<audio_689>",
696
+ "<audio_690>",
697
+ "<audio_691>",
698
+ "<audio_692>",
699
+ "<audio_693>",
700
+ "<audio_694>",
701
+ "<audio_695>",
702
+ "<audio_696>",
703
+ "<audio_697>",
704
+ "<audio_698>",
705
+ "<audio_699>",
706
+ "<audio_700>",
707
+ "<audio_701>",
708
+ "<audio_702>",
709
+ "<audio_703>",
710
+ "<audio_704>",
711
+ "<audio_705>",
712
+ "<audio_706>",
713
+ "<audio_707>",
714
+ "<audio_708>",
715
+ "<audio_709>",
716
+ "<audio_710>",
717
+ "<audio_711>",
718
+ "<audio_712>",
719
+ "<audio_713>",
720
+ "<audio_714>",
721
+ "<audio_715>",
722
+ "<audio_716>",
723
+ "<audio_717>",
724
+ "<audio_718>",
725
+ "<audio_719>",
726
+ "<audio_720>",
727
+ "<audio_721>",
728
+ "<audio_722>",
729
+ "<audio_723>",
730
+ "<audio_724>",
731
+ "<audio_725>",
732
+ "<audio_726>",
733
+ "<audio_727>",
734
+ "<audio_728>",
735
+ "<audio_729>",
736
+ "<audio_730>",
737
+ "<audio_731>",
738
+ "<audio_732>",
739
+ "<audio_733>",
740
+ "<audio_734>",
741
+ "<audio_735>",
742
+ "<audio_736>",
743
+ "<audio_737>",
744
+ "<audio_738>",
745
+ "<audio_739>",
746
+ "<audio_740>",
747
+ "<audio_741>",
748
+ "<audio_742>",
749
+ "<audio_743>",
750
+ "<audio_744>",
751
+ "<audio_745>",
752
+ "<audio_746>",
753
+ "<audio_747>",
754
+ "<audio_748>",
755
+ "<audio_749>",
756
+ "<audio_750>",
757
+ "<audio_751>",
758
+ "<audio_752>",
759
+ "<audio_753>",
760
+ "<audio_754>",
761
+ "<audio_755>",
762
+ "<audio_756>",
763
+ "<audio_757>",
764
+ "<audio_758>",
765
+ "<audio_759>",
766
+ "<audio_760>",
767
+ "<audio_761>",
768
+ "<audio_762>",
769
+ "<audio_763>",
770
+ "<audio_764>",
771
+ "<audio_765>",
772
+ "<audio_766>",
773
+ "<audio_767>",
774
+ "<audio_768>",
775
+ "<audio_769>",
776
+ "<audio_770>",
777
+ "<audio_771>",
778
+ "<audio_772>",
779
+ "<audio_773>",
780
+ "<audio_774>",
781
+ "<audio_775>",
782
+ "<audio_776>",
783
+ "<audio_777>",
784
+ "<audio_778>",
785
+ "<audio_779>",
786
+ "<audio_780>",
787
+ "<audio_781>",
788
+ "<audio_782>",
789
+ "<audio_783>",
790
+ "<audio_784>",
791
+ "<audio_785>",
792
+ "<audio_786>",
793
+ "<audio_787>",
794
+ "<audio_788>",
795
+ "<audio_789>",
796
+ "<audio_790>",
797
+ "<audio_791>",
798
+ "<audio_792>",
799
+ "<audio_793>",
800
+ "<audio_794>",
801
+ "<audio_795>",
802
+ "<audio_796>",
803
+ "<audio_797>",
804
+ "<audio_798>",
805
+ "<audio_799>",
806
+ "<audio_800>",
807
+ "<audio_801>",
808
+ "<audio_802>",
809
+ "<audio_803>",
810
+ "<audio_804>",
811
+ "<audio_805>",
812
+ "<audio_806>",
813
+ "<audio_807>",
814
+ "<audio_808>",
815
+ "<audio_809>",
816
+ "<audio_810>",
817
+ "<audio_811>",
818
+ "<audio_812>",
819
+ "<audio_813>",
820
+ "<audio_814>",
821
+ "<audio_815>",
822
+ "<audio_816>",
823
+ "<audio_817>",
824
+ "<audio_818>",
825
+ "<audio_819>",
826
+ "<audio_820>",
827
+ "<audio_821>",
828
+ "<audio_822>",
829
+ "<audio_823>",
830
+ "<audio_824>",
831
+ "<audio_825>",
832
+ "<audio_826>",
833
+ "<audio_827>",
834
+ "<audio_828>",
835
+ "<audio_829>",
836
+ "<audio_830>",
837
+ "<audio_831>",
838
+ "<audio_832>",
839
+ "<audio_833>",
840
+ "<audio_834>",
841
+ "<audio_835>",
842
+ "<audio_836>",
843
+ "<audio_837>",
844
+ "<audio_838>",
845
+ "<audio_839>",
846
+ "<audio_840>",
847
+ "<audio_841>",
848
+ "<audio_842>",
849
+ "<audio_843>",
850
+ "<audio_844>",
851
+ "<audio_845>",
852
+ "<audio_846>",
853
+ "<audio_847>",
854
+ "<audio_848>",
855
+ "<audio_849>",
856
+ "<audio_850>",
857
+ "<audio_851>",
858
+ "<audio_852>",
859
+ "<audio_853>",
860
+ "<audio_854>",
861
+ "<audio_855>",
862
+ "<audio_856>",
863
+ "<audio_857>",
864
+ "<audio_858>",
865
+ "<audio_859>",
866
+ "<audio_860>",
867
+ "<audio_861>",
868
+ "<audio_862>",
869
+ "<audio_863>",
870
+ "<audio_864>",
871
+ "<audio_865>",
872
+ "<audio_866>",
873
+ "<audio_867>",
874
+ "<audio_868>",
875
+ "<audio_869>",
876
+ "<audio_870>",
877
+ "<audio_871>",
878
+ "<audio_872>",
879
+ "<audio_873>",
880
+ "<audio_874>",
881
+ "<audio_875>",
882
+ "<audio_876>",
883
+ "<audio_877>",
884
+ "<audio_878>",
885
+ "<audio_879>",
886
+ "<audio_880>",
887
+ "<audio_881>",
888
+ "<audio_882>",
889
+ "<audio_883>",
890
+ "<audio_884>",
891
+ "<audio_885>",
892
+ "<audio_886>",
893
+ "<audio_887>",
894
+ "<audio_888>",
895
+ "<audio_889>",
896
+ "<audio_890>",
897
+ "<audio_891>",
898
+ "<audio_892>",
899
+ "<audio_893>",
900
+ "<audio_894>",
901
+ "<audio_895>",
902
+ "<audio_896>",
903
+ "<audio_897>",
904
+ "<audio_898>",
905
+ "<audio_899>",
906
+ "<audio_900>",
907
+ "<audio_901>",
908
+ "<audio_902>",
909
+ "<audio_903>",
910
+ "<audio_904>",
911
+ "<audio_905>",
912
+ "<audio_906>",
913
+ "<audio_907>",
914
+ "<audio_908>",
915
+ "<audio_909>",
916
+ "<audio_910>",
917
+ "<audio_911>",
918
+ "<audio_912>",
919
+ "<audio_913>",
920
+ "<audio_914>",
921
+ "<audio_915>",
922
+ "<audio_916>",
923
+ "<audio_917>",
924
+ "<audio_918>",
925
+ "<audio_919>",
926
+ "<audio_920>",
927
+ "<audio_921>",
928
+ "<audio_922>",
929
+ "<audio_923>",
930
+ "<audio_924>",
931
+ "<audio_925>",
932
+ "<audio_926>",
933
+ "<audio_927>",
934
+ "<audio_928>",
935
+ "<audio_929>",
936
+ "<audio_930>",
937
+ "<audio_931>",
938
+ "<audio_932>",
939
+ "<audio_933>",
940
+ "<audio_934>",
941
+ "<audio_935>",
942
+ "<audio_936>",
943
+ "<audio_937>",
944
+ "<audio_938>",
945
+ "<audio_939>",
946
+ "<audio_940>",
947
+ "<audio_941>",
948
+ "<audio_942>",
949
+ "<audio_943>",
950
+ "<audio_944>",
951
+ "<audio_945>",
952
+ "<audio_946>",
953
+ "<audio_947>",
954
+ "<audio_948>",
955
+ "<audio_949>",
956
+ "<audio_950>",
957
+ "<audio_951>",
958
+ "<audio_952>",
959
+ "<audio_953>",
960
+ "<audio_954>",
961
+ "<audio_955>",
962
+ "<audio_956>",
963
+ "<audio_957>",
964
+ "<audio_958>",
965
+ "<audio_959>",
966
+ "<audio_960>",
967
+ "<audio_961>",
968
+ "<audio_962>",
969
+ "<audio_963>",
970
+ "<audio_964>",
971
+ "<audio_965>",
972
+ "<audio_966>",
973
+ "<audio_967>",
974
+ "<audio_968>",
975
+ "<audio_969>",
976
+ "<audio_970>",
977
+ "<audio_971>",
978
+ "<audio_972>",
979
+ "<audio_973>",
980
+ "<audio_974>",
981
+ "<audio_975>",
982
+ "<audio_976>",
983
+ "<audio_977>",
984
+ "<audio_978>",
985
+ "<audio_979>",
986
+ "<audio_980>",
987
+ "<audio_981>",
988
+ "<audio_982>",
989
+ "<audio_983>",
990
+ "<audio_984>",
991
+ "<audio_985>",
992
+ "<audio_986>",
993
+ "<audio_987>",
994
+ "<audio_988>",
995
+ "<audio_989>",
996
+ "<audio_990>",
997
+ "<audio_991>",
998
+ "<audio_992>",
999
+ "<audio_993>",
1000
+ "<audio_994>",
1001
+ "<audio_995>",
1002
+ "<audio_996>",
1003
+ "<audio_997>",
1004
+ "<audio_998>",
1005
+ "<audio_999>",
1006
+ "<audio_1000>",
1007
+ "<audio_1001>",
1008
+ "<audio_1002>",
1009
+ "<audio_1003>",
1010
+ "<audio_1004>",
1011
+ "<audio_1005>",
1012
+ "<audio_1006>",
1013
+ "<audio_1007>",
1014
+ "<audio_1008>",
1015
+ "<audio_1009>",
1016
+ "<audio_1010>",
1017
+ "<audio_1011>",
1018
+ "<audio_1012>",
1019
+ "<audio_1013>",
1020
+ "<audio_1014>",
1021
+ "<audio_1015>",
1022
+ "<audio_1016>",
1023
+ "<audio_1017>",
1024
+ "<audio_1018>",
1025
+ "<audio_1019>",
1026
+ "<audio_1020>",
1027
+ "<audio_1021>",
1028
+ "<audio_1022>",
1029
+ "<audio_1023>",
1030
+ "<audio_1024>",
1031
+ "<audio_1025>",
1032
+ "<audio_1026>",
1033
+ "<audio_1027>",
1034
+ "<audio_1028>",
1035
+ "<audio_1029>",
1036
+ "<audio_1030>",
1037
+ "<audio_1031>",
1038
+ "<audio_1032>",
1039
+ "<audio_1033>",
1040
+ "<audio_1034>",
1041
+ "<audio_1035>",
1042
+ "<audio_1036>",
1043
+ "<audio_1037>",
1044
+ "<audio_1038>",
1045
+ "<audio_1039>",
1046
+ "<audio_1040>",
1047
+ "<audio_1041>",
1048
+ "<audio_1042>",
1049
+ "<audio_1043>",
1050
+ "<audio_1044>",
1051
+ "<audio_1045>",
1052
+ "<audio_1046>",
1053
+ "<audio_1047>",
1054
+ "<audio_1048>",
1055
+ "<audio_1049>",
1056
+ "<audio_1050>",
1057
+ "<audio_1051>",
1058
+ "<audio_1052>",
1059
+ "<audio_1053>",
1060
+ "<audio_1054>",
1061
+ "<audio_1055>",
1062
+ "<audio_1056>",
1063
+ "<audio_1057>",
1064
+ "<audio_1058>",
1065
+ "<audio_1059>",
1066
+ "<audio_1060>",
1067
+ "<audio_1061>",
1068
+ "<audio_1062>",
1069
+ "<audio_1063>",
1070
+ "<audio_1064>",
1071
+ "<audio_1065>",
1072
+ "<audio_1066>",
1073
+ "<audio_1067>",
1074
+ "<audio_1068>",
1075
+ "<audio_1069>",
1076
+ "<audio_1070>",
1077
+ "<audio_1071>",
1078
+ "<audio_1072>",
1079
+ "<audio_1073>",
1080
+ "<audio_1074>",
1081
+ "<audio_1075>",
1082
+ "<audio_1076>",
1083
+ "<audio_1077>",
1084
+ "<audio_1078>",
1085
+ "<audio_1079>",
1086
+ "<audio_1080>",
1087
+ "<audio_1081>",
1088
+ "<audio_1082>",
1089
+ "<audio_1083>",
1090
+ "<audio_1084>",
1091
+ "<audio_1085>",
1092
+ "<audio_1086>",
1093
+ "<audio_1087>",
1094
+ "<audio_1088>",
1095
+ "<audio_1089>",
1096
+ "<audio_1090>",
1097
+ "<audio_1091>",
1098
+ "<audio_1092>",
1099
+ "<audio_1093>",
1100
+ "<audio_1094>",
1101
+ "<audio_1095>",
1102
+ "<audio_1096>",
1103
+ "<audio_1097>",
1104
+ "<audio_1098>",
1105
+ "<audio_1099>",
1106
+ "<audio_1100>",
1107
+ "<audio_1101>",
1108
+ "<audio_1102>",
1109
+ "<audio_1103>",
1110
+ "<audio_1104>",
1111
+ "<audio_1105>",
1112
+ "<audio_1106>",
1113
+ "<audio_1107>",
1114
+ "<audio_1108>",
1115
+ "<audio_1109>",
1116
+ "<audio_1110>",
1117
+ "<audio_1111>",
1118
+ "<audio_1112>",
1119
+ "<audio_1113>",
1120
+ "<audio_1114>",
1121
+ "<audio_1115>",
1122
+ "<audio_1116>",
1123
+ "<audio_1117>",
1124
+ "<audio_1118>",
1125
+ "<audio_1119>",
1126
+ "<audio_1120>",
1127
+ "<audio_1121>",
1128
+ "<audio_1122>",
1129
+ "<audio_1123>",
1130
+ "<audio_1124>",
1131
+ "<audio_1125>",
1132
+ "<audio_1126>",
1133
+ "<audio_1127>",
1134
+ "<audio_1128>",
1135
+ "<audio_1129>",
1136
+ "<audio_1130>",
1137
+ "<audio_1131>",
1138
+ "<audio_1132>",
1139
+ "<audio_1133>",
1140
+ "<audio_1134>",
1141
+ "<audio_1135>",
1142
+ "<audio_1136>",
1143
+ "<audio_1137>",
1144
+ "<audio_1138>",
1145
+ "<audio_1139>",
1146
+ "<audio_1140>",
1147
+ "<audio_1141>",
1148
+ "<audio_1142>",
1149
+ "<audio_1143>",
1150
+ "<audio_1144>",
1151
+ "<audio_1145>",
1152
+ "<audio_1146>",
1153
+ "<audio_1147>",
1154
+ "<audio_1148>",
1155
+ "<audio_1149>",
1156
+ "<audio_1150>",
1157
+ "<audio_1151>",
1158
+ "<audio_1152>",
1159
+ "<audio_1153>",
1160
+ "<audio_1154>",
1161
+ "<audio_1155>",
1162
+ "<audio_1156>",
1163
+ "<audio_1157>",
1164
+ "<audio_1158>",
1165
+ "<audio_1159>",
1166
+ "<audio_1160>",
1167
+ "<audio_1161>",
1168
+ "<audio_1162>",
1169
+ "<audio_1163>",
1170
+ "<audio_1164>",
1171
+ "<audio_1165>",
1172
+ "<audio_1166>",
1173
+ "<audio_1167>",
1174
+ "<audio_1168>",
1175
+ "<audio_1169>",
1176
+ "<audio_1170>",
1177
+ "<audio_1171>",
1178
+ "<audio_1172>",
1179
+ "<audio_1173>",
1180
+ "<audio_1174>",
1181
+ "<audio_1175>",
1182
+ "<audio_1176>",
1183
+ "<audio_1177>",
1184
+ "<audio_1178>",
1185
+ "<audio_1179>",
1186
+ "<audio_1180>",
1187
+ "<audio_1181>",
1188
+ "<audio_1182>",
1189
+ "<audio_1183>",
1190
+ "<audio_1184>",
1191
+ "<audio_1185>",
1192
+ "<audio_1186>",
1193
+ "<audio_1187>",
1194
+ "<audio_1188>",
1195
+ "<audio_1189>",
1196
+ "<audio_1190>",
1197
+ "<audio_1191>",
1198
+ "<audio_1192>",
1199
+ "<audio_1193>",
1200
+ "<audio_1194>",
1201
+ "<audio_1195>",
1202
+ "<audio_1196>",
1203
+ "<audio_1197>",
1204
+ "<audio_1198>",
1205
+ "<audio_1199>",
1206
+ "<audio_1200>",
1207
+ "<audio_1201>",
1208
+ "<audio_1202>",
1209
+ "<audio_1203>",
1210
+ "<audio_1204>",
1211
+ "<audio_1205>",
1212
+ "<audio_1206>",
1213
+ "<audio_1207>",
1214
+ "<audio_1208>",
1215
+ "<audio_1209>",
1216
+ "<audio_1210>",
1217
+ "<audio_1211>",
1218
+ "<audio_1212>",
1219
+ "<audio_1213>",
1220
+ "<audio_1214>",
1221
+ "<audio_1215>",
1222
+ "<audio_1216>",
1223
+ "<audio_1217>",
1224
+ "<audio_1218>",
1225
+ "<audio_1219>",
1226
+ "<audio_1220>",
1227
+ "<audio_1221>",
1228
+ "<audio_1222>",
1229
+ "<audio_1223>",
1230
+ "<audio_1224>",
1231
+ "<audio_1225>",
1232
+ "<audio_1226>",
1233
+ "<audio_1227>",
1234
+ "<audio_1228>",
1235
+ "<audio_1229>",
1236
+ "<audio_1230>",
1237
+ "<audio_1231>",
1238
+ "<audio_1232>",
1239
+ "<audio_1233>",
1240
+ "<audio_1234>",
1241
+ "<audio_1235>",
1242
+ "<audio_1236>",
1243
+ "<audio_1237>",
1244
+ "<audio_1238>",
1245
+ "<audio_1239>",
1246
+ "<audio_1240>",
1247
+ "<audio_1241>",
1248
+ "<audio_1242>",
1249
+ "<audio_1243>",
1250
+ "<audio_1244>",
1251
+ "<audio_1245>",
1252
+ "<audio_1246>",
1253
+ "<audio_1247>",
1254
+ "<audio_1248>",
1255
+ "<audio_1249>",
1256
+ "<audio_1250>",
1257
+ "<audio_1251>",
1258
+ "<audio_1252>",
1259
+ "<audio_1253>",
1260
+ "<audio_1254>",
1261
+ "<audio_1255>",
1262
+ "<audio_1256>",
1263
+ "<audio_1257>",
1264
+ "<audio_1258>",
1265
+ "<audio_1259>",
1266
+ "<audio_1260>",
1267
+ "<audio_1261>",
1268
+ "<audio_1262>",
1269
+ "<audio_1263>",
1270
+ "<audio_1264>",
1271
+ "<audio_1265>",
1272
+ "<audio_1266>",
1273
+ "<audio_1267>",
1274
+ "<audio_1268>",
1275
+ "<audio_1269>",
1276
+ "<audio_1270>",
1277
+ "<audio_1271>",
1278
+ "<audio_1272>",
1279
+ "<audio_1273>",
1280
+ "<audio_1274>",
1281
+ "<audio_1275>",
1282
+ "<audio_1276>",
1283
+ "<audio_1277>",
1284
+ "<audio_1278>",
1285
+ "<audio_1279>",
1286
+ "<audio_1280>",
1287
+ "<audio_1281>",
1288
+ "<audio_1282>",
1289
+ "<audio_1283>",
1290
+ "<audio_1284>",
1291
+ "<audio_1285>",
1292
+ "<audio_1286>",
1293
+ "<audio_1287>",
1294
+ "<audio_1288>",
1295
+ "<audio_1289>",
1296
+ "<audio_1290>",
1297
+ "<audio_1291>",
1298
+ "<audio_1292>",
1299
+ "<audio_1293>",
1300
+ "<audio_1294>",
1301
+ "<audio_1295>",
1302
+ "<audio_1296>",
1303
+ "<audio_1297>",
1304
+ "<audio_1298>",
1305
+ "<audio_1299>",
1306
+ "<audio_1300>",
1307
+ "<audio_1301>",
1308
+ "<audio_1302>",
1309
+ "<audio_1303>",
1310
+ "<audio_1304>",
1311
+ "<audio_1305>",
1312
+ "<audio_1306>",
1313
+ "<audio_1307>",
1314
+ "<audio_1308>",
1315
+ "<audio_1309>",
1316
+ "<audio_1310>",
1317
+ "<audio_1311>",
1318
+ "<audio_1312>",
1319
+ "<audio_1313>",
1320
+ "<audio_1314>",
1321
+ "<audio_1315>",
1322
+ "<audio_1316>",
1323
+ "<audio_1317>",
1324
+ "<audio_1318>",
1325
+ "<audio_1319>",
1326
+ "<audio_1320>",
1327
+ "<audio_1321>",
1328
+ "<audio_1322>",
1329
+ "<audio_1323>",
1330
+ "<audio_1324>",
1331
+ "<audio_1325>",
1332
+ "<audio_1326>",
1333
+ "<audio_1327>",
1334
+ "<audio_1328>",
1335
+ "<audio_1329>",
1336
+ "<audio_1330>",
1337
+ "<audio_1331>",
1338
+ "<audio_1332>",
1339
+ "<audio_1333>",
1340
+ "<audio_1334>",
1341
+ "<audio_1335>",
1342
+ "<audio_1336>",
1343
+ "<audio_1337>",
1344
+ "<audio_1338>",
1345
+ "<audio_1339>",
1346
+ "<audio_1340>",
1347
+ "<audio_1341>",
1348
+ "<audio_1342>",
1349
+ "<audio_1343>",
1350
+ "<audio_1344>",
1351
+ "<audio_1345>",
1352
+ "<audio_1346>",
1353
+ "<audio_1347>",
1354
+ "<audio_1348>",
1355
+ "<audio_1349>",
1356
+ "<audio_1350>",
1357
+ "<audio_1351>",
1358
+ "<audio_1352>",
1359
+ "<audio_1353>",
1360
+ "<audio_1354>",
1361
+ "<audio_1355>",
1362
+ "<audio_1356>",
1363
+ "<audio_1357>",
1364
+ "<audio_1358>",
1365
+ "<audio_1359>",
1366
+ "<audio_1360>",
1367
+ "<audio_1361>",
1368
+ "<audio_1362>",
1369
+ "<audio_1363>",
1370
+ "<audio_1364>",
1371
+ "<audio_1365>",
1372
+ "<audio_1366>",
1373
+ "<audio_1367>",
1374
+ "<audio_1368>",
1375
+ "<audio_1369>",
1376
+ "<audio_1370>",
1377
+ "<audio_1371>",
1378
+ "<audio_1372>",
1379
+ "<audio_1373>",
1380
+ "<audio_1374>",
1381
+ "<audio_1375>",
1382
+ "<audio_1376>",
1383
+ "<audio_1377>",
1384
+ "<audio_1378>",
1385
+ "<audio_1379>",
1386
+ "<audio_1380>",
1387
+ "<audio_1381>",
1388
+ "<audio_1382>",
1389
+ "<audio_1383>",
1390
+ "<audio_1384>",
1391
+ "<audio_1385>",
1392
+ "<audio_1386>",
1393
+ "<audio_1387>",
1394
+ "<audio_1388>",
1395
+ "<audio_1389>",
1396
+ "<audio_1390>",
1397
+ "<audio_1391>",
1398
+ "<audio_1392>",
1399
+ "<audio_1393>",
1400
+ "<audio_1394>",
1401
+ "<audio_1395>",
1402
+ "<audio_1396>",
1403
+ "<audio_1397>",
1404
+ "<audio_1398>",
1405
+ "<audio_1399>",
1406
+ "<audio_1400>",
1407
+ "<audio_1401>",
1408
+ "<audio_1402>",
1409
+ "<audio_1403>",
1410
+ "<audio_1404>",
1411
+ "<audio_1405>",
1412
+ "<audio_1406>",
1413
+ "<audio_1407>",
1414
+ "<audio_1408>",
1415
+ "<audio_1409>",
1416
+ "<audio_1410>",
1417
+ "<audio_1411>",
1418
+ "<audio_1412>",
1419
+ "<audio_1413>",
1420
+ "<audio_1414>",
1421
+ "<audio_1415>",
1422
+ "<audio_1416>",
1423
+ "<audio_1417>",
1424
+ "<audio_1418>",
1425
+ "<audio_1419>",
1426
+ "<audio_1420>",
1427
+ "<audio_1421>",
1428
+ "<audio_1422>",
1429
+ "<audio_1423>",
1430
+ "<audio_1424>",
1431
+ "<audio_1425>",
1432
+ "<audio_1426>",
1433
+ "<audio_1427>",
1434
+ "<audio_1428>",
1435
+ "<audio_1429>",
1436
+ "<audio_1430>",
1437
+ "<audio_1431>",
1438
+ "<audio_1432>",
1439
+ "<audio_1433>",
1440
+ "<audio_1434>",
1441
+ "<audio_1435>",
1442
+ "<audio_1436>",
1443
+ "<audio_1437>",
1444
+ "<audio_1438>",
1445
+ "<audio_1439>",
1446
+ "<audio_1440>",
1447
+ "<audio_1441>",
1448
+ "<audio_1442>",
1449
+ "<audio_1443>",
1450
+ "<audio_1444>",
1451
+ "<audio_1445>",
1452
+ "<audio_1446>",
1453
+ "<audio_1447>",
1454
+ "<audio_1448>",
1455
+ "<audio_1449>",
1456
+ "<audio_1450>",
1457
+ "<audio_1451>",
1458
+ "<audio_1452>",
1459
+ "<audio_1453>",
1460
+ "<audio_1454>",
1461
+ "<audio_1455>",
1462
+ "<audio_1456>",
1463
+ "<audio_1457>",
1464
+ "<audio_1458>",
1465
+ "<audio_1459>",
1466
+ "<audio_1460>",
1467
+ "<audio_1461>",
1468
+ "<audio_1462>",
1469
+ "<audio_1463>",
1470
+ "<audio_1464>",
1471
+ "<audio_1465>",
1472
+ "<audio_1466>",
1473
+ "<audio_1467>",
1474
+ "<audio_1468>",
1475
+ "<audio_1469>",
1476
+ "<audio_1470>",
1477
+ "<audio_1471>",
1478
+ "<audio_1472>",
1479
+ "<audio_1473>",
1480
+ "<audio_1474>",
1481
+ "<audio_1475>",
1482
+ "<audio_1476>",
1483
+ "<audio_1477>",
1484
+ "<audio_1478>",
1485
+ "<audio_1479>",
1486
+ "<audio_1480>",
1487
+ "<audio_1481>",
1488
+ "<audio_1482>",
1489
+ "<audio_1483>",
1490
+ "<audio_1484>",
1491
+ "<audio_1485>",
1492
+ "<audio_1486>",
1493
+ "<audio_1487>",
1494
+ "<audio_1488>",
1495
+ "<audio_1489>",
1496
+ "<audio_1490>",
1497
+ "<audio_1491>",
1498
+ "<audio_1492>",
1499
+ "<audio_1493>",
1500
+ "<audio_1494>",
1501
+ "<audio_1495>",
1502
+ "<audio_1496>",
1503
+ "<audio_1497>",
1504
+ "<audio_1498>",
1505
+ "<audio_1499>",
1506
+ "<audio_1500>",
1507
+ "<audio_1501>",
1508
+ "<audio_1502>",
1509
+ "<audio_1503>",
1510
+ "<audio_1504>",
1511
+ "<audio_1505>",
1512
+ "<audio_1506>",
1513
+ "<audio_1507>",
1514
+ "<audio_1508>",
1515
+ "<audio_1509>",
1516
+ "<audio_1510>",
1517
+ "<audio_1511>",
1518
+ "<audio_1512>",
1519
+ "<audio_1513>",
1520
+ "<audio_1514>",
1521
+ "<audio_1515>",
1522
+ "<audio_1516>",
1523
+ "<audio_1517>",
1524
+ "<audio_1518>",
1525
+ "<audio_1519>",
1526
+ "<audio_1520>",
1527
+ "<audio_1521>",
1528
+ "<audio_1522>",
1529
+ "<audio_1523>",
1530
+ "<audio_1524>",
1531
+ "<audio_1525>",
1532
+ "<audio_1526>",
1533
+ "<audio_1527>",
1534
+ "<audio_1528>",
1535
+ "<audio_1529>",
1536
+ "<audio_1530>",
1537
+ "<audio_1531>",
1538
+ "<audio_1532>",
1539
+ "<audio_1533>",
1540
+ "<audio_1534>",
1541
+ "<audio_1535>",
1542
+ "<audio_1536>",
1543
+ "<audio_1537>",
1544
+ "<audio_1538>",
1545
+ "<audio_1539>",
1546
+ "<audio_1540>",
1547
+ "<audio_1541>",
1548
+ "<audio_1542>",
1549
+ "<audio_1543>",
1550
+ "<audio_1544>",
1551
+ "<audio_1545>",
1552
+ "<audio_1546>",
1553
+ "<audio_1547>",
1554
+ "<audio_1548>",
1555
+ "<audio_1549>",
1556
+ "<audio_1550>",
1557
+ "<audio_1551>",
1558
+ "<audio_1552>",
1559
+ "<audio_1553>",
1560
+ "<audio_1554>",
1561
+ "<audio_1555>",
1562
+ "<audio_1556>",
1563
+ "<audio_1557>",
1564
+ "<audio_1558>",
1565
+ "<audio_1559>",
1566
+ "<audio_1560>",
1567
+ "<audio_1561>",
1568
+ "<audio_1562>",
1569
+ "<audio_1563>",
1570
+ "<audio_1564>",
1571
+ "<audio_1565>",
1572
+ "<audio_1566>",
1573
+ "<audio_1567>",
1574
+ "<audio_1568>",
1575
+ "<audio_1569>",
1576
+ "<audio_1570>",
1577
+ "<audio_1571>",
1578
+ "<audio_1572>",
1579
+ "<audio_1573>",
1580
+ "<audio_1574>",
1581
+ "<audio_1575>",
1582
+ "<audio_1576>",
1583
+ "<audio_1577>",
1584
+ "<audio_1578>",
1585
+ "<audio_1579>",
1586
+ "<audio_1580>",
1587
+ "<audio_1581>",
1588
+ "<audio_1582>",
1589
+ "<audio_1583>",
1590
+ "<audio_1584>",
1591
+ "<audio_1585>",
1592
+ "<audio_1586>",
1593
+ "<audio_1587>",
1594
+ "<audio_1588>",
1595
+ "<audio_1589>",
1596
+ "<audio_1590>",
1597
+ "<audio_1591>",
1598
+ "<audio_1592>",
1599
+ "<audio_1593>",
1600
+ "<audio_1594>",
1601
+ "<audio_1595>",
1602
+ "<audio_1596>",
1603
+ "<audio_1597>",
1604
+ "<audio_1598>",
1605
+ "<audio_1599>",
1606
+ "<audio_1600>",
1607
+ "<audio_1601>",
1608
+ "<audio_1602>",
1609
+ "<audio_1603>",
1610
+ "<audio_1604>",
1611
+ "<audio_1605>",
1612
+ "<audio_1606>",
1613
+ "<audio_1607>",
1614
+ "<audio_1608>",
1615
+ "<audio_1609>",
1616
+ "<audio_1610>",
1617
+ "<audio_1611>",
1618
+ "<audio_1612>",
1619
+ "<audio_1613>",
1620
+ "<audio_1614>",
1621
+ "<audio_1615>",
1622
+ "<audio_1616>",
1623
+ "<audio_1617>",
1624
+ "<audio_1618>",
1625
+ "<audio_1619>",
1626
+ "<audio_1620>",
1627
+ "<audio_1621>",
1628
+ "<audio_1622>",
1629
+ "<audio_1623>",
1630
+ "<audio_1624>",
1631
+ "<audio_1625>",
1632
+ "<audio_1626>",
1633
+ "<audio_1627>",
1634
+ "<audio_1628>",
1635
+ "<audio_1629>",
1636
+ "<audio_1630>",
1637
+ "<audio_1631>",
1638
+ "<audio_1632>",
1639
+ "<audio_1633>",
1640
+ "<audio_1634>",
1641
+ "<audio_1635>",
1642
+ "<audio_1636>",
1643
+ "<audio_1637>",
1644
+ "<audio_1638>",
1645
+ "<audio_1639>",
1646
+ "<audio_1640>",
1647
+ "<audio_1641>",
1648
+ "<audio_1642>",
1649
+ "<audio_1643>",
1650
+ "<audio_1644>",
1651
+ "<audio_1645>",
1652
+ "<audio_1646>",
1653
+ "<audio_1647>",
1654
+ "<audio_1648>",
1655
+ "<audio_1649>",
1656
+ "<audio_1650>",
1657
+ "<audio_1651>",
1658
+ "<audio_1652>",
1659
+ "<audio_1653>",
1660
+ "<audio_1654>",
1661
+ "<audio_1655>",
1662
+ "<audio_1656>",
1663
+ "<audio_1657>",
1664
+ "<audio_1658>",
1665
+ "<audio_1659>",
1666
+ "<audio_1660>",
1667
+ "<audio_1661>",
1668
+ "<audio_1662>",
1669
+ "<audio_1663>",
1670
+ "<audio_1664>",
1671
+ "<audio_1665>",
1672
+ "<audio_1666>",
1673
+ "<audio_1667>",
1674
+ "<audio_1668>",
1675
+ "<audio_1669>",
1676
+ "<audio_1670>",
1677
+ "<audio_1671>",
1678
+ "<audio_1672>",
1679
+ "<audio_1673>",
1680
+ "<audio_1674>",
1681
+ "<audio_1675>",
1682
+ "<audio_1676>",
1683
+ "<audio_1677>",
1684
+ "<audio_1678>",
1685
+ "<audio_1679>",
1686
+ "<audio_1680>",
1687
+ "<audio_1681>",
1688
+ "<audio_1682>",
1689
+ "<audio_1683>",
1690
+ "<audio_1684>",
1691
+ "<audio_1685>",
1692
+ "<audio_1686>",
1693
+ "<audio_1687>",
1694
+ "<audio_1688>",
1695
+ "<audio_1689>",
1696
+ "<audio_1690>",
1697
+ "<audio_1691>",
1698
+ "<audio_1692>",
1699
+ "<audio_1693>",
1700
+ "<audio_1694>",
1701
+ "<audio_1695>",
1702
+ "<audio_1696>",
1703
+ "<audio_1697>",
1704
+ "<audio_1698>",
1705
+ "<audio_1699>",
1706
+ "<audio_1700>",
1707
+ "<audio_1701>",
1708
+ "<audio_1702>",
1709
+ "<audio_1703>",
1710
+ "<audio_1704>",
1711
+ "<audio_1705>",
1712
+ "<audio_1706>",
1713
+ "<audio_1707>",
1714
+ "<audio_1708>",
1715
+ "<audio_1709>",
1716
+ "<audio_1710>",
1717
+ "<audio_1711>",
1718
+ "<audio_1712>",
1719
+ "<audio_1713>",
1720
+ "<audio_1714>",
1721
+ "<audio_1715>",
1722
+ "<audio_1716>",
1723
+ "<audio_1717>",
1724
+ "<audio_1718>",
1725
+ "<audio_1719>",
1726
+ "<audio_1720>",
1727
+ "<audio_1721>",
1728
+ "<audio_1722>",
1729
+ "<audio_1723>",
1730
+ "<audio_1724>",
1731
+ "<audio_1725>",
1732
+ "<audio_1726>",
1733
+ "<audio_1727>",
1734
+ "<audio_1728>",
1735
+ "<audio_1729>",
1736
+ "<audio_1730>",
1737
+ "<audio_1731>",
1738
+ "<audio_1732>",
1739
+ "<audio_1733>",
1740
+ "<audio_1734>",
1741
+ "<audio_1735>",
1742
+ "<audio_1736>",
1743
+ "<audio_1737>",
1744
+ "<audio_1738>",
1745
+ "<audio_1739>",
1746
+ "<audio_1740>",
1747
+ "<audio_1741>",
1748
+ "<audio_1742>",
1749
+ "<audio_1743>",
1750
+ "<audio_1744>",
1751
+ "<audio_1745>",
1752
+ "<audio_1746>",
1753
+ "<audio_1747>",
1754
+ "<audio_1748>",
1755
+ "<audio_1749>",
1756
+ "<audio_1750>",
1757
+ "<audio_1751>",
1758
+ "<audio_1752>",
1759
+ "<audio_1753>",
1760
+ "<audio_1754>",
1761
+ "<audio_1755>",
1762
+ "<audio_1756>",
1763
+ "<audio_1757>",
1764
+ "<audio_1758>",
1765
+ "<audio_1759>",
1766
+ "<audio_1760>",
1767
+ "<audio_1761>",
1768
+ "<audio_1762>",
1769
+ "<audio_1763>",
1770
+ "<audio_1764>",
1771
+ "<audio_1765>",
1772
+ "<audio_1766>",
1773
+ "<audio_1767>",
1774
+ "<audio_1768>",
1775
+ "<audio_1769>",
1776
+ "<audio_1770>",
1777
+ "<audio_1771>",
1778
+ "<audio_1772>",
1779
+ "<audio_1773>",
1780
+ "<audio_1774>",
1781
+ "<audio_1775>",
1782
+ "<audio_1776>",
1783
+ "<audio_1777>",
1784
+ "<audio_1778>",
1785
+ "<audio_1779>",
1786
+ "<audio_1780>",
1787
+ "<audio_1781>",
1788
+ "<audio_1782>",
1789
+ "<audio_1783>",
1790
+ "<audio_1784>",
1791
+ "<audio_1785>",
1792
+ "<audio_1786>",
1793
+ "<audio_1787>",
1794
+ "<audio_1788>",
1795
+ "<audio_1789>",
1796
+ "<audio_1790>",
1797
+ "<audio_1791>",
1798
+ "<audio_1792>",
1799
+ "<audio_1793>",
1800
+ "<audio_1794>",
1801
+ "<audio_1795>",
1802
+ "<audio_1796>",
1803
+ "<audio_1797>",
1804
+ "<audio_1798>",
1805
+ "<audio_1799>",
1806
+ "<audio_1800>",
1807
+ "<audio_1801>",
1808
+ "<audio_1802>",
1809
+ "<audio_1803>",
1810
+ "<audio_1804>",
1811
+ "<audio_1805>",
1812
+ "<audio_1806>",
1813
+ "<audio_1807>",
1814
+ "<audio_1808>",
1815
+ "<audio_1809>",
1816
+ "<audio_1810>",
1817
+ "<audio_1811>",
1818
+ "<audio_1812>",
1819
+ "<audio_1813>",
1820
+ "<audio_1814>",
1821
+ "<audio_1815>",
1822
+ "<audio_1816>",
1823
+ "<audio_1817>",
1824
+ "<audio_1818>",
1825
+ "<audio_1819>",
1826
+ "<audio_1820>",
1827
+ "<audio_1821>",
1828
+ "<audio_1822>",
1829
+ "<audio_1823>",
1830
+ "<audio_1824>",
1831
+ "<audio_1825>",
1832
+ "<audio_1826>",
1833
+ "<audio_1827>",
1834
+ "<audio_1828>",
1835
+ "<audio_1829>",
1836
+ "<audio_1830>",
1837
+ "<audio_1831>",
1838
+ "<audio_1832>",
1839
+ "<audio_1833>",
1840
+ "<audio_1834>",
1841
+ "<audio_1835>",
1842
+ "<audio_1836>",
1843
+ "<audio_1837>",
1844
+ "<audio_1838>",
1845
+ "<audio_1839>",
1846
+ "<audio_1840>",
1847
+ "<audio_1841>",
1848
+ "<audio_1842>",
1849
+ "<audio_1843>",
1850
+ "<audio_1844>",
1851
+ "<audio_1845>",
1852
+ "<audio_1846>",
1853
+ "<audio_1847>",
1854
+ "<audio_1848>",
1855
+ "<audio_1849>",
1856
+ "<audio_1850>",
1857
+ "<audio_1851>",
1858
+ "<audio_1852>",
1859
+ "<audio_1853>",
1860
+ "<audio_1854>",
1861
+ "<audio_1855>",
1862
+ "<audio_1856>",
1863
+ "<audio_1857>",
1864
+ "<audio_1858>",
1865
+ "<audio_1859>",
1866
+ "<audio_1860>",
1867
+ "<audio_1861>",
1868
+ "<audio_1862>",
1869
+ "<audio_1863>",
1870
+ "<audio_1864>",
1871
+ "<audio_1865>",
1872
+ "<audio_1866>",
1873
+ "<audio_1867>",
1874
+ "<audio_1868>",
1875
+ "<audio_1869>",
1876
+ "<audio_1870>",
1877
+ "<audio_1871>",
1878
+ "<audio_1872>",
1879
+ "<audio_1873>",
1880
+ "<audio_1874>",
1881
+ "<audio_1875>",
1882
+ "<audio_1876>",
1883
+ "<audio_1877>",
1884
+ "<audio_1878>",
1885
+ "<audio_1879>",
1886
+ "<audio_1880>",
1887
+ "<audio_1881>",
1888
+ "<audio_1882>",
1889
+ "<audio_1883>",
1890
+ "<audio_1884>",
1891
+ "<audio_1885>",
1892
+ "<audio_1886>",
1893
+ "<audio_1887>",
1894
+ "<audio_1888>",
1895
+ "<audio_1889>",
1896
+ "<audio_1890>",
1897
+ "<audio_1891>",
1898
+ "<audio_1892>",
1899
+ "<audio_1893>",
1900
+ "<audio_1894>",
1901
+ "<audio_1895>",
1902
+ "<audio_1896>",
1903
+ "<audio_1897>",
1904
+ "<audio_1898>",
1905
+ "<audio_1899>",
1906
+ "<audio_1900>",
1907
+ "<audio_1901>",
1908
+ "<audio_1902>",
1909
+ "<audio_1903>",
1910
+ "<audio_1904>",
1911
+ "<audio_1905>",
1912
+ "<audio_1906>",
1913
+ "<audio_1907>",
1914
+ "<audio_1908>",
1915
+ "<audio_1909>",
1916
+ "<audio_1910>",
1917
+ "<audio_1911>",
1918
+ "<audio_1912>",
1919
+ "<audio_1913>",
1920
+ "<audio_1914>",
1921
+ "<audio_1915>",
1922
+ "<audio_1916>",
1923
+ "<audio_1917>",
1924
+ "<audio_1918>",
1925
+ "<audio_1919>",
1926
+ "<audio_1920>",
1927
+ "<audio_1921>",
1928
+ "<audio_1922>",
1929
+ "<audio_1923>",
1930
+ "<audio_1924>",
1931
+ "<audio_1925>",
1932
+ "<audio_1926>",
1933
+ "<audio_1927>",
1934
+ "<audio_1928>",
1935
+ "<audio_1929>",
1936
+ "<audio_1930>",
1937
+ "<audio_1931>",
1938
+ "<audio_1932>",
1939
+ "<audio_1933>",
1940
+ "<audio_1934>",
1941
+ "<audio_1935>",
1942
+ "<audio_1936>",
1943
+ "<audio_1937>",
1944
+ "<audio_1938>",
1945
+ "<audio_1939>",
1946
+ "<audio_1940>",
1947
+ "<audio_1941>",
1948
+ "<audio_1942>",
1949
+ "<audio_1943>",
1950
+ "<audio_1944>",
1951
+ "<audio_1945>",
1952
+ "<audio_1946>",
1953
+ "<audio_1947>",
1954
+ "<audio_1948>",
1955
+ "<audio_1949>",
1956
+ "<audio_1950>",
1957
+ "<audio_1951>",
1958
+ "<audio_1952>",
1959
+ "<audio_1953>",
1960
+ "<audio_1954>",
1961
+ "<audio_1955>",
1962
+ "<audio_1956>",
1963
+ "<audio_1957>",
1964
+ "<audio_1958>",
1965
+ "<audio_1959>",
1966
+ "<audio_1960>",
1967
+ "<audio_1961>",
1968
+ "<audio_1962>",
1969
+ "<audio_1963>",
1970
+ "<audio_1964>",
1971
+ "<audio_1965>",
1972
+ "<audio_1966>",
1973
+ "<audio_1967>",
1974
+ "<audio_1968>",
1975
+ "<audio_1969>",
1976
+ "<audio_1970>",
1977
+ "<audio_1971>",
1978
+ "<audio_1972>",
1979
+ "<audio_1973>",
1980
+ "<audio_1974>",
1981
+ "<audio_1975>",
1982
+ "<audio_1976>",
1983
+ "<audio_1977>",
1984
+ "<audio_1978>",
1985
+ "<audio_1979>",
1986
+ "<audio_1980>",
1987
+ "<audio_1981>",
1988
+ "<audio_1982>",
1989
+ "<audio_1983>",
1990
+ "<audio_1984>",
1991
+ "<audio_1985>",
1992
+ "<audio_1986>",
1993
+ "<audio_1987>",
1994
+ "<audio_1988>",
1995
+ "<audio_1989>",
1996
+ "<audio_1990>",
1997
+ "<audio_1991>",
1998
+ "<audio_1992>",
1999
+ "<audio_1993>",
2000
+ "<audio_1994>",
2001
+ "<audio_1995>",
2002
+ "<audio_1996>",
2003
+ "<audio_1997>",
2004
+ "<audio_1998>",
2005
+ "<audio_1999>",
2006
+ "<audio_2000>",
2007
+ "<audio_2001>",
2008
+ "<audio_2002>",
2009
+ "<audio_2003>",
2010
+ "<audio_2004>",
2011
+ "<audio_2005>",
2012
+ "<audio_2006>",
2013
+ "<audio_2007>",
2014
+ "<audio_2008>",
2015
+ "<audio_2009>",
2016
+ "<audio_2010>",
2017
+ "<audio_2011>",
2018
+ "<audio_2012>",
2019
+ "<audio_2013>",
2020
+ "<audio_2014>",
2021
+ "<audio_2015>",
2022
+ "<audio_2016>",
2023
+ "<audio_2017>",
2024
+ "<audio_2018>",
2025
+ "<audio_2019>",
2026
+ "<audio_2020>",
2027
+ "<audio_2021>",
2028
+ "<audio_2022>",
2029
+ "<audio_2023>",
2030
+ "<audio_2024>",
2031
+ "<audio_2025>",
2032
+ "<audio_2026>",
2033
+ "<audio_2027>",
2034
+ "<audio_2028>",
2035
+ "<audio_2029>",
2036
+ "<audio_2030>",
2037
+ "<audio_2031>",
2038
+ "<audio_2032>",
2039
+ "<audio_2033>",
2040
+ "<audio_2034>",
2041
+ "<audio_2035>",
2042
+ "<audio_2036>",
2043
+ "<audio_2037>",
2044
+ "<audio_2038>",
2045
+ "<audio_2039>",
2046
+ "<audio_2040>",
2047
+ "<audio_2041>",
2048
+ "<audio_2042>",
2049
+ "<audio_2043>",
2050
+ "<audio_2044>",
2051
+ "<audio_2045>",
2052
+ "<audio_2046>",
2053
+ "<audio_2047>",
2054
+ "<spk1>",
2055
+ "<spk2>",
2056
+ "<spk3>",
2057
+ "<spk4>"
2058
+ ],
2059
+ "eos_token": {
2060
+ "content": "<|endoftext|>",
2061
+ "lstrip": false,
2062
+ "normalized": false,
2063
+ "rstrip": false,
2064
+ "single_word": false
2065
+ },
2066
+ "pad_token": {
2067
+ "content": "<|endoftext|>",
2068
+ "lstrip": false,
2069
+ "normalized": false,
2070
+ "rstrip": false,
2071
+ "single_word": false
2072
+ }
2073
+ }
token_manifest.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "soa_token_id": 152069,
3
+ "eoa_token_id": 152070,
4
+ "codebook_offset": 152072,
5
+ "codebook_size": 2048,
6
+ "spk_token_ids": [
7
+ 154120,
8
+ 154121,
9
+ 154122,
10
+ 154123
11
+ ],
12
+ "eos_token_id": 151643,
13
+ "max_audio_codes": 1000
14
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:aca5608200fb11ad1546df5f48416de24c6920e8d8515b4f5e35024516fd3fc4
3
+ size 11888678
tokenizer_config.json ADDED
The diff for this file is too large to render. See raw diff
 
vocab.json ADDED
The diff for this file is too large to render. See raw diff