@@ -1216,6 +1216,34 @@ def template(self) -> str:
1216
1216
)
1217
1217
1218
1218
1219
+ class MixtralTemplate (BaseTemplate ):
1220
+ """ https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2/blob/main/tokenizer_config.json """
1221
+
1222
+ name = "mixtral"
1223
+ allow_models = ["mixtral" ]
1224
+ stop = {
1225
+ "strings" : ["[INST]" , "[/INST]" ],
1226
+ }
1227
+
1228
+ @property
1229
+ def template (self ) -> str :
1230
+ return (
1231
+ "{{ bos_token }}"
1232
+ "{% for message in messages %}"
1233
+ "{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}"
1234
+ "{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}"
1235
+ "{% endif %}"
1236
+ "{% if message['role'] == 'user' %}"
1237
+ "{{ '[INST] ' + message['content'] + ' [/INST]' }}"
1238
+ "{% elif message['role'] == 'assistant' %}"
1239
+ "{{ message['content'] + '</s>' }}"
1240
+ "{% else %}"
1241
+ "{{ raise_exception('Only user and assistant roles are supported!') }}"
1242
+ "{% endif %}"
1243
+ "{% endfor %}"
1244
+ )
1245
+
1246
+
1219
1247
register_prompt_adapter (AlpacaTemplate )
1220
1248
register_prompt_adapter (AquilaChatTemplate )
1221
1249
register_prompt_adapter (BaiChuanTemplate )
@@ -1233,6 +1261,7 @@ def template(self) -> str:
1233
1261
register_prompt_adapter (HuatuoTemplate )
1234
1262
register_prompt_adapter (InternLMTemplate )
1235
1263
register_prompt_adapter (Llama2Template )
1264
+ register_prompt_adapter (MixtralTemplate )
1236
1265
register_prompt_adapter (MossTemplate )
1237
1266
register_prompt_adapter (OctopackTemplate )
1238
1267
register_prompt_adapter (OpenBuddyTemplate )
@@ -1256,6 +1285,6 @@ def template(self) -> str:
1256
1285
{"role" : "assistant" , "content" : "I'm doing great. How can I help you today?" },
1257
1286
{"role" : "user" , "content" : "I'd like to show off how chat templating works!" },
1258
1287
]
1259
- template = get_prompt_adapter (prompt_name = "sus-chat " )
1288
+ template = get_prompt_adapter (prompt_name = "mixtral " )
1260
1289
messages = template .postprocess_messages (chat )
1261
1290
print (template .apply_chat_template (messages ))
0 commit comments