ChatGPT开源项目汇总表格

写在前面 最近正好在关注chatgpt,所以对目前开源的包括chatgpt全流程训练代码的项目做了一个整理。文章包括三部分内容:
chatgpt 开源项目汇总表格 介绍 chatgpt 训练的思路 介绍每一个开源的项目的情况 阅读时间预估需要10min。
1. chatgpt 开源项目汇总表格 下面是根据 star 数量进行排序的 chatgpt 开源项目汇总,希望详细了解的开源项目可以通过目录进行跳转。
手机版目录在文章开始的地方,电脑版目录在网页左边。
2. chatgpt 全训练流程介绍 chatgpt 完整训练包括三个流程:
supervised finetune(sft):使用人工编写的期望模型如何输出的数据集,对gpt-3进行微调 reward model(rm):使用人工标注的排序数据,训练奖励模型,预测人类更喜欢哪个输出 强化学习微调 sft:使用奖励模型作为强化学习优化目标,微调sft模型 各个环节的一些训练细节:
sft:
gpt-3 175b 架构 训练16epoch 残差dropout 0.2 1.3b和6b用32的bs+9.65e-6的lr 175b用8bs+5.03e-6lr rm:
模型输入是(prompt,response),输出是打分 gpt-3 6b 架构(175b会不稳定),最后一层替换成输出一个标量 损失函数:最大化好回答和坏回答pair的得分差异 rl:
gpt-3的模型结构 训练2个epoch 混合了10%的预训练数据 为了不要学的太偏:增加模型之间的kl距离作为优化目标 为了不降低通用性:增加通用nlp任务的性能作为优化目标 各个环节需要的数据量:
sft 训练:标注员 1.1w,用户 1.4k 验证:标注员 1.5k,用户 103 rm 训练:标注员 6.6k,用户 2.66w 验证:标注员 3.49k,用户 1.44w ppo 训练:用户 3.1w 验证:验证 1.6w 强化学习在训练中起到的作用:
人类的反馈是的模型生成的结果更偏向人类想要知道的结果,消除一些偏见和负面的信息 强化学习只告诉模型结果好不好,但不限制模型如何去变好,可以增加模型的探索能力 下面整理了包括了全流程训练的开源项目,github 项目整理的 star 信息截止到 2023.2.23,欢迎大家纠正补充
3. trl - 从头训练一个 chatgpt 模型 https://github.com/lvwerra/trl[1]
star 1.7k, fork 180,代码更新 一天前,issue 13open 60 close
第一步:用 codeparrot 数据训练 gpt-2 124.2m 模型
和 chatgpt 的区别在于,chatgpt 是微调已经预训练好的,这个是从头训练 数据路径为 https://huggingface.co/codeparrot/codeparrot[2] 数据含义:输入一行代码,输出补全的代码 第二步:用sentiment训练奖励模型,模型用的是distilbert
数据路径 https://ai.stanford.edu/~amaas/data/sentiment/[3] 数据含义:输入影评,输出得分(积极1,消极0) 第三步:rl训练
整体介绍文章:万字长文教你如何做出 chatgpt
4. rlhf - transformers_tasks https://github.com/harderthenharder/transformers_tasks/tree/main/rlhf[4]
star 274,fork 51,更新 五天前, issue 1 open 16 closed
基于上面的trl做的;
增加了基于人工打分的reward模型训练,还提供了reward数据的标注平台;
rm 模型训练:基于 ernie-3.0-base-zh 继续训练的;
rl 训练:
rm:用的一个现成的情感分类模型,roberta-base-fintuned-jd-binary-chinese 生成模型:用的gpt2-chinese-cluecorpussmall 目前 rm 和 rl 两个是独立的训练,不支持把训练好的 rm 模型放到 rl 里面去加载
文章介绍:【ai】想训练chatgpt?得先弄明白reward model怎么训(附源码)
5. openassistant https://github.com/laion-ai/open-assistant[5]
star 16.8k,fork 1.3k,issue 308open,535closed,代码更新三天前
文档:https://projects.laion.ai/open-assistant/docs/intro[6]
在huggingface上面的模型:openassistant (openassistant)[7]
数据格式介绍:https://github.com/laion-ai/open-assistant/blob/363a3a124471217e723d57b084122ae1ca41ab2a/notebooks/data-augmentation/stackexchange-builder/readme.md[8]
是laion机构开源的,全称为 large-scale artificial intelligence open network,是一个非盈利的机器学习研究机构,致力于为公众提供 ai 模型、数据集和开源代码。
stable diffusion用的开放数据集,就是laion-ai组织做的。
rl 训练部分用到了即将要介绍的 trlx库
有网络训练丝滑如水,没有网络训练怀疑人生...
文档里下载 oa 那一段没有写太清楚,不知道去哪里下载
整体使用下来,这个库是目前训练下来最顺利的,库的代码也看起来最规范,文档支持也比较多的。
这里是全流程的训练指南:yuannnn:open assistant 全流程训练细节(gpt3+rl)[9]
文章介绍:https://mp.weixin.qq.com/s/qg5h6hbdmfraevf1ia9cva
6.trlx - carperai https://github.com/carperai/trlx[10]
star 2k, fork 183, issue 59open 95closed, 代码更新 6小时前
carperai 是eleutherai研究小组的一个新实验室,其任务是“通过强化学习提高大型语言模型 (llm) 的性能和安全性。” carperai 开源了 transformer reinforcement learning x (trlx),这是一个使用 rlhf 微调 huggingface 语言模型的框架。
7.palm-rlhf-pytorch - phil wang github - lucidrains/palm-rlhf-pytorch: implementation of rlhf (reinforcement learning with human feedback) on top of the palm architecture. basically chatgpt but with palm[11]
star 5.4k,fork 412,issue 8open 16 close,代码更新 4小时前
以imagen和make-a-video等深度学习研究模型的开源实现而闻名的 ai 开发人员 phil wang分享了他正在为palm语言模型(称为 palm + rlhf)实施 rlhf 的工作。
其中,palm(pathways language model)是谷歌在今年4月发布的5400亿参数全能大模型,基于pathways系统训练,bert之父jacob devlin为主要贡献者之一。
但是第一步的训练,这个项目中只有palm架构和代码,没有预先训练好的权重。所以还得自己重新训练一个。
8. chatrwkv https://github.com/blinkdl/rwkv-lm[12]
star 1.8k,fork 182,issue 7open 16closed,代码更新 7小时前
用 rwkv 架构(不是transformer结构)训练的chatgpt
开源了 14b 的模型,可以在 hugging face上面试用:rwkv 14b - a hugging face space by yahma[13]
支持分布式训练,感谢 @peng bo[14] 纠正
文章介绍:peng bo:参与 chatrwkv 项目,做开源 chatgpt(可以在每个人电脑和手机直接运行的)[15]
9. rl4lms https://github.com/allenai/rl4lms[16]
star 971,fork 87,issue 20open 7closed,代码更新一个月之前
这个库包括了比较多 rl 算法(ppo,nlpo,a2c和trpo),它论文说在 2000 个实验里做了 rl 在 llm 上面的训练。rl4lms当前的计划包括分布式训练更大的模型和新的rl算法。
包括了多种语义度量(例如:bertscore、bleurt)
包括了多种任务特定指标(例如:parent、cider、spice)
包括了多种词法指标(例如:rouge、bleu、sacrebleu、meteor)
包括了6种常见的 llm 任务。
论文:https://arxiv.org/abs/2210.01241[17]
10. colossalai chatgpt https://github.com/hpcaitech/colossalai/tree/main/applications/chatgpt[18]
star 15.5k, fork 1.6k,代码更新 一天前,issue 212open 337close
训练 reward 模型的 rm-static 数据
该数据包括同一个 prompt 的不同 response 的选择和拒绝的标签 https://huggingface.co/datasets/dahoas/rm-static/tree/main[19] 训练 prompt 模型的 awesome-chatgpt-prompts 数据
该数据量比较小,大约 100 个prompt https://huggingface.co/datasets/fka/awesome-chatgpt-prompts/tree/main[20] readme里面介绍的步骤和chatgpt训练步骤的对应关系如下:
train with dummy prompt data: 用随机生成的数据训练的第三步骤(rl来fintune sft) train with real prompt data: 用真实数据训练的第三步骤(rl来fintune sft) train with reward model:训练第二步的 reward 模型 目前应该还没有包括 sft 的训练部分。
另外训练好的 reward 模型暂时还不支持放到 rl 里面去用,目前作者们正在解决。
感谢作者 @bluerum[21] 热心帮我解决之前遇到的问题,后面更新了以后我会再尝试一下使用的。
11. nebullvm github: https://github.com/nebuly-ai/nebullvm[22]
star 5.7k, 更新 一天前,issue 33open,68close
meta 最近发布了 llama,这是一组包含 7 到 650 亿个参数的基础大型语言模型。llama 正在引起很多兴奋,因为它比 gpt-3 更小,但性能更好。
chatllama可以做到:
一个完整的开源实现,使您能够基于预训练的 llama 模型构建 chatgpt 样式的服务。 与原始的 chatgpt 相比,利用 llama 架构的较小尺寸,训练过程和单 gpu 推理更快、成本更低。 chatllama 内置了对 deepspeed zero 的支持,以加速微调过程。 该库还支持所有 llama 模型架构(7b、13b、33b、65b),因此您可以根据自己对训练时间和推理性能的偏好对模型进行微调。


LG V60 ThinQ真机图片曝光搭载了骁龙865处理器拥有后置四摄
天玑9300、天玑8300性能双冠军,买手机就选天玑!
关于正则表达式(regex)的插图指南
电源完整性设计基础知识
激光塑料焊接在汽车零部件上的应用
ChatGPT开源项目汇总表格
基于MLX90615和STM32的多点红外温度测量系统设计
生活中经常用到的的12V适配器
马斯克直播展示大脑被植入脑机接口设备的小猪
DPO示波器的工作原理和应用
诺基亚发布了业界首个5G成熟度指数
关于RF433无线模块及应用领域分析详解
半坡起步传感器 集高精度和高科技于一身
RAGU® V1.0的功能介绍
如何应对物联网的网络威胁
MCU死机跑马灯不跑了怎么解决
液晶电视电源板电路图
万兆单模光模块SFP-XG-LX简介及应用领域
4款与众不同的双屏手机, 最低只要1099元! 配置有料!
开关型霍尔效应传感器的特性分析