Compartir a través de


Cómo ajustar con precisión el modelo con AI Toolkit para VS Code

AI Toolkit for VS Code (AI Toolkit) es una extensión VS Code que le permite descargar, probar, ajustar y desplegar modelos de IA con sus aplicaciones o en la nube. Para obtener más información, consulte la información general del kit de herramientas de IA.

Nota:

Encontrará documentación adicional y tutoriales para AI Toolkit para VS Code en la documentación de VS Code: AI Toolkit para Visual Studio Code. Encontrará instrucciones sobre Playground, trabajar con modelos de IA, ajustar modelos locales y basados en la nube, etc.

En este artículo, aprenderá a:

  • Configurar un entorno local para realizar ajustes.
  • Ejecutar un trabajo de ajuste.

Requisitos previos

  • Completado Comenzar a utilizar AI Toolkit for Visual Studio Code.
  • Si usa un ordenador Windows para ajustarlo, instale Windows Subsystem for Linux (WSL). Consulte Instalación de Linux en Windows con WSL para obtener WSL y una distribución predeterminada de Linux instalada. La distribución de WSL Ubuntu 18.04 o posterior debe instalarse y establecerse como la distribución predeterminada antes de usar el AI Toolkit for VS Code. Obtenga información sobre cómo cambiar la distribución predeterminada.
  • Si usa un ordenador Linux, debe usar una distribución de Ubuntu 18.04 o superior.
  • El uso del modelo en este tutorial requiere GPUs NVIDIA para el ajuste fino. Hay otros modelos en el catálogo que se pueden cargar en dispositivos Windows mediante CPU o NPUs.

Sugerencia

Asegúrese de tener los controladores de NVIDIA más recientes instalados en el ordenador. Si se le da una opción entre controladores Ready Driver o un controlador Studio, descargue el último.

Deberá conocer el modelo de la GPU para descargar los controladores correctos. Para averiguar qué GPU tiene, consulte Cómo comprobar la GPU y por qué es importante.

Configuración de entorno

Para comprobar si tiene todos los requisitos previos necesarios para ejecutar trabajos de ajuste en el dispositivo local o en la VM en la nube, abra la paleta de comandos (Shift+Control+P) y busque Kit de herramientas de IA: validar los requisitos previos del entorno.

Si el dispositivo local pasa las comprobaciones de validez, el botón Configurar entorno de WSL se habilitará para que lo seleccione. Esto instalará todas las dependencias necesarias para ejecutar trabajos de ajuste.

Máquina virtual en la nube

Si el equipo local no tiene ningún dispositivo de GPU de Nvidia, es posible ajustarlo en una VM en la nube (tanto Windows como Linux) con una GPU de Nvidia (si tiene cuota). En Azure, puede ajustar las siguientes series de VM:

  • Serie NCasT4_v3
  • Serie NC A100 v4
  • Serie ND A100 v4
  • Serie NCads H100 v5
  • Serie NCv3
  • Serie NVadsA10 5

Sugerencia

VS Code permite realizar la conexión remota a la VM en la nube. Si no está familiarizado con esta característica, lea el tutorial Desarrollo remoto a través de SSH

Ajuste con precisión de un modelo

AI Toolkit utiliza un método denominado QLoRA, que combina la cuantización y la adaptación de bajo rango (LoRA) para ajustar los modelos con tus propios datos. Obtenga más información sobre QLoRA en QLoRA: ajuste eficiente de LLM cuantificados.

Paso 1: Configuración del proyecto

Para iniciar una nueva sesión de ajuste preciso mediante QLoRA, seleccione el elemento Ajuste preciso en la sección Herramientas en el panel izquierdo del kit de herramientas de IA.

  1. Para empezar, escriba un nombre de proyecto único y una ubicación del proyecto. Se creará una nueva carpeta con el nombre de proyecto especificado en la ubicación que seleccionó para almacenar los archivos del proyecto.

  2. A continuación, seleccione un modelo (por ejemplo, Phi-3-mini-4k-instruct) en el catálogo de modelos y, a continuación, seleccione Configurar proyecto:

    Ajuste de la configuración del proyecto

  3. A continuación, se le pedirá que configure las opciones del proyecto de ajuste. Asegúrese de que la casilla de verificación Ajustar localmente está activada (en el futuro, la extensión VS Code le permitirá descargar el ajuste en la nube):

    Ajustes con precisión

Configuración de la inferencia del modelo

Hay dos opciones disponibles en la sección Inferencia del modelo:

Configuración Descripción
Nombre del entorno de Conda Nombre del entorno de Conda que se va a activar y usar para el proceso de ajuste. Este nombre debe ser único en la instalación de Conda.
Plantilla de consulta de inferencia Plantilla de consulta que se utilizará en el momento de la inferencia. Asegúrese de que coincide con la versión ajustada.

Configuración de datos

Las siguientes opciones están disponibles en la sección Datos para configurar la información del conjunto de datos:

Configuración Descripción
Nombre del conjunto de datos Nombre del conjunto de datos que se va a usar para ajustar el modelo.
División de entrenamiento El nombre de la división de entrenamiento para su conjunto de datos.
Tipo de conjunto de datos El tipo de conjunto de datos que se va a usar.
Columnas de texto Los nombres de las columnas del conjunto de datos para completar la consulta de entrenamiento.
Plantilla de texto Plantilla de consulta que se va a usar para ajustar el modelo. Esto usa tokens de reemplazo de las columnas de texto.
Estrategia de Corpus Indica si desea unir las muestras o procesarlas línea por línea.
Longitud máxima del origen El número máximo de tokens por muestra de entrenamiento.
Relleno a longitud máxima Agregue un token PAD a la muestra de entrenamiento hasta alcanzar la cantidad máxima de tokens.

