
AIを知りたい
AIモデルをファインチューニングしたいんですが、各社でどう違うんですか?

AIエンジニア
OpenAI、Google、Anthropicの各社がファインチューニングAPIを提供していますが、方法と対応状況が異なります。

AIを知りたい
そもそもファインチューニングって必要なんですか?

AIエンジニア
すべてのケースで必要ではありません。プロンプトエンジニアリングで解決できない場合の最終手段として考えましょう。
ファインチューニングAPIとは
ファインチューニングAPIとは、既存のAIモデルを独自のデータで追加学習させるためのAPIです。特定のタスクや業界用語への対応力を高め、プロンプトだけでは達成できない精度や一貫性を実現します。
各社のファインチューニング比較

AIを知りたい
各社の対応状況を教えてください!

AIエンジニア
比較してみましょう。
| 項目 | OpenAI | Anthropic | |
|---|---|---|---|
| 対応モデル | GPT-4o, GPT-4o-mini | Gemini 1.5 Flash | 限定的(要相談) |
| データ形式 | JSONL | JSONL | – |
| 最小データ量 | 10件〜 | 16件〜 | – |
| トレーニング費用 | $25/百万トークン(4o) | 従量課金 | 要問い合わせ |
| 評価機能 | あり(自動評価) | あり | – |
| 利用難易度 | 簡単 | 中程度 | 上級 |
OpenAIでのファインチューニング

AIを知りたい
OpenAIのファインチューニング方法を教えてください!

AIエンジニア
Python SDKで簡単に実行できます。
from openai import OpenAI
client = OpenAI()
# 1. トレーニングデータの準備(JSONL形式)
# training_data.jsonl:
# {"messages":[{"role":"system","content":"カスタマーサポートAI"},{"role":"user","content":"返品したい"},{"role":"assistant","content":"承知しました。注文番号を教えていただけますか?"}]}
# 2. ファイルアップロード
file = client.files.create(
file=open("training_data.jsonl", "rb"),
purpose="fine-tune"
)
# 3. ファインチューニングジョブの作成
job = client.fine_tuning.jobs.create(
training_file=file.id,
model="gpt-4o-mini-2024-07-18",
hyperparameters={
"n_epochs": 3
}
)
# 4. 完了後、カスタムモデルを使用
response = client.chat.completions.create(
model="ft:gpt-4o-mini-2024-07-18:org:custom:id",
messages=[{"role":"user","content":"返品について"}]
)
ファインチューニングが必要なケース

AIを知りたい
どんなときにファインチューニングすべきですか?

AIエンジニア
判断基準を整理しましょう。
| ケース | 推奨方法 | 理由 |
|---|---|---|
| 特定のトーンで回答させたい | ファインチューニング | 一貫性が重要 |
| 専門用語への対応 | まずRAGを試す | データ更新が容易 |
| 出力形式の統一 | Structured Outputs | より簡単で確実 |
| レスポンス速度改善 | ファインチューニング | プロンプト短縮効果 |
| コスト削減 | ファインチューニング | 短いプロンプトで同等品質 |

AIを知りたい
まずはプロンプトエンジニアリングから試すべきなんですね!

AIエンジニア
その通りです。「プロンプト → RAG → ファインチューニング」の順で検討するのがベストプラクティスです。ファインチューニングは最後の手段として覚えておきましょう!
