Datasets y Formatos
Tu modelo es tan bueno como tus datos. Aquí está cómo formatearlos correctamente.
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.
CSV (Más Común)
Simple y universal. Funciona para clasificación, regresión y tareas básicas.
text,label
"This product is amazing",positive
"Terrible experience",negative
"Average quality",neutral
JSON/JSONL
Mejor para datos complejos, conversaciones y estructuras anidadas.
{"messages": [
{"role": "user", "content": "What is Python?"},
{"role": "assistant", "content": "Python is a programming language"}
]}
Carpetas para Imágenes
Organiza imágenes por categoría:
dataset/
cats/
cat1.jpg
cat2.jpg
dogs/
dog1.jpg
dog2.jpg
Básicos de Calidad de Datos
Balancea Tus Clases
Mal:
- 1000 ejemplos positivos
- 50 ejemplos negativos
Bueno:
- 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 | - |
Si faltan columnas requeridas, obtendrás un error de validación claro listando las columnas faltantes y disponibles.
DPO/ORPO (Datos de Preferencia)
{
"prompt": "Explain gravity",
"chosen": "Gravity is a force that attracts objects...",
"rejected": "gravity is thing that make stuff fall"
}
Token Classification
John B-PERSON
Smith I-PERSON
visited O
Paris B-LOCATION
Las conversaciones esperan listas de objetos {role, content}:
{"messages": [
{"role": "user", "content": "Hello"},
{"role": "assistant", "content": "Hi there!"}
]}
O formato ShareGPT (detectado y convertido automáticamente):
{"conversations": [
{"from": "human", "value": "Hello"},
{"from": "assistant", "value": "Hi there!"}
]}
Conversión Automática de Dataset
AITraining puede detectar y convertir automáticamente formatos comunes de dataset. Sin preprocesamiento manual necesario.
| 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 |
El mapeo de columnas es opcional - úsalo para convertir nombres de columnas variados al formato esperado.
Usando Auto-Conversión
aitraining llm --train \
--model google/gemma-3-270m \
--data-path tatsu-lab/alpaca \
--auto-convert-dataset \
--chat-template gemma3 \
--trainer sft
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) |
Los templates se auto-seleccionan basándose en tu entrenador, o especifica manualmente:
--chat-template tokenizer # Usa template del modelo (recomendado)
--chat-template chatml # Fuerza ChatML
--chat-template none # Deshabilita para 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:
aitraining llm --train \
--model google/gemma-3-270m \
--data-path ./qa_pairs.jsonl \
--auto-convert-dataset \
--conversation-extension 3 \
--trainer sft
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
Próximos Pasos