TencentCloudADPDevRel commited on
Commit
f800ccd
·
1 Parent(s): 54d2988

Upload Youtu-LLM-2B model with LFS assets

Browse files
.gitattributes CHANGED
@@ -4,6 +4,7 @@
4
  *.bz2 filter=lfs diff=lfs merge=lfs -text
5
  *.ckpt filter=lfs diff=lfs merge=lfs -text
6
  *.ftz filter=lfs diff=lfs merge=lfs -text
 
7
  *.gz filter=lfs diff=lfs merge=lfs -text
8
  *.h5 filter=lfs diff=lfs merge=lfs -text
9
  *.joblib filter=lfs diff=lfs merge=lfs -text
@@ -33,3 +34,9 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
4
  *.bz2 filter=lfs diff=lfs merge=lfs -text
5
  *.ckpt filter=lfs diff=lfs merge=lfs -text
6
  *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gguf filter=lfs diff=lfs merge=lfs -text
8
  *.gz filter=lfs diff=lfs merge=lfs -text
9
  *.h5 filter=lfs diff=lfs merge=lfs -text
10
  *.joblib filter=lfs diff=lfs merge=lfs -text
 
34
  *.zip filter=lfs diff=lfs merge=lfs -text
35
  *.zst filter=lfs diff=lfs merge=lfs -text
36
  *tfevents* filter=lfs diff=lfs merge=lfs -text
