太震撼了,几行代码,GPT-3变ChatGPT!

来源:新智元

快速定制模型的LLM引擎Lamini来了,开发者狂喜!

ChatGPT虽好,但始终有门槛。通常,只有拥有AI博士学位的大型机器学习团队,才能这样训练一个模型。

为了把这个门槛打下来, 团队构建了Lamini引擎,从此,每个开发者都能够拥有从GPT-3训练ChatGPT的超能力!

划重点:可以商用!可以商用!可以商用!

4f3a63abf4d01c86089cbb52ef669f4d.png

项目地址:https://github.com/lamini-ai/lamini/

Lamini的开发团队表示,你需要的只是几行代码,就可以用托管数据生成器俩训练自己的LLM,包括权重和其他所有的内容。

此外,你也可以使用开源的LLM,用Lamini库对生成的数据进行微调。以及访问完整的LLM训练模块,使用从LoRa等速度优化,到虚拟私有云 (VPC) 部署等企业功能。

2757a7182587af83baa06dee8da82a0a.png

对此,英伟达科学家Jim Fan表示, LLaMa+自定义数据正在成为新的范式,而Lamini的推出也带了一种全新的模式——FaaS,微调即服务。

054bc8ad51c47514acf0e2d4f35a35e3.png

MLOps的未来是「LMOps」。哪里有标准化,哪里就有机会。

OpenAI科学家,前特斯拉人工智能总监Andrej Karpathy也表示,LLM定制化的生态正在愈发火爆。

0f9f3305280702a8ecd25bd316f86669.png

训LLM就像prompt-tuning一样简单

写一个prompt如此容易,但想要从基础模型训练出一个大语言模型,却是如此困难。

因为需要花费大量时间,来找出微调模型失败的原因,所以对数据集微调的迭代周期都是以月为单位的。

与之相反,微调prompt的迭代,只需要几秒钟,并且在几个小时内,性能都能保持稳定。

这个过程只需要把有限数量的数据整合到prompt中就可以了,并不需要动辄几TB的数据。

97e7c7dd5949df47f1fd2c04a335c2c9.png

ChatGPT的诞生十分艰难,OpenAI的团队花了几个月的时间,在基础的GPT-3模型上微调,并进行RLHF。这个门槛极高,只有大型的ML团队才能完成这种训练。

有500强企业的技术负责人这样抱怨过:「我们团队的10名机器学习工程师用了OpenAI的微调API,结果我们的模型反而变得更差了,怎么办啊。」

「我真的不知道该怎么充分利用数据,我已经用尽了所有从在线教程中能学到的prompt魔法了。」

这,就是研究者构建Lamini的原因:让每个开发者可以直接从GPT-3训练ChatGPT。

任意LLM,秒变ChatGPT!

Lamini是一个LLM引擎,可以让不仅仅是机器学习专家的任何开发人员,都能在大型数据集中,把高性能的LLM训练得像ChatGPT一样好。

这个过程,只需要Laimini库的几行代码即可。

值得注意的是,这个库中的优化(optimization)远远超出了现在开发者可以使用的范围,从更具挑战性的优化(如RLHF)到更简单的优化(如减少幻觉)。

比如,你想从不同的角度生成一个广告文案。

首先,从llama模块导入LLM引擎:

 
from llama import 
LLMllm = LLM(name="marketing")

接下来,需要定义输入和输出类型。注意,这里一定要包括上下文(Context),因为可以有助于LLM在自然语言中进行理解。

 
from llama import Type, Contextclass AdAspects(Type):tone: str = Context("tone of the marketing copy")product_features: list = Context("product features to promote")audience: str = Context("target audience for the message")subject: str = Context("subject or topic of the message")goal: str = Context("goal of this marketing campaign and message")class AdCopy(Type):title: str = Context("google ad title tag")description: str = Context("google ad description")keywords: list = Context("keywords for the search engine")

然后就可以开始提问了:

语气:大胆,但不傲慢

特色:亚洲酱料和香料、家常调料和套餐包,可以轻松在家烹饪。

 
aspects = AdAspects(tone="bold and bright, but not arrogant",product_features=['asian sauces and aromatics','home-cooked seasonings and meal packs that can be easily cooked at home'],audience="suburban families",subject="delicious asian meals without going to a restaurant",goal="get suburban moms and dads to try buy their first omsom pack or free tasting kit"
)
ad_copy = llm(input=aspects, output_type=AdCopy)
print(f"Ad copy: {ad_copy}")

