Skip to content

What is dataset formatting for instruction tuning (Alpaca vs ShareGPT formats)?

Beginner · 2 min read · Fine-Tuning & Adaptation

Open in study mode to save this question and track progress

Short answer: Alpaca dataset format structures single-turn training items into instruction, input, and output key-value pairs; ShareGPT dataset format structures multi-turn dialogue histories into lists of conversations objects containing from and value fields.

Detail

Supervised Fine-Tuning (SFT) requires datasets formatted into structured schemas compatible with training libraries (like HuggingFace TRL or LLaMA-Factory).

1. Alpaca Single-Turn Format

Designed for single-turn instruction-response tasks:

json
{
  "instruction": "Summarize the customer complaint.",
  "input": "Order #123 arrived broken...",
  "output": "Customer received a damaged shipment for order #123."
}

2. ShareGPT Multi-Turn Format

Designed for complex multi-turn conversation logs:

json
{
  "conversations": [
    {"from": "human", "value": "Write a SQL query to fetch total users."},
    {"from": "gpt", "value": "SELECT count(*) FROM users;"},
    {"from": "human", "value": "Now filter by active users only."}
  ]
}

Example

Python dataset converter from Alpaca format to ShareGPT format:

python
def convert_alpaca_to_sharegpt(alpaca_item: dict) -> dict:
    user_content = alpaca_item["instruction"]
    if alpaca_item.get("input"):
        user_content += f"\nContext:\n{alpaca_item['input']}"

    return {
        "conversations": [
            {"from": "human", "value": user_content},
            {"from": "gpt", "value": alpaca_item["output"]}
        ]
    }

alpaca_example = {
    "instruction": "Fix code bugs.",
    "input": "def add(a,b) return a+b",
    "output": "def add(a, b): return a + b"
}
print(convert_alpaca_to_sharegpt(alpaca_example))

Interview tips

  • Discuss loss masking in ShareGPT formatting: masking loss computation on human turns so the gradient updates calculate cross-entropy loss exclusively on gpt assistant responses.
  • Connect dataset formats to ChatML system templates.

Related Concepts


⬅ Back to Fine-Tuning and Adaptation · All topics