【极客技术】ColossalChat用完整RLHF技术克隆ChatGPT的开源解决方案

这篇具有很好参考价值的文章主要介绍了【极客技术】ColossalChat用完整RLHF技术克隆ChatGPT的开源解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【极客技术】ColossalChat用完整RLHF技术克隆ChatGPT的开源解决方案

原文:ColossalChat: An Open-Source Solution for Cloning ChatGPT With a Complete RLHF Pipeline​​​​​​​

作者:Yang You,新加坡国立大学青年教授。他在加州大学伯克利分校获得计算机科学博士学位。

【极客技术】ColossalChat用完整RLHF技术克隆ChatGPT的开源解决方案

【极客技术】ColossalChat用完整RLHF技术克隆ChatGPT的开源解决方案

ColossalChat:一个用完整RLHF管道克隆ChatGPT的开源解决方案

像ChatGPT和GPT-4这样的大型AI模型和应用程序在全球范围内非常流行,为技术工业革命和AGI(人工通用智能)的发展奠定了基础。不仅科技巨头竞相发布新产品,学术界和工业界的许多人工智能专家也加入了相关的创业浪潮。生成式AI每天都在快速迭代,不断改进!

然而,OpenAI并没有将其模型开源,这让许多人对模型背后的技术细节感到好奇。

- 我们怎样才能紧跟潮流,参与到技术发展的浪潮中来呢?

- 我们如何降低构建和应用大型AI模型的高昂成本?

- 我们如何保护核心数据和IP不被第三方大模型api泄露?

作为当今领先的开源大型AI模型解决方案,Colossal-AI是第一个开源完整的RLHF管道,包括监督数据收集、监督微调、奖励模型训练和强化学习微调,基于LLaMA预训练模型,并共享最实用的开源项目ColossalChat,与原始的ChatGPT技术解决方案非常相似!

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

它包括以下内容:

- 演示:交互式演示,在线试用,无需注册或等待列表。

- 训练代码:开源完整的RLHF训练代码,包括7B和13B模型。

- 数据集:开源的104K中英文双语数据集。

- 推理:对70亿个参数模型进行4位量化推理,只需要4GB GPU内存。

- 模型权重:在单个服务器上仅使用少量计算能力即可实现快速复制。

- 其他更大的模型、数据集和其他优化将迅速更新和添加。

价格实惠,功能强大

ColossalChat只需要不到100亿个参数就可以达到中英文双语熟练程度,在大型语言模型的基础上通过RLHF微调,达到与ChatGPT和GPT-3.5相当的效果。

例如,一个常识测验

【极客技术】ColossalChat用完整RLHF技术克隆ChatGPT的开源解决方案

用中文回答

【极客技术】ColossalChat用完整RLHF技术克隆ChatGPT的开源解决方案

写一封电子邮件

【极客技术】ColossalChat用完整RLHF技术克隆ChatGPT的开源解决方案

写一个算法

【极客技术】ColossalChat用完整RLHF技术克隆ChatGPT的开源解决方案

完整的ChatGPT克隆方案

尽管GPT系列中的模型(如ChatGPT和GPT-4)非常强大,但它们不太可能是完全开源的。幸运的是,开源社区一直在努力解决这个问题。

例如,Meta已经开源了LLaMA模型,它提供的参数大小从70亿到650亿不等。在大多数基准测试中,130亿个参数模型可以超过1750亿个GPT-3模型。但由于没有指令调优阶段,实际生成的结果并不理想。

斯坦福大学的羊驼通过调用OpenAI的API以自我指导的方式生成训练数据。这个轻量级模型只有70亿个参数,可以以很小的成本对其进行微调,从而实现与GPT-3.5这样有1750亿个参数的大型语言模型类似的会话性能。

然而,现有的开源解决方案只能被视为RLHF(从人类反馈中强化学习)第一阶段的监督微调模型,后续的校准和微调阶段没有执行。此外,Alpaca的训练数据集仅限于英语,这在一定程度上限制了模型的性能。

然而,ChatGPT和GPT-4令人印象深刻的效果是由于在训练过程中引入了RLHF,这增加了生成内容与人类价值观的一致性。

