Saltar al contenido principal

Capítulo 1: Formatos de conjuntos de datos

Estructuración de datos para fine-tuning​

Diferentes formatos cumplen diferentes propósitos. Comprenderlos le ayuda a elegir y preparar los datos de manera efectiva.


Formatos comunes​

1. Formato Alpaca​

Instrucción de un solo turno:

{
"instruction": "Summarice el siguiente texto",
"input": "The quick brown fox jumps over the lazy dog...",
"output": "A fox jumps over a dog."
}
# Alpaca template
template = """### Instruction:
{instruction}

### Input:
{input}

### Response:
{output}"""

2. Formato ShareGPT​

Conversaciones de varios turnos:

{
"conversations": [
{"from": "system", "value": "Usted es un asistente útil."},
{"from": "human", "value": "¿Qué es Python?"},
{"from": "gpt", "value": "Python es un lenguaje de programación..."},
{"from": "human", "value": "¿Cómo lo instalo?"},
{"from": "gpt", "value": "Puede descargarlo desde python.org..."}
]
}

3. Simple Completion​

Texto plano para pre-entrenamiento continuo:

{"text": "Documento completo o párrafo de texto..."}

Plantillas de chat​

Los modelos esperan formatos específicos. Utilice la plantilla del tokenizer:

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.1-8B-Instruct")

messages = [
{"role": "system", "content": "You are helpful."},
{"role": "user", "content": "Hello!"},
{"role": "assistant", "content": "Hi! How can I help?"},
]

text = tokenizer.apply_chat_template(messages, tokenize=False)
print(text)

Conversión de formatos​

def alpaca_to_messages(example):
"""Convert Alpaca format to messages."""
messages = []

if example.get("input"):
user_content = f"{example['instruction']}\n\n{example['input']}"
else:
user_content = example["instruction"]

messages.append({"role": "user", "content": user_content})
messages.append({"role": "assistant", "content": example["output"]})

return {"messages": messages}

# Apply to dataset
dataset = dataset.map(alpaca_to_messages)

Puntos clave​

✅ Alpaca: instrucciones de un solo turno
✅ ShareGPT: conversaciones de varios turnos
✅ Utilice siempre la plantilla de chat del modelo
✅ La consistencia en el formato es fundamental


Continuar al Capítulo 2 →