够快!爆火的ChatGPT等价开源项目来了,网友:我担心跑不起来
来源:51CTO.COM
时间:2023-04-24 10:28:31 299浏览 收藏
从现在开始,我们要努力学习啦!今天我给大家带来《够快!爆火的ChatGPT等价开源项目来了,网友:我担心跑不起来》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!
最近一段时间,由 OpenAI 开发的 AI 聊天机器人程序 ChatGPT 横扫各大 AI 社区,大家对它的热情只增不减,不断挖掘其潜力。
有些研究者坐不住了,开始琢磨怎样才能开发个等同于 ChatGPT 的开源软件。还没有行动的小伙伴这次参考示例来了,下面我们将要介绍的这个项目(PaLM + RLHF)就实现了这样的功能。
项目地址:https://github.com/lucidrains/PaLM-rlhf-pytorch
该项目是在 PaLM 架构之上实施 RLHF(人类反馈强化学习)。基本上等同于 ChatGPT,区别是使用了 PaLM。PaLM 是在谷歌的通用 AI 架构「Pathways」上训练而成的具有 5400 亿参数的大型语言模型。而 RLHF,是 ChatGPT 在 GPT 3.5 系列模型的基础上,引入「人工标注数据 + 强化学习」(RLHF)来不断微调预训练语言模型,旨在让大型语言模型(LLM)学会理解人类的命令,并学会根据给定的 prompt 给出最优的答案。
想要了解 RLHF 更多内容,可以参考:https://huggingface.co/blog/rlhf
正如网友所说的:「在 AI 领域中,每有一次专项突破,开发者们很快就会复现出一个开源版本。」
不过该项目目前只包含训练架构和代码,没有预先训练好的权重。在使用说明上,文档也显示必须先要训练 PaLM。
对此也有网友表示担心,表示:这不是一个开箱即用的项目,还只是一个架构,就像 shell 一样,需要昂贵的开销才能训练完成,没有机构能够像谷歌那样训练 PaLM。
还有网友表示:「没有预训练权重是非常糟糕的,官方至少需要释放 50% 的稀疏权重,剩下的让开发者自己训练,才是最好的选择。」
不过也有网友表示自己会去尝试:
下面我们来看看这个项目是如何运行的。
安装
$ pip install palm-rlhf-pytorch
用法
首先训练 PaLM,就像任何其他自回归 transformer 一样。
import torch from palm_rlhf_pytorch import PaLM palm = PaLM( num_tokens = 20000, dim = 512, depth = 12 ).cuda() seq = torch.randint(0, 20000, (1, 2048)).cuda() loss = palm(seq, return_loss = True)loss.backward() # after much training, you can now generate sequences generated = palm.generate(2048) # (1, 2048)
接着使用精选的人类反馈来训练奖励模型。在原始论文中,在没有出现过拟合的情况下,无法从预训练 transformer 中获得微调的奖励模型。项目作者则提供了使用 LoRA 进行微调的选项。
import torch from palm_rlhf_pytorch import PaLM, RewardModel palm = PaLM( num_tokens = 20000, dim = 512, depth = 12, causal = False ) reward_model = RewardModel( palm, num_binned_output = 5 # say rating from 1 to 5 ).cuda() # mock data seq = torch.randint(0, 20000, (1, 1024)).cuda()prompt_mask = torch.zeros(1, 1024).bool().cuda() # which part of the sequence is prompt, which part is response labels = torch.randint(0, 5, (1,)).cuda() # train loss = reward_model(seq, prompt_mask = prompt_mask, labels = labels)loss.backward() # after much training reward = reward_model(seq, prompt_mask = prompt_mask)
最后将 transformer 和奖励模型传递给 RLHFTrainer。
import torch from palm_rlhf_pytorch import PaLM, RewardModel, RLHFTrainer # load your pretrained palm palm = PaLM( num_tokens = 20000, dim = 512, depth = 12 ).cuda() palm.load('./path/to/pretrained/palm.pt') # load your pretrained reward model reward_model = RewardModel( palm, num_binned_output = 5 ).cuda() reward_model.load('./path/to/pretrained/reward_model.pt') # ready your list of prompts for reinforcement learning prompts = torch.randint(0, 256, (50000, 512)).cuda() # 50k prompts # pass it all to the trainer and train trainer = RLHFTrainer( palm = palm, reward_model = reward_model, prompt_token_ids = prompts ) trainer.train(num_episodes = 50000) # then, if it succeeded... # generate say 10 samples and use the reward model to return the best one answer = trainer.generate(2048, prompt = prompts[0], num_samples = 10) # (好了,本文到此结束,带大家了解了《够快!爆火的ChatGPT等价开源项目来了,网友:我担心跑不起来》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多科技周边知识!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
364 收藏
-
292 收藏
-
501 收藏
-
169 收藏
-
333 收藏
-
443 收藏
-
196 收藏
-
347 收藏
-
265 收藏
-
457 收藏
-
121 收藏
-
346 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习