首个开源低成本复现 ChatGPT 完整流程!1.62GB显存即可体验,单机训练提速7.73倍...

来源:机器之心   编辑:机器之心编辑部

火爆全网的 ChatGPT,仿佛开启了第四次工业革命,让微软、谷歌等全球科技巨头打得昏天黑

火爆全网的 ChatGPT,仿佛开启了第四次工业革命,让微软、谷歌等全球科技巨头打得昏天黑地,引得各路玩家纷纷入局,抢占赛道。

然而由于 OpenAI 没有开源 ChatGPT,如何有效复现 ChatGPT 已成为摆在大家面前的头号难题,急需可靠的开源共建方案。

Colossal-AI 快速跟进,首个开源低成本复现 ChatGPT 完整流程。作为当下最火热的开源 AI 大模型解决方案,Colossal-AI 已收获开源社区 GitHub Star 近万颗,此次开源亮点包括:

  • 开源完整基于 PyTorch 的 ChatGPT 复现流程,涵盖全部 3 个阶段,可实现从预训练模型到 ChatGPT 的蜕变;

  • 体验最小 demo 训练流程最低仅需 1.62GB 显存,任意单张消费级 GPU 即可满足,单卡模型容量最多提升 10.3 倍

  • 相比原生 PyTorch,最高可提升单机训练速度 7.73 倍,单卡推理速度 1.42 倍,一行代码即可使用

  • 对于微调任务,可最多提升单卡的微调模型容量 3.7 倍,同时保持高速运行,仅需一行代码;

  • 提供单卡、单机多卡、1750 亿参数等多个版本,支持从 Hugging Face 导入 OPT,GPT-3,BLOOM 等多种预训练大模型;

  • 收敛验证正在进行中,该项目也在吸引合作者共建生态

开源地址:https://github.com/hpcaitech/ColossalAI

ChatGPT——AIGC 引发的工业革命

如果问新年伊始,最火爆的科技热点是什么?非 ChatGPT 莫属。

它仿佛无所不能的六边形战士,可以聊天、写代码、修改 bug、做表格、发论文、写作业、做翻译、甚至代替 Google 搜索引擎等……

自发布以来,ChatGPT 便已摧枯拉朽之势席卷各个行业,不仅 5 天时间便突破百万用户,月活用户突破 1 亿更是仅用时 2 个月,成为史上增速最快的消费级应用,远超如今其他知名应用,如 Twitter 5 年、Meta(Facebook)4 年半,TikTok 9 个月等,而手机普及到 1 亿用户则用了 16 年。

f74e9ca4f63669ba112a08e89391227b.png

1 亿用户月活用户耗时

比尔・盖茨盛赞 “ChatGPT 的意义不亚于 PC 和互联网诞生”,而微软 CEO 萨蒂亚・纳德拉(Satya Nadella)更是直言 “堪比工业革命,这辈子第一次见这么大的技术浪潮” 和 “AI 正在重塑互联网”。作为向 OpenAI 投资上百亿美元的大金主,微软已火速将 ChatGPT 整合进自家的搜索引擎必应 Bing 和 Edge 浏览器,还计划加入 Teams 以及 Office 等办公套件全家桶,股价一夜市值飙涨超 800 亿美元。

54d492e5e5e5ad4dfe6253f415321744.png

微软与谷歌发布会后股价对比

而隔壁需要担心被 ChatGPT 革命掉自家搜索引擎的谷歌,虽然拉响 “红色警报”,紧急发布对标竞品 Bard,却因 Demo 首秀翻车,股价市值瞬间蒸发 1000 亿美元。

一夜之间,全球的科技巨头们仿佛都回到了自己年轻时的样子,纷纷宣布要打造自己的 ChatGPT。

但 ChatGPT 发布已有数月,市面上不仅没有预训练权重开源,连可靠的完整开源训练流程都仍是空白,更无法实现基于千亿大模型的 ChatGPT 全流程高效搭建和应用。临时上线,号称 “对标 ChatGPT” 的一众新品们,因为闭源也难辨真伪。

