这里的ChatGPT、GPT-4等AI大模型和应用方兴未艾。
另一方面,“平替”开源再现方案也在加紧迭代更新。
这个不,「首次的开放源代码ChatGPT低成本再现程序」来了波浪大更新!
目前,不到百亿参数,利用RLHF的简单微调,模型可以掌握中、英双语能力,达到相当于ChatGPT和GPT-3.5的效果。
中文会话的效果如下:
由Colossal-AI发售。一个月前,Colossal-AI乘着ChatGPT热潮紧急启动低成本再现进程。
此外,新升级的ColossalChat是基于Meta最新开源的LLaMA的预培训模式,能力更强,门槛也更低。
Demo:在线直接体验模型效果,无需注册或waitinglist训练代码:开源完全RLHF训练代码,已开源包含7B、13B两种模型数据集:开源104K中英双语数据集推理配置:4bit量化推理70亿参数模型仅为4GB显像模型加权:仅用一台服务器的少量计算力就可以快速再现更大规模的模型、数据集,其他优化等为了保持快速迭代添加,模型开源、数据集、培训应用成本、核心数据安全性等是AI大模式浪潮下最受关注的几个问题。ColossalChat对此一次性给出了处理方法。
因此,本想快速跟进ChatGPT这股技术浪潮,但门槛又降低了。
开源地址:https://github.com/hpcaitech/ColossalAI
包括完整的RLHF过程具体来说,ColossalChat的能力包括知识问答、中英文对话、内容创建、编程等。
和ChatGPT一样,ColossalChat知道NBA和乔丹是谁:
为了接近ChatGPT、GPT-4的惊人效果,ColossalChat发现使用LLaMA作为预训练模型,包括完整的RLHF过程。
之所以这样做,是因为现有的开源方案都只得到了人类反馈强化学习(RLHF)的第一步监督微调模型,没有进行后续的对齐和微调工作。
△RLHF的3个阶段
例如,Meta开源了LLaMA模型,其参量从70亿到650亿不等,在大多数GPT-3模型的基准测试中的表现胜过被称为130亿参数的1750亿。
但是,实际生成效果并不充分,因为它没有经过命令微调。
斯坦福的Alpaca调用OpenAI API,通过self-instrut方式生成训练数据,只有70亿参数的轻量模型以极低的成本进行微调后,才能获得GPT-3.5这样的可与千亿参数相媲美的超大规模语言模型的对话效果。
ChatGPT、GPT-4效果好的大关键是将RLHF引入到训练过程中,才能使生成内容更符合人的价值观。
因此,基于LLaMA模型,包括完整RLHF过程的类Chat模型重构方案ColossalChat可以说是目前最接近ChatGPT原始技术路线的实用开源项目。
总结一下,与羊驼相比,ColossalChat有四个方面。
第一,ColossalChat开源了第一个完整的RLHF pipeline,斯坦福羊驼没有做RLHF,即Stage2和3。
第二,ColossalChat采用了更多的命令数据,质量好,范围广,使用强化学习进行alignment,使回答更贴近人类。
第三,ColossalChat培训流程整合了Colossal-AI的多项系统优化,同等数据集和模型大小的培训速度比AIpaca快3倍左右,科研人员和中小企业可以自行培训配置自己的口语系统。
第四,ColossalChat收集了更多的数据集:训练有素的英语共24M tokens,中文约30M tokens,共约54M tokens。其中,ColossalChat自己收集的数据集为英语6M、中文18M tokens。
在训练数据集的开源数据集中,ColossalChat在约10万份问答中开源了英双语数据集。
该数据集收集和清洗社交平台上人们的实际提问场景作为种子数据集,利用self-instrut技术扩展数据,花费约900美元进行标记。
与其他self-instruct方法生成的数据集相比,该数据集的种子数据更加真实和丰富,生成的数据集中包含的话题更多。
该数据可用于微调和RLHF训练。高质量的数据使ColossalChat能够在支持中文的同时进行更好的对话对话。
△ColossalChat数据集收集过程
RLHF算法再现RLHF第一步骤(Stage1、是使用上述数据集执行模型微调的超精细单元。
RLHF第二步(Stage2、训练奖励模型,其通过对相同propt的不同输出进行人工排序,获得相应的分数,并监督训练奖励模型。
RLHF第三步(Stage3、使用增强学习算法,并且是训练过程中最复杂的部分:
△RLHFstage3算法流程图
在PPO部分,ColossalChat分两个阶段运行。
首先,是Make Experience部分,利用SFT、Actor、RM、Critic模型计算生成Experience并存储在buffer中。然后在参数更新器中,使用Experience计算策略损失和价值损失。
在PTX部分中,ColossalChat计算Actor输出response和输入语料回答部分的交叉熵损失函数,以便对PPO梯度施加预训练梯度,以保持语言模型的原始性能并防止遗忘。最后,将战略损失、价值损失和PTX损失相加,进行反向传播和参数更新。
快速ColossalChat开源基于LLaMA模型再现了训练ChatGPT的三级完整代码。
第一阶段,训练SFT模型:
# Training with a 4-GPU serverscolossalai run #8211;nproc_per_node=4 train_sft.py \#8211;pretrain #8220;/path/to/LLaMa-7B/#8221; \#8211;model #8216;llama#8217; \#8211;strategy colossalai_zero2 \#8211;log_interval 10 \#8211;save_path /path/to/Coati-7B \#8211;dataset /path/to/data.json \#8211;batch_size 4 \#8211;accimulation_steps 8 \#8211;lr 2e-5
第二阶段,培训奖励模式:
# Training with a 4-GPU serverscolossalai run #8211;nproc_per_node=4 train_reward_model.py \#8211;pretrain #8220;/path/to/LLaMa-7B/#8221; \#8211;model #8216;llama#8217; \#8211;strategy colossalai_zero2 \#8211;dataset /path/to/datasets
第三阶段,使用RL训练:
# Training with a 8-GPU serverscolossalai run #8211;nproc_per_node=8 train_prompts.py prompts.csv \#8211;strategy colossalai_zero2 \#8211;pretrain #8220;/path/to/Coati-7B#8221; \#8211;model #8216;llama#8217; \#8211;pretrain_dataset /path/to/dataset
在获得最终模型权重后,量化可降低推理硬件成本,启动在线推理服务,仅一块约4GB图形存储器GPU即可完成70亿参数模型推理服务部署。
python server.py /path/to/pretrained #8211;quant 4bit #8211;gptq_checkpoint /path/to/coati-7b-4bit-128g.pt #8211;gptq_group_size 128
系统性能优化与开发加速ColossalChat能够快速跟踪ChatGPT完整的RLHF过程再现,离不开AI大模型基础架构Colossal-AI和相关优化技术的基础支持。在相同条件下的训练速度可以比Alpaca采用的FSDP(Fully Sharded Data Parallel)提高3倍以上。
系统基础设施Colossal-IAI大模型开发系统Colossal-AI基于PyTorch能够有效快速地开展AI大模型的训练和推论,提供了能够降低AI大模型应用成本的基础支持。
Colossal-AI由加州伯克利大学的詹姆斯戴米尔教授和新加坡国立大学校长青年教授俞洋领导开发。
自开源以来,Colossal-AI在GitHub热榜上多次位居世界第一,获得约2万个GitHub Star,入选SC、AAAI、PPoPP、CVPR、ISC等国际AI和HPC顶级会议官方教程。
减少了内存冗余的ZERO+GeminiColossal-AI支持使用无冗余优化器(ZERO)提高内存使用效率并以低成本容纳更大型号,而不会影响计算粒度和通信效率。
自动Chunk机制可以进一步提高Zero的性能,提高内存使用效率,减少通信次数,避免内存碎片。
异构内存空间管理器Gemini支持将优化器状态从GPU图形内存卸载到CPU内存或硬盘空间,突破GPU图形内存的容量限制,扩大可训练模型的规模,降低AI大模型的应用成本。
使用LoRA低成本微调Colossal-AI支持低秩矩阵微调(LoRA)方法对AI大模型进行低成本微调。
在LoRA方法中,大语言模型被认为是参数化的,但在微调时参数变化量是低等级矩阵。
因此,可以将此矩阵分解为两个较小矩阵的乘积。
在微调过程中,大模型参数固定,只有低秩矩阵参数调整,大大减少了培训所需的参数量,降低了成本。
低成本量化推理
△GPTQ量化
为了降低推理部署成本,Colossal-AI使用GPTQ4bit对推理进行量化。
GPT/OPT/BLoom类模型可以获得比传统RTN(rount-to-nearest)量化技术更好的Perplexity效果。与一般的FP16推论相比,可以将显微镜存储器消耗量减少75%,与Perplexity性能相比只损失很少的吞吐量速度。
以ColossalChat-7B为例,如果使用4位量化推理,70亿参数模型只需约4GB的图形内存即可完成短序列(生成长度128、推理,在一般消费级显卡上完成(例如RTX3060Laptop),并可在一行代码中使用。
if args.quant == #8216;4bit#8217;:model = load_quant(args.pretrained, args.gptq_checkpoint, 4, args.gptq_group_size)
如果采用高效的异步卸载技术(offload),还可以进一步降低显示内存需求,并使用成本更低的硬件推论更大的模型。
虽然是开放式协作,但由于目前计算能力和数据集有限,因此在某些场景中的实际性能还有提高的余地。
比如说,你是不是还是脑残。
在这股技术浪潮中,除了科技巨头们,PyTorch、Hugging Face、OpenAI等开源社区和初创企业也扮演着重要角色。
借鉴这些成功经验,Colossal-AI也欢迎各方参与共建,提供了多种参与方式:
在GitHub发布issue或提交Pull request(PR)参与Colossal-AI用户微信或Slack组沟通,并向邮箱发送正式合作建议youy@comp.nus.edu.sg如果你对这份工作感兴趣,你可以马上和他们取得联系~
开源地址:https://github.com/hpcaitech/ColossalAI
参考链接:
http
文章评论