一文整理GPT-3 + RL 全流程训练开源项目

来自:AI算法小喵 公众号

进NLP群—>加入NLP交流群

写在前面

最近正好在关注ChatGPT,所以对目前开源的包括ChatGPT全流程训练代码的项目做了一个整理。文章包括三部分内容:

  1. ChatGPT 开源项目汇总表格

  2. 介绍 ChatGPT 训练的思路

  3. 介绍每一个开源的项目的情况

阅读时间预估需要10min。

1. ChatGPT 开源项目汇总表格

下面是根据 star 数量进行排序的 ChatGPT 开源项目汇总,希望详细了解的开源项目可以通过目录进行跳转。

手机版目录在文章开始的地方,电脑版目录在网页左边。

8a8911123e227886986d3d26cc228ed1.jpeg

2. ChatGPT 全训练流程介绍

ChatGPT 完整训练包括三个流程:

  1. Supervised FineTune(SFT):使用人工编写的期望模型如何输出的数据集,对GPT-3进行微调

  2. Reward Model(RM):使用人工标注的排序数据,训练奖励模型,预测人类更喜欢哪个输出

  3. 强化学习微调 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任务的性能作为优化目标

各个环节需要的数据量:

  1. SFT

  • 训练:标注员 1.1w,用户 1.4k

  • 验证:标注员 1.5k,用户 103

  1. RM

  • 训练:标注员 6.6k,用户 2.66w

  • 验证:标注员 3.49k,用户 1.44w

  1. 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),因此您可以根据自己对训练时间和推理性能的偏好对模型进行微调。

参考资料

[1]

https://github.com/lvwerra/trl: https://github.com/lvwerra/trl

[2]

https://huggingface.co/codeparrot/codeparrot: https://huggingface.co/codeparrot/codeparrot

[3]

https://ai.stanford.edu/~amaas/data/sentiment/: https://ai.stanford.edu/~amaas/data/sentiment/

[4]

https://github.com/HarderThenHarder/transformers_tasks/tree/main/RLHF: https://github.com/HarderThenHarder/transformers_tasks/tree/main/RLHF

[5]

https://github.com/LAION-AI/Open-Assistant: https://link.zhihu.com/?target=https%3A//github.com/LAION-AI/Open-Assistant

[6]

https://projects.laion.ai/Open-Assistant/docs/intro: https://link.zhihu.com/?target=https%3A//projects.laion.ai/Open-Assistant/docs/intro

[7]

OpenAssistant (OpenAssistant): https://link.zhihu.com/?target=https%3A//huggingface.co/OpenAssistant

[8]

https://github.com/LAION-AI/Open-Assistant/blob/363a3a124471217e723d57b084122ae1ca41ab2a/notebooks/data-augmentation/stackexchange-builder/README.md: https://link.zhihu.com/?target=https%3A//github.com/LAION-AI/Open-Assistant/blob/363a3a124471217e723d57b084122ae1ca41ab2a/notebooks/data-augmentation/stackexchange-builder/README.md

[9]

yuannnn:Open Assistant 全流程训练细节(GPT3+RL): https://zhuanlan.zhihu.com/p/609003237

[10]

https://github.com/CarperAI/trlx: https://link.zhihu.com/?target=https%3A//github.com/CarperAI/trlx

[11]

GitHub - lucidrains/PaLM-rlhf-pytorch: Implementation of RLHF (Reinforcement Learning with Human Feedback) on top of the PaLM architecture. Basically ChatGPT but with PaLM: https://link.zhihu.com/?target=https%3A//github.com/lucidrains/PaLM-rlhf-pytorch

[12]

https://github.com/BlinkDL/RWKV-LM: https://link.zhihu.com/?target=https%3A//github.com/BlinkDL/RWKV-LM

[13]

Rwkv 14b - a Hugging Face Space by yahma: https://link.zhihu.com/?target=https%3A//huggingface.co/spaces/yahma/rwkv-14b

[14]

@PENG Bo: https://www.zhihu.com/people/64d972cc5bae62489442e35b32dc0fce

[15]

PENG Bo:参与 ChatRWKV 项目,做开源 ChatGPT(可以在每个人电脑和手机直接运行的): https://zhuanlan.zhihu.com/p/603840957?utm_campaign=shareopn&utm_medium=social&utm_oi=55152379691008&utm_psn=1605899783687872512&utm_source=wechat_session&utm_id=0&wechatShare=1&s_r=0

[16]

https://github.com/allenai/RL4LMs: https://link.zhihu.com/?target=https%3A//github.com/allenai/RL4LMs

[17]

https://arxiv.org/abs/2210.01241: https://link.zhihu.com/?target=https%3A//links.jianshu.com/go%3Fto%3Dhttps%253A%252F%252Farxiv.org%252Fabs%252F2210.01241