模型输出:

尝试 Omsom 的美味亚洲酱料、香料、家常调料和套餐包。轻松为家人在家做出美味佳肴。

 
> title='Delicious Asian Meals Without Going to a Restaurant | Omsom'description="Try Omsom's delicious Asian sauces, aromatics, and home-cooked seasonings and meal packs. Easily cook delicious meals at home for your family."keywords=['Asian sauces','Aromatics','Home-cooked seasonings','Meal packs','Delicious meals','Suburban families','Omsom']

如何创建自己的「ChatGPT」

基础模型能理解一般的英语,但如果需要它们学习一些垂直语言和规则,prompt微调并不足够,很多时候我们都需要构建自己的LLM。

利用用下面这个步骤,就能获得像ChatGPT一样遵循指令的LLM。

45a6f84b9d95275c68d9eee54d73662a.png

  1. 尝试prompt-tuning ChatGPT或其他模型

可以使用Lamini库的API,在不同模型之间快速进行prompt-tuning,只需一行代码,即可在OpenAI和开源模型之间切换。

Lamini库已经优化了正确的prompt,这样开发者就可以使用不同的模型,不必担心如何为每个模型设置prompt的格式。

  1. 构建一个包含输入-输出对的大型数据集

这些数据集会向模型展示,它应该如何响应输入,无论是遵循英文说明,还是以JSON响应。

研究者刚刚发布了一个只有几行代码的repo,使用Lamini库,仅从100个数据点中,就能生成50k数据点。

而且因为使用Lamini库来启动Lamini引擎,所以这个过程根本不需要用到GPU。

在repo中,已经包含一个开源的70+k数据集。

c4e9c0b3d4edcd69e9f8a90632711967.png

项目地址:https://github.com/lamini-ai/lamini/

  1. 在大型数据集上微调基础模型

除了数据生成器,研究者还发布了一个LLM,它使用Lamini对生成的数据进行了微调。以编程方式执行此操作的功能也会很快发布。

也可以把OpenAI的微调API作为起步。

  1. 在微调模型上进行RLHF

使用Lamini,就不再需要大型ML和人工标记团队来运行RLHF。

  1. 部署到云端

只需点击产品或功能中的API端点即可。

专为LLM打造的数据生成器

简单来说,依照以下几个步骤,就可以训练自己的大语言模型了。

  • 用于优化prompt微调和类型化输出(typed outputs )的 Lamini库。

  • 用于微调和RLHF的高级Lamini库,只需几行代码。

  • 史上首个托管数据生成器,用于创建数据,来训练遵循指令的LLM。注意,已获得商业使用许可!

  • 开源的指令跟随(instruction-following)LLM,使用上述工具,只需几行代码即可完成。

数据生成器工作原理

e36a66514d3e294e732721e72d547860.png

Lamini数据生成器是一个LLM管线,它采用原始的100多条指令的小集合,与预期的响应配对,生成50k+新的配对,灵感来自Stanford的Alpaca 。这个生成管线使用Lamini库来定义和调用 LLM,以生成不同但相似的指令和响应对。

根据这些数据训练后,你的LLM会遵循这些指示,因而得到改进。对于使用开源LLM的生成管线,研究者提供了一个很好的默认值,Lamini Open和Lamini Instruct。

随着每天新的LLM发布,研究者都会将默认值更新为性能最佳的模型。在目前的版本中,Lamini Open用的是EleutherAI的Pythia,Lamini Instruct用的是Databricks的Dolly。

Lamini Open会生成更多指令,而Lamini Instruct会生成这些指令的成对响应。

最终生成的数据集可供免费商业使用,已经通过CC-BY许可。

仅用一行代码,就可以将Lamini库的默认值换成其他开源或OpenAI模型。

研究者发现,OpenAI模型的平均表现更好,但它们的许可限制了将生成数据用于训练类ChatGPT模型的商用。

对生成数据进行微调

在这个过程中,生成的数据会质量不一。

在微调之前,下一步就是将生成的数据过滤为高质量数据。

然后,Lamini会通过在这个过滤后生成的数据集上训练基础模型,来创建自定义LLM。

研究者已经发布了一个开源指令跟随LLM(CC-BY 许可),可以用Lamini来训练Pythia基础模型,生成的37k指令是从70k中筛选出来的。

显然,Lamini库的出现,让迭代周期变得更快、更有效,有更多的人能够构建模型,而不仅仅是试验各种prompt。

