Lamini:大语言模型精调框架
精调是大型语言模型 (LLM) 开发生命周期中最困难的部分之一。如果我们谈论的是诸如人类反馈强化学习 (RLHF) 之类的技术,那么这个过程尤其具有挑战性,因为这需要特别复杂的工作流程。 最近,我发现诞生了很多新的开源项目,这些项目试图简化 LLM 中的精调过程。其中最受关注的当属 Lamini。
文章目录
- 什么是Lamini
- 使用Lamini
- 数据生成器
- 总结
什么是Lamini
Lamini 是一个强大的工具,它允许所有背景的开发人员使用 Lamini 库中的几行代码来训练高性能的 LLM,包括与 ChatGPT 一样好的模型。Lamini 包含的优化超出了开发人员目前可用的范围,从复杂的 RLHF 到简单的错误消减,一应俱全。Lamini还可以仅用一行代码轻松比较多个基础模型,无论是来自 OpenAI 的闭源模型还是 HuggingFace 上的开源模型。
Lamini 包含如下关键能力:
- Lamini 库包括优化过的提示调优和输入输出,可以直接在 Lamini 的 playground 上试用。
- 只需几行代码,就可以通过访问先进的 Lamini 库进行微调和 RLHF。
- 托管数据生成器支持构建块,用于创建训练指令遵循 LLM 所需的数据。
- 只需几行代码即可使用指令跟随 LLM。
使用 Lamini 的过程可以总结为如下工作流程。
- 轻松调优模型:Lamini 库提供API,让开发者可以轻松调优模型,包括ChatGPT 和其他开源模型。 该库的 API 支持跨不同模型的快速调优,允许开发人员使用一行代码在 OpenAI 和开源模型之间切换。Lamini 库对提示进行了优化,让开发人员能够利用不同的模型,而不必担心如何为每个模型格式化提示。
- 构建大型输入输出对数据集:开发大型输入输出对数据集对于训练模型至关重要。高质量数据集可帮助模型学习如何遵循指令或以 JSON 格式进行响应。 Lamini 发布了一个存储库,该存储库使用 Lamini 库从 100 个数据样本生成 5 万个数据样本,供 Lamini 引擎使用。这个存储库包括一个开源的 5万 条数据的数据集。如何生成数据集下文有详细介绍。
- 在大型数据集上精调模型:除了数据生成器,Lamini 还发布了一个 LLM,它使用 Lamini 库对生成的数据进行微调。开发人员可以通过访问此功能以编程方式微调他们的模型。或者,调用 OpenAI 的微调 API 进行微调。
- 执行 RLHF:Lamini 让开发人员可以轻松地在微调模型上运行 RLHF,而无需庞大的机器学习和人工标记专家团队。
- 将模型部署到云端:开发人员对模型进行微调后,将其部署到云端就很简单了。开发人员可以点击其产品或功能中的 API 来部署他们的模型。
使用Lamini
Lamini 为微调模型提供了一个简单的编程模型,如下代码所示:
class Animal(Type):
name: str = Context("name of the animal")
n_legs: int = Context("number of legs that animal has")
class Speed(Type):
speed: float = Context("how fast something can run")
llama_animal = Animal(name="Larry", n_legs=4)
centipede_animal = Animal(name="Cici", n_legs=100)
my_data = [llama_animal, centipede_animal]
dog_animal = Animal(name="Nacho", n_legs=4)
dog_speed = Story(story="There once was a cute doggo named Nacho. She was a golden retriever who liked to run. All four of her paws were adorable.")
my_data.append([dog_animal, dog_speed])
Lamini 另一个有趣的功能是支持批处理,它可以将微调作业作为批处理来执行。
job = llm.submit_job(self, input, output_type, *args, **kwargs)
此外,Lamini 允许为输出创建添加变体。
ad_copy = llm(input=aspects, output_type=AdCopy, random=True)
或者删除重复数据。
ad_copies = llm.sample(input=aspects, output_type=AdCopy, n=5)
数据生成器
Lamini 框架的主要组件之一是 Lamini 数据生成器,它是一个强大的 LLM 管道,旨在使用一组 100 多条指令的响应数据集来生成超过 5 万对新指令数据,从而提高 LLM 的性能。
该管道利用 Lamini 库调用不同但相似的 LLM 生成不同的指令和响应对,来训练您的 LLM,使其更好地遵循指令。
Lamini 使用名为 Lamini Open
和 Lamini Instruct
的开源 LLM 为生成管道提供默认设置。截至当前版本,该框架正在使用 EleutherAI 的 Pythia for Lamini Open
生成更多指令,并使用 Databricks 的 Dolly for Lamini Instruct
生成这些指令的对应响应。
总结
使用 Lamini 切换 LLM 只需几行代码即可完成。
Lamini 致力于解决 LLM 驱动开发中最困难的挑战之一。该框架提供了一个简单且一致的编程模型来抽象跨不同 LLM 的微调过程。我们很可能会在不久的将来看到 Lamini 被纳入不同的 LLM 框架。