【亲测免费】 Phi2-Chinese-0.2B:从零开始训练你的中文小模型
项目介绍
Phi2-Chinese-0.2B 是一个开源的实验性项目,旨在帮助开发者从零开始训练自己的中文小模型。该项目提供了完整的代码和模型权重,尽管预训练数据较少,但其灵活性和可定制性使其成为初学者和进阶开发者的理想选择。如果你需要效果更好的中文小模型,可以参考项目 ChatLM-mini-Chinese。
项目技术分析
数据清洗
Phi2-Chinese-0.2B 在数据清洗阶段进行了多种处理,包括句末添加句号、繁体转简体、删除重复标点符号、NFKC Unicode标准化等。这些步骤确保了数据的高质量,为后续的模型训练奠定了坚实的基础。
Tokenizer 训练
项目采用了 byte level 的 BPE 分词器,并提供了 char level 和 byte level 两种分词器的训练代码。Tokenizer 训练非常吃内存,建议在大数据集时进行采样以节省资源。
CLM 因果模型预训练
通过使用 bell open source 的数据集 BELLE,项目进行了无监督预训练。预训练过程中,模型输入和输出相同,计算交叉熵损失时需要错开一位。
SFT 指令微调
SFT 训练的数据格式经过精心设计,模型计算损失时会忽略标记 "##回答:" 之前的部分,确保模型能够正确理解指令。
RLHF 优化
项目采用了更简单、更节省显存的 DPO 偏好优化方法,通过构造 prompt、chosen 和 rejected 三列数据,对 SFT 模型进行微调。
项目及技术应用场景
Phi2-Chinese-0.2B 适用于多种应用场景,包括但不限于:
- 对话系统:模型可以用于构建智能对话系统,提供自然语言交互能力。
- 文本生成:通过微调,模型可以生成高质量的中文文本,适用于写作、摘要生成等任务。
- 检索式生成(RAG):项目提供了 RAG 的具体实现代码,适用于需要结合检索和生成能力的应用场景。
项目特点
- 开源与可定制:项目完全开源,开发者可以根据自己的需求进行定制和扩展。
- 实验性:项目为实验性质,随时可能进行大改,适合愿意尝试和探索的开发者。
- 高效训练:支持 flash attention 2 加速,提升训练效率。
- 灵活的 Tokenizer:提供两种分词器训练代码,适应不同数据集的需求。
- RLHF 优化:采用 DPO 方法进行偏好优化,提升模型性能。
结语
Phi2-Chinese-0.2B 是一个极具潜力的开源项目,适合那些希望从零开始训练中文小模型的开发者。无论你是初学者还是经验丰富的开发者,这个项目都能为你提供丰富的资源和灵活的定制选项。赶快加入我们,一起探索中文模型的无限可能吧!
项目地址:Phi2-Chinese-0.2B
模型权重:Hugging Face
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0215
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0138
uni-appA cross-platform framework using Vue.jsJavaScript08
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03