Skip to content

codesun8/Cortex

 
 

Repository files navigation

created by gemini
个人构建MoE大模型:从预训练到DPO的完整实践

visitors GitHub Repo stars GitHub Code License GitHub last commit GitHub pull request

模型简介

Cortex V2是一个个人可承担训练成本的0.6B的MoE LLM,推理时激活参数仅为0.2B。目前已完成预训练到DPO全流程训练,并提供训练各个阶段checkpoint下载,下载地址:https://www.modelscope.cn/models/qibin0506/Cortex-V2

🔥Cortex V3版本目前正在筹备中,目标是通过加大模型参数和预训练数据质量和数量,整体提升模型能力。如果你有闲置算力可联系我[[email protected]]进行共创。

更新日志

2025.8.29 更新内容:

  1. 优化器从Adam替换为Lion,训练更省显存;需升级llm_trainer到0.8.0版本。

2025.8.28 更新内容:

  1. dpo训练修改为2个epoch,同时增加nll_loss,并重新训练dpo。

2025.8.23 更新内容:

  1. 替换预训练数据集,使用序列猴子通用文本数据集进行预训练。
  2. 使用更先进的训练方法。
  3. 新增思考模式控制,可通过添加/think和/no think控制是否思考。
  4. 新增思考预算功能,可控制思考token长度。

效果预览

思考模式 非思考模式 思考预算

快速开始

  1. 确保本机已安装python3
  2. clone或下载本项目
  3. 安装依赖 pip3 install -r requirements.txt
  4. 执行 python3 app.py运行项目,首次访问会下载模型文件,等待服务准备完成后,访问链接http://0.0.0.0:8080/ 即可体验

技术细节

模型和训练代码

本项目模型和训练代码完全开源并解耦。

  1. 模型代码并作为通用LLM(支持VLM)项目开放在https://github.com/qibin0506/llm-model
  2. 训练代码支持Pretrain、SFT、GRPO、GSPO、DPO等训练方式,代码完成度较高,上手简单,项目开放在https://github.com/qibin0506/llm_trainer

训练细节

Cortex V2采用更加先进的训练方式进行训练,开启训练使用smart_train xxx.py,如果需要在指定GPU上进行训练,可以使用smart_train xxx.py 1,2,3。训练文件名称可以参考下面详细介绍。

预训练

预训练过程采用两阶段训练模式

stage0 stage1
train_pretrain_stage0.py train_pretrain_stage1.py
上下文长度为512,在较短训练文本上进行训练 采用YaRN技术将上下文扩展至2048,并在长文本序列上继续训练

后训练

后训练过程采用四阶段训练模式

COT SFT GSPO MIX SFT DPO
train_cot.py train_grpo.py train_mix.py train_dpo.py
在纯COT数据集上进行SFT,让模型原生支持思考模式 采用GSPO技术,提升模式的逻辑思考能力 使用COT和非COT混合数据集上进行SFT,让模式支持思考控制和思考预算能力 使用DPO进行对齐训练

继续训练

本项目提供各个阶段训练完成后的checkpoint, 可根据自己需求选择checkpoint继续训练。 checkpoint下载:https://www.modelscope.cn/models/qibin0506/Cortex-V2/files 训练方式:

  1. 确定继续训练的阶段,修改file_dataset.py中对应阶段的FileDataset中的文件,然后使用smart_train进行训练,例如重新进行dpo,则执行smart_train train_dpo.py
  2. 本项目GSPO阶段是在4x5090进行训练,其他阶段都是在4x4090进行训练,同时utils.py中的配置数据也是按照对应硬件配置确定,如有不同的训练设备可自行修改utils.py进行适配。
  3. file_dataset.py文件用来管理数据集文件,可按需修改,数据集文件会自动下载,使用完成后会自动删除,无需人工管理。

star-history

Star History Chart

About

个人构建MoE大模型:从预训练到DPO的完整实践

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 60.4%
  • HTML 39.6%