【极客技术】ColossalChat用完整RLHF技术克隆ChatGPT的开源解决方案

基于LLaMA模型,ColossalChat是第一个实用的开源项目,它包含了一个完整的RLHF过程,用于复制类似ChatGPT的模型,并且是最接近ChatGPT原始技术路线的项目!

训练数据集开源

ColossalChat发布了一个由大约10万对中英文问答组成的双语数据集。数据集是从社交媒体平台上的现实问题场景中收集和清理的,作为种子数据集,并使用自我指导技术进行扩展,注释成本约为900美元。与其他自学方法生成的数据集相比,该数据集包含更真实和多样化的种子数据,并包含更广泛的主题。该数据集既适用于微调,也适用于RLHF训练。通过提供高质量的数据,ColossalChat可以实现更好的对话交互,并支持中文。

【极客技术】ColossalChat用完整RLHF技术克隆ChatGPT的开源解决方案

RLHF算法复制

RLHF算法复制包括三个阶段:

在RLHF- stage1中,使用前面提到的数据集执行监督指示微调来微调模型。

在RLHF-Stage2中,通过对同一提示的不同输出进行手动排序,训练奖励模型分配相应的分数,然后监督奖励模型的训练。

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

【极客技术】ColossalChat用完整RLHF技术克隆ChatGPT的开源解决方案

在PPO部分,ColossalChat遵循两个阶段的过程:首先,制造经验阶段,它使用SFT(有监督的微调)、参与者、RM(奖励模型)和批评模型来计算生成的经验并将其存储在缓冲区中。然后是参数更新阶段,使用经验计算策略损失和价值损失。

在PTX部分,ColossalChat计算Actor的输出响应和输入语料库的响应部分之间的交叉熵损失。这种损失被用来在PPO梯度中添加预训练梯度,以保持语言模型的原始性能并防止遗忘。最后,总结了策略损耗、值损耗和PTX损耗,用于反向传播和参数更新。

快速入门

ColossalChat已经以低成本开源了基于LLaMA模型的三个阶段复制ChatGPT的完整代码。

在阶段1中,训练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

在阶段2中,RM训练:

# 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过程,这在很大程度上归功于colossalai基础设施和相关优化技术的底层支持。在相同条件下,与Alpaca使用的FSDP (Fully Sharded Data Parallel)相比,ColossalChat的训练速度可以提高两倍以上。

系统基础建设 Colossal-AI

AI大模型开发系统Colossal-AI为该项目提供了基础支撑。它可以高效、快速地部署基于PyTorch的AI大模型训练和推理,降低大型AI模型应用的成本。colossa - ai是基于加州大学伯克利分校特聘教授James Demmel教授和新加坡国立大学青年教授Yang You教授的专业知识开发的。自开源发布以来,Colossol-AI多次在GitHub Trending上排名第一,GitHub上约有2万颗星,并已成功被SC、AAAI、PPoPP、CVPR和ISC等国际AI和HPC顶级会议接受为官方教程。

Zero+Gemini 减少内存冗余

Colosal - Ai支持ZeRO(零冗余优化器)来提高内存使用效率,使更大的模型能够以更低的成本容纳,而不影响计算粒度和通信效率。自动块机制可以通过提高内存使用效率、降低通信频率和避免内存碎片来进一步提高ZeRO的性能。异构内存空间管理器Gemini支持将优化器状态从GPU内存卸载到CPU内存或硬盘空间,以克服GPU内存容量的限制,扩大可训练模型的规模,降低大型AI模型应用的成本。

LoRA的低成本微调

Colossa - AI包括低秩自适应(LoRA)方法,用于大型模型的低成本微调。LoRA方法假设大型语言模型是过度参数化的,并且在微调过程中参数的变化是一个低秩矩阵。因此,这个矩阵可以分解成两个更小的矩阵的乘积。在微调过程中,固定大模型的参数,只调整低秩矩阵的参数,大大减少了训练所需的参数数量,降低了成本。

低成本量化推理

【极客技术】ColossalChat用完整RLHF技术克隆ChatGPT的开源解决方案

