[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-HIT-SCIR--Chinese-Mixtral-8x7B":3,"tool-HIT-SCIR--Chinese-Mixtral-8x7B":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":78,"owner_location":78,"owner_email":78,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":90,"forks":91,"last_commit_at":92,"license":93,"difficulty_score":94,"env_os":95,"env_gpu":96,"env_ram":97,"env_deps":98,"category_tags":113,"github_topics":114,"view_count":23,"oss_zip_url":78,"oss_zip_packed_at":78,"status":16,"created_at":119,"updated_at":120,"faqs":121,"releases":152},1287,"HIT-SCIR\u002FChinese-Mixtral-8x7B","Chinese-Mixtral-8x7B","中文Mixtral-8x7B（Chinese-Mixtral-8x7B）","Chinese-Mixtral-8x7B 是一款基于 Mixtral-8x7B 模型进行中文扩词表增量预训练的大型语言模型，旨在提升中文自然语言处理任务中的生成与理解能力。它通过扩展词表并结合大规模中文语料进行训练，显著增强了对中文文本的编解码效率和语义理解水平。\n\n这款模型主要解决了传统大模型在中文场景下表现不足的问题，尤其在处理复杂语义、长文本生成及多任务推理时更具优势。它适合研究人员和开发者使用，特别是在需要高性能中文生成或理解能力的场景中，如对话系统、内容创作、信息抽取等。\n\n其独特之处在于采用了 MoE（Mixture of Experts）架构，并结合 QLoRA 技术进行训练，使得模型在保持强大性能的同时，也提供了灵活的部署方式，包括完整模型和轻量级适配器版本。用户可根据需求选择下载和使用。需要注意的是，作为基座模型，它尚未经过指令微调，因此在实际应用中可能需要进一步优化以满足特定任务需求。","\u003Cdiv align=\"center\">\n    \u003Ch1>\n        Chinese-Mixtral-8x7B\n    \u003C\u002Fh1>\n\u003C\u002Fdiv>\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHIT-SCIR_Chinese-Mixtral-8x7B_readme_aea9c900a452.png)\n\n\u003Cdiv align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHIT-SCIR\u002FChinese-Mixtral-8x7B\u002Fpulls\">\n        \u003Cimage src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen\">\u003C\u002Fimage>\n        \u003Cimage src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache_2.0-green.svg\">\u003C\u002Fimage>\n    \u003C\u002Fa>\n\u003C\u002Fdiv>\n\n## 🎉 新闻\n\n- [2024-02-09] 发布基于Chinese-Mixtral-8x7B指令微调的模型：[活字 3.0](https:\u002F\u002Fgithub.com\u002FHIT-SCIR\u002Fhuozi)；开源指令微调代码。\n- [2024-01-18] 发布Chinese-Mixtral-8x7B基座模型；开源增量预训练代码。\n\n## 🚀 介绍\n\n本项目基于Mistral发布的模型[Mixtral-8x7B](https:\u002F\u002Fmistral.ai\u002Fnews\u002Fmixtral-of-experts\u002F)进行了中文扩词表增量预训练，希望进一步促进中文自然语言处理社区对MoE模型的研究。我们扩充后的词表显著提高了模型对中文的编解码效率，并通过大规模开源语料对扩词表模型进行增量预训练，使模型具备了强大的中文生成和理解能力。\n\n项目开源内容：\n\n- 中文Mixtral-8x7B扩词表大模型\n- 扩词表增量预训练代码\n\n> 请注意，Chinese-Mixtral-8x7B仍然可能生成包含事实性错误的误导性回复或包含偏见\u002F歧视的有害内容，请谨慎鉴别和使用生成的内容，请勿将生成的有害内容传播至互联网。\n\n## 📥 模型下载\n\n本项目使用QLoRA进行训练，LoRA权重与合并权重后的模型分别开源，您可以根据自己的需求选择下载：\n\n|             模型名称             | 模型大小  |                                     下载地址                                      |                                                         备注                                                          |\n|:----------------------------:|:-----:|:-----------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------:|\n|     Chinese-Mixtral-8x7B     | 88GB  |     [HuggingFace](https:\u002F\u002Fhuggingface.co\u002FHIT-SCIR\u002FChinese-Mixtral-8x7B)\u003Cbr>[ModelScope](https:\u002F\u002Fmodelscope.cn\u002Fmodels\u002FHIT-SCIR\u002FChinese-Mixtral-8x7B\u002Fsummary)     |                                                  中文扩词表完整模型，可以直接使用                                                   |\n| Chinese-Mixtral-8x7B-adapter | 2.7GB | [HuggingFace](https:\u002F\u002Fhuggingface.co\u002FHIT-SCIR\u002FChinese-Mixtral-8x7B-adapter) | LoRA权重，需要与原版Mixtral-8x7B进行合并才可以使用，合并脚本请参考[这里](https:\u002F\u002Fgist.github.com\u002FChrisHayduk\u002F1a53463331f52dca205e55982baf9930) |\n\n## 💻 模型推理\n\nChinese-Mixtral-8x7B支持完整的Mixtral-8x7B模型生态，包括使用`vLLM`、`Flash Attention 2`进行加速，使用`bitsandbytes`进行模型量化等。以下是使用Chinese-Mixtral-8x7B进行推理的代码示例。\n\n使用Flash Attention 2：\n```python\nimport torch\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\nmodel_id = \"HIT-SCIR\u002FChinese-Mixtral-8x7B\"\ntokenizer = AutoTokenizer.from_pretrained(model_id)\n\nmodel = AutoModelForCausalLM.from_pretrained(model_id, attn_implementation=\"flash_attention_2\", torch_dtype=torch.bfloat16, device_map=\"auto\")\n\ntext = \"我的名字是\"\ninputs = tokenizer(text, return_tensors=\"pt\").to(0)\n\noutputs = model.generate(**inputs, max_new_tokens=20)\nprint(tokenizer.decode(outputs[0], skip_special_tokens=True))\n```\n\n使用4bit量化：\n```python\nimport torch\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\nmodel_id = \"HIT-SCIR\u002FChinese-Mixtral-8x7B\"\ntokenizer = AutoTokenizer.from_pretrained(model_id)\n\nmodel = AutoModelForCausalLM.from_pretrained(model_id, load_in_4bit=True, device_map=\"auto\")\n\ntext = \"我的名字是\"\ninputs = tokenizer(text, return_tensors=\"pt\").to(0)\n\noutputs = model.generate(**inputs, max_new_tokens=20)\nprint(tokenizer.decode(outputs[0], skip_special_tokens=True))\n```\n\n请注意，Chinese-Mixtral-8x7B为基座模型，没有经过指令微调，因此指令遵循能力有限。您可以参考[微调](#微调)一节对模型进行微调。\n\n## 📈 模型性能\n\n### 模型综合能力\n\n我们分别使用以下评测数据集对Chinese-Mixtral-8x7B进行评测：\n\n- C-Eval：一个全面的中文基础模型评估套件。它包含了13948个多项选择题，涵盖了52个不同的学科和四个难度级别。\n- CMMLU：一个综合性的中文评估基准，专门用于评估语言模型在中文语境下的知识和推理能力，涵盖了从基础学科到高级专业水平的67个主题。\n- MMLU：一个包含57个多选任务的英文评测数据集，涵盖了初等数学、美国历史、计算机科学、法律等，难度覆盖高中水平到专家水平，是目前主流的LLM评测数据集之一。\n- HellaSwag：一个极具挑战的英文NLI评测数据集，每一个问题都需要对上下文进行深入理解，而不能基于常识进行回答。\n\n根据Mistral发布的[技术报告](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2401.04088.pdf)，Mixtral-8x7B在推理时将激活13B参数。下表为Chinese-Mixtral-8x7B与其他13B规模的中文扩词表模型在各个评测数据集上的5-shot结果：\n\n|                                              模型名称                                               |      增量训练语料       | C-Eval\u003Cbr>(中文) | CMMLU\u003Cbr>(中文) | MMLU\u003Cbr>(英文) | HellaSwag\u003Cbr>(英文) |\n|:-----------------------------------------------------------------------------------------------:|:-----------------:|:--------------:|:-------------:|:------------:|:-----------------:|\n|           [IDEA-CCNL\u002FZiya2-13B-Base](https:\u002F\u002Fhuggingface.co\u002FIDEA-CCNL\u002FZiya2-13B-Base)           |    650B Token     |     59.29      |     60.93     |    59.86     |       58.90       |\n| [TigerResearch\u002Ftigerbot-13b-base-v3](https:\u002F\u002Fhuggingface.co\u002FTigerResearch\u002Ftigerbot-13b-base-v3) |    500B Token     |     50.52      |     51.65     |    53.46     |       59.16       |\n|    [Linly-AI\u002FChinese-LLaMA-2-13B-hf](https:\u002F\u002Fhuggingface.co\u002FLinly-AI\u002FChinese-LLaMA-2-13B-hf)    |     11B Token     |     42.57      |     41.95     |    51.32     |       59.05       |\n|            [hfl\u002Fchinese-llama-2-13b](https:\u002F\u002Fhuggingface.co\u002Fhfl\u002Fchinese-llama-2-13b)            | 约30B Token(120GB) |     41.90      |     42.08     |    51.92     |       59.28       |\n|                                  **Chinese-Mixtral-8x7B(本项目)**                                  |     42B Token     |     52.08      |     51.08     |    69.80     |       65.69       |\n\n在中文知识和理解方面，我们的Chinese-Mixtral-8x7B与TigerBot-13B-Base-v3性能相当。由于Chinese-Mixtral-8x7B的训练数据量仅为TigerBot-13B-Base-v3的8%，我们的模型仍有进一步提升的空间。与此同时，得益于原版Mixtral-8x7B模型强大的性能，我们的Chinese-Mixtral-8x7B达到了各个扩词表模型的最强英文水平。\n\n> 由于不同版本的评测脚本实现细节有细微差异，为了保证评测结果的一致性和公平性，我们的评测脚本统一使用EleutherAI发布的lm-evaluation-harness，commit hash为[28ec7fa](https:\u002F\u002Fgithub.com\u002FEleutherAI\u002Flm-evaluation-harness\u002Ftree\u002F28ec7fa950346b5a895e85e1f3edd5648168acc4)。\n\n### 模型生成效果\n\n下表为各个扩词表模型的生成效果。由于部分模型的预训练语料未使用`eos_token`进行分隔，我们采用了`max_tokens = 100`对生成文本进行截断。我们的采样参数为`temperature = 0.8, top_p = 0.9`。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHIT-SCIR_Chinese-Mixtral-8x7B_readme_8cb671a907b0.png)\n\n### 中文编解码效率\n\n针对中文编解码效率，我们使用各个扩词表模型的分词器对[SkyPile](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FSkywork\u002FSkyPile-150B)数据集的一个切片（2023-06_zh_head_0000.jsonl）进行编码，对比了各个分词器输出的中文文本Token量：\n\n|                模型名称                |  模型类别   | 词表大小  | 中文文本Token量 | 编解码效率 |\n|:----------------------------------:|:-------:|:-----:|:----------:|:-------:|\n|     meta-llama\u002FLlama-2-13B-hf      |  LLaMA  | 32000 |    780M    |    低    |\n|    mistralai\u002FMixtral-8x7B-v0.1     | Mixtral | 32000 |    606M    |    低    |\n|  Linly-AI\u002FChinese-LLaMA-2-13B-hf   |  LLaMA  | 40076 |    532M    |  中  |\n|      IDEA-CCNL\u002FZiya2-13B-Base      |  LLaMA  | 39424 |    532M    |  中  |\n|      hfl\u002Fchinese-llama-2-13b       |  LLaMA  | 55296 |    365M    |  高  |、\n| TigerResearch\u002Ftigerbot-13b-base-v3 |  LLaMA  | 65112 |    342M    |  高  |\n|   **Chinese-Mixtral-8x7B(本项目)**    | Mixtral | 57000 |    355M    |  高  |\n\n在约1.4GB的测试文本中，我们的Chinese-Mixtral-8x7B中文编解码效率仅次于TigerBot-13B-Base-v3，较原模型提高了41.5%。这有利于加速中文文本的推理速度，并在In-Context Learning、Chain-of-Thought等场景中节省序列长度，有利于提高复杂推理任务的性能。\n\n## ⚙️ 训练细节\n\n\u003Cdetails>\n\u003Csummary>\n\n### 词表扩充\n\n\u003C\u002Fsummary>\n\n我们使用`sentencepiece`在12G知乎数据和2G悟道数据上训练中文BPE词表。我们在训练词表时分别枚举了中文单字Token数量以及中文总Token数量，并对二者进行组合，得到了数百个大小、内容各异的词表。为了得到最适合的词表，我们通过Zheng Bo等人提出的[ALP](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2109.07306.pdf)计算这些词表的中文词汇能力。ALP通过计算特定语言的子词切分粒度，并对词表的中低频子词进行惩罚，是一种方便快捷的衡量特定语言词汇能力的指标。\n\n我们在书籍和百科语料上评估了不同词表的ALP值。图示中，四条曲线分别代表四种中文单字Token数量的词表（4451、5435、6414和7434）。为了避免词表过小导致中文压缩率过低，以及词表过大导致embedding层过于稀疏，我们选取ALP曲线的拐点，对应向词表中新增25000个中文Token。在此基础上，我们选择了四条曲线中ALP最大者，即新增6414个中文单字Token的词表，作为最终Chinese-Mixtral-8x7B选用的词表。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHIT-SCIR_Chinese-Mixtral-8x7B_readme_c6dd90412a31.png)\n\n在获得新词表后，我们需要对embedding和lm_head层进行扩充和初始化。我们使用新Token在旧embedding层中的词嵌入平均值对扩充部分进行初始化。在我们的前期实验中，这种方法略优于HuggingFace的默认实现，即使用固定的正态分布进行初始化。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\n\n### 增量预训练\n\n\u003C\u002Fsummary>\n\nMixtral-8x7B模型参数量为46.7B，全参数训练需要同时使用多种并行策略，在训练资源受限的情况下时间成本过高。因此我们采用HuggingFace官方推荐的方法，使用QLoRA对模型进行训练。QLoRA在LoRA低秩分解的基础上，通过引入4位量化、双重量化和利用NVIDIA统一内存进行分页，进一步减少了训练所需显存，同时保持了与全参数训练相当的性能。\n\n我们参考Yiming Cui等人[对LoRA的设置](https:\u002F\u002Fgithub.com\u002Fymcui\u002FChinese-LLaMA-Alpaca-2\u002Fblob\u002Fmain\u002Fscripts\u002Ftraining\u002Frun_pt.sh)，对原模型所有Linear层应用低秩分解，并将扩增后的embedding和lm_head层的参数设置为可训练。对于模型主体，我们采用NF4格式进行量化，这种格式可以使得量化后的数据与量化前具有同等的数据分布，模型的权重信息损失更少。\n\n#### 环境准备\n\n我们建议使用Python 3.10 + torch 2.0.1\n\n```shell\n# Pytorch + Transformers\n$ pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2\n$ pip install transformers==4.36.2 datasets evaluate peft accelerate gradio optimum sentencepiece trl\n$ pip install jupyterlab scikit-learn pandas matplotlib tensorboard nltk rouge bitsandbytes fire\n# CUDA Toolkit\n$ conda install nvidia\u002Flabel\u002Fcuda-11.7.1::cuda\n# DeepSpeed\n$ git clone https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FDeepSpeed.git\n$ cd DeepSpeed\n$ DS_BUILD_FUSED_ADAM=1 pip3 install .\n# Flash Attention\n$ pip install flash-attn --no-build-isolation\n```\n\n#### 数据集下载\n\n我们基于现有的开源数据集训练了Chinese-Mixtral-8x7B，数据集包括：\n\n|                                    数据集名称                                     | 数据集语言 |使用数据量|        备注        |\n|:----------------------------------------------------------------------------:|:-----:|:----------------:|:-----:|\n| [Skywork\u002FSkyPile-150B](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FSkywork\u002FSkyPile-150B) |  中文   |30B| 仅使用2022 + 2023年的数据 |\n| [DKYoon\u002FSlimPajama-6B](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FDKYoon\u002FSlimPajama-6B) |  英文   |12B|        数据集重复2 Epoch         |\n\n通过`data\u002Fdownload.py`将数据集下载到`data`中。针对Slimpajama数据集，需要使用`data\u002Fparquet2jsonl.py`将原始数据集转换为`jsonl`格式。\n\n下载后的数据集为多个jsonl文件的分片，使用`cat`将多个分片合并为一个jsonl文件。\n\n```shell\n$ cat *.jsonl > all.jsonl\n```\n\n通过`split`将jsonl切分为train和valid集合。本项目中train和valid的行数比例为999:1。\n\n```shell\n$ wc -l all.jsonl                          # 计算数据集总行数\n$ split -l \u003Clines> all.jsonl               # 按999:1计算train\u002Fvalid行数，进行切分\n$ mv xaa DKYoon-SlimPajama-6B-train.jsonl  # 重命名\n$ mv xab DKYoon-SlimPajama-6B-dev.jsonl\n```\n\n#### 数据集预处理\n\n将数据集名称和路径注册到`data\u002Fdatasets.toml`中：\n\n```toml\n[DKYoon-SlimPajama-6B]              # 数据集名称\nsplits = [\"train\", \"dev\"]           # 数据集train\u002Fvalid集合\nroot = \"{DATA_DIR}\u002Fen\u002F{name}\"       # 数据集根目录\ndoc = \"{name}-{split}\"              # 数据集文件名\nencoded = \"encoded-{name}-{split}\"  # 预处理保存位置\n```\n\n使用`data\u002Fpreprocess_datasets.py`对数据集进行子词切分，从而加快训练速度。\n\n```shell\n$ python data\u002Fpreprocess_datasets.py --ds_name SkyPile-150B-2023 --tokenizer_name_or_path tokenizer\u002FMixtral-8x7B-v0.1-vocab\n$ python data\u002Fpreprocess_datasets.py --ds_name DKYoon-SlimPajama-6B --tokenizer_name_or_path tokenizer\u002FMixtral-8x7B-v0.1-vocab\n```\n\n在进行子词切分后，可以使用`data\u002Futils.py`查看各个数据集的token总量：\n\n```shell\n$ python data\u002Futils.py\n```\n\n#### 开始训练\n\n训练启动脚本为`scripts\u002Ftrain.sh`。可以通过修改其中的`TRAIN_DATASETS`修改训练数据集和数据集比例：\n\n```shell\nTRAIN_DATASETS=(\n    1:SkyPile-150B-2022     # 使用全量SkyPile-150B-2022\n    0.1:SkyPile-150B-2023   # 使用SkyPile-150B-2023的10%数据\n    1:DKYoon-SlimPajama-6B  # 使用全量DKYoon-SlimPajama-6B\n)\n```\n\n如果您使用SLURM集群管理系统，可以通过`sbatch`进行提交：\n\n```shell\n$ sbatch scripts\u002Ftrain-pt.sh\n```\n\n如果没有SLURM或希望通过命令行启动训练，您可以直接提取`scripts\u002Ftrain-pt.sh`中的`torchrun`开始训练。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\n\n### 微调\n\n\u003C\u002Fsummary>\n\n#### 数据集准备\n\n微调需要的数据集格式与预训练类似，数据集文件需要为jsonl格式：每行一个json，其中需要包含`\"text\"`字段，将instruction、input和output全部按照您需要的模板进行拼接。\n\n然后需要将数据集名称和路径注册到`data\u002Fdatasets.toml`中：\n\n```toml\n[ShareGPT-Chinese]              # 数据集名称\nsplits = [\"train\"]              # 数据集train\u002Fvalid集合\nroot = \"{DATA_DIR}\u002Fsft\u002F{name}\"  # 数据集根目录\ndoc = \"{name}-{split}\"          # 数据集文件名\n```\n\n#### 开始训练\n\n训练启动脚本为`scripts\u002Ftrain-sft.sh`。可以通过修改其中的`TRAIN_DATASETS`修改训练数据集和数据集比例：\n\n```shell\nTRAIN_DATASETS=(\n    1.0:ShareGPT-Chinese  # 使用全量ShareGPT-Chinese\n    0.5:ShareGPT-English  # 使用ShareGPT-English的50%数据\n)\n```\n\n如果您使用SLURM集群管理系统，可以通过`sbatch`进行提交：\n\n```shell\n$ sbatch scripts\u002Ftrain-sft.sh\n```\n\n如果没有SLURM或希望通过命令行启动训练，您可以直接提取`scripts\u002Ftrain-sft.sh`中的`torchrun`开始训练。\n\n\u003C\u002Fdetails>\n\n## ✒️ 引用\n\n如果您觉得本项目对您的研究有所帮助或使用了本项目的代码，请引用本项目：\n\n```bibtex\n@misc{Chinese-Mixtral-8x7B,\n    author = {HIT-SCIR},\n    title = {Chinese-Mixtral-8x7B: An Open-Source Mixture-of-Experts LLM},\n    year = {2024},\n    publisher = {GitHub},\n    journal = {GitHub repository},\n    howpublished = {\\url{https:\u002F\u002Fgithub.com\u002FHIT-SCIR\u002FChinese-Mixtral-8x7B}}\n}\n```\n\n## 🌟 Star History\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHIT-SCIR_Chinese-Mixtral-8x7B_readme_0b71d74aa85f.png)](https:\u002F\u002Fstar-history.com\u002F#HIT-SCIR\u002FChinese-Mixtral-8x7B&Date)\n","\u003Cdiv align=\"center\">\n    \u003Ch1>\n        中文-Mixtral-8x7B\n    \u003C\u002Fh1>\n\u003C\u002Fdiv>\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHIT-SCIR_Chinese-Mixtral-8x7B_readme_aea9c900a452.png)\n\n\u003Cdiv align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHIT-SCIR\u002FChinese-Mixtral-8x7B\u002Fpulls\">\n        \u003Cimage src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen\">\u003C\u002Fimage>\n        \u003Cimage src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache_2.0-green.svg\">\u003C\u002Fimage>\n    \u003C\u002Fa>\n\u003C\u002Fdiv>\n\n## 🎉 新闻\n\n- [2024-02-09] 发布基于Chinese-Mixtral-8x7B指令微调的模型：[活字 3.0](https:\u002F\u002Fgithub.com\u002FHIT-SCIR\u002Fhuozi)；开源指令微调代码。\n- [2024-01-18] 发布Chinese-Mixtral-8x7B基座模型；开源增量预训练代码。\n\n## 🚀 介绍\n\n本项目基于Mistral发布的模型[Mixtral-8x7B](https:\u002F\u002Fmistral.ai\u002Fnews\u002Fmixtral-of-experts\u002F)进行了中文扩词表增量预训练，希望进一步促进中文自然语言处理社区对MoE模型的研究。我们扩充后的词表显著提高了模型对中文的编解码效率，并通过大规模开源语料对扩词表模型进行增量预训练，使模型具备了强大的中文生成和理解能力。\n\n项目开源内容：\n\n- 中文Mixtral-8x7B扩词表大模型\n- 扩词表增量预训练代码\n\n> 请注意，Chinese-Mixtral-8x7B仍然可能生成包含事实性错误的误导性回复或包含偏见\u002F歧视的有害内容，请谨慎鉴别和使用生成的内容，请勿将生成的有害内容传播至互联网。\n\n## 📥 模型下载\n\n本项目使用QLoRA进行训练，LoRA权重与合并权重后的模型分别开源，您可以根据自己的需求选择下载：\n\n|             模型名称             | 模型大小  |                                     下载地址                                      |                                                         备注                                                          |\n|:----------------------------:|:-----:|:-----------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------:|\n|     Chinese-Mixtral-8x7B     | 88GB  |     [HuggingFace](https:\u002F\u002Fhuggingface.co\u002FHIT-SCIR\u002FChinese-Mixtral-8x7B)\u003Cbr>[ModelScope](https:\u002F\u002Fmodelscope.cn\u002Fmodels\u002FHIT-SCIR\u002FChinese-Mixtral-8x7B\u002Fsummary)     |                                                  中文扩词表完整模型，可以直接使用                                                   |\n| Chinese-Mixtral-8x7B-adapter | 2.7GB | [HuggingFace](https:\u002F\u002Fhuggingface.co\u002FHIT-SCIR\u002FChinese-Mixtral-8x7B-adapter) | LoRA权重，需要与原版Mixtral-8x7B进行合并才可以使用，合并脚本请参考[这里](https:\u002F\u002Fgist.github.com\u002FChrisHayduk\u002F1a53463331f52dca205e55982baf9930) |\n\n## 💻 模型推理\n\nChinese-Mixtral-8x7B支持完整的Mixtral-8x7B模型生态，包括使用`vLLM`、`Flash Attention 2`进行加速，使用`bitsandbytes`进行模型量化等。以下是使用Chinese-Mixtral-8x7B进行推理的代码示例。\n\n使用Flash Attention 2：\n```python\nimport torch\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\nmodel_id = \"HIT-SCIR\u002FChinese-Mixtral-8x7B\"\ntokenizer = AutoTokenizer.from_pretrained(model_id)\n\nmodel = AutoModelForCausalLM.from_pretrained(model_id, attn_implementation=\"flash_attention_2\", torch_dtype=torch.bfloat16, device_map=\"auto\")\n\ntext = \"我的名字是\"\ninputs = tokenizer(text, return_tensors=\"pt\").to(0)\n\noutputs = model.generate(**inputs, max_new_tokens=20)\nprint(tokenizer.decode(outputs[0], skip_special_tokens=True))\n```\n\n使用4bit量化：\n```python\nimport torch\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\nmodel_id = \"HIT-SCIR\u002FChinese-Mixtral-8x7B\"\ntokenizer = AutoTokenizer.from_pretrained(model_id)\n\nmodel = AutoModelForCausalLM.from_pretrained(model_id, load_in_4bit=True, device_map=\"auto\")\n\ntext = \"我的名字是\"\ninputs = tokenizer(text, return_tensors=\"pt\").to(0)\n\noutputs = model.generate(**inputs, max_new_tokens=20)\nprint(tokenizer.decode(outputs[0], skip_special_tokens=True))\n```\n\n请注意，Chinese-Mixtral-8x7B为基座模型，没有经过指令微调，因此指令遵循能力有限。您可以参考[微调](#微调)一节对模型进行微调。\n\n## 📈 模型性能\n\n### 模型综合能力\n\n我们分别使用以下评测数据集对Chinese-Mixtral-8x7B进行评测：\n\n- C-Eval：一个全面的中文基础模型评估套件。它包含了13948个多项选择题，涵盖了52个不同的学科和四个难度级别。\n- CMMLU：一个综合性的中文评估基准，专门用于评估语言模型在中文语境下的知识和推理能力，涵盖了从基础学科到高级专业水平的67个主题。\n- MMLU：一个包含57个多选任务的英文评测数据集，涵盖了初等数学、美国历史、计算机科学、法律等，难度覆盖高中水平到专家水平，是目前主流的LLM评测数据集之一。\n- HellaSwag：一个极具挑战的英文NLI评测数据集，每一个问题都需要对上下文进行深入理解，而不能基于常识进行回答。\n\n根据Mistral发布的[技术报告](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2401.04088.pdf)，Mixtral-8x7B在推理时将激活13B参数。下表为Chinese-Mixtral-8x7B与其他13B规模的中文扩词表模型在各个评测数据集上的5-shot结果：\n\n|                                              模型名称                                               |      增量训练语料       | C-Eval\u003Cbr>(中文) | CMMLU\u003Cbr>(中文) | MMLU\u003Cbr>(英文) | HellaSwag\u003Cbr>(英文) |\n|:-----------------------------------------------------------------------------------------------:|:-----------------:|:--------------:|:-------------:|:------------:|:-----------------:|\n|           [IDEA-CCNL\u002FZiya2-13B-Base](https:\u002F\u002Fhuggingface.co\u002FIDEA-CCNL\u002FZiya2-13B-Base)           |    650B Token     |     59.29      |     60.93     |    59.86     |       58.90       |\n| [TigerResearch\u002Ftigerbot-13b-base-v3](https:\u002F\u002Fhuggingface.co\u002FTigerResearch\u002Ftigerbot-13b-base-v3) |    500B Token     |     50.52      |     51.65     |    53.46     |       59.16       |\n|    [Linly-AI\u002FChinese-LLaMA-2-13B-hf](https:\u002F\u002Fhuggingface.co\u002FLinly-AI\u002FChinese-LLaMA-2-13B-hf)    |     11B Token     |     42.57      |     41.95     |    51.32     |       59.05       |\n|            [hfl\u002Fchinese-llama-2-13b](https:\u002F\u002Fhuggingface.co\u002Fhfl\u002Fchinese-llama-2-13b)            | 约30B Token(120GB) |     41.90      |     42.08     |    51.92     |       59.28       |\n|                                  **Chinese-Mixtral-8x7B(本项目)**                                  |     42B Token     |     52.08      |     51.08     |    69.80     |       65.69       |\n\n在中文知识和理解方面，我们的Chinese-Mixtral-8x7B与TigerBot-13B-Base-v3性能相当。由于Chinese-Mixtral-8x7B的训练数据量仅为TigerBot-13B-Base-v3的8%，我们的模型仍有进一步提升的空间。与此同时，得益于原版Mixtral-8x7B模型强大的性能，我们的Chinese-Mixtral-8x7B达到了各个扩词表模型的最强英文水平。\n\n> 由于不同版本的评测脚本实现细节有细微差异，为了保证评测结果的一致性和公平性，我们的评测脚本统一使用EleutherAI发布的lm-evaluation-harness，commit hash为[28ec7fa](https:\u002F\u002Fgithub.com\u002FEleutherAI\u002Flm-evaluation-harness\u002Ftree\u002F28ec7fa950346b5a895e85e1f3edd5648168acc4)。\n\n### 模型生成效果\n\n下表为各个扩词表模型的生成效果。由于部分模型的预训练语料未使用`eos_token`进行分隔，我们采用了`max_tokens = 100`对生成文本进行截断。我们的采样参数为`temperature = 0.8, top_p = 0.9`。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHIT-SCIR_Chinese-Mixtral-8x7B_readme_8cb671a907b0.png)\n\n### 中文编解码效率\n\n针对中文编解码效率，我们使用各个扩词表模型的分词器对[SkyPile](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FSkywork\u002FSkyPile-150B)数据集的一个切片（2023-06_zh_head_0000.jsonl）进行编码，对比了各个分词器输出的中文文本Token量：\n\n|                模型名称                |  模型类别   | 词表大小  | 中文文本Token量 | 编解码效率 |\n|:----------------------------------:|:-------:|:-----:|:----------:|:-------:|\n|     meta-llama\u002FLlama-2-13B-hf      |  LLaMA  | 32000 |    780M    |    低    |\n|    mistralai\u002FMixtral-8x7B-v0.1     | Mixtral | 32000 |    606M    |    低    |\n|  Linly-AI\u002FChinese-LLaMA-2-13B-hf   |  LLaMA  | 40076 |    532M    |  中  |\n|      IDEA-CCNL\u002FZiya2-13B-Base      |  LLaMA  | 39424 |    532M    |  中  |\n|      hfl\u002Fchinese-llama-2-13b       |  LLaMA  | 55296 |    365M    |  高  |、\n| TigerResearch\u002Ftigerbot-13b-base-v3 |  LLaMA  | 65112 |    342M    |  高  |\n|   **Chinese-Mixtral-8x7B(本项目)**    | Mixtral | 57000 |    355M    |  高  |\n\n在约1.4GB的测试文本中，我们的Chinese-Mixtral-8x7B中文编解码效率仅次于TigerBot-13B-Base-v3，较原模型提高了41.5%。这有利于加速中文文本的推理速度，并在In-Context Learning、Chain-of-Thought等场景中节省序列长度，有利于提高复杂推理任务的性能。\n\n## ⚙️ 训练细节\n\n\u003Cdetails>\n\u003Csummary>\n\n### 词表扩充\n\n\u003C\u002Fsummary>\n\n我们使用`sentencepiece`在12G知乎数据和2G悟道数据上训练中文BPE词表。我们在训练词表时分别枚举了中文单字Token数量以及中文总Token数量，并对二者进行组合，得到了数百个大小、内容各异的词表。为了得到最适合的词表，我们通过Zheng Bo等人提出的[ALP](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2109.07306.pdf)计算这些词表的中文词汇能力。ALP通过计算特定语言的子词切分粒度，并对词表的中低频子词进行惩罚，是一种方便快捷的衡量特定语言词汇能力的指标。\n\n我们在书籍和百科语料上评估了不同词表的ALP值。图示中，四条曲线分别代表四种中文单字Token数量的词表（4451、5435、6414和7434）。为了避免词表过小导致中文压缩率过低，以及词表过大导致embedding层过于稀疏，我们选取ALP曲线的拐点，对应向词表中新增25000个中文Token。在此基础上，我们选择了四条曲线中ALP最大者，即新增6414个中文单字Token的词表，作为最终Chinese-Mixtral-8x7B选用的词表。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHIT-SCIR_Chinese-Mixtral-8x7B_readme_c6dd90412a31.png)\n\n在获得新词表后，我们需要对embedding和lm_head层进行扩充和初始化。我们使用新Token在旧embedding层中的词嵌入平均值对扩充部分进行初始化。在我们的前期实验中，这种方法略优于HuggingFace的默认实现，即使用固定的正态分布进行初始化。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\n\n### 增量预训练\n\n\u003C\u002Fsummary>\n\nMixtral-8x7B模型参数量为46.7B，全参数训练需要同时使用多种并行策略，在训练资源受限的情况下时间成本过高。因此我们采用HuggingFace官方推荐的方法，使用QLoRA对模型进行训练。QLoRA在LoRA低秩分解的基础上，通过引入4位量化、双重量化和利用NVIDIA统一内存进行分页，进一步减少了训练所需显存，同时保持了与全参数训练相当的性能。\n\n我们参考Yiming Cui等人[对LoRA的设置](https:\u002F\u002Fgithub.com\u002Fymcui\u002FChinese-LLaMA-Alpaca-2\u002Fblob\u002Fmain\u002Fscripts\u002Ftraining\u002Frun_pt.sh)，对原模型所有Linear层应用低秩分解，并将扩增后的embedding和lm_head层的参数设置为可训练。对于模型主体，我们采用NF4格式进行量化，这种格式可以使得量化后的数据与量化前具有同等的数据分布，模型的权重信息损失更少。\n\n#### 环境准备\n\n我们建议使用Python 3.10 + torch 2.0.1\n\n```shell\n# Pytorch + Transformers\n$ pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2\n$ pip install transformers==4.36.2 datasets evaluate peft accelerate gradio optimum sentencepiece trl\n$ pip install jupyterlab scikit-learn pandas matplotlib tensorboard nltk rouge bitsandbytes fire\n# CUDA Toolkit\n$ conda install nvidia\u002Flabel\u002Fcuda-11.7.1::cuda\n# DeepSpeed\n$ git clone https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FDeepSpeed.git\n$ cd DeepSpeed\n$ DS_BUILD_FUSED_ADAM=1 pip3 install .\n# Flash Attention\n$ pip install flash-attn --no-build-isolation\n```\n\n#### 数据集下载\n\n我们基于现有的开源数据集训练了Chinese-Mixtral-8x7B，数据集包括：\n\n|                                    数据集名称                                     | 数据集语言 |使用数据量|        备注        |\n|:----------------------------------------------------------------------------:|:-----:|:----------------:|:-----:|\n| [Skywork\u002FSkyPile-150B](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FSkywork\u002FSkyPile-150B) |  中文   |30B| 仅使用2022 + 2023年的数据 |\n| [DKYoon\u002FSlimPajama-6B](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FDKYoon\u002FSlimPajama-6B) |  英文   |12B|        数据集重复2 Epoch         |\n\n通过`data\u002Fdownload.py`将数据集下载到`data`中。针对Slimpajama数据集，需要使用`data\u002Fparquet2jsonl.py`将原始数据集转换为`jsonl`格式。\n\n下载后的数据集为多个jsonl文件的分片，使用`cat`将多个分片合并为一个jsonl文件。\n\n```shell\n$ cat *.jsonl > all.jsonl\n```\n\n通过`split`将jsonl切分为train和valid集合。本项目中train和valid的行数比例为999:1。\n\n```shell\n$ wc -l all.jsonl                          # 计算数据集总行数\n$ split -l \u003Clines> all.jsonl               # 按999:1计算train\u002Fvalid行数，进行切分\n$ mv xaa DKYoon-SlimPajama-6B-train.jsonl  # 重命名\n$ mv xab DKYoon-SlimPajama-6B-dev.jsonl\n```\n\n#### 数据集预处理\n\n将数据集名称和路径注册到`data\u002Fdatasets.toml`中：\n\n```toml\n[DKYoon-SlimPajama-6B]              # 数据集名称\nsplits = [\"train\", \"dev\"]           # 数据集train\u002Fvalid集合\nroot = \"{DATA_DIR}\u002Fen\u002F{name}\"       # 数据集根目录\ndoc = \"{name}-{split}\"              # 数据集文件名\nencoded = \"encoded-{name}-{split}\"  # 预处理保存位置\n```\n\n使用`data\u002Fpreprocess_datasets.py`对数据集进行子词切分，从而加快训练速度。\n\n```shell\n$ python data\u002Fpreprocess_datasets.py --ds_name SkyPile-150B-2023 --tokenizer_name_or_path tokenizer\u002FMixtral-8x7B-v0.1-vocab\n$ python data\u002Fpreprocess_datasets.py --ds_name DKYoon-SlimPajama-6B --tokenizer_name_or_path tokenizer\u002FMixtral-8x7B-v0.1-vocab\n```\n\n在进行子词切分后，可以使用`data\u002Futils.py`查看各个数据集的token总量：\n\n```shell\n$ python data\u002Futils.py\n```\n\n#### 开始训练\n\n训练启动脚本为`scripts\u002Ftrain.sh`。可以通过修改其中的`TRAIN_DATASETS`修改训练数据集和数据集比例：\n\n```shell\nTRAIN_DATASETS=(\n    1:SkyPile-150B-2022     # 使用全量SkyPile-150B-2022\n    0.1:SkyPile-150B-2023   # 使用SkyPile-150B-2023的10%数据\n    1:DKYoon-SlimPajama-6B  # 使用全量DKYoon-SlimPajama-6B\n)\n```\n\n如果您使用SLURM集群管理系统，可以通过`sbatch`进行提交：\n\n```shell\n$ sbatch scripts\u002Ftrain-pt.sh\n```\n\n如果没有SLURM或希望通过命令行启动训练，您可以直接提取`scripts\u002Ftrain-pt.sh`中的`torchrun`开始训练。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\n\n### 微调\n\n\u003C\u002Fsummary>\n\n#### 数据集准备\n\n微调需要的数据集格式与预训练类似，数据集文件需要为jsonl格式：每行一个json，其中需要包含`\"text\"`字段，将instruction、input和output全部按照您需要的模板进行拼接。\n\n然后需要将数据集名称和路径注册到`data\u002Fdatasets.toml`中：\n\n```toml\n[ShareGPT-Chinese]              # 数据集名称\nsplits = [\"train\"]              # 数据集train\u002Fvalid集合\nroot = \"{DATA_DIR}\u002Fsft\u002F{name}\"  # 数据集根目录\ndoc = \"{name}-{split}\"          # 数据集文件名\n```\n\n#### 开始训练\n\n训练启动脚本为`scripts\u002Ftrain-sft.sh`。可以通过修改其中的`TRAIN_DATASETS`修改训练数据集和数据集比例：\n\n```shell\nTRAIN_DATASETS=(\n    1.0:ShareGPT-Chinese  # 使用全量ShareGPT-Chinese\n    0.5:ShareGPT-English  # 使用ShareGPT-English的50%数据\n)\n```\n\n如果您使用SLURM集群管理系统，可以通过`sbatch`进行提交：\n\n```shell\n$ sbatch scripts\u002Ftrain-sft.sh\n```\n\n如果没有SLURM或希望通过命令行启动训练，您可以直接提取`scripts\u002Ftrain-sft.sh`中的`torchrun`开始训练。\n\n\u003C\u002Fdetails>\n\n## ✒️ 引用\n\n如果您觉得本项目对您的研究有所帮助或使用了本项目的代码，请引用本项目：\n\n```bibtex\n@misc{Chinese-Mixtral-8x7B,\n    author = {HIT-SCIR},\n    title = {Chinese-Mixtral-8x7B: An Open-Source Mixture-of-Experts LLM},\n    year = {2024},\n    publisher = {GitHub},\n    journal = {GitHub repository},\n    howpublished = {\\url{https:\u002F\u002Fgithub.com\u002FHIT-SCIR\u002FChinese-Mixtral-8x7B}}\n}\n```\n\n## 🌟 Star History\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHIT-SCIR_Chinese-Mixtral-8x7B_readme_0b71d74aa85f.png)](https:\u002F\u002Fstar-history.com\u002F#HIT-SCIR\u002FChinese-Mixtral-8x7B&Date)","# Chinese-Mixtral-8x7B 快速上手指南\n\n## 环境准备\n\n### 系统要求\n- Python 3.10+\n- CUDA 支持（推荐使用 NVIDIA GPU）\n\n### 前置依赖\n请确保安装以下依赖库：\n\n```shell\npip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2\npip install transformers==4.36.2 datasets evaluate peft accelerate gradio optimum sentencepiece trl\npip install jupyterlab scikit-learn pandas matplotlib tensorboard nltk rouge bitsandbytes fire\n```\n\n如需使用 Flash Attention 2，可额外安装：\n\n```shell\npip install flash-attn --no-build-isolation\n```\n\n对于国内用户，建议使用镜像源加速安装：\n\n```shell\npip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple torch==2.0.1 ...\n```\n\n## 安装步骤\n\n### 下载模型\n\n您可以通过 HuggingFace 或 ModelScope 下载模型。以下是下载命令示例：\n\n```shell\n# 下载完整模型\nfrom_pretrained(\"HIT-SCIR\u002FChinese-Mixtral-8x7B\")\n\n# 下载 LoRA 权重\nfrom_pretrained(\"HIT-SCIR\u002FChinese-Mixtral-8x7B-adapter\")\n```\n\n> 如果您使用的是 LoRA 权重，请参考官方文档将 LoRA 权重与原版 Mixtral-8x7B 模型合并。\n\n## 基本使用\n\n以下是一个简单的中文文本生成示例，使用 `Flash Attention 2` 加速推理：\n\n```python\nimport torch\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\nmodel_id = \"HIT-SCIR\u002FChinese-Mixtral-8x7B\"\ntokenizer = AutoTokenizer.from_pretrained(model_id)\n\nmodel = AutoModelForCausalLM.from_pretrained(model_id, \n                                             attn_implementation=\"flash_attention_2\", \n                                             torch_dtype=torch.bfloat16, \n                                             device_map=\"auto\")\n\ntext = \"我的名字是\"\ninputs = tokenizer(text, return_tensors=\"pt\").to(0)\n\noutputs = model.generate(**inputs, max_new_tokens=20)\nprint(tokenizer.decode(outputs[0], skip_special_tokens=True))\n```\n\n如果您希望使用 4bit 量化以节省显存，可以使用如下代码：\n\n```python\nimport torch\nfrom transformers import AutoModelForCausalLM, AutoTokenizer\n\nmodel_id = \"HIT-SCIR\u002FChinese-Mixtral-8x7B\"\ntokenizer = AutoTokenizer.from_pretrained(model_id)\n\nmodel = AutoModelForCausalLM.from_pretrained(model_id, load_in_4bit=True, device_map=\"auto\")\n\ntext = \"我的名字是\"\ninputs = tokenizer(text, return_tensors=\"pt\").to(0)\n\noutputs = model.generate(**inputs, max_new_tokens=20)\nprint(tokenizer.decode(outputs[0], skip_special_tokens=True))\n```\n\n> 注意：Chinese-Mixtral-8x7B 是基座模型，未经过指令微调，因此在执行复杂任务时可能需要进一步的微调。","某大型电商平台的客服团队正在处理大量用户咨询，其中涉及大量中文内容，包括商品咨询、退换货流程、订单查询等。他们希望借助 AI 模型实现智能客服系统，以提高响应速度和准确率。\n\n### 没有 Chinese-Mixtral-8x7B 时\n\n- 客服团队依赖人工处理大部分咨询请求，导致响应时间长且效率低下。\n- 现有的英文模型在处理中文语义时存在理解偏差，影响了回答的准确性。\n- 缺乏对复杂问题（如多步骤退货流程）的推理能力，导致用户满意度下降。\n- 部分任务需要多个模型配合完成，增加了系统复杂性和维护成本。\n- 模型无法有效支持中文长文本生成，限制了对话的自然流畅性。\n\n### 使用 Chinese-Mixtral-8x7B 后\n\n- 智能客服系统能够快速响应用户咨询，显著缩短了平均回复时间。\n- 基于扩词表的中文预训练增强了模型对中文语义的理解，提升了回答的准确性。\n- 模型具备较强的推理能力，可以处理复杂的多步骤问题，如退货流程和订单状态查询。\n- 支持端到端的中文对话生成，减少了对多个模型的依赖，简化了系统架构。\n- 大规模中文语料训练使模型在生成长文本时更加自然流畅，提升了用户体验。\n\nChinese-Mixtral-8x7B 提供了高效、精准的中文语言处理能力，显著提升了智能客服系统的性能与用户体验。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FHIT-SCIR_Chinese-Mixtral-8x7B_941d1c39.png","HIT-SCIR","哈工大社会计算与信息检索研究中心","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FHIT-SCIR_c307848e.jpg",null,"http:\u002F\u002Fir.hit.edu.cn","https:\u002F\u002Fgithub.com\u002FHIT-SCIR",[82,86],{"name":83,"color":84,"percentage":85},"Python","#3572A5",84.3,{"name":87,"color":88,"percentage":89},"Shell","#89e051",15.7,653,33,"2026-03-26T06:26:44","Apache-2.0",4,"Linux, macOS","需要 NVIDIA GPU，显存 8GB+，CUDA 11.7+","16GB+",{"notes":99,"python":100,"dependencies":101},"建议使用 conda 管理环境，首次运行需下载约 5GB 模型文件。训练时需要安装 DeepSpeed 和 Flash Attention 库，且需使用 QLoRA 进行训练以减少显存占用。","3.10",[102,103,104,105,106,107,108,109,110,111,112],"torch==2.0.1","transformers==4.36.2","datasets","evaluate","peft","accelerate","gradio","optimum","sentencepiece","trl","bitsandbytes",[13,26],[115,116,117,118],"large-language-models","llm","mixtral-8x7b","nlp","2026-03-27T02:49:30.150509","2026-04-06T07:15:07.988529",[122,127,132,137,142,147],{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},5881,"增量预训练出错，如何解决？","出现错误 `AttributeError: 'torch.dtype' object has no attribute 'itemsize'` 的原因是版本不兼容。建议使用项目提供的 requirements.txt 文件来安装依赖。可以访问 [requirements.txt](https:\u002F\u002Fgithub.com\u002FHIT-SCIR\u002FChinese-Mixtral-8x7B\u002Ffiles\u002F15090131\u002Frequirements.txt) 获取正确的依赖列表。","https:\u002F\u002Fgithub.com\u002FHIT-SCIR\u002FChinese-Mixtral-8x7B\u002Fissues\u002F28",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},5882,"SFT 训练时，训练数据的格式应该如何处理？","如果您的数据格式为 `{\"instruction\": \"xxx\", \"input\": \"xxx\", \"output\": \"xx\"}`，需要将其转换为包含 `text` 字段的 JSONL 格式。可以通过以下方式拼接：\n```python\nmessages = [\n    {\"role\": \"system\", \"content\": data[\"instruction\"]},\n    {\"role\": \"user\", \"content\": data[\"input\"]},\n    {\"role\": \"assistant\", \"content\": data[\"output\"]},\n]\ntext = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)\n```\n或者直接编写代码手动拼接字符串。","https:\u002F\u002Fgithub.com\u002FHIT-SCIR\u002FChinese-Mixtral-8x7B\u002Fissues\u002F30",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},5883,"如何获取 tokenizer 文件？","可以在 Hugging Face 上下载 tokenizer 文件，路径为：[HIT-SCIR\u002FChinese-Mixtral-8x7B](https:\u002F\u002Fhuggingface.co\u002FHIT-SCIR\u002FChinese-Mixtral-8x7B\u002Ftree\u002Fmain)。该路径下提供了已经训练好的 tokenizer。","https:\u002F\u002Fgithub.com\u002FHIT-SCIR\u002FChinese-Mixtral-8x7B\u002Fissues\u002F19",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},5884,"MMLU 评测时是否添加了 prompt？","为了保证评测结果的一致性和公平性，我们统一使用 EleutherAI 发布的 lm-evaluation-harness 进行评测，commit hash 为 [28ec7fa](https:\u002F\u002Fgithub.com\u002FEleutherAI\u002Flm-evaluation-harness\u002Ftree\u002F28ec7fa950346b5a895e85e1f3edd5648168acc4)。您可以使用这个版本进行测试。","https:\u002F\u002Fgithub.com\u002FHIT-SCIR\u002FChinese-Mixtral-8x7B\u002Fissues\u002F17",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},5885,"4bit 量化推理速度变慢的原因是什么？","在 A800 上使用 4bit 量化加载模型时，推理速度反而变慢，是因为 88G 的 Chinese-Mixtral-8x7B 模型是 LoRA 权重与原 Mixtral-8x7B 权重合并后的 bf16 精度模型，不是单独的 QLoRA 权重。使用 4bit 加载会增加额外计算量用于反量化，从而导致速度下降。","https:\u002F\u002Fgithub.com\u002FHIT-SCIR\u002FChinese-Mixtral-8x7B\u002Fissues\u002F6",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},5886,"如何在 Mac 上运行模型？","目前我们没有对 Apple Silicon（如 M3 芯片）进行显存测试，但 llama.cpp 支持 Apple Silicon，因此可以尝试使用 llama.cpp 进行推理。此外，推荐使用基于 Chinese-Mixtral-8x7B 微调后的模型 [huozi3](https:\u002F\u002Fgithub.com\u002FHIT-SCIR\u002Fhuozi)，该仓库提供了量化好的 gguf q2_k 格式的模型检查点及详细使用说明。","https:\u002F\u002Fgithub.com\u002FHIT-SCIR\u002FChinese-Mixtral-8x7B\u002Fissues\u002F16",[]]