Text Generation
Transformers
PyTorch
mpt
Composer
MosaicML
llm-foundry
custom_code
text-generation-inference
irenedea commited on
Commit
ed87472
1 Parent(s): df5a0d7

Add chat_template to tokenizer_config.json

Browse files

Manually tested with
```
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained('mpt-7b-chat-tokenizer')

chat = [
{"role": "system", "content": "This is a prompt!"},
{"role": "user", "content": "Hello, how are you?"},
{"role": "assistant", "content": "I'm doing great. How can I help you today?"},
{"role": "user", "content": "I'd like to show off how chat templating works!"},
]

print(tokenizer.apply_chat_template(chat, tokenize=False))
```
where mpt-7b-chat tokenizer is a local folder that includes the modified tokenizer_config.json

Files changed (1) hide show
  1. tokenizer_config.json +2 -1
tokenizer_config.json CHANGED
@@ -5,5 +5,6 @@
5
  "eos_token": "<|endoftext|>",
6
  "model_max_length": 2048,
7
  "tokenizer_class": "GPTNeoXTokenizer",
8
- "unk_token": "<|endoftext|>"
 
9
  }
 
5
  "eos_token": "<|endoftext|>",
6
  "model_max_length": 2048,
7
  "tokenizer_class": "GPTNeoXTokenizer",
8
+ "unk_token": "<|endoftext|>",
9
+ "chat_template": "{% if messages[0]['role'] == 'system' %}{% set loop_messages = messages[1:] %}{% set system_message = messages[0]['content'] %}{% elif not 'system' in messages[0]['role'] %}{% set loop_messages = messages %}{% set system_message = 'A conversation between a user and an LLM-based AI assistant. The assistant gives helpful and honest answers.' %}{% else %}{% set loop_messages = messages %}{% set system_message = false %}{% endif %}{% for message in loop_messages %}{% if loop.index0 == 0 %}{% if system_message != false %}{{ '<|im_start|>system\n' + system_message.strip() + '\n'}}{% endif %}{{ '<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' }}{% else %}{{ '\n' + '<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' }}{% endif %}{% if (add_generation_prompt == true) %}{{ '\n' + '<|im_start|>' + 'assistant' + '\n' }}{% elif (message['role'] == 'assistant') %}{{ eos_token }}{% endif %}{% endfor %}"
10
  }