Lamini:大语言模型精调框架

Lamini:大语言模型精调框架

精调是大型语言模型 (LLM) 开发生命周期中最困难的部分之一。如果我们谈论的是诸如人类反馈强化学习 (RLHF) 之类的技术,那么这个过程尤其具有挑战性,因为这需要特别复杂的工作流程。 最近,我发现诞生了很多新的开源项目,这些项目试图简化 LLM 中的精调过程。其中最受关注的当属 Lamini

在这里插入图片描述

什么是Lamini

Lamini 是一个强大的工具,它允许所有背景的开发人员使用 Lamini 库中的几行代码来训练高性能的 LLM,包括与 ChatGPT 一样好的模型。Lamini 包含的优化超出了开发人员目前可用的范围,从复杂的 RLHF 到简单的错误消减,一应俱全。Lamini还可以仅用一行代码轻松比较多个基础模型,无论是来自 OpenAI 的闭源模型还是 HuggingFace 上的开源模型。

Lamini 包含如下关键能力:

  • Lamini 库包括优化过的提示调优和输入输出,可以直接在 Lamini 的 playground 上试用。
  • 只需几行代码,就可以通过访问先进的 Lamini 库进行微调和 RLHF。
  • 托管数据生成器支持构建块,用于创建训练指令遵循 LLM 所需的数据。
  • 只需几行代码即可使用指令跟随 LLM。

使用 Lamini 的过程可以总结为如下工作流程。

在这里插入图片描述

  1. 轻松调优模型:Lamini 库提供API,让开发者可以轻松调优模型,包括ChatGPT 和其他开源模型。 该库的 API 支持跨不同模型的快速调优,允许开发人员使用一行代码在 OpenAI 和开源模型之间切换。Lamini 库对提示进行了优化,让开发人员能够利用不同的模型,而不必担心如何为每个模型格式化提示。
  2. 构建大型输入输出对数据集:开发大型输入输出对数据集对于训练模型至关重要。高质量数据集可帮助模型学习如何遵循指令或以 JSON 格式进行响应。 Lamini 发布了一个存储库,该存储库使用 Lamini 库从 100 个数据样本生成 5 万个数据样本,供 Lamini 引擎使用。这个存储库包括一个开源的 5万 条数据的数据集。如何生成数据集下文有详细介绍。
  3. 在大型数据集上精调模型:除了数据生成器,Lamini 还发布了一个 LLM,它使用 Lamini 库对生成的数据进行微调。开发人员可以通过访问此功能以编程方式微调他们的模型。或者,调用 OpenAI 的微调 API 进行微调。
  4. 执行 RLHF:Lamini 让开发人员可以轻松地在微调模型上运行 RLHF,而无需庞大的机器学习和人工标记专家团队。
  5. 将模型部署到云端:开发人员对模型进行微调后,将其部署到云端就很简单了。开发人员可以点击其产品或功能中的 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 的性能。

img

该管道利用 Lamini 库调用不同但相似的 LLM 生成不同的指令和响应对,来训练您的 LLM,使其更好地遵循指令。

Lamini 使用名为 Lamini OpenLamini Instruct 的开源 LLM 为生成管道提供默认设置。截至当前版本,该框架正在使用 EleutherAI 的 Pythia for Lamini Open 生成更多指令,并使用 Databricks 的 Dolly for Lamini Instruct 生成这些指令的对应响应。

总结

使用 Lamini 切换 LLM 只需几行代码即可完成。

Lamini 致力于解决 LLM 驱动开发中最困难的挑战之一。该框架提供了一个简单且一致的编程模型来抽象跨不同 LLM 的微调过程。我们很可能会在不久的将来看到 Lamini 被纳入不同的 LLM 框架。

猜你喜欢

转载自blog.csdn.net/jarodyv/article/details/130825517