团队介绍

Sharon Zhou是Lamini的联合创始人兼首席执行官。

df04c9dd1bcdf19beb0c8bb722f19c2c.png

个人主页:https://sharonzhou.me/

她在哈佛大学获得了计算机科学与古典文学联合学士学位,并以最高荣誉获得了硕士学位。

随后,她在斯坦福大学获得了计算机科学博士学位,师从吴恩达。

b7dac219513e4e5d9d944e07efd6647b.png

2022年,29岁的Zhou入选《麻省理工科技评论》「35岁以下科技创新35人」。

d3290ae37a7e4381ad729038d157cd4c.png

Gregory Diamos是MLPerf的联合创始人。

他曾是百度硅谷AI实验室的创始成员,对DeepSpeech和DeepVoice系统有贡献。

546b55b2977f2e3953a7d45f750ecc6c.png

参考资料:

https://lamini.ai/blog/introducing-lamini

推荐阅读

  • 西电IEEE Fellow团队出品!最新《Transformer视觉表征学习全面综述》

  • 润了!大龄码农从北京到荷兰的躺平生活(文末有福利哟!)

  • 如何做好科研?这份《科研阅读、写作与报告》PPT,手把手教你做科研

  • 奖金675万!3位科学家,斩获“中国诺贝尔奖”!

  • 又一名视觉大牛从大厂离开!阿里达摩院 XR 实验室负责人谭平离职

  • 最新 2022「深度学习视觉注意力 」研究概述,包括50种注意力机制和方法!

  • 【重磅】斯坦福李飞飞《注意力与Transformer》总结,84页ppt开放下载!

  • 2021李宏毅老师最新40节机器学习课程!附课件+视频资料

欢迎大家加入DLer-计算机视觉技术交流群!

大家好,群里会第一时间发布计算机视觉方向的前沿论文解读和交流分享,主要方向有:图像分类、Transformer、目标检测、目标跟踪、点云与语义分割、GAN、超分辨率、人脸检测与识别、动作行为与时空运动、模型压缩和量化剪枝、迁移学习、人体姿态估计等内容。

进群请备注:研究方向+学校/公司+昵称(如图像分类+上交+小明)

35277e77b3f39beba4dd4abc41030a64.jpeg

👆 长按识别,邀请您进群!

06008a9829091b092925072949e58790.gif

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

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

相关文章

#GPT基本使用场景 使用技巧

场景1:问答问题 这个场景应该是使用 AI 产品最常见的方法。以 ChatGPT 为例,一般就是你提一个问题,ChatGPT 会给你答案,比如像这样: 在这个场景下,prompt 只要满足前面提到的基本原则,基本上就没有什么问题。但需要注意,不同的 AI 模型擅长的东西都不太一样,prompt 可…

电脑客户端如何同时登陆多个微信账号

下载微信PC端 注:要是系统原生桌面,360桌面、搜狗桌面都是不可以,都需要退出)在操作之前先不要登陆微信。 如果在使用桌面助手,先退出按住Enter(回车键)不放,选中微信图标&#xff0…

Tool:微信使用技巧之手把手教你如何在电脑端同时登录多个微信账号之图文教程详细攻略

Tool:微信使用技巧之手把手教你如何在电脑端同时登录多个微信账号之图文教程详细攻略 导读:有时候,微信满了,需要多个微信账号在电脑端同时登陆来洽谈业务,那么如何在电脑端,同时登陆多个微信账号呢&#x…

PC端如何同时登录多个微信账号

今天说点与开发无关的,但是很实用的小技巧。电脑微信双开功能 原则上一台电脑只能登陆一个微信,但是有很多小可爱拥有俩个或者多个微信,像我就有俩个微信。工作用一个,家庭盆友用一个,这样互不干扰。现在市面上大多数…

微信PC/电脑版同时登录两个或多个账户

现在的Android手机端可以通过自带的应用分身功能,同时在Android手机上登录两个微信号,其实PC/电脑端也可以同时登录两个或更多的微信号,具体方法是: (1)首先找到微信到的安装目录,假设微信安装…

Windows PC端微信同时登录多个账号

Windows PC端微信同时登录多个账号 今天要分享的是一个小技巧:如何在Windows PC端同时登录多个微信账号? 其实某度经验有这个问题的答案,但是可能因为微信版本有升级,导致采用某度经验的方法会出现问题. 某度经验的描述是&…