为什么 ChatGPT 有如此魔力?复现它又有哪些难点?

ChatGPT 技术分析

ChatGPT 的惊人效果,重要特征是在训练过程引入人类反馈强化学习(RLHF),使得模型表现更符合人类价值观。

ChatGPT 的训练流程主要分为三个阶段:

1. 从 Prompt 库中采样,收集其人工回答,利用这些数据来微调预训练大语言模型。

2. 从 Prompt 库中采样,使用大语言模型生成多个回答,人工对这些回答进行排序后,训练奖励模型(RM),来拟合人类的价值判断。

3. 基于阶段 1 的监督微调模型和阶段 2 的奖励模型,利用强化学习算法对大语言模型进一步训练。

其中阶段 3 是 RLHF 训练的核心部分,OpenAI 采用了强化学习中的近端策略优化算法(PPO),借此引入奖励信号,使得语言模型生成内容更加符合人类评判标准。

b26a826b88d1ed35c47a41452cfbc7a7.png

RLHF 的三个阶段 

ChatGPT 模型的复杂性在于强化学习的引入会带来更多模型的调用。例如,使用基于 Actor-Critic(AC)结构的 PPO 算法,需要在训练时进行 Actor、Critic 两个模型的前向推理和反向传播,以及监督微调模型、奖励模型的多次前向推理。在 ChatGPT 基础的 InstructGPT 的论文中,Actor 和监督微调模型都使用了 1750 亿参数的 GPT-3 系列模型,Critic 和奖励模型则使用了 60 亿参数的 GPT-3 系列模型。

对于如此多的模型参数,想要启动原始 ChatGPT 训练流程,需要数千 GB 的显存开销,显然远超单张 GPU 的容纳能力,常见的数据并行技术也无能为力。但即使引入张量并行、流水并行对参数进行划分,也仍需至少 64 张 80GB 的 A100 作为硬件基础。并且,其中的流水并行由于 bubble 和调度复杂,效率受限,不适合 AIGC 的生成式任务。阶段 3 涉及 4 个模型的复杂强化学习训练流程,进一步给 ChatGPT 的代码复现带来了困难和挑战。

使用 Colossal-AI 低成本复现 ChatGPT

Colossal-AI 以开源方式复现了 ChatGPT 训练的基本流程,包括阶段 1 预训练,阶段 2 的奖励模型的训练,以及最为复杂的阶段 3 的强化学习训练等。

同时,Colossal-AI 通过 ZeRO,Gemini,  Chunk-based 内存管理等技术,极大地降低 ChatGPT 训练的显存开销,仅需一半硬件资源即可启动 1750 亿参数模型训练(64 卡 ->32 卡),显著降低应用成本。若使用上述相同硬件资源,Colossal-AI 则能以更短时间进行训练,节省训练成本,加速产品迭代。

为了让更多开发者体验复现 ChatGPT 模型,除 1750 亿参数版本外,Colossal-AI 还提供高效的单卡、单机 4/8 卡的类 ChatGPT 版本,以降低硬件限制。

d5a6d45f55ca475122616e1a3738a39a.png

在单机多卡服务器上,即便使用最高端的 A100 80GB 显卡,由于 ChatGPT 的复杂性和内存碎片,PyTorch 最大仅能启动基于 GPT-L(774M)这样的小模型的 ChatGPT。用 PyTorch 原生的 DistributedDataParallel (DDP) 进行多卡并行扩展至 4 卡或 8 卡,性能提升有限。

Colossal-AI 不仅在单卡速度上训练和推理优势明显,随着并行规模扩大还可进一步提升,最高可提升单机训练速度 7.73 倍,单卡推理速度 1.42 倍,还可继续扩展至大规模并行,显著降低 ChatGPT 复现成本。

4fde3354d8d9b2442a4a8c42c5ce374e.png

