Alineación de Meta Llama 3 a preferencias humanas con DPO, Amazon SageMaker Studio y Amazon SageMaker Ground Truth

Elena Digital López

Los grandes modelos de lenguaje (LLMs, por sus siglas en inglés) poseen capacidades notables. No obstante, usarlos en aplicaciones orientadas al cliente a menudo requiere adaptar sus respuestas para alinearse con los valores e identidad de marca de una organización. En este artículo, se demuestra cómo utilizar la optimización directa de preferencias (DPO), una técnica que permite ajustar un LLM con datos de preferencias humanas, junto con Amazon SageMaker Studio y Amazon SageMaker Ground Truth, para alinear las respuestas del modelo Meta Llama 3 8B Instruct con los valores de una organización.

Con la técnica de DPO, se puede ajustar finamente un LLM con datos de preferencias humanas, como calificaciones y clasificaciones, para que genere respuestas afines a las expectativas del usuario final. Esta técnica es computacionalmente eficiente y ayuda a mejorar la utilidad, honestidad e inofensividad del modelo, al desviar al LLM de abordar ciertos temas y mitigar sesgos. Generalmente, el proceso comienza seleccionando un modelo ya existente y preentrenado con ajuste fino supervisado (SFT, por sus siglas en inglés). El modelo genera respuestas que reciben retroalimentación humana, la cual es utilizada para ajustar finamente el modelo a través del DPO.

Al ajustar un LLM preentrenado con SFT, o al cargar un modelo ya afinado para DPO, se requieren GPUs potentes. Este mismo requerimiento aplica durante el ajuste fino DPO. Amazon SageMaker facilita este proceso permitiendo el uso de notebooks gestionados de Jupyter equipados con GPUs. Los usuarios pueden iniciar rápidamente creando un espacio de JupyterLab dentro de SageMaker Studio, un entorno de desarrollo integrado diseñado especialmente para el aprendizaje automático, y lanzando una aplicación de JupyterLab en una instancia de GPU.

La orquestación completa del flujo de trabajo de recolección de datos y el desarrollo de una aplicación para que los anotadores califiquen o clasifiquen las respuestas del modelo puede ser un proceso largo. SageMaker Ground Truth ofrece capacidades human-in-the-loop que ayudan a configurar estos flujos de trabajo, gestionar anotadores y recopilar retroalimentación precisa y consistente.

En un ejemplo práctico, se guía paso a paso cómo usar DPO para alinear las respuestas de un modelo SFT afinado con los valores de un banco digital ficticio llamado Example Bank. El notebook se ejecuta en un espacio de JupyterLab en SageMaker Studio utilizando una instancia ml.g5.48xlarge (con 8 GPUs A10G). Alternativamente, se puede usar una instancia de menor tamaño, como ml.g5.12xlarge (con 4 GPUs A10G) o ml.g6.12xlarge (con 4 GPUs L4) utilizando cuantización de bitsandbytes. El proceso emplea el modelo Meta Llama 3 8B Instruct, optimizado para casos de uso de diálogo del Hugging Face Hub, para generar respuestas, y SageMaker Ground Truth para recopilar datos de preferencias. Posteriormente, se utiliza el DPOTrainer de la biblioteca HuggingFace TRL para el ajuste fino DPO en conjunto con Parameter-Efficient Fine-Tuning (PEFT). El modelo alineado se despliega en un endpoint de SageMaker para inferencia en tiempo real.

El flujo de trabajo siguió los siguientes pasos clave:

1. Cargar el modelo Meta Llama 3 8B Instruct en SageMaker Studio y generar respuestas para un conjunto curado de preguntas comunes y tóxicas, sirviendo estas como punto de referencia inicial para el rendimiento del modelo.
2. Las parejas de pregunta-respuesta generadas fueron almacenadas en Amazon Simple Storage Service (S3). Estas se presentarían a los anotadores humanos para su clasificación posterior.
3. Crear un flujo de trabajo en SageMaker Ground Truth para recopilar datos de preferencias humanas respecto a las respuestas del modelo. Esto implicó crear un equipo de trabajo, diseñar una interfaz de usuario para la recolección de retroalimentación y configurar una tarea de etiquetado.
4. Anotadores humanos interactuaron con el portal de etiquetado para evaluar y clasificar las respuestas del modelo según su alineación con los valores de la organización.
5. Los datos recopilados fueron procesados para cumplir con el formato esperado por DPOTrainer.
6. Utilizando la biblioteca Hugging Face TRL y el DPOTrainer, se ajustó finamente el modelo Llama 3 con los datos procesados.
7. El modelo ajustado fue puesto a prueba en un conjunto de datos de evaluación para verificar su rendimiento y asegurar que cumpliera los estándares deseados.
8. Una vez satisfechos con el rendimiento del modelo, este fue desplegado en un endpoint de SageMaker para inferencia a escala y en tiempo real.

Esta metodología puede ser empleada con otros modelos, brindando así una flexibilidad y adaptabilidad cruciales para las diversas necesidades organizacionales y de usuarios finales.