开箱即用,完整版 ChatGPT 克隆方案,开源了!

c35b9d2533dceec776876857ccf3fdd9.jpeg

在过去的短短几个月,以 ChatGPT、GPT4 为代表的 AI 应用和大模型火爆全球,被视为开启了新的科技工业革命和 AGI (通用人工智能)的新起点。

不仅科技巨头间你追我赶,争相推出新品,许多学术界、工业界的 AI 大佬也纷纷投入投身相关创业浪潮。

生成式 AI 正以“天”为单位,快速迭代,持续狂飙!

然而,OpenAI 并未将其开源,它们背后的技术细节有哪些?如何快速跟进、追赶并参与到此轮技术浪潮中?如何降低 AI 大模型构建和应用的高昂成本?如何保护核心数据与知识产权不会因使用第三方大模型 API 外泄?

作为当下最受欢迎的开源 AI 大模型解决方案,GitHub 知名开源项目 Colossal-AI 率先建立了包含监督数据集收集->监督微调->奖励模型训练->强化学习微调的完整 RLHF 流程。

以 LLaMA 为基础预训练模型,推出 ColossalChat,是目前最接近 ChatGPT 原始技术方案的实用开源项目!

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

包含以下内容

  1. Demo:可直接在线体验模型效果,无需注册或 waitinglist;

  2. 训练代码:开源完整 RLHF 训练代码,已开源至含 7B 和 13B 两种模型;

  3. 数据集:开源 104K 中、英双语数据集;

  4. 推理部署:4bit 量化推理 70 亿参数模型仅需 4GB 显存;

  5. 模型权重:仅需单台服务器少量算力即可快速复现;

  6. 更大规模模型、数据集、其他优化等将保持高速迭代添加。

平价模型,强大能力

ColossalChat 仅需不到百亿参数,在大语言模型的基础上进行 RLHF 微调,即可掌握中、英双语能力,达到与 ChatGPT 和 GPT-3.5 类似的效果。

例如常识问答:    

d16f57659d0e3bd5f89d25eadcb2e849.png

中文应答:

28828d4a297b257e9106556519134aa3.png

写一封邮件:

59f36ae54daacf40ea5f419b267c5c09.png

写个算法:

e61316601651bc166c1fd54c75f88906.png

完整 ChatGPT 克隆方案

尽管 ChatGPT 和 GPT-4 等 GPT 系列模型非常强大,但是它们不太可能被完全开源。幸运的是,开源社区一直在不断努力。

例如 Meta 开源了 LLaMA 模型,该模型的参数量从 70 亿到 650 亿不等,130 亿参数即可胜过 1750 亿的 GPT-3 模型在大多数基准测试的表现。但是由于没有被指令微调(instruct tuning),因此实际生成效果不够理想。

斯坦福的 Alpaca 通过调用OpenAI API,以 self-instruct 方式生成训练数据,使得仅有 70 亿参数的轻量级模型以极低成本微调后,即可获得媲美 GPT-3.5 这样千亿参数的超大规模语言模型的对话效果。

但是现有开源方案都可以被视为只得到了人类反馈强化学习(RLHF)中第一步的监督微调模型,没有进行后续的对齐和微调工作。同时 Alpaca 的训练数据集过小,语料只有英文,也在一定程度上限制了模型的性能。

ChatGPT 和 GPT-4 的惊艳效果,还在于将 RLHF 引入训练过程,使得生成内容更加符合人类价值观。

23640a31dbe6fd911796ed747c296bcd.pngRLHF的三个阶段

基于 LLaMA 模型,Colossal-AI 首个开源包含完整 RLHF 流程的类Chat模型复现方案 ColossalChat,是目前最接近 ChatGPT 原始技术路线的实用开源项目!

训练数据集开源

ColossalChat 开源了包含约 10 万条问答的中、英双语数据集。该数据集收集并清洗了社交平台上人们的真实提问场景作为种子数据集,利用 self-instruct 技术扩充数据,花费约 900 美元进行标注。

对比其他 self-instruct 方法生成的数据集,该数据集的种子数据更加真实、丰富,生成的数据集涵盖的话题更多。该数据可以同时用于微调和 RLHF 训练。通过高质量的数据,ColossalChat 能进行更好地对话交互,同时支持中文。

