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 progressShort 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
humanturns so the gradient updates calculate cross-entropy loss exclusively ongptassistant responses. - Connect dataset formats to ChatML system templates.
Related Concepts
- [[What is weight merging in LoRA and why does it eliminate inference latency penalties?]] (
#145): What is weight merging in LoRA and why does it eliminate inference latency penalties? - [[How does ORPO perform SFT and alignment in a single step without reference models?]] (
#149): How does ORPO perform SFT and alignment in a single step without reference models? - [[How to answer scenario questions about trade-offs between RAG and Fine-Tuning?]] (
#194): How to answer scenario questions about trade-offs between RAG and Fine-Tuning?