Skip to content

PipelineLLM 是一个系统性的大语言模型(LLM)后训练学习项目,涵盖从监督微调(SFT)到偏好优化(DPO)、强化学习(RLHF/PPO/GRPO)再到持续学习(Continual Learning)的完整技术栈。

License

Notifications You must be signed in to change notification settings

iBacklight/PipelineLLM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PipelineLLM

从预训练到持续对齐:大语言模型后训练全流程实战

Language Framework License Status


项目简介

pipelinellm

PipelineLLM 是一个系统性的大语言模型(LLM)后训练学习项目,涵盖从监督微调(SFT)到偏好优化(DPO)、强化学习(RLHF/PPO/GRPO)再到持续学习(Continual Learning)的完整技术栈

在大模型时代,预训练只是起点。一个真正可用、可信、可控的 LLM,需要经历:

预训练 → SFT(学会说话)→ DPO/RL(说得更好)→ 持续学习(与时俱进)

本项目以理论+实战的方式,带你走完这条完整的流水线。

  • 作者注:
    • 1)本项目与AI共同开发完成,部分文档和代码由AI撰写;
    • 2)部分文档还在努力完善中,欢迎PR!
    • 3)由于markdown的兼容性问题,在github上的md文档的有些公式可能显示有问题,读者可以下载到本地阅读(例如使用Typora浏览),我也会尽可能贴合github的格式需求,感谢谅解。

项目意义

为什么需要 PipelineLLM?

痛点 PipelineLLM 的解决方案
碎片化学习,难以形成体系 7 天课程,环环相扣,从基础到前沿
理论与实践脱节 每个模块配套可运行代码
缺乏中文资料 全中文文档,适合中文开发者
不知道如何选择技术路线 对比分析 SFT/DPO/RL 的适用场景
持续学习被忽视 专门两天讲解 CL 及其在 LLM 中的应用

核心价值

  1. 系统性:覆盖后训练全流程,理解技术间的依赖关系
  2. 实用性:基于 QLoRA 的单卡训练方案,4080 即可运行
  3. 前沿性:涵盖 GRPO、DAPO、GSPO、CPPO 等最新RL/CL算法
  4. 可扩展性:模块化设计,便于扩展和定制

📁 项目结构

PipelineLLM/
│
├── 📚 LLM_Background/                    # 基础知识
│   ├── transformer/                      # Transformer 从零实现
│   │   ├── transformer_model.py          # 完整 Transformer(含交叉注意力)
│   │   └── simple_tokenizer.py           # 简易分词器
│   └── gpu_mem/                          # 显存计算与优化
│
├── 📖 LLM_Intro/                         # LLM 架构入门
│   ├── llm_archs/                        # 主流架构解析(GPT/LLaMA/DeepSeek)
│   └── llm_processes/                    # 预训练与微调流程
│
├── 🎓 Post_train/                        # 后训练核心课程
│   ├── Day 1_课程总览.md                  # 课程导览与学习路线
│   ├── Day 2_SFT 实战.md                  # 监督微调
│   ├── Day 3_偏好优化.md                  # DPO 理论与实践
│   ├── Day 4_强化学习(上).md             # RL 理论基础
│   ├── Day 5_强化学习(下).md             # LLM-RL 实战
│   ├── Day 6_持续学习.md                  # CL 经典方法
│   ├── Day 7 LLM与持续学习.md             # LLM-CL 前沿
│   ├── Appendix_RL 算法总结.md            # RL 算法速查表
│   │
│   ├── 🔧 sft_qlora/                     # SFT 实战代码
│   │   ├── train.py                      # QLoRA 训练脚本
│   │   ├── config.py                     # 训练配置
│   │   └── merge_model.py                # 权重合并
│   │
│   ├── 🎯 dpo/                           # DPO 实战代码
│   │   ├── train_dpo.py                  # DPO 训练脚本
│   │   ├── mini_dpo.py                   # 极简 DPO 实现
│   │   └── dataset/                      # 偏好数据处理
│   │
│   ├── 🎮 rlhf/                          # 强化学习模块
│   │   ├── Qlearning/                    # Q-Learning 入门
│   │   ├── PPO/                          # PPO 算法实现
│   │   ├── GRPO/                         # GRPO 算法实现
│   │   └── RewardModel/                  # 奖励模型训练
│   │
│   └── 📄 papers/                        # 参考论文
│
└── README.md                             # 本文件