020fa90e8d680ad26dc0b867af6fe6a5.pngColossalChat 数据集收集流程

RLHF算法复现

RLHF-Stage1 是 supervised-fintuning,即使用上文提到的数据集进行模型微调。

RLHF-Stage2 训练了奖励模型,它通过对于同一个 prompt 的不同输出进行人工排序,得到对应分数,监督训练奖励模型。

RLHF-Stage3 使用了强化学习算法,是训练流程中最复杂的一部分:

b393ac02af58d0c92059b5044efe09b4.jpegRLHF-Stage3算法流程图

在 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 servers
colossalai run --nproc_per_node=4 train_sft.py \--pretrain "/path/to/LLaMa-7B/" \--model 'llama' \--strategy colossalai_zero2 \--log_interval 10 \--save_path  /path/to/Coati-7B \--dataset /path/to/data.json \--batch_size 4 \--accimulation_steps 8 \--lr 2e-5

第二阶段,训练奖励模型:

# Training with a 4-GPU servers
colossalai run --nproc_per_node=4 train_reward_model.py \--pretrain "/path/to/LLaMa-7B/" \--model 'llama' \--strategy colossalai_zero2 \--dataset /path/to/datasets

第三阶段,使用 RL 训练:

# Training with a 8-GPU servers
colossalai run --nproc_per_node=8 train_prompts.py prompts.csv \--strategy colossalai_zero2 \--pretrain "/path/to/Coati-7B" \--model 'llama' \--pretrain_dataset /path/to/dataset

在获得最终模型权重后,还可通过量化降低推理硬件成本,并启动在线推理服务,仅需单张约 4GB 显存的 GPU 即可完成 70 亿参数模型推理服务部署。

python server.py /path/to/pretrained --quant 4bit --gptq_checkpoint /path/to/coati-7b-4bit-128g.pt --gptq_group_size 128

系统性能优化与开发加速

ColossalChat 能够快速跟进 ChatGPT 完整 RLHF 流程复现,离不开 AI 大模型基础设施 Colossal-AI 及相关优化技术的底座支持,相同条件下训练速度相比 Alpaca 采用的 FSDP(Fully Sharded Data Parallel) 可提升两倍以上

系统基础设施 Colossal-AI

AI 大模型开发系统 Colossal-AI 为该方案提供了基础支持,它可基于 PyTorch 高效快速部署 AI 大模型训练和推理,从而降低 AI 大模型应用的成本。

Colossal-AI 由加州伯克利大学杰出教授 James Demmel 和新加坡国立大学校长青年教授尤洋领导开发。

自开源以来,Colossal-AI 已经多次在 GitHub 热榜位列世界第一,获得 GitHub Star 约两万颗,并成功入选 SC、AAAI、PPoPP、CVPR、ISC 等国际 AI 与 HPC 顶级会议的官方教程。

减少内存冗余的 ZeRO + Gemini

Colossal-AI 支持使用无冗余优化器 (ZeRO) 提高内存使用效率,低成本容纳更大模型,同时不影响计算粒度和通信效率。自动 Chunk 机制可以进一步提升 ZeRO 的性能,提高内存使用效率,减少通信次数并避免内存碎片。

异构内存空间管理器 Gemini 支持将优化器状态从 GPU 显存卸载到 CPU 内存或硬盘空间,以突破 GPU 显存容量限制,扩展可训练模型的规模,降低 AI 大模型应用成本。

使用 LoRA 低成本微调

Colossal-AI 支持使用低秩矩阵微调(LoRA)方法,对 AI 大模型进行低成本微调。LoRA 方法认为大语言模型是过参数化的,而在微调时,参数改变量是一个低秩矩阵。

因此,可以将这个矩阵分解为两个更小的矩阵的乘积。在微调过程中,大模型的参数被固定,只有低秩矩阵参数被调整,从而显著减小了训练所需的参数量,并降低成本。

低成本量化推理

1234f5983c0db7e213882aaf63717dba.pngGPTQ量化

