开箱即用,完整版 ChatGPT 克隆方案,开源了!( 二 )


RLHF-算法流程图
在 PPO 部分,分为两个阶段进行:首先是 Make部分,利用 SFT 、Actor、RM、 模型计算生成存入中;之后是参数更新部分,利用计算策略损失和价值损失 。
在 PTX 部分,计算 Actor 输出和输入语料的回答部分的交叉熵损失函数,用来在 PPO 梯度中加入预训练梯度,以保持语言模型原有性能防止遗忘 。最后将策略损失、价值损失和 PTX 损失加和进行反向传播和参数更新 。
快速上手
开源了基于 LLaMA 模型,复现训练三个阶段的完整代码 。
第一阶段,训练 SFT 模型:
# Training with a 4-GPU serverscolossalai run --nproc_per_node=4 train_sft.py \--pretrain "/path/to/LLaMa-7B/" \--model 'llama' \--strategy colossalai_zero2 \--log_interval 10 \--save_path/path/to/Coati-7B \--dataset /path/to/data.json \--batch_size 4 \--accimulation_steps 8 \--lr 2e-5
第二阶段,训练奖励模型:
# Training with a 4-GPU serverscolossalai run --nproc_per_node=4 train_reward_model.py \--pretrain "/path/to/LLaMa-7B/" \--model 'llama' \--strategy colossalai_zero2 \--dataset /path/to/datasets
第三阶段,使用 RL 训练:
# Training with a 8-GPU serverscolossalai run --nproc_per_node=8 train_prompts.py prompts.csv \--strategy colossalai_zero2 \--pretrain "/path/to/Coati-7B" \--model 'llama' \--pretrain_dataset /path/to/dataset
在获得最终模型权重后,还可通过量化降低推理硬件成本,并启动在线推理服务,仅需单张约 4GB 显存的 GPU 即可完成 70 亿参数模型推理服务部署 。
python server.py /path/to/pretrained --quant 4bit --gptq_checkpoint /path/to/coati-7b-4bit-128g.pt --gptq_group_size 128
系统性能优化与开发加速
能够快速跟进完整 RLHF 流程复现,离不开 AI 大模型基础设施 -AI 及相关优化技术的底座支持,相同条件下训练速度相比采用的 FSDP(FullyData ) 可提升两倍以上 。
系统基础设施 -AI
AI 大模型开发系统 -AI 为该方案提供了基础支持,它可基于高效快速部署 AI 大模型训练和推理,从而降低 AI 大模型应用的成本 。
-AI 由加州伯克利大学杰出教授 James和新加坡国立大学校长青年教授尤洋领导开发 。

开箱即用,完整版 ChatGPT 克隆方案,开源了!

文章插图
自开源以来,-AI 已经多次在热榜位列世界第一,获得Star 约两万颗,并成功入选 SC、AAAI、PPoPP、CVPR、ISC 等国际 AI 与 HPC 顶级会议的官方教程 。
减少内存冗余的 ZeRO +
-AI 支持使用无冗余优化器 (ZeRO) 提高内存使用效率,低成本容纳更大模型,同时不影响计算粒度和通信效率 。自动 Chunk 机制可以进一步提升 ZeRO 的性能,提高内存使用效率,减少通信次数并避免内存碎片 。
异构内存空间管理器支持将优化器状态从 GPU 显存卸载到 CPU 内存或硬盘空间,以突破 GPU 显存容量限制,扩展可训练模型的规模,降低 AI 大模型应用成本 。
使用 LoRA 低成本微调
-AI 支持使用低秩矩阵微调(LoRA)方法,对 AI 大模型进行低成本微调 。LoRA 方法认为大语言模型是过参数化的,而在微调时,参数改变量是一个低秩矩阵 。
因此,可以将这个矩阵分解为两个更小的矩阵的乘积 。在微调过程中,大模型的参数被固定,只有低秩矩阵参数被调整,从而显著减小了训练所需的参数量,并降低成本 。
低成本量化推理
GPTQ量化
为降低推理部署成本,-AI 使用 GPTQ 4bit 量化推理 。在 GPT/OPT/BLOOM 类模型上,它比传统的RTN(rount-to-) 量化技术能够获得更好的效果 。