From 7f00436667834534733ff1e0d0bfd8ca568dfba0 Mon Sep 17 00:00:00 2001 From: ModelHub XC Date: Wed, 10 Jun 2026 10:12:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=EF=BC=8C=E7=94=B1ModelHub=20XC=E7=A4=BE=E5=8C=BA=E6=8F=90?= =?UTF-8?q?=E4=BE=9B=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Model: Alibaba-Apsara/DASD-4B-Thinking Source: Original Platform --- .gitattributes | 58 +++++ LICENSE | 202 ++++++++++++++ README.md | 196 ++++++++++++++ added_tokens.json | 28 ++ assets/.gitkeep | 0 assets/dasd-logo.png | Bin 0 -> 67510 bytes assets/pipeline.jpg | 3 + assets/size_4b-performance-img.jpg | 3 + config.json | 30 +++ configuration.json | 1 + generation_config.json | 12 + merges.txt | 3 + model-00001-of-00002.safetensors | 3 + model-00002-of-00002.safetensors | 3 + model.safetensors.index.json | 405 +++++++++++++++++++++++++++++ special_tokens_map.json | 31 +++ tokenizer.json | 3 + tokenizer_config.json | 241 +++++++++++++++++ vocab.json | 3 + 19 files changed, 1225 insertions(+) create mode 100644 .gitattributes create mode 100644 LICENSE create mode 100644 README.md create mode 100644 added_tokens.json create mode 100644 assets/.gitkeep create mode 100644 assets/dasd-logo.png create mode 100644 assets/pipeline.jpg create mode 100644 assets/size_4b-performance-img.jpg create mode 100644 config.json create mode 100644 configuration.json create mode 100644 generation_config.json create mode 100644 merges.txt create mode 100644 model-00001-of-00002.safetensors create mode 100644 model-00002-of-00002.safetensors create mode 100644 model.safetensors.index.json create mode 100644 special_tokens_map.json create mode 100644 tokenizer.json create mode 100644 tokenizer_config.json create mode 100644 vocab.json diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..5a91b58 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,58 @@ +*.7z filter=lfs diff=lfs merge=lfs -text +*.arrow filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.bin.* filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.ftz filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.h5 filter=lfs diff=lfs merge=lfs -text +*.joblib filter=lfs diff=lfs merge=lfs -text +*.lfs.* filter=lfs diff=lfs merge=lfs -text +*.model filter=lfs diff=lfs merge=lfs -text +*.msgpack filter=lfs diff=lfs merge=lfs -text +*.onnx filter=lfs diff=lfs merge=lfs -text +*.ot filter=lfs diff=lfs merge=lfs -text +*.parquet filter=lfs diff=lfs merge=lfs -text +*.pb filter=lfs diff=lfs merge=lfs -text +*.pt filter=lfs diff=lfs merge=lfs -text +*.pth filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +saved_model/**/* filter=lfs diff=lfs merge=lfs -text +*.tar.* filter=lfs diff=lfs merge=lfs -text +*.tflite filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zstandard filter=lfs diff=lfs merge=lfs -text +*.tfevents* filter=lfs diff=lfs merge=lfs -text +*.db* filter=lfs diff=lfs merge=lfs -text +*.ark* filter=lfs diff=lfs merge=lfs -text +**/*ckpt*data* filter=lfs diff=lfs merge=lfs -text +**/*ckpt*.meta filter=lfs diff=lfs merge=lfs -text +**/*ckpt*.index filter=lfs diff=lfs merge=lfs -text + +*.ckpt filter=lfs diff=lfs merge=lfs -text +*.gguf* filter=lfs diff=lfs merge=lfs -text +*.ggml filter=lfs diff=lfs merge=lfs -text +*.llamafile* filter=lfs diff=lfs merge=lfs -text +*.pt2 filter=lfs diff=lfs merge=lfs -text +*.mlmodel filter=lfs diff=lfs merge=lfs -text +*.npy filter=lfs diff=lfs merge=lfs -text +*.npz filter=lfs diff=lfs merge=lfs -text +*.pickle filter=lfs diff=lfs merge=lfs -text +*.pkl filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.wasm filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text +*tfevents* filter=lfs diff=lfs merge=lfs -text + +merges.txt filter=lfs diff=lfs merge=lfs -text +vocab.json filter=lfs diff=lfs merge=lfs -text +tokenizer.json filter=lfs diff=lfs merge=lfs -text +model-00002-of-00002.safetensors filter=lfs diff=lfs merge=lfs -text +model-00001-of-00002.safetensors filter=lfs diff=lfs merge=lfs -text + +assets/pipeline.jpg filter=lfs diff=lfs merge=lfs -text +assets/size_4b-performance-img.jpg filter=lfs diff=lfs merge=lfs -text +assets/size_4b-performance.jpg filter=lfs diff=lfs merge=lfs -text +assets/size_30b_a3b-performance.jpg filter=lfs diff=lfs merge=lfs -text \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6634c8c --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "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. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "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. + + "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). + + "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. + + "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." + + "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. + + 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. + + 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. + + 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: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) 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 + + (d) 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + 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. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2024 Alibaba Cloud + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..5dc8c94 --- /dev/null +++ b/README.md @@ -0,0 +1,196 @@ +--- +license: apache-2.0 +pipeline_tag: text-generation +library_name: transformers +datasets: + - Alibaba-Apsara/Superior-Reasoning-SFT-gpt-oss-120b + - Alibaba-Apsara/Superior-Reasoning-SFT-gpt-oss-120b-Logprob +tasks: + - text-generation +--- +# DASD-4B-Thinking + +Ali + + +[![GitHub](https://img.shields.io/badge/GitHub-DASD--Thinking-181717?logo=github&logoColor=white)](https://github.com/D2I-ai/dasd-thinking)  + + + +[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Checkpoint-DASD--4B--Thinking-yellow)](https://huggingface.co/Alibaba-Apsara/DASD-4B-Thinking)  +[![ModelScope Model](https://img.shields.io/badge/πŸ€–%20Checkpoint-DASD--4B--Thinking-624aff)](https://www.modelscope.cn/models/Alibaba-Apsara/DASD-4B-Thinking)  + + +[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Checkpoint-DASD--30B--A3B--Thinking--Preview-yellow)](https://huggingface.co/Alibaba-Apsara/DASD-30B-A3B-Thinking-Preview)  +[![ModelScope Model](https://img.shields.io/badge/πŸ€–%20Checkpoint-DASD--30B--A3B--Thinking--Preview-624aff)](https://www.modelscope.cn/models/Alibaba-Apsara/DASD-30B-A3B-Thinking-Preview)  + + + +[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Dataset-Superior--Reasoning--SFT--gpt--oss--120b-red)](https://huggingface.co/datasets/Alibaba-Apsara/Superior-Reasoning-SFT-gpt-oss-120b)  +[![ModelScope Model](https://img.shields.io/badge/πŸ€–%20Dataset-Superior--Reasoning--SFT--gpt--oss--120b-124aff)](https://www.modelscope.cn/datasets/Alibaba-Apsara/Superior-Reasoning-SFT-gpt-oss-120b)  + +[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Dataset-Superior--Reasoning--SFT--gpt--oss--120b--Logprob-red)](https://huggingface.co/datasets/Alibaba-Apsara/Superior-Reasoning-SFT-gpt-oss-120b-Logprob)  +[![ModelScope Model](https://img.shields.io/badge/πŸ€–%20Dataset-Superior--Reasoning--SFT--gpt--oss--120b--Logprob-124aff)](https://www.modelscope.cn/datasets/Alibaba-Apsara/Superior-Reasoning-SFT-gpt-oss-120b-Logprob)  + + + +## πŸš€ Introduction + +We release **DASD-4B-Thinking**, a compact yet capable 4B dense language model specialized in **long chain-of-thought (Long-CoT) reasoning** across mathematics, code generation, and scientific reasoning. DASD-4B-Thinking is post-trained from **Qwen3-4B-Instruct-2507** (non-thinking student) and distilled from **gpt-oss-120b** (teacher) via a **distribution-aligned sequence distillation** pipeline, achieving strong long-cot reasoning performance with substantially fewer training samples (**448K**) than many existing larger models. + +
+ benchmark +
+ +## πŸ“Š Performance + +| Model | Data | AIME24 | AIME25 | LiveCodeBench v5 | LiveCodeBench v6 | GPQA-D | +|---------------------------------|---------|--------|--------|--------|--------|--------| +| Qwen3-4B-Thinking-2507 |❌ | - | 81.3 | - | 55.2 | 65.8 | +| Qwen3-14B |❌ | 79.3 | 70.4 | 63.5 | - | 64.0 | +| Qwen3-32B |❌ | 81.4 | 72.9 | 65.7 | - | 68.4 | +| DeepSeek-R1-0528-Qwen3-8B |❌ | 86.0 | 76.3 | 60.5 | - | 61.1 | +| GLM-Z1-32B-0414 |❌ | 80.8 | 63.6 | 59.1 | - | 66.1 | +| GLM-Z1-9B-0414 |❌ | 76.4 | 56.6 | 51.8 | - | 58.5 | +| Mistral3-3B |❌ | - | 72.1 | 54.8 | - | 53.4 | +| Mistral3-8B |❌ | - | 78.7 | 61.6 | - | 66.8 | +| AM-thinking-v1 |βœ… | 85.3 | 74.4 | 70.3 | - | - | +| POLARIS-4B-Preview |βœ… | 81.2 | 79.4 | - | - | - | +| OpenThoughts3-7B |βœ… | 69.0 | 53.3 | 51.7 | - | 53.7 | +| Pai-DistillQwen-ThoughtY-4B |βœ… | 76.7 | - | - | - | 56.1 | +| Pai-DistillQwen-ThoughtY-8B |βœ… | 76.7 | - | - | - | 62.1 | +| NVIDIA-OpenReasoning-Nemotron-7B |βœ… | 84.7 | 78.2 | 63.9 | - | 61.4 | +| NVIDIA-Nemotron-Ultra-253B |βœ… | 80.8 | 72.5 | 68.1 | - | 76.0 | +| **DASD-4B-Thinking (Ours)** |βœ… | **88.5** | **83.3** | **69.3** | **67.5** | **68.4** | + + +--- + +## πŸ’‘ Why DASD-4B-Thinking Matters + +While the community rushes to build distilled reasoning model using massive datasets (often millions of samples), DASD-4B-Thinking proves that *distribution alignment matters more than data quantity*. It establishes a new baseline for **data-efficient distillation**, delivering flagship-level reasoning in a 4B model that can run on consumer hardware. + +DASD-4B-Thinking democratizes the training recipe: + +* **Open-Source Model**: It achieves State-of-the-Art performance among open-source models of comparable scale and outperforms significantly larger models. + + +* **Extreme Data Efficiency**: Achieves these results using only **448K training samples**, an order of magnitude fewer than comparable efforts. + +* **Novel pipeline**: It presents a systematic reexamining of sequence-level distillation and introduces **a novel distribution-aligned sequence distillation pipeline**. + +* **Open-Source Data**: We release the [Alibaba-Apsara/Superior-Reasoning-SFT-gpt-oss-120b](https://huggingface.co/datasets/Alibaba-Apsara/Superior-Reasoning-SFT-gpt-oss-120b), allowing the community to reproduce our off-policy **temperature-scheduled** pipeline: + + * **105K** Low-Temperature responses for stability (Stage 1). + + * **330K** High-Temperature responses for diversity (Stage 2). + +* **Proven Scalability**: The exact same data recipe generalizes effectively to larger architectures, as demonstrated by our **[DASD-30B-A3B-Thinking-Preview](https://huggingface.co/Alibaba-Apsara/DASD-30B-A3B-Thinking-Preview)** (MoE), which achieves competitive performance without extra RL. + + + +## βš™οΈ Post-Training Pipeline + +DASD-Thinking introduces a new paradigm of **Distribution-Aligned Sequence Distillation**. This represents an enhanced sequence-level distillation pipeline that incorporates **Temperature-scheduled Learning**, **Divergence-aware Sampling**, and **Mixed-policy Distillation** , achieving efficient capability transfer with a minimal amount of data (**448K**). Please refer to our [report](https://arxiv.org/abs/2601.09088) for more details. + +
+ DASD-Thinking training pipeline +
+ +## ⚑ Quick Start + + +```python +from transformers import AutoModelForCausalLM, AutoTokenizer + +model_name = "Alibaba-Apsara/DASD-4B-Thinking" + +tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True) +model = AutoModelForCausalLM.from_pretrained( + model_name, + torch_dtype="auto", + device_map="auto", + trust_remote_code=True, +) + +prompt = "Natalia sold clips to 48 of her friends in April, and then she sold half as many clips in May. How many clips did Natalia sell altogether in April and May?" +messages = [ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": prompt} +] + +text = tokenizer.apply_chat_template( + messages, + tokenize=False, + add_generation_prompt=True, +) + +model_inputs = tokenizer([text], return_tensors="pt").to(model.device) + +generated_ids = model.generate( + **model_inputs, + max_new_tokens=81920, +) + +output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist() +content = tokenizer.decode(output_ids, skip_special_tokens=True) +print(content) +``` + + +> Note: We include the system prompt, as it was used during all training stages. To ensure consistent output quality, we recommend including the same system prompt during actual usage; otherwise, the model's responses may be affected. + +For deployment, you can use sglang>=0.4.6.post1 or vllm>=0.8.5 or to create an OpenAI-compatible API endpoint: + +- SGLang: + +``` +python -m sglang.launch_server --model-path Alibaba-Apsara/DASD-4B-Thinking --context-length 262144 +``` + +- vLLM: +``` +vllm serve Alibaba-Apsara/DASD-4B-Thinking --max-model-len 262144 +``` + + + + + + +## πŸ’‘Best Practices + +To achieve optimal performance, we suggest using **Temperature=1.0, TopP=1.0**. + + +## πŸ“œ Licence + +The model weights are licensed under Apache 2.0 License. + + +## ⚠️ Limitation + +While DASD-4B-Thinking demonstrates remarkable performance across mathematical, scientific, and coding benchmarks, **it is currently limited by the absence of tool integration and function calling capabilities.** Operating strictly within the text space, the model cannot interact with external interfaces such as code executors or APIs, which constrains its utility in agent-based workflows; however, future iterations aim to bridge this gap by integrating capabilities like knowledge retrieval and tool invocation to support more complex, interactive reasoning tasks. + +## πŸ“š Citation + +DASD-Thinking is developed by Alibaba Cloud, as part of our mission to advance open, efficient, and trustworthy reasoning systems. If you find this work useful in your research or applications, please cite our technical report. + +```bibtex +@article{yan2026dasd, + title={Distribution-Aligned Sequence Distillation for Superior Long-CoT Reasoning}, + author={Yan, Shaotian and Liu, Kaiyuan and Shen, Chen and Wang, Bing and Fan, Sinan and Zhang, Jun and Wu, Yue and Wang, Zheng and Ye, Jieping}, + year={2026}, + journal={arXiv preprint arXiv:2601.09088}, + url={https://arxiv.org/abs/2601.09088} +} + +@article{liu2025where, + title={Where Did This Sentence Come From? Tracing Provenance in LLM Reasoning Distillation}, + author={Liu, Kaiyuan and Yan, Shaotian and Miao, Rui and Wang, Bing and Shen, Chen and Zhang, Jun and Ye, Jieping}, + journal={arXiv preprint arXiv:2512.20908}, + year={2025} +} +``` + +We welcome collaboration, feedback, and community contributions to push the boundaries of what small models can reason aboutβ€”transparently and responsibly. \ No newline at end of file diff --git a/added_tokens.json b/added_tokens.json new file mode 100644 index 0000000..b54f913 --- /dev/null +++ b/added_tokens.json @@ -0,0 +1,28 @@ +{ + "": 151668, + "": 151658, + "": 151666, + "": 151667, + "": 151657, + "": 151665, + "<|box_end|>": 151649, + "<|box_start|>": 151648, + "<|endoftext|>": 151643, + "<|file_sep|>": 151664, + "<|fim_middle|>": 151660, + "<|fim_pad|>": 151662, + "<|fim_prefix|>": 151659, + "<|fim_suffix|>": 151661, + "<|im_end|>": 151645, + "<|im_start|>": 151644, + "<|image_pad|>": 151655, + "<|object_ref_end|>": 151647, + "<|object_ref_start|>": 151646, + "<|quad_end|>": 151651, + "<|quad_start|>": 151650, + "<|repo_name|>": 151663, + "<|video_pad|>": 151656, + "<|vision_end|>": 151653, + "<|vision_pad|>": 151654, + "<|vision_start|>": 151652 +} diff --git a/assets/.gitkeep b/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/assets/dasd-logo.png b/assets/dasd-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..56d47c99405d5dcf469413d43bb246c6e232a06a GIT binary patch literal 67510 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 VdCW-MVYwXb>mjsSj zO2oH8WQRAj_!bapb^T>T2CXb4Ab};`?qW_Fv#8M(W0?@sjhIEklR+L72=)xh(HlBr zZ$~@a$RlowPz~)GfYHO&a7!&mHArA6(3#^C2T+Q>h*gz!gpHbVscWi$R)6?%@{42)UGn}Sc8ep31;rHZeS*2x}eYzw(gLd z9zBV9@f37xAQz~lLCDRKml%=g20=Rn47qHc5#=`bp8mGVyPD}%#!Sn&)}{iPXc9raF>GUlciERB+aUNenwX< z8(+-NsTZ#1ivkJSBK>&jT=~jZrqhE2gp5p3;L(A`0BB;CEZRECtju9_&RY$EH%P29KFIsTARiIno3Y; zY6BY@=6--pi?v2eB`zOw6(fQnUP2>dIc1vhkwxs$;N60Atf&leQ*A<SYju zO%CN(ay|g6f_meYG*90EgI`e5*C#N`IERXk z1RHV*b(rl{3Zd!9CUVP4i%4FyS8){~tpq`lkT19*%|%UFRrZ9#hN%=hY1Iqf$;CSg z)B;s@^PAsXFjRy+oFg~3Etf16B+=YZBbTxyaKR75(d<#fwc0#sR+>@2B!mzEB$QSu zvgD5E`@H0bK`DqdvUp2`JqD3WNRiep3*Qb=#w?d?9-xyZQVuzl)OwZ6=$cQ9FgOP%FZxru}AXchCyAge* zU~Df{CvO}@!D#CX?Mcw2L4s)eMub!@cA+TZg)j=5N+3}|&_omzyi{qMAUHBjm}wp9 zq-s9D|M#4ycJ}Xbe*f$FpQ`^lhxLE}tp*alTFzGPml%gk24zto{Xa+#AGgWtrhJHB1 zFgg5?4X~t#bSa$F?Z$xtLsD{CB}?7-klp@v8hs19>X54Ygn(rNqFok>aut{NAo^ju z4OEIgKwZjglZ8nol&hpv5#*4q2&x!O`Rc|A=|S)F+?0urSD`wCSLeCndEm0@+xfmK zNk@-h;Av3ESWWfS<>0F;4;Z|bQYE|M76FW;8_~Yj1TE9RC)b{UUn2o`IjpLl0+TOG zS1|q?ZB9ZfcnEe@Ph0_sp6Bfns{)q3?909^ZDSILVK~5WUI9aJJdh^QrvsQd!y$Ny znW75^#+(&r_%JKryc2+xm~&rlo@%e!{4nIkgC+jG2foz%WJdU9{K0Dj(G00{^oc&o ze$N71i|eAN{-|RZkWM2wEa5Xj5qq1&S!aB3z)-G=+>+#Xeb;yO3#KNZ4Wy7I7mXW+ z8ZaOI=trFwRON{$o^T338m|GQ9=t>cXDxikDr85ZF~QAi$_UizO;7|3bSYQrD4ytt zq&bOB>=?eISL!x^N2ACko}`1-b$GEG-X$sN36I`afY{R3hiy%IIs)zzA1?#-iULX| z+up_2awBp0Boqe;K|0F=Vm_r^s!p_A8nOVCo0|8c7X1~ZrRG;4j)gU{)a#OVO~nB8gW^7Tie37sEc#y>p( z5Ri+H)UAY|%fqfapzZZ3Vy}i{7nMxpT-G944XHWo83LGmebm0rnoJ<=a~da4LNo9Z z7z6jk7~(>DC^gU!E7gwjDZSvYUdWEUX68#5yp+_QVz~cG&mgY zf|lM`!kAo08t1RLWll)exuN{XrsaPa%4@Z!pMKiH1mLj#E4B~UB}=7TWY6D-md*_9b67-+)zzGF_P$AL@dAyYu4T}HHQTgU1V#1(WvGyO0)f}z>w@BlFn z?AfphmR;$dFZ|Hx3$J?hi?9B)%>xW!cu#r0?f)PZ<#a&A6$yx(K6(9ACl)NOJN$sM zm3wuORoxFWIo{yj)>UapQSOx{luD;veLvI}dtmekojIG~$S6}!*BhMpn?3t!Ri`O1 zF^=)(3Z#UIDm|@LA&#Dusjsw6k^Tny@I|>=n1H?eqSQ>rOUy9%Sf9{U>AV^OrZyTy zPd@o1ZZJmqwl5NmXL@=w0lwcwCfbnEmY)Mr$Sfsdj?&z~4<^7!ehUoVQ6(_uteA9C zem7GzmqgPDRm^szz05{I&P}O#P7SA+Cd7H1AJ0ID|_X`hhkB};E)1ZO?YD>p>c^| zXIiN@mx$FZNW3*DdQX^bETtGJF2!f!z-G}t-u1>ezR?|OUTRj{H@j#xk(PmJ9yj6u zFmk1Yjsg!Uz?NLcBL1;O!}&ar?ToT(-%Ke#>}-^4?uSutfXi#FVxyjLd28`t&|jZlY{KsCika9>q3^*14%O<|+vCe(%F{u5- zCqMDY7hamZ@mejq^kz<9`gEMDsL%vN04QW#T3obvZ*Xiy+|O*$M^TXk4nS|R`?j~e z%`XFhMc7kMJ>_dZ5fEfV<-Cm%kKuA_0FXL6)d8a|dWUT~mIHRW16y07DD5hE$rw^% zGR4{_RsHeDAJ-wmNG@;RzHL(inMnw>?XjLz+Wg>!lluBuWJYH0LkD$;wtdl|AX1`) zL_;^Dd0iM7-Wi@s$#Uz`)3=ZFf+yanbXsGS{ z9Y@}gPN@n8Ft!a7m3n1G`^Ipbu+2@8go%0bojZ5HRf)gc??o7B zVhc~=HiyF)4AoNCT>x;nw)Y4b+ucO%jRuQBhSN~bJoAkE&Ph3uFQjcod4I-62eK3k zSZWo2A_}>~T0In{Jd?vUjqmiaE05&?`CtF_Uk59CC@gw_N*2}KaU46E@bJzw1S^26 zrR^$1rf3L45~nklG@l~KqIasC2iVDKCvqi)o-52;PEmk7hVm)$UWyyJ-bO#;_oR9& z9TPPAlc@!RY?yBY!(7o4?lR1Ft!>Qcwq3N15f9p>sGzOo1`oUGfh~=B;JVDfWx#B+ zx`vqJT~R7}=5|TXV^A>cc%gLfzNgDMNwMqdJG z0Qb&!zSBCWm2!h81V-v_defWqZle|HBMyN}o1sq2AVBFf5#aMa@AJBs6#0S&OdXBY zbkf!GdCjFQwj)%r$>kSey~_FMqmRZJO{@4MdUe62V@nQ-80|UQfwLPGbK@RXlc*L! zR!=RmI%{OMU^@aCFF7@2T4FkZLFIb=002M$NklVQxH=TWUdmzr6xmA0_rdxLh%u-c58QU8m&BM+}0I|kG0MK44N(jP$mvyf{JWe>QD!Wi>9kw@? zK<|AppJ!+koHLuVq$J12D zK0sq51d#H!Zb^jii!mJHSp-2TTt7Yz%w)Gg{+yOdTzNDJ1=nOagUchh zqEWEiSSBk7yifwfj zRRHin55L!8B&i}Z0Vs^QgP4`>%eLe;a@5Bsp3qqWK%j;^boq^{w+t`=a8_KUyxi*39b{ZmXrDgLmfjN@_U$8w2KZx1`v zD5=OCf*d1;)V0~uV4YzT{n_4&&S}Cx#3nX4!%)e3aHcsZg}?m)Gb{S=8$K=#O>&@1 zn!u<9$wgREkAI|Y7;UE%^8j#iQC?mmIw^8+?!7#5E6yW5Jd>ryb6ixjDiUVKc^n1K zSLG{ib1D8YG0F7W7Q4hoMet67wPl1kKjSG!Jaw1ANXbP4%v84XV=Cq`6HcLMGI?g# zF-?#N527)VOoL5jO}u?Z(3dyhb5x}%lb+x-;Vx#%QHo@DL1d2V+8lE(Sy=Mzu&Vk) znim_qL4WP&<^p#whjFP-gF*Rl*;qqgjm{I^V$bSE+nBjgku)w{>7!_c>2e}7V8{aI zQmItHYap=5)MV~Ne8TVKe;A3+h&W7nfu*!1G%J$M5P)PrX8X|&cKtbLdc*CPfBBaU z7E`t0JSIfZ)46;AA}-L7B`ZehOuSiV>pr|Emj_}CF)+G8&o~`RhFqQ|ORcUR<_E2# zK|MHn`t-(aF1cO+0=bF$HWRf74Xb$hvL&C_6jSR=! z6v*_0VrEL}Vl`~921xCzku_2XWvol>sNou~!|+2iFq$%&V>IMpZS8B#IAEw^k%0eG zPd#Ol3A4G+P9k4En(PEHK`&__FM*i5!j#h7w9}eUuZ$a!8piMBvlB^;y36dMC!lt> zkS`t_aR0sE`#n!wdMYJXshmDB%rh{V6JCywl zW>O>tYXpjH3_Iz611J`7fq7;Q|A~je1T4vpmws5`ZJwN<)$lK90dc5Bh8qvB^bCVx zO`xJ5kMn};aNt$JgTSenkOGwyJT)B5ffNnSD4jPm{j-5a0SQt?xurgHfDQQKCtmf) zW>GV?)f(m}ChrhOgoMnq^`yZ!GnVRp;TL|s|Nr*izCi##`|JlC#`A1;FEfV-3?&r< zs1y)4Oagq+*7VgAy(E(1@vl^bV^!S~9oAtM&%{NLP}Kn^K5*AqD%*4>Cu;k9iHWLo zb`xntExVL7K3VGg$xm*^nwq;>CpvFhlg{e$(h0n=T2Ve(^4tkWi6MIW49$_%hkk&Z z=@L+?h@b$-AwCZzl z24L!Wa(Nld(P%>gKEx9;C6g7ORbCNsh{4Gn=_}$ij4TnwBr-?}sE7uueH>N{FYq!; z>0_2_E<_E<0S)6lt^iXwV=qwXid8zSkS+(m0Im?QpH10VNbm4R%JMndtaV$IJYi;;dr!?$-RhSKOfS+`E63NeJiQ?B3fp-&=kwvg}Z zjkXI6gK%@6QfC_Tf(*UEjR^zJQXJ9*2mO>g_S?Sg+frC5z!y~T*9&Y6d*KBZp~sCC zwkCMVo4!sBnd-2mo=z>QA|?*tHL0GIR8k9v6Hc4^nNPBsl6bnoU8mhR zG2m^o6~TpE?i76?oDVZ$9nqR>RwBc2Am6q_lDqK9rCc2lXDztAwCo)vBuXuUp|4ko z8F-hP1CUquSq-nTqCxD^&EnD6?|ouhQ{wi{cfRvq|Ld=EbjP8+7at*OGnrQ^QA|jv zeyUVmBKSl_!(97FLf4DPURLo+jNzJZb2*A?T_9Q1P>a1Jjx3mQ6u|hy+b>>RyL0Cb zN~PHd&P6K1jLF02S^+fFd?^g(B8JeJfsnin5Hq+3w$JZi)(CG?P^odVz zFas*`FxBJf_uLc?(>my4ct<@p>V@oxT59oRbl0Tt73h4tbq6TV6B0EU4v#(dn5Vx6 zCCH`TRm(cDtb3`Gfk%8mjZ+m7G48ET(+V(>Mzj!_QFZ1Mgr^d5QN*mKjKJs#jxC>D z6!VMXbL|w;kZj9$HTFs4ZZdfH*wS(YFvY>tTGB_148zFWuGSu$z%g!clUqR-HwbDQ z5u*w?ao}{YpWs9?r16cz?o}}#u*UCza-8c#maB0vDNH&5+i0wLn>1UG#N62iMRB9sOF%PeMN?W;hEXJ`o?IA@|9fXYHlkMv0SpcA;WvFj zwm>fM8*wEBL{xNA`(D*6`AfGek+TuPMkX)C8LD*={Z@c_hlglMMY0-( z?qj|aPl}3)+z1jr5{3q=^f!g};E~uXL`|g4hn->bI&t#zc$ zVpZ!4^zSwyC4B&D?bPi$Ak$4wZR=iE1SmYA3t+o-I3|xdkVOtBfQ|nD`9I%$I|$`z zEt*;sa1_|4%J}WHtgZ?DN`H1qbSvLhGEZ*fPm7r_tL;{5oR-@GdWKvc^KH4s7<>`v zvFNyn@9()!A%&cuJM`4^$kV^2TP_{PLV|OPD$@{vfw$$J7E}K)LMirhKlgKu{uPn# zTNmDo)92u5lhtDjEf|R)<1tT!U>XX-YncpHePH;Ib-15D;0x>UnSR6716imH>^XRTQZ(I2SbN zA%}_mK3~Q(*GJ%$O2cIY5@KIDusqNK7@`wVu6krxp;T8w0}t~#pYu5`;fa09;C@BA(pVJ|pnX4Jq(l2A>daq|*f3x-EN`c9|`FDup!taK}0g zg3KdaUks_pO+~9=IIlF=>{Ap?{7Fox!~O2Mv0AB1l$GKy#V{m1j6C%sizfmJe!D0p zkzGcf8gdF;2LEGtZanp>R~eWtiR;A-=F(6|q@-NpD8y<}TOP3%6j4ey>`uPAJq$f@ z;Ss=VP;k{x2zO)!Lo|~+xTVvNa~x9R-~GEEuo!O#;L|_t?#cpfhr{S_3^1xh>=Hm$ z50%*BtoOGq@D*S26`tAN@AokFAt0Oe-kWC~vP~r2bCK#I6RUJ~FPQf_O&9ZSlVfzd zCNu>q8=2rlR?bN`wgVnL`DF06wj3f(xZ+E`IfG};Y*DS54*TS;G(5ActEpHgL+9d6G&)za>Tf=;^ z%(rO{VD_=)_T}<~eSV_?eClT`XL!VWC@%wE6)(JcXyTbZb~ZdrYe97pXTnZH4k&pA zMHi?NGqt9~ffiMD!s*Ws-i`L<^f3p`z~=-woCz^3X4)IaR*@x6BNjl-H?4L~p=Ya3 zNt)R2(i?+&G@p&t<<+{dhPfyexlF>XNaZ-qECHltQ4%3XbfwkR_H#qR)WzV5#$vYh zOBJoY8_lC^(OnUw%OWfeVAFlWWjX*}|N7Tk{zL{Je|uh56Z@f7G>}Rw0uYTYR&kTV z$UC@??EUY5|MSm3k49Zf3-k<@6Cu?-dA;2$N03%_rJwnkp8*@?IGK~U=rNB!&KOGR z;B#F@e%AY0>Sbu-B%7E{3N-;B#j?kVw7Weo7(>Yf2}8i+CqGYyVPr-ReKbj_v8muD zh+Rq>c)3(-qs>XG7NpXcgQa`rcbgl39_W#vG!F8BA-+Ihn{#b+fg%pGS}CBvFoss; z#627Tq>q3B+E+zt z^y+y?d}2ZwcZzu;^1Co9ivn;(-*bRt(EkbQyB%@wWn&fib zty{O`8KsmzD=KCh)+lA>PSYT_6Ar3NH9FwHo3e>pc|PRz%vUW=$&}xhZ(DI@V{4|W zbNh<(nc1%RT-l`?N^llG1tAl>FY9FhNH9%2G;P_5WS4R&^(JEB;{cye%Fkm(qRZox zTo~QsQ%^nRCKB6paN5x7p7Eupn>Zh>=-||@zQra$8sekR@x3xM-IADKyOeSsoz>lG z_)g?G1sz|VPqeJ0ims*|fT`~72rHXMYB*#A44-X)L{8>v!~mxceBrGovlVPg$@voX zr0wcggP~h`rb$Bc)zv6)q?DINU`JNCGBP($x04)PB0Zp@;sCO^sVLWn;r$dwAD|5& z9ZBp~f7{#M=G=li9DzGlEllJtCB%l>Xuy`wtt?_#7o zOR%pP8Fc~hUnZE6x+=-%S3{MLf8VDuZ zGhY+C>`MZ17<|r2XD~pMX+hIDd$Nc_vPj@L{A2Ei#)wV)ST@$&+EEn=yf2|75fj`1 z-6q!Et+*3`vx;l z?KKVjU&1lr==GgA}TZ09S6Sgjc>GMrYMGH;BHb;=a!U5S!q?mZ0Eyp z1;qAnzSE!9$Si8~c+wRZ-_z4$dc{gJkqGHt(*atQ!;SKKMTeT4D^^q≥3z9Inab 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", + "<|im_end|>", + "<|object_ref_start|>", + "<|object_ref_end|>", + "<|box_start|>", + "<|box_end|>", + "<|quad_start|>", + "<|quad_end|>", + "<|vision_start|>", + "<|vision_end|>", + "<|vision_pad|>", + "<|image_pad|>", + "<|video_pad|>" + ], + "eos_token": { + "content": "<|im_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + }, + "pad_token": { + "content": "<|endoftext|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + } +} diff --git a/tokenizer.json b/tokenizer.json new file mode 100644 index 0000000..cd71f61 --- /dev/null +++ b/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aeb13307a71acd8fe81861d94ad54ab689df773318809eed3cbe794b4492dae4 +size 11422654 diff --git a/tokenizer_config.json b/tokenizer_config.json new file mode 100644 index 0000000..8899560 --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,241 @@ +{ + "add_bos_token": false, + "add_prefix_space": false, + "added_tokens_decoder": { + "151643": { + "content": "<|endoftext|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151644": { + "content": "<|im_start|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151645": { + "content": "<|im_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151646": { + "content": "<|object_ref_start|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151647": { + "content": "<|object_ref_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151648": { + "content": "<|box_start|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151649": { + "content": "<|box_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151650": { + "content": "<|quad_start|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151651": { + "content": "<|quad_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151652": { + "content": "<|vision_start|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151653": { + "content": "<|vision_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151654": { + "content": "<|vision_pad|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151655": { + "content": "<|image_pad|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151656": { + "content": "<|video_pad|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151657": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151658": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151659": { + "content": "<|fim_prefix|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151660": { + "content": "<|fim_middle|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151661": { + "content": "<|fim_suffix|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151662": { + "content": "<|fim_pad|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151663": { + "content": "<|repo_name|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151664": { + "content": "<|file_sep|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151665": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151666": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151667": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151668": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + } + }, + "additional_special_tokens": [ + "<|im_start|>", + "<|im_end|>", + "<|object_ref_start|>", + "<|object_ref_end|>", + "<|box_start|>", + "<|box_end|>", + "<|quad_start|>", + "<|quad_end|>", + "<|vision_start|>", + "<|vision_end|>", + "<|vision_pad|>", + "<|image_pad|>", + "<|video_pad|>" + ], + "bos_token": null, + "chat_template": "{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {{- messages[0].content + '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within XML tags:\\n\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n\\n\\nFor each function call, return a json object with function name and arguments within XML tags:\\n\\n{\\\"name\\\": , \\\"arguments\\\": }\\n<|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0].content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}\n{%- for message in messages[::-1] %}\n {%- set index = (messages|length - 1) - loop.index0 %}\n {%- if ns.multi_step_tool and message.role == \"user\" and message.content is string and not(message.content.startswith('') and message.content.endswith('')) %}\n {%- set ns.multi_step_tool = false %}\n {%- set ns.last_query_index = index %}\n {%- endif %}\n{%- endfor %}\n{%- for message in messages %}\n {%- if message.content is string %}\n {%- set content = message.content %}\n {%- else %}\n {%- set content = '' %}\n {%- endif %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) %}\n {{- '<|im_start|>' + message.role + '\\n' + content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {%- set reasoning_content = '' %}\n {%- if message.reasoning_content is string %}\n {%- set reasoning_content = message.reasoning_content %}\n {%- else %}\n {%- if '' in content %}\n {%- set reasoning_content = content.split('')[0].rstrip('\\n').split('')[-1].lstrip('\\n') %}\n {%- set content = content.split('')[-1].lstrip('\\n') %}\n {%- endif %}\n {%- endif %}\n {%- if loop.index0 > ns.last_query_index %}\n {%- if loop.last or (not loop.last and reasoning_content) %}\n {{- '<|im_start|>' + message.role + '\\n\\n' + reasoning_content.strip('\\n') + '\\n\\n\\n' + content.lstrip('\\n') }}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n\\n' }}\n {{- content }}\n {{- '\\n' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}", + "clean_up_tokenization_spaces": false, + "eos_token": "<|im_end|>", + "errors": "replace", + "extra_special_tokens": {}, + "model_max_length": 262144, + "pad_token": "<|endoftext|>", + "padding_side": "right", + "split_special_tokens": false, + "tokenizer_class": "Qwen2Tokenizer", + "unk_token": null +} diff --git a/vocab.json b/vocab.json new file mode 100644 index 0000000..6c49fc6 --- /dev/null +++ b/vocab.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910 +size 2776833