为降低推理部署成本,Colossal-AI 使用 GPTQ 4bit 量化推理。在 GPT/OPT/BLOOM 类模型上,它比传统的RTN(rount-to-nearest) 量化技术能够获得更好的 Perplexity 效果。

相比常见的 FP16 推理,它可将显存消耗降低75%,只损失极少量的吞吐速度与 Perplexity 性能。

以 ColossalChat-7B 为例,在使用 4bit 量化推理时,70 亿参数模型仅需大约 4GB 显存即可完成短序列(生成长度为 128 )推理,在普通消费级显卡上即可完成(例如 RTX 3060 Laptop),仅需一行代码即可使用。

if args.quant == '4bit':model = load_quant(args.pretrained, args.gptq_checkpoint, 4, args.gptq_group_size)

如果采用高效的异步卸载技术(offload),还可以进一步降低显存要求,使用更低成本的硬件推理更大的模型。

开放协作

尽管已经进一步引入RLHF,但由于算力和数据集有限,在部分场景下的实际性能仍有提升空间。

35703a08a9bf120b670d854ee03d1b1b.png

幸运的是,不同以往 AI 大模型与前沿技术仅由少数科技巨头垄断,PyTorch、Hugging Face 和 OpenAI 等开源社区与初创企业在本轮浪潮中也起到了关键作用。

借鉴开源社区的成功经验,Colossal-AI 欢迎各方参与共建,拥抱大模型时代!

可通过以下方式联系或参与:

  1. 在 GitHub 发布 issue 或提交 pull request (PR)

  1. 加入 Colossal-AI 用户微信或 Slack 群交流

  2. 发送正式合作提案到邮箱 youy@comp.nus.edu.sg

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

 

19d2d5e0cbc2fac4bc31b0d7b3255a35.jpeg

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

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

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

相关文章

元宇宙地产暴跌,林俊杰亏麻了

文/章鱼哥 出品/陀螺财经 随着元宇宙的兴起,元宇宙地产曾一度被寄予厚望,成为各大投资者追捧的对象。然而,最近的一次元宇宙地产价值暴跌再次提醒我们,高收益背后可能伴随着高风险。根据元宇宙分析平台WeMeta的数据显示&#xff0…

挤出泡沫、脱虚向实,AI大模型正在回归价值投资?

商品推荐、交通管理、生成文章、代码编程、电影特效制作……自ChatGPT横空出世以来,AIGC浪潮席卷全球,上下游产业链也因此大放异彩。 市场行情的高景气直观反映在股价上,无论AI公司是否盈利,其股价多呈上升趋势。一些与AI概念有所…

一路对标顶级产品,奇遇XR为何仍不见起色?

临近6月,再度遇冷的XR行业,又让很多人充满期待。外界普遍认为,基于苹果酝酿多年的MR头显产品,将于6月举行的WWDC 2023全球开发者大会正式亮相,XR行业或将迎来“iPhone时刻”。 在一派期待中,一家国内XR企业…

xAI迎战OpenAI|没有什么能够阻挡马斯克的AI梦想

出品|网易科技《智见焦点》 作者|赵芙瑶 编辑|丁广胜 马斯克的“X”系列又添新成员了。 对“X”有执念的马斯克,前不久刚刚将推特“注册名称”改为X Corp.,今天又在推特宣布成立新公司“xAI”。公司团队由马斯克领导&a…

上天了!但炸了:马斯克的「星舰」离火星又近了一步

点击“开发者技术前线”,选择“星标” 让一部分开发者看到未来 来自:机器之心 成功发射,但在空中爆炸了。 这一刻,我们都仰望星空。 北京时间 4 月 20 日晚 9 点半,随着倒计时声音的结束,在 SpaceX 位于得州…

AI“应用商店”来了。OpenAI首批70个ChatGPT Plugin最全梳理

OpenAI放出大招,本周将向所有ChatGPT Plus用户开放联网功能和众多插件,允许ChatGPT访问互联网并使用70个第三方插件。 根据华尔街见闻的梳理,本批第三方插件能够全方位覆盖衣食住行、社交、工作以及学习等日常所需,基本上能够扮演…

手把手教你用 ChatGPT plugin 打造一个人知识库系统(一)

