Saltar al contenido principal
InicioTutorialesInteligencia Artificial (IA)

Guía para principiantes de LlaMA-Factory WebUI: Ajuste de los LLM

Aprende a afinar los LLM en conjuntos de datos personalizados, evaluar el rendimiento y exportar y servir modelos sin problemas utilizando el marco de trabajo de bajo/ningún código de LLaMA-Factory.
Actualizado sept 2024  · 12 min leer

En este tutorial, exploraremos cómo afinar el modelo Llama 3 8B utilizando la WebUI de LlaMA-Factory en el conjunto de datos de preguntas y respuestas de Wikipedia. Comenzaremos presentando la WebUI de LlaMA-Factory, seguida de su configuración en el entorno de Google Colab. Una vez configurado, recorreremos el proceso de ajuste del modelo Llama 3 8B en el conjunto de datos y, a continuación, evaluaremos el rendimiento del modelo a través de la interfaz del chat.

A medida que avancemos, también aprenderás a cargar conjuntos de datos personalizados, fusionar modelos y exportarlos a Cara de Abrazo. Por último, veremos cómo desplegar el modelo ajustado, haciéndolo accesible a través de la API de OpenAI.

Puedes adquirir conocimientos prácticos sobre temas populares de IA como ChatGPT, grandes modelos de lenguaje, IA generativa y mucho más cursando el curso Fundamentos de la IA de AI.

Ajuste fino de los LLM mediante la imagen de portada de LlaMA-Factory WebUI

Imagen del autor | Canva

¿Qué es la Fábrica LlaMA?

hiyouga/LLaMA-Factory es un proyecto de código abierto que te permite ajustar más de 100 grandes modelos lingüísticos (LLM) a través de una interfaz WebUI. Proporciona un conjunto completo de herramientas y scripts para afinar, chatear, servir y evaluar comparativamente los LLM. 

LLaMA-Factory está diseñado específicamente para principiantes y profesionales no técnicos que deseen ajustar LLM de código abierto en sus conjuntos de datos personalizados sin aprender conceptos complejos de IA. Los usuarios sólo tienen que seleccionar un modelo, añadir su conjunto de datos y ajustar algunos parámetros para iniciar el proceso de entrenamiento. 

Una vez completado el entrenamiento, se puede utilizar la misma aplicación web para probar el modelo, tras lo cual se puede exportar a Cara Abrazada o guardarlo localmente. Esto proporciona una forma rápida y eficaz de ajustar localmente los LLM.

Primeros pasos con LlaMA-Factory WebUI

En esta sección aprenderemos a instalar e iniciar LlaMA-Factory WebUI en Google Colab y Microsoft Windows. 

Google Colab proporciona acceso a GPUs gratuitas, por lo que si tu portátil no tiene GPU o CUDA instalado. Te recomendé que empezaras con un cuaderno Colab. 

  1. Inicia el bloc de notas Google Colab con el tipo de ejecución "GPU T4". 
  2. En la celda de código, escribe el siguiente comando para clonar el repositorio GitHub de LLaMA-Factory e instalar todos los paquetes Python necesarios. 
%cd /content/
%rm -rf LLaMA-Factory
!git clone https://github.com/hiyouga/LLaMA-Factory.git
%cd LLaMA-Factory
%ls
%pip install -e .[torch,bitsandbytes]
  1. Para acceder a los modelos y conjuntos de datos, tienes que iniciar sesión en la CLI de Hugging Face. Para ello, debes generar un nuevo token de acceso yendo a la configuración de Hugging Face, haciendo clic en "Tokens de acceso" y creando un nuevo token para Google Colab.

Generar el nuevo token de acceso Cara Abrazada

  1. Crea la variable de entorno Cara Abrazada utilizando la función "Secretos" de Colab, que nos permite crear variables de entorno a las que se puede acceder dentro del cuaderno de forma segura.

Configurar la variable de entorno en Google Colab utilizando los Secretos.

  1. Conéctate al Hugging Face Hub utilizando el token de acceso Huggion Face. 
from huggingface_hub import login
from google.colab import userdata
hf_token = userdata.get("HUGGINGFACE_TOKEN")
login(token = hf_token)
  1. Inicia la WebUI de LLaMA-Factor utilizando llamafactory-cli. Establecemos GRADIO_SHARE=1 para que podamos generar un enlace público para acceder a la aplicación web. 
