A7medAyman commited on
Commit
585df2d
·
verified ·
1 Parent(s): fb87fc8

Upload tokenizer

Browse files
Files changed (3) hide show
  1. chat_template.jinja +42 -81
  2. tokenizer.json +2 -2
  3. tokenizer_config.json +24 -8
chat_template.jinja CHANGED
@@ -1,93 +1,54 @@
1
- {{- bos_token }}
2
- {%- if custom_tools is defined %}
3
- {%- set tools = custom_tools %}
4
- {%- endif %}
5
- {%- if not tools_in_user_message is defined %}
6
- {%- set tools_in_user_message = true %}
7
- {%- endif %}
8
- {%- if not date_string is defined %}
9
- {%- if strftime_now is defined %}
10
- {%- set date_string = strftime_now("%d %b %Y") %}
11
  {%- else %}
12
- {%- set date_string = "26 Jul 2024" %}
13
  {%- endif %}
14
- {%- endif %}
15
- {%- if not tools is defined %}
16
- {%- set tools = none %}
17
- {%- endif %}
18
-
19
- {#- This block extracts the system message, so we can slot it into the right place. #}
20
- {%- if messages[0]['role'] == 'system' %}
21
- {%- set system_message = messages[0]['content']|trim %}
22
- {%- set messages = messages[1:] %}
23
- {%- else %}
24
- {%- set system_message = "" %}
25
- {%- endif %}
26
-
27
- {#- System message #}
28
- {{- "<|start_header_id|>system<|end_header_id|>\n\n" }}
29
- {%- if tools is not none %}
30
- {{- "Environment: ipython\n" }}
31
- {%- endif %}
32
- {{- "Cutting Knowledge Date: December 2023\n" }}
33
- {{- "Today Date: " + date_string + "\n\n" }}
34
- {%- if tools is not none and not tools_in_user_message %}
35
- {{- "You have access to the following functions. To call a function, please respond with JSON for a function call." }}
36
- {{- 'Respond in the format {"name": function name, "parameters": dictionary of argument name and its value}.' }}
37
- {{- "Do not use variables.\n\n" }}
38
- {%- for t in tools %}
39
- {{- t | tojson(indent=4) }}
40
- {{- "\n\n" }}
41
  {%- endfor %}
42
- {%- endif %}
43
- {{- system_message }}
44
- {{- "<|eot_id|>" }}
45
-
46
- {#- Custom tools are passed in a user message with some extra guidance #}
47
- {%- if tools_in_user_message and not tools is none %}
48
- {#- Extract the first user message so we can plug it in here #}
49
- {%- if messages | length != 0 %}
50
- {%- set first_user_message = messages[0]['content']|trim %}
51
- {%- set messages = messages[1:] %}
52
  {%- else %}
53
- {{- raise_exception("Cannot put tools in the first user message when there's no first user message!") }}
54
- {%- endif %}
55
- {{- '<|start_header_id|>user<|end_header_id|>\n\n' -}}
56
- {{- "Given the following functions, please respond with a JSON for a function call " }}
57
- {{- "with its proper arguments that best answers the given prompt.\n\n" }}
58
- {{- 'Respond in the format {"name": function name, "parameters": dictionary of argument name and its value}.' }}
59
- {{- "Do not use variables.\n\n" }}
60
- {%- for t in tools %}
61
- {{- t | tojson(indent=4) }}
62
- {{- "\n\n" }}
63
- {%- endfor %}
64
- {{- first_user_message + "<|eot_id|>"}}
65
  {%- endif %}
66
-
67
  {%- for message in messages %}
68
- {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %}
69
- {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' }}
70
- {%- elif 'tool_calls' in message %}
71
- {%- if not message.tool_calls|length == 1 %}
72
- {{- raise_exception("This model only supports single tool-calls at once!") }}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  {%- endif %}
74
- {%- set tool_call = message.tool_calls[0].function %}
75
- {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' -}}
76
- {{- '{"name": "' + tool_call.name + '", ' }}
77
- {{- '"parameters": ' }}
78
- {{- tool_call.arguments | tojson }}
79
- {{- "}" }}
80
- {{- "<|eot_id|>" }}
81
- {%- elif message.role == "tool" or message.role == "ipython" %}
82
- {{- "<|start_header_id|>ipython<|end_header_id|>\n\n" }}
83
- {%- if message.content is mapping or message.content is iterable %}
84
- {{- message.content | tojson }}
85
- {%- else %}
86
- {{- message.content }}
87
  {%- endif %}
88
- {{- "<|eot_id|>" }}
89
  {%- endif %}
90
  {%- endfor %}
91
  {%- if add_generation_prompt %}
92
- {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' }}
93
  {%- endif %}
 
1
+ {%- if tools %}
2
+ {{- '<|im_start|>system\n' }}
3
+ {%- if messages[0]['role'] == 'system' %}
4
+ {{- messages[0]['content'] }}
 
 
 
 
 
 
5
  {%- else %}
6
+ {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }}
7
  {%- endif %}
8
+ {{- "\n\n# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
9
+ {%- for tool in tools %}
10
+ {{- "\n" }}
11
+ {{- tool | tojson }}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  {%- endfor %}
13
+ {{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
14
+ {%- else %}
15
+ {%- if messages[0]['role'] == 'system' %}
16
+ {{- '<|im_start|>system\n' + messages[0]['content'] + '<|im_end|>\n' }}
 
 
 
 
 
 
17
  {%- else %}
18
+ {{- '<|im_start|>system\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\n' }}
19
+ {%- endif %}
 
 
 
 
 
 
 
 
 
 
20
  {%- endif %}
 
21
  {%- for message in messages %}
22
+ {%- if (message.role == "user") or (message.role == "system" and not loop.first) or (message.role == "assistant" and not message.tool_calls) %}
23
+ {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }}
24
+ {%- elif message.role == "assistant" %}
25
+ {{- '<|im_start|>' + message.role }}
26
+ {%- if message.content %}
27
+ {{- '\n' + message.content }}
28
+ {%- endif %}
29
+ {%- for tool_call in message.tool_calls %}
30
+ {%- if tool_call.function is defined %}
31
+ {%- set tool_call = tool_call.function %}
32
+ {%- endif %}
33
+ {{- '\n<tool_call>\n{"name": "' }}
34
+ {{- tool_call.name }}
35
+ {{- '", "arguments": ' }}
36
+ {{- tool_call.arguments | tojson }}
37
+ {{- '}\n</tool_call>' }}
38
+ {%- endfor %}
39
+ {{- '<|im_end|>\n' }}
40
+ {%- elif message.role == "tool" %}
41
+ {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != "tool") %}
42
+ {{- '<|im_start|>user' }}
43
  {%- endif %}
44
+ {{- '\n<tool_response>\n' }}
45
+ {{- message.content }}
46
+ {{- '\n</tool_response>' }}
47
+ {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
48
+ {{- '<|im_end|>\n' }}
 
 
 
 
 
 
 
 
49
  {%- endif %}
 
50
  {%- endif %}
51
  {%- endfor %}
52
  {%- if add_generation_prompt %}
53
+ {{- '<|im_start|>assistant\n' }}
54
  {%- endif %}
tokenizer.json CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:6b9e4e7fb171f92fd137b777cc2714bf87d11576700a1dcd7a399e7bbe39537b
3
- size 17209920
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3fd169731d2cbde95e10bf356d66d5997fd885dd8dbb6fb4684da3f23b2585d8
3
+ size 11421892
tokenizer_config.json CHANGED
@@ -1,13 +1,29 @@
1
  {
 
2
  "backend": "tokenizers",
3
- "bos_token": "<|begin_of_text|>",
4
- "clean_up_tokenization_spaces": true,
5
- "eos_token": "<|eot_id|>",
6
- "is_local": false,
7
- "model_input_names": [
8
- "input_ids",
9
- "attention_mask"
 
 
 
 
 
 
 
 
 
 
 
10
  ],
 
11
  "model_max_length": 131072,
12
- "tokenizer_class": "TokenizersBackend"
 
 
 
13
  }
 
1
  {
2
+ "add_prefix_space": false,
3
  "backend": "tokenizers",
4
+ "bos_token": null,
5
+ "clean_up_tokenization_spaces": false,
6
+ "eos_token": "<|im_end|>",
7
+ "errors": "replace",
8
+ "extra_special_tokens": [
9
+ "<|im_start|>",
10
+ "<|im_end|>",
11
+ "<|object_ref_start|>",
12
+ "<|object_ref_end|>",
13
+ "<|box_start|>",
14
+ "<|box_end|>",
15
+ "<|quad_start|>",
16
+ "<|quad_end|>",
17
+ "<|vision_start|>",
18
+ "<|vision_end|>",
19
+ "<|vision_pad|>",
20
+ "<|image_pad|>",
21
+ "<|video_pad|>"
22
  ],
23
+ "is_local": false,
24
  "model_max_length": 131072,
25
+ "pad_token": "<|endoftext|>",
26
+ "split_special_tokens": false,
27
+ "tokenizer_class": "Qwen2Tokenizer",
28
+ "unk_token": null
29
  }