37
+ *.png filter=lfs diff=lfs merge=lfs -text
38
+ *.jpg filter=lfs diff=lfs merge=lfs -text
39
+ *.jpeg filter=lfs diff=lfs merge=lfs -text
40
+ *.gif filter=lfs diff=lfs merge=lfs -text
41
+ *.svg filter=lfs diff=lfs merge=lfs -text
42
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
LICENSE.txt ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Tencent is pleased to support the community by making Youtu-LLM available.
2
+
3
+ Copyright (C) 2025 Tencent. All rights reserved. Youtu-LLM IS NOT INTENDED FOR USE WITHIN THE EUROPEAN UNION.
4
+
5
+ Youtu-LLM is licensed under the License Terms of Youtu-LLM except for the third-party components listed below, which is licensed under different terms. Youtu-LLM does not impose any additional limitations beyond what is outlined in the respective licenses of these third-party components. Users must comply with all terms and conditions of original licenses of these third-party components and must ensure that the usage of the third party components adheres to all relevant laws and regulations.
6
+
7
+ For avoidance of doubts, Youtu-LLM refers to the inference enabling code, parameters and weights made publicly available by Tencent in accordance with the License Terms of Youtu-LLM in this repository.
8
+
9
+ Terms of the License Terms of Youtu-LLM:
10
+ --------------------------------------------------------------------
11
+
12
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
13
+ 0. Additional Territorial Limitation
14
+
15
+ *Youtu-LLM IS NOT INTENDED FOR USE WITHIN THE EUROPEAN UNION.*
16
+ IN THE EVENT OF ANY CONFLICT, THIS CLAUSE SHALL PREVAIL.
17
+
18
+ 1. Definitions.
19
+
20
+ "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
21
+
22
+ "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
23
+
24
+ "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
25
+
26
+ "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
27
+
28
+ "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
31
+
32
+ "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
33
+
34
+ "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
35
+
36
+ "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
37
+
38
+ "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
39
+
40
+ 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
41
+
42
+ 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
43
+
44
+ 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
45
+
46
+ You must give any other recipients of the Work or Derivative Works a copy of this License; and
47
+
48
+ You must cause any modified files to carry prominent notices stating that You changed the files; and
49
+
50
+ You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
51
+
52
+ If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
53
+
54
+ You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
55
+
56
+ 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
57
+
58
+ 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
59
+
60
+ 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
61
+
62
+ 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
63
+
64
+ 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
65
+
66
+ END OF TERMS AND CONDITIONS
README.md ADDED
@@ -0,0 +1,238 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: transformers
3
+ license: other
4
+ license_link: https://huggingface.co/tencent/Youtu-LLM-2B/LICENSE.txt
5
+ pipeline_tag: text-generation
6
+ base_model:
7
+ - tencent/Youtu-LLM-2B-Base
8
+ ---
9
+
10
+ <div align="center">
11
+
12
+ # <img src="assets/youtu-llm-logo.png" alt="Tencent Youtu Lab Logo" height="26px">
13
+
14
+ # <img src="assets/general_agentic_instruct.png" alt="Comparison between Youtu-LLM-2B and baselines" height="260px">
15
+
16
+ [📃 License](LICENSE.txt) • [💻 Code](https://github.com/TencentCloudADP/youtu-tip/youtu-llm) • [📑 Technical Report](https://github.com/TencentCloudADP/youtu-tip/youtu-llm/assets/Youtu-LLM_Technical_Report.pdf) • [📊 Benchmarks](#benchmarks) • [🚀 Getting Started](#quickstart) • [💡 Highlights](#highlights)
17
+
18
+ </div>
19
+
20
+ ## 🎯 Brief Introduction
21
+
22
+ **Youtu-LLM** is a new, small, yet powerful LLM, contains only 1.96B parameters, supports 128k long context, and has native agentic talents. On general evaluations, Youtu-LLM significantly outperforms SOTA LLMs of similar size in terms of Commonsense, STEM, Coding and Long Context capabilities; in agent-related testing, Youtu-LLM surpasses larger-sized leaders and is truly capable of completing multiple end2end agent tasks.
23
+
24
+ **Youtu-LLM** has the following features:
25
+ - Type: Autoregressive Causal Language Models with Dense [MLA](https://arxiv.org/abs/2405.04434)
26
+ - Release versions: [Base](https://huggingface.co/tencent/Youtu-LLM-2B-Base) and [Instruct](https://huggingface.co/tencent/Youtu-LLM-2B)
27
+ - Number of Parameters: 1.96B
28
+ - Number of Layers: 32
29
+ - Number of Attention Heads (MLA): 16 for Q/K/V
30
+ - MLA Rank: 1,536 for Q, 512 for K/V
31
+ - MLA Dim: 128 for QK Nope, 64 for QK Rope, and 128 for V
32
+ - Context Length: 131,072
33
+ - Vocabulary Size: 128,256
34
+
35
+ <a id="benchmarks"></a>
36
+
37
+ ## 📊 Performance Comparisons
38
+
39
+ ### Instruct Model
40
+ #### General Benchmarks
41
+ | Benchmark | DeepSeek-R1-Distill-Qwen-1.5B | Qwen3-1.7B | SmolLM3-3B | Qwen3-4B | DeepSeek-R1-Distill-Llama-8B | Youtu-LLM-2B |
42
+ | :--- | :---: | :---: | :---: | :---: | :---: | :---: |
43
+ | **Commonsense Knowledge Reasoning** | | | | | | |
44
+ | MMLU-Redux | 53.0% | 74.1% | 75.6% | **83.8%** | <u>78.1%</u> | 75.8% |
45
+ | MMLU-Pro | 36.5% | 54.9% | 53.0% | **69.1%** | 57.5% | <u>61.6%</u> |
46
+ | **Instruction Following & Text Reasoning** | | | | | | |
47
+ | IFEval | 29.4% | 70.4% | 60.4% | **83.6%** | 34.6% | <u>81.2%</u> |
48
+ | DROP | 41.3% | 72.5% | 72.0% | <u>82.9%<u> | 73.1% | **86.7%** |
49
+ | MUSR | 43.8% | 56.6% | 54.1% | **60.5%** | <u>59.7%</u> | 57.4% |
50
+ | **STEM** | | | | | | |
51
+ | MATH-500 | 84.8% | 89.8% | 91.8% | **95.0%** | 90.8% | <u>93.7%</u> |
52
+ | AIME 24 | 30.2% | 44.2% | 46.7% | **73.3%** | 52.5% | <u>65.4%</u> |
53
+ | AIME 25 | 23.1% | 37.1% | 34.2% | **64.2%** | 34.4% | <u>49.8%</u> |
54
+ | GPQA-Diamond | 33.6% | 36.9% | 43.8% | **55.2%** | 45.5% | <u>48.0%</u> |
55
+ | BBH | 31.0% | 69.1% | 76.3% | **87.8%** | <u>77.8%</u> | 77.5% |
56
+ | **Coding** | | | | | | |
57
+ | HumanEval | 64.0% | 84.8% | 79.9% | <u>95.4%<u> | 88.1% | **95.9%** |
58
+ | HumanEval+ | 59.5% | 76.2% | 74.7% | <u>87.8%</u> | 82.5% | **89.0%** |
59
+ | MBPP | 51.5% | 80.5% | 66.7% | **92.3%** | 73.9% | <u>85.0%</u> |
60
+ | MBPP+ | 44.2% | 67.7% | 56.7% | **77.6%** | 61.0% | <u>71.7%</u> |
61
+ | LiveCodeBench v6 | 19.8% | 30.7% | 30.8% | **48.5%** | 36.8% | <u>43.7%</u> |
62
+
63
+ #### Agentic Benchmarks
64
+ | Benchmark | Qwen3-1.7B | SmolLM3-3B | Qwen3-4B | Youtu-LLM-2B |
65
+ | :--- | :---: | :---: | :---: | :---: |
66
+ | **Deep Research** | | | | |
67
+ | GAIA | 11.4% | 11.7% | <u>25.5%</u> | **33.9%** |
68
+ | xbench | 11.7% | 13.9% | <u>18.4%</u> | **19.5%** |
69
+ | **Code** | | | | |
70
+ | SWE-Bench-Verified | 0.6% | <u>7.2%</u> | 5.7% | **17.7%** |
71
+ | EnConda-Bench | 10.8% | 3.5% | <u>16.1%</u> | **21.5%** |
72
+ | **Tool** | | | | |
73
+ | BFCL V3 | 55.5% | 31.5% | **61.7%** | <u>58.0%</u> |
74
+ | τ²-Bench | 2.6% | 9.7% | <u>10.9%</u> | **15.0%** |
75
+
76
+ <a id="quickstart"></a>
77
+
78
+ ## 🚀 Quick Start
79
+ This guide will help you quickly deploy and invoke the **Youtu-LLM-2B** model. This model supports "Reasoning Mode", enabling it to generate higher-quality responses through Chain of Thought (CoT).
80
+
81
+ ---
82
+
83
+ ### 1. Environment Preparation
84
+
85
+ Ensure your Python environment has the `transformers` library installed and that the version meets the requirements.
86
+
87
+ ```bash
88
+ pip install "transformers>=4.56" torch accelerate
89
+
90
+ ```
91
+
92
+ ---
93
+
94
+ ### 2. Core Code Example
95
+
96
+ The following example demonstrates how to load the model, enable Reasoning Mode, and use the `re` module to parse the "Thought Process" and the "Final Answer" from the output.
97
+
98
+ ```python
99
+ import re
100
+ import torch
101
+ from transformers import AutoTokenizer, AutoModelForCausalLM
102
+
103
+ # 1. Configure Model
104
+ model_id = "tencent/Youtu-LLM-2B"
105
+
106
+ # 2. Initialize Tokenizer and Model
107
+ tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
108
+ model = AutoModelForCausalLM.from_pretrained(
109
+ model_id,
110
+ device_map="auto",
111
+ trust_remote_code=True
112
+ )
113
+
114
+ # 3. Construct Dialogue Input
115
+ prompt = "Hello"
116
+ messages = [{"role": "user", "content": prompt}]
117
+
118
+ # Use apply_chat_template to construct input; set enable_thinking=True to activate Reasoning Mode
119
+ input_ids = tokenizer.apply_chat_template(
120
+ messages,
121
+ tokenize=True,
122
+ add_generation_prompt=True,
123
+ return_tensors="pt",
124
+ enable_thinking=True
125
+ ).to(model.device)
126
+
127
+ # 4. Generate Response
128
+ outputs = model.generate(
129
+ input_ids,
130
+ max_new_tokens=512,
131
+ do_sample=True,
132
+ temperature=1.0,
133
+ top_p=0.95,
134
+ repetition_penalty=1.05
135
+ )
136
+
137
+ # 5. Parse Results
138
+ full_response = tokenizer.decode(outputs[0], skip_special_tokens=True)
139
+
140
+ def parse_reasoning(text):
141
+ """Extract thought process within <think> tags and the subsequent answer content"""
142
+ thought_pattern = r"<think>(.*?)</think>"
143
+ match = re.search(thought_pattern, text, re.DOTALL)
144
+
145
+ if match:
146
+ thought = match.group(1).strip()
147
+ answer = text.split("</think>")[-1].strip()
148
+ else:
149
+ thought = "(No explicit thought process generated)"
150
+ answer = text
151
+ return thought, answer
152
+
153
+ thought, final_answer = parse_reasoning(full_response)
154
+
155
+ print(f"\n{'='*20} Thought Process {'='*20}\n{thought}")
156
+ print(f"\n{'='*20} Final Answer {'='*20}\n{final_answer}")
157
+
158
+ ```
159
+
160
+ ---
161
+
162
+ ### 3. Key Configuration Details
163
+
164
+ #### Reasoning Mode Toggle
165
+
166
+ Controlled via the `enable_thinking` parameter in the `apply_chat_template` method:
167
+
168
+ * **True (Recommended Default):** Activates Chain of Thought; ideal for complex logic and reasoning tasks.
169
+ * **False:** Outputs results directly; faster response time, suitable for simple conversations.
170
+
171
+ #### Recommended Decoding Parameters
172
+
173
+ Depending on your use case, we suggest adjusting the following hyperparameters for optimal generation:
174
+
175
+ | Parameter | Reasoning Mode | Normal Mode |
176
+ | --- | --- | --- |
177
+ | `do_sample` | `True` | `True` |
178
+ | `temperature` | **1.0** (Maintains creativity) | **0.7** (More stable results) |
179
+ | `top_p` | 0.95 | 0.8 |
180
+ | `top_k` | 20 | 20 |
181
+ | `repetition_penalty` | 1.05 | - |
182
+
183
+ > **Tip:** When using Reasoning Mode, a higher `temperature` helps the model perform deeper, more divergent thinking.
184
+
185
+ ---
186
+
187
+ ### 4. vLLM Deployment
188
+
189
+ We provide support for deploying the model using **vLLM 0.10.2**. The recommended Docker image is `vllm/vllm-openai:v0.10.2`.
190
+
191
+ #### Integration Steps
192
+ First, execute the following commands to integrate the Youtu-LLM model files into the vLLM framework.
193
+ *Note: Please extract our provided [modified vllm zip file](https://github.com/TencentCloudADP/youtu-tip/youtu-llm/vllm_deploy/modified_vllm.zip) first. Then, replace `<local_modified_vllm_path>` with the path to the extracted vllm directory, and replace `<vllm_path>` with the installation path of vLLM.*
194
+
195
+ ```bash
196
+ cp <local_modified_vllm_path>/0_10_2_official/youtu_llm.py <vllm_path>/vllm/model_executor/models/youtu_llm.py
197
+ cp <local_modified_vllm_path>/0_10_2_official/configuration_youtu.py <vllm_path>/vllm/model_executor/models/configuration_youtu.py
198
+ cp <local_modified_vllm_path>/0_10_2_official/__init__.py <vllm_path>/vllm/config/__init__.py
199
+ cp <local_modified_vllm_path>/0_10_2_official/registry.py <vllm_path>/vllm/model_executor/models/registry.py
200
+ ```
201
+
202
+ #### Service Startup
203
+ Once integrated, you can deploy the model using the following command:
204
+
205
+ ```bash
206
+ vllm serve <model_path> --trust-remote-code
207
+ ```
208
+
209
+ **Tool Call Support:**
210
+ To enable tool calling capabilities, please append the following arguments to the startup command:
211
+
212
+ ```bash
213
+ --enable-auto-tool-choice --tool-call-parser hermes
214
+ ```
215
+ ---
216
+
217
+ <a id="highlights"></a>
218
+
219
+ ## 💡 Highlights
220
+ ### Showcase of General Tasks
221
+
222
+ | User's query | Youtu-LLM-2B's response |
223
+ |---------|---------|
224
+ | 根据《个人信息保护法》,以下哪种措施是处理个人信息时必须遵循的原则以保护用户隐私权?<br>A:数据加密,确保个人信息在传输和存储时的安全<br>B:尽可能收集和保存用户的全部信息,以便提供更个性化的服务<br>C:公开所有收集的个人信息,让用户自行决定是否接受<br>D:未经用户同意,将个人信息转移给第三方 | 根据《个人信息保护法》的相关规定,处理个人信息时必须遵循的原则以保护用户隐私权,需结合法律的具体条款进行分析。<br>---<br>### **选项分析**<br>**A. 数据加密,确保个人信息在传输和存储时的安全** <br>《个人信息保护法》第二十一条明确规定:“处理者应当采取技术措施和其他必要措施,确保其处理的个人信息安全,防止个人信息泄露、篡改、丢失。” <br>数据加密是实现安全保障的重要技术手段,属于法律要求的**具体措施**,但其本质是落实“安全保障义务”这一原则。虽然“安全保障义务”是法律原则之一,但“数据加密”本身是该原则下的**具体操作手段**。 <br>**结论**:该选项符合法律对个人信息安全的强制性要求,是保护用户隐私权的重要措施。<br>**B. 尽可能收集和保存用户的全部信息,以便提供更个性化的服务** <br>《个人信息保护法》第十五条明确规��:“处理个人信息应当具有明确、合理的目的,并应当与处理目的直接相关,采取对个人权益影响最小的方式。” <br>“最小必要原则”是法律的核心原则之一,要求**仅收集与处理目的直接相关的信息**,而非“尽可能收集和保存全部信息”。 <br>**结论**:该选项明显违反“最小必要原则”,属于错误做法。<br>**C. 公开所有收集的个人信息,让用户自行决定是否接受** <br>《个人信息保护法》第十四条规定:“处理个人信息应当公开处理规则,明示处理目的、方式及范围。” <br>法律要求的是**公开处理规则**,而非“公开所有个人信息”。用户有权了解其信息被如何使用,但“公开所有信息”并非法定要求,且可能涉及过度收集。 <br>**结论**:该选项表述不准确,不符合法律规定。<br>**D. 未经用户同意,将个人信息转移给第三方** <br>《个人信息保护法》第十条明确规定:“处理个人信息应当取得个人同意;法律、行政法规另有规定的除外。” <br>未经用户同意转移个人信息属于违法行为,严重侵犯用户隐私权。 <br>**结论**:该选项明显违反法律,属于错误做法。<br>---<br>### **核心原则与选项对应**<br>《个人信息保护法》的核心原则包括: <br>1. **合法、正当、必要、诚信原则**(第十三条、第十四条) <br>2. **最小必要原则**(第十五条) <br>3. **公开透明原则**(第十四条) <br>4. **安全保障义务**(第二十一条) <br>其中,**安全保障义务**要求处理者采取必要措施保障个人信息安全,包括数据加密等具体技术手段。因此,**数据加密是落实安全保障义务的必要措施**,属于法律明确要求的实践操作。<br>---<br>### **结论**<br>在四个选项中,**只有A项符合《个人信息保护法》对个人信息处理的要求**,是保护用户隐私权必须遵循的措施。其他选项均存在明显违法或与法律原则相悖的问题。<br>**正确答案:A** |
225
+ | 设总体\$X\$的分布律为<br>\begin{tabular}{\|l\|l\|l\|l\|}<br>\hline\$X\$&-1&0&2\\<br>\hline\$P\$&\$\frac{1}{3}\theta\$&\$1-\frac{2}{3}\theta\$&\$\frac{1}{3}\theta\$\\<br>\hline<br>\end{tabular}<br>\$\left(X_{1},X_{2},\cdots,X_{n}\right)\$为来自总体的样本,设有以下四个统计量<br>(i)\$\frac{3}{n}\sum_{i=1}^{n}X_{i}\$,(ii)\$\left.X_{1}+\frac{2}{n-1}\right)_{i=2}^{n}X_{i}\$,(iii)\$\frac{3}{5n}\sum_{i=1}^{n}X_{i}^{2}\$,(iv)\$\frac{1}{3n}\sum_{i=1}^{n}X_{i}^{2}\$<br>在上述四个统计量中,是参数\$\theta\$的一致估计量的个数是____<br>A:0<br>B:2<br>C:1<br>D:3 | ### 题目分析<br>我们被给出一个总体 \$ X \$ 的分布律如下:<br>\$\$<br>\begin{array}{\|l\|l\|l\|}<br>\hline<br>X & -1 & 0 & 2 \\<br>\hline<br>P & \frac{1}{3}\theta & 1 - \frac{2}{3}\theta & \frac{1}{3}\theta \\<br>\hline<br>\end{array}<br>\$\$<br>其中 \$\theta \in [0, \frac{3}{2}]\$,因为所有概率必须非负。<br>样本 \$(X_1, X_2, \ldots, X_n)\$ 来自该总体,题目要求判断以下四个统计量中哪些是参数 \$\theta\$ 的**一致估计量**。<br>---<br>### 一致估计量的定义<br>一个估计量 \$\hat{\theta}^{(n)}\$ 是参数 \$\theta\$ 的**一致估计量**,当且仅当:<br>\$\$<br>\lim_{n \to \infty} P(\|\hat{\theta}^{(n)} - \theta\| > \varepsilon) = 0 \quad \text{对任意 } \varepsilon > 0<br>\$\$<br>即:随着样本容量 \$n\$ 增大,估计量依概率收敛于真实参数 \$\theta\$。<br>通常,若估计量是**渐近无偏**的(即 \$E[\hat{\theta}^{(n)}] \to \theta\$)且满足一致方差条件,则它是一致估计量。但即使不满足这些条件,只要依概率收敛即可。<br>---<br>### 计算关键期望值<br>我们先计算一些关键矩:<br>- \$ E[X] = (-1)\cdot \frac{1}{3}\theta + 0 \cdot \left(1 - \frac{2}{3}\theta\right) + 2 \cdot \frac{1}{3}\theta = \frac{1}{3}\theta \$<br>- \$ E[X^2] = 1 \cdot \frac{1}{3}\theta + 0 + 4 \cdot \frac{1}{3}\theta = \frac{5}{3}\theta \$<br>---<br>### 逐个分析统计量<br>#### (i) \$\frac{3}{n} \sum_{i=1}^{n} X_i\$<br>- 期望: <br> \$\$<br> E\left[\frac{3}{n} \sum_{i=1}^{n} X_i\right] = \frac{3}{n} \cdot n \cdot E[X] = 3 \cdot \frac{1}{3}\theta = \theta<br> \$\$<br>- 由大数定律,\$\frac{1}{n} \sum_{i=1}^{n} X_i \xrightarrow{P} E[X] = \frac{1}{3}\theta\$, <br> 所以 \$\frac{3}{n} \sum_{i=1}^{n} X_i \xrightarrow{P} \theta\$<br>✅ **结论:(i) 是一致估计量**<br>---<br>#### (ii) \$X_1 + \frac{2}{n-1} \sum_{i=2}^{n} X_i\$<br>- 表达式可写为:<br> \$\$<br> \hat{\theta}^{(ii)} = X_1 + \frac{2}{n-1} \sum_{i=2}^{n} X_i<br> \$\$<br>- 期望:<br> \$\$<br> E[\hat{\theta}^{(ii)}] = E[X_1] + \frac{2}{n-1} \cdot (n-1) E[X] = \frac{1}{3}\theta + 2 \cdot \frac{1}{3}\theta = \theta<br> \$\$<br>- 但注意:该统计量包含 \$X_1\$,这是一个**固定随机变量**,而 \$\frac{2}{n-1} \sum_{i=2}^{n} X_i \xrightarrow{P} \frac{2}{3}\theta\$, <br> 所以整��趋于 \$X_1 + \frac{2}{3}\theta\$,而 \$X_1\$ 不是 \$\theta\$ 的函数,因此极限不唯一。<br>❌ **结论:(ii) 不是一致估计量**<br>---<br>#### (iii) \$\frac{3}{5n} \sum_{i=1}^{n} X_i^2\$<br>- 期望:<br> \$\$<br> E\left[\frac{3}{5n} \sum_{i=1}^{n} X_i^2\right] = \frac{3}{5n} \cdot n \cdot E[X^2] = \frac{3}{5} \cdot \frac{5}{3}\theta = \theta<br> \$\$<br>- 由大数定律,\$\frac{1}{n} \sum_{i=1}^{n} X_i^2 \xrightarrow{P} E[X^2] = \frac{5}{3}\theta\$, <br> 所以 \$\frac{3}{5n} \sum_{i=1}^{n} X_i^2 \xrightarrow{P} \theta\$<br>✅ **结论:(iii) 是一致估计量**<br>---<br>#### (iv) \$\frac{1}{3n} \sum_{i=1}^{n} X_i^2\$<br>- 期望:<br> \$\$<br> E\left[\frac{1}{3n} \sum_{i=1}^{n} X_i^2\right] = \frac{1}{3n} \cdot n \cdot E[X^2] = \frac{1}{3} \cdot \frac{5}{3}\theta = \frac{5}{9}\theta \neq \theta<br> \$\$<br>- 极限为 \$\frac{5}{9}\theta \neq \theta\$,故不依概率收敛于 \$\theta\$<br>❌ **结论:(iv) 不是一致估计量**<br>---<br>### 最终结论<br>- 一致估计量有:(i) 和 (iii)<br>- 共 **2 个**<br>---<br>### 答案<br>\$\$<br>\boxed{B}<br>\$\$ |
226
+ | Which of the following statements does NOT accurately describe voting behavior in the United States?<br>A: Registered voters between the ages of 35 and 45 are more likely to vote than are those under the age of 21.<br>B: A registered voter who has attained his or her General Educational Development (GED) is less likely to vote than a high school dropout.<br>C: Registered voters are more likely to vote in general elections than they are in primary elections.<br>D: More women than men have voted in every presidential election since 1980. | The question asks which statement does NOT accurately describe voting behavior in the United States. Here's the analysis of each option:<br>- **Option A** states that registered voters aged 35–45 are more likely to vote than those under 21. This aligns with the general trend of increasing voter turnout with age, especially in the 30s and 40s. While younger voters (e.g., under 21) may have lower turnout, this statement is accurate. <br>- **Option B** claims that a registered voter with a GED is less likely to vote than a high school dropout. This contradicts the typical correlation between higher education and increased voter participation. GED holders generally have higher turnout than those with less education, making this statement **inaccurate**. <br>- **Option C** notes that registered voters are more likely to vote in general elections than primary elections. This is correct, as primaries are party-specific and often serve as a gateway to general elections, meaning registered voters are more likely to participate in the latter. <br>- **Option D** asserts that more women than men have voted in every presidential election since 1980. Historical data shows women have consistently had slightly higher turnout rates than men in presidential elections since 1980, making this statement accurate. <br>The incorrect statement is **B**, as it misrepresents the relationship between education and voting behavior. <br>\boxed{B} |
227
+ | Let \$T\$ be the set of all triples \$(a,b,c)\$ of positive integers for which there exist triangles with side lengths \$a,\$ \$b,\$ \$c.\$ Compute<br>\[\sum_{(a,b,c) \in T} \frac{2^a}{3^b 5^c}.\] | To solve the problem, we need to compute the sum over all triples \((a, b, c)\) of positive integers that form a valid triangle of the term \(\frac{2^a}{3^b 5^c}\). The set \(T\) consists of all such triples where \(a + b > c\), \(a + c > b\), and \(b + c > a\).<br>First, we express the sum as a double sum over \(a\) and \(b\), with the inner sum over \(c\) constrained by the triangle inequalities. For each \(a\) and \(b\), the valid \(c\) values are \(\|a - b\| + 1\) to \(a + b - 1\). The inner sum over \(c\) is a geometric series:<br>\[<br>\sum_{c=\|a - b\| + 1}^{a + b - 1} \frac{1}{5^c} = \frac{5}{4} \left( \frac{1}{5^{\|a - b\| + 1}} - \frac{1}{5^{a + b}} \right)<br>\]<br>Substituting this back into the original sum, we split it into two parts:<br>\[<br>\frac{5}{4} \left( \sum_{a=1}^\infty \sum_{b=1}^\infty \frac{2^a}{3^b} \left( \frac{1}{5^{\|a - b\| + 1}} - \frac{1}{5^{a + b}} \right) \right)<br>\]<br>We compute these sums separately. Let \(S_1\) be the first part and \(S_2\) be the second part.<br>For \(S_2\):<br>\[<br>S_2 = \sum_{a=1}^\infty \sum_{b=1}^\infty \frac{2^a}{3^b 5^{a + b}} = \left( \sum_{a=1}^\infty \left( \frac{2}{5} \right)^a \right) \left( \sum_{b=1}^\infty \left( \frac{1}{15} \right)^b \right) = \frac{2/3}{1 - 2/5} \cdot \frac{1/15}{1 - 1/15} = \frac{2}{3} \cdot \frac{1}{14} = \frac{1}{21}<br>\]<br>For \(S_1\), we split it into two cases \(a \geq b\) and \(a < b\). For \(a \geq b\):<br>\[<br>S_{1a} = \sum_{b=1}^\infty \sum_{k=0}^\infty \frac{2^{b + k}}{3^b 5^{k + 1}} = \frac{2}{3} \sum_{b=1}^\infty \left( \frac{2}{3} \right)^b \cdot \frac{1}{5} \sum_{k=0}^\infty \left( \frac{2}{5} \right)^k = \frac{2}{3} \cdot \frac{1}{3} \cdot 2 = \frac{2}{3}<br>\]<br>For \(a < b\):<br>\[<br>S_{1b} = \sum_{a=1}^\infty \sum_{m=1}^\infty \frac{2^a}{3^{a + m} 5^{m + 1}} = \frac{1}{5 \cdot 14} \sum_{a=1}^\infty \left( \frac{2}{3} \right)^a = \frac{1}{70} \cdot 2 = \frac{1}{35}<br>\]<br>Thus, \(S_1 = S_{1a} + S_{1b} = \frac{2}{3} + \frac{1}{35} = \frac{73}{105}\).<br>Combining these results:<br>\[<br>\frac{5}{4} \left( \frac{73}{105} - \frac{1}{21} \right) = \frac{5}{4} \left( \frac{73}{105} - \frac{5}{105} \right) = \frac{5}{4} \cdot \frac{68}{105} = \frac{17}{21}<br>\]<br>The final answer is:<br>\[<br>\boxed{\dfrac{17}{21}}<br>\] |
228
+
229
+ ### Showcase of Specialized Tasks
230
+
231
+ | Task | User's query | Youtu-LLM-2B's response |
232
+ |---------|---------|---------|
233
+ | **问题改写✍️** | Q1:南京欢乐谷的具体地址是哪里<br>A1:南京市欢乐谷景区(Nanjing Happy Valley),位于江苏省南京市栖霞区经济技术开发区欢乐谷北路8号。<br>Q2:现在适合去旅游吗<br>A2:旅游的适宜性取决于多个因素,包括目的地的疫情状况、旅行限制和个人的健康状况。由于我无法获取实时信息,建议你参考当地政府和卫生部门的指导,以了解目的地的旅行建议和限制。<br>Q3:南京欢乐谷和北京欢乐谷哪个好玩<br>A3:南京欢乐谷和北京欢乐谷都是知名的主题公园,各自都有其独特的魅力和特色。以下是一些比较它们的方面:<br>1. 规模和设施:北京欢乐谷是中国最大的主题公园之一,拥有广阔的面积和丰富多样的游乐设施。南京欢乐谷也是一座大型主题公园,虽然规模较小,但同样提供了多种娱乐项目和设施。<br>2. 地理位置:北京欢乐谷位于中国首都北京,周边有许多其他旅游景点和文化遗址,可以更方便地探索城市的其他景点。南京欢乐谷则位于江苏省南京市,周边也有一些历史和文化景点。<br>3. 主题和氛围:北京欢乐谷以欢乐、刺激和冒险为主题,有许多惊险刺激的游乐设施。南京欢乐谷则更注重家庭娱乐和亲子活动,提供了更多适合全家人一起玩乐的项目。<br>根据以上已知条件和问答内容,理解以下问题意图,并将问题以完整的形式输出<br>Q4:详细解释下第三点 | 详细解释下南京欢乐谷和北京欢乐谷比较中,主题和氛围的部分。 |
234
+ | **文本切分📋** | 脉冲电子围栏报警系统中文LCD控制键盘使用手册V1.0<br>第一章:脉冲电子围栏入侵报警系统简介<br>尊敬的客户:<br>您好!感谢您使用本公司产品,为了更好更快的安装及使用本产品,请在使用前认真仔细地阅读本手册。<br>脉冲电子围栏系统包括脉冲电子围栏主机以及对其控制的PC主机、中文LCD液晶键盘,本手册针对脉冲电子围栏中文LCD控制键盘适用,如是您有任问技术问题或需要技术支持,请联系我公司,我公司将竭力为您服务。<br>一、脉冲电子围栏主机概述<br>1.1绝对安全,根据GB/T7946-2008要求研发制造,并通过了公安部的形式检验。<br>1.2误报率低和适应性强<br>智能型脉冲电子围栏系统基本不受环境(如树木、小动物、震动等)和气候(如风、雪、雨、雾等)的<br>影响,不受地形高低和曲折程度的限制,误报率极低。<br>1.3阻挡和报警双重功能<br>智能型脉冲电子围栏系统的新概念是把企图入侵者阻挡在防区之外,不作案为目的。<br>能够实实在在给入<br>侵者一种威慑感和阻挡作用,使其不敢轻举妄动,达到防范为主,减少作案次数。<br>1.4连续工作、布防/撤防,按需设定。<br>1.6可根据用户要求和现场地理环境以及安全等级进行设计和安装。<br>并可和多种现代安防产品,例如电视监控系统、安防报警系统配套使用,以提高系统的安全防范等级。<br>1.7绝对安全及报警感知性<br>传统的高压脉冲电网警戒系统没有报警感知功能,仅仅以高压、大电流的方式阻止入侵者,极易造成入<br>侵者伤残,甚至死亡等严重后果。<br>智能型脉冲电子围栏系统采用了低能量的脉冲高压(5\~10KV)。<br>由于能量<br>极低且作用时间极为短暂,因而对人体不会造成伤害。<br>一旦触及,也会因直接有触电感而离开。<br>二、中文LCD控制键盘特点及性能参数<br>功能特点:<br>1.可接128台脉冲电子围栏,中文液晶显示,两路RS485总线通讯接口,方便现场安装施工;<br>2.采用中文液晶显示,显示直观,操作方便<br>3.可同时远程控制128台高压脉冲围栏控制器<br>4.可以实时显示和控制各围栏控制器的状态(脉冲电压幅值、布防/撤防状态)<br>5.报警时显示对应防区的报警类型(防拆、短路、断线、短接),同时有声音提示<br>6.一键布/撤防功能<br>7.可以查询报警历史记录.<br>8.可以实时显示线上电压<br>9.可查询操作记录防止管理人员对系统乱撤防等;<br>10.可控制前端继电器模块输出信号;<br>11.支持遥控器高,低压布防,撤防,复位等;<br>12.六个LED指示灯显示系��工作状态;<br>13.自带一路12V800MA电压报警输出及一路常开常闭信号可选输出;<br>14.可存储100条报警记录,及100条操作记录;<br>技术参数:<br>尺寸(长x宽x厚):19.5x14x2.9cm<br>重量:250克<br>工作环境:-20℃ +50℃;-0-85%湿度<br>工作电压:直流:12伏\~16伏<br>工作电流(直流):静态50毫安;报警100毫安<br>中文液晶显示,显示控制设备的各类信息,包括报警、状态等。<br>第二章:中文LCD控制键盘说明<br>一.中文LCD控制键盘面板示意图:<br>(中文LCD控制键盘图)<br>图片占位符<br>1.正常有电状态时,电源指示灯亮<br>2.系统运行时,运行指示灯亮<br>3.键盘布防时,布防指示灯亮<br>4.系统有报警时,报警指示灯亮<br>5.有无线遥控器的控制信号时,信号指示灯亮<br>二.接线端口<br>1.RS485通讯口2:键盘第二二路485 通讯接口;<br>2.RS485通讯口1:键盘第一路485通讯接口;<br>3. 12V, GND:为键盘12V供电接入口;<br>4.开关量:键盘报警开关量输出接口(常开,常闭可选,在键盘内部继电器旁的JP跳针);<br>5.警号输出接口:"+"接警号正极,"一"接警号负极;<br>(接线端口示意图)<br>图片占位符<br>第三章:编程设置<br>注:系统初始密码为:8888;安装调试完成后,请第一时间修改系统密码!<br>一.系统菜单项及编程设置<br>1.1系统上电初始化界面,显示公司名称及欢迎界面:<br>图片占位符<br>(欢迎使用界面)<br>1.2 报警信息显示界面及防区状态循环界面:<br>(防区状态循环界面)<br>图片占位符<br>图片占位符<br>(报警信息显示界面)<br>在此两界面下,按"↑""↓"键可来回切换;在报警界面下,Alarm:后面的数字表示当前的防区报警数量;All:后面的数字表示系统总共防区数量。<br>1.3系统功能参数设置:<br>按下键盘上的"菜单"键后,可调出进入至"设置系统参数"主界面;如下图:<br>图片占位符<br>此时光标条产生背景对比度,以示当时选定的菜单项;此时按下"确定"键后,提示输入密码:输入完密码后即可进入到"设置系统参数"的二级菜单页;如下图:<br>图片占位符<br>(输入密码界面,密码为4位,输入正确后自动进入二级菜单)<br>图片占位符<br>(设置系统参数二级菜单界面)<br>1.4防区设置(增加/删除防区)<br>在"设置系统参数"菜单下,通过按"↓"键,选中"防区设置"后,按"确定"键进入菜单;如下图:<br>图片占位符<br>(防区设置界面)<br>态;<br>1.4.1增加防区<br>***,按"确定"键后即可增加相应编号的防区,反复操作即可增加更多的防区;如下图:<br>图片占位符<br>(增加防区界面)<br>1.4.2删除防区<br>在"防区设置界面"通过"↑""↓"键选中预删除的防区号,按一下键盘上的"删除"键后,弹出删除提示菜单后,按键盘上的"确定"键后即可删除当前防区;如下图:<br>图片占位符<br>(删除防区界面)<br>1.5快速布撤防操作<br>在"设置系统参数"菜单下,通过按"↓"键,选择"快速布撤防操作"后,按下"确定"键后进入至"快速布撤防操作"菜单,此时再通过"↑""↓"键选中预对围栏系统进行的操作后按下"确定"键即可;如下图:<br>图片占位符<br>(快速布撤防界面)<br>1.6单防区操作<br>在"设置系统参数"菜单下,通过"↑""↓"键选择"单防区操作"后,按下"确定"键后进入至"单防区操作"菜单,如下图:<br>图片占位符<br>(单防区操作界面)<br>在"单防区操作"界面,通过"↑""↓"键定位光标,输入预单防区操作的防区号:10(假设值),然后按"↓"键将光标下移到电压设置行:(按"2"为高压,"1"为低压);再按"↓"键将光标下移到设置状态行:(按"0"为撤防,"1"为布防),再按"确定"键即可对前端对应防区号的围栏主机进行相应的操作。<br>1.7定时布撤防设置<br>在"设置系统参数"菜单下,通过""键选择"定时布撤防设置"后,按下"确定"键后进入至"定时布撤防设置"菜单,如下图:<br>图片占位符<br>(定时布撤防设置界面)<br>通过"↑""↓"键可移动光标,输入预计的时间段;移至时间段最未端时,通过按下"0/1/2/3"键设置该时间段要进行的定时操作("0"=不操作,"1"=高压布防,"2"=低压布防,"3"=撤防);<br>1.8触发时间设置<br>在"设置系统参数"菜单下,通过"↑""↓"键选择"触发时间设置"后,按下"确定"键后进入至"触发时间设置"菜单,如下图:<br>图片占位符<br>(触发时间设置界面)<br>输入需设置围栏主机报警触发的时间参数(以秒为单位,最大3位数)后按下"确定"键即可,按"取消"键可退格时间参数重新输入时间。<br>1.9报警时间设置<br>在"设置系统参数"菜单下,通过"键选择"报警时间设置"后,按下"确定"键后进入至"报警时间设置"菜单,如下图:<br>图片占位符<br>(报警时间设置界面)<br>输入需设置围栏主机及中文LCD控制键盘报警的时间参数(以���为单位,最大3位数)后按下"确定"键即可,按"取消"键可退格时间参数重新输入时间。<br>报警时间参数即为前端每台围栏主机的报警后自动<br>恢复的时间值及中文控制键盘的报警时间。<br>1.10防区号设置<br>在"设置系统参数"菜单下,通过"↑""↓"键选择"防区号设置"后,按下"确定"键后进入至"防区号设置"菜单,如下图:<br>图片占位符<br>(防区号设置界面)<br>通过"↑""↓"键移光标,输入旧防区号及新防区号后,按下"确定"即可将前端围栏主机的旧防区号改成新的防区号(注:假设前端围栏主机的防区号为"1",要改成新的防区号为"2",此时在此界面旧防区号输入:1,新防区号输入:2,确定完后,原先防区号为"1"的围栏主机就变成了防区号为"2")。<br>1.11键盘模式设置<br>在"设置系统参数"菜单下,通过"↑键选择"键盘模式设置"后,按下"确定"键后进入至"键盘模式设置"菜单,如下图:<br>图片占位符<br>(键盘模式设置界面)<br>通过"↑""↓"键移光标,输入键盘的编号:后按下"确定"键光标移动至键盘模式行,按下"0"表示将此键盘设置为从键盘模式,按下"1"表示将此键盘设置为主键盘模式(注:"0"=从键盘,"1"=主键盘,从键盘只能显示防区状态及防区报警信息,不能对整个系统进行布防,撤防等操作);<br>1.12时间设置<br>在"设置系统参数"菜单下,通过按"↑""↓"键选择"时间设置"后,按下"确定"键后进入至"时间设置"菜单,如下图:<br>图片占位符<br>(时间设置界面)<br>通过按"↑""↓"键移动光标,输入相应的时间年,月,日,小时,分钟后,按下"确定"键,设置时间完毕。<br>1.13密码设置<br>在"设置系统参数"菜单下,通过按"↑""↓"键选择"密码设置"后,按下"确定"键后进入至"密码设置"菜单,如下图:<br>图片占位符<br>(密码设置界面)<br>输入新的4位密码:\*\*\*\*,,输错密码值时,可按"取消"键退格删除数字以重新输入新的密码,再按"确定"键完成密码的修改;<br>1.14恢复出厂时设置<br>在"设置系统参数"菜单下,通过按"↑""↓"键选择"恢复出厂时设置"后,按下"确定"键后进入至"恢复出厂时设置"菜单,如下图:<br>图片占位符<br>(恢复出厂时设置界面)<br>注:按下"确定"键即可将键盘的所有参数恢复至出厂默认参数;请在厂家的指导下谨慎操作!<br>1.15删除报警记录<br>在主菜单下,通过按"↑""↓"键选择"删除报警记录"后,按下"确定"键后提示输入密码:\*\*\*\* ,输入正确密码后,进入至"确定删除所有记录?"界面,按下"确定"键后,删除成功同时提示"无更多记录";如下图:<br>图片占位符<br>1.16删除操作记录<br>(删除记录确定界面)<br>在主菜单下,通过按"↑""↓"键选择"删除操作记录"后,按下"确定"键后提示输入密码:\*\*\*\*,输入正确密码后,进入至"确定删除所有记录?"界面,按下"确定"键后,删除成功同时提示"无更多记录";如下图:<br>图片占位符<br>(删除记录确定界面)<br>第四章:系统日常操作<br> 注:系统初始密码为:8888;安装调试完成后,请第一时间修改系统密码!<br>一.快速高低压布防<br>在系统"防区状态循环界面"或者"报警信息显示界面"下,如果系统当前菜单页不在此两界面下时,可通过按"菜单"键来切换至"防区状态循环界面"和"报警信息显示界面";然后按"布防"键后,提示输入密码:\*\*\*\*即可进入"快速布防"菜单页;此时通过按"↑""↓"键选中需要进行"快速高压布防"或者"快速低压布防"后,按下"确定"键即可对整个系统进行相应的高压/低压布防操作;如下图:<br>图片占位符<br>二.快速撤防<br>(快速布防界面)<br>在系统"防区状态循环界面"或者"报警信息显示界面"下,如果系统当前菜单页不在此两界面下时,可通过按"菜单"键来切换至"防区状态循环"界面和"报警信息显示"界面;然后按"撤防"键后,提示输入密码:\*\*\*\*即可进入至"快速撤防"菜单页;按下"确定"键即可对整个系统进行相应的撤防操作;如下图:<br>图片占位符<br>三.报警复位<br>(快速撤防界面)<br>当系统前端有围栏主机或者地址模块防区被触发时,键盘自动切换到"报警信息显示"界面,如下图:<br>"报警信息显示"显示了当前的报警防区数量,及报警的触发条件(防拆,短路,断线,短接,模块防区报警);在报警触发时,键盘产生报警输出,同时前端围栏主机输出12V电压信号和开关量信号,此时按下"复位"键后,键盘报警恢复正常,同时前端围栏主机也恢复正常状态;且LCD控制键盘界面显示"当前无报警防区";如下图:<br>图片占位符<br>四:无线遥控器快速操作<br>下图:随金可以过过出厂围置药4继无线境的网时隔统进行"南打用用中限,围际,发位"���作:<br>图片占位符<br>五:报警记录查询<br>按下"菜单"键,让键盘切换到一级主菜下,通过"↑""↓"键选中"报警记录查询"即可进入报警查询菜单,此时显示当前最新一条报警的信息,可通过"↑""↓"键一条一条的查询;如下图:<br>图片占位符 | 脉冲电子围栏报警系统中文LCD控制键盘使用手册V1.0<br><span style="color: #3498db;">`#` </span>第一章:脉冲电子围栏入侵报警系统简介<br><span style="color: #3498db;">`##` </span>尊敬的客户:<br>您好!感谢您使用本公司产品,为了更好更快的安装及使用本产品,请在使用前认真仔细地阅读本手册。<br>脉冲电子围栏系统包括脉冲电子围栏主机以及对其控制的PC主机、中文LCD液晶键盘,本手册针对脉冲电子围栏中文LCD控制键盘适用,如是您有任问技术问题或需要技术支持,请联系我公司,我公司将竭力为您服务。<br><span style="color: #3498db;">`##` </span>一、脉冲电子围栏主机概述<br>1.1绝对安全,根据GB/T7946-2008要求研发制造,并通过了公安部的形式检验。<br>1.2误报率低和适应性强<br>智能型脉冲电子围栏系统基本不受环境(如树木、小动物、震动等)和气候(如风、雪、雨、雾等)的<br>影响,不受地形高低和曲折程度的限制,误报率极低。<br>1.3阻挡和报警双重功能<br>智能型脉冲电子围栏系统的新概念是把企图入侵者阻挡在防区之外,不作案为目的。<br>能够实实在在给入<br>侵者一种威慑感和阻挡作用,使其不敢轻举妄动,达到防范为主,减少作案次数。<br>1.4连续工作、布防/撤防,按需设定。<br>1.6可根据用户要求和现场地理环境以及安全等级进行设计和安装。<br>并可和多种现代安防产品,例如电视监控系统、安防报警系统配套使用,以提高系统的安全防范等级。<br>1.7绝对安全及报警感知性<br>传统的高压脉冲电网警戒系统没有报警感知功能,仅仅以高压、大电流的方式阻止入侵者,极易造成入<br>侵者伤残,甚至死亡等严重后果。<br>智能型脉冲电子围栏系统采用了低能量的脉冲高压(5\~10KV)。<br>由于能量<br>极低且作用时间极为短暂,因而对人体不会造成伤害。<br>一旦触及,也会因直接有触电感而离开。<br><span style="color: #3498db;">`##` </span>二、中文LCD控制键盘特点及性能参数<br><span style="color: #3498db;">`###` </span>功能特点:<br>1.可接128台脉冲电子围栏,中文液晶显示,两路RS485总线通讯接口,方便现场安装施工;<br>2.采用中文液晶显示,显示直观,操作方便<br>3.可同时远程控制128台高压脉冲围栏控制器<br>4.可以实时显示和控制各围栏控制器的状态(脉冲电压幅值、布防/撤防状态)<br>5.报警时显示对应防区的报警类型(防拆、短路、断线、短接),同时有声音提示<br>6.一键布/撤防功能<br>7.可以查询报警历史记录.<br>8.可以实时显示线上电压<br>9.可查询操作记录防止管理人员对系统乱撤防等;<br>10.可控制前端继电器模块输出信号;<br>11.支持遥控器高,低压布防,撤防,复位等;<br>12.六个LED指示灯显示系统工作状态;<br>13.自带一路12V800MA电压报警输出及一路常开常闭信号可选输出;<br>14.可存储100条报警记录,及100条操作记录;<br><span style="color: #3498db;">`###` </span>技术参数:<br>尺寸(长x宽x厚):19.5x14x2.9cm<br>重量:250克<br>工作环境:-20℃ +50℃;-0-85%湿度<br>工作电压:直流:12伏\~16伏<br>工作电流(直流):静态50毫安;报警100毫安<br>中文液晶显示,显示控制设备的各类信息,包括报警、状态等。<br><span style="color: #3498db;">`#` </span>第二章:中文LCD控制键盘说明<br><span style="color: #3498db;">`##` </span>一.中文LCD控制键盘面板示意图:<br>(中文LCD控制键盘图)<br>图片占位符<br>1.正常有电状态时,电源指示灯亮<br>2.系统运行时,运行指示灯亮<br>3.键盘布防时,布防指示灯亮<br>4.系统有报警时,报警指示灯亮<br>5.有无线遥控器的控制信号时,信号指示灯亮<br><span style="color: #3498db;">`##` </span>二.接线端口<br>1.RS485通讯口2:键盘第二二路485 通讯接口;<br>2.RS485通讯口1:键盘第一路485通讯接口;<br>3. 12V, GND:为键盘12V供电接入口;<br>4.开关量:键盘报警开关量输出接口(常开,常闭可选,在键盘内部继电器旁的JP跳针);<br>5.警号输出接口:"+"接警号正极,"一"接警号负极;<br>(接线端口示意图)<br>图片占位符<br><span style="color: #3498db;">`#` </span>第三章:编程设置<br>注:系统初始密码为:8888;安装调试完成后,请第一时间修改系统密码!<br><span style="color: #3498db;">`##` </span>一.系统菜单项及编程设置<br><span style="color: #3498db;">`###` </span>1.1系统上电初始化界面,显示公司名称及欢迎界面:<br>图片占位符<br>(欢迎使用界面)<br><span style="color: #3498db;">`###` </span>1.2 报警信息显示界面及防区状态循环界面:<br>(防区状态循环界面)<br>图片占位符<br>图片占位符<br>(报警信息显示界面)<br>在此两界面下,按"↑""↓"键可来回切换;在报警界面下,Alarm:后面的数字表示当前的防区报警数量;All:后面的数字表示系统总共防区数量。<br><span style="color: #3498db;">`###` </span>1.3系统功能参数设置:<br>按下键盘上的"菜单"键后,可调出进入至"设置系统参数"主界面;如下图:<br>图片占位符<br>此时光标条产生背景对比度,以示当时选定的菜单项;此时按下"确定"键后,提示输入密码:输入完密码后即可进入到"设置系统参数"的二级菜单页;如下图:<br>图片占位符<br>(输入密码界面,密码为4位,输入正确后自动进入二级菜单)<br>图片占位符<br>(设置系统参数二级菜单界面)<br><span style="color: #3498db;">`###` </span>1.4防区设置(增加/删除防区)<br>在"设置系统参数"菜单下,通过按"↓"键,选中"防区设置"后,按"确定"键进入菜单;如下图:<br>图片占位符<br>(防区设置界面)<br>态;<br><span style="color: #3498db;">`####` </span>1.4.1增加防区<br>***,按"确定"键后即可增加相应编号的防区,反复操作即可增加更多的防区;如下图:<br>图片占位符<br>(增加防区界面)<br><span style="color: #3498db;">`####` </span>1.4.2删除防区<br>在"防区设置界面"通过"↑""↓"键选中预删除的防区号,按一下键盘上的"删除"键后,弹出删除提示菜单后,按键盘上的"确定"键后即可删除当前防区;如下图:<br>图片占位符<br>(删除防区界面)<br><span style="color: #3498db;">`###` </span>1.5快速布撤防操作<br>在"设置系统参数"菜单下,通过按"↓"键,选择"快速布撤防操作"后,按下"确定"键后进入至"快速布撤防操作"菜单,此时再通过"↑""↓"键选中预对围栏系统进行的操作后按下"确定"键即可;如下图:<br>图片占位符<br>(快速布撤防界面)<br><span style="color: #3498db;">`###` </span>1.6单防区操作<br>在"设置系统参数"菜单下,通过"↑""↓"键选择"单防区操作"后,按下"确定"键后进入至"单防区操作"菜单,如下图:<br>图片占位符<br>(单防区操作界面)<br>在"单防区操作"界面,通过"↑""↓"键定位光标,输入预单防区操作的防区号:10(假设值),然后按"↓"键将光标下移到电压设置行:(按"2"为高压,"1"为低压);再按"↓"键将光标下移到设置状态行:(按"0"为撤防,"1"为布防),再按"确定"键即可对前端对应防区号的围栏主机进行相应的操作。<br><span style="color: #3498db;">`###` </span>1.7定时布撤防设置<br>在"设置系统参数"菜单下,通过""键选择"定时布撤防设置"后,按下"确定"键后进入至"定时布撤防设置"菜单,如下图:<br>图片占位符<br>(定时布撤防设置界面)<br>通过"↑""↓"键可移动光标,输入预计的时间段;移至时间段最未端时,通过按下"0/1/2/3"键设置该时间段要进行的定时操作("0"=不操作,"1"=高压布防,"2"=低压布防,"3"=撤防);<br><span style="color: #3498db;">`###` </span>1.8触发时间设置<br>在"设置系统参数"菜单下,通过"↑""↓"键选择"触发时间设置"后,按下"确定"键后进入至"触发时间设置"菜单,如下图:<br>图片占位符<br>(触发时间设置界面)<br>输入需设置围栏主机报警触发的时间参数(以秒为单位,最大3位数)后按下"确定"键即可,按"取消"键可退格时间参数重新输入时间。<br><span style="color: #3498db;">`###` </span>1.9报警时间设置<br>在"设置系统参数"菜单下,通过"键选择"报警时间设置"后,按下"确定"键后进入至"报警时间设置"菜单,如下图:<br>图片占位符<br>(报警时间设置界面)<br>输入需设置围栏主机及中文LCD控制键盘报警的时间参数(以秒为单位,最大3位数)后按下"确定"键即可,按"取消"键可退格时间参数重新输入时间。<br>报警时间参数即为前端每台围栏主机的报警后自动<br>恢复的时间值及中文控制键盘的报警时间。<br><span style="color: #3498db;">`###` </span>1.10防区号设置<br>在"设置系统参数"菜单下,通过"↑""↓"键选择"防区号设置"后,按下"确定"键后进入至"防区号设置"菜单,如下图:<br>图片占位符<br>(防区号设置界面)<br>通过"↑""↓"键移光标,输入旧防区号及新防区号后,按下"确定"即可将前端围栏主机的旧防区号改成新的防区号(注:假设前端围栏主机的防区号为"1",要改成新的防区号为"2",此时在此界面旧防区号输入:1,新防区号输入:2,确定完后,原先防区号为"1"的围栏主机就变成了防区号为"2")。<br><span style="color: #3498db;">`###` </span>1.11键盘模式设置<br>在"设置系统参数"菜单下,通过"↑键选择"键盘模式设置"后,按下"确定"键后进入至"键盘模式设置"菜单,如下图:<br>图片占位符<br>(键盘模式设置界面)<br>通过"↑""↓"键移光标,输入键盘的编号:后按下"确定"键光标移动至键盘模式行,按下"0"表示将此键盘设置为从键盘模式,按下"1"表示将此键盘设置为主键盘模式(注:"0"=从键盘,"1"=主键盘,从键盘只能显示防区状态及防区报警信息,不能对整个系统进行布防,撤防等操作);<br><span style="color: #3498db;">`###` </span>1.12时间设置<br>在"设置系统参数"菜单下,通过按"↑""↓"键选择"时间设置"后,按下"确定"键后进入至"时间设置"菜单,如下图:<br>图片占位符<br>(时间设置界面)<br>通过按"↑""↓"键移动光标,输入相应的时间年,月,日,小时,分钟后,按下"确定"键,设置时间完毕。<br><span style="color: #3498db;">`###` </span>1.13密码设置<br>在"设置系统参数"菜单下,通过按"↑""↓"键选择"密码设置"后,按下"确定"键后进入至"密码设置"菜单,如下图:<br>图片占位符<br><span style="color: #3498db;">`####` </span>(密码设置界面)<br>输入新的4位密码:\*\*\*\*,,输错密码值时,可按"取消"键退格删除数字以重新输入新的密码,再按"确定"键完成密码的修改;<br><span style="color: #3498db;">`###` </span>1.14恢复出厂时设置<br>在"设置系统参数"菜单下,通过按"↑""↓"键选择"恢复出厂时设置"后,按下"确定"键后进入至"恢复出厂时设置"菜单,如下图:<br>图片占位符<br>(恢复出厂时设置界面)<br>注:按下"确定"键即可将键盘的所有参数恢复至出厂默认参数;请在厂家的指导下谨慎操作!<br><span style="color: #3498db;">`###` </span>1.15删除报警记录<br>在主菜单下,通过按"↑""↓"键选择"删除报警记录"后,按下"确定"键后提示输入密码:\*\*\*\* ,输入正确密码后,进入至"确定删除所有记录?"界面,按下"确定"键后,删除成功同时提示"无更多记录";如下图:<br>图片占位符<br><span style="color: #3498db;">`###` </span>1.16删除操作记录<br>(删除记录确定界面)<br>在主菜单下,通过按"↑""↓"键选择"删除操作记录"后,按下"确定"键后提示输入密码:\*\*\*\*,输入正确密码后,进入至"确定删除所有记录?"界面,按下"确定"键后,删除成功同时提示"无更多记录";如下图:<br>图片占位符<br>(删除记录确定界面)<br><span style="color: #3498db;">`#` </span>第四章:系统日常操作<br>注:系统初始密码为:8888;安装调试完成后,请第一时间修改系统密码!<br><span style="color: #3498db;">`##` </span>一.快速高低压布防<br>在系统"防区状态循环界面"或者"报警信息显示界面"下,如果系统当前菜单页不在此两界面下时,可通过按"菜单"键来切换至"防区状态循环界面"和"报警信息显示界面";然后按"布防"键后,提示输入密码:\*\*\*\*即可进入"快速布防"菜单页;此时通过按"↑""↓"键选中需要进行"快速高压布防"或者"快速低压布防"后,按下"确定"键即可对整个系统进行相应的高压/低压布防操作;如下图:<br>图片占位符<br><span style="color: #3498db;">`##` </span>二.快速撤防<br>(快速布防界面)<br>在系统"防区状态循环界面"或者"报警信息显示界面"下,如果系统当前菜单页不在此两界面下时,可通过按"菜单"键来切换至"防区状态循环"界面和"报警信息显示"界面;然后按"撤防"键后,提示输入密码:\*\*\*\*即可进入至"快速撤防"菜单页;按下"确定"键即可对整个系统进行相应的撤防操作;如下图:<br>图片占位符<br><span style="color: #3498db;">`##` </span>三.报警复位<br>(快速撤防界面)<br>当系统前端有围栏主机或者地址模块防区被触发时,键盘自动切换到"报警信息显示"界面,如下图:<br>"报警信息显示"显示了当前的报警防区数量,及报警的触发条件(防拆,短路,断线,短接,模块防区报警);在报警触发时,键盘产生报警输出,同时前端围栏主机输出12V电压信号和开关量信号,此时按下"复位"键后,键盘报警恢复正常,同时前端围栏主机也恢复正常状态;且LCD控制键盘界面显示"当前无报警防区";如下图:<br>图片占位符<br><span style="color: #3498db;">`##` </span>四:无线遥控器快速操作<br>下图:随金可以过过出厂围置药4继无线境的网时隔统进行"南打用用中限,围际,发位"操作:<br>图片占位符<br><span style="color: #3498db;">`##` </span>五:报警记录查询<br>按下"菜单"键,让键盘切换到一级主菜下,通过"↑""↓"键选中"报警记录查询"即可进入报警查询菜单,此时显示当前最新一条报警的信息,可通过"↑""↓"键一条一条的查询;如下图:<br>图片占位符 |
235
+ | **Question Rewriting✍️** | Q1: What do the five mountains in China mean?<br>A1: China's Five Mountains refer to five famous peaks located in China, and they are:...<br>Q2: Among them, in which year Huashan was rated as an AAAAAA scenic spot...<br>A2:2011<br>根据以上已知条件和问答内容,理解以下问题意图,并将问题以完整的形式输出:<br>Q3:What about Mount Tai? | In which year was Mount Taishan rated as an AAAAA scenic spot. |
236
+ | **Text Segmentation📋** | LT-02A Infrared Thermometer Manual<br>1 Introduction<br>Thank you for choosing the LT-02A series temperature sensor.<br>The infrared temperature sensor can calculate the surface temperature of an object by measuring the infrared radiation emitted by the target without contact.<br>Non-contact temperature measurement is the biggest advantage of infrared thermometers, allowing users to easily measure targets that are difficult to access or are moving.<br>The LT-02A series temperature sensor is an integrated infrared temperature sensor where the sensor, optical system, and electronic circuitry are all housed within a stainless steel casing. The LT-02A series is easy to install, with standard threads on the metal casing for quick connection to mounting points. Additionally, the LT-02A series offers various options (such as air purgers, mounting brackets, adjustable mounting brackets, air purge protection sleeves, etc.) to meet the requirements of various working conditions.<br>2 Parameter Description<br>a. Basic Performance<br>Protection rating IP65 (NEMA-4)<br>Ambient temperature 0\~60°C<br>Storage temperature -20\~80°C<br>Relative humidity 10-95% (non-condensing)<br>Material Stainless steel<br>Cable length 1.5m (standard), other special specifications (customizable)<br>b. Electrical Parameters<br>Operating power supply 24 VDC<br>Maximum current 50mA<br>Output signal 4\~20mA or 0-5V linear<br>c. Measurement Parameters<br>Spectral range 8\~14μm<br>Temperature range 0\~200°C<br>Optical resolution 20:1<br>Response time 50 ms (95%)<br>Temperature measurement accuracy ±0.5% of reading or ±0.5°C, whichever is greater<br>Repeat accuracy ±0.5% of reading or ±0.5°C, whichever is greater Dimensions 113mm x φ18mm (length * diameter)<br>Emissivity 0.95 fixed<br>d. Optical Path Diagram<br>Image placeholder<br>3 Working Principle and Precautions<br>a. Infrared Temperature Measurement Principle<br>All objects emit infrared energy, and the radiation intensity varies with temperature.<br>Infrared thermometers generally use infrared radiation energy within the wavelength range of 0.8μm to 18μm.<br>An infrared temperature sensor is a photoelectric sensor that receives infrared radiation and converts it into an electrical signal, which is then processed through electronic circuit amplification, linearization, and signal processing to display or output temperature.<br>b. Maximum Distance and Size of the Measured Point.<br>The size of the target and the optical characteristics of the infrared thermometer determine the maximum distance between the target and the measurement head.<br>To avoid measurement errors, the target should ideally fill the field of view of the detector.<br>Therefore, the measured point should always be smaller than the object or at least the same size as the target.<br>C.<br>Ambient Temperature<br>The LT-02A series infrared temperature sensor can operate within an ambient temperature range of 0-60°C.<br>Otherwise, please select a cooling protection sleeve.<br>d. Lens Cleaning<br>The instrument's lens must be kept clean to avoid measurement errors or even lens damage caused by contaminants such as dust and smoke. If dust adheres to the lens, it can be wiped clean with lens paper dipped in anhydrous alcohol.<br>e. Electromagnetic Interference<br>To prevent electromagnetic interference, please ensure the following measures:<br>During installation, keep the infrared temperature sensor as far away as possible from sources of electromagnetic fields (such as electric motors, engines, high-power cables, etc.). If necessary, use a metal conduit.<br>4 Installation<br>a Mechanical Installation<br>The LT-02A series metal housing features an M18x1 thread, allowing for direct installation or installation via a mounting bracket. An adjustable mounting bracket facilitates easier adjustment of the measurement head.<br>When aligning the target with the measurement head, ensure the optical path is unobstructed.<br>b Electrical Installation Wiring<br>Table placeholder<br>For 4\~20mA analog signal output.<br>It uses a two-wire loop current output method. The connection to a display or controller has the following two typical applications (connection methods):<br>Display/controller internally provides 24V power supply<br>Image placeholder<br>5 Dimensions and Options<br>a. Dimensions<br>Image placeholder<br>Figure 5-1a Dimensions<br>Image placeholder<br>Figure 5-1b Dimensions<br>Image placeholder<br>Cooling Jacket Dimensions<br>Image placeholder<br>Air Purge Cooling Jacket<br>6 Packing List<br>Standard Accessories:<br>LT-02A series temperature sensor (with 1.5-meter cable), fixing nut, user manual.<br>Please check the product packaging for any damage. Immediately notify your local agent if any damage is found, and retain the damaged packaging for inspection.<br>You can find the product serial number on the product label.<br>Please provide the serial number when contacting customer service for maintenance, ordering parts, or repairs.<br>7 Maintenance<br>If you encounter any issues while using the LT-02A series temperature sensor, please contact our service department.<br>Our customer service team will provide technical support regarding temperature sensor setup, calibration procedures, and maintenance.<br>Experience shows that these issues can usually be resolved over the phone. Please contact our customer service before deciding to return the instrument.<br>8 Warranty<br>Each instrument undergoes quality inspection procedures. If any issues occur, contact your service provider immediately.<br>The instrument has a 12-month warranty from the date of shipment. After expiration, the manufacturer provides an additional 6-month warranty for repairs or component replacement.<br>Damage caused by unauthorized disassembly or improper use is not covered by the warranty.<br>During the warranty period, faulty instruments will be replaced, calibrated, or repaired free of charge, with shipping costs borne by the sender.<br>The manufacturer reserves the right to repair the instrument or replace components.<br>If the malfunction is due to user misuse, the user must bear the repair costs and may inquire about charges in advance. | LT-02A Infrared Thermometer Manual<br><span style="color: #3498db;">`#` </span>1 Introduction<br>Thank you for choosing the LT-02A series temperature sensor.<br>The infrared temperature sensor can calculate the surface temperature of an object by measuring the infrared radiation emitted by the target without contact.<br>Non-contact temperature measurement is the biggest advantage of infrared thermometers, allowing users to easily measure targets that are difficult to access or are moving.<br>The LT-02A series temperature sensor is an integrated infrared temperature sensor where the sensor, optical system, and electronic circuitry are all housed within a stainless steel casing.<br>The LT-02A series is easy to install, with standard threads on the metal casing for quick connection to mounting points.<br>Additionally, the LT-02A series offers various options (such as air purgers, mounting brackets, adjustable mounting brackets, air purge protection sleeves, etc.)<br>to meet the requirements of various working conditions.<br><span style="color: #3498db;">`#` </span>2 Parameter Description<br><span style="color: #3498db;">`##` </span>a. Basic Performance<br>Protection rating IP65 (NEMA-4)<br>Ambient temperature 0\~60°C<br>Storage temperature -20\~80°C<br>Relative humidity 10-95% (non-condensing)<br>Material Stainless steel<br>Cable length 1.5m (standard), other special specifications (customizable)<br><span style="color: #3498db;">`##` </span>b. Electrical Parameters<br>Operating power supply 24 VDC<br>Maximum current 50mA<br>Output signal 4\~20mA or 0-5V linear<br><span style="color: #3498db;">`##` </span>c. Measurement Parameters<br>Spectral range 8\~14μm<br>Temperature range 0\~200°C<br>Optical resolution 20:1<br>Response time 50 ms (95%)<br>Temperature measurement accuracy ±0.5% of reading or ±0.5°C, whichever is greater<br>Repeat accuracy ±0.5% of reading or ±0.5°C, whichever is greater Dimensions 113mm x φ18mm (length * diameter)<br>Emissivity 0.95 fixed<br><span style="color: #3498db;">`##` </span>d. Optical Path Diagram<br>Image placeholder<br><span style="color: #3498db;">`#` </span>3 Working Principle and Precautions<br><span style="color: #3498db;">`##` </span>a. Infrared Temperature Measurement Principle<br>All objects emit infrared energy, and the radiation intensity varies with temperature.<br>Infrared thermometers generally use infrared radiation energy within the wavelength range of 0.8μm to 18μm.<br>An infrared temperature sensor is a photoelectric sensor that receives infrared radiation and converts it into an electrical signal, which is then processed through electronic circuit amplification, linearization, and signal processing to display or output temperature.<br><span style="color: #3498db;">`##` </span>b. Maximum Distance and Size of the Measured Point.<br>The size of the target and the optical characteristics of the infrared thermometer determine the maximum distance between the target and the measurement head.<br>To avoid measurement errors, the target should ideally fill the field of view of the detector.<br>Therefore, the measured point should always be smaller than the object or at least the same size as the target.<br><span style="color: #3498db;">`##` </span>C.<br><span style="color: #3498db;">`##` </span>Ambient Temperature<br>The LT-02A series infrared temperature sensor can operate within an ambient temperature range of 0-60°C.<br>Otherwise, please select a cooling protection sleeve.<br><span style="color: #3498db;">`##` </span>d. Lens Cleaning<br>The instrument's lens must be kept clean to avoid measurement errors or even lens damage caused by contaminants such as dust and smoke.<br>If dust adheres to the lens, it can be wiped clean with lens paper dipped in anhydrous alcohol.<br><span style="color: #3498db;">`##` </span>e. Electromagnetic Interference<br>To prevent electromagnetic interference, please ensure the following measures:<br>During installation, keep the infrared temperature sensor as far away as possible from sources of electromagnetic fields (such as electric motors, engines, high-power cables, etc.).<br>If necessary, use a metal conduit.<br><span style="color: #3498db;">`#` </span>4 Installation<br><span style="color: #3498db;">`##` </span>a Mechanical Installation<br>The LT-02A series metal housing features an M18x1 thread, allowing for direct installation or installation via a mounting bracket.<br>An adjustable mounting bracket facilitates easier adjustment of the measurement head.<br>When aligning the target with the measurement head, ensure the optical path is unobstructed.<br><span style="color: #3498db;">`##` </span>b Electrical Installation Wiring<br>Table placeholder<br>For 4\~20mA analog signal output.<br>It uses a two-wire loop current output method.<br>The connection to a display or controller has the following two typical applications (connection methods):<br>Display/controller internally provides 24V power supply<br>Image placeholder<br><span style="color: #3498db;">`#` </span>5 Dimensions and Options<br><span style="color: #3498db;">`##` </span>a. Dimensions<br>Image placeholder<br>Figure 5-1a Dimensions<br>Image placeholder<br>Figure 5-1b Dimensions<br>Image placeholder<br>Cooling Jacket Dimensions<br>Image placeholder<br>Air Purge Cooling Jacket<br><span style="color: #3498db;">`#` </span>6 Packing List<br>Standard Accessories:<br>LT-02A series temperature sensor (with 1.5-meter cable), fixing nut, user manual.<br>Please check the product packaging for any damage.<br>Immediately notify your local agent if any damage is found, and retain the damaged packaging for inspection.<br>You can find the product serial number on the product label.<br>Please provide the serial number when contacting customer service for maintenance, ordering parts, or repairs.<br><span style="color: #3498db;">`#` </span>7 Maintenance<br>If you encounter any issues while using the LT-02A series temperature sensor, please contact our service department.<br>Our customer service team will provide technical support regarding temperature sensor setup, calibration procedures, and maintenance.<br>Experience shows that these issues can usually be resolved over the phone.<br>Please contact our customer service before deciding to return the instrument.<br><span style="color: #3498db;">`#` </span>8 Warranty<br>Each instrument undergoes quality inspection procedures.<br>If any issues occur, contact your service provider immediately.<br>The instrument has a 12-month warranty from the date of shipment.<br>After expiration, the manufacturer provides an additional 6-month warranty for repairs or component replacement.<br>Damage caused by unauthorized disassembly or improper use is not covered by the warranty.<br>During the warranty period, faulty instruments will be replaced, calibrated, or repaired free of charge, with shipping costs borne by the sender.<br>The manufacturer reserves the right to repair the instrument or replace components.<br>If the malfunction is due to user misuse, the user must bear the repair costs and may inquire about charges in advance.<br> |
237
+
238
+ > **Note**: For specialized tasks, in-domain post-training is further applied.
assets/general_agentic_instruct.png ADDED

Git LFS Details

  • SHA256: 93416b35f45fb33972740564cdf38b5c0ec74e6e305de47843bee152b6677357
  • Pointer size: 131 Bytes
  • Size of remote file: 572 kB
assets/youtu-llm-logo.png ADDED

Git LFS Details

  • SHA256: 83625a8be39c17aca9cd9185f2984ce545a88b3eeb475afb9c25afeea87e10b8
  • Pointer size: 131 Bytes
  • Size of remote file: 299 kB
chat_template.jinja ADDED
@@ -0,0 +1 @@
 
 
1
+ {% if not add_generation_prompt is defined %}{% set add_generation_prompt = false %}{% endif %}{% set ns = namespace(is_first=false, is_tool=false, is_tool_message=false, first_tool_index=messages|length, is_output_first=true, system_prompt='', is_first_sp=true, is_last_user=false) %}{% for message in messages %}{% if message['role'] == 'system' %}{% if ns.is_first_sp %}{% set ns.system_prompt = ns.system_prompt + message['content'] %}{% set ns.is_first_sp = false %}{% else %}{% set ns.system_prompt = ns.system_prompt + '\n\n' + message['content'] %}{% endif %}{% endif %}{% if not ns.is_tool_message and (message['role'] == 'tool' or (message['role'] == 'user' and message['content'].startswith('<tool_response>') and message['content'].endswith('</tool_response>'))) %}{% set ns.is_tool_message = true %}{% set ns.first_tool_index = loop.index0 %}{% endif %}{% endfor %}{% if tools is defined and tools is not none %}{% set tool_ns = namespace(text='<|begin_of_tool_description|>Tool calling capabilities.\nYou may call one or more functions to assist with the user query. You have the following functions available:', return_text='For tool call returns, you MUST use the following format:\n<tool_call>{\"name\": \"function-name\", \"arguments\": {\"param1\": \"value1\", \"param2\": \"value2\"}}</tool_call>\n<|end_of_tool_description|>') %}{% for tool in tools %}{% set tool_ns.text = tool_ns.text + '\n```json\n' + (tool | tojson) + '\n```' %}{% endfor %}{% set tool_ns.text = tool_ns.text + '\n' + tool_ns.return_text %}{% if ns.system_prompt == '' %}{% set ns.system_prompt = tool_ns.text %}{% else %}{% set ns.system_prompt = ns.system_prompt + '\n\n' + tool_ns.text %}{% endif %}{% endif %}{{ bos_token }}{{ ns.system_prompt }}{% for message in messages %}{% set content = message['content'] %}{% if message['role'] == 'user' %}{% set ns.is_tool = false %}{% set ns.is_first = false %}{% set ns.is_last_user = true %}{{ '<|User|>' + content }}{% endif %}{% if message['role'] == 'assistant' %}{% if '</think>' in content and not loop.last and loop.index0 < (ns.first_tool_index - 1) %}{% set content = content.rsplit('</think>')[-1].lstrip('\n') %}{% endif %}{% if '<think>' not in content and '</think>' not in content and loop.last %}{% set content = '<think>\n\n</think>\n\n' + content %}{% endif %}{% endif %}{% if message['role'] == 'assistant' and message['tool_calls'] is defined and message['tool_calls'] is not none %}{% set ns.is_last_user = false %}{{ '<|Assistant|>' }}{% if content is not none %}{{ content }}{% endif %}{% set ns.is_first = false %}{% set ns.is_tool = false %}{% set ns.is_output_first = true %}{% for tool in message['tool_calls'] %}{% if tool['function']['arguments'] is string %}{% set tool_call_str = '{\"name\": \"' + tool['function']['name'] + '\", \"arguments\": ' + tool['function']['arguments'] + '}' %}{% else %}{% set tool_call_str = '{\"name\": \"' + tool['function']['name'] + '\", \"arguments\": ' + tool['function']['arguments']|tojson + '}' %}{% endif %}{% if not ns.is_first %}{{ '<tool_call>' + tool_call_str + '</tool_call>' }}{% set ns.is_first = true %}{% else %}{{ '\n' + '<tool_call>' + tool_call_str + '</tool_call>' }}{% endif %}{% endfor %}{{ '<|end_of_text|>' }}{% endif %}{% if message['role'] == 'assistant' and (message['tool_calls'] is not defined or message['tool_calls'] is none)%}{% set ns.is_last_user = false %}{% set ns.is_tool = false %}{% set ns.is_output_first = true %}{{ '<|Assistant|>' + content + '<|end_of_text|>' }}{% endif %}{% if message['role'] == 'tool' %}{% set ns.is_last_user = false %}{% set ns.is_tool = true %}{% if ns.is_output_first %}{{ '<|User|><tool_response>' + content + '</tool_response>' }}{% set ns.is_output_first = false %}{% else %}{{ '\n<tool_response>' + content + '</tool_response>' }}{% endif %}{% endif %}{% endfor %}{% if add_generation_prompt and (ns.is_last_user or ns.is_tool) %}{{ '<|Assistant|>' }}{% if enable_thinking is defined and enable_thinking is false %}{{ '<think>\n\n</think>\n\n' }}{% elif forced_thinking is defined and forced_thinking is true %}{{ '<think>\n' }}{% endif %}{% endif %}
config.json ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "YoutuForCausalLM"
4
+ ],
5
+ "attention_bias": false,
6
+ "attention_dropout": 0.0,
7
+ "auto_map": {
8
+ "AutoConfig": "configuration_youtu.YoutuConfig",
9
+ "AutoModel": "modeling_youtu.YoutuModel",
10
+ "AutoModelForCausalLM": "modeling_youtu.YoutuForCausalLM"
11
+ },
12
+ "bos_token_id": 128000,
13
+ "eos_token_id": 128001,
14
+ "hidden_act": "silu",
15
+ "hidden_size": 2048,
16
+ "initializer_range": null,
17
+ "embedding_initializer_range": null,
18
+ "intermediate_size": 6144,
19
+ "kv_lora_rank": 512,
20
+ "max_position_embeddings": 131072,
21
+ "mlp_bias": false,
22
+ "model_type": "youtu_llm",
23
+ "num_attention_heads": 16,
24
+ "num_hidden_layers": 32,
25
+ "num_key_value_heads": 16,
26
+ "q_lora_rank": 1536,
27
+ "qk_nope_head_dim": 128,
28
+ "qk_rope_head_dim": 64,
29
+ "rms_norm_eps": 1e-06,
30
+ "rope_interleave": true,
31
+ "rope_scaling": null,
32
+ "rope_theta": 1600000,
33
+ "tie_word_embeddings": true,
34
+ "torch_dtype": "bfloat16",
35
+ "transformers_version": "4.56.0",
36
+ "use_cache": true,
37
+ "v_head_dim": 128,
38
+ "vocab_size": 128256
39
+ }
configuration_youtu.py ADDED
@@ -0,0 +1,198 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ # Copyright 2025 Tencent Youtu Lab and the HuggingFace Inc. team. All rights reserved.
3
+
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ from transformers.configuration_utils import PretrainedConfig
16
+ from transformers.modeling_rope_utils import rope_config_validation
17
+
18
+
19
+ Youtu_PRETRAINED_CONFIG_ARCHIVE_MAP = {}
20
+
21
+
22
+ class YoutuConfig(PretrainedConfig):
23
+ r"""
24
+ This is the configuration class to store the configuration of a [`YoutuModel`]. It is used to instantiate an Youtu
25
+ model according to the specified arguments, defining the model architecture. Instantiating a configuration with the
26
+ defaults will yield a similar configuration to that of the Youtu-LLM-2B.
27
+ e.g. [tencent/Youtu-LLM-2B](https://huggingface.co/tencent/Youtu-LLM-2B)
28
+ Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the
29
+ documentation from [`PretrainedConfig`] for more information.
30
+
31
+
32
+ Args:
33
+ vocab_size (`int`, *optional*, defaults to 128256):
34
+ Vocabulary size of the Deep model. Defines the number of different tokens that can be represented by the
35
+ `inputs_ids` passed when calling [`YoutuModel`]
36
+ hidden_size (`int`, *optional*, defaults to 2048):
37
+ Dimension of the hidden representations.
38
+ intermediate_size (`int`, *optional*, defaults to 6144):
39
+ Dimension of the MLP representations.
40
+ num_hidden_layers (`int`, *optional*, defaults to 32):
41
+ Number of hidden layers in the Transformer decoder.
42
+ num_attention_heads (`int`, *optional*, defaults to 16):
43
+ Number of attention heads for each attention layer in the Transformer decoder.
44
+ num_key_value_heads (`int`, *optional*, defaults to 16):
45
+ In MLA, num_key_value_heads=num_attention_heads.
46
+ kv_lora_rank (`int`, *optional*, defaults to 512):
47
+ Rank of the LoRA matrices for key and value projections.
48
+ q_lora_rank (`int`, *optional*, defaults to 1536):
49
+ Rank of the LoRA matrices for query projections.
50
+ qk_rope_head_dim (`int`, *optional*, defaults to 64):
51
+ Dimension of the query/key heads that use rotary position embeddings.
52
+ v_head_dim (`int`, *optional*, defaults to 128):
53
+ Dimension of the value heads.
54
+ qk_nope_head_dim (`int`, *optional*, defaults to 128):
55
+ Dimension of the query/key heads that don't use rotary position embeddings.
56
+ hidden_act (`str` or `function`, *optional*, defaults to `"silu"`):
57
+ The non-linear activation function (function or string) in the decoder.
58
+ max_position_embeddings (`int`, *optional*, defaults to 131072):
59
+ The maximum sequence length that this model might ever be used with.
60
+ initializer_range (`float`, *optional*, defaults to None):
61
+ The standard deviation of the truncated_normal_initializer for initializing all weight matrices, except embedding matrices.
62
+ embedding_initializer_range (`float`, *optional*, defaults to None):
63
+ The standard deviation of the truncated_normal_initializer for initializing all embedding matrices.
64
+ rms_norm_eps (`float`, *optional*, defaults to 1e-06):
65
+ The epsilon used by the rms normalization layers.
66
+ use_cache (`bool`, *optional*, defaults to `True`):
67
+ Whether or not the model should return the last key/values attentions (not used by all models). Only
68
+ relevant if `config.is_decoder=True`.
69
+ pad_token_id (`int`, *optional*):
70
+ Padding token id.
71
+ bos_token_id (`int`, *optional*, defaults to 128000):
72
+ Beginning of stream token id.
73
+ eos_token_id (`int`, *optional*, defaults to 128001):
74
+ End of stream token id.
75
+ tie_word_embeddings (`bool`, *optional*, defaults to `True`):
76
+ Whether to tie weight embeddings
77
+ rope_theta (`float`, *optional*, defaults to 1600000):
78
+ The base period of the RoPE embeddings.
79
+ rope_scaling (`Dict`, *optional*, defaults to `None`):
80
+ Dictionary containing the scaling configuration for the RoPE embeddings. Currently supports two scaling
81
+ strategies: linear and dynamic. Their scaling factor must be a float greater than 1. The expected format is
82
+ `{"type": strategy name, "factor": scaling factor}`. When using this flag, don't update
83
+ `max_position_embeddings` to the expected new maximum.
84
+ rope_interleave (`bool`, *optional*, defaults to `True`):
85
+ Whether to interleave the rotary position embeddings.
86
+ attention_bias (`bool`, defaults to `False`, *optional*, defaults to `False`):
87
+ Whether to use a bias in the query, key, value and output projection layers during self-attention.
88
+ attention_dropout (`float`, *optional*, defaults to 0.0):
89
+ The dropout ratio for the attention probabilities.
90
+
91
+ ```python
92
+ >>> from transformers import YoutuModel, YoutuConfig
93
+
94
+ >>> # Initializing a Youtu-LLM-2B style configuration
95
+ >>> configuration = YoutuConfig()
96
+
97
+ >>> # Accessing the model configuration
98
+ >>> configuration = model.config
99
+ ```"""
100
+
101
+ model_type = "youtu_llm"
102
+ keys_to_ignore_at_inference = ["past_key_values"]
103
+ base_model_tp_plan = {
104
+ "layers.*.mlp.gate_proj": "local_colwise",
105
+ "layers.*.mlp.up_proj": "local_colwise",
106
+ "layers.*.mlp.down_proj": "local_rowwise",
107
+ "layers.*.mlp": "gather", # This is the only moment where results are gathered
108
+ }
109
+ base_model_pp_plan = {
110
+ "embed_tokens": (["input_ids"], ["inputs_embeds"]),
111
+ "layers": (["hidden_states", "attention_mask"], ["hidden_states"]),
112
+ "norm": (["hidden_states"], ["hidden_states"]),
113
+ }
114
+
115
+ def __init__(
116
+ self,
117
+ vocab_size=128256,
118
+ hidden_size=2048,
119
+ intermediate_size=6144,
120
+ num_hidden_layers=32,
121
+ num_attention_heads=16,
122
+ num_key_value_heads=16,
123
+ kv_lora_rank=512,
124
+ q_lora_rank=1536,
125
+ qk_rope_head_dim=64,
126
+ v_head_dim=128,
127
+ qk_nope_head_dim=128,
128
+ hidden_act="silu",
129
+ max_position_embeddings=131072,
130
+ initializer_range=None,
131
+ embedding_initializer_range=None,
132
+ rms_norm_eps=1e-6,
133
+ use_cache=True,
134
+ pad_token_id=None,
135
+ bos_token_id=128000,
136
+ eos_token_id=128001,
137
+ tie_word_embeddings=True,
138
+ rope_theta=1600000,
139
+ rope_scaling=None,
140
+ rope_interleave=True,
141
+ attention_bias=False,
142
+ attention_dropout=0.0,
143
+ **kwargs,
144
+ ):
145
+ self.vocab_size = vocab_size
146
+ self.max_position_embeddings = max_position_embeddings
147
+ self.hidden_size = hidden_size
148
+ self.intermediate_size = intermediate_size
149
+ self.num_hidden_layers = num_hidden_layers
150
+ self.num_attention_heads = num_attention_heads
151
+ self.kv_lora_rank = kv_lora_rank
152
+ self.q_lora_rank = q_lora_rank
153
+ self.qk_rope_head_dim = qk_rope_head_dim
154
+ self.v_head_dim = v_head_dim
155
+ self.qk_nope_head_dim = qk_nope_head_dim
156
+ self.qk_head_dim = qk_nope_head_dim + qk_rope_head_dim
157
+ self.head_dim = qk_rope_head_dim
158
+ self.rope_interleave = rope_interleave
159
+
160
+ # for backward compatibility
161
+ if num_key_value_heads is None:
162
+ num_key_value_heads = num_attention_heads
163
+
164
+ self.mlp_bias = False
165
+ self.num_key_value_heads = num_key_value_heads
166
+ self.hidden_act = hidden_act
167
+ # if initializer_range is None, set it to 2.0 / (5.0 * self.hidden_size) ** 0.5
168
+ self.initializer_range = (2.0 / (5.0 * self.hidden_size)) ** 0.5 if initializer_range is None else initializer_range
169
+ # if embedding_initializer_range is None, set it to 2.0 * self.initializer_range
170
+ self.embedding_initializer_range = self.initializer_range * 2.0 if embedding_initializer_range is None else embedding_initializer_range
171
+ self.rms_norm_eps = rms_norm_eps
172
+ self.use_cache = use_cache
173
+ self.rope_theta = rope_theta
174
+ self.rope_scaling = rope_scaling
175
+ self.attention_bias = attention_bias
176
+ self.attention_dropout = attention_dropout
177
+ # Validate the correctness of rotary position embeddings parameters
178
+ # BC: if there is a 'type' field, copy it it to 'rope_type'.
179
+ if self.rope_scaling is not None and "type" in self.rope_scaling:
180
+ self.rope_scaling["rope_type"] = self.rope_scaling["type"]
181
+
182
+ if self.rope_scaling is not None:
183
+ for key in ["beta_fast", "beta_slow", "factor"]:
184
+ if key in self.rope_scaling:
185
+ self.rope_scaling[key] = float(self.rope_scaling[key])
186
+
187
+ rope_config_validation(self)
188
+
189
+ super().__init__(
190
+ pad_token_id=pad_token_id,
191
+ bos_token_id=bos_token_id,
192
+ eos_token_id=eos_token_id,
193
+ tie_word_embeddings=tie_word_embeddings,
194
+ **kwargs,
195
+ )
196
+
197
+
198
+ __all__ = ["YoutuConfig"]
generation_config.json ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_from_model_config": true,
3
+ "bos_token_id": 128000,
4
+ "eos_token_id": 128001,
5
+ "do_sample": true,
6
+ "temperature": 1.0,
7
+ "top_k": 20,
8
+ "top_p": 0.95,
9
+ "transformers_version": "4.56.0",
10
+ "use_cache": false
11
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cf79fd0ade098cfa2fd78ba17592df25c9b9824cba3c1d87767c71146ef0b097
3
+ size 4448502056
modeling_youtu.py ADDED
@@ -0,0 +1,610 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ # Copyright 2025 Tencent Youtu lab, DeepSeek-AI and The HuggingFace Inc. team. All rights reserved.
3
+ #
4
+ # This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX
5
+ # and OPT implementations in this library. It has been modified from its
6
+ # original forms to accommodate minor architectural differences compared
7
+ # to GPT-NeoX and OPT used by the Meta AI team that trained the model.
8
+ #
9
+ # Licensed under the Apache License, Version 2.0 (the "License");
10
+ # you may not use this file except in compliance with the License.
11
+ # You may obtain a copy of the License at
12
+ #
13
+ # http://www.apache.org/licenses/LICENSE-2.0
14
+ #
15
+ # Unless required by applicable law or agreed to in writing, software
16
+ # distributed under the License is distributed on an "AS IS" BASIS,
17
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ # See the License for the specific language governing permissions and
19
+ # limitations under the License.
20
+ import math
21
+ from typing import Callable, Optional, Union
22
+
23
+ import torch
24
+ import torch.nn.functional as F
25
+ from torch import nn
26
+
27
+ from transformers.activations import ACT2FN
28
+ from transformers.cache_utils import Cache, DynamicCache
29
+ from transformers.generation import GenerationMixin
30
+ from transformers.integrations import use_kernel_forward_from_hub
31
+ from transformers.masking_utils import create_causal_mask
32
+ from transformers.modeling_flash_attention_utils import FlashAttentionKwargs
33
+ from transformers.modeling_layers import GradientCheckpointingLayer
34
+ from transformers.modeling_outputs import BaseModelOutputWithPast, CausalLMOutputWithPast
35
+ from transformers.modeling_rope_utils import ROPE_INIT_FUNCTIONS, dynamic_rope_update
36
+ from transformers.modeling_utils import ALL_ATTENTION_FUNCTIONS, PreTrainedModel
37
+ from transformers.processing_utils import Unpack
38
+ from transformers.utils import TransformersKwargs, auto_docstring, can_return_tuple
39
+ from transformers.utils.deprecation import deprecate_kwarg
40
+ from transformers.utils.generic import check_model_inputs
41
+ from .configuration_youtu import YoutuConfig
42
+
43
+
44
+ @use_kernel_forward_from_hub("RMSNorm")
45
+ class YoutuRMSNorm(nn.Module):
46
+ def __init__(self, hidden_size, eps=1e-6):
47
+ """
48
+ YoutuRMSNorm is equivalent to T5LayerNorm
49
+ """
50
+ super().__init__()
51
+ self.weight = nn.Parameter(torch.ones(hidden_size))
52
+ self.variance_epsilon = eps
53
+
54
+ def forward(self, hidden_states):
55
+ input_dtype = hidden_states.dtype
56
+ hidden_states = hidden_states.to(torch.float32)
57
+ variance = hidden_states.pow(2).mean(-1, keepdim=True)
58
+ hidden_states = hidden_states * torch.rsqrt(variance + self.variance_epsilon)
59
+ return self.weight * hidden_states.to(input_dtype)
60
+
61
+ def extra_repr(self):
62
+ return f"{tuple(self.weight.shape)}, eps={self.variance_epsilon}"
63
+
64
+
65
+ class YoutuRotaryEmbedding(nn.Module):
66
+ inv_freq: torch.Tensor # fix linting for `register_buffer`
67
+
68
+ def __init__(self, config: YoutuConfig, device=None):
69
+ super().__init__()
70
+ # BC: "rope_type" was originally "type"
71
+ if hasattr(config, "rope_scaling") and config.rope_scaling is not None:
72
+ self.rope_type = config.rope_scaling.get("rope_type", config.rope_scaling.get("type"))
73
+ else:
74
+ self.rope_type = "default"
75
+ self.max_seq_len_cached = config.max_position_embeddings
76
+ self.original_max_seq_len = config.max_position_embeddings
77
+
78
+ self.config = config
79
+ self.rope_init_fn = ROPE_INIT_FUNCTIONS[self.rope_type]
80
+
81
+ inv_freq, self.attention_scaling = self.rope_init_fn(self.config, device)
82
+ self.register_buffer("inv_freq", inv_freq, persistent=False)
83
+ self.original_inv_freq = self.inv_freq
84
+
85
+ @torch.no_grad()
86
+ @dynamic_rope_update # power user: used with advanced RoPE types (e.g. dynamic rope)
87
+ def forward(self, x, position_ids):
88
+ inv_freq_expanded = self.inv_freq[None, :, None].float().expand(position_ids.shape[0], -1, 1).to(x.device)
89
+ position_ids_expanded = position_ids[:, None, :].float()
90
+
91
+ device_type = x.device.type if isinstance(x.device.type, str) and x.device.type != "mps" else "cpu"
92
+ with torch.autocast(device_type=device_type, enabled=False): # Force float32
93
+ freqs = (inv_freq_expanded.float() @ position_ids_expanded.float()).transpose(1, 2)
94
+ emb = torch.cat((freqs, freqs), dim=-1)
95
+ cos = emb.cos() * self.attention_scaling
96
+ sin = emb.sin() * self.attention_scaling
97
+
98
+ return cos.to(dtype=x.dtype), sin.to(dtype=x.dtype)
99
+
100
+
101
+ class YoutuMLP(nn.Module):
102
+ def __init__(self, config, hidden_size=None, intermediate_size=None):
103
+ super().__init__()
104
+ self.config = config
105
+ self.hidden_size = config.hidden_size if hidden_size is None else hidden_size
106
+ self.intermediate_size = config.intermediate_size if intermediate_size is None else intermediate_size
107
+ self.mlp_bias = config.mlp_bias
108
+
109
+ self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=self.mlp_bias)
110
+ self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=self.mlp_bias)
111
+ self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=self.mlp_bias)
112
+ self.act_fn = ACT2FN[config.hidden_act]
113
+
114
+ def forward(self, x):
115
+ down_proj = self.down_proj(self.act_fn(self.gate_proj(x)) * self.up_proj(x))
116
+ return down_proj
117
+
118
+
119
+ def rotate_half(x):
120
+ """Rotates half the hidden dims of the input."""
121
+ x1 = x[..., : x.shape[-1] // 2]
122
+ x2 = x[..., x.shape[-1] // 2 :]
123
+ return torch.cat((-x2, x1), dim=-1)
124
+
125
+
126
+ def apply_rotary_pos_emb(q, k, cos, sin, position_ids=None, unsqueeze_dim=1):
127
+ """Applies Rotary Position Embedding to the query and key tensors.
128
+
129
+ Args:
130
+ q (`torch.Tensor`): The query tensor.
131
+ k (`torch.Tensor`): The key tensor.
132
+ cos (`torch.Tensor`): The cosine part of the rotary embedding.
133
+ sin (`torch.Tensor`): The sine part of the rotary embedding.
134
+ position_ids (`torch.Tensor`, *optional*):
135
+ Deprecated and unused.
136
+ unsqueeze_dim (`int`, *optional*, defaults to 1):
137
+ The 'unsqueeze_dim' argument specifies the dimension along which to unsqueeze cos[position_ids] and
138
+ sin[position_ids] so that they can be properly broadcasted to the dimensions of q and k. For example, note
139
+ that cos[position_ids] and sin[position_ids] have the shape [batch_size, seq_len, head_dim]. Then, if q and
140
+ k have the shape [batch_size, heads, seq_len, head_dim], then setting unsqueeze_dim=1 makes
141
+ cos[position_ids] and sin[position_ids] broadcastable to the shapes of q and k. Similarly, if q and k have
142
+ the shape [batch_size, seq_len, heads, head_dim], then set unsqueeze_dim=2.
143
+ Returns:
144
+ `tuple(torch.Tensor)` comprising of the query and key tensors rotated using the Rotary Position Embedding.
145
+ """
146
+ cos = cos.unsqueeze(unsqueeze_dim)
147
+ sin = sin.unsqueeze(unsqueeze_dim)
148
+ q_embed = (q * cos) + (rotate_half(q) * sin)
149
+ k_embed = (k * cos) + (rotate_half(k) * sin)
150
+ return q_embed, k_embed
151
+
152
+
153
+ def repeat_kv(hidden_states: torch.Tensor, n_rep: int) -> torch.Tensor:
154
+ """
155
+ This is the equivalent of torch.repeat_interleave(x, dim=1, repeats=n_rep). The hidden states go from (batch,
156
+ num_key_value_heads, seqlen, head_dim) to (batch, num_attention_heads, seqlen, head_dim)
157
+ """
158
+ batch, num_key_value_heads, slen, head_dim = hidden_states.shape
159
+ if n_rep == 1:
160
+ return hidden_states
161
+ hidden_states = hidden_states[:, :, None, :, :].expand(batch, num_key_value_heads, n_rep, slen, head_dim)
162
+ return hidden_states.reshape(batch, num_key_value_heads * n_rep, slen, head_dim)
163
+
164
+
165
+ def eager_attention_forward(
166
+ module: nn.Module,
167
+ query: torch.Tensor,
168
+ key: torch.Tensor,
169
+ value: torch.Tensor,
170
+ attention_mask: Optional[torch.Tensor],
171
+ scaling: float,
172
+ dropout: float = 0.0,
173
+ **kwargs: Unpack[TransformersKwargs],
174
+ ):
175
+ key_states = repeat_kv(key, module.num_key_value_groups)
176
+ value_states = repeat_kv(value, module.num_key_value_groups)
177
+
178
+ attn_weights = torch.matmul(query, key_states.transpose(2, 3)) * scaling
179
+ if attention_mask is not None:
180
+ causal_mask = attention_mask[:, :, :, : key_states.shape[-2]]
181
+ attn_weights = attn_weights + causal_mask
182
+
183
+ attn_weights = nn.functional.softmax(attn_weights, dim=-1, dtype=torch.float32).to(query.dtype)
184
+ attn_weights = nn.functional.dropout(attn_weights, p=dropout, training=module.training)
185
+ attn_output = torch.matmul(attn_weights, value_states)
186
+ attn_output = attn_output.transpose(1, 2).contiguous()
187
+
188
+ return attn_output, attn_weights
189
+
190
+
191
+ def apply_rotary_pos_emb_interleave(q, k, cos, sin, position_ids=None, unsqueeze_dim=1):
192
+ r"""
193
+ TODO let's just use the original freqcis computation to not have the view
194
+ transpose + reshape! This is not optimized!
195
+ Applies Rotary Position Embedding to the query and key tensors.
196
+
197
+ Args:
198
+ q (`torch.Tensor`): The query tensor.
199
+ k (`torch.Tensor`): The key tensor.
200
+ cos (`torch.Tensor`): The cosine part of the rotary embedding.
201
+ sin (`torch.Tensor`): The sine part of the rotary embedding.
202
+ position_ids (`torch.Tensor`):
203
+ The position indices of the tokens corresponding to the query and key tensors. For example, this can be
204
+ used to pass offsetted position ids when working with a KV-cache.
205
+ unsqueeze_dim (`int`, *optional*, defaults to 1):
206
+ The 'unsqueeze_dim' argument specifies the dimension along which to unsqueeze cos[position_ids] and
207
+ sin[position_ids] so that they can be properly broadcasted to the dimensions of q and k. For example, note
208
+ that cos[position_ids] and sin[position_ids] have the shape [batch_size, seq_len, head_dim]. Then, if q and
209
+ k have the shape [batch_size, heads, seq_len, head_dim], then setting unsqueeze_dim=1 makes
210
+ cos[position_ids] and sin[position_ids] broadcastable to the shapes of q and k. Similarly, if q and k have
211
+ the shape [batch_size, seq_len, heads, head_dim], then set unsqueeze_dim=2.
212
+ Returns:
213
+ `tuple(torch.Tensor)` comprising of the query and key tensors rotated using the Rotary Position Embedding.
214
+ """
215
+ cos = cos.unsqueeze(unsqueeze_dim)
216
+ sin = sin.unsqueeze(unsqueeze_dim)
217
+
218
+ b, h, s, d = q.shape
219
+ q = q.view(b, h, s, d // 2, 2).transpose(4, 3).reshape(b, h, s, d)
220
+
221
+ b, h, s, d = k.shape
222
+ k = k.view(b, h, s, d // 2, 2).transpose(4, 3).reshape(b, h, s, d)
223
+
224
+ q_embed = (q * cos) + (rotate_half(q) * sin)
225
+ k_embed = (k * cos) + (rotate_half(k) * sin)
226
+ return q_embed, k_embed
227
+
228
+
229
+ def yarn_get_mscale(scale=1, mscale=1):
230
+ if scale <= 1:
231
+ return 1.0
232
+ return 0.1 * mscale * math.log(scale) + 1.0
233
+
234
+
235
+ class YoutuMLAttention(nn.Module):
236
+ """Multi-latent attention from 'DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model' paper"""
237
+
238
+ def __init__(self, config: YoutuConfig, layer_idx: int):
239
+ super().__init__()
240
+ self.config = config
241
+ self.layer_idx = layer_idx
242
+ self.num_key_value_groups = config.num_attention_heads // config.num_key_value_heads
243
+ self.attention_dropout = config.attention_dropout
244
+ self.num_heads = config.num_attention_heads
245
+ self.rope_theta = config.rope_theta
246
+ self.q_lora_rank = config.q_lora_rank
247
+ self.qk_rope_head_dim = config.qk_rope_head_dim
248
+ self.kv_lora_rank = config.kv_lora_rank
249
+ self.v_head_dim = config.v_head_dim
250
+ self.qk_nope_head_dim = config.qk_nope_head_dim
251
+ self.qk_head_dim = config.qk_head_dim
252
+
253
+ self.is_causal = True
254
+ if self.q_lora_rank is None:
255
+ self.q_proj = nn.Linear(config.hidden_size, self.num_heads * self.qk_head_dim, bias=False)
256
+ else:
257
+ self.q_a_proj = nn.Linear(config.hidden_size, config.q_lora_rank, bias=config.attention_bias)
258
+ self.q_a_layernorm = YoutuRMSNorm(config.q_lora_rank)
259
+ self.q_b_proj = nn.Linear(config.q_lora_rank, self.num_heads * self.qk_head_dim, bias=False)
260
+
261
+ self.kv_a_proj_with_mqa = nn.Linear(
262
+ config.hidden_size,
263
+ self.kv_lora_rank + self.qk_rope_head_dim,
264
+ bias=config.attention_bias,
265
+ )
266
+ self.kv_a_layernorm = YoutuRMSNorm(self.kv_lora_rank)
267
+ self.kv_b_proj = nn.Linear(
268
+ self.kv_lora_rank,
269
+ self.num_heads * (self.qk_nope_head_dim + self.v_head_dim),
270
+ bias=False,
271
+ )
272
+
273
+ self.o_proj = nn.Linear(
274
+ self.num_heads * self.v_head_dim,
275
+ config.hidden_size,
276
+ bias=config.attention_bias,
277
+ )
278
+
279
+ self.scaling = self.qk_head_dim ** (-0.5)
280
+ if self.config.rope_scaling is not None:
281
+ mscale_all_dim = self.config.rope_scaling.get("mscale_all_dim", 0)
282
+ scaling_factor = self.config.rope_scaling["factor"]
283
+ if mscale_all_dim:
284
+ mscale = yarn_get_mscale(scaling_factor, mscale_all_dim)
285
+ self.scaling = self.scaling * mscale * mscale
286
+
287
+ @deprecate_kwarg("past_key_value", new_name="past_key_values", version="4.58")
288
+ def forward(
289
+ self,
290
+ hidden_states: torch.Tensor,
291
+ position_embeddings: tuple[torch.Tensor, torch.Tensor],
292
+ attention_mask: Optional[torch.Tensor],
293
+ past_key_values: Optional[Cache] = None,
294
+ cache_position: Optional[torch.LongTensor] = None,
295
+ **kwargs: Unpack[FlashAttentionKwargs],
296
+ ) -> tuple[torch.Tensor, Optional[torch.Tensor], Optional[tuple[torch.Tensor]]]:
297
+ batch_size, seq_length = hidden_states.shape[:-1]
298
+ query_shape = (batch_size, seq_length, -1, self.qk_head_dim)
299
+ key_shape = (batch_size, seq_length, -1, self.qk_nope_head_dim + self.v_head_dim)
300
+
301
+ if self.q_lora_rank is None:
302
+ q_states = self.q_proj(hidden_states)
303
+ else:
304
+ q_states = self.q_b_proj(self.q_a_layernorm(self.q_a_proj(hidden_states)))
305
+ q_states = q_states.view(query_shape).transpose(1, 2)
306
+ q_pass, q_rot = torch.split(q_states, [self.qk_nope_head_dim, self.qk_rope_head_dim], dim=-1)
307
+
308
+ compressed_kv = self.kv_a_proj_with_mqa(hidden_states)
309
+ k_pass, k_rot = torch.split(compressed_kv, [self.kv_lora_rank, self.qk_rope_head_dim], dim=-1)
310
+
311
+ k_pass = self.kv_b_proj(self.kv_a_layernorm(k_pass)).view(key_shape).transpose(1, 2)
312
+ k_pass, value_states = torch.split(k_pass, [self.qk_nope_head_dim, self.v_head_dim], dim=-1)
313
+
314
+ k_rot = k_rot.view(batch_size, 1, seq_length, self.qk_rope_head_dim)
315
+
316
+ cos, sin = position_embeddings
317
+ if self.config.rope_interleave: # support using interleaved weights for efficiency
318
+ q_rot, k_rot = apply_rotary_pos_emb_interleave(q_rot, k_rot, cos, sin)
319
+ else:
320
+ q_rot, k_rot = apply_rotary_pos_emb(q_rot, k_rot, cos, sin)
321
+ k_rot = k_rot.expand(*k_pass.shape[:-1], -1)
322
+
323
+ query_states = torch.cat((q_pass, q_rot), dim=-1)
324
+ key_states = torch.cat((k_pass, k_rot), dim=-1)
325
+
326
+ if past_key_values is not None:
327
+ # sin and cos are specific to RoPE models; cache_position needed for the static cache
328
+ cache_kwargs = {"sin": sin, "cos": cos, "cache_position": cache_position}
329
+ key_states, value_states = past_key_values.update(key_states, value_states, self.layer_idx, cache_kwargs)
330
+
331
+ if self.config._attn_implementation == "flash_attention_2" and self.qk_head_dim != self.v_head_dim:
332
+ value_states = F.pad(value_states, [0, self.qk_head_dim - self.v_head_dim])
333
+
334
+ attention_interface: Callable = eager_attention_forward
335
+ if self.config._attn_implementation != "eager":
336
+ attention_interface = ALL_ATTENTION_FUNCTIONS[self.config._attn_implementation]
337
+
338
+ attn_output, attn_weights = attention_interface(
339
+ self,
340
+ query_states,
341
+ key_states,
342
+ value_states,
343
+ attention_mask,
344
+ dropout=0.0 if not self.training else self.attention_dropout,
345
+ scaling=self.scaling,
346
+ **kwargs,
347
+ )
348
+
349
+ if self.config._attn_implementation == "flash_attention_2" and self.qk_head_dim != self.v_head_dim:
350
+ attn_output = attn_output[:, :, :, : self.v_head_dim]
351
+
352
+ attn_output = attn_output.reshape(batch_size, seq_length, -1).contiguous()
353
+ attn_output = self.o_proj(attn_output)
354
+ return attn_output, attn_weights
355
+
356
+
357
+ class YoutuDecoderLayer(GradientCheckpointingLayer):
358
+ def __init__(self, config: YoutuConfig, layer_idx: int):
359
+ super().__init__()
360
+ self.hidden_size = config.hidden_size
361
+ self.self_attn = YoutuMLAttention(config=config, layer_idx=layer_idx)
362
+ self.mlp = YoutuMLP(config)
363
+ self.input_layernorm = YoutuRMSNorm(config.hidden_size, eps=config.rms_norm_eps)
364
+ self.post_attention_layernorm = YoutuRMSNorm(config.hidden_size, eps=config.rms_norm_eps)
365
+
366
+ @deprecate_kwarg("past_key_value", new_name="past_key_values", version="4.58")
367
+ def forward(
368
+ self,
369
+ hidden_states: torch.Tensor,
370
+ attention_mask: Optional[torch.Tensor] = None,
371
+ position_ids: Optional[torch.LongTensor] = None,
372
+ past_key_values: Optional[Cache] = None,
373
+ use_cache: Optional[bool] = False,
374
+ cache_position: Optional[torch.LongTensor] = None,
375
+ position_embeddings: Optional[tuple[torch.Tensor, torch.Tensor]] = None, # necessary, but kept here for BC
376
+ **kwargs: Unpack[TransformersKwargs],
377
+ ) -> torch.Tensor:
378
+ residual = hidden_states
379
+ hidden_states = self.input_layernorm(hidden_states)
380
+ # Self Attention
381
+ hidden_states, _ = self.self_attn(
382
+ hidden_states=hidden_states,
383
+ attention_mask=attention_mask,
384
+ position_ids=position_ids,
385
+ past_key_values=past_key_values,
386
+ use_cache=use_cache,
387
+ cache_position=cache_position,
388
+ position_embeddings=position_embeddings,
389
+ **kwargs,
390
+ )
391
+ hidden_states = residual + hidden_states
392
+
393
+ # Fully Connected
394
+ residual = hidden_states
395
+ hidden_states = self.post_attention_layernorm(hidden_states)
396
+ hidden_states = self.mlp(hidden_states)
397
+ hidden_states = residual + hidden_states
398
+ return hidden_states
399
+
400
+ @auto_docstring
401
+ class YoutuPreTrainedModel(PreTrainedModel):
402
+ config: YoutuConfig
403
+ base_model_prefix = "model"
404
+ supports_gradient_checkpointing = True
405
+ _no_split_modules = ["YoutuDecoderLayer"]
406
+ _skip_keys_device_placement = ["past_key_values"]
407
+ _supports_flash_attn = True
408
+ _supports_sdpa = True
409
+ _supports_flex_attn = True
410
+ _can_compile_fullgraph = False
411
+ _supports_attention_backend = True
412
+ _can_record_outputs = {
413
+ "hidden_states": YoutuDecoderLayer,
414
+ "attentions": YoutuMLAttention,
415
+ }
416
+
417
+ def init_weights(self):
418
+ """
419
+ If needed prunes and maybe initializes weights. If using a custom `PreTrainedModel`, you need to implement any
420
+ initialization logic in `_init_weights`.
421
+ """
422
+ # Prune heads if needed
423
+ if self.config.pruned_heads:
424
+ self.prune_heads(self.config.pruned_heads)
425
+
426
+ if "-init" in self.name_or_path:
427
+ # Initialize weights
428
+ self.apply(self._initialize_weights)
429
+
430
+ # Adjust weights of o_proj in Attention and down_proj in MLP
431
+ for name, module in self.named_modules():
432
+ if "o_proj" in name or "down_proj" in name:
433
+ # For the output projection, we reinitialize the weights
434
+ scaled_std = self.config.initializer_range * (1.0 / self.config.num_hidden_layers) ** 0.5
435
+ module.weight.data.normal_(mean=0.0, std=scaled_std)
436
+
437
+ # Tie weights should be skipped when not initializing all weights
438
+ # since from_pretrained(...) calls tie weights anyways
439
+ self.tie_weights()
440
+
441
+ def _init_weights(self, module):
442
+ super()._init_weights(module)
443
+ std = self.config.initializer_range
444
+ embedding_std = self.config.embedding_initializer_range
445
+ if isinstance(module, nn.Linear):
446
+ module.weight.data.normal_(mean=0.0, std=std)
447
+ if module.bias is not None:
448
+ module.bias.data.zero_()
449
+ elif isinstance(module, nn.Embedding):
450
+ module.weight.data.normal_(mean=0.0, std=embedding_std)
451
+ if module.padding_idx is not None:
452
+ module.weight.data[module.padding_idx].zero_()
453
+
454
+ @auto_docstring
455
+ class YoutuModel(YoutuPreTrainedModel):
456
+ _keys_to_ignore_on_load_unexpected = [""]
457
+
458
+ def __init__(self, config: YoutuConfig):
459
+ super().__init__(config)
460
+ self.padding_idx = config.pad_token_id
461
+ self.vocab_size = config.vocab_size
462
+
463
+ self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size, self.padding_idx)
464
+ self.layers = nn.ModuleList(
465
+ [YoutuDecoderLayer(config, layer_idx) for layer_idx in range(config.num_hidden_layers)]
466
+ )
467
+ self.norm = YoutuRMSNorm(config.hidden_size, eps=config.rms_norm_eps)
468
+ self.rotary_emb = YoutuRotaryEmbedding(config=config)
469
+ self.gradient_checkpointing = False
470
+
471
+ # Initialize weights and apply final processing
472
+ self.post_init()
473
+
474
+ @check_model_inputs
475
+ @auto_docstring
476
+ def forward(
477
+ self,
478
+ input_ids: Optional[torch.LongTensor] = None,
479
+ attention_mask: Optional[torch.Tensor] = None,
480
+ position_ids: Optional[torch.LongTensor] = None,
481
+ past_key_values: Optional[Cache] = None,
482
+ inputs_embeds: Optional[torch.FloatTensor] = None,
483
+ cache_position: Optional[torch.LongTensor] = None,
484
+ use_cache: Optional[bool] = None,
485
+ **kwargs: Unpack[TransformersKwargs],
486
+ ) -> BaseModelOutputWithPast:
487
+ if (input_ids is None) ^ (inputs_embeds is not None):
488
+ raise ValueError("You must specify exactly one of input_ids or inputs_embeds")
489
+
490
+ if inputs_embeds is None:
491
+ inputs_embeds: torch.Tensor = self.embed_tokens(input_ids)
492
+
493
+ if use_cache and past_key_values is None:
494
+ past_key_values = DynamicCache(config=self.config)
495
+
496
+ if cache_position is None:
497
+ past_seen_tokens = past_key_values.get_seq_length() if past_key_values is not None else 0
498
+ cache_position: torch.Tensor = torch.arange(
499
+ past_seen_tokens, past_seen_tokens + inputs_embeds.shape[1], device=inputs_embeds.device
500
+ )
501
+
502
+ if position_ids is None:
503
+ position_ids = cache_position.unsqueeze(0)
504
+
505
+ causal_mask = create_causal_mask(
506
+ config=self.config,
507
+ input_embeds=inputs_embeds,
508
+ attention_mask=attention_mask,
509
+ cache_position=cache_position,
510
+ past_key_values=past_key_values,
511
+ position_ids=position_ids,
512
+ )
513
+
514
+ hidden_states = inputs_embeds
515
+ position_embeddings = self.rotary_emb(hidden_states, position_ids)
516
+
517
+ for decoder_layer in self.layers[: self.config.num_hidden_layers]:
518
+ hidden_states = decoder_layer(
519
+ hidden_states,
520
+ attention_mask=causal_mask,
521
+ position_ids=position_ids,
522
+ past_key_values=past_key_values,
523
+ cache_position=cache_position,
524
+ position_embeddings=position_embeddings,
525
+ **kwargs,
526
+ )
527
+
528
+ hidden_states = self.norm(hidden_states)
529
+ return BaseModelOutputWithPast(
530
+ last_hidden_state=hidden_states,
531
+ past_key_values=past_key_values,
532
+ )
533
+
534
+
535
+ @auto_docstring
536
+ class YoutuForCausalLM(YoutuPreTrainedModel, GenerationMixin):
537
+ _tied_weights_keys = ["lm_head.weight"]
538
+ _tp_plan = {"lm_head": "colwise_rep"}
539
+ _pp_plan = {"lm_head": (["hidden_states"], ["logits"])}
540
+
541
+ def __init__(self, config):
542
+ super().__init__(config)
543
+ self.model = YoutuModel(config)
544
+ self.vocab_size = config.vocab_size
545
+ self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False)
546
+
547
+ # Initialize weights and apply final processing
548
+ self.post_init()
549
+
550
+ @can_return_tuple
551
+ @auto_docstring
552
+ def forward(
553
+ self,
554
+ input_ids: Optional[torch.LongTensor] = None,
555
+ attention_mask: Optional[torch.Tensor] = None,
556
+ position_ids: Optional[torch.LongTensor] = None,
557
+ past_key_values: Optional[Cache] = None,
558
+ inputs_embeds: Optional[torch.FloatTensor] = None,
559
+ labels: Optional[torch.LongTensor] = None,
560
+ use_cache: Optional[bool] = None,
561
+ cache_position: Optional[torch.LongTensor] = None,
562
+ logits_to_keep: Union[int, torch.Tensor] = 0,
563
+ **kwargs: Unpack[TransformersKwargs],
564
+ ) -> CausalLMOutputWithPast:
565
+ r"""
566
+ Example:
567
+
568
+ ```python
569
+ >>> from transformers import YoutuTokenizer, YoutuForCausalLM
570
+
571
+ >>> model = YoutuForCausalLM.from_pretrained("tencent/Youtu-LLM-2B")
572
+ >>> tokenizer = YoutuTokenizer.from_pretrained("tencent/Youtu-LLM-2B")
573
+
574
+ >>> prompt = "Hey, are you conscious? Can you talk to me?"
575
+ >>> inputs = tokenizer(prompt, return_tensors="pt")
576
+
577
+ >>> # Generate
578
+ >>> generate_ids = model.generate(inputs.input_ids, max_length=30)
579
+ >>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
580
+ ```"""
581
+ outputs: BaseModelOutputWithPast = self.model(
582
+ input_ids=input_ids,
583
+ attention_mask=attention_mask,
584
+ position_ids=position_ids,
585
+ past_key_values=past_key_values,
586
+ inputs_embeds=inputs_embeds,
587
+ use_cache=use_cache,
588
+ cache_position=cache_position,
589
+ **kwargs,
590
+ )
591
+
592
+ hidden_states = outputs.last_hidden_state
593
+ # Only compute necessary logits, and do not upcast them to float if we are not computing the loss
594
+ slice_indices = slice(-logits_to_keep, None) if isinstance(logits_to_keep, int) else logits_to_keep
595
+ logits = self.lm_head(hidden_states[:, slice_indices, :])
596
+
597
+ loss = None
598
+ if labels is not None:
599
+ loss = self.loss_function(logits=logits, labels=labels, vocab_size=self.config.vocab_size, **kwargs)
600
+
601
+ return CausalLMOutputWithPast(
602
+ loss=loss,
603
+ logits=logits,
604
+ past_key_values=outputs.past_key_values,
605
+ hidden_states=outputs.hidden_states,
606
+ attentions=outputs.attentions,
607
+ )
608
+
609
+
610
+ __all__ = ["YoutuPreTrainedModel", "YoutuModel", "YoutuForCausalLM"]
special_tokens_map.json ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": {
3
+ "content": "<|begin_of_text|>",
4
+ "lstrip": false,
5
+ "normalized": false,
6
+ "rstrip": false,
7
+ "single_word": false
8
+ },
9
+ "eos_token": {
10
+ "content": "<|end_of_text|>",
11
+ "lstrip": false,
12
+ "normalized": false,
13
+ "rstrip": false,
14
+ "single_word": false
15
+ },
16
+ "pad_token": {
17
+ "content": "<|end_of_text|>",
18
+ "lstrip": false,
19
+ "normalized": false,
20
+ "rstrip": false,
21
+ "single_word": false
22
+ }
23
+ }
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2885591ad59de23306329eb64e179951e6f21ea1a6d1f9dc1dca83cf558ef31c
3
+ size 9353318
tokenizer_config.json ADDED
@@ -0,0 +1,2064 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "added_tokens_decoder": {
3
+ "128000": {
4
+ "content": "<|begin_of_text|>",
5
+ "lstrip": false,
6
+ "normalized": false,
7
+ "rstrip": false,
8
+ "single_word": false,
9
+ "special": true
10
+ },
11
+ "128001": {
12
+ "content": "<|end_of_text|>",
13
+ "lstrip": false,
14
+ "normalized": false,
15
+ "rstrip": false,
16
+ "single_word": false,
17
+ "special": true
18
+ },
19
+ "128002": {
20
+ "content": "<|reserved_special_token_0|>",
21
+ "lstrip": false,
22
+ "normalized": false,
23
+ "rstrip": false,
24
+ "single_word": false,
25
+ "special": true
26
+ },
27
+ "128003": {
28
+ "content": "<|reserved_special_token_1|>",
29
+ "lstrip": false,
30
+ "normalized": false,
31
+ "rstrip": false,
32
+ "single_word": false,
33
+ "special": true
34
+ },
35
+ "128004": {
36
+ "content": "<|finetune_right_pad_id|>",
37
+ "lstrip": false,
38
+ "normalized": false,
39
+ "rstrip": false,
40
+ "single_word": false,
41
+ "special": true
42
+ },
43
+ "128005": {
44
+ "content": "<|reserved_special_token_2|>",
45
+ "lstrip": false,
46
+ "normalized": false,
47
+ "rstrip": false,
48
+ "single_word": false,
49
+ "special": true
50
+ },
51
+ "128006": {
52
+ "content": "<|start_header_id|>",
53
+ "lstrip": false,
54
+ "normalized": false,
55
+ "rstrip": false,
56
+ "single_word": false,
57
+ "special": true
58
+ },
59
+ "128007": {
60
+ "content": "<|end_header_id|>",
61
+ "lstrip": false,
62
+ "normalized": false,
63
+ "rstrip": false,
64
+ "single_word": false,
65
+ "special": true
66
+ },
67
+ "128008": {
68
+ "content": "<|eom_id|>",
69
+ "lstrip": false,
70
+ "normalized": false,
71
+ "rstrip": false,
72
+ "single_word": false,
73
+ "special": true
74
+ },
75
+ "128009": {
76
+ "content": "<|eot_id|>",
77
+ "lstrip": false,
78
+ "normalized": false,
79
+ "rstrip": false,
80
+ "single_word": false,
81
+ "special": true
82
+ },
83
+ "128010": {
84
+ "content": "<|python_tag|>",
85
+ "lstrip": false,
86
+ "normalized": false,
87
+ "rstrip": false,
88
+ "single_word": false,
89
+ "special": true
90
+ },
91
+ "128011": {
92
+ "content": "<|fim_prefix|>",
93
+ "lstrip": false,
94
+ "normalized": false,
95
+ "rstrip": false,
96
+ "single_word": false,
97
+ "special": true
98
+ },
99
+ "128012": {
100
+ "content": "<|fim_suffix|>",
101
+ "lstrip": false,
102
+ "normalized": false,
103
+ "rstrip": false,
104
+ "single_word": false,
105
+ "special": true
106
+ },
107
+ "128013": {
108
+ "content": "<|fim_middle|>",
109
+ "lstrip": false,
110
+ "normalized": false,
111
+ "rstrip": false,
112
+ "single_word": false,
113
+ "special": true
114
+ },
115
+ "128014": {
116
+ "content": "<repo_name>",
117
+ "lstrip": false,
118
+ "normalized": false,
119
+ "rstrip": false,
120
+ "single_word": false,
121
+ "special": true
122
+ },
123
+ "128015": {
124
+ "content": "<file_sep>",
125
+ "lstrip": false,
126
+ "normalized": false,
127
+ "rstrip": false,
128
+ "single_word": false,
129
+ "special": true
130
+ },
131
+ "128016": {
132
+ "content": "<|reserved_special_token_8|>",
133
+ "lstrip": false,
134
+ "normalized": false,
135
+ "rstrip": false,
136
+ "single_word": false,
137
+ "special": true
138
+ },
139
+ "128017": {
140
+ "content": "<|reserved_special_token_9|>",
141
+ "lstrip": false,
142
+ "normalized": false,
143
+ "rstrip": false,
144
+ "single_word": false,
145
+ "special": true
146
+ },
147
+ "128018": {
148
+ "content": "<|trace_context_start|>",
149
+ "lstrip": false,
150
+ "normalized": false,
151
+ "rstrip": false,
152
+ "single_word": false,
153
+ "special": true
154
+ },
155
+ "128019": {
156
+ "content": "<|frame_sep|>",
157
+ "lstrip": false,
158
+ "normalized": false,
159
+ "rstrip": false,
160
+ "single_word": false,
161
+ "special": true
162
+ },
163
+ "128020": {
164
+ "content": "<|call_sep|>",
165
+ "lstrip": false,
166
+ "normalized": false,
167
+ "rstrip": false,
168
+ "single_word": false,
169
+ "special": true
170
+ },
171
+ "128021": {
172
+ "content": "<|action_sep|>",
173
+ "lstrip": false,
174
+ "normalized": false,
175
+ "rstrip": false,
176
+ "single_word": false,
177
+ "special": true
178
+ },
179
+ "128022": {
180
+ "content": "<|line_sep|>",
181
+ "lstrip": false,
182
+ "normalized": false,
183
+ "rstrip": false,
184
+ "single_word": false,
185
+ "special": true
186
+ },
187
+ "128023": {
188
+ "content": "<|return_sep|>",
189
+ "lstrip": false,
190
+ "normalized": false,
191
+ "rstrip": false,
192
+ "single_word": false,
193
+ "special": true
194
+ },
195
+ "128024": {
196
+ "content": "<|arg_sep|>",
197
+ "lstrip": false,
198
+ "normalized": false,
199
+ "rstrip": false,
200
+ "single_word": false,
201
+ "special": true
202
+ },
203
+ "128025": {
204
+ "content": "<|trace_context_end|>",
205
+ "lstrip": false,
206
+ "normalized": false,
207
+ "rstrip": false,
208
+ "single_word": false,
209
+ "special": true
210
+ },
211
+ "128026": {
212
+ "content": "<|reserved_special_token_18|>",
213
+ "lstrip": false,
214
+ "normalized": false,
215
+ "rstrip": false,
216
+ "single_word": false,
217
+ "special": true
218
+ },
219
+ "128027": {
220
+ "content": "<|reserved_special_token_19|>",
221
+ "lstrip": false,
222
+ "normalized": false,
223
+ "rstrip": false,
224
+ "single_word": false,
225
+ "special": true
226
+ },
227
+ "128028": {
228
+ "content": "<|reserved_special_token_20|>",
229
+ "lstrip": false,
230
+ "normalized": false,
231
+ "rstrip": false,
232
+ "single_word": false,
233
+ "special": true
234
+ },
235
+ "128029": {
236
+ "content": "<|reserved_special_token_21|>",
237
+ "lstrip": false,
238
+ "normalized": false,
239
+ "rstrip": false,
240
+ "single_word": false,
241
+ "special": true
242
+ },
243
+ "128030": {
244
+ "content": "<|reserved_special_token_22|>",
245
+ "lstrip": false,
246
+ "normalized": false,
247
+ "rstrip": false,
248
+ "single_word": false,
249
+ "special": true
250
+ },
251
+ "128031": {
252
+ "content": "<|reserved_special_token_23|>",
253
+ "lstrip": false,
254
+ "normalized": false,
255
+ "rstrip": false,
256
+ "single_word": false,
257
+ "special": true
258
+ },
259
+ "128032": {
260
+ "content": "<|reserved_special_token_24|>",
261
+ "lstrip": false,
262
+ "normalized": false,
263
+ "rstrip": false,
264
+ "single_word": false,
265
+ "special": true
266
+ },
267
+ "128033": {
268
+ "content": "<|reserved_special_token_25|>",
269
+ "lstrip": false,
270
+ "normalized": false,
271
+ "rstrip": false,
272
+ "single_word": false,
273
+ "special": true
274
+ },
275
+ "128034": {
276
+ "content": "<|reserved_special_token_26|>",
277
+ "lstrip": false,
278
+ "normalized": false,
279
+ "rstrip": false,
280
+ "single_word": false,
281
+ "special": true
282
+ },
283
+ "128035": {
284
+ "content": "<|reserved_special_token_27|>",
285
+ "lstrip": false,
286
+ "normalized": false,
287
+ "rstrip": false,
288
+ "single_word": false,
289
+ "special": true
290
+ },
291
+ "128036": {
292
+ "content": "<|reserved_special_token_28|>",
293
+ "lstrip": false,
294
+ "normalized": false,
295
+ "rstrip": false,
296
+ "single_word": false,
297
+ "special": true
298
+ },
299
+ "128037": {
300
+ "content": "<|reserved_special_token_29|>",
301
+ "lstrip": false,
302
+ "normalized": false,
303
+ "rstrip": false,
304
+ "single_word": false,
305
+ "special": true
306
+ },
307
+ "128038": {
308
+ "content": "<|reserved_special_token_30|>",
309
+ "lstrip": false,
310
+ "normalized": false,
311
+ "rstrip": false,
312
+ "single_word": false,
313
+ "special": true
314
+ },
315
+ "128039": {
316
+ "content": "<|reserved_special_token_31|>",
317
+ "lstrip": false,
318
+ "normalized": false,
319
+ "rstrip": false,
320
+ "single_word": false,
321
+ "special": true
322
+ },
323
+ "128040": {
324
+ "content": "<|reserved_special_token_32|>",
325
+ "lstrip": false,
326
+ "normalized": false,
327
+ "rstrip": false,
328
+ "single_word": false,
329
+ "special": true
330
+ },
331
+ "128041": {
332
+ "content": "<|reserved_special_token_33|>",
333
+ "lstrip": false,
334
+ "normalized": false,
335
+ "rstrip": false,
336
+ "single_word": false,
337
+ "special": true
338
+ },
339
+ "128042": {
340
+ "content": "<|reserved_special_token_34|>",
341
+ "lstrip": false,
342
+ "normalized": false,
343
+ "rstrip": false,
344
+ "single_word": false,
345
+ "special": true
346
+ },
347
+ "128043": {
348
+ "content": "<|reserved_special_token_35|>",
349
+ "lstrip": false,
350
+ "normalized": false,
351
+ "rstrip": false,
352
+ "single_word": false,
353
+ "special": true
354
+ },
355
+ "128044": {
356
+ "content": "<|reserved_special_token_36|>",
357
+ "lstrip": false,
358
+ "normalized": false,
359
+ "rstrip": false,
360
+ "single_word": false,
361
+ "special": true
362
+ },
363
+ "128045": {
364
+ "content": "<|reserved_special_token_37|>",
365
+ "lstrip": false,
366
+ "normalized": false,
367
+ "rstrip": false,
368
+ "single_word": false,
369
+ "special": true
370
+ },
371
+ "128046": {
372
+ "content": "<|reserved_special_token_38|>",
373
+ "lstrip": false,
374
+ "normalized": false,
375
+ "rstrip": false,
376
+ "single_word": false,
377
+ "special": true
378
+ },
379
+ "128047": {
380
+ "content": "<|reserved_special_token_39|>",
381
+ "lstrip": false,
382
+ "normalized": false,
383
+ "rstrip": false,
384
+ "single_word": false,
385
+ "special": true
386
+ },
387
+ "128048": {
388
+ "content": "<|reserved_special_token_40|>",
389
+ "lstrip": false,
390
+ "normalized": false,
391
+ "rstrip": false,
392
+ "single_word": false,
393
+ "special": true
394
+ },
395
+ "128049": {
396
+ "content": "<|reserved_special_token_41|>",
397
+ "lstrip": false,
398
+ "normalized": false,
399
+ "rstrip": false,
400
+ "single_word": false,
401
+ "special": true
402
+ },
403
+ "128050": {
404
+ "content": "<|reserved_special_token_42|>",
405
+ "lstrip": false,
406
+ "normalized": false,
407
+ "rstrip": false,
408
+ "single_word": false,
409
+ "special": true
410
+ },
411
+ "128051": {
412
+ "content": "<|reserved_special_token_43|>",
413
+ "lstrip": false,
414
+ "normalized": false,
415
+ "rstrip": false,
416
+ "single_word": false,
417
+ "special": true
418
+ },
419
+ "128052": {
420
+ "content": "<|reserved_special_token_44|>",
421
+ "lstrip": false,
422
+ "normalized": false,
423
+ "rstrip": false,
424
+ "single_word": false,
425
+ "special": true
426
+ },
427
+ "128053": {
428
+ "content": "<|reserved_special_token_45|>",
429
+ "lstrip": false,
430
+ "normalized": false,
431
+ "rstrip": false,
432
+ "single_word": false,
433
+ "special": true
434
+ },
435
+ "128054": {
436
+ "content": "<|reserved_special_token_46|>",
437
+ "lstrip": false,
438
+ "normalized": false,
439
+ "rstrip": false,
440
+ "single_word": false,
441
+ "special": true
442
+ },
443
+ "128055": {
444
+ "content": "<|reserved_special_token_47|>",
445
+ "lstrip": false,
446
+ "normalized": false,
447
+ "rstrip": false,
448
+ "single_word": false,
449
+ "special": true
450
+ },
451
+ "128056": {
452
+ "content": "<|reserved_special_token_48|>",
453
+ "lstrip": false,
454
+ "normalized": false,
455
+ "rstrip": false,
456
+ "single_word": false,
457
+ "special": true
458
+ },
459
+ "128057": {
460
+ "content": "<|reserved_special_token_49|>",
461
+ "lstrip": false,
462
+ "normalized": false,
463
+ "rstrip": false,
464
+ "single_word": false,
465
+ "special": true
466
+ },
467
+ "128058": {
468
+ "content": "<|reserved_special_token_50|>",
469
+ "lstrip": false,
470
+ "normalized": false,
471
+ "rstrip": false,
472
+ "single_word": false,
473
+ "special": true
474
+ },
475
+ "128059": {
476
+ "content": "<|reserved_special_token_51|>",
477
+ "lstrip": false,
478
+ "normalized": false,
479
+ "rstrip": false,
480
+ "single_word": false,
481
+ "special": true
482
+ },
483
+ "128060": {
484
+ "content": "<|reserved_special_token_52|>",
485
+ "lstrip": false,
486
+ "normalized": false,
487
+ "rstrip": false,
488
+ "single_word": false,
489
+ "special": true
490
+ },
491
+ "128061": {
492
+ "content": "<|reserved_special_token_53|>",
493
+ "lstrip": false,
494
+ "normalized": false,
495
+ "rstrip": false,
496
+ "single_word": false,
497
+ "special": true
498
+ },
499
+ "128062": {
500
+ "content": "<|reserved_special_token_54|>",
501
+ "lstrip": false,
502
+ "normalized": false,
503
+ "rstrip": false,
504
+ "single_word": false,
505
+ "special": true
506
+ },
507
+ "128063": {
508
+ "content": "<|reserved_special_token_55|>",
509
+ "lstrip": false,
510
+ "normalized": false,
511
+ "rstrip": false,
512
+ "single_word": false,
513
+ "special": true
514
+ },
515
+ "128064": {
516
+ "content": "<|reserved_special_token_56|>",
517
+ "lstrip": false,
518
+ "normalized": false,
519
+ "rstrip": false,
520
+ "single_word": false,
521
+ "special": true
522
+ },
523
+ "128065": {
524
+ "content": "<|reserved_special_token_57|>",
525
+ "lstrip": false,
526
+ "normalized": false,
527
+ "rstrip": false,
528
+ "single_word": false,
529
+ "special": true
530
+ },
531
+ "128066": {
532
+ "content": "<|reserved_special_token_58|>",
533
+ "lstrip": false,
534
+ "normalized": false,
535
+ "rstrip": false,
536
+ "single_word": false,
537
+ "special": true
538
+ },
539
+ "128067": {
540
+ "content": "<|reserved_special_token_59|>",
541
+ "lstrip": false,
542
+ "normalized": false,
543
+ "rstrip": false,
544
+ "single_word": false,
545
+ "special": true
546
+ },
547
+ "128068": {
548
+ "content": "<|reserved_special_token_60|>",
549
+ "lstrip": false,
550
+ "normalized": false,
551
+ "rstrip": false,
552
+ "single_word": false,
553
+ "special": true
554
+ },
555
+ "128069": {
556
+ "content": "<|reserved_special_token_61|>",
557
+ "lstrip": false,
558
+ "normalized": false,
559
+ "rstrip": false,
560
+ "single_word": false,
561
+ "special": true
562
+ },
563
+ "128070": {
564
+ "content": "<|reserved_special_token_62|>",
565
+ "lstrip": false,
566
+ "normalized": false,
567
+ "rstrip": false,
568
+ "single_word": false,
569
+ "special": true
570
+ },
571
+ "128071": {
572
+ "content": "<|reserved_special_token_63|>",
573
+ "lstrip": false,
574
+ "normalized": false,
575
+ "rstrip": false,
576
+ "single_word": false,
577
+ "special": true
578
+ },
579
+ "128072": {
580
+ "content": "<|reserved_special_token_64|>",
581
+ "lstrip": false,
582
+ "normalized": false,
583
+ "rstrip": false,
584
+ "single_word": false,
585
+ "special": true
586
+ },
587
+ "128073": {
588
+ "content": "<|reserved_special_token_65|>",
589
+ "lstrip": false,
590
+ "normalized": false,
591
+ "rstrip": false,
592
+ "single_word": false,
593
+ "special": true
594
+ },
595
+ "128074": {
596
+ "content": "<|reserved_special_token_66|>",
597
+ "lstrip": false,
598
+ "normalized": false,
599
+ "rstrip": false,
600
+ "single_word": false,
601
+ "special": true
602
+ },
603
+ "128075": {
604
+ "content": "<|reserved_special_token_67|>",
605
+ "lstrip": false,
606
+ "normalized": false,
607
+ "rstrip": false,
608
+ "single_word": false,
609
+ "special": true
610
+ },
611
+ "128076": {
612
+ "content": "<|reserved_special_token_68|>",
613
+ "lstrip": false,
614
+ "normalized": false,
615
+ "rstrip": false,
616
+ "single_word": false,
617
+ "special": true
618
+ },
619
+ "128077": {
620
+ "content": "<|reserved_special_token_69|>",
621
+ "lstrip": false,
622
+ "normalized": false,
623
+ "rstrip": false,
624
+ "single_word": false,
625
+ "special": true
626
+ },
627
+ "128078": {
628
+ "content": "<|reserved_special_token_70|>",
629
+ "lstrip": false,
630
+ "normalized": false,
631
+ "rstrip": false,
632
+ "single_word": false,
633
+ "special": true
634
+ },
635
+ "128079": {
636
+ "content": "<|reserved_special_token_71|>",
637
+ "lstrip": false,
638
+ "normalized": false,
639
+ "rstrip": false,
640
+ "single_word": false,
641
+ "special": true
642
+ },
643
+ "128080": {
644
+ "content": "<|reserved_special_token_72|>",
645
+ "lstrip": false,
646
+ "normalized": false,
647
+ "rstrip": false,
648
+ "single_word": false,
649
+ "special": true
650
+ },
651
+ "128081": {
652
+ "content": "<|reserved_special_token_73|>",
653
+ "lstrip": false,
654
+ "normalized": false,
655
+ "rstrip": false,
656
+ "single_word": false,
657
+ "special": true
658
+ },
659
+ "128082": {
660
+ "content": "<|reserved_special_token_74|>",
661
+ "lstrip": false,
662
+ "normalized": false,
663
+ "rstrip": false,
664
+ "single_word": false,
665
+ "special": true
666
+ },
667
+ "128083": {
668
+ "content": "<|reserved_special_token_75|>",
669
+ "lstrip": false,
670
+ "normalized": false,
671
+ "rstrip": false,
672
+ "single_word": false,
673
+ "special": true
674
+ },
675
+ "128084": {
676
+ "content": "<|reserved_special_token_76|>",
677
+ "lstrip": false,
678
+ "normalized": false,
679
+ "rstrip": false,
680
+ "single_word": false,
681
+ "special": true
682
+ },
683
+ "128085": {
684
+ "content": "<|reserved_special_token_77|>",
685
+ "lstrip": false,
686
+ "normalized": false,
687
+ "rstrip": false,
688
+ "single_word": false,
689
+ "special": true
690
+ },
691
+ "128086": {
692
+ "content": "<|reserved_special_token_78|>",
693
+ "lstrip": false,
694
+ "normalized": false,
695
+ "rstrip": false,
696
+ "single_word": false,
697
+ "special": true
698
+ },
699
+ "128087": {
700
+ "content": "<|reserved_special_token_79|>",
701
+ "lstrip": false,
702
+ "normalized": false,
703
+ "rstrip": false,
704
+ "single_word": false,
705
+ "special": true
706
+ },
707
+ "128088": {
708
+ "content": "<|reserved_special_token_80|>",
709
+ "lstrip": false,
710
+ "normalized": false,
711
+ "rstrip": false,
712
+ "single_word": false,
713
+ "special": true
714
+ },
715
+ "128089": {
716
+ "content": "<|reserved_special_token_81|>",
717
+ "lstrip": false,
718
+ "normalized": false,
719
+ "rstrip": false,
720
+ "single_word": false,
721
+ "special": true
722
+ },
723
+ "128090": {
724
+ "content": "<|reserved_special_token_82|>",
725
+ "lstrip": false,
726
+ "normalized": false,
727
+ "rstrip": false,
728
+ "single_word": false,
729
+ "special": true
730
+ },
731
+ "128091": {
732
+ "content": "<|reserved_special_token_83|>",
733
+ "lstrip": false,
734
+ "normalized": false,
735
+ "rstrip": false,
736
+ "single_word": false,
737
+ "special": true
738
+ },
739
+ "128092": {
740
+ "content": "<|reserved_special_token_84|>",
741
+ "lstrip": false,
742
+ "normalized": false,
743
+ "rstrip": false,
744
+ "single_word": false,
745
+ "special": true
746
+ },
747
+ "128093": {
748
+ "content": "<|reserved_special_token_85|>",
749
+ "lstrip": false,
750
+ "normalized": false,
751
+ "rstrip": false,
752
+ "single_word": false,
753
+ "special": true
754
+ },
755
+ "128094": {
756
+ "content": "<|reserved_special_token_86|>",
757
+ "lstrip": false,
758
+ "normalized": false,
759
+ "rstrip": false,
760
+ "single_word": false,
761
+ "special": true
762
+ },
763
+ "128095": {
764
+ "content": "<|reserved_special_token_87|>",
765
+ "lstrip": false,
766
+ "normalized": false,
767
+ "rstrip": false,
768
+ "single_word": false,
769
+ "special": true
770
+ },
771
+ "128096": {
772
+ "content": "<|reserved_special_token_88|>",
773
+ "lstrip": false,
774
+ "normalized": false,
775
+ "rstrip": false,
776
+ "single_word": false,
777
+ "special": true
778
+ },
779
+ "128097": {
780
+ "content": "<|reserved_special_token_89|>",
781
+ "lstrip": false,
782
+ "normalized": false,
783
+ "rstrip": false,
784
+ "single_word": false,
785
+ "special": true
786
+ },
787
+ "128098": {
788
+ "content": "<|reserved_special_token_90|>",
789
+ "lstrip": false,
790
+ "normalized": false,
791
+ "rstrip": false,
792
+ "single_word": false,
793
+ "special": true
794
+ },
795
+ "128099": {
796
+ "content": "<|reserved_special_token_91|>",
797
+ "lstrip": false,
798
+ "normalized": false,
799
+ "rstrip": false,
800
+ "single_word": false,
801
+ "special": true
802
+ },
803
+ "128100": {
804
+ "content": "<|reserved_special_token_92|>",
805
+ "lstrip": false,
806
+ "normalized": false,
807
+ "rstrip": false,
808
+ "single_word": false,
809
+ "special": true
810
+ },
811
+ "128101": {
812
+ "content": "<|reserved_special_token_93|>",
813
+ "lstrip": false,
814
+ "normalized": false,
815
+ "rstrip": false,
816
+ "single_word": false,
817
+ "special": true
818
+ },
819
+ "128102": {
820
+ "content": "<|reserved_special_token_94|>",
821
+ "lstrip": false,
822
+ "normalized": false,
823
+ "rstrip": false,
824
+ "single_word": false,
825
+ "special": true
826
+ },
827
+ "128103": {
828
+ "content": "<|reserved_special_token_95|>",
829
+ "lstrip": false,
830
+ "normalized": false,
831
+ "rstrip": false,
832
+ "single_word": false,
833
+ "special": true
834
+ },
835
+ "128104": {
836
+ "content": "<|reserved_special_token_96|>",
837
+ "lstrip": false,
838
+ "normalized": false,
839
+ "rstrip": false,
840
+ "single_word": false,
841
+ "special": true
842
+ },
843
+ "128105": {
844
+ "content": "<|reserved_special_token_97|>",
845
+ "lstrip": false,
846
+ "normalized": false,
847
+ "rstrip": false,
848
+ "single_word": false,
849
+ "special": true
850
+ },
851
+ "128106": {
852
+ "content": "<|reserved_special_token_98|>",
853
+ "lstrip": false,
854
+ "normalized": false,
855
+ "rstrip": false,
856
+ "single_word": false,
857
+ "special": true
858
+ },
859
+ "128107": {
860
+ "content": "<|reserved_special_token_99|>",
861
+ "lstrip": false,
862
+ "normalized": false,
863
+ "rstrip": false,
864
+ "single_word": false,
865
+ "special": true
866
+ },
867
+ "128108": {
868
+ "content": "<|reserved_special_token_100|>",
869
+ "lstrip": false,
870
+ "normalized": false,
871
+ "rstrip": false,
872
+ "single_word": false,
873
+ "special": true
874
+ },
875
+ "128109": {
876
+ "content": "<|reserved_special_token_101|>",
877
+ "lstrip": false,
878
+ "normalized": false,
879
+ "rstrip": false,
880
+ "single_word": false,
881
+ "special": true
882
+ },
883
+ "128110": {
884
+ "content": "<|reserved_special_token_102|>",
885
+ "lstrip": false,
886
+ "normalized": false,
887
+ "rstrip": false,
888
+ "single_word": false,
889
+ "special": true
890
+ },
891
+ "128111": {
892
+ "content": "<|reserved_special_token_103|>",
893
+ "lstrip": false,
894
+ "normalized": false,
895
+ "rstrip": false,
896
+ "single_word": false,
897
+ "special": true
898
+ },
899
+ "128112": {
900
+ "content": "<|reserved_special_token_104|>",
901
+ "lstrip": false,
902
+ "normalized": false,
903
+ "rstrip": false,
904
+ "single_word": false,
905
+ "special": true
906
+ },
907
+ "128113": {
908
+ "content": "<|reserved_special_token_105|>",
909
+ "lstrip": false,
910
+ "normalized": false,
911
+ "rstrip": false,
912
+ "single_word": false,
913
+ "special": true
914
+ },
915
+ "128114": {
916
+ "content": "<|reserved_special_token_106|>",
917
+ "lstrip": false,
918
+ "normalized": false,
919
+ "rstrip": false,
920
+ "single_word": false,
921
+ "special": true
922
+ },
923
+ "128115": {
924
+ "content": "<|reserved_special_token_107|>",
925
+ "lstrip": false,
926
+ "normalized": false,
927
+ "rstrip": false,
928
+ "single_word": false,
929
+ "special": true
930
+ },
931
+ "128116": {
932
+ "content": "<|reserved_special_token_108|>",
933
+ "lstrip": false,
934
+ "normalized": false,
935
+ "rstrip": false,
936
+ "single_word": false,
937
+ "special": true
938
+ },
939
+ "128117": {
940
+ "content": "<|reserved_special_token_109|>",
941
+ "lstrip": false,
942
+ "normalized": false,
943
+ "rstrip": false,
944
+ "single_word": false,
945
+ "special": true
946
+ },
947
+ "128118": {
948
+ "content": "<|reserved_special_token_110|>",
949
+ "lstrip": false,
950
+ "normalized": false,
951
+ "rstrip": false,
952
+ "single_word": false,
953
+ "special": true
954
+ },
955
+ "128119": {
956
+ "content": "<|reserved_special_token_111|>",
957
+ "lstrip": false,
958
+ "normalized": false,
959
+ "rstrip": false,
960
+ "single_word": false,
961
+ "special": true
962
+ },
963
+ "128120": {
964
+ "content": "<|reserved_special_token_112|>",
965
+ "lstrip": false,
966
+ "normalized": false,
967
+ "rstrip": false,
968
+ "single_word": false,
969
+ "special": true
970
+ },
971
+ "128121": {
972
+ "content": "<|reserved_special_token_113|>",
973
+ "lstrip": false,
974
+ "normalized": false,
975
+ "rstrip": false,
976
+ "single_word": false,
977
+ "special": true
978
+ },
979
+ "128122": {
980
+ "content": "<|reserved_special_token_114|>",
981
+ "lstrip": false,
982
+ "normalized": false,
983
+ "rstrip": false,
984
+ "single_word": false,
985
+ "special": true
986
+ },
987
+ "128123": {
988
+ "content": "<|reserved_special_token_115|>",
989
+ "lstrip": false,
990
+ "normalized": false,
991
+ "rstrip": false,
992
+ "single_word": false,
993
+ "special": true
994
+ },
995
+ "128124": {
996
+ "content": "<|reserved_special_token_116|>",
997
+ "lstrip": false,
998
+ "normalized": false,
999
+ "rstrip": false,
1000
+ "single_word": false,
1001
+ "special": true
1002
+ },
1003
+ "128125": {
1004
+ "content": "<|reserved_special_token_117|>",
1005
+ "lstrip": false,
1006
+ "normalized": false,
1007
+ "rstrip": false,
1008
+ "single_word": false,
1009
+ "special": true
1010
+ },
1011
+ "128126": {
1012
+ "content": "<|reserved_special_token_118|>",
1013
+ "lstrip": false,
1014
+ "normalized": false,
1015
+ "rstrip": false,
1016
+ "single_word": false,
1017
+ "special": true
1018
+ },
1019
+ "128127": {
1020
+ "content": "<|reserved_special_token_119|>",
1021
+ "lstrip": false,
1022
+ "normalized": false,
1023
+ "rstrip": false,
1024
+ "single_word": false,
1025
+ "special": true
1026
+ },
1027
+ "128128": {
1028
+ "content": "<|reserved_special_token_120|>",
1029
+ "lstrip": false,
1030
+ "normalized": false,
1031
+ "rstrip": false,
1032
+ "single_word": false,
1033
+ "special": true
1034
+ },
1035
+ "128129": {
1036
+ "content": "<|reserved_special_token_121|>",
1037
+ "lstrip": false,
1038
+ "normalized": false,
1039
+ "rstrip": false,
1040
+ "single_word": false,
1041
+ "special": true
1042
+ },
1043
+ "128130": {
1044
+ "content": "<|reserved_special_token_122|>",
1045
+ "lstrip": false,
1046
+ "normalized": false,
1047
+ "rstrip": false,
1048
+ "single_word": false,
1049
+ "special": true
1050
+ },
1051
+ "128131": {
1052
+ "content": "<|reserved_special_token_123|>",
1053
+ "lstrip": false,
1054
+ "normalized": false,
1055
+ "rstrip": false,
1056
+ "single_word": false,
1057
+ "special": true
1058
+ },
1059
+ "128132": {
1060
+ "content": "<|reserved_special_token_124|>",
1061
+ "lstrip": false,
1062
+ "normalized": false,
1063
+ "rstrip": false,
1064
+ "single_word": false,
1065
+ "special": true
1066
+ },
1067
+ "128133": {
1068
+ "content": "<|reserved_special_token_125|>",
1069
+ "lstrip": false,
1070
+ "normalized": false,
1071
+ "rstrip": false,
1072
+ "single_word": false,
1073
+ "special": true
1074
+ },
1075
+ "128134": {
1076
+ "content": "<|reserved_special_token_126|>",
1077
+ "lstrip": false,
1078
+ "normalized": false,
1079
+ "rstrip": false,
1080
+ "single_word": false,
1081
+ "special": true
1082
+ },
1083
+ "128135": {
1084
+ "content": "<|reserved_special_token_127|>",
1085
+ "lstrip": false,
1086
+ "normalized": false,
1087
+ "rstrip": false,
1088
+ "single_word": false,
1089
+ "special": true
1090
+ },
1091
+ "128136": {
1092
+ "content": "<|reserved_special_token_128|>",
1093
+ "lstrip": false,
1094
+ "normalized": false,
1095
+ "rstrip": false,
1096
+ "single_word": false,
1097
+ "special": true
1098
+ },
1099
+ "128137": {
1100
+ "content": "<|reserved_special_token_129|>",
1101
+ "lstrip": false,
1102
+ "normalized": false,
1103
+ "rstrip": false,
1104
+ "single_word": false,
1105
+ "special": true
1106
+ },
1107
+ "128138": {
1108
+ "content": "<|reserved_special_token_130|>",
1109
+ "lstrip": false,
1110
+ "normalized": false,
1111
+ "rstrip": false,
1112
+ "single_word": false,
1113
+ "special": true
1114
+ },
1115
+ "128139": {
1116
+ "content": "<|reserved_special_token_131|>",
1117
+ "lstrip": false,
1118
+ "normalized": false,
1119
+ "rstrip": false,
1120
+ "single_word": false,
1121
+ "special": true
1122
+ },
1123
+ "128140": {
1124
+ "content": "<|reserved_special_token_132|>",
1125
+ "lstrip": false,
1126
+ "normalized": false,
1127
+ "rstrip": false,
1128
+ "single_word": false,
1129
+ "special": true
1130
+ },
1131
+ "128141": {
1132
+ "content": "<|reserved_special_token_133|>",
1133
+ "lstrip": false,
1134
+ "normalized": false,
1135
+ "rstrip": false,
1136
+ "single_word": false,
1137
+ "special": true
1138
+ },
1139
+ "128142": {
1140
+ "content": "<|reserved_special_token_134|>",
1141
+ "lstrip": false,
1142
+ "normalized": false,
1143
+ "rstrip": false,
1144
+ "single_word": false,
1145
+ "special": true
1146
+ },
1147
+ "128143": {
1148
+ "content": "<|reserved_special_token_135|>",
1149
+ "lstrip": false,
1150
+ "normalized": false,
1151
+ "rstrip": false,
1152
+ "single_word": false,
1153
+ "special": true
1154
+ },
1155
+ "128144": {
1156
+ "content": "<|reserved_special_token_136|>",
1157
+ "lstrip": false,
1158
+ "normalized": false,
1159
+ "rstrip": false,
1160
+ "single_word": false,
1161
+ "special": true
1162
+ },
1163
+ "128145": {
1164
+ "content": "<|reserved_special_token_137|>",
1165
+ "lstrip": false,
1166
+ "normalized": false,
1167
+ "rstrip": false,
1168
+ "single_word": false,
1169
+ "special": true
1170
+ },
1171
+ "128146": {
1172
+ "content": "<|reserved_special_token_138|>",
1173
+ "lstrip": false,
1174
+ "normalized": false,
1175
+ "rstrip": false,
1176
+ "single_word": false,
1177
+ "special": true
1178
+ },
1179
+ "128147": {
1180
+ "content": "<|reserved_special_token_139|>",
1181
+ "lstrip": false,
1182
+ "normalized": false,
1183
+ "rstrip": false,
1184
+ "single_word": false,
1185
+ "special": true
1186
+ },
1187
+ "128148": {
1188
+ "content": "<|reserved_special_token_140|>",
1189
+ "lstrip": false,
1190
+ "normalized": false,
1191
+ "rstrip": false,
1192
+ "single_word": false,
1193
+ "special": true
1194
+ },
1195
+ "128149": {
1196
+ "content": "<|reserved_special_token_141|>",
1197
+ "lstrip": false,
1198
+ "normalized": false,
1199
+ "rstrip": false,
1200
+ "single_word": false,
1201
+ "special": true
1202
+ },
1203
+ "128150": {
1204
+ "content": "<|reserved_special_token_142|>",
1205
+ "lstrip": false,
1206
+ "normalized": false,
1207
+ "rstrip": false,
1208
+ "single_word": false,
1209
+ "special": true
1210
+ },
1211
+ "128151": {
1212
+ "content": "<|reserved_special_token_143|>",
1213
+ "lstrip": false,
1214
+ "normalized": false,
1215
+ "rstrip": false,
1216
+ "single_word": false,
1217
+ "special": true
1218
+ },
1219
+ "128152": {
1220
+ "content": "<|reserved_special_token_144|>",
1221
+ "lstrip": false,
1222
+ "normalized": false,
1223
+ "rstrip": false,
1224
+ "single_word": false,
1225
+ "special": true
1226
+ },
1227
+ "128153": {
1228
+ "content": "<|reserved_special_token_145|>",
1229
+ "lstrip": false,
1230
+ "normalized": false,
1231
+ "rstrip": false,
1232
+ "single_word": false,
1233
+ "special": true
1234
+ },
1235
+ "128154": {
1236
+ "content": "<|reserved_special_token_146|>",
1237
+ "lstrip": false,
1238
+ "normalized": false,
1239
+ "rstrip": false,
1240
+ "single_word": false,
1241
+ "special": true
1242
+ },
1243
+ "128155": {
1244
+ "content": "<|reserved_special_token_147|>",
1245
+ "lstrip": false,
1246
+ "normalized": false,
1247
+ "rstrip": false,
1248
+ "single_word": false,
1249
+ "special": true
1250
+ },
1251
+ "128156": {
1252
+ "content": "<|reserved_special_token_148|>",
1253
+ "lstrip": false,
1254
+ "normalized": false,
1255
+ "rstrip": false,
1256
+ "single_word": false,
1257
+ "special": true
1258
+ },
1259
+ "128157": {
1260
+ "content": "<|reserved_special_token_149|>",
1261
+ "lstrip": false,
1262
+ "normalized": false,
1263
+ "rstrip": false,
1264
+ "single_word": false,
1265
+ "special": true
1266
+ },
1267
+ "128158": {
1268
+ "content": "<|reserved_special_token_150|>",
1269
+ "lstrip": false,
1270
+ "normalized": false,
1271
+ "rstrip": false,
1272
+ "single_word": false,
1273
+ "special": true
1274
+ },
1275
+ "128159": {
1276
+ "content": "<|reserved_special_token_151|>",
1277
+ "lstrip": false,
1278
+ "normalized": false,
1279
+ "rstrip": false,
1280
+ "single_word": false,
1281
+ "special": true
1282
+ },
1283
+ "128160": {
1284
+ "content": "<|reserved_special_token_152|>",
1285
+ "lstrip": false,
1286
+ "normalized": false,
1287
+ "rstrip": false,
1288
+ "single_word": false,
1289
+ "special": true
1290
+ },
1291
+ "128161": {
1292
+ "content": "<|reserved_special_token_153|>",
1293
+ "lstrip": false,
1294
+ "normalized": false,
1295
+ "rstrip": false,
1296
+ "single_word": false,
1297
+ "special": true
1298
+ },
1299
+ "128162": {
1300
+ "content": "<|reserved_special_token_154|>",
1301
+ "lstrip": false,
1302
+ "normalized": false,
1303
+ "rstrip": false,
1304
+ "single_word": false,
1305
+ "special": true
1306
+ },
1307
+ "128163": {
1308
+ "content": "<|reserved_special_token_155|>",
1309
+ "lstrip": false,
1310
+ "normalized": false,
1311
+ "rstrip": false,
1312
+ "single_word": false,
1313
+ "special": true
1314
+ },
1315
+ "128164": {
1316
+ "content": "<|reserved_special_token_156|>",
1317
+ "lstrip": false,
1318
+ "normalized": false,
1319
+ "rstrip": false,
1320
+ "single_word": false,
1321
+ "special": true
1322
+ },
1323
+ "128165": {
1324
+ "content": "<|reserved_special_token_157|>",
1325
+ "lstrip": false,
1326
+ "normalized": false,
1327
+ "rstrip": false,
1328
+ "single_word": false,
1329
+ "special": true
1330
+ },
1331
+ "128166": {
1332
+ "content": "<|reserved_special_token_158|>",
1333
+ "lstrip": false,
1334
+ "normalized": false,
1335
+ "rstrip": false,
1336
+ "single_word": false,
1337
+ "special": true
1338
+ },
1339
+ "128167": {
1340
+ "content": "<|reserved_special_token_159|>",
1341
+ "lstrip": false,
1342
+ "normalized": false,
1343
+ "rstrip": false,
1344
+ "single_word": false,
1345
+ "special": true
1346
+ },
1347
+ "128168": {
1348
+ "content": "<|reserved_special_token_160|>",
1349
+ "lstrip": false,
1350
+ "normalized": false,
1351
+ "rstrip": false,
1352
+ "single_word": false,
1353
+ "special": true
1354
+ },
1355
+ "128169": {
1356
+ "content": "<|reserved_special_token_161|>",
1357
+ "lstrip": false,
1358
+ "normalized": false,
1359
+ "rstrip": false,
1360
+ "single_word": false,
1361
+ "special": true
1362
+ },
1363
+ "128170": {
1364
+ "content": "<|reserved_special_token_162|>",
1365
+ "lstrip": false,
1366
+ "normalized": false,
1367
+ "rstrip": false,
1368
+ "single_word": false,
1369
+ "special": true
1370
+ },
1371
+ "128171": {
1372
+ "content": "<|reserved_special_token_163|>",
1373
+ "lstrip": false,
1374
+ "normalized": false,
1375
+ "rstrip": false,
1376
+ "single_word": false,
1377
+ "special": true
1378
+ },
1379
+ "128172": {
1380
+ "content": "<|reserved_special_token_164|>",
1381
+ "lstrip": false,
1382
+ "normalized": false,
1383
+ "rstrip": false,
1384
+ "single_word": false,
1385
+ "special": true
1386
+ },
1387
+ "128173": {
1388
+ "content": "<|reserved_special_token_165|>",
1389
+ "lstrip": false,
1390
+ "normalized": false,
1391
+ "rstrip": false,
1392
+ "single_word": false,
1393
+ "special": true
1394
+ },
1395
+ "128174": {
1396
+ "content": "<|reserved_special_token_166|>",
1397
+ "lstrip": false,
1398
+ "normalized": false,
1399
+ "rstrip": false,
1400
+ "single_word": false,
1401
+ "special": true
1402
+ },
1403
+ "128175": {
1404
+ "content": "<|reserved_special_token_167|>",
1405
+ "lstrip": false,
1406
+ "normalized": false,
1407
+ "rstrip": false,
1408
+ "single_word": false,
1409
+ "special": true
1410
+ },
1411
+ "128176": {
1412
+ "content": "<|reserved_special_token_168|>",
1413
+ "lstrip": false,
1414
+ "normalized": false,
1415
+ "rstrip": false,
1416
+ "single_word": false,
1417
+ "special": true
1418
+ },
1419
+ "128177": {
1420
+ "content": "<|reserved_special_token_169|>",
1421
+ "lstrip": false,
1422
+ "normalized": false,
1423
+ "rstrip": false,
1424
+ "single_word": false,
1425
+ "special": true
1426
+ },
1427
+ "128178": {
1428
+ "content": "<|reserved_special_token_170|>",
1429
+ "lstrip": false,
1430
+ "normalized": false,
1431
+ "rstrip": false,
1432
+ "single_word": false,
1433
+ "special": true
1434
+ },
1435
+ "128179": {
1436
+ "content": "<|reserved_special_token_171|>",
1437
+ "lstrip": false,
1438
+ "normalized": false,
1439
+ "rstrip": false,
1440
+ "single_word": false,
1441
+ "special": true
1442
+ },
1443
+ "128180": {
1444
+ "content": "<|reserved_special_token_172|>",
1445
+ "lstrip": false,
1446
+ "normalized": false,
1447
+ "rstrip": false,
1448
+ "single_word": false,
1449
+ "special": true
1450
+ },
1451
+ "128181": {
1452
+ "content": "<|reserved_special_token_173|>",
1453
+ "lstrip": false,
1454
+ "normalized": false,
1455
+ "rstrip": false,
1456
+ "single_word": false,
1457
+ "special": true
1458
+ },
1459
+ "128182": {
1460
+ "content": "<|reserved_special_token_174|>",
1461
+ "lstrip": false,
1462
+ "normalized": false,
1463
+ "rstrip": false,
1464
+ "single_word": false,
1465
+ "special": true
1466
+ },
1467
+ "128183": {
1468
+ "content": "<|reserved_special_token_175|>",
1469
+ "lstrip": false,
1470
+ "normalized": false,
1471
+ "rstrip": false,
1472
+ "single_word": false,
1473
+ "special": true
1474
+ },
1475
+ "128184": {
1476
+ "content": "<|reserved_special_token_176|>",
1477
+ "lstrip": false,
1478
+ "normalized": false,
1479
+ "rstrip": false,
1480
+ "single_word": false,
1481
+ "special": true
1482
+ },
1483
+ "128185": {
1484
+ "content": "<|reserved_special_token_177|>",
1485
+ "lstrip": false,
1486
+ "normalized": false,
1487
+ "rstrip": false,
1488
+ "single_word": false,
1489
+ "special": true
1490
+ },
1491
+ "128186": {
1492
+ "content": "<|reserved_special_token_178|>",
1493
+ "lstrip": false,
1494
+ "normalized": false,
1495
+ "rstrip": false,
1496
+ "single_word": false,
1497
+ "special": true
1498
+ },
1499
+ "128187": {
1500
+ "content": "<|reserved_special_token_179|>",
1501
+ "lstrip": false,
1502
+ "normalized": false,
1503
+ "rstrip": false,
1504
+ "single_word": false,
1505
+ "special": true
1506
+ },
1507
+ "128188": {
1508
+ "content": "<|reserved_special_token_180|>",
1509
+ "lstrip": false,
1510
+ "normalized": false,
1511
+ "rstrip": false,
1512
+ "single_word": false,
1513
+ "special": true
1514
+ },
1515
+ "128189": {
1516
+ "content": "<|reserved_special_token_181|>",
1517
+ "lstrip": false,
1518
+ "normalized": false,
1519
+ "rstrip": false,
1520
+ "single_word": false,
1521
+ "special": true
1522
+ },
1523
+ "128190": {
1524
+ "content": "<|reserved_special_token_182|>",
1525
+ "lstrip": false,
1526
+ "normalized": false,
1527
+ "rstrip": false,
1528
+ "single_word": false,
1529
+ "special": true
1530
+ },
1531
+ "128191": {
1532
+ "content": "<|reserved_special_token_183|>",
1533
+ "lstrip": false,
1534
+ "normalized": false,
1535
+ "rstrip": false,
1536
+ "single_word": false,
1537
+ "special": true
1538
+ },
1539
+ "128192": {
1540
+ "content": "<|reserved_special_token_184|>",
1541
+ "lstrip": false,
1542
+ "normalized": false,
1543
+ "rstrip": false,
1544
+ "single_word": false,
1545
+ "special": true
1546
+ },
1547
+ "128193": {
1548
+ "content": "<|reserved_special_token_185|>",
1549
+ "lstrip": false,
1550
+ "normalized": false,
1551
+ "rstrip": false,
1552
+ "single_word": false,
1553
+ "special": true
1554
+ },
1555
+ "128194": {
1556
+ "content": "<|reserved_special_token_186|>",
1557
+ "lstrip": false,
1558
+ "normalized": false,
1559
+ "rstrip": false,
1560
+ "single_word": false,
1561
+ "special": true
1562
+ },
1563
+ "128195": {
1564
+ "content": "<|reserved_special_token_187|>",
1565
+ "lstrip": false,
1566
+ "normalized": false,
1567
+ "rstrip": false,
1568
+ "single_word": false,
1569
+ "special": true
1570
+ },
1571
+ "128196": {
1572
+ "content": "<|reserved_special_token_188|>",
1573
+ "lstrip": false,
1574
+ "normalized": false,
1575
+ "rstrip": false,
1576
+ "single_word": false,
1577
+ "special": true
1578
+ },
1579
+ "128197": {
1580
+ "content": "<|reserved_special_token_189|>",
1581
+ "lstrip": false,
1582
+ "normalized": false,
1583
+ "rstrip": false,
1584
+ "single_word": false,
1585
+ "special": true
1586
+ },
1587
+ "128198": {
1588
+ "content": "<|reserved_special_token_190|>",
1589
+ "lstrip": false,
1590
+ "normalized": false,
1591
+ "rstrip": false,
1592
+ "single_word": false,
1593
+ "special": true
1594
+ },
1595
+ "128199": {
1596
+ "content": "<|reserved_special_token_191|>",
1597
+ "lstrip": false,
1598
+ "normalized": false,
1599
+ "rstrip": false,
1600
+ "single_word": false,
1601
+ "special": true
1602
+ },
1603
+ "128200": {
1604
+ "content": "<|reserved_special_token_192|>",
1605
+ "lstrip": false,
1606
+ "normalized": false,
1607
+ "rstrip": false,
1608
+ "single_word": false,
1609
+ "special": true
1610
+ },
1611
+ "128201": {
1612
+ "content": "<|reserved_special_token_193|>",
1613
+ "lstrip": false,
1614
+ "normalized": false,
1615
+ "rstrip": false,
1616
+ "single_word": false,
1617
+ "special": true
1618
+ },
1619
+ "128202": {
1620
+ "content": "<|reserved_special_token_194|>",
1621
+ "lstrip": false,
1622
+ "normalized": false,
1623
+ "rstrip": false,
1624
+ "single_word": false,
1625
+ "special": true
1626
+ },
1627
+ "128203": {
1628
+ "content": "<|reserved_special_token_195|>",
1629
+ "lstrip": false,
1630
+ "normalized": false,
1631
+ "rstrip": false,
1632
+ "single_word": false,
1633
+ "special": true
1634
+ },
1635
+ "128204": {
1636
+ "content": "<|reserved_special_token_196|>",
1637
+ "lstrip": false,
1638
+ "normalized": false,
1639
+ "rstrip": false,
1640
+ "single_word": false,
1641
+ "special": true
1642
+ },
1643
+ "128205": {
1644
+ "content": "<|reserved_special_token_197|>",
1645
+ "lstrip": false,
1646
+ "normalized": false,
1647
+ "rstrip": false,
1648
+ "single_word": false,
1649
+ "special": true
1650
+ },
1651
+ "128206": {
1652
+ "content": "<|reserved_special_token_198|>",
1653
+ "lstrip": false,
1654
+ "normalized": false,
1655
+ "rstrip": false,
1656
+ "single_word": false,
1657
+ "special": true
1658
+ },
1659
+ "128207": {
1660
+ "content": "<|reserved_special_token_199|>",
1661
+ "lstrip": false,
1662
+ "normalized": false,
1663
+ "rstrip": false,
1664
+ "single_word": false,
1665
+ "special": true
1666
+ },
1667
+ "128208": {
1668
+ "content": "<|reserved_special_token_200|>",
1669
+ "lstrip": false,
1670
+ "normalized": false,
1671
+ "rstrip": false,
1672
+ "single_word": false,
1673
+ "special": true
1674
+ },
1675
+ "128209": {
1676
+ "content": "<|reserved_special_token_201|>",
1677
+ "lstrip": false,
1678
+ "normalized": false,
1679
+ "rstrip": false,
1680
+ "single_word": false,
1681
+ "special": true
1682
+ },
1683
+ "128210": {
1684
+ "content": "<|reserved_special_token_202|>",
1685
+ "lstrip": false,
1686
+ "normalized": false,
1687
+ "rstrip": false,
1688
+ "single_word": false,
1689
+ "special": true
1690
+ },
1691
+ "128211": {
1692
+ "content": "<|reserved_special_token_203|>",
1693
+ "lstrip": false,
1694
+ "normalized": false,
1695
+ "rstrip": false,
1696
+ "single_word": false,
1697
+ "special": true
1698
+ },
1699
+ "128212": {
1700
+ "content": "<|reserved_special_token_204|>",
1701
+ "lstrip": false,
1702
+ "normalized": false,
1703
+ "rstrip": false,
1704
+ "single_word": false,
1705
+ "special": true
1706
+ },
1707
+ "128213": {
1708
+ "content": "<|reserved_special_token_205|>",
1709
+ "lstrip": false,
1710
+ "normalized": false,
1711
+ "rstrip": false,
1712
+ "single_word": false,
1713
+ "special": true
1714
+ },
1715
+ "128214": {
1716
+ "content": "<|reserved_special_token_206|>",
1717
+ "lstrip": false,
1718
+ "normalized": false,
1719
+ "rstrip": false,
1720
+ "single_word": false,
1721
+ "special": true
1722
+ },
1723
+ "128215": {
1724
+ "content": "<|reserved_special_token_207|>",
1725
+ "lstrip": false,
1726
+ "normalized": false,
1727
+ "rstrip": false,
1728
+ "single_word": false,
1729
+ "special": true
1730
+ },
1731
+ "128216": {
1732
+ "content": "<|reserved_special_token_208|>",
1733
+ "lstrip": false,
1734
+ "normalized": false,
1735
+ "rstrip": false,
1736
+ "single_word": false,
1737
+ "special": true
1738
+ },
1739
+ "128217": {
1740
+ "content": "<|reserved_special_token_209|>",
1741
+ "lstrip": false,
1742
+ "normalized": false,
1743
+ "rstrip": false,
1744
+ "single_word": false,
1745
+ "special": true
1746
+ },
1747
+ "128218": {
1748
+ "content": "<|reserved_special_token_210|>",
1749
+ "lstrip": false,
1750
+ "normalized": false,
1751
+ "rstrip": false,
1752
+ "single_word": false,
1753
+ "special": true
1754
+ },
1755
+ "128219": {
1756
+ "content": "<|reserved_special_token_211|>",
1757
+ "lstrip": false,
1758
+ "normalized": false,
1759
+ "rstrip": false,
1760
+ "single_word": false,
1761
+ "special": true
1762
+ },
1763
+ "128220": {
1764
+ "content": "<|reserved_special_token_212|>",
1765
+ "lstrip": false,
1766
+ "normalized": false,
1767
+ "rstrip": false,
1768
+ "single_word": false,
1769
+ "special": true
1770
+ },
1771
+ "128221": {
1772
+ "content": "<|reserved_special_token_213|>",
1773
+ "lstrip": false,
1774
+ "normalized": false,
1775
+ "rstrip": false,
1776
+ "single_word": false,
1777
+ "special": true
1778
+ },
1779
+ "128222": {
1780
+ "content": "<|reserved_special_token_214|>",
1781
+ "lstrip": false,
1782
+ "normalized": false,
1783
+ "rstrip": false,
1784
+ "single_word": false,
1785
+ "special": true
1786
+ },
1787
+ "128223": {
1788
+ "content": "<|reserved_special_token_215|>",
1789
+ "lstrip": false,
1790
+ "normalized": false,
1791
+ "rstrip": false,
1792
+ "single_word": false,
1793
+ "special": true
1794
+ },
1795
+ "128224": {
1796
+ "content": "<|reserved_special_token_216|>",
1797
+ "lstrip": false,
1798
+ "normalized": false,
1799
+ "rstrip": false,
1800
+ "single_word": false,
1801
+ "special": true
1802
+ },
1803
+ "128225": {
1804
+ "content": "<|reserved_special_token_217|>",
1805
+ "lstrip": false,
1806
+ "normalized": false,
1807
+ "rstrip": false,
1808
+ "single_word": false,
1809
+ "special": true
1810
+ },
1811
+ "128226": {
1812
+ "content": "<|reserved_special_token_218|>",
1813
+ "lstrip": false,
1814
+ "normalized": false,
1815
+ "rstrip": false,
1816
+ "single_word": false,
1817
+ "special": true
1818
+ },
1819
+ "128227": {
1820
+ "content": "<think>",
1821
+ "lstrip": false,
1822
+ "normalized": false,
1823
+ "rstrip": false,
1824
+ "single_word": false,
1825
+ "special": false
1826
+ },
1827
+ "128228": {
1828
+ "content": "</think>",
1829
+ "lstrip": false,
1830
+ "normalized": false,
1831
+ "rstrip": false,
1832
+ "single_word": false,
1833
+ "special": false
1834
+ },
1835
+ "128229": {
1836
+ "content": "<answer>",
1837
+ "lstrip": false,
1838
+ "normalized": false,
1839
+ "rstrip": false,
1840
+ "single_word": false,
1841
+ "special": false
1842
+ },
1843
+ "128230": {
1844
+ "content": "</answer>",
1845
+ "lstrip": false,
1846
+ "normalized": false,
1847
+ "rstrip": false,
1848
+ "single_word": false,
1849
+ "special": false
1850
+ },
1851
+ "128231": {
1852
+ "content": "<|search_begin|>",
1853
+ "lstrip": false,
1854
+ "normalized": false,
1855
+ "rstrip": false,
1856
+ "single_word": false,
1857
+ "special": false
1858
+ },
1859
+ "128232": {
1860
+ "content": "<|search_end|>",
1861
+ "lstrip": false,
1862
+ "normalized": false,
1863
+ "rstrip": false,
1864
+ "single_word": false,
1865
+ "special": false
1866
+ },
1867
+ "128233": {
1868
+ "content": "<|fim_pad|>",
1869
+ "lstrip": false,
1870
+ "normalized": false,
1871
+ "rstrip": false,
1872
+ "single_word": false,
1873
+ "special": false
1874
+ },
1875
+ "128234": {
1876
+ "content": "<|repo_name|>",
1877
+ "lstrip": false,
1878
+ "normalized": false,
1879
+ "rstrip": false,
1880
+ "single_word": false,
1881
+ "special": false
1882
+ },
1883
+ "128235": {
1884
+ "content": "<|file_sep|>",
1885
+ "lstrip": false,
1886
+ "normalized": false,
1887
+ "rstrip": false,
1888
+ "single_word": false,
1889
+ "special": false
1890
+ },
1891
+ "128236": {
1892
+ "content": "<|User|>",
1893
+ "lstrip": false,
1894
+ "normalized": false,
1895
+ "rstrip": false,
1896
+ "single_word": false,
1897
+ "special": false
1898
+ },
1899
+ "128237": {
1900
+ "content": "<|Assistant|>",
1901
+ "lstrip": false,
1902
+ "normalized": false,
1903
+ "rstrip": false,
1904
+ "single_word": false,
1905
+ "special": false
1906
+ },
1907
+ "128238": {
1908
+ "content": "<|EOT|>",
1909
+ "lstrip": false,
1910
+ "normalized": false,
1911
+ "rstrip": false,
1912
+ "single_word": false,
1913
+ "special": false
1914
+ },
1915
+ "128239": {
1916
+ "content": "<|begin_of_tool_description|>",
1917
+ "lstrip": false,
1918
+ "normalized": false,
1919
+ "rstrip": false,
1920
+ "single_word": false,
1921
+ "special": false
1922
+ },
1923
+ "128240": {
1924
+ "content": "<|end_of_tool_description|>",
1925
+ "lstrip": false,
1926
+ "normalized": false,
1927
+ "rstrip": false,
1928
+ "single_word": false,
1929
+ "special": false
1930
+ },
1931
+ "128241": {
1932
+ "content": "<tools>",
1933
+ "lstrip": false,
1934
+ "normalized": false,
1935
+ "rstrip": false,
1936
+ "single_word": false,
1937
+ "special": false
1938
+ },
1939
+ "128242": {
1940
+ "content": "</tools>",
1941
+ "lstrip": false,
1942
+ "normalized": false,
1943
+ "rstrip": false,
1944
+ "single_word": false,
1945
+ "special": false
1946
+ },
1947
+ "128243": {
1948
+ "content": "<|tool_calls_begin|>",
1949
+ "lstrip": false,
1950
+ "normalized": false,
1951
+ "rstrip": false,
1952
+ "single_word": false,
1953
+ "special": false
1954
+ },
1955
+ "128244": {
1956
+ "content": "<|tool_calls_end|>",
1957
+ "lstrip": false,
1958
+ "normalized": false,
1959
+ "rstrip": false,
1960
+ "single_word": false,
1961
+ "special": false
1962
+ },
1963
+ "128245": {
1964
+ "content": "<|tool_call_begin|>",
1965
+ "lstrip": false,
1966
+ "normalized": false,
1967
+ "rstrip": false,
1968
+ "single_word": false,
1969
+ "special": false
1970
+ },
1971
+ "128246": {
1972
+ "content": "<|tool_call_end|>",
1973
+ "lstrip": false,
1974
+ "normalized": false,
1975
+ "rstrip": false,
1976
+ "single_word": false,
1977
+ "special": false
1978
+ },
1979
+ "128247": {
1980
+ "content": "<tool_call>",
1981
+ "lstrip": false,
1982
+ "normalized": false,
1983
+ "rstrip": false,
1984
+ "single_word": false,
1985
+ "special": false
1986
+ },
1987
+ "128248": {
1988
+ "content": "</tool_call>",
1989
+ "lstrip": false,
1990
+ "normalized": false,
1991
+ "rstrip": false,
1992
+ "single_word": false,
1993
+ "special": false
1994
+ },
1995
+ "128249": {
1996
+ "content": "<|tool_outputs_begin|>",
1997
+ "lstrip": false,
1998
+ "normalized": false,
1999
+ "rstrip": false,
2000
+ "single_word": false,
2001
+ "special": false
2002
+ },
2003
+ "128250": {
2004
+ "content": "<|tool_outputs_end|>",
2005
+ "lstrip": false,
2006
+ "normalized": false,
2007
+ "rstrip": false,
2008
+ "single_word": false,
2009
+ "special": false
2010
+ },
2011
+ "128251": {
2012
+ "content": "<|tool_output_begin|>",
2013
+ "lstrip": false,
2014
+ "normalized": false,
2015
+ "rstrip": false,
2016
+ "single_word": false,
2017
+ "special": false
2018
+ },
2019
+ "128252": {
2020
+ "content": "<|tool_output_end|>",
2021
+ "lstrip": false,
2022
+ "normalized": false,
2023
+ "rstrip": false,
2024
+ "single_word": false,
2025
+ "special": false
2026
+ },
2027
+ "128253": {
2028
+ "content": "<tool_response>",
2029
+ "lstrip": false,
2030
+ "normalized": false,
2031
+ "rstrip": false,
2032
+ "single_word": false,
2033
+ "special": false
2034
+ },
2035
+ "128254": {
2036
+ "content": "</tool_response>",
2037
+ "lstrip": false,
2038
+ "normalized": false,
2039
+ "rstrip": false,
2040
+ "single_word": false,
2041
+ "special": false
2042
+ },
2043
+ "128255": {
2044
+ "content": "<|tool_sep|>",
2045
+ "lstrip": false,
2046
+ "normalized": false,
2047
+ "rstrip": false,
2048
+ "single_word": false,
2049
+ "special": false
2050
+ }
2051
+ },
2052
+ "bos_token": "<|begin_of_text|>",
2053
+ "clean_up_tokenization_spaces": false,
2054
+ "eos_token": "<|end_of_text|>",
2055
+ "extra_special_tokens": {},
2056
+ "model_input_names": [
2057
+ "input_ids",
2058
+ "attention_mask"
2059
+ ],
2060
+ "model_max_length": 131072,
2061
+ "pad_token": "<|end_of_text|>",
2062
+ "tokenizer_class": "PreTrainedTokenizerFast",
2063
+ "truncation_side": "left"
2064
+ }