%cd /content/LLaMA-Factory/
!GRADIO_SHARE=1 llamafactory-cli webui
  1. Haz clic en la URL pública para iniciar la WebUI en la nueva pestaña. 

URL pública de Llama factor webui

La WebUI de LLAMA-Factory parece sencilla pero tiene muchas opciones y pestañas. Los exploraremos en la siguiente sección. 

Llama Factory WebUI ejecutándose en Google Colab

Si tienes problemas para lanzar tu propia WebUI de LlaMA-Factory, consulta el cuaderno Google Colab.

Ejecutar LlaMA-Factory WebUI en Windows

Si quieres ejecutar LlaMA-Factory WebUI localmente en Windows, tienes que instalar una versión preconstruida de la biblioteca bitsandbytes. Es compatible con CUDA 11.1 a 12.2, así que selecciona la versión adecuada en función de la tuya versión CUDA.

  1. Ve a tu terminal de Windows y escribe el comando Git para clonar el repositorio GitHub de LLaMA-Factory.
  2. Instala todos los paquetes de Python necesarios.
  3. Instala la biblioteca bitsandbytes para Windows.
$ git clone https://github.com/hiyouga/LLaMA-Factory.git

$ cd LLaMA-Factory

$ pip install -e .[torch,bitsandbytes]

$ pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/download/wheels/bitsandbytes-0.41.2.post2-py3-none-win_amd64.whl
  1. Inicia la WebUI de LLaMA-Factory.
$ llamafactory-cli webui
  1. No olvides iniciar sesión en Cara Abrazada utilizando la CLI proporcionándole un token de acceso. 
$ huggingface-cli login

Ajuste fino del chat LlaMA-3 8B mediante LlaMA-Factory WebUI

No habrá codificación en esta sección. Seleccionaremos el modelo y el conjunto de datos para afinarlos, cambiaremos algunos parámetros y pulsaremos algunos botones para un entrenamiento más rápido. 

Para comprender la teoría que subyace al ajuste fino de los grandes modelos lingüísticos, consulta esta completa guía: Ajuste fino de grandes modelos lingüísticos.

Seleccionar el conjunto de datos y el modelo

Iremos afinando el unsloth/llama-3-8b-bnb-4bit en el modelo Microsoft/wiki_qa de Microsoft. El conjunto de datos contiene varias columnas, como se muestra a continuación, pero utilizaremos las columnas "pregunta" y "respuesta" para el ajuste del modelo. 

Repositorio de conjuntos de datos Wiki_QA en el Hugging Face Hub.

Fuente: microsoft/wiki_qa | Corpus de respuestas a preguntas Wiki de Microsoft

No podemos cargar el modelo de instrucciones LLaMA-3-8B completo en la versión gratuita de Google Colab. En su lugar, cargaremos la versión cuantificada en 4 bits del mismo modelo proporcionada por Unsloth. 

Para ello, selecciona el nombre del modelo "Personalizado" y pega el enlace del repositorio "unsloth/llama-3-8b-bnb-4bit" en la ruta del modelo.

Configurar el modelo y el conjunto de datos en la WebUI de LlaMA-Factory

Podemos seleccionar varios conjuntos de datos para afinar nuestro modelo. Sin embargo, para este tutorial, sólo utilizaremos el conjunto de datos "Wikiqa", que puedes seleccionar fácilmente de un conjunto de datos predefinido, como se muestra arriba. 

Ajustar los parámetros de entrenamiento 

Ajusta los argumentos de entrenamiento del modelo desplazándote hacia abajo en la página. Estableceremos los siguientes parámetros:

  • Tasa de aprendizaje a 4e-5
  • Épocas a 1.0
  • Muestras máximas a 1000 para acelerar el entrenamiento del modelo

El resto de argumentos se mantendrán con sus valores por defecto. Estos valores pueden cambiarse para modificar el comportamiento del modelo afinado. 

establecer los parámetros de entrenamiento en la WebUI de LlaMA-Factory

También tenemos la opción de cambiar LoRa y otras configuraciones relacionadas con LoRa. Para este tutorial, mantendremos todos los demás ajustes en sus valores por defecto.

Establecer la configuración de LoRA en la WebUI de LlaMA-Factory

Iniciar el proceso de formación

Desplázate más abajo en la página para ver la configuración del entrenamiento. Indica el directorio de salida y la ruta de configuración y pulsa el botón "Iniciar". El gráfico de pérdidas tardará algún tiempo en mostrarse, ya que el LlaMA-Factor descargará primero el modelo y el conjunto de datos y luego cargará ambos, lo que puede tardar al menos 5 minutos.

