Una guía para principiantes sobre el ajuste fino de LLM

Guía para principiantes en el ajuste fino de LLM

Cómo ajustar finos Llama y otros LLMs con una herramienta

Imagen por autor

El creciente interés en los Modelos de Lenguaje Grande (LLMs, por sus siglas en inglés) ha llevado a un aumento en herramientas y envoltorios diseñados para agilizar su proceso de entrenamiento.

Entre las opciones populares se encuentran FastChat de LMSYS (utilizado para entrenar Vicuna) y las bibliotecas transformers/trl de Hugging Face (utilizadas en mi artículo anterior). Además, cada proyecto grande de LLM, como WizardLM, tiende a tener su propio script de entrenamiento, inspirado en la implementación original de Alpaca.

En este artículo, utilizaremos Axolotl, una herramienta creada por el OpenAccess AI Collective. La utilizaremos para ajustar finos un modelo Code Llama 7b en un conjunto de datos evol-instruct compuesto por 1,000 muestras de código Python.

🤔 ¿Por qué Axolotl?

El principal atractivo de Axolotl es que proporciona una solución integral, que incluye numerosas características, arquitecturas de modelos y una comunidad activa. Aquí hay una lista rápida de mis cosas favoritas sobre ella:

  • Configuración: Todos los parámetros utilizados para entrenar un LLM se almacenan ordenadamente en un archivo de configuración yaml. Esto facilita su compartición y reproducción de modelos. Puedes ver un ejemplo para Llama 2 aquí.
  • Flexibilidad del conjunto de datos: Axolotl permite la especificación de múltiples conjuntos de datos con formatos de inicio variados, como alpaca ({"instrucción": "...", "entrada": "...", "salida": "..."}), sharegpt:chat ({"conversaciones": [{"de": "...", "valor": "..."}]}), y completado en bruto ({"texto": "..."}). Combinar conjuntos de datos es sencillo y se elimina la molestia de unificar el formato de inicio.
  • Características: Axolotl está repleto de técnicas de última generación como FSDP, deepspeed, LoRA, QLoRA, ReLoRA, empaquetado de muestras, GPTQ, FlashAttention, xformers y escalado de cuerdas.
  • Utilidades: Se integran numerosas utilidades fáciles de usar, como la adición o modificación de tokens especiales o una configuración personalizada de wandb.

Algunos modelos conocidos entrenados con esta herramienta son Manticore-13b del OpenAccess AI Collective y Samantha-1.11-70b de Eric Hartford. Al igual que otros envoltorios, está construido sobre la biblioteca transformers y utiliza muchas de sus características.

⚙️ Crea tu propio archivo de configuración