Magpie合成データ(マグパイゴウセイデータ)
Zhangら(2024)が提案したアライメントデータ生成手法。LLMのpre-query template(システムプロンプト+ユーザーターンの空行)だけを与えてLLM自身に質問を自己補完させ、大量のQ&A合成データを抽出する。
Magpie とは
Magpie(Multiple Alignment Generations from Pre-query Inference Engine)はWenxuan Zhang、Xinyu Lu、Srini Iyer、Caiming Xiong、Silvio Savaresらが2024年6月に発表したアライメントデータ自動合成手法。従来の合成データ手法とは質問生成の方向が逆という革新的なアプローチ。
核心アイデア: Pre-Query Template
従来のSelf-Instruct系は「まず指示を生成→次に回答を生成」という流れだが、Magpieは「質問の発端トークンだけ与えてLLMに質問を自己補完させる」。
# 入力(Pre-query template)
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
You are a helpful assistant.<|eot_id|><|start_header_id|>user<|end_header_id|>
<- ここで止める(空行)
# LLMが自動補完する
-> 「Pythonでリストを並べ替えるコードを書いてください」
-> 「気候変動の主な原因を3つ教えてください」
-> 「SQLのINNER JOINを初心者向けに説明してください」
Chat-orientedモデルはユーザーターンの開始を見ると、そこに入るべき自然な質問を予測して補完する。これによりプロンプトエンジニアリング不要で無限に多様な質問が生成される。
生成フロー
- Pre-query template投入: システムプロンプト + ユーザーターン開始トークン
- 質問自己補完: LLMが多様な質問を生成(temperature調整で多様性制御)
- 回答生成: 生成された質問に対してLLMが回答
- 品質フィルタリング: Reward ModelやLLM-as-judgeで品質スコアリング
- データセット構築: 高品質Q&Aペアをファインチューニングデータとして保存
規模と品質
| データセット | モデル | 件数 | 特徴 |
|---|---|---|---|
| Magpie-Llama-3.1-Pro-1M-v0.1 | Llama-3.1-70B-Instruct | 1M件 | 多様性最大 |
| Magpie-Llama-3.1-Ultra-1M | Llama-3.1-405B | 1M件 | 高品質重視 |
| Magpie-Qwen2-Pro-300K | Qwen2-72B-Instruct | 300K件 | 多言語対応 |
Self-Instructとの比較
| 項目 | Self-Instruct | Magpie |
|---|---|---|
| 質問生成 | シード+in-context | Pre-query自己補完 |
| 多様性 | シードに依存 | LLMの事前知識から無限生成 |
| 規模スケール | 数万件が現実的 | 百万件が容易 |
| 必要なプロンプト | 複雑な指示文 | ほぼなし(Template設計のみ) |
| 使えるモデル | 全LLM | Chat-oriented(Instructモデル)のみ |
2025年の活用状況
- Qwen-2.5-Instruct: Magpie大規模版をSFTデータに組み込み
- SmolTalk: SmolLM2訓練データの対話部分にMagpie類似手法
- Command R+: 多言語Magpieで指示追従データを補強
よくある質問
Q1: クローズドモデル(GPT-4等)でMagpieは使えるか? A: Pre-query templateへのアクセス制御がされているため実質困難。Llama・Qwen・Mistralなどのオープンモデルが主な対象。
Q2: 質問の難易度を制御できるか? A: システムプロンプトで「難しい質問を生成してください」「初心者向けに」等の指示を加えることで制御可能。また生成後にReward Modelで難易度別にフィルタリングする方法も一般的。
Q3: マルチターン対話データも作れるか? A: マルチターン拡張版も研究されている。初回のQ&Aの後、同じセッションで続くターンを連続生成してマルチターン対話データを作る。