Encontrar buenos hiperparámetros de capacitación para nuevos LLM siempre es difícil y requiere mucho tiempo. Con Zephyr Gemma 7B, Hugging Face parece haber encontrado una buena receta para perfeccionar a Gemma. Utilizaron una combinación de ajuste fino supervisado y DPO similar a lo que hicieron para su Zephyr original basado en Mistral 7B. Sin embargo, entrenar a Gemma con DPO en hardware de consumo es un desafío debido al consumo de memoria.
En este artículo, primero reviso la receta utilizada por Hugging Face para entrenar a Zephyr Gemma 7B. Luego, muestro cómo usar esta receta con Unsloth, un marco que implementa varias optimizaciones para un entrenamiento rápido y eficiente en memoria. El método presentado en este artículo tiene un consumo máximo de memoria de 19 GB de VRAM y un tiempo total de entrenamiento de sólo 8 horas. En otras palabras, la capacitación de DPO para Gemma es posible en hardware de consumo.
Ajuste supervisado (SFT)
DPO debe utilizar como referencia un modelo entrenado con ajuste fino supervisado (SFT) en un conjunto de datos de instrucciones. Hugging Face también lanzó este modelo SFT:
Para SFT, utilizaron deita-10k, que es un pequeño conjunto de datos de instrucciones de 9,5k ejemplos:
Una amplia variedad de LLM ha generado todos los ejemplos de este conjunto de datos (GPT-4, GPT-3.5, Claude, Vicuna, Llama 2, Mistral 7B, Zephyr, etc.). Para el entrenamiento SFT, utilizaron un formato de datos especial que también usaremos.
Hugging Face utilizó los hiperparámetros a los que se hace referencia en este archivo de configuración de su manual de alineación. No usaron LoRA ni cuantificación. Significa que probablemente usaron muchas GPU A100/H100 para entrenar a Zephyr Gemma. Nota: En la tarjeta modeloescribieron “16 dispositivos” pero no dicen cuáles son estos dispositivos.
Para ejecutar esta receta en hardware de consumo, usaremos LoRA y cuantificación, es decir, QLoRA. Detallaré la configuración de LoRA en la siguiente sección.