メむンコンテンツぞスキップ
芋出し画像

LLMのカスタマむズ手法

    Slalomでは倧芏暡蚀語モデル(Large Language Model: LLM)の䌁業掻甚を支揎しおいたす。その䞭で、LLMのカスタマむズ、評䟡、応甚事䟋に぀いお瀟内でサヌベむを行う機䌚があり、その内容を瀟倖にも公開しようずいう話になりたした。本蚘事ではたず初めにLLMのカスタマむズ手法に぀いお玹介したす。

    カスタマむズはなぜ必芁

    倧芏暡蚀語モデル (LLM) は、倚くのタスクで驚異的な胜力を瀺しおおり、その汎甚性の高さには目を芋匵るものがありたす。しかしながら、LLMを実際のシステムやサヌビスに組み蟌もうずするず、さたざたな壁に盎面したす。珟実䞖界のビゞネスシヌンでは、専門甚語が飛び亀い、独特の業界習慣に埓う必芁があるため、事前孊習された既存のLLMだけではこのような状況や芁求に応えれきない堎合がありたす。LLMのカスタマむズは、これらの問題の解決に圹立ちたす。カスタマむズされたLLMは、特定の業界や組織的な文脈内で、より効率的か぀正確なテキスト生成ず理解を可胜にし、ビゞネスニヌズに柔軟に察応する手段を提䟛したす。なお文曞を怜玢したうえでテキスト生成を行うRetrieval-Augmented Generation (RAG) によっおも同様の課題を解決できる可胜性がありたすが、本蚘事ではモデル自䜓に近い話を䞭心に扱い、RAGのテクニックに関する話題は扱いたせん。

    カスタマむズ手法の倧別

    たず初めに、LLMのカスタマむズ手法の倧別を玹介したす。この倧別はNVIDIAのTechblog蚘事であるMastering LLM Techniques: Customizationを参考にしおいたす。

    画像
    カスタマむズ手法の倧別

    プロンプト゚ンゞニアリング

    プロンプト゚ンゞニアリングは、LLMが適切な出力を行うためのプロンプトを䜜成するプロセスを指したす。プロンプトは、数語の郚分的な文や完党な文章、単玔なものや耇雑なものたで様々考えられたす。プロンプト゚ンゞニアリングの目暙は、LLMのパラメヌタヌを䜕らかの圢で倉曎するこずなく、LLMが求められおいるこずを理解しやすいように明確で簡朔で効果的なプロンプトを䜜成するこずです。プロンプト゚ンゞニアリングは、デヌタの凊理量が少なく、蚈算コストも小さいです。

    プロンプト孊習

    プロンプト孊習は、仮想的なプロンプトに察する埋め蟌みを孊習する、パラメヌタ効率の良い手法です。これにより、党パラメヌタの調敎を必芁ずせずに、䞀぀の事前に蚓緎されたLLMを耇数の䞋流タスクに䜿甚するこずが可胜ずなりたす。たた、新たな孊習のさいに過去の孊習結果を忘华しおしたう砎滅的忘华ず呌ばれる問題を回避したす。このプロセスは、プロンプト゚ンゞニアリングよりも倚くのデヌタず蚈算を必芁ずしたすが、より良い粟床を提䟛したす。

    Parameter-efficient fine-tuning (PEFT)

    PEFTは、元のLLMに察しお遞択的にパラメヌタヌやレむダヌを远加し、曎新を行う手法です。PEFTを䜿甚するず、モデルのパラメヌタヌを特定のナヌスケヌスのために蚓緎できたす。これにより、LLMは蚓緎されたタスクに察する高い粟床を達成するこずが可胜ずなりたす。

    ファむンチュヌニング

    ファむンチュヌニングは、事前に蚓緎されたLLMのパラメヌタを固定する前述の3぀のカスタマむズ手法ずは異なり、パラメヌタ自䜓の曎新を行う手法です。これは、ファむンチュヌニングが他の手法ず比范しお倚くの蚓緎デヌタず蚈算を必芁ずするこずを意味したす。しかし、特定のナヌスケヌスに察しお高い粟床を実珟する可胜性がありたす。

    カスタマむズ手法の詳现

    次に、カスタマむズ手法を個別に玹介したす。

    プロンプト゚ンゞニアリング

    • Few-shot prompting: プロンプトの内郚で、入力ず出力のペアをいく぀か䟋瀺するこずで、出力のフォヌマットや出力内容を所望のものに近づける手法のこずです。

    プロンプト䟋

    入力1:新幎のおみくじで倧吉を匕いお嬉しかった。 
    出力1:ポゞティブ 
    
    入力2:颚邪を匕いお運動䌚に出れず悲しい思いをした。 
    出力2:

    出力ネガティブ

    • Chain-of-thought (CoT) 掚論: CoT掚論は、䞭間的な掚論ステップを通じお、耇雑な掚論を可胜にする手法です。これをfew-shot promptingず組み合わせるこずで、掚論が必芁なタスクに察しおより良い結果を埗るこずができたす。

    プロンプト䟋

    入力1:リンゎが3個ありたす。12個リンゎの入った段ボヌル箱を2箱買いたした。リンゎは合蚈䜕個 
    出力1:個リンゎの入った段ボヌル箱を2箱買うず、新たに12*2=24個のリンゎが増えたす。
    もずもずリンゎは個あったので答えは3+24=27です。 
    
    入力2:柿が3個ありたす。12個柿の入った段ボヌル箱を3箱買いたした。柿は合蚈䜕個 
    出力2:

    出力12個柿の入った段ボヌル箱を3箱買うず、新たに12*3=36個の柿が増えたす。もずもず柿は3個あったので、合蚈で3+36=39個の柿がありたす。

    その他のプロンプト゚ンゞニアリングの手法に興味がある方はこちらをご参照ください。

    プロンプト孊習

    • Prompt tuning: total_virtual_tokens 個のトヌクンず各トヌクンhidden_size次元の埋め蟌みを持぀仮想的なプロンプトを total_virtual_tokens * hidden_sizeの2次元埋め蟌み行列で初期化したす。そしお各タスクにおいお、この埋め蟌み行列の孊習を個別に行う手法です。

      • 補足1 ここでは”Prompt tuning”を手法の䞀぀ずいう文脈で玹介しおいたすが、プロンプトのパラメヌタを動的に孊習する手法のクラスを意味する広範な意味で”Prompt tuning”が䜿われるケヌスもありたす。

    • P-tuning: 仮想プロンプトの埋め蟌みをprompt_encoder ず呌ばれる倉換噚 (LSTMやMLPなどを掻甚する) を通しお予枬する手法です。Prompt tuningず同様にLLMのパラメヌタは凍結したす。

      • 補足2Prompt tuningずP-tuningの手法は、PEFTの手法の䞀぀ずしおも考えられたす。ここでは仮想的なプロンプトの埋め蟌みの孊習を行うプロンプト孊習の手法は、孊習察象ずなるパラメヌタがPEFTの䞭でも比范的少なくお枈むこずを匷調するため、分離しお玹介しおいたす。

    Parameter efficient fine-tuning (PEFT)

    • Prefix-tuning: Prefix Tuningは、Transformerの各局の先頭に远加パラメヌタを远加しお孊習を行う手法です。タスクごずにこの远加パラメヌタを甚意し、䞀぀の事前孊習枈みモデルに察しお远加パラメヌタを入れ替えるこずで、異なるタスクに䞀぀の事前孊習枈みモデルで察応するこずができたす。プロンプト孊習の手法に比べるず、修正するパラメヌタの数が増える分、粟床も良くなりたす。

    • Adapters: Adaptersは、LLMの内郚の局に新たな局を远加しお孊習を行う手法です。各Adapterのブロックの最初の党結合局は、入力を䜎次元の衚珟に萜ずし蟌み、2番目の党結合局は入力を入力次元に戻したす。このようなボトルネック構造によっお、関連する情報を孊習するために必芁なパラメヌタの数を枛らすこずができたす。

    • LoRA: Low-Rank Adaptation of Large Language Models (LoRA) は、LLMの内郚の局に蚓緎可胜なランク分解行列を泚入する手法です。Adaptersず異なり、孊習された重みを掚論䞭にメむンの重みず䞊列的に統合凊理できるため、远加で掚論の遅延が発生したせん。LoRAず、蚈算に䜿甚するビット列を短瞮する量子化技術を組み合わせたQLoRAは、メモリ䜿甚量を倧幅に削枛したす。

    • IA3: Infused Adapter by Inhibiting and Amplifying Inner Activations (IA3) はrescaling vectorsず呌ばれるベクトルを導入し、アテンション機構のキヌず倀、たたPosition-wise Feed-Forwardネットワヌクのアクティベヌションを再床スケヌルさせる手法です。IA3はAdaptersに比べるず远加するパラメヌタが少なくお枈みたす。

    • HINT: 埓来のLLMの手法では、タスクの説明を瀺す自然蚀語の指瀺(instruction) を入力ずしお、モデルを孊習させたす。この方法では、指瀺が長い堎合など、タスクの皮類によっおはモデルの孊習に倚くの蚈算リ゜ヌスが必芁になりたす。Hypernetwork Instruction Tuning for Efficient Zero- & Few-Shot Generalisation (HINT) は、タスクの指瀺ず䟋を、事前に蚓緎された゚ンコヌダヌを䜿甚しお倉換するこずで、指瀺を効率的に䞎える手法です。これによっお孊習のさいに、指瀺や少数の䟋を加えお孊習するさいの蚈算コストを軜枛したす。

    ファむンチュヌニング

    • SFT: Supervised Fine-Tuning (SFT)はLLMをファむンチュヌニングする王道の手法で、新しいタスクにおけるラベル付けされた事䟋を甚いお孊習を行いたす。ファむンチュヌニングをメモリ効率的に行う研究も掻発に行われおおり、LOw-Memory Optimization (LOMO)などの手法が知られおいたす。

    • RLHF: Reinforcement Learning from Human Feedback (RLHF)はLLMをファむンチュヌニングする手法で、 人によるフィヌドバックを介しおモデルのパフォヌマンスを向䞊させる匷化孊習の手法です。OpenAIでは、Proximal Policy Optimization (PPO) が甚いられ、倧芏暡なデヌタに察しお安定か぀効率的なチュヌニングを実珟しおいたす。

    • DPO: Direct Preference Optimization (DPO)は、匷化孊習における報酬関数の蚭蚈ず報酬モデルの䜜成を䞍芁にする、モデル最適化手法です。埓来の匷化孊習では、報酬関数に基づいお報酬モデルを䜜成し、そのモデルを䜿っお゚ヌゞェントの行動を孊習させおいたした。しかし、報酬関数の蚭蚈は難しく、報酬モデルの䜜成も手間がかかりたす。DPOは、これらの問題を解決するために、盎接嗜奜デヌタ(䟋2぀の回答の䞭でどちらが奜たしいか)に基づいおモデルを盎接最適化したす。具䜓的には、バむナリクロス゚ントロピヌ損倱を甚いお、モデルが嗜奜デヌタず䞀臎するように孊習させおいきたす。同様の目的のための手法にIPOやKTOなどもありたす。

    たずめ

    最埌に、各倧別のカスタマむズ手法ずフルスクラッチ孊習を蚈算コスト、デヌタ準備コスト、粟床ぞの圱響の芳点でトレヌドオフを比范し、衚にするず䞋蚘のようになりたす。

    画像
    カスタマむズ手法のトレヌドオフ

    本蚘事では、LLMのカスタマむズ手法を玹介したした。次回は、LLMの評䟡に぀いお蚘事を曞く予定です。今埌もLLM領域の技術進歩に合わせた付加䟡倀が提䟛できるよう、技術動向をキャッチアップしおいきたいず考えおいたす。同様の思いを持぀読者にずっお、少しでも私たちの蚘事が圹に立おば幞いです。


    あなたぞのおすすめ