前のユニットでは、次のような汎用的な LLM について説明しました。
- 基盤となる LLM
- ベースの LLM
- 事前トレーニング済み LLM
基盤 LLM は、文法、単語、慣用句について驚くほど多くのことを「知っている」ほど十分な量の自然言語でトレーニングされています。基盤言語モデルは、トレーニングを受けたトピックに関する有用な文章を生成できます。さらに、基盤となる LLM は、詩の作成など、従来「創造的」と呼ばれていた特定のタスクを実行できます。ただし、基盤 LLM の生成テキスト出力は、回帰や分類など、他の一般的な ML 問題の解決策ではありません。このようなユースケースでは、基盤となる LLM はソリューションではなくプラットフォームとして機能します。
基盤となる LLM をアプリケーションのニーズを満たすソリューションに変換するには、ファインチューニングというプロセスが必要です。抽出と呼ばれる 2 番目のプロセスでは、ファインチューニングされたモデルの小さいバージョン(パラメータ数の少ないバージョン)が生成されます。
ファインチューニング
研究によると、基盤言語モデルのパターン認識能力は非常に強力であるため、特定のタスクを学習するために追加のトレーニングを比較的少量で済ませられる場合があります。この追加トレーニングにより、モデルは特定のタスクでより正確な予測を行うことができます。この追加トレーニングはファインチューニングと呼ばれ、LLM の実用的な側面を解き放ちます。
ファインチューニングは、アプリケーションが実行するタスクに固有のサンプルでトレーニングを行います。エンジニアは、数百または数千のトレーニング例で基盤 LLM をファインチューニングできる場合があります。
トレーニング サンプルの数は比較的少ないものの、標準のファインチューニングは計算コストが高いことがよくあります。これは、標準のファインチューニングでは、各backpropagationの反復処理ですべてのパラメータの重みとバイアスを更新する必要があるためです。幸い、パラメータ効率調整というスマートなプロセスを使用すると、誤差逆伝播法の反復処理ごとにパラメータのサブセットのみを調整することで LLM を微調整できます。
通常、ファインチューニングされたモデルの予測は、基盤 LLM の予測よりも優れています。ただし、ファインチューニングされたモデルには、基盤 LLM と同じ数のパラメータが含まれています。したがって、基盤 LLM に 100 億個のパラメータが含まれている場合、ファインチューニングされたバージョンにも 100 億個のパラメータが含まれます。
蒸留
ほとんどのファインチューニング済み LLM には膨大な数のパラメータが含まれています。そのため、基盤となる LLM は、予測を生成するために膨大な計算リソースと環境リソースを必要とします。通常、これらのパラメータの大部分は特定のアプリケーションには関係ありません。
蒸留では、LLM の小さいバージョンが作成されます。抽出された LLM は、完全な LLM よりもはるかに高速に予測を生成し、コンピューティング リソースと環境リソースの使用量も少なくなります。ただし、抽出モデルの予測は通常、元の LLM の予測ほど優れていません。パラメータが多い LLM は、ほとんどの場合、パラメータが少ない LLM よりも優れた予測を生成します。
プロンプト エンジニアリング
プロンプト エンジニアリングにより、LLM のエンドユーザーはモデルの出力をカスタマイズできます。つまり、エンドユーザーは LLM がプロンプトにどのように応答するかを明確にします。
人間は例からよく学びます。LLM についても同様です。LLM に 1 つの例を示すことを、ワンショット プロンプトと呼びます。たとえば、モデルで次の形式を使用して果物のファミリーを出力するとします。
ユーザーが果物の名前を入力すると、LLM はその果物のクラスを出力します。
ワンショット プロンプトでは、上記の形式の 1 つの例を LLM に示し、その例に基づいてクエリを完成させるよう LLM に指示します。次に例を示します。
peach: drupe apple: ______
1 つの例で十分な場合もあります。有効な場合は、LLM は有用な予測を出力します。次に例を示します。
apple: pome
一方、1 つの例では不十分な場合もあります。つまり、ユーザーは LLM に複数の例を提示する必要があります。たとえば、次のプロンプトには 2 つの例が含まれています。
plum: drupe pear: pome lemon: ____
複数の例を提供する方法を少数ショット プロンプトと呼びます。上記のプロンプトの最初の 2 行はトレーニング例と考えることができます。
LLM は例なしで有用な予測を提供できますか(ゼロショット プロンプト)?場合によっては、LLM はコンテキストを好みます。コンテキストがないと、次のゼロショット プロンプトでは、果物ではなくテクノロジー企業に関する情報が返される可能性があります。
apple: _______
オフライン推論
LLM のパラメータ数が非常に多い場合、オンライン推論が遅すぎて、回帰や分類などの実際のタスクに実用的でないことがあります。そのため、多くのエンジニアリング チームは、オフライン推論(一括推論または静的推論とも呼ばれます)に依存しています。つまり、トレーニング済みのモデルは、サービング時にクエリに応答するのではなく、事前に予測を行ってから、予測をキャッシュに保存します。
LLM がタスクを完了するのに時間がかかるとしても、LLM がタスクを実行する必要があるのは週に 1 回または月に 1 回だけであれば問題ありません。
たとえば、Google 検索では、LLM を使用してオフライン推論を実行し、50 以上の言語で COVID-19(新型コロナウイルス感染症)ワクチンの 800 を超える類義語のリストをキャッシュに保存しました。Google 検索では、キャッシュに保存されたリストを使用して、リアルタイム トラフィックでワクチンに関するクエリを特定しました。
LLM を責任を持って使用する
あらゆる形式の ML と同様に、LLM は通常、次のようなバイアスを共有します。
- トレーニングに使用されたデータ。
- 抽出されたデータ。
このコースの前半で説明したレッスンに沿って、LLM を公正かつ責任を持って使用します。