What is Synthetic Data?

    Datos de entrenamiento generados artificialmente creados usando modelos de frontera, sistemas basados en reglas o técnicas de aumento de datos para complementar o reemplazar datos del mundo real para el fine-tuning de modelos de ML.

    Definition

    Los datos sintéticos son datos de entrenamiento generados artificialmente en lugar de recopilados de observaciones del mundo real. En el contexto del fine-tuning de LLM, los datos sintéticos se refieren más comúnmente a pares de entrada-salida producidos por un modelo de frontera más grande (como GPT-4o o Claude) que luego se usan para entrenar un modelo más pequeño y específico para una tarea. Este enfoque — a veces llamado destilación de datos o destilación de API — se ha convertido en el método dominante para crear datasets de fine-tuning porque produce ejemplos de alta calidad y relevantes para la tarea a una fracción del costo de la anotación manual.

    Los datos sintéticos vienen en varias formas: datos generados por modelos (pedir a un modelo de frontera que produzca ejemplos), datos basados en reglas (usar plantillas y transformaciones programáticas para crear ejemplos estructurados), y datos aumentados (modificar ejemplos reales mediante paráfrasis, inyección de ruido o variación de formato para expandir un pequeño dataset semilla). El auge de modelos poderosos que siguen instrucciones ha hecho que los datos sintéticos generados por modelos sean el enfoque más práctico — un solo ingeniero puede generar miles de ejemplos de entrenamiento de alta calidad en horas en lugar de las semanas o meses requeridos para la anotación humana. Combinados con filtrado de calidad y deduplicación, los pipelines de datos sintéticos se han convertido en una capacidad central para cualquier equipo que haga fine-tuning en producción.

    Why It Matters

    El mayor cuello de botella en el fine-tuning casi nunca es el cómputo — son los datos. La mayoría de las organizaciones tienen un puñado de ejemplos del comportamiento que desean pero ni de lejos los miles de ejemplos de alta calidad necesarios para un entrenamiento LoRA efectivo. La generación de datos sintéticos resuelve este problema de escasez directamente: dados 50 ejemplos semilla y un prompt de generación bien elaborado, puedes expandir a 5,000 ejemplos de entrenamiento diversos en una sola tarde.

    Más allá del volumen, los datos sintéticos permiten flujos de trabajo de destilación donde la inteligencia de modelos de frontera se comprime en modelos más pequeños y desplegables. En lugar de pagar $0.01 por llamada a la API de GPT-4o en producción, generas datos de entrenamiento una vez (a un costo único), ajustas un modelo de 7B parámetros y lo sirves localmente a un costo marginal casi nulo. Los datos sintéticos también proporcionan una alternativa segura en términos de privacidad a los datos reales de usuarios — puedes generar ejemplos que capturan los patrones estadísticos de datos sensibles sin exponer registros reales de clientes, información médica o transacciones financieras. Para industrias reguladas, esta distinción entre datos sintéticos y reales puede determinar si un proyecto de fine-tuning es legalmente viable.

    How It Works

    Un pipeline típico de datos sintéticos tiene cuatro etapas: generación, filtrado, deduplicación y formateo. En la fase de generación, defines un system prompt que describe el formato de salida deseado y los estándares de calidad, luego alimentas prompts de entrada diversos a un modelo de frontera. Las técnicas de generación comunes incluyen prompting directo (pedir al modelo que produzca ejemplos completos), expansión de semillas (proporcionar algunos ejemplos reales y pedir al modelo que genere otros similares pero distintos), y extracción de cadena de pensamiento (hacer que el modelo resuelva problemas paso a paso, luego usar tanto el razonamiento como la respuesta final como datos de entrenamiento).

    Después de la generación, el filtrado de calidad elimina salidas alucinadas, inconsistentes o de baja calidad — esto puede hacerse con un prompt de validación separado, verificaciones basadas en reglas (validez de JSON, restricciones de longitud, presencia de campos requeridos) o revisión humana puntual de una muestra aleatoria. La deduplicación elimina ejemplos casi duplicados que causarían que el modelo ajustado sobreajuste patrones repetidos. Finalmente, los ejemplos curados se formatean en el formato de entrenamiento objetivo (típicamente JSONL con mensajes estilo conversación) y se dividen en conjuntos de entrenamiento y validación. Todo el pipeline es iterativo: generas un lote, evalúas el modelo ajustado, identificas puntos débiles y generas ejemplos específicos para llenar esas brechas.

    python
    import json
    import random
    from openai import OpenAI
    
    client = OpenAI()
    training_data = []
    seed_examples = load_seed_examples("seeds.jsonl")  # 50-200 real examples
    
    SYSTEM_PROMPT = """Generate a realistic customer support message and an ideal
    agent response. The message should be about one of these topics:
    billing, technical issues, account access, feature requests.
    Respond in JSON: {"user": "...", "assistant": "..."}"""
    
    for i in range(5000):
        # Inject a random seed example for style guidance
        seed = random.choice(seed_examples)
        user_prompt = f"Example style reference:\n{seed}\n\nNow generate a new, unique example."
    
        response = client.chat.completions.create(
            model="gpt-4o",
            messages=[
                {"role": "system", "content": SYSTEM_PROMPT},
                {"role": "user", "content": user_prompt}
            ],
            temperature=0.9,  # High temp for diversity
            response_format={"type": "json_object"}
        )
    
        try:
            pair = json.loads(response.choices[0].message.content)
            training_data.append({
                "messages": [
                    {"role": "user", "content": pair["user"]},
                    {"role": "assistant", "content": pair["assistant"]}
                ]
            })
        except (json.JSONDecodeError, KeyError):
            continue  # Skip malformed outputs
    
    # Save for fine-tuning in Ertas Vault
    with open("synthetic_support_data.jsonl", "w") as f:
        for item in training_data:
            f.write(json.dumps(item) + "\n")
    
    print(f"Generated {len(training_data)} training examples")
    Generación de datos de entrenamiento sintéticos de soporte al cliente usando GPT-4o con prompting guiado por semillas para diversidad, listos para importar en Ertas Vault.

    Example Use Case

    Un ingeniero de ML en una startup fintech necesita ajustar un modelo para categorización de transacciones en 30 categorías de comerciantes. Solo tiene 200 transacciones reales etiquetadas manualmente. Usando GPT-4o, genera 5,000 descripciones de transacciones sintéticas con etiquetas de categoría proporcionando los 200 ejemplos reales como semillas e instruyendo al modelo para producir variaciones diversas cubriendo casos límite — transacciones internacionales, servicios de suscripción, comerciantes ambiguos y descripciones parciales. Después de filtrar 300 ejemplos de baja calidad y deduplicar, tiene 4,200 pares de entrenamiento limpios. El adaptador LoRA resultante, ajustado sobre Qwen 2.5 7B, logra un 94% de precisión en categorización — solo 2% por debajo de la precisión de GPT-4o pero a 1/100 del costo de inferencia. Costo total de generación de datos sintéticos: aproximadamente $15 en llamadas a la API.

    Key Takeaways

    • Los datos sintéticos resuelven el problema de escasez de datos usando modelos de frontera para generar miles de ejemplos de entrenamiento a partir de un pequeño conjunto semilla.
    • Los datos sintéticos generados por modelos permiten flujos de trabajo de destilación — comprimiendo la calidad de modelos de frontera en modelos más pequeños y desplegables localmente.
    • El filtrado de calidad y la deduplicación son pasos esenciales post-generación; los datos sintéticos sin filtrar degradan el rendimiento del fine-tuning.
    • Los datos sintéticos proporcionan una alternativa segura en privacidad a los datos reales de usuarios, crítica para industrias reguladas como salud y finanzas.
    • La generación iterativa — ajustar, evaluar, generar ejemplos específicos para puntos débiles — produce mejores resultados que la generación masiva de una sola vez.

    How Ertas Helps

    Ertas Vault está diseñado para manejar el ciclo de vida completo de datos sintéticos. Los equipos pueden importar datasets JSONL generados, ejecutar verificaciones de validación integradas para detectar errores de formato y ejemplos malformados, deduplicar entradas casi idénticas que causarían sobreajuste, y versionar datasets a medida que iteran a través de rondas de generación. El explorador de datos de Vault permite inspeccionar ejemplos individuales, etiquetar niveles de calidad y filtrar subconjuntos para experimentos de fine-tuning específicos — transformando la realidad desordenada de los pipelines de datos sintéticos en un flujo de trabajo estructurado y reproducible.

    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.