Machine Learning Mastery→ original

Unsloth y Llama 3: cómo enseñar a un modelo a llamar a una API de forma estable mediante JSON

Machine Learning Mastery ha publicado una guía para ajustar Llama 3 a un tool calling propio con la biblioteca Unsloth. El problema es que un modelo generalista no mantiene bien un JSON estricto para una API concreta: añade texto superfluo, confunde tipos e inventa campos. La solución es un ajuste fino con QLoRA sobre ejemplos de su propio esquema. Según el proyecto, Unsloth acelera el entrenamiento hasta 2 veces y reduce el consumo de memoria hasta un 70%, de modo que un modelo de 8B se puede ajustar en una sola GPU de clase T4. • Objetivo: JSON válido y argumentos correctos en las funciones • Método: QLoRA, pesos base de 4 bits y adaptadores pequeños • Hardware: una tarjeta gráfica de 16 GB

Procesado por IA desde Machine Learning Mastery; editado por Hamidun News
Unsloth y Llama 3: cómo enseñar a un modelo a llamar a una API de forma estable mediante JSON
Fuente: Machine Learning Mastery. Collage: Hamidun News.
◐ Escuchar artículo

Machine Learning Mastery ha publicado una guía para ajustar Llama 3 a un tool calling propio con la biblioteca Unsloth en Python. El problema de partida aparece en la primera línea: Llama 3 resuelve bien una amplia gama de tareas, pero esa amplitud no basta para un agente que debe entregar de forma fiable un JSON estructurado para una API concreta. Basta un argumento omitido o una frase de más antes de la llave para que la llamada a la función falle. Del texto disponible solo conocemos el planteamiento de la tarea, así que a continuación analizamos el enfoque estándar para resolverla, en lugar de resumir el artículo línea por línea.

Por qué el modelo generalista rompe las llamadas

Cuando un agente trabaja con una API, un error de formato sale caro. El validador de esquemas rechaza la respuesta entera, y repetir la petición cuesta dinero y tiempo. Un modelo sin ajustar suele fallar siempre de las mismas maneras: texto antes y después del JSON, campos inventados, una cadena donde debería haber un número, nombres de función inexistentes. Un prompt con ejemplos reduce la proporción de estos errores, pero no los elimina, sobre todo cuando el esquema contiene decenas de funciones con parámetros anidados.

El ajuste fino resuelve el problema de otra manera. El modelo recibe cientos o miles de pares «petición del usuario → llamada correcta» en su propio esquema y deja de adivinar el formato. Ese formato pasa a ser para él la forma habitual de responder.

Qué aporta Unsloth

Unsloth es una biblioteca de código abierto para acelerar el ajuste fino de LLM. Sus autores afirman que logra una aceleración de hasta 2 veces y una reducción del consumo de memoria de vídeo de hasta el 70% frente a la pila estándar. Son cifras del propio proyecto, no mediciones independientes, y en su hardware pueden ser distintas. Lo relevante en la práctica es otra cosa: combinado con QLoRA, permite mantener los pesos base en formato de 4 bits y entrenar solo pequeños adaptadores LoRA. En ese modo, un modelo de 8000 millones de parámetros cabe en una sola tarjeta gráfica de 16 GB, por ejemplo una T4 del Colab gratuito.

Conjunto típico para esta tarea:

  • Base: Llama 3 8B Instruct
  • Método: LoRA o QLoRA con cuantización de 4 bits de los pesos base
  • Datos: pares «petición → llamada a función» en JSON, ajustados estrictamente al esquema de su API
  • Stack: Python, Unsloth, Hugging Face Datasets, TRL (SFTTrainer)
  • Hardware: una GPU con al menos 16 GB de memoria
  • Resultado: un adaptador que pesa una pequeña fracción del modelo completo; si hace falta, se fusiona con la base y se exporta a GGUF para llama.cpp u Ollama

Dónde están las trampas

El principal riesgo está en los datos. Si los ejemplos de entrenamiento están escritos con descuido, el modelo aprenderá ese descuido con la misma seguridad. La plantilla de chat durante el entrenamiento debe coincidir con la que se usa en la inferencia, incluidos los tokens de servicio de Llama 3. Una discrepancia aquí es la causa más frecuente del clásico «en el notebook funcionaba, pero en producción no».

La segunda trampa es la ausencia de ejemplos negativos. Un agente debe saber no llamar a una función cuando la pregunta no tiene relación con ella, o pedir una aclaración si falta un argumento. Sin estos casos, el modelo ajustado empezará a invocar herramientas a la menor ocasión.

El tercer problema es la evaluación. La pérdida (loss) de entrenamiento dice poco sobre la calidad del agente. Hace falta un conjunto de validación reservado y tres métricas: proporción de JSON sintácticamente válido, precisión en la elección de la función y precisión en los valores de los argumentos.

En la práctica

Empiece por poco. Reúna entre 300 y 500 ejemplos de calidad a partir de registros reales, etiquételos según el esquema y reserve sin falta entre un 10% y un 20% para la validación. Lance QLoRA sobre el modelo de 8B y compare el resultado con el Llama 3 base, al que se le dan en el prompt los mismos esquemas de funciones. Si la mejora en validez del JSON y precisión de los argumentos es notable, amplíe el dataset. Si no lo es, revise la plantilla de chat y la calidad del etiquetado.

El ajuste fino no sustituye al constrained decoding. La generación guiada por una gramática o un esquema JSON garantiza la sintaxis, mientras que el ajuste fino se encarga del sentido: qué función elegir y qué valores poner en los argumentos. Combinados, ambos enfoques dan el resultado más predecible. Además, en 2026 Llama 3 ya no es una novedad, pero la receta se puede trasladar a otros modelos que Unsloth admite.

ZK
Hamidun News
Noticias de AI sin ruido. Selección editorial diaria de más de 50 fuentes. Producto de Zhemal Khamidun, Head of AI en Alpina Digital.
✦ Unified AI Workspace

Access Frontier LLMs & Multimodal AI in One Workspace

Discover NomadNet AI (nomadnet.ai) — unified access to frontier language models, research synthesis, and multimodal workflows.

Try NomadNet AI →Launch NomadNet Agent
¿Qué te parece?
Cargando comentarios…