From 14cffe6a58b8796f3f0401d53b0ec8b8c47aafd9 Mon Sep 17 00:00:00 2001 From: ModelHub XC Date: Thu, 21 May 2026 02:18:12 +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: phpcool/DeepSeek-R1-Distill-SRE-Qwen-7B Source: Original Platform --- .gitattributes | 49 +++++ Modelfile | 11 + README.md | 137 ++++++++++++ config.json | 30 +++ configuration.json | 1 + generation_config.json | 9 + model-00001-of-00004.safetensors | 3 + model-00002-of-00004.safetensors | 3 + model-00003-of-00004.safetensors | 3 + model-00004-of-00004.safetensors | 3 + model.safetensors.index.json | 346 +++++++++++++++++++++++++++++++ special_tokens_map.json | 23 ++ tokenizer.json | 3 + tokenizer_config.json | 197 ++++++++++++++++++ training_loss.png | Bin 0 -> 35770 bytes 15 files changed, 818 insertions(+) create mode 100644 .gitattributes create mode 100644 Modelfile create mode 100644 README.md create mode 100644 config.json create mode 100644 configuration.json create mode 100644 generation_config.json create mode 100644 model-00001-of-00004.safetensors create mode 100644 model-00002-of-00004.safetensors create mode 100644 model-00003-of-00004.safetensors create mode 100644 model-00004-of-00004.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 training_loss.png diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..21b3632 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,49 @@ +*.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 +*.safetensors 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 + +tokenizer.json filter=lfs diff=lfs merge=lfs -text \ No newline at end of file diff --git a/Modelfile b/Modelfile new file mode 100644 index 0000000..d401a6f --- /dev/null +++ b/Modelfile @@ -0,0 +1,11 @@ +# ollama modelfile auto-generated by llamafactory + +FROM . + +TEMPLATE """<|begin▁of▁sentence|>{{ if .System }}{{ .System }}{{ end }}{{ range .Messages }}{{ if eq .Role "user" }}<|User|>{{ .Content }}<|Assistant|>{{ else if eq .Role "assistant" }}{{ .Content }}<|end▁of▁sentence|>{{ end }}{{ end }}""" + +SYSTEM """您是站点可靠性工程师 (SRE),精通系统可靠性、可扩展性和事件管理。请根据用户提供的具体输入,分析问题原因并提供针对性的解决方法,避免泛泛而谈或重复建议。 +""" + +PARAMETER stop "<|end▁of▁sentence|>" +PARAMETER num_ctx 4096 diff --git a/README.md b/README.md new file mode 100644 index 0000000..81497f4 --- /dev/null +++ b/README.md @@ -0,0 +1,137 @@ +# DeepSeek-R1-Distill-SRE-Qwen-7B + +## 模型简介 + +基于 DeepSeek 架构的 7B 参数量模型,经过 LoRA 微调,专为运维领域(Site Reliability Engineering, SRE)任务设计。它能够提供高可用性、稳定性相关的技术建议,并生成逐步分析过程,适用于服务器管理、集群优化和故障排查等场景,强化了以下三块能力: + +- 自动化脚本生成 +- 系统监控分析 +- 故障排查与根因定位 + +## 模型概述 + +- **基础模型**: `deepseek-ai/DeepSeek-R1-Distill-Qwen-7B` + +- **参数量**: 7B + +- **微调方法**: LoRA (Low-Rank Adaptation) + +- **训练数据**: SRE 领域数据集(约 18,236 条记录),数据集地址:https://github.com/HC-Guo/OWL/tree/main/OWL-Instruct/data + +- **精度**: BF16 (Brain Floating Point 16) + +- **最大上下文长度**: 2048 tokens + +- **语言**: 中文(主要),支持部分英文输入 + +- **发布日期**: 2025-03-02 + +- **训练loss趋势变化** + + ![training_loss](training_loss.png) + + +## 评测结果 + +下表对比了基模(deepseek-ai/DeepSeek-R1-Distill-Qwen-7B)和微调后模型在运维领域任务上的性能表现。微调使用 LoRA 方法,基于 SRE 领域数据集(约 18,236 条记录)进行优化。 + +| **指标** | **基模结果** | **微调后结果** | **提升项说明** | +|---------------------------|--------------|----------------|--------------------------------------------------------------------------------| +| **predict_bleu-4** | 4.52 | 13.54 | BLEU-4 衡量生成文本与参考答案的 4-gram 精确匹配度。提升约 199%,表明微调后模型生成的回答与参考答案在短语级别更加一致,准确性显著提高。 | +| **predict_rouge-1** | 23.60 | 39.40 | ROUGE-1 衡量单字重叠率。提升约 67%,表明词汇级别的匹配度大幅改善,模型生成内容更贴近参考答案的用词。 | +| **predict_rouge-2** | 5.84 | 22.07 | ROUGE-2 衡量双字重叠率。提升约 278%,表明短语和句子结构的相似性显著增强,生成文本更具连贯性。 | +| **predict_rouge-l** | 9.91 | 23.63 | ROUGE-L 衡量最长公共子序列,反映句子结构相似性。提升约 138%,表明微调后模型在整体回答结构上更接近参考答案。 | +| **predict_model_preparation_time** | 0.0033 | 0.0032 | 模型准备时间(秒),微调后略减 0.0001 秒,变化微小,表明模型加载效率基本不变。 | +| **predict_runtime** | 1325.61 | 878.39 | 推理总耗时(秒)。减少约 34%(447.22 秒),表明微调后推理速度加快,可能是优化了生成效率或减少了冗余计算。 | +| **predict_samples_per_second** | 0.377 | 0.57 | 每秒处理样本数。提升约 51%,反映推理吞吐量提高,模型处理效率显著增强。 | +| **predict_steps_per_second** | 0.094 | 0.096 | 每秒推理步数。提升约 2%,变化较小,可能是推理步长未显著优化,但整体效率仍受益于 runtime 改进。 | + +### 指标说明 + +- **BLEU-4**:计算生成文本与参考文本的 4-gram 精确匹配度,分数范围 0-100,值越高表示短语级匹配越好。 +- **ROUGE-1**:衡量单字(unigram)重叠率,分数范围 0-100,反映词汇级相似性。 +- **ROUGE-2**:衡量双字(bigram)重叠率,分数范围 0-100,反映短语级相似性。 +- **ROUGE-L**:衡量最长公共子序列(LCS),分数范围 0-100,反映句子结构相似性。 +- **predict_model_preparation_time**:模型加载和准备的耗时(秒),值越低表示启动越快。 +- **predict_runtime**:推理总耗时(秒),值越低表示生成速度越快。 +- **predict_samples_per_second**:每秒处理的样本数,值越高表示吞吐量越高。 +- **predict_steps_per_second**:每秒推理步数,值越高表示单步效率越高。 + +### 结论 +微调后的 `DeepSeek-R1-Distill-SRE-Qwen-7B` 在生成质量和推理效率上均有显著提升,尤其在运维领域的结构化回答能力上表现优异。推荐用于高可用性集群设计、服务器优化等场景。 + +- **下载方式**: +### SDK下载: + ```bash +#安装ModelScope +pip install modelscope + +#SDK模型下载 +from modelscope import snapshot_download +model_dir = snapshot_download('phpcool/DeepSeek-R1-Distill-SRE-Qwen-7B') + ``` +### Git下载 +```bash +#Git模型下载 +git clone https://www.modelscope.cn/phpcool/DeepSeek-R1-Distill-SRE-Qwen-7B.git +``` +--- + +## 如何使用模型进行推理 + +本模型支持高效推理,已验证兼容 `vLLM` 和 `SGLang` 框架,以下提供vLLM使用示例(推荐)。 + + +### 1. 使用 SGLang 进行推理 +`SGLang` 是一个高性能服务框架,适合复杂运维任务的快速推理。 + +#### 环境准备 +```bash +pip install sglang +``` + +#### 启动 SGLang 服务 +```bash +vllm serve /root/autodl-tmp/model/outputs/deepseek-ai/DeepSeek-R1-Distill-SRE-Qwen-7B --tensor-parallel-size 1 --max-model-len 2048 --enforce-eager +``` + +#### Python 推理示例 +```python +from openai import OpenAI + +client = OpenAI(api_key="EMPTY", base_url="http://localhost:8000/v1") + +response = client.chat.completions.create( + model="/path/to/DeepSeek-R1-Distill-SRE-Qwen-7B", + messages=[ + {"role": "system", "content": "你是一位智能运维助手"}, + {"role": "user", "content": "如何优化服务器的存储性能以提高数据读写速度?"} + ], + max_tokens=1500, + temperature=0.7, + stop=["<|end>"] +) +print(response.choices[0].message.content.strip()) +``` + +--- + +## 使用场景 + +- **自动化运维**: 生成脚本、配置管理。 +- **系统监控**: 分析指标、生成告警规则。 +- **故障排查**: 日志解析、根因分析。 + +该模型在 SRE 和 DevOps 场景中表现出色,尤其适合需要快速响应和资源优化的企业级应用。 + +--- + +## 社区贡献 + +由于当前文档信息有限,我们鼓励社区参与: +- 在 modelscope.cn 中的【交流反馈】提出问题、使用案例或改进建议。 +- 提交 Pull Request 以补充模型细节、优化推理代码或分享运维相关的 Prompt 示例。 + +感谢你的使用与支持!如果有任何问题,请随时联系,微信:yorkoliu 邮件:liutiansi@gmail.com。 + +--- \ No newline at end of file diff --git a/config.json b/config.json new file mode 100644 index 0000000..6a682c1 --- /dev/null +++ b/config.json @@ -0,0 +1,30 @@ +{ + "_name_or_path": "/root/autodl-tmp/dataroot/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", + "architectures": [ + "Qwen2ForCausalLM" + ], + "attention_dropout": 0.0, + "bos_token_id": 151643, + "eos_token_id": 151643, + "hidden_act": "silu", + "hidden_size": 3584, + "initializer_range": 0.02, + "intermediate_size": 18944, + "max_position_embeddings": 131072, + "max_window_layers": 28, + "model_type": "qwen2", + "num_attention_heads": 28, + "num_hidden_layers": 28, + "num_key_value_heads": 4, + "rms_norm_eps": 1e-06, + "rope_scaling": null, + "rope_theta": 10000, + "sliding_window": 4096, + "tie_word_embeddings": false, + "torch_dtype": "bfloat16", + "transformers_version": "4.49.0", + "use_cache": true, + "use_mrope": false, + "use_sliding_window": false, + "vocab_size": 152064 +} diff --git a/configuration.json b/configuration.json new file mode 100644 index 0000000..df7b8b0 --- /dev/null +++ b/configuration.json @@ -0,0 +1 @@ +{"task":"other"} \ No newline at end of file diff --git a/generation_config.json b/generation_config.json new file mode 100644 index 0000000..01dfe4b --- /dev/null +++ b/generation_config.json @@ -0,0 +1,9 @@ +{ + "_from_model_config": true, + "bos_token_id": 151646, + "do_sample": true, + "eos_token_id": 151643, + "temperature": 0.6, + "top_p": 0.95, + "transformers_version": "4.49.0" +} diff --git a/model-00001-of-00004.safetensors b/model-00001-of-00004.safetensors new file mode 100644 index 0000000..6980fbf --- /dev/null +++ b/model-00001-of-00004.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52684e31e9228546ff030f036da966e5691b8c9137d8fd0af8dd78f2144d1ad2 +size 4877660776 diff --git a/model-00002-of-00004.safetensors b/model-00002-of-00004.safetensors new file mode 100644 index 0000000..dec300f --- /dev/null +++ b/model-00002-of-00004.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:702c0434c6f2010f3f917f46b53030c63cc8ca4e5a2ad11f11682e14aa2ee81c +size 4932751008 diff --git a/model-00003-of-00004.safetensors b/model-00003-of-00004.safetensors new file mode 100644 index 0000000..cdf0a44 --- /dev/null +++ b/model-00003-of-00004.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e98a76e754d2f8fea460c4684bdd49a9ae84bc1429431c0e592dc6586396f0df +size 4330865200 diff --git a/model-00004-of-00004.safetensors b/model-00004-of-00004.safetensors new file mode 100644 index 0000000..ef3b83a --- /dev/null +++ b/model-00004-of-00004.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7946740ab848b4a02904f05bff81211bf9600fc20bfad39bbcc8d1703a40ce1c +size 1089994880 diff --git a/model.safetensors.index.json b/model.safetensors.index.json new file mode 100644 index 0000000..6ca5084 --- /dev/null +++ b/model.safetensors.index.json @@ -0,0 +1,346 @@ +{ + "metadata": { + "total_size": 15231233024 + }, + "weight_map": { + "lm_head.weight": "model-00004-of-00004.safetensors", + "model.embed_tokens.weight": "model-00001-of-00004.safetensors", + "model.layers.0.input_layernorm.weight": "model-00001-of-00004.safetensors", + "model.layers.0.mlp.down_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.0.mlp.gate_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.0.mlp.up_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.0.post_attention_layernorm.weight": "model-00001-of-00004.safetensors", + "model.layers.0.self_attn.k_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.0.self_attn.k_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.0.self_attn.o_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.0.self_attn.q_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.0.self_attn.q_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.0.self_attn.v_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.0.self_attn.v_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.1.input_layernorm.weight": "model-00001-of-00004.safetensors", + "model.layers.1.mlp.down_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.1.mlp.gate_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.1.mlp.up_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.1.post_attention_layernorm.weight": "model-00001-of-00004.safetensors", + "model.layers.1.self_attn.k_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.1.self_attn.k_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.1.self_attn.o_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.1.self_attn.q_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.1.self_attn.q_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.1.self_attn.v_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.1.self_attn.v_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.10.input_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.10.mlp.down_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.10.mlp.gate_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.10.mlp.up_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.10.post_attention_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.10.self_attn.k_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.10.self_attn.k_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.10.self_attn.o_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.10.self_attn.q_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.10.self_attn.q_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.10.self_attn.v_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.10.self_attn.v_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.11.input_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.11.mlp.down_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.11.mlp.gate_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.11.mlp.up_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.11.post_attention_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.11.self_attn.k_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.11.self_attn.k_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.11.self_attn.o_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.11.self_attn.q_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.11.self_attn.q_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.11.self_attn.v_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.11.self_attn.v_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.12.input_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.12.mlp.down_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.12.mlp.gate_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.12.mlp.up_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.12.post_attention_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.12.self_attn.k_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.12.self_attn.k_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.12.self_attn.o_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.12.self_attn.q_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.12.self_attn.q_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.12.self_attn.v_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.12.self_attn.v_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.13.input_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.13.mlp.down_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.13.mlp.gate_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.13.mlp.up_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.13.post_attention_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.13.self_attn.k_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.13.self_attn.k_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.13.self_attn.o_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.13.self_attn.q_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.13.self_attn.q_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.13.self_attn.v_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.13.self_attn.v_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.14.input_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.14.mlp.down_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.14.mlp.gate_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.14.mlp.up_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.14.post_attention_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.14.self_attn.k_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.14.self_attn.k_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.14.self_attn.o_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.14.self_attn.q_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.14.self_attn.q_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.14.self_attn.v_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.14.self_attn.v_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.15.input_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.15.mlp.down_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.15.mlp.gate_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.15.mlp.up_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.15.post_attention_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.15.self_attn.k_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.15.self_attn.k_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.15.self_attn.o_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.15.self_attn.q_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.15.self_attn.q_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.15.self_attn.v_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.15.self_attn.v_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.16.input_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.16.mlp.down_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.16.mlp.gate_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.16.mlp.up_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.16.post_attention_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.16.self_attn.k_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.16.self_attn.k_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.16.self_attn.o_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.16.self_attn.q_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.16.self_attn.q_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.16.self_attn.v_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.16.self_attn.v_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.17.input_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.17.mlp.down_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.17.mlp.gate_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.17.mlp.up_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.17.post_attention_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.17.self_attn.k_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.17.self_attn.k_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.17.self_attn.o_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.17.self_attn.q_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.17.self_attn.q_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.17.self_attn.v_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.17.self_attn.v_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.18.input_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.18.mlp.down_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.18.mlp.gate_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.18.mlp.up_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.18.post_attention_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.18.self_attn.k_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.18.self_attn.k_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.18.self_attn.o_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.18.self_attn.q_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.18.self_attn.q_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.18.self_attn.v_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.18.self_attn.v_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.19.input_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.19.mlp.down_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.19.mlp.gate_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.19.mlp.up_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.19.post_attention_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.19.self_attn.k_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.19.self_attn.k_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.19.self_attn.o_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.19.self_attn.q_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.19.self_attn.q_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.19.self_attn.v_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.19.self_attn.v_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.2.input_layernorm.weight": "model-00001-of-00004.safetensors", + "model.layers.2.mlp.down_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.2.mlp.gate_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.2.mlp.up_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.2.post_attention_layernorm.weight": "model-00001-of-00004.safetensors", + "model.layers.2.self_attn.k_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.2.self_attn.k_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.2.self_attn.o_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.2.self_attn.q_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.2.self_attn.q_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.2.self_attn.v_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.2.self_attn.v_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.20.input_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.20.mlp.down_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.20.mlp.gate_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.20.mlp.up_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.20.post_attention_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.20.self_attn.k_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.20.self_attn.k_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.20.self_attn.o_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.20.self_attn.q_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.20.self_attn.q_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.20.self_attn.v_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.20.self_attn.v_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.21.input_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.21.mlp.down_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.21.mlp.gate_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.21.mlp.up_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.21.post_attention_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.21.self_attn.k_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.21.self_attn.k_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.21.self_attn.o_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.21.self_attn.q_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.21.self_attn.q_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.21.self_attn.v_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.21.self_attn.v_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.22.input_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.22.mlp.down_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.22.mlp.gate_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.22.mlp.up_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.22.post_attention_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.22.self_attn.k_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.22.self_attn.k_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.22.self_attn.o_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.22.self_attn.q_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.22.self_attn.q_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.22.self_attn.v_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.22.self_attn.v_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.23.input_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.23.mlp.down_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.23.mlp.gate_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.23.mlp.up_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.23.post_attention_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.23.self_attn.k_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.23.self_attn.k_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.23.self_attn.o_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.23.self_attn.q_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.23.self_attn.q_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.23.self_attn.v_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.23.self_attn.v_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.24.input_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.24.mlp.down_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.24.mlp.gate_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.24.mlp.up_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.24.post_attention_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.24.self_attn.k_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.24.self_attn.k_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.24.self_attn.o_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.24.self_attn.q_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.24.self_attn.q_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.24.self_attn.v_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.24.self_attn.v_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.25.input_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.25.mlp.down_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.25.mlp.gate_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.25.mlp.up_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.25.post_attention_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.25.self_attn.k_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.25.self_attn.k_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.25.self_attn.o_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.25.self_attn.q_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.25.self_attn.q_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.25.self_attn.v_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.25.self_attn.v_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.26.input_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.26.mlp.down_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.26.mlp.gate_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.26.mlp.up_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.26.post_attention_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.26.self_attn.k_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.26.self_attn.k_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.26.self_attn.o_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.26.self_attn.q_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.26.self_attn.q_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.26.self_attn.v_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.26.self_attn.v_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.27.input_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.27.mlp.down_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.27.mlp.gate_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.27.mlp.up_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.27.post_attention_layernorm.weight": "model-00003-of-00004.safetensors", + "model.layers.27.self_attn.k_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.27.self_attn.k_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.27.self_attn.o_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.27.self_attn.q_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.27.self_attn.q_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.27.self_attn.v_proj.bias": "model-00003-of-00004.safetensors", + "model.layers.27.self_attn.v_proj.weight": "model-00003-of-00004.safetensors", + "model.layers.3.input_layernorm.weight": "model-00001-of-00004.safetensors", + "model.layers.3.mlp.down_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.3.mlp.gate_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.3.mlp.up_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.3.post_attention_layernorm.weight": "model-00001-of-00004.safetensors", + "model.layers.3.self_attn.k_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.3.self_attn.k_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.3.self_attn.o_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.3.self_attn.q_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.3.self_attn.q_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.3.self_attn.v_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.3.self_attn.v_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.4.input_layernorm.weight": "model-00001-of-00004.safetensors", + "model.layers.4.mlp.down_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.4.mlp.gate_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.4.mlp.up_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.4.post_attention_layernorm.weight": "model-00001-of-00004.safetensors", + "model.layers.4.self_attn.k_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.4.self_attn.k_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.4.self_attn.o_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.4.self_attn.q_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.4.self_attn.q_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.4.self_attn.v_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.4.self_attn.v_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.5.input_layernorm.weight": "model-00001-of-00004.safetensors", + "model.layers.5.mlp.down_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.5.mlp.gate_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.5.mlp.up_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.5.post_attention_layernorm.weight": "model-00001-of-00004.safetensors", + "model.layers.5.self_attn.k_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.5.self_attn.k_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.5.self_attn.o_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.5.self_attn.q_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.5.self_attn.q_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.5.self_attn.v_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.5.self_attn.v_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.6.input_layernorm.weight": "model-00001-of-00004.safetensors", + "model.layers.6.mlp.down_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.6.mlp.gate_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.6.mlp.up_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.6.post_attention_layernorm.weight": "model-00001-of-00004.safetensors", + "model.layers.6.self_attn.k_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.6.self_attn.k_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.6.self_attn.o_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.6.self_attn.q_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.6.self_attn.q_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.6.self_attn.v_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.6.self_attn.v_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.7.input_layernorm.weight": "model-00001-of-00004.safetensors", + "model.layers.7.mlp.down_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.7.mlp.gate_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.7.mlp.up_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.7.post_attention_layernorm.weight": "model-00001-of-00004.safetensors", + "model.layers.7.self_attn.k_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.7.self_attn.k_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.7.self_attn.o_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.7.self_attn.q_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.7.self_attn.q_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.7.self_attn.v_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.7.self_attn.v_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.8.input_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.8.mlp.down_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.8.mlp.gate_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.8.mlp.up_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.8.post_attention_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.8.self_attn.k_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.8.self_attn.k_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.8.self_attn.o_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.8.self_attn.q_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.8.self_attn.q_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.8.self_attn.v_proj.bias": "model-00001-of-00004.safetensors", + "model.layers.8.self_attn.v_proj.weight": "model-00001-of-00004.safetensors", + "model.layers.9.input_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.9.mlp.down_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.9.mlp.gate_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.9.mlp.up_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.9.post_attention_layernorm.weight": "model-00002-of-00004.safetensors", + "model.layers.9.self_attn.k_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.9.self_attn.k_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.9.self_attn.o_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.9.self_attn.q_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.9.self_attn.q_proj.weight": "model-00002-of-00004.safetensors", + "model.layers.9.self_attn.v_proj.bias": "model-00002-of-00004.safetensors", + "model.layers.9.self_attn.v_proj.weight": "model-00002-of-00004.safetensors", + "model.norm.weight": "model-00003-of-00004.safetensors" + } +} diff --git a/special_tokens_map.json b/special_tokens_map.json new file mode 100644 index 0000000..1d385d6 --- /dev/null +++ b/special_tokens_map.json @@ -0,0 +1,23 @@ +{ + "bos_token": { + "content": "<|begin▁of▁sentence|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + }, + "eos_token": { + "content": "<|end▁of▁sentence|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + }, + "pad_token": { + "content": "<|end▁of▁sentence|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + } +} diff --git a/tokenizer.json b/tokenizer.json new file mode 100644 index 0000000..1a2db24 --- /dev/null +++ b/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e20ddafc659ba90242154b55275402edeca0715e5dbb30f56815a4ce081f4893 +size 11422778 diff --git a/tokenizer_config.json b/tokenizer_config.json new file mode 100644 index 0000000..182aa13 --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,197 @@ +{ + "add_bos_token": true, + "add_eos_token": false, + "add_prefix_space": null, + "added_tokens_decoder": { + "151643": { + "content": "<|end▁of▁sentence|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151644": { + "content": "<|User|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151645": { + "content": "<|Assistant|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151646": { + "content": "<|begin▁of▁sentence|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151647": { + "content": "<|EOT|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151648": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151649": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "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 + } + }, + "bos_token": "<|begin▁of▁sentence|>", + "chat_template": "{% if not add_generation_prompt is defined %}{% set add_generation_prompt = false %}{% endif %}{% set ns = namespace(is_first=false, is_tool=false, is_output_first=true, system_prompt='') %}{%- for message in messages %}{%- if message['role'] == 'system' %}{% set ns.system_prompt = message['content'] %}{%- endif %}{%- endfor %}{{bos_token}}{{ns.system_prompt}}{%- for message in messages %}{%- if message['role'] == 'user' %}{%- set ns.is_tool = false -%}{{'<|User|>' + message['content']}}{%- endif %}{%- if message['role'] == 'assistant' and message['content'] is none %}{%- set ns.is_tool = false -%}{%- for tool in message['tool_calls']%}{%- if not ns.is_first %}{{'<|Assistant|><|tool▁calls▁begin|><|tool▁call▁begin|>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\\n' + '```json' + '\\n' + tool['function']['arguments'] + '\\n' + '```' + '<|tool▁call▁end|>'}}{%- set ns.is_first = true -%}{%- else %}{{'\\n' + '<|tool▁call▁begin|>' + tool['type'] + '<|tool▁sep|>' + tool['function']['name'] + '\\n' + '```json' + '\\n' + tool['function']['arguments'] + '\\n' + '```' + '<|tool▁call▁end|>'}}{{'<|tool▁calls▁end|><|end▁of▁sentence|>'}}{%- endif %}{%- endfor %}{%- endif %}{%- if message['role'] == 'assistant' and message['content'] is not none %}{%- if ns.is_tool %}{{'<|tool▁outputs▁end|>' + message['content'] + '<|end▁of▁sentence|>'}}{%- set ns.is_tool = false -%}{%- else %}{% set content = message['content'] %}{% if '' in content %}{% set content = content.split('')[-1] %}{% endif %}{{'<|Assistant|>' + content + '<|end▁of▁sentence|>'}}{%- endif %}{%- endif %}{%- if message['role'] == 'tool' %}{%- set ns.is_tool = true -%}{%- if ns.is_output_first %}{{'<|tool▁outputs▁begin|><|tool▁output▁begin|>' + message['content'] + '<|tool▁output▁end|>'}}{%- set ns.is_output_first = false %}{%- else %}{{'\\n<|tool▁output▁begin|>' + message['content'] + '<|tool▁output▁end|>'}}{%- endif %}{%- endif %}{%- endfor -%}{% if ns.is_tool %}{{'<|tool▁outputs▁end|>'}}{% endif %}{% if add_generation_prompt and not ns.is_tool %}{{'<|Assistant|>\\n'}}{% endif %}", + "clean_up_tokenization_spaces": false, + "eos_token": "<|end▁of▁sentence|>", + "extra_special_tokens": {}, + "legacy": true, + "model_max_length": 16384, + "pad_token": "<|end▁of▁sentence|>", + "padding_side": "left", + "sp_model_kwargs": {}, + "split_special_tokens": false, + "tokenizer_class": "LlamaTokenizerFast", + "unk_token": null, + "use_default_system_prompt": false +} diff --git a/training_loss.png b/training_loss.png new file mode 100644 index 0000000000000000000000000000000000000000..f851cf1932b5540552bc07111804c6fbd4439c14 GIT binary patch literal 35770 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 Q!Y8q_D%#3rO4dRD59}gA@c;k- literal 0 HcmV?d00001