プロンプトエンジニアリング

LLMファインチューニングの理解:大規模言語モデルをユニークな要件に合わせてカスタマイズする

mm
Unite.AI を Google の優先ソースに追加
LLM Fine tuning representation - Midjourney

2023年9月現在、大規模言語モデル(LLM)の分野は、Alpaca、Falcon、Llama 2、GPT-4などのモデルが台頭している。

これらのLLMの潜在能力を活用する上で重要な点は、ファインチューニングプロセスにある。ファインチューニングにより、事前トレーニングされたモデルを特定のタスクに合わせてカスタマイズできる。これにより、モデルは個別の要件に合わせて最適化され、革新的なソリューションを提供できる。

ただし、すべてのファインチューニング方法は等しくはなく、GPT-4のファインチューニング機能にアクセスするには、比較的高価な有料サブスクリプションが必要となる。一方、オープンソースの分野には、よりアクセスしやすい代替手段が存在する。これらのオープンソースの選択肢は、先進的なAI技術へのアクセスを民主化し、急速に進化しているAIの分野でイノベーションと包括性を促進している。

LLMファインチューニングの重要性

LLMファインチューニングは、単なる技術的強化ではなく、LLMモデル開発の重要な側面である。ファインチューニングにより、事前トレーニングされたモデルを特定のデータセットに合わせて最適化し、そのパフォーマンスを向上させることができる。これにより、LLMは新しいデータに適応する能力を示し、AIアプリケーションへの関心が高まる中で重要な役割を果たしている。

LLMのファインチューニングにより、感情分析から医療文献のレビューまで、幅広いタスクでモデルを最適化できる。ベースモデルを特定のユースケースに合わせて調整することで、新しい可能性が解放され、モデルの効率と精度が向上する。また、ファインチューニングにより、システムリソースの使用をより効率的にすることができる。

このガイドでは、LLMファインチューニングの詳細について説明し、最新の進歩とベストプラクティスに基づいた包括的な概要を提供する。

インストラクションベースのファインチューニング

ジェネレーティブAIのライフサイクルにおけるファインチューニング段階は、指示入力と出力の統合、およびステップバイステップの推論の例を伴う。 このアプローチにより、モデルは関連性のあるだけでなく、特定の指示に精密に合致した応答を生成できる。

ジェネレーティブAIライフサイクル - ファインチューニング、プロンプトエンジニアリング、RLHF

ジェネレーティブAIライフサイクル – ファインチューニング

シングルタスクファインチューニング

シングルタスクファインチューニングは、モデルを特定のタスク、たとえば要約に特化させることに焦点を当てている。このアプローチは、法的な文書や顧客サポートチケットなどの大量の文書や会話スレッドを扱うワークフローを最適化するのに特に有益である。注目すべきは、このファインチューニングにより、500〜1000の小さなサンプルセットで大幅なパフォーマンスの向上を達成できることである。

シングルタスクファインチューニングの例

シングルタスクファインチューニングの例

 

LLMファインチューニングの基礎:トランスフォーマーアーキテクチャとその先

LLMファインチューニングの理解を始めるには、LLMを構成する基礎要素を理解する必要がある。LLMの核心には、トランスフォーマーアーキテクチャが存在する。これは、自己注意メカニズムを利用して、単語の文脈をその近接度よりも優先するニューラルネットワークである。

トランスフォーマーの詳細に深入すると、エンコーダーから始まる複数のステップを伴うプロセスに出会う。最初の段階では、入力のトークン化と、入力とその文脈を表す埋め込みベクトルの作成が含まれる。次の段階では、クエリ、バリュー、キーと呼ばれる行列を使用して、自己注意スコアを計算する。これにより、文脈内のさまざまな単語やトークンに焦点を当てることができる。

トランスフォーマーアーキテクチャ

トランスフォーマーアーキテクチャ

ファインチューニングはLLM開発の重要な段階であり、望ましい出力を得るために、微妙な調整が必要となる。この段階は重要であるが、計算リソースとストレージの要件など、課題も存在する。パラメータ効率的なファインチューニング(PEFT)手法は、トレーニングするパラメーターの数を削減することで、この課題に対処する。

LLMの事前トレーニング:強固な基礎の確立

LLM開発の初期段階では、事前トレーニングが重要な役割を果たす。オーバーパラメータ化されたトランスフォーマーを基礎アーキテクチャとして使用し、大規模な非監視コーパスで自然言語をさまざまな方法でモデル化する。ここでの目的は、後で特定のダウンストリームタスクのためにファインチューニングできる基礎を確立することである。

事前トレーニング、ファインチューニング

事前トレーニング、ファインチューニング

この分野の注目すべき傾向は、事前トレーニングされたLLMのスケールが、パラメーターの数で測られる、増加していることである。実証データは一貫して、より大きなモデルとより多くのデータがほとんどの場合、より優れたパフォーマンスをもたらすことを示している。たとえば、175億パラメーターのGPT-3は、高品質の自然言語生成とゼロショットタスクの実行においてベンチマークを設定している。