[18]

https://github.com/hpcaitech/ColossalAI/tree/main/applications/ChatGPT: https://link.zhihu.com/?target=https%3A//github.com/hpcaitech/ColossalAI/tree/main/applications/ChatGPT

[19]

https://huggingface.co/datasets/Dahoas/rm-static/tree/main: https://link.zhihu.com/?target=https%3A//huggingface.co/datasets/Dahoas/rm-static/tree/main

[20]

https://huggingface.co/datasets/fka/awesome-chatgpt-prompts/tree/main: https://link.zhihu.com/?target=https%3A//huggingface.co/datasets/fka/awesome-chatgpt-prompts/tree/main

[21]

@BlueRum: https://www.zhihu.com/people/ce5c9d2de623b21ddf4985151176a5bd

[22]

https://github.com/nebuly-ai/nebullvm: https://link.zhihu.com/?target=https%3A//github.com/nebuly-ai/nebullvm

文章来源:https://zhuanlan.zhihu.com/p/608705255?utm_id=0  

作者:yuannnn


进NLP群—>加入NLP交流群

持续发布自然语言处理NLP每日优质论文解读、相关一手资料、AI算法岗位等最新信息。

加入星球,你将获得:

1. 每日更新3-5篇最新最优质的的论文速读。用几秒钟就可掌握论文大致内容,包含论文一句话总结、大致内容、研究方向以及pdf下载。

2. 最新入门和进阶学习资料。包含机器学习、深度学习、NLP等领域。

3. 具体细分NLP方向包括不限于:情感分析、关系抽取、知识图谱、句法分析、语义分析、机器翻译、人机对话、文本生成、命名实体识别、指代消解、大语言模型、零样本学习、小样本学习、代码生成、多模态、知识蒸馏、模型压缩、AIGC、PyTorch、TensorFlow等细方向。

4. 每日1-3个NLP、搜广推、CV等AI岗位招聘信息。可安排模拟面试。

06c4ae1e786abb772ca97637fdece6dc.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/40127.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ios和android能联机吗,原神PC、ios和安卓数据互通介绍 原神ios和安卓可以联机吗...

原件手游今天开启了公测,玩家们都迫不及待想来玩玩看看,玩家们会从不同的平台登录游戏,那么就有个问题,原神ios和安卓数据互通吗、能一起玩吗,接下来小编给大家带来答案。 原神ios和安卓数据互通吗 根据官方说法&#…

android模拟器pc版怎么玩,原神电脑版安卓模拟器怎么使用,电脑上怎么玩原神手游...

原神电脑版对很多电脑上玩想原神手游的玩家来说应该是必须的,相对于手机上原神手游,电脑上使用手机模拟器玩原神手游,大屏幕,键鼠操控,性能更强,还可以多开挂机的优势让使用手游模拟器玩原神电脑版可以获得…

原神台式电脑配置要求2021适合玩原神游戏电脑清单

《 原神》电脑配置要求 处理器: Intel Core i5 或同等处理器 玩原神台式电脑配置要求这些点很重要 看过你就懂了 让你玩的飞起http://www.adiannao.cn/du 内存:8 GB RAM 显卡:NVIDIA GeForce GT 1030 DirectX 版本: 11 存储空间&a…

原神ios android,原神安卓和ios数据互通吗 原神ios和安卓能一起玩吗

原神安卓和ios数据互通是玩家们想知道的事情,游戏共有IOS、安卓与PC端哦,那么原神安卓和ios数据互通吗、原神ios和安卓能一起玩吗,跑跑车手游网为大家带来了介绍。 *原神安卓和ios数据互通吗? 米哈游通行证/TapTap通行证&#xff…

taptap模拟器在电脑上能用吗?

taptap模拟器兼容目前所有windows平台,且可完美适配99%安卓游戏,全线普遍兼容,超低资源占用,那么下载了taptap模拟器后要怎么在电脑上使用呢? taptap模拟器在电脑上怎么用? 1、打开软件,接着点击…

元神android和ios,原神ios和安卓数据互通吗 原神ios和安卓能一起玩吗

原件手游今天开启了公测,玩家们都迫不及待想来玩玩看看,玩家们会从不同的平台登录游戏,那么就有个问题,原神ios和安卓数据互通吗、能一起玩吗,接下来小编给大家带来答案。 原神ios和安卓数据互通吗 根据官方说法&#…

原神手游怎么用电脑玩 原神模拟器玩法教程

《原神》手游是一款3D全新开放世界冒险游戏。游戏发生在一个被称作「提瓦特」的幻想世界,我们将扮演一名旅行者的神秘角色,在自由的旅行中邂逅性格各异、能力独特的同伴们,和他们一起击败强敌,找回失散的亲人。接下来,和小编一起看下原神模拟器教程哈! 一、原神模拟器教程…

