大型语言模型微调框架
- 模型种类 待整理
- ChatGLM2-6B
- Baichuan
- InternLM
- Qwen
- 训练方式
- Full
- Freeze
- (Q)LoRA
- 训练阶段 stages
- Pretrain (WIP)
- SFT
- Reward Model (RM)
- PPO
- DPO (WIP)
transformers==4.33.1
trl==0.7.2
...
configs/ 训练参数配置文件
...
dataset/ 数据处理模块
load.py
prep.py
utils.py
datasets/ 训练语料
...
hparams/ 参数定义
data_args.py
finetuning_args.py
generating_args.py
model_args.py
patches/ 训练加速、长程建模等 (WIP)
...
scripts/ 训练启动脚本
...
stages/ 训练阶段:SFT、RM、PPO、DPO
pt.py (继续)预训练 (WIP)
sft.py 实现对话微调阶段的完整训练流程
rm.py 实现奖励模型 Reward Model 的完整训练流程
ppo.py 实现 PPO 训练的完整流程
dpo.py DPO (WIP)
utils/ 工具脚本
callbacks.py
constants.py
model.py
ploting.py
training.py
argument_parser.py 参数解析模块
model_loader.py 模型加载模块
prompt_templates.py 对话模板
train.py (主入口)训练启动脚本
填好相关配置文件 (WIP) ,启动 train.py
可参考 scripts 目录下的 Shell 启动脚本
参见文档:
./docs/常见参数说明.md
(WIP)
分布式训练工具:
- accelerate
- deepspeed
- bitsandbytes
参见文档:
./docs/分布式训练操作方法.md
(WIP)
- 完善微调相关代码
- 参数配置文件 ./scripts/...
- 数据集加载与 collator 相关流程与代码
- 模型评估
- 不同模型和训练方法下显卡需求量说明