如何在电脑端同时登录多个企业微信或微信

说明: 1、该方法是打开官方的企业微信和微信程序登录,而不是登录第三方程序,所以不会导致封号等问题。 2、只有windows才能使用,mac电脑用不了 以下是操作步骤: 第一步:点击下载软件包 安装前关闭所有杀毒…

技巧分享-电脑版微信如何登录多个账号

❤关注我,不迷路❤ 点击进入PC常见故障汇总专栏 随着现在Android手机支持应用分身及双卡双待,很多人都有2个甚至多个微信号,本文将分享如何通过BAT文件来实现电脑版微信的多开。 步骤一: 下载电脑版的微信(如果已安…

下一代ERP长什么样?从用友和华为最新走向谈起

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了人工智能中文站ChatGPT人工智能中文站 - ChatGPT人工智能中文站 每天给大家更新可用的国内可用chatGPT资源 下一代ERP长什么样?这是近几年来国内乃至全球ERP、企业应用市场的一个关键问题,…

aiXcoder代码生成大模型开放API接口,邀约开发者共建智能编程工具

近期,AIGC(AI-Generated Content)正快速成为科技圈新的“明星”,是继PGC、UGC后新的内容生成形态。AI在内容生成的渗透率也快速提升,输入自然语言就可以自动生成图像、视频、代码以及3D模型等。AIGC作为生产力工具&…

Stability AI CEO:5 年内,人类程序员将不复存在;马斯克回应限流推特:我这是在为世界做一件好事 | EA周报...

EA周报 2023年7月7日 每个星期1分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事、掌握IT核心技术。 周报看点 1、ChatGPT 流量首次下滑,分析师:新奇感渐渐消失 2、OpenAI 联合创始人:自动驾驶和 VR 都是“歧途” AI 智能…

重定向次数过多

用户登录权限控制报错:重定向次数过多 用spring做用户权限登录时报错,说重定向次数过多,bug具体如下 经检查,原来是因为登陆失败的页面就是当前页面,导致死循环。更改后测试通过 //登陆失败 //return "redire…

转发和重定向

servlet和servlet之间可以实现相互跳转,servlet的跳转可以将一个项目的模块进行划分,这样更加方便了开发人员的操作,servlet之间的跳转分为两种,一种是转发,英文名称Forward,另一种是重定向,英文…

登录重定向问题

路由拦截器的路径和登录成功后路由重定向发生冲突导致 在路由跳转的时候把错误抛出 this.$router.push({}).catch(()>{}) main.js const originalPush Router.prototype.push Router.prototype.push function push(location, onResolve, onReject) {if (onResolve || …

剖析转发和重定向

做JavaWeb开发一定会遇到转发和重定向这两个名字,刚开始确实有些模糊,感觉两者非常相似,但是随着研究深入发现两者的本质相差甚远。 首先看书写语句: 转发:request.getRequestDispatcher("apage.jsp").forwa…

关于转发和重定向

req.getRequestDispatcher(path).forward(req,resp); 请求转发如果path的值为"/xxx" 则浏览器地址栏请求的是服务器ip:端口号/项目名/xxx resp.sendRedirect(path); 重定向的话如果**path前面不带/**则表示客户端访问的是直接路径 例如 resp.sendRedirect(“hhtps…

转发以及重定向

转发 && 重定向 作用 在Servlet中实现页面的跳转有两种方式:转发和重定向 页面的跳转:转发 1.转发的原理 2.转发的方法 3.疑问 能否在FirstServlet中保存值到请求域中,在另一个SecondServlet中打印出来? 什么是转发 …

从匿名管道谈重定向技术

匿名管道与重定向技术 正文 首先我们得理解一个定义:重定向何谓重定向?可以先字面理解为:重新决定方向!在控制台程序中,将标准的输入、输出句柄用管道的读、写句柄替换,而控制台程序本身并不知道它的输入、输出句柄已发生了变化…

一文了解转发与重定向

一文了解转发与重定向 🏠个人主页:不会写代码的满满 🧑个人简介:大家好,我是满满,一个想要与大家共同进步的男人😉😉 目前状况🎉:开学即将大三,目…

转发与重定向

转发是服务器行为,重定向是客户端行为。转发耗时比重定向少。 转发——>客户浏览器发送HTTP请求——>web服务器接受请求——>调用内部一个方法在容器内部完成请求处理和转发动作——>再将转发跳转到的那个网页资源返回给客户; 转发只能在同…