英语六级+作文模板

因为OneNote笔记的样式比较漂亮,索性直接用了。最下边有可供复制的文本。 两篇英语作文模板 阅读理解注意事项 • 每次看一两个题目,再找答案 • 千万不要试图全文翻译,要学会扫文章,找关键词,关键句,其他…

2023年上半年系统集成项目管理工程师上午真题及答案解析

1.在( )领域我国远末达到世界先进水平,需要发挥新型国家体制优势,集中政府和市场两方面的力量全力发展。 A.卫星导航 B.航天 C.集成电路 D.高铁 2.ChatGPT 于2022年11月30日发布,他是人工智能驱动( )。 …

【真题解析】系统集成项目管理工程师 2021 年上半年真题卷(案例分析)

本文为系统集成项目管理工程师考试(软考) 2021 年上半年真题(全国卷),包含答案与详细解析。考试共分为两科,成绩均 ≥45 即可通过考试: 综合知识(选择题 75 道,75分)案例分析&#x…

Nginx一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、防盗链、SSL、性能优化......

因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享 点击关注#互联网架构师公众号,领取架构师全套资料 都在这里 0、2T架构师学习资料干货分 上一篇:ChatGPT研究框架(80页PPT,附下载)…

WebAssembly 真能取代 Kubernetes?

摘要:许多开发者总是习惯性地将 WebAssembly 与 Kubernetes 进行对比,也许将来可能会出现某种技术,在云环境中部署和管理分布式应用程序,并最终取代 Kubernetes——而本文作者认为,它不太可能是 WebAssembly。 原文链接…

GPT生成五子棋小游戏

GPT生成五子棋 用python编写五子棋游戏要有游戏界面游戏规则如下 1.五子棋棋盘为 15x15的方格棋盘,两人轮流在空位上落子先连成一线(即五个同色棋子相邻) 者获胜。 2.先手执黑,后手执白,轮流下子 3.黑方先走,每次只能下一子&…

参会记录|2022 CNCC 中国计算机大会参会总结

前言 第 19 届 CNCC 于2022年12月8-10日召开,本届大会为期三天,首次采取全线上举办形式,主题为“算力、数据、生态”,重点在保持多样性、聚焦热点前沿话题、平衡学术界和产业界参与等维度展开讨论。大会由CCF会士、中国科学院院士…

如何在EXCEL中运行ChatGPT,从此不再需要记函数【二】

文章目录 目录 文章目录 序言 从此不需要在记函数 最后总结 序言 Excel是处理大量数据非常有用的工具。然而,找到并实施正确的公式有时可能是一个复杂和令人沮丧的经历。幸运的是,ChatGPT可以成为一个优秀的助手,帮助克服这些挑战。 借助…

chatgpt赋能Python-pycharm怎么关联

Pycharm怎么关联——提高Python开发效率的关键步骤 作为一名有10年Python编程经验的工程师,我深知在日常开发中如何提高Python的编程效率至关重要。而Pycharm则是Python领域最常用的IDE之一,其强大的代码编辑和调试功能,深受开发者的喜爱。 …

双色球(过滤历史数据+过滤连号+红球包含+篮球包含+大小分布)

1.彩票官网复制历史数据,存入文件 2.基本处理逻辑 1.红球组合 2.排除红球连号(自定义3、4、5、6个连续) 3.红蓝组合(自定义蓝球出现的可能,比如我想蓝号只出1或者12…) 4.解析历史数据,排除这些数据 5.定义大小分布,以一个数为中间数,大于他包含几个,小于他的包含几…

剧本杀游戏app开发

剧本杀游戏app开发通常会涉及以下技术: 开发语言:剧本杀游戏app可以使用各种编程语言进行开发,例如Java、Kotlin、Swift等。 游戏引擎开发:为了实现游戏过程中的角色扮演、对话、动画等效果,需要使用适当的游戏…

计算机SCI论文重复率高,有什么降重技巧? - 易智编译EaseEditing

不管是计算机还是其他的专业,论文重复率高,就要进行论文降重。 有一些简单的降重的技巧可以分享一下: “中英中”互换法 用翻译软件先翻译成英文, 再翻译回中文,之后手工修改润色一下, 这样换了一种表达句…

SCI论文重复率与降重

SCI论文重复率与降重 觉得有用的话,欢迎一起讨论相互学习~ 首先声明,个人自己经验和网上资料总结,部分文字和观点来自于网上,本人非营销号也没打广告,侵权删除,谢谢!审核的大凶弟再说我打广告我生气了! 我…