几行代码,GPT-3变ChatGPT!吴恩达高徒、华人CEO震撼发布Lamini引擎

转载
570 天前
9759
AI之势

文章转载来源:AI之势

来源:新智元 编辑:Aeneas 好困

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

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

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

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

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

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

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

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

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

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


训LLM就像prompt-tuning一样简单


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

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

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

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

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。

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

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

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

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

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

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

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

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

项目地址: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,使用上述工具,只需几行代码即可完成。

数据生成器工作原理

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的联合创始人兼首席执行官。

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

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

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

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

Gregory Diamos是MLPerf的联合创始人。

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

参考资料:

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