Formato Alpaca Format Guide

    Formato de dataset de seguimiento de instrucciones para fine-tuning de LLM

    Conversation

    Specification

    El formato Alpaca es una estructura de dataset JSON/JSONL diseñada para el fine-tuning de seguimiento de instrucciones en modelos de lenguaje grandes. Introducido por el proyecto Alpaca de Stanford en marzo de 2023, define un esquema simple de tres campos: instruction (la descripción de la tarea o pregunta), input (contexto adicional opcional) y output (la respuesta esperada del modelo). Este formato se ha convertido en una de las estructuras más ampliamente adoptadas para datasets de fine-tuning supervisado (SFT), soportado por frameworks de entrenamiento como Axolotl, LLaMA-Factory, FastChat y la biblioteca TRL de Hugging Face.

    Cada ejemplo en un dataset en formato Alpaca representa un par único de instrucción-respuesta. El campo instruction contiene la tarea que el modelo debe realizar — puede ser una pregunta, un comando o una descripción de la salida deseada. El campo input proporciona contexto adicional cuando la instrucción por sí sola es insuficiente; por ejemplo, si la instrucción es "Resume el siguiente texto", el campo input contendría el texto a resumir. Cuando no se necesita contexto adicional, el campo input se deja como una cadena vacía. El campo output contiene la respuesta ideal que el modelo debe aprender a generar.

    La simplicidad del formato Alpaca es su principal fortaleza. A diferencia de los formatos de conversación multi-turno (ShareGPT, ChatML), Alpaca se enfoca en el seguimiento de instrucciones de un solo turno, lo que facilita su creación, validación y procesamiento. Durante el entrenamiento, la instrucción y el input se combinan en el prompt (típicamente con una plantilla como "Below is an instruction..."), y el modelo se entrena para generar el output dado este prompt. El formato es agnóstico respecto a la plantilla de prompt específica utilizada — diferentes frameworks de entrenamiento aplican sus propias plantillas durante el preprocesamiento de datos.

    When to Use Formato Alpaca

    Usa el formato Alpaca cuando crees datasets de seguimiento de instrucciones de un solo turno para fine-tuning de LLM. Es el formato ideal para fine-tuning específico de tareas donde cada ejemplo demuestra una tarea completa — responder una pregunta, generar texto, traducir, clasificar, extraer información o seguir una instrucción específica. Si tus datos de entrenamiento consisten en pares independientes de instrucción-respuesta sin contexto conversacional, el formato Alpaca es la opción más simple y con mayor soporte.

    Elige el formato Alpaca sobre ShareGPT o ChatML cuando tus ejemplos de entrenamiento sean de un solo turno (una instrucción, una respuesta) y no requieran contexto conversacional multi-turno. La simplicidad del formato hace que la creación de datos sea más rápida, la revisión de calidad más fácil y el parseo más confiable. La mayoría de los frameworks de entrenamiento principales soportan el formato Alpaca de forma nativa, y la conversión a otros formatos (ChatML, ShareGPT) es trivial cuando se necesita.

    El formato Alpaca es menos adecuado para entrenar modelos conversacionales que necesitan mantener contexto a través de múltiples turnos — usa ShareGPT o ChatML en su lugar. También carece de soporte para system prompts (instrucciones para establecer la personalidad o comportamiento del modelo), ejemplos de llamadas a herramientas/funciones o entradas multimodales. Si tus datos de entrenamiento requieren alguna de estas características, considera un formato más expresivo.

    Schema / Structure

    typescript
    // Alpaca format schema
    interface AlpacaExample {
      instruction: string;  // The task description or question
      input: string;        // Additional context (empty string if none)
      output: string;       // The expected model response
    }
    
    // Extended Alpaca format (used by some frameworks)
    interface AlpacaExtended {
      instruction: string;
      input: string;
      output: string;
      system?: string;     // Optional system prompt
      history?: [string, string][];  // Optional conversation history
    }
    Esquema TypeScript del formato Alpaca con variantes estándar y extendida

    Example Data

    json
    [
      {
        "instruction": "Classify the sentiment of the following product review.",
        "input": "The noise cancellation on these headphones is incredible. Best purchase I've made this year.",
        "output": "Positive. The review expresses strong satisfaction with the product's noise cancellation feature and overall value."
      },
      {
        "instruction": "Write a professional email declining a meeting invitation.",
        "input": "",
        "output": "Subject: Re: Meeting Request\n\nHi [Name],\n\nThank you for the meeting invitation. Unfortunately, I have a scheduling conflict at that time and won't be able to attend.\n\nWould it be possible to reschedule to later in the week? I'm available Thursday or Friday afternoon.\n\nBest regards,\n[Your Name]"
      },
      {
        "instruction": "Extract all company names mentioned in the text.",
        "input": "The partnership between Microsoft and OpenAI has reshaped the industry, while Google DeepMind continues to push boundaries in AI research. Meanwhile, Anthropic has focused on AI safety.",
        "output": "1. Microsoft\n2. OpenAI\n3. Google DeepMind\n4. Anthropic"
      },
      {
        "instruction": "Convert the following temperature from Fahrenheit to Celsius. Show your work.",
        "input": "98.6°F",
        "output": "To convert Fahrenheit to Celsius:\nC = (F - 32) × 5/9\nC = (98.6 - 32) × 5/9\nC = 66.6 × 5/9\nC = 37°C\n\n98.6°F = 37°C (normal human body temperature)"
      }
    ]
    Ejemplos en formato Alpaca que cubren tareas de clasificación, generación, extracción y razonamiento

    Ertas Support

    Ertas Data Suite soporta de forma nativa el formato Alpaca para la preparación de datos de entrenamiento. Puedes importar datasets en formato Alpaca en JSON o JSONL, aplicar redacción de PII en los campos instruction, input y output, validar la completitud y calidad de los campos, y exportar datasets procesados listos para fine-tuning. La plataforma también puede convertir entre el formato Alpaca y otros formatos de instrucciones (ShareGPT, ChatML) para coincidir con los requisitos de tu framework de entrenamiento.

    Ertas Studio acepta datasets en formato Alpaca directamente para fine-tuning en la nube, manejando la aplicación de plantillas de prompt y la tokenización automáticamente según la arquitectura del modelo objetivo.

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.