为了降低推理部署的成本,Colostal - AI使用了GPTQ 4位量化推理。在GPT/OPT/BLOOM模型上,它可以获得比传统RTN(四舍五入到最接近)量化技术更好的Perplexity结果。与普通的FP16推理相比,它可以减少75%的内存消耗,同时只牺牲了少量的吞吐量速度和Perplexity性能。

例如,对于使用4位量化推理的ColossalChat-7B, 70亿个参数模型只需要大约4GB的GPU内存来完成短序列(128个长度的生成)推断,这可以在RTX 3060等普通消费级GPU上完成,只需一行代码。

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

如果使用高效的异步卸载技术,则可以进一步降低内存需求,从而可以在成本较低的硬件上推断出更大的模型。

限制

虽然RLHF被进一步引入,但由于计算能力和数据集有限,在某些场景下,实际性能仍有提升空间。

【极客技术】ColossalChat用完整RLHF技术克隆ChatGPT的开源解决方案

协作

幸运的是,与之前的大型AI模型和尖端技术被少数科技巨头垄断不同,PyTorch、hug Face和OpenAI等开源社区和创业公司也在这一波浪潮中发挥了关键作用。巨量ai借鉴开源社区的成功经验,欢迎各方共同参与建设,拥抱大模型时代!

- 您可以发布一个问题或提交一个拉请求(PR)。

- 加入colossa - ai微信或Slack群,与团队和其他用户交流。

- 请将正式提案发送至邮箱youy@comp.nus.edu.sg

致谢

ColossalChat非常感谢许多现有的作品和杰出的组织。不可思议的斯坦福羊驼项目一直是灵感的源泉。自我指导研究论文为小数据集的强大功能提供了基础。准确的训练后量化来自于GPTQ。感谢Meta AI Research发布了LLaMA模型,Meta的PyTorch和OpenAI为最强大的AI铺平了道路。

免责声明

与斯坦福羊驼相似,我们强调ColossalChat是对开源社区的贡献,仅用于学术研究目的,禁止任何商业用途:

- ColossalChat构建于LLaMA之上,授权仅用于非商业用途。

- 来自OpenAI的模型API的指令数据,以及这些数据的使用条款禁止开发竞争模型。

- 像其他大型语言模型一样,ColossalChat可能会表现出一些常见的缺陷,包括幻觉、毒性和偏见。

参考

[1] Wang, Yizhong, et al. “Self-Instruct: Aligning Language Model with Self Generated Instructions.” arXiv preprint arXiv:2212.10560 (2022).

[2] Touvron, Hugo, et al. “LLaMA: Open and efficient foundation language models.” arXiv preprint arXiv:2302.13971 (2023).

[3] Rohan, Taori, et al. “Stanford Alpaca: An Instruction-following LLaMA model.” arXiv preprint arXiv:2302.13971 (2023).

[4] Hu, Edward J., et al. “Lora: Low-rank adaptation of large language models.” arXiv preprint arXiv:2106.09685 (2021).

[5] Frantar, Elias, et al. “GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers.” arXiv preprint arXiv:2210.17323 (2022).

[6] OpenAI. 2022. ChatGPT. https://openai.com/blog/chatgpt

[7] Rajbhandari, Samyam, et al. “Zero: Memory optimizations toward training trillion parameter models.” SC20: International Conference for High Performance Computing, Networking, Storage and Analysis. IEEE, 2020.文章来源地址https://www.toymoban.com/news/detail-427413.html

