LORA(低ランク適応型-ARXIV.org/ABS/2106.09685)は、費用対効果が高く微調整された大手言語モデル(LLM)の一般的なテクノロジーです。しかし、2024年には、多数の新しいパラメーター効率の高い微調整技術が登場し、さまざまなLORAの代替品が次々と出現しました:SVF、SVFT、ミロラ、ピッサ、ロラ-XS?深く飛び込みましょう。
Loraからの最初の洞察は、微調整モデルのすべての重量が過剰操作されていることです。代わりに、Loraはモデルをフリーズし、小さな低ランクの「アダプター」マトリックスのペアのみをトレーニングします。以下の図を参照してください(wは変圧器LLMの重量マトリックスです)。
計算および保存する勾配がはるかに少ないため、メモリと計算サイクルを保存できます。たとえば、これはロラの微調整を使用して海賊がどのように話すかをシミュレートするGemma 8Bモデルです。2200万のパラメーターのみをトレーニングでき、85億パラメーターは凍結のままです。
ロラはとても人気があります。シングルラインAPIとしてのKerasなどの主流のMLフレームワークにも入りました。
<code>gemma.backbone.enable_lora(rank=8)</code>
しかし、ロラは最高ですか?研究者は式の改善に取り組んできました。実際、小さな「アダプター」マトリックスを選択するには多くの方法があります。それらのほとんどは、マトリックスの特異値分解(SVD)を巧みに利用しているため、少しの数学のために一時停止しましょう。
SVDは、マトリックス構造を理解するための優れたツールです。この手法は、マトリックスを3つに分解します:w = usv t 、uとvは直交(すなわち、基底変換)であり、sはソートされた特異値の斜めマトリックスです。この分解は常に存在します。
「教科書」SVDでは、uとvは正方行列であり、Sは斜めとゼロにゼロに特異な値を持つ長方形のマトリックスです。実際、正方行列sを使用し、長方形uまたはvを使用できます - 写真を参照 - 切り捨てられた部分はゼロだけで掛けられます。この「エコノミー」SVDは、numpy.linalg.svdなどの共通ライブラリで使用されます。
それでは、これをどのように使用して、トレーニングするウェイトをより効果的に選択するのでしょうか?解説的な指示を備えた最近の5つのSVDベースの低ランク微調整技術を簡単に見てみましょう。
LORAの最も簡単な代替品は、モデルの重量マトリックスでSVDを使用してから、単数値を直接微調整することです。奇妙なことに、これはSVFと呼ばれる最新のテクノロジーであり、Transformers²Paper(arxiv.org/abs/2501.06252v2)に掲載されています。
SVFは、ロラよりもパラメーターの点ではるかに経済的です。さらに、微調整モデルを構成可能にします。これの詳細については、Transformers²の説明をこちらで参照してください。ただし、2つのSVF微調整モデルを組み合わせることは、追加操作にすぎません。
より多くの訓練可能なパラメーターが必要な場合は、SVFTペーパー(arxiv.org/abs/2405.19597)は、最初に対角線にさらに訓練可能な重みを追加することで、さまざまな方法を探ります。
また、「M」マトリックスにランダムに散乱するなど、他のさまざまな代替品を評価します。
さらに重要なことは、SVFTの論文は、対角線よりも訓練可能な値を持つことが有用であることを確認しています。以下の微調整の結果を参照してください。
次は、特異値を「大きな」と「小」の2つのグループに分割するいくつかの手法です。しかし、先に進む前に、もう少しSVD数学のために一時停止しましょう。
SVDは通常、3つのマトリックスw = usv tに分解されると見なされますが、単数の値で重み付けされた多くのランク1マトリックスの加重合計と見なすこともできます。
これを証明したい場合は、 usv tフォームとマトリックスの乗算の式を使用して、一方で単一のマトリックス要素w jkを表現し、他方でσsi u i v i tフォームを使用し、Sが斜長であるという事実を簡素化し、それは同じであることに注意してください。
この表現では、合計を2つの部分に分割できることを簡単に確認できます。また、常に単数値を並べ替えることができるため、それらを「大きな」単数値と「小さな」特異値に分割できます。
3つのマトリックスフォームw = usv tに戻ると、これがセグメンテーションがどのように見えるかです。
この式に基づいて、2つの論文では、大きな特異値または小さな単数値のみ、つまりPissaとMiloraのみを調整した場合に何が起こるかを探ります。
Pissa(メインの特異値と特異ベクトル適応、arxiv.org/abs/2404.02948)は、大きなマスター値のみを調整する必要があると主張しています。メカニズムは次のとおりです。
紙から抜粋:「ピッサは、重量マトリックスの性質を捉えると考えられている主要な特異コンポーネントを調整することにより、完全な微調整を目指しています。代わりに、ミロラは、基礎モデルの知識を最大化しながら新しいタスクに適応するように設計されています。」
Pissa Paperには興味深い発見もあります。完全な微調整は過剰になりやすいです。低ランクの微調整技術を使用すると、絶対値についてより良い結果を得ることができます。
一方、ミロラは、小さなマスター価値のみを調整する必要があると主張しています。同様のメカニズムをPissaに使用します。
驚くべきことに、ミロラは、少なくとも数学のデータセットを微調整するときは、元のトレーニング前と非常に一致する可能性があるようです。 Pissaは、LLMの操作をさらに訓練することからさらに曲げるために、より適しているべきであると主張することができます。
最後に、lora-xs(arxiv.org/abs/2405.17604)に言及したいと思います。 Pissaに非常に似ていますが、メカニズムはわずかに異なります。また、LORAも良い結果をもたらすよりもはるかに少ないパラメーターを示しています。
このペーパーは、このセットアップが2つのケースで「理想」であるという数学的説明を提供します。
どちらも私には疑っているように思われるので、私は数学に詳細に入りません。いくつかの結果:
基本的な仮定は、特異値が「大きな」と「小」に分割されているということですが、それは本当ですか? colabでGemma2 9bをすぐに確認しました。結論:特異値の99%は0.1〜1.1の範囲です。それらを「大きな」と「小」に分割することが理にかなっているかどうかはわかりません。
効率的なパラメーター化のための他の多くの微調整技術があります。言及する価値があります:
私の結論:10倍のパラメーターでLora標準を上回るために、私は変圧器のSVFのシンプルさが好きです。より多くの訓練可能なウェイトが必要な場合、SVFTは簡単な拡張機能です。どちらもすべての特異値(フルランク、特異値の剪定なし)を使用し、まだ安いですか?幸せな微調整をお祈りします!
注:すべてのイラストは、著者によって作成されるか、コメントやディスカッションのためにarxiv.org論文から抽出されます。
以上があなたはまだLORAを使用してLLMを微調整していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。