Saltar al contenido principal

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:
FormatoCómo Se CargaCaso de Uso
JSONLpandas.read_json(lines=True)Entrenamiento LLM, conversaciones
CSVpandas.read_csv()Clasificación, datos tabulares
HF Dataset IDdatasets.load_dataset()Datasets remotos del Hub
Local HF Datasetload_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.
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 TareaMínimoBuenoExcelente
Text Classification1001,00010,000+
Image Classification2002,00020,000+
Language Generation505005,000+

Columnas Requeridas por Entrenador

Diferentes entrenadores requieren columnas específicas:
EntrenadorColumnas RequeridasOpcional
sft / defaulttext (o messages)-
dpoprompt, chosen, rejected-
orpoprompt, chosen, rejected-
rewardtext (chosen), rejected-
Si faltan columnas requeridas, obtendrás un error de validación claro listando las columnas faltantes y disponibles.

Formatos Especiales

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

Formato de Conversación

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.

Formatos Soportados

FormatoDetecciónColumnas de Ejemplo
AlpacaAutoinstruction, input, output
ShareGPTAutoconversations con from/value
MessagesAutomessages con role/content
Q&AAutoquestion/answer, query/response
User/AssistantAutouser, assistant
DPOAutoprompt, chosen, rejected
Plain TextAutotext
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ónDescripción
tokenizerUsa el chat template integrado del modelo (predeterminado para SFT/DPO/ORPO)
chatmlFormato estándar ChatML
zephyrFormato Zephyr/Mistral
noneSin 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

  1. Comienza pequeño - Prueba con 100 ejemplos antes de escalar
  2. Valida temprano - Verifica que tu formato funciona antes de recopilar miles de ejemplos
  3. Mantén consistente - Mismo formato en todo tu dataset
  4. Documenta todo - Anota cualquier preprocesamiento o reglas especiales
  5. Usa auto-convert - Deja que AITraining detecte y convierta formatos automáticamente

Próximos Pasos