AI・機械学習
中級
ShareGPTフォーマット(シェアジーピーティーフォーマット)
ChatGPTの会話をhuman/gptロールで記録するJSON形式で、多ターン対話のファインチューニングデータ標準として広く採用される。
0 回閲覧
0 いいね
2026/6/8 更新
関連タグ
ShareGPT
フォーマット
ファインチューニング
多ターン対話
conversations
ShareGPTフォーマットとは
ShareGPTフォーマットは、ChatGPTの会話をhuman/gptロールで記録するJSON形式で、多ターン対話のLLMファインチューニングデータの標準として広く採用されている。ShareGPT.comというChatGPT会話共有サービスから収集されたデータの構造が事実上の標準となり、現在は単独のデータ形式名として通用している。
基本構造
{
"id": "conversation_001",
"conversations": [
{
"from": "human",
"value": "Pythonでフィボナッチ数列を再帰で実装してください"
},
{
"from": "gpt",
"value": "以下にPythonでの再帰実装を示します:\n```python\ndef fibonacci(n):\n if n <= 1:\n return n\n return fibonacci(n-1) + fibonacci(n-2)\n```"
},
{
"from": "human",
"value": "メモ化を使って最適化できますか?"
},
{
"from": "gpt",
"value": "はい、functools.lru_cacheを使えば簡単に最適化できます:..."
}
]
}
システムプロンプトの扱い
ShareGPT形式のsystem拡張:
{
"id": "conv_002",
"system": "あなたはPC自作の専門家です",
"conversations": [
{"from": "human", "value": "..."},
{"from": "gpt", "value": "..."}
]
}
ロール名のバリエーション
各フレームワークでロール名が異なる場合がある:
| フレームワーク | ユーザーロール | AIロール |
|---|---|---|
| ShareGPT標準 | human | gpt |
| Axolotl | human | gpt |
| LLaMA-Factory | human | gpt |
| FastChat | human | assistant |
| TRL | user | assistant |
代表的なShareGPT形式データセット
- ShareGPT90k: 元々のChatGPT会話90,000件
- OpenHermes-2.5: 1百万件規模の高品質多ターン対話
- Dolphin-2.2-ShareGPT: uncensored会話データ
- WizardLM Evol-Instruct: 進化的instruction拡張データ
Alpaca形式との相互変換
def alpaca_to_sharegpt(sample: dict) -> dict:
conversations = [
{"from": "human", "value": sample["instruction"]},
{"from": "gpt", "value": sample["output"]}
]
return {"conversations": conversations}
def sharegpt_to_alpaca(sample: dict) -> dict:
turns = sample["conversations"]
if len(turns) >= 2:
return {
"instruction": turns[0]["value"],
"input": "",
"output": turns[1]["value"]
}
ファインチューニングツールでの対応
LLaMA-Factory、Axolotl、TRL(SFTTrainer)はいずれもShareGPT形式をネイティブサポートする。特にLLaMA-Factoryはdata_info.jsonにShareGPT形式であることを宣言するだけでデータをそのまま使用できる。