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

0358e6a822da5c182395269355362ab3.gif

编译 | 屠敏

出品 | CSDN(ID:CSDNnews)

当昨日我们还在讨论从大厂以及个人创业的角度来看,复制一家 OpenAI 和一款强大的 ChatGPT 可行性究竟有几成之际,苦于 OpenAI 并未将 ChatGPT 开源出来,所以这趟水究竟有多深,众人并不知。

不过,2 月 14 日情人节这一天,来自加州大学伯克利分校的教授 James Demmel 和新加坡国立大学计算机系的校长青年教授尤洋及其背后的研究团队悄悄提供了一些答案,其率先呈现了一个开源的低成本 ChatGPT 等效实现流程,瞬间吸引无数 AI 爱好者的目光。

话不多说,简单来看,只需实现如下图所示的三步走,便能实现:

44d353d5e2f46fe2a4504dd5c8bf8997.png

详细来看,我们将通过官方发布的详细公告一探究竟。

4b432403b4d372056f8f4e072a42840c.png

当然,等不及的小伙伴现在可以直接通过 GitHub 地址了解详情:https: //github.com/hpcaitech/ColossalAI

d4093a9a8132cc420a2afe6ea1a82744.png

ChatGPT 技术分析

ChatGPT 的爆火,引得无数英雄竞折腰,那么 ChatGPT 为什么这么神奇?复制的难点是什么?

根据尤洋创立的潞晨科技(HPC-AI TECH)研究团队解析,ChatGPT 取得惊人成绩的重要特点是在训练过程中引入了人类反馈强化学习(RLHF),由此可以让这款 AI 聊天机器人更好地捕捉到人类的偏好。

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

  1. 从 Prompt 库中取样,收集人类的反应,并使用这些数据来微调预先训练好的大型语言模型。

  2. 从 Prompt 库中取样,使用大型语言模型生成多个响应,手动对这些响应进行排序,并训练一个奖励模型(RM)以适应人类的偏好。

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

在第三阶段,也就是 RLHF 训练的核心部分,OpenAI 采用强化学习中的近端策略优化(Proximal Policy Optimization,PPO)算法,引入奖励信号,使语言模型生成更更符合人类偏好的内容。

这也是开头伊始显示的那张图:

5b60543199e057b15f2d3615adcb5ddf.png

RLHF 三个阶段

ChatGPT 模型的复杂性实际上就是来源于强化学习的引入,这样会带来更多的模型调用。例如,使用基于 Actor-Critic(AC)结构的 PPO 算法,我们需要在训练过程中对 Actor 和 Critical 模型进行正向推理和反向传播,并在训练过程中对监督微调模型和奖励模型进行多次正向推理。关于作为 ChatGPT 基础的 InstructGPT 的论文,Actor 和监督微调模型都使用了有 1750 亿个参数的 GPT-3 系列模型,而 critical 和 奖励模型则使用了有 60 亿个参数的 GPT-3 系列模型。

在如此庞大的模型参数下,要启动原始的 ChatGPT 训练过程需要数千 GB 的 GPU 内存,这显然远远超出了单个 GPU 的能力,普通的数据并行技术也是不够的。

然而,即使引入张量并行和流水线并行来划分参数,仍然需要至少 64 个 80GB 的 A100 GPU 作为硬件基础。更糟糕的是,流水线由于其复杂性,以及 bubble 和调度的效率,不适合 AIGC 的生成性任务。第三阶段涉及复杂的强化学习和四个模型的训练过程,进一步给 ChatGPT 的代码复制带来困难和挑战。

6a4cca907b5e514ecd221f3205614d2c.png

使用 Colossal-AI 低成本复制 ChatGPT 训练过程

那该怎么解决?

在这里,潞晨科技研究团队用上了自家研发的面向大模型时代的通用深度学习系统 Colossal-AI 带来了一个开源地成本部的 ChatGPT 等效实现流程。

