CjangCjengh commited on
Commit
024bfd5
·
1 Parent(s): cd5d96a

upload files

Browse files
README.md ADDED
@@ -0,0 +1,193 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: cc-by-nc-sa-4.0
3
+ language:
4
+ - zh
5
+ - vi
6
+ ---
7
+ [WN-VN-14B-v0.2](https://huggingface.co/CjangCjengh/WN-VN-14B-v0.2)的GPTQ Int4量化版本
8
+
9
+ Bản quant GPTQ Int4 của [Qwen2.5-14B-Instruct](https://huggingface.co/Qwen/Qwen2.5-14B-Instruct)
10
+
11
+ 模型支持中文↔越南语的双向翻译
12
+
13
+ Mô hình hỗ trợ dịch song ngữ Trung ↔ Việt
14
+
15
+ 可以使用vLLM或Transformers来运行模型
16
+
17
+ Có thể dùng vLLM hoặc Transformers để chạy mô hình
18
+
19
+ ## vLLM (Faster but of lower quality)
20
+
21
+ - 中翻越
22
+ - Dịch Trung Việt
23
+ ```python
24
+ from vllm import LLM, SamplingParams
25
+
26
+ model_path = 'CjangCjengh/WN-VN-14B-v0.2-GPTQ-Int4'
27
+
28
+ # 显存不够时可以增加
29
+ # VRAM không đủ có thể tăng
30
+ cpu_offload_gb = 0
31
+
32
+ llm = LLM(model=model_path, cpu_offload_gb=cpu_offload_gb, max_model_len=2048)
33
+
34
+ sampling_params = SamplingParams(temperature=0.7, top_k=20, top_p=0.8, max_tokens=1024, repetition_penalty=1.05)
35
+
36
+ # 段落之间用\n分隔
37
+ # Giữa các đoạn văn dùng \n để phân tách
38
+ text = '''“痛!太痛了!”
39
+ “不要砍我啊,我真没想开后宫!我只是想给你们所有人一个家而已!我有什么错?”
40
+ 温柔的雨夜,竹叶漱漱落下。
41
+ 伴随着一阵头疼,许源从睡梦之中惊醒过来,睁开眼睛。
42
+ “我……我这是在哪里?”
43
+ 当他从痛苦之中清醒,瞳孔彻底聚焦,看清周围的环境之后,却是忍不住地愣在了原地。
44
+ 无外乎他惊讶。
45
+ 毕竟眼前的一切对于他来说的确是过于陌生了。
46
+ 由造价不菲的温润青玉饰以精致雕花而成的墙壁映入眼帘,布在天山雪蚕吐出的宝丝所编制成的窗户上的阵法将落入屋中的微薄月华炼化成丝丝缕缕的白色絮状灵气,石桌上摆放着一盏千年紫沉木灯,焰光于风中轻轻摇曳,让人仿佛置身于仙境之中。'''
47
+
48
+ # 文本长度控制在1024以内
49
+ # Đảm bảo độ dài văn bản dưới 1024 ký tự
50
+ assert len(text) < 1024
51
+
52
+ template = f'<|im_start|>system\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\n<|im_start|>user\n翻译成越南语:\n{text}<|im_end|>\n<|im_start|>assistant\n'
53
+
54
+ outputs = llm.generate(template, sampling_params=sampling_params)
55
+
56
+ response = outputs[0].outputs[0].text
57
+ print(response)
58
+ ```
59
+
60
+ - 越翻中
61
+ - Dịch Việt Trung
62
+ ```python
63
+ from vllm import LLM, SamplingParams
64
+
65
+ model_path = 'CjangCjengh/WN-VN-14B-v0.2-GPTQ-Int4'
66
+
67
+ # 显存不够时可以增加
68
+ # VRAM không đủ có thể tăng
69
+ cpu_offload_gb = 0
70
+
71
+ llm = LLM(model=model_path, cpu_offload_gb=cpu_offload_gb, max_model_len=2048)
72
+
73
+ sampling_params = SamplingParams(temperature=0.7, top_k=20, top_p=0.8, max_tokens=1024, repetition_penalty=1.05)
74
+
75
+ # 段落之间用\n分隔
76
+ # Giữa các đoạn văn dùng \n để phân tách
77
+ text = '''Chương đầu xin phép các bạn cho tôi lan man chút, từ cái thời tôi còn nhỏ tụt quần đá banh ấy, thú thật là tôi mê con gái từ lúc ấy rồi chứ chẳng đợi đến cấp 3 hay đại học gì cả, nhờ vậy mà ít nhiều gì sau này tôi mới gặp được người yêu bây giờ, nên các bác chịu khó theo dõi nhé!
78
+ Trời sinh người ta học giỏi, thể thao giỏi, hát hay, đàn hay, nhiều tính hay lắm…tôi thì trời sinh tôi cái tính mê con gái, thế nên từ lớp 2 tôi đã động lòng phàm rồi, cơ mà lúc ấy chưa có gì bậy bạ đâu, cái sự đen tối nó chỉ tăng dần theo thời gian. Để tôi tóm gọn vài dòng về cái thời tuyệt vời ấy cho các bạn biết, lúc nhỏ vui lắm!
79
+ Lớp 1: Chưa có gì cả đâu, đi học mấy ngày đầu còn sợ vãi linh hồn ra, gái đâu mà để ý.
80
+ Lớp 2: Đây, vào lớp 2, được xếp ngồi gần nhỏ bạn lớp trưởng, lúc đầu tôi cũng chả có ý gì sất. Chỉ là em ấy hay đem kẹo mời tôi ăn, hình như nhà em ấy là tiệm bánh kẹo. Sướng, ngày nào cũng có bánh kẹo ăn, thế là tôi thấy thinh thích em này, mà lại là lớp trưởng nữa, có gì tôi nói chuyện trong lớp thì em ấy cũng không mách cô. Đấy, cái tình cảm này gọi là tình cảm chân thành, không vụ lợi, hề hề! Cơ mà hết học kỳ 1 thì xảy ra chuyện động trời, rồi tôi bị chuyển chỗ, và em cũng làm mặt lạnh với tôi luôn!'''
81
+
82
+ # 单词数控制在768以内
83
+ # Đảm bảo số từ dưới 768
84
+ assert len(text.split()) < 768
85
+
86
+ template = f'<|im_start|>system\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\n<|im_start|>user\n翻译成中文:\n{text}<|im_end|>\n<|im_start|>assistant\n'
87
+
88
+ outputs = llm.generate(template, sampling_params=sampling_params)
89
+
90
+ response = outputs[0].outputs[0].text
91
+ print(response)
92
+ ```
93
+
94
+ ## Transformers
95
+
96
+ - 中翻越
97
+ - Dịch Trung Việt
98
+ ```python
99
+ from transformers import AutoModelForCausalLM, AutoTokenizer
100
+ from transformers.generation import GenerationConfig
101
+
102
+ model_path = 'CjangCjengh/WN-VN-14B-v0.2-GPTQ-Int4'
103
+ tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
104
+ model = AutoModelForCausalLM.from_pretrained(model_path, device_map='auto', trust_remote_code=True).eval()
105
+ model.generation_config = GenerationConfig.from_pretrained(model_path, trust_remote_code=True)
106
+
107
+ # 段落之间用\n分隔
108
+ # Giữa các đoạn văn dùng \n để phân tách
109
+ text = '''“痛!太痛了!”
110
+ “不要砍我啊,我真没想开后宫!我只是想给你们所有人一个家而已!我有什么错?”
111
+ 温柔的雨夜,竹叶漱漱落下。
112
+ 伴随着一阵头疼,许源从睡梦之中惊醒过来,睁开眼睛。
113
+ “我……我这是在哪里?”
114
+ 当他从痛苦之中清醒,瞳孔彻底聚焦,看清周围的环境之后,却是忍不住地愣在了原地。
115
+ 无外乎他惊讶。
116
+ 毕竟眼前的一切对于他来说的确是过于陌生了。
117
+ 由造价不菲的温润青玉饰以精致雕花而成的墙壁映入眼帘,布在天山雪蚕吐出的宝丝所编制成的窗户上的阵法将落入屋中的微薄月华炼化成丝丝缕缕的白色絮状灵气,石桌上摆放着一盏千年紫沉木灯,焰光于风中轻轻摇曳,让人仿佛置身于仙境之中。'''
118
+
119
+ # 文本长度控制在1024以内
120
+ # Đảm bảo độ dài văn bản dưới 1024 ký tự
121
+ assert len(text) < 1024
122
+
123
+ messages = [
124
+ {'role': 'user', 'content': f'翻译成越南语:\n{text}'}
125
+ ]
126
+
127
+ text = tokenizer.apply_chat_template(
128
+ messages,
129
+ tokenize=False,
130
+ add_generation_prompt=True
131
+ )
132
+
133
+ model_inputs = tokenizer([text], return_tensors='pt').to('cuda')
134
+
135
+ generated_ids = model.generate(
136
+ model_inputs.input_ids,
137
+ max_new_tokens=1024
138
+ )
139
+
140
+ generated_ids = [
141
+ output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
142
+ ]
143
+
144
+ response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
145
+ print(response)
146
+ ```
147
+
148
+ - 越翻中
149
+ - Dịch Việt Trung
150
+ ```python
151
+ from transformers import AutoModelForCausalLM, AutoTokenizer
152
+ from transformers.generation import GenerationConfig
153
+
154
+ model_path = 'CjangCjengh/WN-VN-14B-v0.2-GPTQ-Int4'
155
+ tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
156
+ model = AutoModelForCausalLM.from_pretrained(model_path, device_map='auto', trust_remote_code=True).eval()
157
+ model.generation_config = GenerationConfig.from_pretrained(model_path, trust_remote_code=True)
158
+
159
+ # 段落之间用\n分隔
160
+ # Giữa các đoạn văn dùng \n để phân tách
161
+ text = '''Chương đầu xin phép các bạn cho tôi lan man chút, từ cái thời tôi còn nhỏ tụt quần đá banh ấy, thú thật là tôi mê con gái từ lúc ấy rồi chứ chẳng đợi đến cấp 3 hay đại học gì cả, nhờ vậy mà ít nhiều gì sau này tôi mới gặp được người yêu bây giờ, nên các bác chịu khó theo dõi nhé!
162
+ Trời sinh người ta học giỏi, thể thao giỏi, hát hay, đàn hay, nhiều tính hay lắm…tôi thì trời sinh tôi cái tính mê con gái, thế nên từ lớp 2 tôi đã động lòng phàm rồi, cơ mà lúc ấy chưa có gì bậy bạ đâu, cái sự đen tối nó chỉ tăng dần theo thời gian. Để tôi tóm gọn vài dòng về cái thời tuyệt vời ấy cho các bạn biết, lúc nhỏ vui lắm!
163
+ Lớp 1: Chưa có gì cả đâu, đi học mấy ngày đầu còn sợ vãi linh hồn ra, gái đâu mà để ý.
164
+ Lớp 2: Đây, vào lớp 2, được xếp ngồi gần nhỏ bạn lớp trưởng, lúc đầu tôi cũng chả có ý gì sất. Chỉ là em ấy hay đem kẹo mời tôi ăn, hình như nhà em ấy là tiệm bánh kẹo. Sướng, ngày nào cũng có bánh kẹo ăn, thế là tôi thấy thinh thích em này, mà lại là lớp trưởng nữa, có gì tôi nói chuyện trong lớp thì em ấy cũng không mách cô. Đấy, cái tình cảm này gọi là tình cảm chân thành, không vụ lợi, hề hề! Cơ mà hết học kỳ 1 thì xảy ra chuyện động trời, rồi tôi bị chuyển chỗ, và em cũng làm mặt lạnh với tôi luôn!'''
165
+
166
+ # 单词数控制在768以内
167
+ # Đảm bảo số từ dưới 768
168
+ assert len(text.split()) < 768
169
+
170
+ messages = [
171
+ {'role': 'user', 'content': f'翻译成中文:\n{text}'}
172
+ ]
173
+
174
+ text = tokenizer.apply_chat_template(
175
+ messages,
176
+ tokenize=False,
177
+ add_generation_prompt=True
178
+ )
179
+
180
+ model_inputs = tokenizer([text], return_tensors='pt').to('cuda')
181
+
182
+ generated_ids = model.generate(
183
+ model_inputs.input_ids,
184
+ max_new_tokens=1024
185
+ )
186
+
187
+ generated_ids = [
188
+ output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
189
+ ]
190
+
191
+ response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
192
+ print(response)
193
+ ```
added_tokens.json ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "</tool_call>": 151658,
3
+ "<tool_call>": 151657,
4
+ "<|box_end|>": 151649,
5
+ "<|box_start|>": 151648,
6
+ "<|endoftext|>": 151643,
7
+ "<|file_sep|>": 151664,
8
+ "<|fim_middle|>": 151660,
9
+ "<|fim_pad|>": 151662,
10
+ "<|fim_prefix|>": 151659,
11
+ "<|fim_suffix|>": 151661,
12
+ "<|im_end|>": 151645,
13
+ "<|im_start|>": 151644,
14
+ "<|image_pad|>": 151655,
15
+ "<|object_ref_end|>": 151647,
16
+ "<|object_ref_start|>": 151646,
17
+ "<|quad_end|>": 151651,
18
+ "<|quad_start|>": 151650,
19
+ "<|repo_name|>": 151663,
20
+ "<|video_pad|>": 151656,
21
+ "<|vision_end|>": 151653,
22
+ "<|vision_pad|>": 151654,
23
+ "<|vision_start|>": 151652
24
+ }
config.json ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_attn_implementation_autoset": true,
3
+ "_name_or_path": "output_qwen3",
4
+ "architectures": [
5
+ "Qwen2ForCausalLM"
6
+ ],
7
+ "attention_dropout": 0.0,
8
+ "bos_token_id": 151643,
9
+ "eos_token_id": 151645,
10
+ "hidden_act": "silu",
11
+ "hidden_size": 5120,
12
+ "initializer_range": 0.02,
13
+ "intermediate_size": 13824,
14
+ "max_position_embeddings": 32768,
15
+ "max_window_layers": 70,
16
+ "model_type": "qwen2",
17
+ "num_attention_heads": 40,
18
+ "num_hidden_layers": 48,
19
+ "num_key_value_heads": 8,
20
+ "quantization_config": {
21
+ "bits": 4,
22
+ "damp_percent": 0.1,
23
+ "desc_act": false,
24
+ "group_size": 128,
25
+ "is_marlin_format": false,
26
+ "model_file_base_name": "model",
27
+ "model_name_or_path": null,
28
+ "quant_method": "gptq",
29
+ "static_groups": false,
30
+ "sym": true,
31
+ "true_sequential": true
32
+ },
33
+ "rms_norm_eps": 1e-06,
34
+ "rope_scaling": null,
35
+ "rope_theta": 1000000.0,
36
+ "sliding_window": null,
37
+ "tie_word_embeddings": false,
38
+ "torch_dtype": "float16",
39
+ "transformers_version": "4.47.1",
40
+ "use_cache": false,
41
+ "use_sliding_window": false,
42
+ "vocab_size": 152064
43
+ }
generation_config.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token_id": 151643,
3
+ "do_sample": true,
4
+ "eos_token_id": [
5
+ 151645,
6
+ 151643
7
+ ],
8
+ "pad_token_id": 151643,
9
+ "repetition_penalty": 1.05,
10
+ "temperature": 0.7,
11
+ "top_k": 20,
12
+ "top_p": 0.8,
13
+ "transformers_version": "4.44.2"
14
+ }
merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5df1f78dfe7466835f17af2cc173c8685ad083af62c0be610b0315389d32b99b
3
+ size 9992417944
quantize_config.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bits": 4,
3
+ "group_size": 128,
4
+ "damp_percent": 0.1,
5
+ "desc_act": false,
6
+ "static_groups": false,
7
+ "sym": true,
8
+ "true_sequential": true,
9
+ "model_name_or_path": null,
10
+ "model_file_base_name": "model",
11
+ "is_marlin_format": false,
12
+ "quant_method": "gptq"
13
+ }
special_tokens_map.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ "<|im_start|>",
4
+ "<|im_end|>",
5
+ "<|object_ref_start|>",
6
+ "<|object_ref_end|>",
7
+ "<|box_start|>",
8
+ "<|box_end|>",
9
+ "<|quad_start|>",
10
+ "<|quad_end|>",
11
+ "<|vision_start|>",
12
+ "<|vision_end|>",
13
+ "<|vision_pad|>",
14
+ "<|image_pad|>",
15
+ "<|video_pad|>"
16
+ ],
17
+ "eos_token": {
18
+ "content": "<|im_end|>",
19
+ "lstrip": false,
20
+ "normalized": false,
21
+ "rstrip": false,
22
+ "single_word": false
23
+ },
24
+ "pad_token": {
25
+ "content": "<|endoftext|>",
26
+ "lstrip": false,
27
+ "normalized": false,
28
+ "rstrip": false,
29
+ "single_word": false
30
+ }
31
+ }
tokenizer_config.json ADDED
@@ -0,0 +1,209 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": false,
3
+ "add_prefix_space": false,
4
+ "added_tokens_decoder": {
5
+ "151643": {
6
+ "content": "<|endoftext|>",
7
+ "lstrip": false,
8
+ "normalized": false,
9
+ "rstrip": false,
10
+ "single_word": false,
11
+ "special": true
12
+ },
13
+ "151644": {
14
+ "content": "<|im_start|>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false,
19
+ "special": true
20
+ },
21
+ "151645": {
22
+ "content": "<|im_end|>",
23
+ "lstrip": false,
24
+ "normalized": false,
25
+ "rstrip": false,
26
+ "single_word": false,
27
+ "special": true
28
+ },
29
+ "151646": {
30
+ "content": "<|object_ref_start|>",
31
+ "lstrip": false,
32
+ "normalized": false,
33
+ "rstrip": false,
34
+ "single_word": false,
35
+ "special": true
36
+ },
37
+ "151647": {
38
+ "content": "<|object_ref_end|>",
39
+ "lstrip": false,
40
+ "normalized": false,
41
+ "rstrip": false,
42
+ "single_word": false,
43
+ "special": true
44
+ },
45
+ "151648": {
46
+ "content": "<|box_start|>",
47
+ "lstrip": false,
48
+ "normalized": false,
49
+ "rstrip": false,
50
+ "single_word": false,
51
+ "special": true
52
+ },
53
+ "151649": {
54
+ "content": "<|box_end|>",
55
+ "lstrip": false,
56
+ "normalized": false,
57
+ "rstrip": false,
58
+ "single_word": false,
59
+ "special": true
60
+ },
61
+ "151650": {
62
+ "content": "<|quad_start|>",
63
+ "lstrip": false,
64
+ "normalized": false,
65
+ "rstrip": false,
66
+ "single_word": false,
67
+ "special": true
68
+ },
69
+ "151651": {
70
+ "content": "<|quad_end|>",
71
+ "lstrip": false,
72
+ "normalized": false,
73
+ "rstrip": false,
74
+ "single_word": false,
75
+ "special": true
76
+ },
77
+ "151652": {
78
+ "content": "<|vision_start|>",
79
+ "lstrip": false,
80
+ "normalized": false,
81
+ "rstrip": false,
82
+ "single_word": false,
83
+ "special": true
84
+ },
85
+ "151653": {
86
+ "content": "<|vision_end|>",
87
+ "lstrip": false,
88
+ "normalized": false,
89
+ "rstrip": false,
90
+ "single_word": false,
91
+ "special": true
92
+ },
93
+ "151654": {
94
+ "content": "<|vision_pad|>",
95
+ "lstrip": false,
96
+ "normalized": false,
97
+ "rstrip": false,
98
+ "single_word": false,
99
+ "special": true
100
+ },
101
+ "151655": {
102
+ "content": "<|image_pad|>",
103
+ "lstrip": false,
104
+ "normalized": false,
105
+ "rstrip": false,
106
+ "single_word": false,
107
+ "special": true
108
+ },
109
+ "151656": {
110
+ "content": "<|video_pad|>",
111
+ "lstrip": false,
112
+ "normalized": false,
113
+ "rstrip": false,
114
+ "single_word": false,
115
+ "special": true
116
+ },
117
+ "151657": {
118
+ "content": "<tool_call>",
119
+ "lstrip": false,
120
+ "normalized": false,
121
+ "rstrip": false,
122
+ "single_word": false,
123
+ "special": false
124
+ },
125
+ "151658": {
126
+ "content": "</tool_call>",
127
+ "lstrip": false,
128
+ "normalized": false,
129
+ "rstrip": false,
130
+ "single_word": false,
131
+ "special": false
132
+ },
133
+ "151659": {
134
+ "content": "<|fim_prefix|>",
135
+ "lstrip": false,
136
+ "normalized": false,
137
+ "rstrip": false,
138
+ "single_word": false,
139
+ "special": false
140
+ },
141
+ "151660": {
142
+ "content": "<|fim_middle|>",
143
+ "lstrip": false,
144
+ "normalized": false,
145
+ "rstrip": false,
146
+ "single_word": false,
147
+ "special": false
148
+ },
149
+ "151661": {
150
+ "content": "<|fim_suffix|>",
151
+ "lstrip": false,
152
+ "normalized": false,
153
+ "rstrip": false,
154
+ "single_word": false,
155
+ "special": false
156
+ },
157
+ "151662": {
158
+ "content": "<|fim_pad|>",
159
+ "lstrip": false,
160
+ "normalized": false,
161
+ "rstrip": false,
162
+ "single_word": false,
163
+ "special": false
164
+ },
165
+ "151663": {
166
+ "content": "<|repo_name|>",
167
+ "lstrip": false,
168
+ "normalized": false,
169
+ "rstrip": false,
170
+ "single_word": false,
171
+ "special": false
172
+ },
173
+ "151664": {
174
+ "content": "<|file_sep|>",
175
+ "lstrip": false,
176
+ "normalized": false,
177
+ "rstrip": false,
178
+ "single_word": false,
179
+ "special": false
180
+ }
181
+ },
182
+ "additional_special_tokens": [
183
+ "<|im_start|>",
184
+ "<|im_end|>",
185
+ "<|object_ref_start|>",
186
+ "<|object_ref_end|>",
187
+ "<|box_start|>",
188
+ "<|box_end|>",
189
+ "<|quad_start|>",
190
+ "<|quad_end|>",
191
+ "<|vision_start|>",
192
+ "<|vision_end|>",
193
+ "<|vision_pad|>",
194
+ "<|image_pad|>",
195
+ "<|video_pad|>"
196
+ ],
197
+ "bos_token": null,
198
+ "chat_template": "{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\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>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\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\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n",
199
+ "clean_up_tokenization_spaces": false,
200
+ "eos_token": "<|im_end|>",
201
+ "errors": "replace",
202
+ "extra_special_tokens": {},
203
+ "model_max_length": 2048,
204
+ "pad_token": "<|endoftext|>",
205
+ "padding_side": "right",
206
+ "split_special_tokens": false,
207
+ "tokenizer_class": "Qwen2Tokenizer",
208
+ "unk_token": null
209
+ }
vocab.json ADDED
The diff for this file is too large to render. See raw diff