「ChatGPTを自社データでファインチューニングしたい」と調べ始めると、GPTsに資料を入れる方法とAPIで追加学習する方法が混ざって出てきます。両者は別物です。GPTsはモデルの重みを変えません。重みを変えるのはOpenAI APIのファインチューニングだけで、その受付も2026年5月7日から新規の組織には閉じています。さらにカスタムGPT自体も2026年12月11日に廃止される予定です。この記事では、2026年10月時点で何ができて何ができないのかを公式ドキュメントで確かめ、既存組織向けの手順と料金、これからの選択肢を整理します。
まとめ
- GPTsは学習ではありません。カスタムGPTは指示・ナレッジ・外部サービス連携を推論時に与える仕組みで、資料を何本添付してもモデルの重みは変わりません。
- ファインチューニングはAPIの機能で、新規受付は終了しています。2026年5月7日以降、過去に一度も実行していない組織はジョブを作れません。既存の利用組織も2027年1月6日で新規ジョブを作れなくなります。
- 2026年10月23日に止まるモデルがあります。
ft-gpt-4.1-nano-2025-04-14やft-o4-mini-2025-04-16などのファインチューニング済みモデルが停止し、強化学習型(RFT)の唯一の対象 o4-mini も同日に止まります。 - 料金は推論側の上乗せが重くなります。ファインチューニング済みモデルの推論単価は、gpt-4.1 で標準の1.5倍、gpt-4.1-mini と gpt-4o-mini では2倍です。学習費は、1件600トークンの会話50件を3エポック回す試算で gpt-4.1 でも約2.25ドルです。
- カスタムGPTは2026年12月11日に廃止予定です。個人アカウントでは新規作成も既にできません。移行先はプラグインで、指示はスキルに、ナレッジは参照ファイルに移ります。カスタムアクションは自動では移りません。
- これから始めるなら、まずプロンプトと評価データで基準を作り、知識が足りないならRAG、書式や口調が安定しないなら重み更新(Microsoft Foundry か OSSモデル+LoRA)と、失敗の原因で手段を選びます。
GPTsとファインチューニングの違い|モデルの重み更新の有無
カスタムGPTの構成要素|指示・ナレッジ・アクション
OpenAIのGPT Actionsのドキュメントは、カスタムGPTを「providing instructions, attaching documents as knowledge, and connecting to 3rd party services」によってChatGPTを用途別に調整するものと説明しています。ヘルプセンターも、ナレッジを「GPTが質問に答えるときに参照として使えるアップロード済みファイル」と定義しています。指示は振る舞いの定義、ナレッジは会話中に参照する資料、アクションは外部APIの呼び出しです。
指示は毎回の応答の前提として読まれ、ナレッジは質問に関係する箇所が参照され、アクションは必要なときだけ外部APIを呼びます。どれも推論時に働く仕組みで、モデルのパラメータには触れません。ナレッジに添付できるのは1つのGPTにつき20ファイル(1ファイル512MBまで)で、上限まで入れても変わるのは参照できる資料だけです。ユーザーとの会話がそのGPTの重みに反映されることもありません。会話データがOpenAIのモデル改善に使われるかどうかは、アカウント側のデータ管理設定で決まる別の話です(Business・Enterprise・Eduは既定で学習に使われません)。
事前学習・ファインチューニング・GPTsの比較
「プレトレーニング」「AIのカスタマイズ」と同じ文脈で語られるため混同されますが、3者は変える対象が違います。
| 手法 | 変わるもの | 実行する場所 | データ量の目安 |
|---|---|---|---|
| 事前学習 | 重み(ゼロから) | モデル提供者 | 数兆トークン |
| ファインチューニング | 重み(追加学習) | OpenAI API | 最小10件・推奨50件から |
| GPTs | 入力のみ | ChatGPTの画面 | ナレッジの添付 |
ChatGPTの画面にファインチューニングの項目が無いのは、別レイヤーの機能だからです。手順はすべてAPIへのリクエスト(/v1/files と /v1/fine_tuning/jobs)として書かれています。ファインチューニングという手法そのものの仕組みはファインチューニングとは?LLMの追加学習の仕組み・RAGとの違いと使い分けを解説で扱っています。
OpenAIのファインチューニング縮小と停止日程
新規受付終了の3段階|2026年5月7日から2027年1月6日
OpenAIは2026年5月7日、セルフサービス型ファインチューニングの提供縮小を開発者に通知しました。料金ページのFine-tuning節にも「OpenAI is winding down the fine-tuning platform. The platform is no longer accessible to new users」と書かれています。Deprecationsページの日程は次の3段階です。
| 期日 | 新規ジョブを作れなくなる組織 |
|---|---|
| 2026年5月7日 | 過去に一度も実行していない組織 |
| 2026年7月2日 | 直近60日にFT済みモデルで推論していない組織 |
| 2027年1月6日 | 既存の利用組織すべて |
2026年10月時点で新規ジョブを作れるのは、過去に実行歴があり、かつ直近60日以内にファインチューニング済みモデルで推論している組織だけです。過去のジョブはダッシュボードのFine-tuning画面か、APIの client.fine_tuning.jobs.list() で確認できます。ただし見える範囲は選んでいる組織・プロジェクトと権限で変わるため、一覧が空でもそれだけでは利用資格を判定できません。組織の管理者に、過去の学習実績と直近の推論利用を確認してください。作成済みモデルでの推論は、ベースモデルが廃止されるまで続けられます。
2026年10月23日に止まるモデル
推論が続けられるといっても、ベースモデルの廃止で終わります。2026年4月22日の告知により、10月23日に次のファインチューニング済みモデルが停止します。
| 停止するモデル | 案内されている移行先 |
|---|---|
ft-gpt-3.5-turbo |
gpt-5.6-terra |
ft-gpt-4 |
gpt-5.6-sol |
ft-gpt-4.1-nano-2025-04-14 |
gpt-5.6-luna |
ft-o4-mini-2025-04-16 |
gpt-5.6-terra |
ft-babbage-002・ft-davinci-002 |
gpt-5.6-terra |
移行先はどれも通常のベースモデルで、gpt-5.6系は学習の対象外です。つまり移行とは、追加学習をやめてプロンプトやRAGで同じ振る舞いを再現することです。なお、ベースモデルの davinci-002・babbage-002・gpt-3.5-turbo-1106 などは、別の告知(2025年9月26日)によって2026年9月28日に既に停止しています。
ファインチューニングの種類と10月23日以降に残る対象モデル
OpenAIのModel optimizationガイドは、現在サポートする手法を4つ挙げています。停止日程と突き合わせると、10月23日以降に選べるモデルはかなり減ります。
| 手法 | 学習データ | 公式の対象 | 10月23日以降 |
|---|---|---|---|
| SFT(教師あり) | 入力と正解の応答 | gpt-4.1・4.1-mini・4.1-nano | nanoが停止 |
| Vision | 画像を含む入力と応答 | gpt-4o-2024-08-06 | 継続 |
| DPO(選好) | 良い応答と悪い応答の対 | gpt-4.1・4.1-mini・4.1-nano | nanoが停止 |
| RFT(強化学習) | 入力例と採点器(grader) | o4-mini-2025-04-16のみ | 対象なし |
RFTは推論モデル専用で、対象は o4-mini だけです。そのモデルが10月23日に止まるため、OpenAI上でのRFTは事実上ここで終わります。既存組織が今から学習するなら、SFTかDPOで gpt-4.1 か gpt-4.1-mini を選ぶのが現実的な範囲です。料金表には gpt-4o-mini-2024-07-18 の学習単価も載っていますが、手法表のSFT欄には gpt-4.1系しか載っていません。
ファインチューニングのやり方|既存組織向けの手順
学習データの形式と件数|JSONL・最小10件・推奨50件
学習データはChat Completions形式のJSONLで、1行が1つの会話です。教師ありファインチューニングのガイドは「The minimum number of examples you can provide for fine-tuning is 10」と最小件数を示し、丁寧に作った50件から始めて結果を評価するよう勧めています。社内FAQの応答を揃えたい場合なら、次のような行を並べます。
{"messages":[{"role":"system","content":"あなたは当社サポート窓口です。回答は3文以内で、最後に問い合わせ番号を案内します。"},{"role":"user","content":"返品はいつまで受け付けていますか?"},{"role":"assistant","content":"商品到着から14日以内であれば返品を承ります。未開封であることが条件です。お手続きの際は問い合わせ番号0120-000-000へご連絡ください。"}]}
{"messages":[{"role":"system","content":"あなたは当社サポート窓口です。回答は3文以内で、最後に問い合わせ番号を案内します。"},{"role":"user","content":"領収書は発行できますか?"},{"role":"assistant","content":"注文履歴の画面から領収書をPDFで発行できます。宛名は発行時に変更できます。ご不明な点は問い合わせ番号0120-000-000へご連絡ください。"}]}
効くのは件数より一貫性です。同じ種類の質問に対して行ごとに書式や語調が揺れると、モデルは揺れ方まで学びます。件数の設計や品質チェックの具体はファインチューニング用データセットの作り方|サンプル形式・件数・品質の要件にまとめています。
ファイルのアップロードとジョブ作成
手順は2段階です。JSONLを purpose="fine-tune" でアップロードし、返ってきたファイルIDを指定してジョブを作ります。公式ガイドが示すジョブ作成のcurlは次のとおりで、ファイルIDとモデルIDも公式の記載のままです。実行するときは、どちらも自分の値に置き換えてください。
curl https://api.openai.com/v1/fine_tuning/jobs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"training_file": "file-RCnFCYRhFDcq1aHxiYkBHw",
"model": "gpt-4.1-nano-2025-04-14"
}'
この gpt-4.1-nano-2025-04-14 は10月23日に停止するので、そのまま写すと止まるモデルに学習費を払うことになります。Python SDKで書く場合は、存続するモデルを指定し、評価用のファイルとエポック数も一緒に渡しておくと後の比較が楽になります。実行には pip install openai と環境変数 OPENAI_API_KEY の設定が要り、train.jsonl には前述の形式で10件以上の学習例を用意します(上の2行は形式の見本です)。さらに、学習例と重複しない検証データを同じ形式で valid.jsonl に保存し、両ファイルを実行時の作業ディレクトリに置きます。
from openai import OpenAI
client = OpenAI()
# 学習用と評価用(学習に使わない残し分)をアップロードする
train = client.files.create(file=open("train.jsonl", "rb"), purpose="fine-tune")
valid = client.files.create(file=open("valid.jsonl", "rb"), purpose="fine-tune")
job = client.fine_tuning.jobs.create(
model="gpt-4.1-mini-2025-04-14",
training_file=train.id,
validation_file=valid.id,
suffix="support-faq",
method={
"type": "supervised",
"supervised": {"hyperparameters": {"n_epochs": 3}},
},
)
print(job.id, job.status)
日本語の解説には openai.FineTune.create() や davinci を使う2023年頃の書き方が今も残っていますが、旧エンドポイント /v1/fine-tunes は2024年1月4日に停止しており動きません。エポック数を指定しなければ、OpenAIがデータ量に応じて既定値を選びます。
ジョブの監視とft:モデルの呼び出し
学習時間について公式ガイドは「may take several minutes or hours」としており、データ量次第です。次のコードは状態を1回だけ確認します。未完了なら時間を置いてこの確認コードだけを再実行してください。ジョブ作成のコードを流し直すと、別の学習ジョブが作られて学習費が二重にかかります。
job = client.fine_tuning.jobs.retrieve(job.id)
print(job.status, job.fine_tuned_model, job.trained_tokens)
# 進行ログ(安全性チェックの結果もここに出る)
for ev in client.fine_tuning.jobs.list_events(fine_tuning_job_id=job.id, limit=10):
print(ev.created_at, ev.level, ev.message)
# succeeded になり ft: で始まるモデルIDが入ったときだけ呼び出す
if job.status == "succeeded" and job.fine_tuned_model:
resp = client.responses.create(
model=job.fine_tuned_model,
# 最初は学習時と同じ指示を渡して比べる
instructions="あなたは当社サポート窓口です。回答は3文以内で、最後に問い合わせ番号を案内します。",
input="返品はいつまで受け付けていますか?",
)
print(resp.output_text)
else:
print("未完了または失敗:", job.status, job.error)
status が succeeded になると、fine_tuned_model に ft:gpt-4.1-mini-2025-04-14:組織名:support-faq:… の形のIDが入ります。以後はこのIDを通常のモデル名と同じようにResponses APIかChat Completions APIへ渡します。完成したモデルは13の安全性カテゴリで自動評価され、引っかかった場合は種類が moderation_checks のイベントに理由が残ります。
評価と再学習|チェックポイントとエポック調整
公式ガイドは学習の前に評価の仕組みを用意するよう求め、同じデータから学習に使わない分を取り分けて、ベースモデルと比べる方法を示しています。ただし、その評価に使うOpenAIのEvalsは2026年10月31日に読み取り専用になり、11月30日に終了する予定です。これから組む評価は、取り分けたデータをベースモデルとファインチューニング済みモデルの両方に流し、正答率や書式の一致率を自前のコードで数える形にしておくほうが長持ちします。
結果が思わしくないときの打ち手も公式に書かれています。各エポックの終わりにチェックポイント(使えるモデル)が作られ、直近3エポック分が残るので、学習が進むほど丸暗記して悪化した場合は途中のチェックポイントを使えます(client.fine_tuning.jobs.checkpoints.list(fine_tuning_job_id=job.id) で一覧できます)。ベストプラクティスのページは、学習データへの追従が弱ければエポックを1か2増やし、応答の多様性が落ちすぎたら1か2減らすよう案内しています。
ファインチューニングの料金と学習費の見積もり
モデル別の学習単価と推論単価
費用は「学習時に一度だけかかる額」と「その後の推論単価の上乗せ」に分かれます。以下は2026年10月12日に料金ページで確認した標準処理(キャッシュなし)の価格で、単位は100万トークンあたりの米ドルです。o4-mini の学習だけは1時間あたりの課金で、RFTの採点にモデルを使う場合は、そのトークン分がそのモデルの単価で別に請求されます。
| モデル | 学習 | FT済み入力/出力 | 標準の入力/出力 | 倍率 |
|---|---|---|---|---|
| gpt-4.1-2025-04-14 | 25.00 | 3.00/12.00 | 2.00/8.00 | 1.5倍 |
| gpt-4.1-mini-2025-04-14 | 5.00 | 0.80/3.20 | 0.40/1.60 | 2倍 |
| gpt-4o-2024-08-06 | 25.00 | 3.75/15.00 | 2.50/10.00 | 1.5倍 |
| gpt-4o-mini-2024-07-18 | 3.00 | 0.30/1.20 | 0.15/0.60 | 2倍 |
| o4-mini(10月23日停止) | 100.00/時間 | 4.00/16.00 | – | – |
学習費の計算|課金トークンとエポック数
学習費の課金対象は、ジョブの trained_tokens です。APIリファレンスはこの値を「The total number of billable tokens processed by this fine-tuning job」と定義しています。エポックは学習データ全体を1周する単位なので、課金トークンはおおむね「学習ファイルのトークン数×エポック数」になります。公式ガイドの応答例でも、n_epochs 10 のジョブで trained_tokens が1,700でした。
試算すると、1件平均600トークンの会話を50件用意し3エポック回す場合、課金トークンは9万です。gpt-4.1なら約2.25ドル、gpt-4.1-miniなら約0.45ドルで、学習費そのものは小さな額に収まります。
推論単価の上乗せ|月額で効いてくる差
重いのは推論側です。月に入力1億トークン・出力2,000万トークンを流すとすると、gpt-4.1の標準モデルは360ドル、ファインチューニング済みは540ドルで、毎月180ドルの差になります。gpt-4.1-miniでは72ドルが144ドルへ倍増します。学習費の数ドルより、この差の積み上がりのほうがはるかに大きくなります。プロンプトの短縮で入力トークンをどれだけ減らせるかが、元を取れるかの分かれ目です。
カスタムGPTの廃止とプラグインへの移行
GPTsでの代用を考えている場合も、前提が変わりつつあります。OpenAIのカスタムGPT廃止と移行のFAQは「Custom GPTs are scheduled to retire on Dec 11, 2026」としています。延期が承認されたEnterpriseのワークスペースだけは2027年2月11日です。廃止日を過ぎるとGPTとそのページにアクセスできなくなり、過去の会話は残ります。
| GPTの要素 | プラグインでの扱い |
|---|---|
| 指示(Instructions) | スキル(skill) |
| ナレッジファイル | 参照ファイル(reference files) |
| 接続済みアプリ | アプリ |
| カスタムアクション | 移行されない |
| 選択したモデル | 引き継がれない |
移行に使われるのは公開済みの最新版で、下書きは移りません。移行した元のGPTは廃止日まで使えますが、読み取り専用になります。社内APIにつないでいたカスタムアクションは、使えるアプリを探すか、カスタムMCPサーバーで作り直す必要があります。また、個人アカウント(Free・Go・Plus・Pro)では新しいカスタムGPTの作成と公開が既にできず、対象のEnterpriseワークスペースでも新規作成を2026年10月26日に終える計画が示されています。プラグインもスキルと参照ファイルを推論時に読ませる仕組みで、重みを変えない点はGPTsと同じです。GPTsの作り方と公開条件そのものはGPTsとは?ChatGPTのカスタムGPTの作り方・GPTとの違い・公開条件で扱っています。
自社仕様のChatGPTを作る選択肢と判断基準
OpenAIの精度最適化ガイドは、プロンプト→RAG→ファインチューニングと一直線に進める考え方を否定し、2つの軸で整理しています。知識が足りない・古い・社内情報が要るなら文脈の最適化(RAG)、書式が崩れる・口調が違う・推論の手順を守らないならモデルの最適化(ファインチューニング)で、両者は「additive, not exclusive」、つまり併用できるものです。出発点はどちらもプロンプトと評価データで基準を作ることで、そこで何が失敗したかによって次の手段が決まります。
プロンプトとプラグインで足りる要件
口調、書式、禁止事項といった振る舞いの固定は、まず指示文とスキルで試します。書き換えればすぐ反映され、学習費はかかりません。ただし変更のたびに同じ評価データで結果を測り直す工数は残ります。先に挙げたサポート窓口の例なら、指示文と10件程度の回答例をスキルに入れ、20〜30問の想定質問で書式の一致率を測ります。必要な知識が入力に無いならRAGを検討します。正しい情報を渡しても誤答する場合や書式が崩れる場合は、まず指示文と例を改善し、それでも残る問題に重み更新を検討します。
社内文書を参照させる場合のRAG
「規程集に沿って答えてほしい」という要件は、ファインチューニングではなくRAGの領域です。知識を重みに焼き込むと規程の改訂のたびに再学習が要りますが、RAGならモデルを再学習せず、参照文書と検索インデックスの更新で改訂を反映でき、取得した文書の出典を回答に添える設計もできます。判断基準とコストの比較はRAGとファインチューニングの違いと使い分け|判断基準とコストで選ぶ2026年の実装方針に整理しました。社内文書の検索基盤から組む場合は、弊社のRAG構築支援でデータ整備から精度評価までご相談いただけます。
重み更新が必要な場合のMicrosoft FoundryとOSSモデル
それでも重みを変える必要があるなら、OpenAIモデルの追加学習はMicrosoft Foundryが受け皿です。Foundry(classicポータル)のドキュメントでは、SFTの対象にGPT 4o/4o-mini/4.1/4.1-mini/4.1-nano、DPOにGPT 4o/4.1系、RFTにo4-miniが挙がり、サーバーレス構成は入力100万トークンあたり1.70ドルからです。このページはclassicポータル限定で、新ポータルの対応状況は別ページにあります。Foundry全体の料金体系と始め方はMicrosoft Foundryとは?できること・料金の仕組み・始め方【2026年9月】を参照してください。
学習データを外部に出せない、モデルを自社管理下に置きたい場合はOSSモデルを自前で調整します。全パラメータではなく低ランク行列だけを学習するLoRAが現実的で、仕組みと実装はPEFTとLoRAの違いとは?仕組み・使い方・QLoRA/DoRAとの比較を実装例つきで解説に、必要なGPUと学習コードはファインチューニングの実行環境と実装|必要GPUと学習コードにまとめています。
ファインチューニングを選ぶべきでない場面
更新される知識を重みに覚えさせることが目的なら、ファインチューニングは選びません。更新のたびに再学習と再評価が要り、更新が止まった時点で古い知識を言い切るモデルが残ります。知識を重みだけに持たせて回答の根拠まで示させる構成も避けます。重みに溶けた知識は出典を辿れないためで、根拠が要る業務では検索結果を渡すRAGを組み合わせます。丁寧な学習例を50件そろえられない場合も見送ります。OpenAIで行う場合はさらに、2027年1月6日以降は作り直せないことと、ベースモデルが廃止されれば学習結果ごと使えなくなることを織り込む必要があります。
向いているのは、出力形式が厳密に決まっていて年単位で変わらず、プロンプトで指示すると毎回長い前置きが要る、という条件が揃ったときです。その場合はプロンプト短縮で減る入力トークンが、1.5倍から2倍の推論単価を相殺できるかを先に試算してください。
よくある質問
GPTのファインチューニングの料金はいくらですか?
料金ページの標準価格で、学習は100万トークンあたり gpt-4.1 が25.00ドル、gpt-4.1-mini が5.00ドル、gpt-4o-mini が3.00ドルです。o4-mini だけは1時間あたり100.00ドルですが、10月23日に停止します。加えて推論単価が上がり、gpt-4.1 は標準の1.5倍、gpt-4.1-mini と gpt-4o-mini は2倍になります。
ChatGPTのファインチューニングのやり方は?
ChatGPTの画面ではなくOpenAI APIで行います。JSONL形式の学習データを /v1/files にアップロードし、そのファイルIDを指定して /v1/fine_tuning/jobs でジョブを作り、完成した ft: で始まるモデルIDで呼び出します。ただし2026年5月7日以降、実行歴のない組織はジョブを作れません。
ファインチューニングの欠点は何ですか?
重みに入れた知識の更新に再学習が要ること、重みだけでは回答の出典を示せないこと(根拠が要るならRAGと併用します)が主な欠点です。OpenAIの場合は推論単価も上がり、標準の入力・出力単価と比べて gpt-4.1 で1.5倍、gpt-4.1-mini で2倍です。2026年10月23日以降に残る対象は gpt-4.1・gpt-4.1-mini と gpt-4o系で(それまではRFT向けの o4-mini も対象)、gpt-5系以降は学習できないため、選んだ旧世代のベースモデルに固定されます。
ファインチューニングとは何ですか?
学習済みのモデルに追加のデータを与えて重みを更新し、特定の書式や振る舞いに寄せる手法です。ゼロから学習する事前学習に比べて少ないデータで済み、OpenAIでは最小10件から実行できます。指示やナレッジを推論時に渡すだけのGPTsやRAGとは、重みを変える点が違います。
ファインチューニング済みのモデルはいつまで使えますか?
ベースモデルが廃止されるまでです。ft-gpt-3.5-turbo、ft-gpt-4、ft-gpt-4.1-nano-2025-04-14、ft-o4-mini-2025-04-16、ft-babbage-002、ft-davinci-002 は2026年10月23日に停止します。新しいジョブの作成は、既存の利用組織でも2027年1月6日で終わります。