Lamini: marco de ajuste fino del modelo de lenguaje grande

Lamini: marco de ajuste fino del modelo de lenguaje grande

El ajuste fino es una de las partes más difíciles del ciclo de vida de desarrollo del modelo de lenguaje grande (LLM). Este proceso es especialmente desafiante si hablamos de técnicas como el aprendizaje reforzado con retroalimentación humana (RLHF), que requieren flujos de trabajo particularmente complejos. Recientemente, he visto nacer muchos proyectos nuevos de código abierto que intentan simplificar el proceso de ajuste en LLM. Uno de los más preocupados es sin duda Lamini .

inserte la descripción de la imagen aquí

¿Qué es Lamini?

Lamini es una poderosa herramienta que permite a los desarrolladores de todos los orígenes entrenar LLM de alto rendimiento, incluidos modelos tan buenos como ChatGPT, con unas pocas líneas de código de la biblioteca Lamini. Lamini incluye optimizaciones más allá de lo que actualmente está disponible para los desarrolladores, que van desde RLHF complejo hasta la mitigación de errores simples. Lamini también puede comparar fácilmente múltiples modelos base, ya sea de código cerrado de OpenAI o de código abierto en HuggingFace, con solo una línea de código.

Lamini incluye las siguientes capacidades clave:

  • La biblioteca de Lamini incluye sintonización de avisos y entrada y salida optimizadas, que se pueden probar directamente en el patio de recreo de Lamini.
  • El ajuste fino y RLHF son posibles con acceso a la biblioteca avanzada de Lamini en solo unas pocas líneas de código.
  • Los generadores de datos administrados admiten componentes básicos para crear los datos necesarios para que las instrucciones de capacitación sigan el LLM.
  • Siga LLM con instrucciones en solo unas pocas líneas de código.

El proceso de uso de Lamini se puede resumir como el siguiente flujo de trabajo.

inserte la descripción de la imagen aquí

  1. Fácil ajuste de modelos : la biblioteca Lamini proporciona una API que permite a los desarrolladores ajustar fácilmente los modelos, incluidos ChatGPT y otros modelos de código abierto. La API de la biblioteca admite ajustes rápidos en diferentes modelos, lo que permite a los desarrolladores cambiar entre OpenAI y modelos de código abierto con una sola línea de código. La biblioteca Lamini optimiza las sugerencias, lo que permite a los desarrolladores aprovechar diferentes modelos sin preocuparse por cómo formatear las sugerencias para cada modelo.
  2. Cree grandes conjuntos de datos de pares de entrada y salida : el desarrollo de grandes conjuntos de datos de pares de entrada y salida es fundamental para los modelos de entrenamiento. Los conjuntos de datos de alta calidad ayudan a los modelos a aprender cómo seguir instrucciones o responder en formato JSON. Lamini publica un repositorio que utiliza la biblioteca Lamini para generar 50 000 muestras de datos a partir de 100 muestras de datos para el consumo del motor Lamini. Este repositorio incluye un conjunto de datos de código abierto de 50.000 entradas. A continuación se describe en detalle cómo generar el conjunto de datos.
  3. Ajuste fino de modelos en grandes conjuntos de datos : además del generador de datos, Lamini también lanzó un LLM que utiliza la biblioteca Lamini para ajustar los datos generados. Los desarrolladores pueden ajustar sus modelos mediante programación accediendo a esta función. Alternativamente, ajuste con precisión llamando a la API de ajuste fino de OpenAI.
  4. Realice RLHF : Lamini facilita a los desarrolladores la ejecución de RLHF en modelos ajustados sin necesidad de un gran equipo de expertos en aprendizaje automático y etiquetado humano.
  5. Implementación del modelo en la nube : una vez que el desarrollador ha ajustado el modelo, implementarlo en la nube es simple. Los desarrolladores pueden hacer clic en la API de su producto o función para implementar sus modelos.

Usar Lamini

Lamini proporciona un modelo de programación simple para ajustar el modelo, como se muestra en el siguiente código:

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])

Otra característica interesante de Lamini es su soporte para el procesamiento por lotes, que puede ejecutar trabajos de ajuste fino como lotes.

job = llm.submit_job(self, input, output_type, *args, **kwargs)

Además, Lamini permite agregar variantes para la creación de salida.

ad_copy = llm(input=aspects, output_type=AdCopy, random=True)

O deduplicar datos.

ad_copies = llm.sample(input=aspects, output_type=AdCopy, n=5)

generador de datos

Uno de los componentes principales del marco de trabajo de Lamini es Lamini Data Generator, una poderosa canalización de LLM diseñada para mejorar el rendimiento de LLM mediante el uso de un conjunto de conjuntos de datos de respuesta de más de 100 instrucciones para generar más de 50 000 pares de nuevos datos de instrucciones.

imagen

Esta tubería utiliza la biblioteca Lamini para llamar a LLM diferentes pero similares para generar diferentes pares de comandos y respuestas para entrenar a su LLM para que siga mejor los comandos.

Lamini proporciona configuraciones predeterminadas para construir canalizaciones utilizando LLM de código abierto con nombres Lamini Openy . Lamini InstructA partir de la versión actual, el marco usa EleutherAI Pythia for Lamini Openpara generar más comandos y Databricks Dolly for Lamini Instructpara generar las respuestas correspondientes para esos comandos.

Resumir

El cambio de LLM con Lamini se puede hacer con solo unas pocas líneas de código.

Lamini se dedica a resolver uno de los desafíos más difíciles en el desarrollo impulsado por LLM. El marco proporciona un modelo de programación simple y consistente para abstraer el proceso de ajuste fino en diferentes LLM. Es probable que veamos Lamini incorporado en diferentes marcos de LLM en un futuro próximo.

Supongo que te gusta

Origin blog.csdn.net/jarodyv/article/details/130825517
Recomendado
Clasificación