到了这里,关于【极客技术】ColossalChat用完整RLHF技术克隆ChatGPT的开源解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • NLP:palm-rlhf-pytorch(一种类ChatGPT的开源替代方案PaLM+RLHF)的简介、安装、使用方法之详细攻略

    NLP:palm-rlhf-pytorch(一种类ChatGPT的开源替代方案PaLM+RLHF)的简介、安装、使用方法之详细攻略 目录 palm-rlhf-pytorch(一种类ChatGPT的开源替代方案PaLM+RLHF)的简介 palm-rlhf-pytorc的安装 palm-rlhf-pytorc的使用方法 1、基础用法       palm-rlhf-pytorch是基于PaLM架构的RLHF(人类反馈强化学习)的实现

    2024年02月06日
    浏览(51)
  • ChatGPT 克隆方案,开源了!开箱即用

    ChatGPT是一种基于人工智能技术的大型语言模型,它能够理解和处理人类自然语言,并且在回答问题、生成文本和模拟对话等方面表现出色。ChatGPT使用的是GPT-3.5架构,它在训练过程中接触了大量的语言数据,并利用这些数据学习语言的语法、结构和含义。这使得ChatGPT能够像人

    2024年02月05日
    浏览(47)
  • 类ChatGPT逐行代码解读(2/2):从零实现ChatLLaMA、ColossalChat、DeepSpeed Chat

    本文为《类ChatGPT逐行代码解读》系列的第二篇,上一篇是:从零实现Transformer、ChatGLM-6B:从位置编码/缩放点积注意力/多头注意力开始 本文模型的特点是都加了RLHF,对于这4个模型而言:TRL、ChatLLaMA、ColossalChat、DeepSpeed Chat 如果只关注两个 则可以更多关注下ColossalChat、DeepS

    2024年02月03日
    浏览(49)
  • 解读ChatGPT中的RLHF

    无论是 ChatGPT 还是 GPT-4,它们的核心技术机制之一都是基于人类反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF)。这是大型语言模型生成领域的新训练范式,即以强化学习方式依据人类反馈优化语言模型。那么,什么是 RLHF 呢? RLHF 背后的基本思想是采用预先训练好

    2024年02月15日
    浏览(35)
  • ChatGPT 中的人类反馈强化学习 (RLHF) 实战

    团队博客: CSDN AI小组 相关阅读 ChatGPT 简介 大语言模型浅探一 关于 ChatGPT 必看的 10 篇论文 从 ELMo 到 ChatGPT:历数 NLP 近 5 年必看大模型 在当今数字化的时代,ChatGPT 的火热程度不断升级。ChatGPT 可以处理复杂的语言任务,从而解放人力资源,提高工作效率,减少成本。ChatGPT

    2023年04月25日
    浏览(79)
  • [技术杂谈][chatgpt]chatgpt相关开源代码地址汇总

    1、有预训练模型且可以训练自己的数据集: OpenChatKit: GitHub - togethercomputer/OpenChatKit Contribute to togethercomputer/OpenChatKit development by creating an account on GitHub. https://github.com/togethercomputer/OpenChatKit dolly: GitHub - databrickslabs/dolly: Databricks’ Dolly, a large language model trained on the Databricks Mac

    2023年04月24日
    浏览(47)
  • 《如何向ChatGPT提问并获得高质量的答案》—Prompt技术的完整指南

     本教程收集于:AIGC从入门到精通教程 目录 第1章:提示工程技术简介 第2章:说明提示技术#x

    2024年02月05日
    浏览(64)
  • gitee克隆项目失败/不完整/idea克隆项目模块不显示

    克隆下来的项目没有Module(即没有.iml文件)导致idea无法识别 file = project structure = Modules = ‘+’ = import modules = 选中项目 = create modules = next 如下图 选中项目点确定 之后就可以看到项目结构了,我是通过上面这种办法解决了. 如果还不行的可以试一下下面这个办法 如果你的电脑

    2024年02月10日
    浏览(54)
  • 基于Ray和vLLM构建70B+模型的开源RLHF全量训练框架

    背景 ChatGPT 已经问世一年+了,在训练 ChatGPT 中必不可少的一环是 RLHF 训练,目前开源社区已经有了不少 RLHF 训练框架比如,TRL, DeepSpeedChat 或者最近热门的 LLaMA Factory。这些框架往往是基于 ZeRO 等并行方式,将 RLHF 算法中的四个模型切片后放到同一个 GPU 上。在模型规模越来越

    2024年01月22日
    浏览(52)
  • 要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 21 章:课程学习提示

    课程学习是一种技术,它允许模型通过首先训练较简单的任务并逐渐增加难度来学习复杂的任务。 要在 ChatGPT 中使用课程学习提示,应为模型提供一系列难度逐渐增加的任务。提示中还应包括所需的输出信息,如要完成的最终任务以及任何具体要求或限制。 这种技术适用于

    2024年02月04日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包