ファインチューニング:モデル適応への道

事前トレーニングの後、LLMは特定のタスクに適応するためにファインチューニングされる。GPT-3などの事前トレーニングされたLLMで示されたインコンテキストラーニングの有望なパフォーマンスにもかかわらず、ファインチューニングはタスク固有の設定で優れている。ただし、フルパラメーターファインチューニングの一般的なアプローチは、特に大規模モデルを扱う場合、計算リソースとメモリの要件の課題を提起する。

10億パラメーターの大規模言語モデルでは、GPU RAMの効率的な管理が重要となる。32ビット精度の単一モデルパラメーターは4バイトのスペースを必要とし、1億パラメーターモデルのロードにのみ4GBのGPU RAMが必要となる。実際のトレーニングプロセスには、最適化状態や勾配などのさまざまなコンポーネントを収容するために、さらに多くのメモリが必要となる可能性がある。

GPU RAMの制限を回避するために、量子化という手法が使用される。量子化では、モデルパラメーターの精度を低減してメモリ要件を削減する。たとえば、32ビットから16ビットへの精度の変更により、モデルとトレーニングの両方のメモリ要件を半分にできる。

LLMのGPUメモリ要件とパラメータ数および精度の関係

LLMのGPUメモリ要件とパラメータ数および精度の関係

 

PEFT方法のカテゴリの探索

LLMの完全なファインチューニングでは、モデル重みだけでなく、最適化状態、勾配、フォワードアクティベーション、トレーニングプロセスのさまざまな段階での一時的なメモリなどの要素を効率的に処理できる計算セットアップが必要である。

加算方法

このタイプのチューニングでは、事前トレーニングされたモデルに新しいパラメーターまたはレイヤーを追加し、追加されたパラメーターだけをトレーニングする。パラメーターの数が増加するにもかかわらず、これらの方法はトレーニング時間とスペースの効率を向上させる。

  • アダプター:トランスフォーマーサブレイヤーの後に小さな完全結合ネットワークを組み込む。注目すべき例としては、AdaMixKronA、およびCompactorがある。
  • ソフトプロンプト:モデル入力の埋め込みの一部を勾配降下法でファインチューニングする。注目すべき例としては、IPTprefix-tuning、およびWARPがある。
  • その他の加算アプローチ:LeTS、AttentionFusion、Ladder-Side Tuningなどのテクニックが含まれる。

選択方法

選択的なPEFTは、レイヤーの種類と内部モデル構造に基づいて、上位のレイヤーの限定された数をファインチューニングする。BitFitやLNチューニングなどの方法が含まれる。これらの方法は、特定の要素、たとえばモデルバイアスや特定の行をチューニングすることに焦点を当てている。

再パラメータ化ベースの方法

これらの方法では、低ランク表現を使用して、トレーニングするパラメーターの数を削減する。最も有名なものは、Low-Rank Adaptation(LoRA)である。これは、重み更新をパラメータ化するために、単純な低ランク行列分解を使用する。

1) LoRA(低ランク適応)

LoRAは、2021年にEdward J. Huらによって導入された、画期的なPEFTテクニックである。これは、再パラメータ化カテゴリに属し、LLMの各レイヤーに新しいトレーニング可能な低ランク行列を組み込む。オリジナルの重みをフリーズし、新しいトレーニング可能な行列を導入することで、LoRAはトレーニングするパラメーターの数を削減し、トレーニング時間と計算リソースの要件を削減する。

LoRAのメカニズムを理解するには、トランスフォーマーアーキテクチャに戻り、入力プロンプトがトークン化され、埋め込みベクトルに変換されるプロセスを再訪問する必要がある。埋め込みベクトルは、自己注意とフィードフォワードネットワークを含むエンコーダーと/またはデコーダーのセグメントを通過する。

LoRAは、特異値分解(SVD)の概念を使用する。基本的に、SVDは行列を3つの異なる行列に分解する。1つの行列は、特異値を含む対角行列である。これらの特異値は、行列のさまざまな次元の重要性を測定する上で重要である。大きな値は高い重要性を示し、小さな値は低い重要性を示す。

m × n行列の特異値分解(SVD)

m × n行列の特異値分解(SVD)

このアプローチにより、LoRAはデータの重要な特徴を保持しながら、次元を削減し、ファインチューニングプロセスを最適化できる。

LoRAは、このプロセスに介入し、すべての元のモデルパラメーターをフリーズし、元の重みに加えて、トレーニング可能な小さな行列のペア(AとBと表記)を導入する。これらの小さな行列は、教師あり学習を介してトレーニングされる。

LoRAの戦略の重要な要素は、ランク(’r’)と呼ばれるパラメーターである。’r’の選択は、トレーニングするパラメーターの数を大幅に削減することで、印象的な結果をもたらすことができる。LoRAは、HuggingFace Transformersなどのオープンソースライブラリを使用して、さまざまなタスクで効率的にファインチューニングできる。