Ajustes con precisión

Las siguientes opciones están disponibles en la sección Ajustar para configurar aún más el proceso de ajuste:

Configuración Tipo de datos Valor predeterminado Descripción
Calcular Dtype Cadena bfloat16 Tipo de datos para pesos del modelo y pesos del adaptador. Para un modelo cuantificado de 4 bits, también es el tipo de datos de cálculo para los módulos cuantificados. Valores válidos: bfloat16, float16 o float32.
Tipo cuantificado Cadena nf4 Tipo de datos de cuantificación que se utilizará. Valores válidos: fp4 o nf4.
Doble cuantificación Booleano Si se debe utilizar la cuantificación anidada donde las constantes de cuantificación de la primera cuantificación se cuantifican nuevamente.
Lora r Entero 64 Dimensión de atención de Lora.
Lora alpha Flotante 16 Parámetro alfa para el escalado de Lora.
Abandono de Lora Flotante 0,1 Probabilidad de la eliminación de las capas de Lora.
Tamaño del conjunto de datos de evaluación Flotante 1024 El tamaño del conjunto de datos de validación.
Semilla Entero 0 Una propagación aleatoria para la inicialización.
Propagación de datos Entero 42 Una propagación aleatoria para usar con muestras de datos.
Por tamaño de lote de entrenamiento de dispositivo Entero 1 El tamaño del lote por GPU para el entrenamiento.
Tamaño de lote por valor de dispositivo Entero 1 Instale todos los requisitos previos y dependencias.
Pasos de acumulación de gradiente Entero 4 Número de pasos de actualizaciones para acumular los gradientes para, antes de realizar un paso de actualización o versiones anteriores.
Habilitación del punto de comprobación de gradiente Booleano Usar los puntos de comprobación de gradiente. Se recomienda para ahorrar memoria.
Velocidad de aprendizaje Flotante 0.0002 Velocidad de aprendizaje inicial para AdamW.
Pasos máximos Entero -1 Si se establece en un número positivo, el número total de pasos de entrenamiento que se van a realizar. Esto invalida num_train_epochs. En caso de usar un conjunto de datos iterable finito, el entrenamiento puede detenerse antes de alcanzar el número establecido de pasos cuando se agoten todos los datos.

Paso 2: Generación del proyecto

Una vez establecidos todos los parámetros, haga clic en Generar proyecto. Esto realizará las siguientes acciones:

  • Iniciar la descarga del modelo.
  • Instalar todos los requisitos previos y dependencias.
  • Cree el área de trabajo de VS Code.

Cuando se descarga el modelo y el entorno está listo, puede iniciar el proyecto desde el kit de herramientas de IA seleccionando Volver a iniciar la ventana en el área de trabajo en la página Paso 3: generación del proyecto . Se iniciará una nueva instancia de VS Code conectada al entorno.

Nota:

Es posible que se le pida que instale extensiones adicionales, como Flujo de avisos para VS Code. Para obtener una experiencia de ajuste óptima, instálelas para continuar.

La ventana reiniciada tendrá en su área de trabajo las siguientes carpetas:

Nombre de carpeta Descripción
conjunto de datos Esta carpeta contiene el conjunto de datos de la plantilla (dataset-classification.json: archivo de líneas JSON que contiene frases y tonos). Si configura el proyecto para que use un archivo local o un conjunto de datos de Hugging Face, puede ignorar esta carpeta.
ajuste Archivos de configuración de Olive para ejecutar el trabajo de ajuste. Olive es una herramienta de optimización de modelos compatible con el hardware y fácil de usar que combina técnicas líderes del sector de compresión, optimización y compilación de modelos. Dado un modelo y el hardware de destino, Olive compone las técnicas de optimización más adecuadas para generar los modelos más eficaces de inferencia en la nube o perimetral, teniendo en cuenta al mismo tiempo un conjunto de restricciones, como la precisión y la latencia.
inferencia Ejemplos de código para la inferencia con un modelo ajustado.
infraestructura Para el ajuste y la inferencia con el servicio Azure Container Apps (próximamente). Esta carpeta contiene los archivos de configuración y Bicep para aprovisionar el servicio Azure Container Apps.
configuración Archivos usados para configurar el entorno de Conda. Por ejemplo, los requisitos de pip.

Paso 3: Ejecución de un trabajo de ajuste

Ahora puede ajustar el modelo mediante:

# replace {conda-env-name} with the name of the environment you set
conda activate {conda-env-name}
python finetuning/invoke_olive.py 

Importante

El tiempo necesario para el ajuste dependerá del tipo de GPU, el número de GPU, el número de pasos y el número de épocas. La operación puede llevar mucho tiempo (por ejemplo, puede tardar varias horas).

Si solo desea realizar una prueba rápida, considere la posibilidad de reducir el número de pasos máximos del archivo olive-config.json. Se usa el punto de comprobación y, por tanto, la siguiente ejecución de ajuste continuará desde el último punto de control.

Los puntos de comprobación y el modelo final se guardarán en la carpeta models del proyecto.

Paso 4: Integración del modelo ajustado en la aplicación

A continuación, ejecute la inferencia con el modelo ajustado a través de chats en una console, web browser o prompt flow.

cd inference

# Console interface.
python console_chat.py

# Web browser interface allows to adjust a few parameters like max new token length, temperature and so on.
# User has to manually open the link (e.g. http://127.0.0.1:7860) in a browser after gradio initiates the connections.
python gradio_chat.py

Sugerencia

Las instrucciones también están disponibles en la página README.md, que se pueden encontrar en la carpeta del proyecto.