Iniciar el proceso de formación en la WebUI de LlaMA-Factory

Una vez que el modelo esté completamente cargado y comience el entrenamiento, empezarás a ver visualizaciones en el gráfico de pérdidas. Como podemos observar, la pérdida disminuye gradualmente con el número de pasos, lo que es estupendo.

Mitad del entrenamiento del modelo en la WebUI de LlaMA-Factory

Cuando finalice el entrenamiento, verás el mensaje de finalización en la parte inferior izquierda. Como podemos observar, la pérdida se ha reducido gradualmente y se ha estabilizado después de 45 pasos.

Finalizada la puesta a punto del modelo en la WebUI de LlaMA-Factory

Si eres un científico de datos o un desarrollador, te resultará fácil afinar tu modelo utilizando el lenguaje Python. 

Tenemos una guía detallada para técnicos que quieran entrenar LlaMA-3 aquí: Afinar Llama 3 y utilizarla localmente: Guía paso a paso.

Evaluación del modelo afinado

Para evaluar el modelo afinado, tenemos que cambiar el menú de "Entrenar" a "Chat". A continuación, ve a la "Ruta del punto de control" y carga el adoptador afinado guardado. 

estableciendo la ruta del Punto de Control en la WebUI de LlaMA-Factory

Después, haz clic en el botón "Cargar modelo" y espera unos segundos hasta que el modelo se cargue correctamente. 

cargar el modelo afinado guardado

Desplázate hacia abajo para ver el cuadro de entrada del chat y escribe una pregunta general sobre la cordillera. 

Escribiendo una simple pregunta en el cuadro de chat.

Como resultado, obtendrás una respuesta simple y directa, similar a la del conjunto de datos "wiki_qa".

Respuesta generada por el modelo Llama-3 afinado

Intentemos hacer otra pregunta. Podemos ver que el modelo tiene un rendimiento excepcional. En 30 minutos hemos afinado el modelo, lo que nos habría llevado más de 4 horas utilizando la biblioteca Transformer. Esto es asombroso. 

Respuesta generada por el modelo Llama-3 afinado

A veces, el ajuste fino no es la solución a todos los problemas del LLM. Por eso deberías leer RAG vs Ajuste fino: Un tutorial completo con ejemplos prácticos y aprende lo que mejor te funciona.

Características adicionales de LlaMA-Factory WebUI

Además de ajustar y probar modelos, el ecosistema LLaMA-Factory ofrece varias funciones básicas, como el uso de datos personalizados para el ajuste, la fusión y exportación de modelos, y el despliegue de los modelos ajustados mediante VLLM. 

Conjunto de datos personalizado

Para añadir un conjunto de datos personalizado, sólo tienes que modificar el archivo data/dataset_info.json, y estará accesible en la WebUI de LLaMA-Factory. 

Para obtener información detallada sobre el formato requerido de los archivos de conjuntos de datos y sobre cómo modificar el archivo dataset_info.json, consulta el archivo datos/README.md documentación.

Puedes elegir utilizar conjuntos de datos de los hubs Cara Abrazada o ModelScope, o puedes cargar el conjunto de datos desde tu disco local.

Archivo dataset_info.json abierto en Google Colab.

Vista previa del archivo data/dataset_info.json

Fusionar y exportar el modelo 

Podemos fusionar fácilmente el adaptador LoRA ajustado con el modelo completo y exportarlo al Hugging Face Hub haciendo clic en la pestaña "Exportar". 

Ajusta el tamaño máximo del fragmento, establece la ruta del directorio de exportación y especifica el ID del repositorio Hugging Face Hub y el dispositivo de exportación. El proceso tardará unos minutos en fusionar el modelo y subir todos los archivos del modelo al Hugging Face Hub.

Nota: La versión gratuita de Colab sólo ofrece 12 GB de RAM, mientras que para fusionar el LoRA de un modelo de 8.000 millones de parámetros se necesitan al menos 16 GB de RAM. Por tanto, esta operación no puede realizarse en la versión gratuita de Colab.

Fusionar y exportar el modelo al Hugging Face Hub

Fusionar y Experoint el modelo afinado a Hugging Face Hub

Despliega con la API estilo OpenAI y vLLM

LlaMA-Factory viene con el marco vLLM para servir y desplegar modelos. Escribiendo el siguiente comando, podemos servir el modelo Llama-3-8B-Instruct y acceder a él a través de la API Python de OpenAI o la RestAPI. 