2) QLoRA:LoRAの効率性を高める

LoRAの基盤を築いたQLoRAは、メモリ要件をさらに削減する。2023年にTim Dettmersらによって導入されたQLoRAは、低ランク適応と量子化を組み合わせ、4ビットの量子化形式であるNormalFloat(nf4)を使用する。

QLoRAは、トランスフォーマーアーキテクチャの各レイヤーで、4ビットの精度で量子化された重みを使用する。量子化は、データをより低い情報表現に変換するプロセスである。計算プロセスで必要な場合、4ビットの重みは16ビットにデ量子化される。

ファインチューニング方法の比較:QLoRAはLoRAに4ビットの精度量子化とページ化された最適化を追加する

ファインチューニング方法の比較:QLoRAはLoRAに4ビットの精度量子化とページ化された最適化を追加する

QLoRAは、NumericFloat4(nf4)をターゲットにし、トランスフォーマーアーキテクチャの各レイヤーで二重量子化を導入することで、メモリフットプリントをさらに削減する。これは、量子化された定数に対する二重量子化を実行する戦略であり、ページ化された最適化と統一されたメモリ管理を使用して、典型的な勾配チェックポイントのメモリスパイクを回避する。

Guanacoは、QLoRAでファインチューニングされたアンサンブルであり、オープンソースのチャットボットソリューションのベンチマークを設定する。人間と自動による体系的な評価を通じて検証されたそのパフォーマンスは、その優位性と効率性を強調している。

Guanacoの65Bと33Bバージョンは、OASST1データセットの修正バージョンを使用してファインチューニングされており、ChatGPTやGPT-4などの著名なモデルと肩を並べる強力な対抗馬となっている。

人間のフィードバックからの強化学習を使用したファインチューニング

人間のフィードバックからの強化学習(RLHF)は、事前トレーニングされた言語モデルを人間の価値観に沿ったものに適応させるために使用される。Open AIによって2017年に導入されたこの概念は、文書の要約とInstructGPTの開発の基礎を築いた。

RLHFの核心にあるのは、強化学習のパラダイムである。エージェントは、環境の中で行動を実行し、報酬を受け、行動とフィードバックの連続的なループを通じて学習する。エージェントは、報酬を最大化する行動を選択するよう奨励される。

言語モデルにこの概念を適用すると、モデル自体がエージェントとなり、特定のコンテキストウィンドウ内で動作し、状態(コンテキストウィンドウ内の現在のトークン)に基づいて決定を下す。アクションスペースは、モデルが選択できるすべての潜在的なトークンを包含し、目標は人間の好みに最も一致するトークンを選択することである。

RLHFプロセスでは、人間のフィードバックを広く利用し、報酬モデルをトレーニングする。このモデルは、事前トレーニングされたモデルをファインチューニングする際に重要な役割を果たす。モデルは、人間の価値観に沿った出力を生成するように指導される。これは、言語生成の文脈では、「ロールアウト」と呼ばれる、状態と行動のシーケンスを通じて報酬が得られるプロセスである。

RLHFの注目すべき潜在能力の1つは、AIアシスタントのパーソナライゼーションを促進する能力である。個々のユーザーの好み、たとえばユーモアの感覚や日常のルーティンに合わせてAIを調整できる。人間のニュアンスに敏感で、人間のコミュニケーションの繊細な点を理解し、対応できるAIシステムの創造を可能にする。

ただし、RLHFは万能の解決策ではない。モデルはまだ、トレーニングに使用される広範で未規制のデータセットの偏見を反映した、望ましくない出力を生成する可能性がある。

結論

Alpaca、Falcon、GPT-4などのLLMの潜在能力を活用する上で重要なステップであるファインチューニングプロセスは、シングルタスクファインチューニング、LoRAやQLoRAなどのPEFT方法など、より洗練されたものとなっている。これらの開発は、より幅広いユーザーにとって、高度なAI機能を提供する扉を開いている。

さらに、Open AIによって導入された人間のフィードバックからの強化学習(RLHF)は、AIシステムが人間の価値観と好みにさらに近づくようにするためのステップである。これにより、ユーザーのニーズに合わせて調整されたAIアシスタントが可能になる。RLHFとPEFTは、LLMの機能と効率を向上させるために協力して機能する。

企業、企業、個人がこれらのファインチューニングされたLLMを運用に組み込むにつれて、AIは単なるツールを超えて、人間の文脈に合わせて適応し、革新的なソリューションを提供するパートナーとなる未来を歓迎することになる。

私は過去5年間、機械学習とディープラーニングの魅力的世界に没頭してきました。私の情熱と専門知識は、AI/MLに特に焦点を当てた50以上の多様なソフトウェアエンジニアリングプロジェクトに貢献することになりました。私の継続的な好奇心は、自然言語処理という分野にも私を引き付け、さらに探求したいと思っています。