Lección 10 · 5 min · Gratis

Ajuste fino de Llama 3 para resumen de texto

Esta receta te guía a través del proceso de ajuste fino de un modelo Meta Llama 3 para la tarea de resumen de texto usando el dataset samsum en una sola GPU.

Estas son las instrucciones para usar el script de ajuste fino canónico en el paquete llama-cookbook.

Requisitos

Asegúrate de haber instalado el paquete llama-cookbook.

Para ejecutar el ajuste fino en una sola GPU, utilizaremos dos paquetes:

  1. PEFT para usar el ajuste fino eficiente en parámetros.
  2. bitsandbytes para la cuantificación int8.

¿Cómo ejecutarlo?

NOTA Para ejecutar el ajuste fino con QLORA, asegúrate de configurar --peft_method lora y --quantization 4bit --quantization_config.quant_type nf4.

FSDP_CPU_RAM_EFFICIENT_LOADING=1 python finetuning.py  --use_peft --peft_method lora --quantization 8bit --model_name /path_of_model_folder/8B --output_dir Path/to/save/PEFT/model

Los argumentos usados en el comando anterior son:

  • --use_peft bandera booleana para habilitar los métodos PEFT en el script
  • --peft_method para especificar el método PEFT, aquí usamos lora, otras opciones son llama_adapter, prefix.
  • --quantization bandera de cadena para habilitar la cuantificación de 8 bits o 4 bits

[!NOTE] En caso de que estés usando una máquina con varias GPU, asegúrate de hacer visible solo una de ellas usando export CUDA_VISIBLE_DEVICES=GPU:id.

¿Cómo ejecutarlo con diferentes datasets?

Actualmente se admiten 3 datasets de código abierto que se pueden encontrar en el archivo de configuración de Datasets. También puedes usar tu dataset personalizado (más información aquí).

  • grammar_dataset: usa este notebook para obtener y procesar los datasets Jfleg y C4 200M para la verificación gramatical.

  • alpaca_dataset: para obtener estos datos de código abierto, descarga el alpaca.json a la carpeta dataset.

wget -P ../../src/llama_cookbook/datasets https://raw.githubusercontent.com/tatsu-lab/stanford_alpaca/main/alpaca_data.json
  • samsum_dataset

para ejecutar con cada uno de los datasets, configura la bandera dataset en el comando como se muestra a continuación:

# grammar_dataset

python -m finetuning.py  --use_peft --peft_method lora --quantization 8bit --dataset grammar_dataset --model_name /path_of_model_folder/8B --output_dir Path/to/save/PEFT/model

# alpaca_dataset

python -m finetuning.py  --use_peft --peft_method lora --quantization 8bit  --dataset alpaca_dataset --model_name /path_of_model_folder/8B --output_dir Path/to/save/PEFT/model


# samsum_dataset

python -m finetuning.py  --use_peft --peft_method lora --quantization 8bit  --dataset samsum_dataset --model_name /path_of_model_folder/8B --output_dir Path/to/save/PEFT/model

Conteo de FLOPS y Perfilado de Pytorch

Para ayudar con el esfuerzo de benchmarking, estamos agregando soporte para contar los FLOPS durante el proceso de ajuste fino. Puedes lograr esto configurando --flop_counter al lanzar tu ajuste fino de GPU única/múltiple. Usa --flop_counter_start para elegir qué paso contar los FLOPS. Se recomienda permitir una etapa de calentamiento antes de usar el contador de FLOPS.

De manera similar, puedes configurar la bandera --use_profiler y pasar una ruta de salida de perfilado usando --profiler_dir para capturar los rastros de perfil de tu modelo usando el perfilador de PyTorch. Para obtener un resultado de perfilado preciso, el perfilador de pytorch requiere una etapa de calentamiento y la configuración actual es wait=1, warmup=2, active=3, por lo tanto, el perfilador comenzará el perfilado después del paso 3 y registrará los siguientes 3 pasos. Por lo tanto, para usar el perfilador de pytorch, el --max-train-step debe ser mayor que 6. El perfilador de pytorch sería útil para fines de depuración. Sin embargo, --flop_counter y --use_profiler no se pueden usar al mismo tiempo para garantizar la precisión de la medición.

Lección del curso «Llama Cookbook (getting started)» de Meta, publicado con licencia MIT. Traducción y adaptación al español de IA con Clase. IA con Clase no está afiliado a Meta. Ver el original · Licencia
Esta lección es gratuita. El resto del curso se abre con la Membresía de IA con Clase, que incluye todos los cursos del catálogo. Ver precios