课程内容

第一阶段:指令对齐

Day 主题 核心内容 关键技术
Day 2 SFT 监督微调 让模型"学会说话" QLoRA, Assistant-only Loss, Packing
Day 3 偏好优化 让模型"说得更好" DPO, Bradley-Terry Model

第二阶段:强化学习

Day 主题 核心内容 关键技术
Day 4 RL 理论 理论武装 MDP, Bellman, 策略梯度, PPO
Day 5 LLM-RL 实战落地 RLHF, 奖励模型, GRPO, DAPO,GSPO

第三阶段:持续进化

Day 主题 核心内容 关键技术
Day 6 持续学习 学新不忘旧 EWC, LwF, iCaRL, MoE
Day 7 LLM-CL 终身学习 CPT, CFT, CA, CPPO, InsCL

快速开始

环境要求

# Python 版本
Python >= 3.10

# 核心依赖
torch >= 2.1.0
transformers >= 4.40.0
peft >= 0.10.0
trl >= 0.8.0
bitsandbytes >= 0.43.0
datasets >= 2.18.0

# 可选:加速训练
unsloth  # 2x 加速
flash-attn  # FlashAttention

安装

# 克隆项目
git clone https://github.com/your-username/PipelineLLM.git
cd PipelineLLM

# 创建虚拟环境
conda create -n pipelinellm python=3.10
conda activate pipelinellm

# 安装依赖
pip install torch transformers peft trl bitsandbytes datasets
pip install unsloth  # 可选,加速训练

运行示例

# 1. SFT 训练
cd Post_train/sft_qlora
python train.py

# 2. DPO 训练
cd Post_train/dpo
python train_dpo.py

# 3. Q-Learning 可视化
cd Post_train/rlhf/Qlearning
python train_qlearning.py

# 4. 奖励模型训练
cd Post_train/rlhf/RewardModel
python train_reward_model.py

核心技术栈

训练技术

技术 用途 显存节省
QLoRA 4-bit 量化 + LoRA ~75%
Gradient Checkpointing 用计算换显存 ~30%
Flash Attention 高效注意力计算 ~20%
Packing 减少 padding 浪费 ~15%

算法实现

算法 文件位置 说明
Transformer LLM_Background/transformer/ 从零实现,含交叉注意力
LoRA LLM_Intro/llm_processes/lora/ 低秩适配详解
Q-Learning Post_train/rlhf/Qlearning/ RL 入门
PPO Post_train/rlhf/PPO/ 策略优化核心算法
GRPO Post_train/rlhf/GRPO/ 组内相对优化
DPO Post_train/dpo/ 直接偏好优化
Reward Model Post_train/rlhf/RewardModel/ 奖励模型训练

实验需求

硬件要求

模型规模 训练方式 最低显存 推荐显存
4B QLoRA 8 GB 12 GB
8B QLoRA 12 GB 16 GB
14B QLoRA 18 GB 24 GB
72B QLoRA 48 GB 80 GB

基准模型

本项目主要使用以下模型进行实验:

  • Qwen3-1.7B/Qwen3-4B / Qwen3-8B:适合单卡LoRA训练

📚 参考资料

核心论文

  1. Training language models to follow instructions with human feedback (InstructGPT)
  2. Direct Preference Optimization (DPO)
  3. Proximal Policy Optimization Algorithms (PPO)
  4. DeepSeekMath: Pushing the Limits of Mathematical Reasoning (GRPO)
  5. QLoRA: Efficient Finetuning of Quantized LLMs
  6. Overcoming catastrophic forgetting in neural networks (EWC)
  7. iCaRL: Incremental Classifier and Representation Learning
  8. Continual Learning for Large Language Models: A Survey

推荐阅读


📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件


🎯 目标:让每个人都能训练出自己的 LLM

Made with ❤️ by Haoran

About

PipelineLLM 是一个系统性的大语言模型(LLM)后训练学习项目,涵盖从监督微调(SFT)到偏好优化(DPO)、强化学习(RLHF/PPO/GRPO)再到持续学习(Continual Learning)的完整技术栈。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published