为了尽可能降低训练成本和上手门槛,Colossal-AI 还提供了在单张 GPU 上即可尝试的 ChatGPT 训练流程。相比于 PyTorch 在约 10 万元的 A100 80GB 上,最大仅能启动 7.8 亿参数模型,Colossal-AI 将单卡容量提升 10.3 倍至 80 亿参数。对于基于 1.2 亿参数小模型的 ChatGPT 训练,最低仅需 1.62GB 显存,任意单张消费级 GPU 即可满足。

a625e8f028256549a1ec9c178d6ea170.png

此外,Colossal-AI 也致力于降低基于预训练大模型的微调任务成本。以 ChatGPT 可选的开源基础模型 OPT 为例,相比 PyTorch,Colossal-AI 可将提升单卡微调模型容量 3.7 倍(原始计算量显著增大),同时保持高速运行

一行代码快速上手

Colossal-AI 为 Hugging Face 社区的 GPT,OPT 和 BLOOM 等主流预训练模型,提供了开箱即用的 ChatGPT 复现代码。以 GPT 为例,仅需一行代码,指定使用 Colossal-AI 作为系统策略即可快速使用。

Python
from chatgpt.nn import GPTActor, GPTCritic, RewardModel
from chatgpt.trainer import PPOTrainer
from chatgpt.trainer.strategies import ColossalAIStrategystrategy = ColossalAIStrategy (stage=3, placement_policy='cuda')with strategy.model_init_context ():actor = GPTActor ().cuda ()critic = GPTCritic ().cuda ()initial_model = deepcopy (actor).cuda ()reward_model = RewardModel (deepcopy (critic.model)).cuda ()trainer = PPOTrainer (strategy, actor, critic, reward_model, initial_model, ...)
trainer.fit (prompts)

使用下列命令,即可快速启动单卡、单机多卡、1750 亿版本训练,并测试各种性能指标(包括最大显存占用、吞吐率和 TFLOPS 等):

Python
# 使用单机单卡训练 GPT2-S,使用最小的 batch size,Colossal-AI Gemini CPU 策略
torchrun --standalone --nproc_pero_node 1 benchmark_gpt_dummy.py --model s --strategy colossalai_gemini_cpu --experience_batch_size 1 --train_batch_size 1
# 使用单机 4 卡训练 GPT2-XL,使用 Colossal-AI Zero2 策略
torchrun --standalone --nproc_per_node 4 benchmark_gpt_dummy.py --model xl --strategy colossalai_zero2
# 使用 4 机 32 卡训练 GPT-3,使用 Colossal-AI Gemini CPU 策略
torchrun --nnodes 4 --nproc_per_node 8 \--rdzv_id=$JOB_ID --rdzv_backend=c10d --rdzv_endpoint=$HOST_NODE_ADDR \benchmark_gpt_dummy.py --model 175b --strategy colossalai_gemini_cpu --experience_batch_size 1 --train_batch_size 1

背后优化

核心系统 Colossal-AI

复现 ChatGPT 的背后,依赖面向大模型时代的通用深度学习系统 Colossal-AI,可基于 PyTorch 高效快速部署 AI 大模型训练和推理,降低 AI 大模型应用成本。

自开源以来,Colossal-AI 已经多次在 GitHub 热榜位列世界第一,获得 GitHub Star 超八千颗,并成功入选 SC、AAAI、PPoPP、CVPR 等国际 AI 与 HPC 顶级会议的官方教程。除上述优化外,Colossal-AI 还针对 AI 大模型趋势,提供最多样和高效的大规模多维并行分布式解决方案。

© THE END 

 

908d709b871b1be526c6ed46e6dd1b14.jpeg

 
 
 
 
往期精彩回顾适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑机器学习交流qq群955171419,加入微信群请扫码

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

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

相关文章

AI:DeepSpeed Chat(一款帮用户训练自己模型的工具且简单/低成本/快 RLHF 训练类ChatGPT高质量大模型)的简介、安装、使用方法之详细攻略