为什么需要个人知识库? 大概有很多人跟我一样,被现在信息过载弄得非常焦虑。很自然想到通过整理的方式来对抗信息过载,试图使用各种知识管理工具来整理这些信息,但最后折腾完各种工具后,才发现根本用不起来。因为这些…

简单实现一个ChatGPT Plugin

OpenAI对ChatGPT Plus用户开放了Plugin的权限。初步体验下来虽然bug不少,不过效果很不错,是一个较为成熟的feature。个人认为,ChatGPT Plugin的体验要远优于New Bing(bing还要继续努力..) 今天从零开始开发一个ChatGPT Plugin&am…

ChatGPT Plugin发布,这东西到底是干嘛的?里面的逻辑是什么?

前言 chatGPT目前的明显问题是不能够获取新知识,也没有办法和外界交互,而plugin就是来解决这个问题的。 chatgpt-retrieval-plugin 插件的基本信息 这是最新开源的一个plugin,里面有几个核心点 第一个是插件的定义 我不逐句翻译了&#…

chatgpt赋能powershell

最近chatgpt非常火爆,获得超高曝光度的同时,也让大家对ai和ai工具有了新的认识。关于chatgpt,可以参考这篇文章。 今天主要推荐一个可以与powershell集成的ai工具,其后端也是openai的服务,可以有效提高工作效率。 Po…

ChatGPT算法护航,拿不到年薪25W全额退!

最近因ChatGPT爆火,使得很多人非常的焦虑,下面是我看到的一位好朋友心情!不知道大家是否也有同样的心情!~ 感觉很多人在看到ChatGPT时都有这样的担忧,这样的担忧是不是源自于神经网络如果参数量足够大&…

搭个ChatGPT算法模型,离Java程序员有多远?

除了大家都想体验一下这款智能的 ChatGPT AI,也有很多互联网公司开始搭建自己的 ChatGPT,但真的挺担心最后整出来的不是 ChatGPT 而是 ChatPPT。为此我也想研究下 ChatGPT 是怎么做出来的,都说是模型和数据训练,那我能训练吗&…

基于java记账管理系统(论文+PPT+源码)

本 科 毕 业 设 计(论文) 题 目:记账管理系统 专题题目:记账管理系统 本 科 毕 业 设 计(论文)任 务 书 题 目: 记账管理系统 专题题目(若无专题则不填)&#xff1a…

为了搞懂ERP,我连问 ChatGPT 30个问题,通透!

我对ERP有很多的疑问,这次向ChatGPT请教,连问30个问题,瞬间觉得通透了很多,以下是我的问题和ChatGPT的回复,分为概念篇、架构篇和生态篇三部分,希望能带给你新的启示。 一、概念篇 1、ERP是什么&#xff1f…

安卓app源码和设计报告——简易记账本

课 程 设 计(实训)说 明 书 题目实现简易记账本功能 专 业班 级学生姓名同组学生指导老师 课程设计(实训)评语 学生姓名 专业 班级 2 题目 实现简易记账本功能 评语: 成绩: 优良中及格不及格出勤20%…

ChatGPT来抢财务饭碗?别慌!对话企业聊聊财务数字化

10大职业将被ChatGPT取代,财务也位居其中?有媒体和机构整理,最有可能被取代的职业有:技术工种、媒体工作者、法律工作者、市场研究分析师、教师、财务、交易员、平面设计师、会计师、客服。你感受到职业危机了吗? 当下…

不止ChatGPT,这些GPT 官方助力的潜力股同样值得拥有

我很惊讶于 OpenAI 创投基金主页面的简陋,或许他们更关注于做事吧。对于 OpenAI 的第一组投资来说,人工智能实验室已使用其 1 亿美元的基金投资了至少 12 家公司,很多公司的产品状态尚处于“Join Waitlist”状态,下面我带你了解一…

Java——Linux使用Docker部署若依前后端分离版【保姆级教程】

目录 一、项目规划与前置工作 1.1、docker所需镜像 1.2、使用工具 1.3、防火墙与安全组的配置 1.4、域名解析、备案、SSL证书的准备(可选) 二、Docker和镜像安装 2.1、Docker安装 2.1.1、检查环境 2.1.2、搭建gcc环境(gcc是编程语言译器&am…