0
会員になると、いいね!でマイページに保存できます。
多くの企業において生成AIを任意のタスクに特化させ活用したいという機運が高まっている。この文脈で最近注目度が高まっているのが「ファインチューニング(Fine-tuning:微調整)」だ。生成AIのカスタマイズにおいては、これまでRAG(Retrieval-Augmented Generation)によるアプローチが主流だったが、関連ツールやサービスの充実によりファインチューニングを選ぶケースが増えている。ファインチューニングとはどのようなものなのか、RAGとの違いを含め、活用例と注意点をお伝えしたい。
ファインチューニングとは?RAGと何が違うのか
OpenAIのGPT-3.5などの大規模言語モデル(LLM)は、膨大な量のデータにより事前トレーニングされており、さまざまなタスクをこなすことが可能だ。とりわけOpenAIのフラッグシップモデルであるGPT-4は、ネット上にあるすべての公開データを使いトレーニングされているといわれており、現時点で他モデルを圧倒するパフォーマンスを示している。
それでも、企業で大規模モデルを活用したい場合、想定タスクに関連する追加データをモデルに与え、そのタスクをこなせるようにカスタマイズする必要が出てくる。このカスタマイズにおいて、現在2つのアプローチが存在する。
1つは、大規模言語モデルのプロンプトに関連情報を追加し、その情報をもとに、回答を生成させるRAG(Retrieval-Augmented Generation)によるアプローチ。
もう1つがファインチューニングによるアプローチだ。生成AIにおけるファインチューニングとは、事前学習したLLMを別のデータセットで再トレーニングし、新しい目的に合わせた調整を行うことを指す。エンドユーザー側もファインチューニングにより、事前トレーニングされた大規模言語モデルをカスタマイズすることができる。
たとえば、企業のカスタマーサポートセンターにおける特定商品に関する顧客とのやり取りデータを使い、大規模言語モデルをファインチューニングすることで、その特定商品に関して、当該カスタマーサポートセンターの特色を持った形で受け答えするようにカスタマイズできる。
これはRAGアプローチでも可能だが、この場合プロンプトに特定商品に関する情報ややり取りのルールを毎回記載する必要があり、入力プロンプトが増え、API利用料が高くなってしまう場合がある。また、入力プロンプトの量が多くなってしまうことで、レスポンス/出力スピードが落ちる可能性も高くなる。
エンドユーザー側ではこれまで、
ベクトルデータベースなどRAG関連のプラットフォームが充実していたこともあり、大規模言語モデルのカスタマイズにおいてはRAGが主流だった。しかし、
OpenAIのファインチューニングAPIや
Gradient.aiが提供するオープンソースモデル向けのファインチューニングパッケージの登場により、ファインチューニングがより身近になっており、このアプローチへの注目が高まっているのだ。
開発段階におけるファインチューニングの重要性
ChatGPTの開発段階においてもファインチューニングは非常に重要な役割を果たしている。
ChatGPTの開発では大きく
4つのステップがあった。1つ目のステップは、いわゆるネット上の公開データによるトレーニングだ。トークン数は、1兆以上に上る膨大なものとされ、このトレーニングでは「アウトプットコンプリーション」に焦点が当てられている。
これが意味するところは、ステップ1で出来上がった事前トレーニングモデルは、何らかのアウトプットを生成することが可能ではあるものの、この段階ではチャットに最適化されておらず、生成するアウトプットが必ずしも質問に対する回答にはならないということだ。
たとえばステップ1の事前トレーニングモデルに「How to make a cake(ケーキの作り方を教えて)」という質問を投げかけた場合、以下のようなアウトプットが生成される。
- 「for my sister’s birthday(妹の誕生日のために)」など質問に対するコンテクストを追加するアウトプット。
- 「What taste should I choose? Where to get ingredients?(どの味を選びますか?どこで食材を入手しますか?)」などフォローアップ質問の生成。
- ケーキの作り方の説明。
望ましいのは3番目のケーキの作り方の説明であるが、この段階においては、1と2のアウトプットも正解となるため、3番目のような質問-回答形式のやり取りが100%発生するとはいえない状況だ。
ここで登場するのが、ステップ2におけるファインチューニングだ。このステップにおいては、ステップ1のようなネット上から集めた乱雑なデータではなく、demonstration dataと呼ばれる高品質なデータが用いられる。
これには、ユースケースごとにカスタマイズされたプロンプト-レスポンスのペアデータが含まれる。質問-回答形式のペアデータによりファインチューニングすることで、常に上記の3番目のような回答を生成することができるようになる。
【次ページ】RLHFの2つのステップを経てサービスとして展開
関連タグ