AI:DeepSpeed Chat(一款帮用户训练自己模型的工具且简单/低成本/快 RLHF 训练类ChatGPT高质量大模型)的简介、安装、使用方法之详细攻略 目录 DeepSpeed Chat的简介 DeepSpeed-Chat的产生背景 DeepSpeed-Chat的简介 DeepSpeed-Chat的三大功能 DeepSpeed-RLHF 系…

花30分钟,我用ChatGPT写了一篇2000字文章(内附实操过程)

有了ChatGPT之后,于我来说,有两个十分明显的变化: 1. 人变的更懒 因为生活、工作中遇到大大小小的事情,都可以直接找ChatGPT来寻求答案。 2. 工作产出量更大 之前花一天,甚至更久才能写一篇原创内容,现…

ChatGPT写出高质量文章的技巧

如何让ChatGPT写出高质量的文章,今天给大家分享一些ChatGPT写推广文章的技巧。如果我们是一名互联网文章作者,那么对于产品推广的需求就是不可避免的了。下面我会分享一些我个人的写作经验,希望能对我们们有所帮助。 ChatGPT不同于其他ai文章…

【JavaScript学习笔记】用 JavaScript 开发企业微信 ChatGPT 应用

用 JavaScript 开发企业微信 ChatGPT 应用 本文将帮助你快速实现一个企业微信聊天应用,并且接入 ChatGPT。(以下为效果截图) 你将学会 创建企业微信应用,如何配置接收消息 URL、企业可信 IP、解密消息使用 AirCode 的「Get a co…

用 JavaScript,五分钟将 Siri 接入 ChatGPT(搬运)

Siri ChatGPT 使用教程 将 Siri 接入 ChatGPT,直接语音唤醒,并且支持连续对话。 第一步:拷贝项目 通过 AirCode 源码链接中右上角的「Get a copy」按钮快速生成一个自己的 AirCode Node.js 应用。 注意不要直接复制代码,如果是直…

ChatGPT 由0到1接入 Siri

ChatGPT 由0到1接入 Siri ChatGPT 由0到1接入 Siri第一步:获取 OpenAPI 的 Key第二步:制作快捷指令本教程收集于: AIGC从入门到精通教程 ChatGPT 由0到1接入 Siri 分享如何将 GPT 应用集成到苹果手机的 Siri 中 (当然手机是需要魔法(TZ)的) 第一步:获取 OpenAPI 的…

“我把 ChatGPT 和苹果的 Siri 组了个队,发现无敌了!”

【CSDN 编者按】ChatGPT 的问世,带来了前所未有的智能应用新方式。如果“AIAI”,会碰撞出什么样的火花?近日,国外一名 Web 高级工程师 Mate Marschalko 将 ChatGPT 和 Siri 人工智能语言助手进行了结合,万万没想到&…

ChatGPT接入Siri指南来了/必应下载量进前五/ 特斯拉被曝监控员工致不敢上厕所…今日更多新鲜事在此...

日报君 发自 凹非寺量子位 | 公众号 QbitAI 大家好,今天是2月15日星期三。 情人节过了,仍然祝你快乐~ 科技圈其他新鲜事儿,来咯。 必应下载量激增,与谷歌差距缩小 必应搜索在引入ChatGPT之后,用户量增长多少…

用 JavaScript 五分钟将 Siri 接入 ChatGPT(含全部源码)

全部源码 https://aircode.cool/828668wg5a -------------------------- 将 Siri 接入 ChatGPT,直接语音唤醒,并且支持连续对话。 第一步:拷贝项目 1. 点击右上角「Get a copy」,这会打开 AirCode 源码链接,并基于…

三分钟把ChatGPT接入Siri,让你的语音助手化身智能AI