$ API_PORT=8000 llamafactory-cli api examples/inference/llama3_vllm.yaml

Incluso puedes modificar el archivo o crear tu propio archivo .yaml para servir tu modelo afinado en producción. Todo lo que tienes que hacer es proporcionar la ruta a la carpeta del modelo localmente o en Huggin Face Hub. 

llama3_vllm.yaml file content.

Fuente: hiyouga/LLaMA-Factory (github.com)

Si buscas una solución similar de bajo código que te permita afinar los LLM, en concreto el modelo propietario GPT-4o, tenemos una guía completa para ti. Consulta nuestro tutorial paso a paso aquí: Ajuste de la GPT-4 de OpenAI: Guía paso a paso.

Conclusión

La WebUI de LLaMA-Factory simplifica el proceso tanto a principiantes como a expertos. Todo lo que tienes que hacer es ajustar algunos parámetros para afinar el modelo en un conjunto de datos personalizado. Utilizando la misma interfaz de usuario, puedes probar el modelo y exportarlo a Cara de Abrazo o guardarlo localmente. Esto te permite desplegar el modelo en producción más tarde utilizando el comando LLaMA-Factory CLI api. Es así de sencillo. 

En lugar de escribir cientos de líneas de código y solucionar problemas de ajuste, puedes conseguir resultados similares con unos pocos clics.

En este tutorial, aprendimos sobre la WebUI de LLaMA-Factory, y cómo afinar el modelo LLaMA-3-8B-Instruct en un conjunto de datos de preguntas y respuestas de Wikipedia utilizando este marco. Además, probamos el modelo afinado utilizando el menú incorporado del chatbot y exploramos las funciones adicionales que ofrece LLaMA-Factory.

Aprende a afinar los LLM utilizando Python inscribiéndote gratuitamente en el próximo Webinar Afinar tu propio modelo Llama 3.

Temas

Top Cursos DataCamp LLM

Course

Developing LLM Applications with LangChain

3 hr
8.3K
Discover how to build AI-powered applications using LLMs, prompts, chains, and agents in LangChain.
See DetailsRight Arrow
Start Course
Ver másRight Arrow
Relacionado

blog

Evaluación de un LLM: Métricas, metodologías y buenas prácticas

Aprende a evaluar grandes modelos lingüísticos (LLM) utilizando métricas clave, metodologías y mejores prácticas para tomar decisiones informadas.
Stanislav Karzhev's photo

Stanislav Karzhev

9 min

tutorial

Ajuste fino de LLaMA 2: Guía paso a paso para personalizar el modelo de lenguaje grande

Aprende a ajustar Llama-2 en Colab utilizando nuevas técnicas para superar las limitaciones de memoria y computación y hacer más accesibles los grandes modelos lingüísticos de código abierto.
Abid Ali Awan's photo

Abid Ali Awan

12 min

tutorial

Guía introductoria para el ajuste preciso de los LLM

El ajuste preciso de los grandes modelos lingüísticos (LLM) ha revolucionado el procesamiento del lenguaje natural (PLN) y ofrece capacidades sin precedentes en tareas como la traducción lingüística, el análisis del sentimiento y la generación de textos. Este enfoque transformador aprovecha modelos preentrenados como el GPT-2 y mejora su rendimiento en dominios específicos mediante el proceso de ajuste preciso.
Josep Ferrer's photo

Josep Ferrer

12 min

tutorial

Tutorial FLAN-T5: Guía y puesta a punto

Una guía completa para afinar un modelo FLAN-T5 para una tarea de respuesta a preguntas utilizando la biblioteca de transformadores, y ejecutando la inferencia optmizada en un escenario del mundo real.
Zoumana Keita 's photo

Zoumana Keita

15 min

tutorial

Cómo formar a un LLM con PyTorch

Domine el proceso de entrenamiento de grandes modelos lingüísticos con PyTorch, desde la configuración inicial hasta la implementación final.
Zoumana Keita 's photo

Zoumana Keita

8 min

tutorial

DCLM-7B de Apple: Configuración, Ejemplo de uso, Ajuste fino

Empieza a utilizar el gran modelo de lenguaje DCLM-7B de Apple y aprende a configurarlo, utilizarlo y ajustarlo para tareas específicas.
Dimitri Didmanidze's photo

Dimitri Didmanidze

9 min

See MoreSee More