Skip to main content

ファインチューニングについて知る

学習の目的

この単元を完了すると、次のことができるようになります。

  • ファインチューニングについて説明する。
  • ファインチューニングのしくみを説明する。

始める前に

このバッジには、「自然言語処理の基本」「大規模言語モデル」「プロンプトの基本事項」バッジで説明されている用語や概念が記載されています。最初に上記のバッジを獲得することをお勧めします。

簡単なおさらい

OpenAI の一連の GPT モデルのような大規模言語モデル は、人間のごとくテキストを理解して生成するようトレーニングされた大規模なニューラルネットワークです。膨大な量のデータでトレーニングされる LLM は、広範に及ぶ一般的な知識ベースを備えています。

ファインチューニングとは?

ファインチューニングは、トレーニング済みの膨大で広範かつ一般的な言語モデルを、少規模な特定のデータセットで更にトレーニング (または「チューニング」) するプロセスです。LLM の場合、ファインチューニングによって汎用的なベースモデルが、専門的なユースケース向けのモデルに変換されます。この処理により、モデルが専門的なタスクに適したものになります。トレーニング済みモデルでファインチューニングを行うときは、重み付けを調整して優れたパフォーマンスを達成できるようにします。

たとえば、あらゆる料理をそれなりに調理するデジタルアシスタントがいるとします。このアシスタントはどんな料理でも基本的な味付けで仕上げることができますが、あなたはベネチア旅行で味わった絶品のイタリア料理を再現したいと考えています。そのためには、アシスタントがイタリア料理の微妙な味付けを会得する必要があります。この目的を達成するために、アシスタントにイタリア料理のさまざまなレシピや調理法を学ばせ、既存のスキルを向上させていきます。このようにスキルを特化させるのがファインチューニングです。

フューショット学習

フューショット学習は、プロンプトにタスク固有の少数の例を使用するファインチューニングの一種で、モデルがタスクを実行する際のパフォーマンスを上達させます。この種のファインチューニングは、プロンプトデザインやベース LLM ですでに実行可能です。Salesforce でもプロンプトに指示のほか、数通りの例を追加することがあります。つまり、タスクに関連する少量のデータセットをあらかじめプロンプトにフィードするということです。

ファインチューニングではプロンプトに収まる量をはるかに上回る数の例を使ってトレーニングするため、フューショット学習が向上します。この拡張トレーニングの結果、特定のタスクで優れたパフォーマンスを発揮できるようになります。モデルがファインチューニングされた後は、プロンプトにさほど多くの例を含める必要がなくなります。このため、コストが削減され、要求や応答が迅速に処理されるようになります。

ファインチューニングのしくみ

では、LLM のファインチューニングに必要な手順を見ていきましょう。

専門的なデータセットを選択する

最初のステップは、各自のユースケースの特定のタスクに適したデータセットを選択することです。このデータセットは通常、当初のトレーニングに使われたものよりはるかに少量です。主な領域に的を絞ります。

  • 選択したデータセットが、対象とする特定のタスクや分野に合致している必要があります。たとえば、患者記録を基に医療診断を行うモデルをチューニングする場合は、データセットが関連する臨床記録と対応する診断で構成されている必要があります。
  • 他のデータと同様に、専門的なデータも品質は重要です。多くの場合は的を絞った少量のデータセットが必要になります。ただし、特定のタスクの微妙なニュアンスをとらえることができる十分なデータを用意することも極めて重要です。データにエラーや関係ない情報などのノイズが多いと、ファインチューニングのプロセスが妨げられるおそれがあります。そのため、データの前処理とクリーンアップが極めて重要になります。

モデルを調整する

ファインチューニングでもモデルのコアアーキテクチャがそのまま維持されますが、新しいデータセットのニュアンスに合わせて特定のハイパーパラメーター (学習率など) を調整する場合があります。

トレーニングを重ねる

特定のタスクのためにゼロからトレーニングするのではなく、トレーニング済みモデルを新しいデータセットで更にトレーニングします。モデルはすでに多くの一般的な知識を学習しているため、新しいデータセットから特定の情報をすばやく習得することができます。

正則化の手法を適用する

モデルが新しいデータセットに過度に適合する過学習という現象を回避するために、ドロップアウトや重み減衰のような手法を採ることがあります。

まとめ

ファインチューニングは、一般的な大規模モデルを特定のタスクに適合させる強力なツールです。ただし、他のすべてのツールと同様に、功を奏するかどうかは適用時に使用する手法や検討した内容に左右されます。次の単元では、LLM をファインチューニングする理由について説明します。

リソース

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む