「LLM Fine-Tuningの理解:大規模言語モデルを独自の要件に合わせる方法」
Understanding LLM Fine-Tuning How to customize large language models for specific requirements.
2023年9月現在、大規模言語モデル(LLM)の領域では、Alpaca、Falcon、Llama 2、GPT-4などのモデルが台頭しています。
これらのLLMの潜在能力を最大限に活用するための重要な要素は、ファインチューニングプロセスです。この戦略により、事前学習済みモデルを特定のタスクに合わせてカスタマイズすることが可能となります。ファインチューニングによって、これらのモデルは個々の要件に真に合致し、革新的かつユニークなニーズに合わせたソリューションを提供することができます。
ただし、すべてのファインチューニング手法が同じように機能するわけではないことに注意する必要があります。たとえば、GPT-4のファインチューニング機能を利用するには、他の市場で利用可能なオプションと比較して比較的高額な有料サブスクリプションが必要です。一方、オープンソースの領域では、大規模言語モデルの力を利用するよりアクセスしやすい手段が豊富に存在しています。これらのオープンソースのオプションは、AI技術の高度なアクセスを民主化し、急速に進化するAIの領域でのイノベーションと包括性を促進します。
- AWSにおける生成AIとマルチモーダルエージェント:金融市場における新たな価値を開拓するための鍵
- 「学習におけるマウスの驚くべきアプローチを解読する研究」を学ぶ
- デブセコプス:セキュリティをデブオプスのワークフローに統合する
Hugging Face – オープンLLMリーダーボード
なぜLLMのファインチューニングが重要なのか?
LLMのファインチューニングは、単なる技術の向上にとどまらず、LLMモデルの開発において重要な要素であり、さまざまなタスクでより特化した応用が可能となります。ファインチューニングによって、事前学習済みモデルを特定のデータセットに適合させ、特定のタスクでのパフォーマンスを向上させ、よりターゲットに沿った応用を実現します。LLMの卓越した能力により、新しいデータに適応するという素晴らしい特性が示され、AIアプリケーションへの関心の高まりに不可欠な柔軟性が実証されます。
大規模言語モデルのファインチューニングにより、センチメント分析から医学文献のレビューまで、さまざまなタスクで優れたパフォーマンスを発揮する機会が広がります。ベースモデルを特定のユースケースに合わせてチューニングすることで、新たな可能性が開かれ、モデルの効率と精度が向上します。さらに、ファインチューニングはモデルをゼロからトレーニングする場合に比べて、システムリソースをより経済的に活用することができます。
本ガイドでは、LLMのファインチューニングの詳細について、最新の進展とベストプラクティスに基づいて包括的な概要を説明します。
命令ベースのファインチューニング
図のように示される生成型AIライフサイクルのファインチューニングフェーズでは、命令の入力と出力の統合に加え、ステップバイステップの推論例が組み合わされます。このアプローチにより、モデルは特定の命令に正確に合致するだけでなく、関連性も持った応答を生成することが可能となります。このフェーズでは、事前学習済みモデルを特定のタスクやユースケースに適応させるために、パーソナライズされたデータセットを利用して機能を向上させます。
生成型AIライフサイクル – ファインチューニング
シングルタスクのファインチューニング
シングルタスクのファインチューニングは、要約など特定のタスクでモデルの専門性を磨くことに焦点を当てています。このアプローチは、法的文書や顧客サポートチケットなど、大量のドキュメントや会話スレッドが関わるワークフローの最適化に特に有効です。驚くべきことに、このファインチューニングは、事前学習フェーズで使用される数十億のトークンに対して比較的少数の例(500〜1000)で大幅なパフォーマンス向上を実現することができます。
シングルタスクのファインチューニングの例
LLMファインチューニングの基礎 LLM:トランスフォーマーアーキテクチャとその先へ
LLMファインチューニングの理解のための旅は、大規模言語モデルを構成する基本要素を把握することから始まります。これらのモデルの核心には、センテンス内の単語の近接性よりもその文脈を優先するためにセルフアテンションメカニズムを活用するトランスフォーマーアーキテクチャがあります。この革新的なアプローチにより、入力中のトークン間の遠い関係をより深く理解することが可能となります。
トランスフォーマーの複雑さを乗り越える過程で、エンコーダーから始まる複数のステップのプロセスに遭遇します。この初期フェーズでは、入力をトークン化し、入力と文内の位置を表す埋め込みベクトルを作成します。その後のステージでは、Query、Value、およびKeyとして知られる行列を使用した一連の計算が行われ、文の異なる部分とさまざまなトークンに焦点を当てる自己注意スコアが生み出されます。
トランスフォーマーアーキテクチャ
LLMの開発において、ファインチューニングは重要なフェーズです。このプロセスでは、より望ましい出力を得るために微調整を行います。この段階では、多数のパラメータを処理するための計算およびストレージの要求という一連の課題が生じます。パラメータ効率の良いファインチューニング(PEFT)は、ファインチューニングするパラメータの数を減らすための技術を提供し、トレーニングプロセスを簡素化します。
LLMプレトレーニング:強力な基盤の確立
LLMの開発の初期段階では、プレトレーニングが中心となり、過パラメータ化されたトランスフォーマーを基本的なアーキテクチャとして使用します。このプロセスでは、双方向、自己回帰、またはシーケンス対シーケンスなど、さまざまな方法で自然言語を大規模な非監督コーパスでモデリングします。ここでの目的は、特定の下流タスクに後でファインチューニングできる基盤を作成することです。
プレトレーニング、ファインチューニング
この領域で注目すべきトレンドの一つは、パラメータの数による事前学習LLMのスケールの必然的な増加です。実証データは一貫して、より大きなモデルとより多くのデータがほとんど常により良いパフォーマンスを提供することを示しています。例えば、1750億のパラメータを持つGPT-3は、高品質な自然言語の生成やゼロショットタスクの幅広い実行においてベンチマークを設定しました。
ファインチューニング:モデルの適応への道
プレトレーニングに続いて、LLMは特定のタスクに適応するためにファインチューニングを受けます。GPT-3などのプレトレーニングLLMにおける文脈学習の有望なパフォーマンスにもかかわらず、タスク固有の設定ではファインチューニングが優れています。ただし、完全なパラメータのファインチューニングの一般的なアプローチには、大規模なモデルの処理に高い計算およびメモリの要求などの課題があります。
10億以上のパラメータを持つ大規模言語モデルでは、GPU RAMの効率的な管理が重要です。32ビットの精度の1つのモデルパラメータには4バイトのスペースが必要であり、10億のパラメータモデルをロードするだけでも4GBのGPU RAMが必要です。実際のトレーニングプロセスでは、オプティマイザーの状態や勾配など、さまざまなコンポーネントを収容するためにさらに多くのメモリが必要となります。この規模のモデルには最大80GBのGPU RAMが必要になる可能性があります。
GPU RAMの制限を克服するために、モデルパラメータの精度を低下させるクオンタイゼーションという技術が使用されます。例えば、精度を32ビットから16ビットに変更することで、モデルのロードおよびトレーニングに必要なメモリを半分にすることができます。この記事では、チューニングのために量子化のコンセプトを使用するQloraについて詳しく説明します。
パラメータ効率の良いファインチューニング方法について
大規模な言語モデルを完全にファインチューニングするプロセスでは、重要なのは巨大なモデルの重みだけでなく、オプティマイザーの状態のメモリの割り当て、勾配の管理、前方活性化、トレーニング手順のさまざまな段階での一時的なメモリの提供など、その他の要素を効率的に処理できる計算セットアップを持つことです。
加算法
このタイプのチューニングは、事前学習済みモデルに追加のパラメータやレイヤーを追加することで、新たに追加されたパラメータのみを訓練することに焦点を当てます。これらの方法は、パラメータ数を増やす一方で、訓練時間とスペースの効率を向上させます。加算方法はさらに以下のサブカテゴリに分けられます:
- アダプター:トランスフォーマーサブレイヤーの後に小規模な完全接続ネットワークを組み込み、AdaMix、KronA、Compactorなどが注目されています。
- ソフトプロンプト:勾配降下法を通じてモデルの入力埋め込みの一部を微調整し、IPT、prefix-tuning、WARPなどが有名な例です。
- その他の加算手法:LeTS、AttentionFusion、Ladder-Side Tuningなどの手法が含まれます。
選択的手法
選択的PEFTは、レイヤータイプと内部モデル構造に基づいて、一部のトップレイヤーを微調整します。このカテゴリには、BitFitやLN調整などの手法が含まれます。これらの手法は、モデルのバイアスや特定の行など、特定の要素を調整することに焦点を当てています。
再パラメータ化ベースの手法
これらの手法は、低ランク表現を利用して訓練可能なパラメータの数を減らします。最も有名な手法は、Low-Rank AdaptationまたはLoRAです。この手法は、単純な低ランク行列分解を利用して重みの更新をパラメータ化し、低ランク部分空間での効果的な微調整を実証しています。
1) LoRA(Low-Rank Adaptation)
LoRAは、2021年にEdward J. Huなどによって発表された画期的なPEFT技術です。これは再パラメータ化カテゴリ内で動作し、LLMの元の重みを凍結し、Transformerアーキテクチャの各レイヤーに新たな訓練可能な低ランク行列を統合します。このアプローチにより、訓練可能なパラメータの数を減らすだけでなく、訓練時間と計算リソースの使用量も削減され、完全な微調整に比べてより効率的な代替手法が提供されます。
LoRAのメカニクスを理解するためには、入力プロンプトがトークン化され、埋め込みベクトルに変換されるTransformerアーキテクチャを再考する必要があります。これらのベクトルは、Transformerのエンコーダーと/またはデコーダーセグメントを通過し、セルフアテンションとフィードフォワードネットワークに遭遇します。これらの重みは事前に訓練されています。
LoRAは特異値分解(SVD)という概念を使用しています。基本的に、SVDは行列を3つの異なる行列に分解します。そのうちの1つは特異値を保持する対角行列です。これらの特異値は、行列の異なる次元の重要性を測定するために重要であり、大きな値はより高い重要性を示し、小さな値はより低い重要性を示します。
行列の特異値分解(SVD)
このアプローチにより、LoRAはデータの重要な特性を維持しながら次元を削減し、微調整プロセスを最適化することができます。
LoRAはこのプロセスに介入し、すべての元のモデルパラメータを凍結し、元の重みに加えて一対の「ランク分解行列」を導入します。これらの小さな行列はAとBという名前で示され、監督学習を通じて訓練されます。
LoRA LLMのイラスト
この戦略の鍵となる要素は、ランク(’r’)と呼ばれるパラメータであり、低ランク行列のサイズを制御します。注意深い’r’の選択によって、より小さな値でも驚くべき結果が得られ、訓練する必要のあるパラメータが少ない低ランク行列を作成することができます。この戦略は、HuggingFace Transformersなどのオープンソースライブラリを使用して効率的なLoRA微調整をさまざまなタスクに実装することができます。
2) QLoRA:LoRAの効率をさらに向上させる
LoRAを基盤としたQLoRAは、メモリ要件をさらに最小化します。2023年にTim Dettmersなどによって発表され、低ランク適応と量子化を組み合わせています。4ビットの量子化形式であるNormalFloatまたはnf4を使用します。量子化は、情報量の多い表現から情報量の少ない表現にデータを移行するプロセスです。このアプローチは、16ビットの微調整手法の効果を維持し、計算プロセス中に必要に応じて4ビットの重みを16ビットに復元します。
フィネチューニングの方法の比較:QLORAはLoRAを4ビット精度の量子化とメモリスパイク管理のためのページ化最適化子で拡張します。
QLoRAは、トランスフォーマーのアーキテクチャのすべてのレイヤーを対象とし、ファインチューニングに必要なメモリフットプリントをさらに小さくするために、NumericFloat4(nf4)を活用し、ダブル量子化の概念を導入します。これは、既に量子化された定数に対して量子化を実行することによって達成されます。この戦略により、典型的な勾配チェックポイントのメモリスパイクを回避し、ページ化最適化子と統一されたメモリ管理を利用することで、メモリスパイクを効果的に管理します。
QLORAにチューニングされたアンサンブルであるグアナコは、オープンソースのチャットボットソリューションのベンチマークを設定しています。システマティックな人間と自動評価によって検証されたその性能は、その優位性と効率を示しています。
Guanacoの65Bバージョンと33Bバージョンは、OASST1データセットの改良版を使用してファインチューニングされ、ChatGPTやGPT-4などの有名なモデルに対しても強力な競合相手となっています。
人間のフィードバックからの強化学習を使用したファインチューニング
人間のフィードバックからの強化学習(RLHF)は、事前学習済み言語モデルを人間の価値観により近づけるための手法です。この概念は、Open AIによって2017年に導入され、ドキュメントの要約の向上やInstructGPTの開発の基盤となりました。
RLHFの核心は、強化学習のパラダイムであり、エージェントが行動を実行し報酬を受け取ることによって環境内でどのように振る舞うかを学習する機械学習の技術の一種です。最高の報酬をもたらす選択肢を選ぶことを目指して、行動とフィードバックの連続したループです。
言語モデルの範囲で考えると、エージェントはモデル自体であり、与えられたコンテキストウィンドウの環境内で操作し、現在のトークンによって定義される状態に基づいて意思決定を行います。 “アクションスペース”には、モデルが選択できるすべてのポテンシャルなトークンが含まれており、目標は人間の好みに最も近いトークンを選択することです。
RLHFプロセスでは、人間のフィードバックを広範に活用し、報酬モデルのトレーニングに使用します。このモデルは、ファインチューニングプロセス中の事前学習モデルをガイドする重要な役割を果たし、人間の価値観により近い出力を生成するように促します。これは、言語生成の文脈で報酬に至る状態とアクションのシーケンスを記述するための用語である”ロールアウト”のシリーズを通じてモデルが学習する動的かつ反復的なプロセスです。
Instruct-GPT
RLHFの顕著なポテンシャルの1つは、AIアシスタントのパーソナライズを促進し、ユーザーの好みに合わせてカスタマイズする能力です。ユーモアや日常のルーティンなど、個々のユーザーの好みに共鳴するAIシステムの創造に道を開くものです。これにより、技術的に優れただけでなく、感情的にも賢明で、人間のコミュニケーションの微妙なニュアンスを理解し応答することができるAIシステムが作成できる可能性が広がります。
ただし、RLHFは万全な解決策ではありません。モデルは、訓練に使用される膨大でしばしば無制限かつバイアスのあるデータを生成する可能性がまだあります。
結論
Alpaca、Falcon、GPT-4などのLLMのフルポテンシャルを活用するための重要なステップであるファインチューニングプロセスは、より洗練され、焦点を絞ったものとなり、さまざまなタスクに対してカスタマイズされたソリューションを提供しています。
特定の役割に特化したシングルタスクのファインチューニングや、LoRAやQLoRAを含むパラメータ効率の高いファインチューニング(PEFT)の方法など、トレーニングプロセスをより効率的かつ費用効果の高いものにする試みが見られます。これらの進展により、高度なAIの機能がより広い範囲のユーザーに開かれるようになっています。
さらに、Open AIによる人間のフィードバックからの強化学習(RLHF)の導入は、人間の価値観や好みにより理解し、より密接に合わせるAIシステムの創造への一歩です。これにより、スマートなだけでなく、個々のユーザーのニーズにも敏感なAIアシスタントが実現されます。RLHFとPEFTは、大規模な言語モデルの機能と効率を向上させるために相互補完的に機能します。
ビジネス、企業、個人がこれらの洗練されたLLMを自身の業務に統合しようとする際、AIが単なるツール以上の存在となり、人間の文脈を理解し適応するパートナーとして受け入れる未来を迎えることになります。その結果、革新的かつ個別化されたソリューションを提供することが可能になります。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles