太震撼了,几行代码,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, Context


class 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

推荐阅读

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

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

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

35277e77b3f39beba4dd4abc41030a64.jpeg

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

06008a9829091b092925072949e58790.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值