Capítulo 3: Generación de datos sintéticos
Uso de LLMs para crear datos de entrenamiento
Cuando los datos reales son escasos, los datos sintéticos generados por LLMs capaces pueden ser altamente efectivos.
El pipeline de datos sintéticos
Estrategias de generación
1. Self-Instruct
Genere nuevas instrucciones y respuestas:
def generate_instruction():
prompt = """Generate a unique instruction for a helpful AI assistant.
Examples:
- Explain quantum computing to a 10-year-old
- Write a haiku about programming
- Create a meal plan for a vegetarian athlete
New instruction:"""
return llm.generate(prompt)
def generate_response(instruction):
prompt = f"""Provide a helpful response to this instruction:
Instruction: {instruction}
Response:"""
return llm.generate(prompt)
2. Evol-Instruct
Evolucione instrucciones simples en instrucciones complejas:
def evolve_instruction(simple_instruction):
prompt = f"""Make this instruction more complex and detailed:
Simple: {simple_instruction}
Complex:"""
return llm.generate(prompt)
3. Generación específica de dominio
def generate_domain_examples(domain, count=100):
prompt = f"""Generate {count} diverse instruction-response pairs
for a {domain} AI assistant.
Format each as:
Instruction: ...
Response: ...
---
"""
return parse_pairs(llm.generate(prompt))
Control de calidad para datos sintéticos
def validate_synthetic(example, validator_model):
"""Validate synthetic example quality."""
prompt = f"""Is this a high-quality instruction-response pair?
Instruction: {example['instruction']}
Response: {example['response']}
Answer YES or NO with brief explanation:"""
result = validator_model.generate(prompt)
return "YES" in result.upper()
Mejores prácticas
- Utilice modelos potentes para la generación (GPT-4, Claude)
- Valide con un modelo diferente al generador
- Muestree y revise antes de la generación completa
- Mezcle con datos reales cuando estén disponibles
- Verifique contaminación con los conjuntos de evaluación
Puntos clave
✅ Los datos sintéticos pueden ser altamente efectivos
✅ Utilice modelos potentes para la generación
✅ Siempre filtre y valide
✅ Mezcle con datos reales cuando sea posible
✅ Evite la contaminación con los conjuntos de evaluación