想必不少 AI 从业者对 Colossal-AI 这款开源模型也有过一定的了解,它是开源的(https://github.com/hpcaitech/ColossalAI),其运用了高效多维自动并行、异构内存管理、大规模优化库、自适应任务调度等多项技术,实现高效快速部署 AI 大模型训练和推理,降低 AI 大模型应用成本。

Colossal-AI 背后的潞晨科技,其核心成员来自美国加州伯克利、斯坦福、清华、北大、新加坡国立、南洋理工等世界一流高校。这款模型于去年四月发布,通过一年不到的时间,截至目前,其获得了 8.9k 个 Star。

45cae8dc8b4ed6255fc43a62e0261b62.png

在实验过程中,研究人员以开源的方式复制了 ChatGPT 训练的基本过程,包括第一阶段的预训练,第二阶段的奖励模型训练,以及第三阶段的强化学习训练,这是流程中最复杂的阶段。

此外,Colossal-AI 通过使用 ZeRO、Gemini、LoRA、AutoChunk 内存管理等,大大降低了 ChatGPT 训练的 GPU 内存开销。它只需要一半的硬件资源就可以开始 1750 亿个参数的模型训练(从 64 张卡到 32 张卡),大大降低了 ChatGPT 应用的成本。

倘若在上述相同的硬件资源下,Colossal-AI 能够在更短的时间内进行训练,节省训练成本,加速产品迭代。

为了让更多的开发者跑完 ChatGPT 训练过程,除了原有的 1750 亿参数版本,Colossal-AI 还提供高效的单 GPU、独立的 4/8GPU 的类 ChatGPT版本以减少硬件限制:

9320c282ae734a8a7a3288aea0004984.png

在单台多 GPU 服务器上,即使使用最高端的 A100 80GB GPU,由于 ChatGPT 的复杂性和内存碎片化,PyTorch 也只能启动基于 GPT-L(774M)等小模型的 ChatGPT。因此,用 PyTorch 的 DistributedDataParallel(DDP) 将多 GPU 并行扩展到 4 或 8 个 GPU,结果性能提升有限。

根据研究团队介绍,Colossal-AI 不仅在单 GPU 上有明显的训练和推理速度优势,而且可以随着并行规模的扩大而进一步提高,单服务器训练速度可达 7.73 倍,单 GPU 推理速度可达 1.42 倍,并且能够继续扩大到大规模的平行度,大大降低 ChatGPT 复制的成本。

03ac27923863c5aaf8c1ac270a0e00f9.png

为了最大限度地降低训练成本和易用性,Colossal-AI 还提供了一个可以在单GPU 上试用的 ChatGPT 训练过程。与 PyTorch 相比,在 14999 美元的 A100 80GB 上最多只能启动 7.8 亿个参数模型,Colossal-AI 将单个 GPU 的容量提高了 10.3 倍,达到 80 亿参数。对于基于 1.2 亿个参数的小模型的 ChatGPT 训练,至少需要 1.62GB 的 GPU 内存,任何单一消费级 GPU 都可以满足。

45a399cd1e272648fcac219e4cb3eede.png

此外,Colossal-AI 在致力于降低基于预训练的大型模型的微调任务的成本。例如,关于 OPT 模型的 ChatGPT 的微调任务,Colossal-AI 能够将单个 GPU 上的微调模型的容量比 PyTorch 提高 3.7 倍,同时以足够高的速度工作。

c44bf5684dde9916d5a005c80936a055.png

一行代码即可启动

一切准备就绪,只欠行动。根据研究人员介绍,Colossal-AI 提供了开箱即用的 ChatGPT 训练代码。在此,以 GPT 为例,只需要一行代码就可以指定使用 Colossal-AI 作为系统策略来启动。

bcd144a3be88532036df0d1311a65186.png

使用以下命令,开发者可以快速启动单 GPU 规模、单机多 GPU 规模、原始 1750 亿参数规模版本的训练,并对各种性能指标(包括最大GPU内存使用率、吞吐量和TFLOPS)进行评估。

# Training GPT2-S using a single card, a minimum batch size, Colossal-AI Gemini CPU strategy
torchrun --standalone --nproc_pero_node 1 benchmark_gpt_dummy.py --model s --strategy colossalai_gemini_cpu --experience_batch_size 1 --train_batch_size 1
# Training GPT2-XL with a 4-GPU machine, Colossal-AI Zero2 strategy
torchrun --standalone --nproc_per_node 4 benchmark_gpt_dummy.py --model xl --strategy colossalai_zero2
# Training GPT-3 with 4 8-GPU servers, Colossal-AI Gemini CPU strategy
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

c46ecc3f9ef287e4e8745e9180ca0a8d.png

底层优化

低成本的 LoRA 微调

复制 ChatGPT 的实现过程通常依赖于 Colossal-AI。Colossal-AI 支持通过低秩矩阵微调(LoRA,Low-Rank Adaptation)方法进行高效微调。该方法假设大型语言模型是过度参数化的,微调过程中的参数变量是一个低秩矩阵,它可以分解为两个小矩阵的乘积:

13bd46ca90ac8a9110faf3c1817b67a2.png

由于大型语言模型的参数是固定的,在微调过程中只有调整矩阵的参数,从而减少训练参数的数量。在进行部署推理时,将矩阵的乘积加回到原始矩阵中,如0e102db91af3f3fbac069cccf3f3f970.png,不影响推理延迟。

b1919aecb8e68671e93052cf412279a4.png

LoRA 结构,只训练 A、B

Zero+Gemini 来减少内存冗余

与传统的数据并行策略相比,Colossal-AI 使用零冗余优化器(ZeRO)来消除内存冗余,并在不影响计算粒度和通信效率的情况下,提高内存使用率。此外,为进一步提高了 ZeRO 的性能,Colossal-AI 还提出了基于 Chunk 的内存管理机制,它可以将连续的参数集按操作顺序存储在一个连续的、均匀分割的内存空间中,由此更能有效地利用网络带宽(PCI-e 和 GPU 之间),减少通信成本,并避免潜在的内存碎片。

9133a83bc184ca6cfaecb43e31ece6f5.png

此外,Colossal-AI 的异构内存管理器 Gemini 通过将优化器状态卸载到 CPU ,以此减少 GPU 内存占用,允许同时使用 GPU 内存和 CPU 内存(包括 CPU DRAM 或 NVMe SSD 内存)来训练超出单个 GPU 内存限制的大规模模型。

9f419491f350d1ad7b917613a4a5a921.png

5058c6038eee315c18984271d2184379.png

写在最后

目前,该研究团队已经开源了完整的算法和软件设计来复制 ChatGPT 的实现过程:https://github.com/hpcaitech/ColossalAI。

不过,同样是基于成本考虑,他们表示,「对于这样一个巨型的人工智能模型,它需要更多的数据和计算资源来实际生效和部署。毕竟,用 1750 亿个参数训练一个 GPT-3 需要价值数百万美元的计算能力。因此,大型预训练模型长期以来只为少数大科技公司所拥有。」

因此,他们也希望能够以开源的方式,吸引更多的研究人员、机构共同参与进来,仅以上文中所复制 ChatGPT 训练流程的实践探索为起点,未来可以向大模型的时代做出努力。

更多详情内容可查阅官方公告:https://www.hpc-ai.tech/blog/colossal-ai-chatgpt

参考资料:

https://twitter.com/ArtificialAva/status/1623346998928723971

https://finance.yahoo.com/news/chatgpt-on-track-to-surpass-100-million-users-faster-than-tiktok-or-instagram-ubs-214423357.html

https://blogs.microsoft.com/blog/2023/02/07/reinventing-search-with-a-new-ai-powered-microsoft-bing-and-edge-your-copilot-for-the-web/

https://arxiv.org/abs/2106.09685

https://arxiv.org/pdf/2203.02155

https://openai.com/blog/chatgpt/

https://en.wikipedia.org/wiki/ChatGPT

https://www.benzinga.com/news/23/02/30850547/bill-gates-says-chatgpt-as-big-an-invention-as-the-internet-will-make-many-office-jobs

 

c35ba0ac806711e7399ef60ac6d55fcb.gif

 

401a1075813a04bea9bc8bbbe9bff1c0.png

☞ChatGPT 技术首发上车,集度汽车官宣将融合文心一言;谷歌自研数据中心芯片取得新进展;Firefox 110 发布|极客头条
☞“C# 不停止膨胀,必将走向灭亡”
☞别光骂谷歌了!新版 Bing 花式“翻车”,还让用户向它道歉?

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

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

相关文章

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

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

element-ui 实现对话框

使用element-ui实现弹框 <!-- 弹窗 --><el-dialog title"New Ticket" :visible.sync"true" width"50%"> //:visible.sync"true"&#xff1a;一般设置一个变量来保存&#xff0c;true为打开,false为关闭<el-divider>…

拥抱AI大模型之美,帮你探索OpenAI大语言模型的能力(基础实战篇)

说明:本文主要是通过一些小的案例,让你体验一下OpenAI提供的一些API,如果你连ChatGPT和OpenAI是什么都不知道,那么这篇文章可能不适合你,你可以划走了. 环境准备: 01.准备账号和APIKey 首先要注册一个ChatGPT账号,账号注册完成之后&#xff0c;打开地址: https://platform.…

手握数据智能密钥,诸葛智能打开数字化经营“三重门”

科技云报道原创。 如果说上世纪传统麦迪逊大街上的“广告狂人”吸金立足之本&#xff0c;还主要是基于“Big Idea”的话&#xff0c;那么在当下&#xff0c;数据正在成为企业营销和运营的金矿。 这是一个“人与机器共同进化”的时代&#xff0c;技术作为延伸人类感觉的媒介之…

AI大模型,驶向产业何方?

技术更迭&#xff0c;已不是壁垒&#xff0c;国产式AI需要的是产品的创新思维&#xff0c;以及对需求的产品变现能力。 作者|斗斗 出品|产业家 “AI炒了那么多年&#xff0c;第一次感觉它真的要来了。”国内某论坛中&#xff0c;带有ChatGPT的词条下&#xff0c;几乎都会出…

重磅!马云回来了,聊了ChatGPT

编辑&#xff1a;米丽萍&#xff0c;余心丰&#xff0c;来源&#xff1a;正和岛 转自&#xff1a;Datawhale 图注&#xff1a;马云今日在云谷学校&#xff0c;图片来源&#xff1a;云谷教育 马云&#xff0c;回国了。 3月27日&#xff0c;据《科创板日报》报道&#xff0c;近日…

新媒体人打开 ChatGPT 的正确姿势

最近互联网讨论最多的话题&#xff0c;莫过于 ChatGPT。 虽然它是一个聊天机器人&#xff0c;但能模拟人的语气和用户聊天&#xff0c;并且通过不断地学习、理解进一步优化回答。 自去年11月发布以来&#xff0c;ChatGPT 便在全球引起了一时的轰动&#xff0c;发布仅五天&…

我做了第一个ChatGPT .net api聊天库

我做了第一个ChatGPT .net api聊天库 最近这个ChatGPT很火啊&#xff0c;看了B站上很多视频&#xff0c;自己非常手痒&#xff0c;高低自己得整一个啊&#xff0c;但是让我很难受的是&#xff0c;翻遍了github前十页&#xff0c;竟然没有一个C#的ChatGPT项目&#xff0c;我好…

ChatGPT想干掉开发人员,做梦去吧

很多人都发现ChatGPT可以做一些代码相关的工作&#xff0c;不仅可以写一些基础的类似python、java、js的代码段&#xff0c;还可以做一定量的调优&#xff0c;于是就开始担忧起来&#xff0c;到哪天我的开发工作会不会被ChatGPT这个工具给取代了&#xff1f; 目录 1. ChatGPT…

从零开发基于chatGPT的社区交友系统 (前后端分离)丨环境配置 01

01 环境配置 项目介绍安装配置Node.js下载安装配置淘宝镜像 安装vue脚手架(vue-cli)可视化创建vue项目运行vue项目 总结 项目介绍 本项目是一个基于ChatGPT人工智能技术开发的社区社交类应用程序。我们致力于为用户提供高质量的社区社交体验&#xff0c;让您的社交生活更加丰富…

无法连接到 reCAPTCHA,请检查您的网络连接

无法连接到 reCAPTCHA,请检查您的网络连接 https://www.pianshen.com/article/42341046536/ 浏览器&#xff1a;Chrome 电脑版 无法连接到 reCAPTCHA,请检查您的网络连接 第一步 安装Header Editor 插件 点击右侧蓝色按钮 后 &#xff0c;如图所示就可以了 第二步 配置插…

使用Python调用ChatGPT

import openai # Set up the OpenAI API client openai.api_key "你的KEY" # Set up the model and prompt model_engine "ada" prompt input(请输入字符串&#xff1a;) # Generate a response completion openai.Completion.create( enginemodel_eng…

ChatGPT 开源替代品 - Open Assistant 使用说明

文章目录 概述注册使用Chat 概述 Open Assistant 机器学习模型是由一家德国非营利组织 LAION 运营。 OpenAssistant 项目开始于 2022 年 12 月, Open Assistant 的目标是创建一个和 ChatGPT 具有相同能力的开源人工智能助手。 官网&#xff1a; https://open-assistant.io/ …

ChatGPT开源模型3.5 API调用示例

调用开源api POSTMAN 这里我用的是postman&#xff0c;主要看请求头、body 、其它工具语言都是一致的 参数说明 地址 &#xff1a; https://api.openai.com/v1/chat/completions 请求方式 &#xff1a;post 请求头 &#xff1a; application/json Content-Type&#xff1a;ap…

ChatGPT开源平替来了,开箱即用!前OpenAI团队打造,GitHub刚发布就揽获800+星

点击上方“视学算法”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达 丰色 发自 凹非寺量子位 | 公众号 QbitAI ChatGPT的开源平替来了&#xff0c;源代码、模型权重和训练数据集全部公开。 它叫OpenChatKit&#xff0c;由前OpenAI研究员共同…

ChatGPT开源优秀项目推荐

作为一名开发者&#xff0c;总是希望能够找到一些优秀的开源项目来学习、使用和贡献。而随着人工智能技术的不断发展&#xff0c;ChatGPT作为一个开源的大型语言模型&#xff0c;已经成为了人们学习和开发自然语言处理应用的重要工具。在这篇技术博客中&#xff0c;我将向大家介…

复旦版 ChatGPT 正式开源,太强了!!

点击上方“Java基基”&#xff0c;选择“设为星标” 做积极的人&#xff0c;而不是积极废人&#xff01; 每天 14:00 更新文章&#xff0c;每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路&#xff0c;很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应…

【关于ChatGPT的30个问题】28、如何评价ChatGPT的安全性?/ By 禅与计算机程序设计艺术

28、如何评价ChatGPT的安全性? 目录 28、如何评价ChatGPT的安全性? ChatGPT安全性评价

openAi ChatGPT调用性能优化的一些小妙招

参考的demo:GitHub - ddiu8081/chatgpt-demo: A demo repo based on OpenAI API. 扭曲调教&#xff1a; openai提供的chat接口&#xff08;https://api.openai.com/v1/chat/completions&#xff09;由于其模型很大&#xff08;什么1750亿个参数啥的&#xff09;&#xff0c;单…

逆天了!ChatGPT回答癌症问题,准确性与美国国家癌症研究所标准答案不相上下...

编译丨王聪 编辑丨王多鱼 排版丨水成文 ChatGPT&#xff0c;是由人工智能研究实验室 OpenAI 于2022年11月30日发布的全新聊天机器人模型——人工智能技术驱动的自然语言处理工具。ChatGPT能够通过学习和理解人类的语言来进行对话&#xff0c;还能根据聊天的上下文进行互动&…