[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-72429":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":15,"starSnapshotCount":15,"syncStatus":28,"lastSyncTime":29,"discoverSource":30},72429,"Cortex","qibin0506\u002FCortex","qibin0506","从零构建大模型：从预训练到RLHF的完整实践","https:\u002F\u002Fwww.modelscope.cn\u002Fstudios\u002Fqibin0506\u002FCortex",null,"Python",2666,207,8,0,4,5,24,12,71.85,"Apache License 2.0",false,"master",[],"2026-06-12 04:01:05","\u003Cdiv align=\"center\">\n    \u003Cimg alt=\"created by gemini\" src=\".\u002Fimages\u002Flogo.png\" style=\"width: 30%\">\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\u003Cb>从零构建大模型：从预训练到RLHF的完整实践\u003C\u002Fb>\u003C\u002Fdiv> \u003Cbr \u002F>\n\n\u003Cdiv align=\"center\">\n\n![visitors](https:\u002F\u002Fvisitor-badge.laobi.icu\u002Fbadge?page_id=qibin0506\u002FCortex)\n[![GitHub Repo stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fqibin0506\u002FCortex?style=social)](https:\u002F\u002Fgithub.com\u002Fqibin0506\u002FCortex\u002Fstargazers)\n[![GitHub Code License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fqibin0506\u002FCortex)](LICENSE)\n[![GitHub last commit](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002Fqibin0506\u002FCortex)](https:\u002F\u002Fgithub.com\u002Fqibin0506\u002FCortex\u002Fcommits\u002Fmaster)\n[![GitHub pull request](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-blue)](https:\u002F\u002Fgithub.com\u002Fqibin0506\u002FCortex\u002Fpulls)\n\u003C\u002Fdiv>\n\n## 📖 项目简介\n\n**Cortex** 是一个致力于让个人开发者也能承担训练成本的 LLM 项目。本项目实现了从零开始构建大模型的全过程，代码完全开源且解耦。\n\n### 🌟 Cortex 3.1 核心特性\n\n*   **国产芯片适配**：首次在国产芯片（MLU370 × 4 ）完成全流程训练。\n*   **极致轻量 MoE 架构**：面回归混合专家（MoE）设计，模型总参数量仅 0.1B，推理激活参数低至 ~67M，实现极低算力设备上的超高推理吞吐。\n*   **LLM as Judge 驱动的 PPO 训练**：在强化学习阶段，引入大语言模型作为裁判（LLM as Judge）提供反馈信号，显著提升对齐训练的质量与效率。\n*   **前沿架构特性扩展**：新增对 Attention Residuals（注意力残差）机制的支持。为了保持灵活性该功能默认关闭，开发者只需在 utils.py 中修改 ENABLE_ATTN_RES 即可轻松解锁探索。\n*   **思考控制**：支持思考控制，通过添加`\u002Fthink`和`\u002Fno think`标签选择开启\u002F关闭思考模式。\n*   **全链路训练代码 100% 开源**：开放全生命周期训练流，涵盖：Pretrain（预训练）、Midtrain（上文适应）、SFT（指令微调）、DPO（偏好优化） 以及 PPO（强化学习）。\n*   **高度解耦**：\n    *   🤖 模型定义：[qibin0506\u002Fllm_model](https:\u002F\u002Fgithub.com\u002Fqibin0506\u002Fllm_model)\n    *   ⚙️ 训练框架：[qibin0506\u002Fllm_trainer](https:\u002F\u002Fgithub.com\u002Fqibin0506\u002Fllm_trainer)\n\n\n## 📰 更新日志\n\u003Cdetails open> \n\u003Csummary> \u003Cb>2026.5.16\u003C\u002Fb> \u003C\u002Fsummary>\n    \n*   Cortex 3.1 MoE模型发布：支持通过添加`\u002Fthink`和`\u002Fno think`标签控制是否开启思考。\n\n\u003C\u002Fdetails>\n\n\n## 🚀 快速开始\n\n### ☁️ 在线体验\n\n访问 ModelScope 创空间直接体验模型效果：\n\n[👉 点击前往 ModelScope Studio](https:\u002F\u002Fwww.modelscope.cn\u002Fstudios\u002Fqibin0506\u002FCortex)\n\n### 💻 本地部署\n\n1.  **环境准备**：确保 Python >= 3.10。\n2.  **获取代码**：\n\n    ```\n    git clone https:\u002F\u002Fgithub.com\u002Fqibin0506\u002FCortex.git\n    cd Cortex\n\n    ```\n3.  **安装依赖**：\n\n    ```\n    pip3 install -r requirements.txt\n\n    ```\n4.  **启动服务**：\n\n    ```\n    python3 app.py\n\n    ```\n\n    *首次运行将自动下载模型文件，启动后访问 \u003Chttp:\u002F\u002F0.0.0.0:8080\u002F> 即可体验。*\n\n## ⚙️ 训练流程详解\n\n### 阶段性训练指南\n\n训练过程分为四个主要阶段，请按顺序执行。\n\n| **阶段**           | **脚本**                           | **上下文** | **目标与说明**   |\n|:-----------------|:---------------------------------| :------ | :---------- |\n| **I. Pretrain**  | `train_pretrain.py`              | 512     | **基础知识学习**。 |\n| **II. Midtrain** | `train_midtrain.py`              | 2048    | **长文本适应**。  |\n| **III. SFT**     | `train_sft.py`                   | 2048    | **对话能力赋予**。 |\n| **IV. DPO\u002FPPO**  | `train_dpo.py` \u002F  `train_ppo.py` | 2048    | **人类偏好对齐**。 |\n\n#### 🔧 通用操作：监控与 Checkpoint 转换\n\n*   **监控**：日志位于 `.\u002Flog` 目录。\n\n    *   查看指标：`vis_log .\u002Flog\u002Flog.txt`\n    *   查看学习率：`vis_lr .\u002Flog\u002Flr.txt`\n*   **Checkpoint 转换**：每个阶段结束后，DeepSpeed 的 Checkpoint 需要转换为标准 bin 文件以便下一阶段加载。\n\n***\n\n#### 📌 阶段一：Pretrain (预训练)\n\n```\n# 1. 开始训练\nsmart_train train_pretrain.py\n\n# 2. 转换权重 (训练完成后执行)\ncd .\u002Fckpt_dir\npython3 zero_to_fp32.py .\u002F ..\u002F\ncd ..\nmv pytorch_model.bin last_checkpoint.bin\n\n# 3. 清理\nrm -rf .\u002Fckpt_dir .\u002Flog\n\n```\n\n> 📊 **Pretrain 指标预览**\n>\n> \u003Cimg src=\".\u002Fimages\u002Fpretrain.png\" width=\"80%\">\n\n#### 📌 阶段二：Midtrain (长文适应)\n\n```\n# 1. 开始训练 (自动加载 last_checkpoint.bin)\nsmart_train train_midtrain.py\n\n# 2. 转换权重\ncd .\u002Fckpt_dir\npython3 zero_to_fp32.py .\u002F ..\u002F\ncd ..\nmv pytorch_model.bin last_checkpoint.bin\n\n# 3. 清理\nrm -rf .\u002Fckpt_dir .\u002Flog\n\n```\n\n> 📊 **Midtrain 指标预览**\n>\n> \u003Cimg src=\".\u002Fimages\u002Fmidtrain.png\" width=\"80%\">\n\n#### 📌 阶段三：SFT (监督微调)\n\n```\n# 1. 开始训练\nsmart_train train_sft.py\n\n# 2. 转换权重并归档\ncd .\u002Fckpt_dir\npython3 zero_to_fp32.py .\u002F ..\u002F\ncd ..\nmv pytorch_model.bin last_checkpoint.bin\ncp last_checkpoint.bin sft.bin\n\n# 3. 清理\nrm -rf .\u002Fckpt_dir .\u002Flog\n\n```\n\n> 📊 **SFT 指标预览**\n>\n> \u003Cimg src=\".\u002Fimages\u002Fsft.png\" width=\"80%\">\n\n#### 📌 阶段四（可选1）：DPO\n\n```\n# 1. 开始训练\nsmart_train train_ppo.py\n\n# 2. 转换权重\ncd .\u002Fckpt_dir\npython3 zero_to_fp32.py .\u002F ..\u002F\ncd ..\nmv pytorch_model.bin dpo.bin\n\n# 3. 清理\nrm -rf .\u002Fckpt_dir .\u002Flog\n\n```\n\n> 📊 **DPO 指标预览**\n>\n> \u003Cimg src=\".\u002Fimages\u002Fdpo.png\" width=\"80%\">\n\n#### 📌 阶段四（可选2）：PPO (强化学习)\n\n1. 本阶段包含 Policy Model 和 Value Model 的联合训练。\n2. 本次训练采用LLM as Judge作为奖励模型，可以通过设置`JUDGE_API_KEY`（必选）、`JUDGE_BASE_URL`（可选，默认为siliconflow.cn）、`JUDGE_MODEL`（可选，默认为DeepSeek-V3.2）选择适合自己的LLM作为奖励模型。\n注意：如果`JUDGE_BASE_URL`、`JUDGE_MODEL`选择默认，`JUDGE_API_KEY`需要去siliconflow申请，具体方式请参考官网。\n\n```\n# 1. 开始训练\nsmart_train train_ppo.py\n\n# 2. 转换权重\ncd .\u002Fckpt_dir\npython3 zero_to_fp32.py .\u002F ..\u002F\ncd ..\nmv pytorch_model.bin ppo.bin\n\n# 3. 清理\nrm -rf .\u002Fckpt_dir .\u002Flog\n\n# 4. 提取最终策略模型 (Policy)\n# ppo.bin 包含 policy 和 value，需提取供推理使用\npython3 extract_ppo_result.py\n# 输出: ppo_policy.bin\n\n```\n\n> 📊 **PPO 指标预览**\n>\n> \u003Cimg src=\".\u002Fimages\u002Fppo.png\" width=\"80%\">\n\n---\n\n## 📊 star-history\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=qibin0506\u002FCortex&type=Date&theme=dark\"\u002F>\n  \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=qibin0506\u002FCortex&type=Date\"\u002F>\n  \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=qibin0506\u002FCortex&type=Date\"\u002F>\n\u003C\u002Fpicture>\n\n## 🤝 Contributions\n![Alt](https:\u002F\u002Frepobeats.axiom.co\u002Fapi\u002Fembed\u002F92085da81aa351b1fe3af41e9edad308411a2eb5.svg \"Repobeats analytics image\")\n","Cortex 是一个从零开始构建大模型的项目，涵盖了从预训练到强化学习（RLHF）的完整流程。该项目的核心功能包括国产芯片适配、轻量级MoE架构支持以及LLM作为裁判的PPO训练等，旨在降低个人开发者训练大型语言模型的成本和技术门槛。此外，Cortex还引入了思考控制机制和前沿的Attention Residuals架构特性，增强了模型的功能性和灵活性。适合于对自然语言处理感兴趣的研究人员、开发爱好者或小型团队，在有限资源条件下探索和实验大模型技术的应用场景。",2,"2026-06-11 03:42:01","high_star"]