Azure OpenAIにおけるファインチューニングについて
みなさんこんにちは。
今日はAzure OpenAIにおけるファインチューニングの必要なデータ・料金についてです。
検索を行うRAGと比較されがちなファインチューニングについてまとめました。
ファインチューニングとは
ファインチューニングとはデータセットを用いてAIモデルそのものを再トレーニングすることです。
モデルそのものを自分専用に作り変えてしまうわけです。一方でRAGの場合は、AIモデルそのものには手を加えずに、検索してヒットした資料を参考資料としてAIに送信する仕組みです。
どちらも汎用的なモデルでは回答が難しい、専門的な内容に回答したり、独自ルールを使っての回答ができるようになります。
機械学習に触ったことがある人は0からモデルを作るのが機械学習、モデルを再トレーニングするのがファインチューニングと考えてもらって大丈夫です。必要なデータ量にも違いがあり、0からモデルを作る機械学習の方が必要データ量は多いです。
必要データ
ファインチューニングでモデルのトレーニングをするためにはjsonlという形式のデータが必要です。
質問と回答のセットが必要になるとイメージしてください。
自前のドキュメントをそのまま学習に使用することができないため、学習データの作成に非常にコストがかかります。RAGの場合はファイルをそのまま使用することができるので、この点が大きな違いになります。
以下のようなセットが複数必要です。
{“prompt”:”株式会社ページワンの本社は何県にありますか?”, “copletion”:”青森県です。”}
Q&Aのようなものをトレーニングデータとして使うのであればまだいいですが、一般のドキュメントから想定される質問と回答のセットを人力で考えるのは地獄です…。
必要なサービス
Azure OpenAIの場合、ファインチューニングを行うにあたって追加で必要となるサービスはありません。Azure OpenAIのリソースのみでファインチューニングを行うことができます。
料金
ファインチューニングを利用するにあたって最も注意しなければならないのが料金です。
再トレーニングするときだけ料金がかかると考える方も多いかと思いますが、ファインチューニングはホスティング料金も支払う必要があります。つまり、ファインチューニングしたモデルをデプロイしている間は料金が発生し続けます。これはどれだけ使ったかやどれだけトレーニングしたかではなく完全な固定費になります。
これが馬鹿にできない料金で、GPT-4o-miniの場合一時間当たり260.874円かかります。(2024/12/26時点)
GPT-4o-miniをファインチューニングして30日間デプロイしたとすると…
260.874(円) × 24(時間) × 30(日) ≒ 187,829(円)
1年間で…
187,829(円) × 12(月) ≒ 2,253,948(円)
これとは別にトレーニング量に応じた料金、通常のAIの利用料金も必要になります。
RAGの場合は、ドキュメント量や利用するサービスに大きく左右されますが、ひと月あたりおおよそ0~4万くらいの間に収まるので、ファインチューニングは選択しにくいのが現状です。
おわりに
ここまで閲覧いただきありがとうございます。今回はファインチューニングについてまとめました。
RAGと比較したメリットデメリットの比較はいろんな人がやっているので、ファインチューニングそのものにスポットを当ててみました。といってもどうしても比較も多くなりましたが…。
ざっくりとした知識はあったものの、改めて整理すると現状ファインチューニングは選択しにくいことがよく分かりました。細かいところだとファインチューニングを行うことができるリージョンもAIのモデルごとにかなり限られていたりします。
それでは良いお年を!