Bad chat template?
#2
by
NullpunktVT
- opened
When trying to use this model with Text Generation Inference's Messages API, I am getting a 422 error: {"error":"Template error: template not found","error_type":"template_error"}
I checked the tokenizer_config.json
, and there is a "chat_template" entry. Is anyone else having trouble with this? Is there something wrong with the template?
I managed to get it to work with the following template. The difference is that bos_token
, eos_token
, and unk_token
are just strings instead of the maps.
{
"chat_template": "{% if messages[0]['role'] == 'system' %}{% set loop_messages = messages[1:] %}{% set system_message = messages[0]['content'] %}{% else %}{% set loop_messages = messages %}{% set system_message = false %}{% endif %}{% for message in loop_messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% if loop.index0 == 0 and system_message != false %}{% set content = '<<SYS>>\\n' + system_message + '\\n<</SYS>>\\n\\n' + message['content'] %}{% else %}{% set content = message['content'] %}{% endif %}{% if message['role'] == 'user' %}{{ bos_token + '[INST] ' + content | trim + ' [/INST]' }}{% elif message['role'] == 'assistant' %}{{ ' ' + content | trim + ' ' + eos_token }}{% endif %}{% endfor %}",
"add_bos_token": true,
"add_eos_token": false,
"bos_token": "<s>",
"clean_up_tokenization_spaces": false,
"eos_token": "</s>",
"legacy": null,
"model_max_length": 1000000000000000019884624838656,
"pad_token": null,
"sp_model_kwargs": {},
"tokenizer_class": "CodeLlamaTokenizer",
"unk_token": "<unk>"
}