最近,各种各样使用ChatGPT的方式都出现了,但是有很多都需要在电脑操作,或者点击别人的各种各样的链接,而且有些可能还要魔法上网才能实现,这些都是稍微有点繁琐的。 那么,最方便的还是直接使用我们的手机一…

细数和Chatgpt相似的开源模型

毫无疑问Chatgpt对于AI的发展具有里程碑式的意义,它最大的意义在于从0到1验证了大规模语言模型的可行性。 毕竟训练这个模型,是需要烧非常多钱的,OpenAI背后的金主微软都已经投资了上百亿美元。 前几天连Chatgpt4都被暂停了,官网…

从ChatGPT到大模型

AIGC AIGC1. 关于ChatGPT2. 关于大模型模型即服务。现在大模型的两种:大模型发展趋势:大模型作用:大模型核心: 3. 要复现一个ChatGPT需要的资源支持?4. ChatGPT的局限性5. 类ChatGPT 未来的发展ChatGPT 体现的通用性&…

让ChatGPT在中断回答的时候自动输入「请接上文继续」并发送

一、脚本内容 让ChatGPT在中断回答的时候自动输入「请接上文继续」并发送 // UserScript // name ChatGPT自动接上文继续 // namespace http://tampermonkey.net/ // version 1.3 // description 让ChatGPT在中断回答的时候自动输入「请接上文继续」并发送 /…

ChatGPT流式输出实现原理

在使用ChatGPT时,模型的回复内容是一个字一个字蹦出来的,而不是整段话直接出现,因为模型需要不断预测接下来要回复什么内容,如果等整段回复生成之后再输出到网页,用户体验就会很差,一直以为这种流式输出效果…

利用 ChatGPT 回答 R 相关问题

最近小编也尝试使用了 ChatGPT,下面给出一些知乎上常见 R 语言相关问题的回答。供大家参考: 目录 文章目录 目录经典问题预测数据科学软件排名数据科学的 10 个常用 R 包R 语言入门书籍和网站推荐回答专业问题 绘图绘制正负柱状图动态散点图 构建 Shiny…

Chatgpt易语言版本Chatgpt直接用

Chatgpt易语言版本 Chatgpt易语言版本 Chatgpt易语言版本 直接上代码 主要核心代码如下 .版本 2.子程序 功能_网页访问, 文本型, , 本命令由【精易网页调试助手】生成,请配合精易模块使用。 .局部变量 局_网址, 文本型 .局部变量 局_方式, 整数型 .局部变量 局_提…

笔记本电脑部署本地离线版类似ChatGPT3.5的AI模型(CPU+内存运行)

准备工作 如果通过GPU来运行,一般办公电脑的显卡可能达不到所需的要求,所以,可以通过CPU内存的方式花最低的代价来部署一套本地运行AI的模型。 1、首先下载CPU-Z,运行看一下电脑当前的指令集是否包含AVX512,非AVX512…

一条指令打开ChatGPT开发者模式

大家好,我是Ai 11社长。 对于ChatGPT冷漠刻板的回答,大家应该都腻了吧,试试这个。 这个类似小红书的回答满意不?在ChatGPT开发者模式下就能得到这样的回复。 怎么打开开发者模式呢?指令如下: Ignore all th…

低成本复制 ChatGPT 训练流程,仅需 1.68GB GPU 即可使用,方法现已开源!

编译 | 屠敏 出品 | CSDN(ID:CSDNnews) 当昨日我们还在讨论从大厂以及个人创业的角度来看,复制一家 OpenAI 和一款强大的 ChatGPT 可行性究竟有几成之际,苦于 OpenAI 并未将 ChatGPT 开源出来,所以这趟水究…

【uni-app】微信小程序开发 node_modules 模块丢失问题

解决问题 重要的问题说三遍!!! 解决 HBuilderX 打包 uni-app 项目到微信小程序时,node_modules 文件夹丢失问题。 解决 HBuilderX 打包 uni-app 项目到微信小程序时,node_modules 文件夹丢失问题。 解决 HBuilderX 打包…