Datasets y Formatos
Tu modelo es tan bueno como tus datos. Aquí está cómo formatearlos correctamente.Formatos de Archivo Soportados
AITraining soporta múltiples fuentes de datos:| Formato | Cómo Se Carga | Caso de Uso |
|---|---|---|
| JSONL | pandas.read_json(lines=True) | Entrenamiento LLM, conversaciones |
| CSV | pandas.read_csv() | Clasificación, datos tabulares |
| HF Dataset ID | datasets.load_dataset() | Datasets remotos del Hub |
| Local HF Dataset | load_from_disk() | Datasets pre-procesados |
Los archivos Parquet son soportados indirectamente a través de datasets HuggingFace que exponen formato Parquet.
Formatos Comunes
CSV (Más Común)
Simple y universal. Funciona para clasificación, regresión y tareas básicas.JSON/JSONL
Mejor para datos complejos, conversaciones y estructuras anidadas.Carpetas para Imágenes
Organiza imágenes por categoría:Básicos de Calidad de Datos
Balancea Tus Clases
Mal:- 1000 ejemplos positivos
- 50 ejemplos negativos
- 500 ejemplos positivos
- 500 ejemplos negativos
Limpia Tus Datos
Elimina:- Duplicados
- Valores vacíos
- Errores obvios
- Formato inconsistente
Directrices de Tamaño
| Tipo de Tarea | Mínimo | Bueno | Excelente |
|---|---|---|---|
| Text Classification | 100 | 1,000 | 10,000+ |
| Image Classification | 200 | 2,000 | 20,000+ |
| Language Generation | 50 | 500 | 5,000+ |
Columnas Requeridas por Entrenador
Diferentes entrenadores requieren columnas específicas:| Entrenador | Columnas Requeridas | Opcional |
|---|---|---|
sft / default | text (o messages) | - |
dpo | prompt, chosen, rejected | - |
orpo | prompt, chosen, rejected | - |
reward | text (chosen), rejected | - |
Formatos Especiales
DPO/ORPO (Datos de Preferencia)
Token Classification
Formato de Conversación
Las conversaciones esperan listas de objetos{role, content}:
Soporte para Rol Tool
AITraining soporta el roltool para datos de entrenamiento con llamadas a funciones:
Compatibilidad automática: Para modelos que no soportan el rol
tool nativamente (como Gemma), AITraining convierte automáticamente los mensajes tool a mensajes user con el prefijo [Tool Result]. Los modelos con soporte nativo de tool (Llama 3.1+, Qwen, etc.) usan su formato nativo.Soporte de formato legado: El rol
function antiguo de OpenAI (usado antes de que se introdujera tool) también es soportado y manejado de forma idéntica al rol tool.Tool Calls (Llamadas a Funciones)
AITraining también soporta el campotool_calls para entrenar modelos a hacer llamadas a funciones:
Deteccion inteligente de formato: AITraining detecta si tu modelo soporta
tool_calls nativamente:- Qwen, Llama 3.1+: Usa formato nativo
<tool_call> - Gemma, modelos antiguos: Serializa tool calls como JSON formato OpenAI en el contenido
Transformacion de Formato de Tool Call
Para modelos sin soporte nativo de herramientas, AITraining serializa los tool calls como JSON formato OpenAI agregado al contenido del asistente: Entrada (mensaje con campo tool_calls):El formato serializado preserva la estructura completa de OpenAI con los campos
id, type y function. Esto coincide con el formato descrito en las instrucciones del system prompt para mejor aprendizaje del modelo.Manejo de Alternancia de Mensajes
Algunos modelos (Gemma, Mistral) requieren alternancia estricta user/assistant. AITraining corrige automáticamente problemas comunes: Mensajes consecutivos del mismo rol se fusionan:Estas correcciones solo se aplican cuando el tokenizador rechaza el formato original. Los modelos que aceptan orden flexible de mensajes mantienen la estructura original.
Conversión Automática de Dataset
AITraining puede detectar y convertir automáticamente formatos comunes de dataset. Sin preprocesamiento manual necesario.Formatos Soportados
| Formato | Detección | Columnas de Ejemplo |
|---|---|---|
| Alpaca | Auto | instruction, input, output |
| ShareGPT | Auto | conversations con from/value |
| Messages | Auto | messages con role/content |
| Q&A | Auto | question/answer, query/response |
| User/Assistant | Auto | user, assistant |
| DPO | Auto | prompt, chosen, rejected |
| Plain Text | Auto | text |
Usando Auto-Conversión
Chat Templates
Los chat templates formatean tus datos en la estructura de conversación esperada del modelo.| Opción | Descripción |
|---|---|
tokenizer | Usa el chat template integrado del modelo (predeterminado para SFT/DPO/ORPO) |
chatml | Formato estándar ChatML |
zephyr | Formato Zephyr/Mistral |
none | Sin template (texto plano) |
El renderizador unificado aplica templates consistentemente. Las rutas de template legacy todavía son soportadas para compatibilidad hacia atrás.
Extensión de Conversación
Fusiona ejemplos de turno único en conversaciones multi-turno:Salida del Dataset Procesado
Después del procesamiento, tu dataset tendrá:| Columna | Descripción |
|---|---|
text | Datos de entrenamiento formateados con plantilla de chat aplicada |
_original_messages | Columna de mensajes original (preservada para inspección) |
_original_* | Otras columnas originales renombradas con prefijo |
Las columnas originales se renombran a
_original_* para prevenir que otras herramientas auto-detecten y usen incorrectamente datos no procesados.Guardando Datos Procesados
Controla dónde se guardan los datos procesados con--save-processed-data:
| Opción | Comportamiento |
|---|---|
auto | Guardar localmente; también subir a Hub si la fuente era de Hub |
local | Guardar solo en {project}/data_processed/ |
hub | Subir solo a Hub como dataset privado |
both | Guardar localmente y subir a Hub |
none | No guardar datos procesados |
Consejos Rápidos
- Comienza pequeño - Prueba con 100 ejemplos antes de escalar
- Valida temprano - Verifica que tu formato funciona antes de recopilar miles de ejemplos
- Mantén consistente - Mismo formato en todo tu dataset
- Documenta todo - Anota cualquier preprocesamiento o reglas especiales
- Usa auto-convert - Deja que AITraining detecte y convierta formatos automáticamente