人工知能

MoRA:PEFTのためのハイランク更新

mm

LoRA(Low-Rank Adaption)またはPEFT(Parameter Efficient Fine-Tuning)の一種であるLoRAは、他の方法と比較して堅牢なパフォーマンスと広範な適用性を持つため、LLM(Large Language Model)のファインチューニングに最も人気のあるPEFT方法の1つです。LoRAフレームワークは、2つの低ランク行列を使用して、FFT(Full Fine Tuning)での重み更新を分解し、近似します。LoRAフレームワークは、これらの学習可能なパラメータを調整することで、これらの行列を変更します。プロセスを実装する主な利点は、LoRAフレームワークがファインチューニング後の推論遅延なしにこれらの行列をマージできることです。さらに、最近の大規模言語モデルは、コンテキスト内学習タスクで優れたパフォーマンスを発揮しますが、ファインチューニングが必要なシナリオも依然として存在し、主に3種類に分類できます。最初のタイプは、LLMをエンドタスクやユーザーの好みとよりよく一致させることを目的としたインストラクションチューニングであり、LLMの知識や能力を向上させることを目的としません。このアプローチにより、さまざまなタスクや複雑な指示を処理するプロセスが簡素化されます。2番目のタイプは、数学的な問題解決のような複雑な推論タスクを含みます。最後に、3番目のタイプは、LLMの全体的なドメイン固有の能力を向上させることを目的とした継続的プレトレーニングです。

この記事では、LoRAフレームワークのパフォーマンスに低ランク更新が与える影響について話し合います。低ランク更新メカニズムが、LLMが新しい知識を学習し、記憶する能力を妨げる可能性があることが観察されています。同様に、この記事では、同じ数の学習可能なパラメータを使用して高ランク更新を実現する新しい方法であるMoRAについて話し合います。MoRAフレームワークは、低ランク行列ではなく、正方行列を使用します。MoRAフレームワークは、入力次元を減らし、出力次元を増やすことで、正方行列の学習可能な行列を実現します。さらに、これらの演算子により、重みをLLMにマージすることが可能になり、MoRAフレームワークはLoRAと同様に展開可能になります。

この記事は、MoRAフレームワークを深く掘り下げ、メカニズム、方法論、フレームワークのアーキテクチャを探求し、最先端のフレームワークと比較します。では、始めましょう。

MoRA:PEFTのためのハイランク更新

言語モデルのサイズと能力が増加するにつれて、PEFTは、LLMを特定のダウンストリームタスクに適応させるための最も人気のある効率的な方法の1つとして登場しています。FFTと比較して、PEFTは全パラメータを更新するのではなく、総パラメータの小さな部分のみを変更します。PEFTは、FFTと同等のパフォーマンスを達成するために、総パラメータの1%未満を更新するだけで済みます。これにより、最適化器のメモリ要件が大幅に削減され、モデルの保存と展開が容易になります。さらに、PEFT方法の中で、LoRAはLLMで最も人気のある方法です。LoRA方法が、他のPEFT方法よりも優れたパフォーマンスを発揮する主な理由は、LoRAが低ランク行列を使用してパラメータを更新することです。LoRAフレームワークは、これらの行列を元のモデルパラメータにマージする機能を提供し、推論時の計算要件を追加しません。

さらに、LoRAを大規模言語モデルで改良しようとする多くの方法は、GLUEを使用してその効率を検証します。少ない学習可能なパラメータを必要とするか、優れたパフォーマンスを達成するかです。LoRAを大規模言語モデルで改良しようとする多くの方法は、GLUEを使用してその効率を検証します。少ない学習可能なパラメータを必要とするか、優れたパフォーマンスを達成するかです。

LoRAの実験は、継続的プレトレーニング、数学的推論、インストラクションチューニングを含む幅広いタスクで実施され、LoRAベースのフレームワークがこれらのタスクで同等のパフォーマンスを発揮することを示しています。さらに、LoRAベースのモデルは、FFTベースの方法と同等のパフォーマンスをインストラクションチューニングタスクで発揮します。しかし、LoRAベースのモデルは、継続的プレトレーニングや数学的推論タスクでFFTベースの方法と同等のパフォーマンスを発揮できません。LoRAが低ランク行列更新に依存していることが、このパフォーマンスの低下の原因である可能性があります。低ランク更新行列は、FFTでのフルランク更新を推定するのに苦労する可能性があり、特に、ドメイン固有の知識を記憶する必要があるメモリーアイテンシブなタスクでは、限界があります。MoRAは、低ランク更新行列のランクを最大化しながら、同じ数の学習可能なパラメータを使用することで、この問題に対処しようとしています。MoRAは、低ランク行列ではなく、正方行列を使用します。

次の図は、LoRAとMoRAの比較を示しています。

図(a)はLoRA、図(b)はMoRAを表しています。Wはモデルからの凍結重み、MはMoRAの学習可能な行列、AとBはLoRAの学習可能な低ランク行列、rはLoRAとMoRAのランクを表します。MoRAフレームワークは、LoRAベースのモデルよりも大きなランクを示しています。さらに、MoRAフレームワークは、学習可能な行列Mと演算子を置き換えるために、対応する非パラメータ演算子を開発します。MoRAフレームワークは、LoRAと同様に、重みをLLMにマージする機能を提供します。

次の表は、FFT、LoRA、LoRAのバリアント、および提案方法のパフォーマンスを、インストラクションチューニング、数学的推論、継続的プレトレーニングタスクで比較しています。

MoRA:方法論とアーキテクチャ

低ランク更新の影響

LoRAベースのモデルの主な原理は、FFTでのフルランク更新を低ランク更新で推定することです。従来、LoRAは、与えられた事前トレーニング済みパラメータ行列に対して、2つの低ランク行列を使用して重み更新を計算します。トレーニング開始時に重み更新が0になることを保証するために、LoRAフレームワークは1つの低ランク行列をガウシアンダイストリビューションで初期化し、もう1つの低ランク行列を0で初期化します。LoRAの全体的な重み更新は、FFTでのファインチューニングと比較して低ランクですが、低ランク更新は、インストラクションチューニングやテキスト分類などの特定のタスクで、フルランク更新と同等のパフォーマンスを発揮します。しかし、LoRAフレームワークのパフォーマンスは、継続的プレトレーニングや複雑な推論タスクなどのタスクで低下します。MoRAは、低ランク更新を使用してタスクを解決することは容易ですが、モデルは能力や知識を向上させるタスクを実行するのに苦労することを提案しています。

方法論

コンテキスト内学習を備えたLLMは、以前のアプローチと比較して大幅なパフォーマンスの向上を示していますが、依然としてファインチューニングに依存するシナリオが存在します。これらのシナリオは、主に3種類に分類できます。最初のタイプは、LLMをエンドタスクやユーザーの好みとよりよく一致させることを目的としたインストラクションチューニングであり、LLMの知識や能力を向上させることを目的としません。このアプローチにより、さまざまなタスクや複雑な指示を処理するプロセスが簡素化されます。2番目のタイプは、数学的な問題解決のような複雑な推論タスクを含みます。最後に、3番目のタイプは、LLMの全体的なドメイン固有の能力を向上させることを目的とした継続的プレトレーニングです。

さらに、LoRAのバリアントの大部分は、GLUEインストラクションチューニングやテキスト分類タスクのみを使用して、LLMのコンテキストでその有効性を評価します。インストラクションチューニングのファインチューニングには、他のタイプと比較して最も少ないリソースが必要です。したがって、LoRAバリアント間の適切な比較を提供することはできません。最近の研究では、推論タスクを評価方法に追加することが一般的になっています。しかし、小さなトレーニングセット(例えば、100万サンプル)を使用します。LLMは、このサイズの例から適切な推論を学習するのに苦労します。例えば、一部のアプローチでは、GSM8Kを使用しますが、トレーニングエピソードはわずか7,500個です。さらに、SOTA方法は39.5万サンプルでトレーニングされています。これらの数字は、LLMの推論能力を学習する能力を判断することを困難にします。

低ランク更新の影響に関する観察に基づいて、MoRAフレームワークは、低ランク更新の悪影響を軽減するための新しい方法を提案します。MoRAフレームワークの基本原理は、同じ数の学習可能なパラメータを使用して、低ランク更新行列のランクを最大化することです。事前トレーニング済みの重みを考慮すると、LoRAフレームワークは、ランクrの2つの低ランク行列AとBを使用して、合計で学習可能なパラメータを使用します。しかし、同じ数の学習可能なパラメータの場合、正方行列は最大のランクを達成できます。MoRAフレームワークは、入力次元を減らし、出力次元を増やすことで、学習可能な正方行列を実現します。さらに、これらの関数は非パラメータ化された演算子でなければなりません。次元に対して線形時間で実行されることが期待されます。

MoRA:実験と結果

MoRAフレームワークのパフォーマンスを評価するために、幅広いタスクで評価しました。UUIDのペアを記憶する、ファインチューニングタスク、およびプレトレーニングタスクの3つのタスクで、ハイランク更新の影響を理解しました。

UUIDのペアを記憶する

パフォーマンスの向上を示すために、MoRAフレームワークは、FFTとLoRAフレームワークと比較して、UUIDのペアを記憶するタスクで評価されました。実験からのトレーニング損失は、次の画像に反映されています。

同数の学習可能なパラメータの場合、MoRAフレームワークは既存のLoRAモデルを上回り、高ランク更新戦略の利点を示しています。次の表は、さまざまなトレーニングステップでの文字レベルのトレーニング精度をまとめたものです。

LoRAと比較して、MoRAフレームワークは、UUIDのペアを記憶するために必要なトレーニングステップが少ないことがわかります。

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

MoRAフレームワークのファインチューニングタスクのパフォーマンスを評価するために、大規模言語モデル用に設計された3つのファインチューニングタスクで評価しました。インストラクションチューニング、数学的推論、および継続的プレトレーニングです。MoRAモデルとLoRAモデルの両方で、高品質の対応データセットを使用しました。ファインチューニングタスクの結果は、次の表に示されています。

LoRAモデルとMoRAモデルは、数学的推論とインストラクションチューニングタスクで同等のパフォーマンスを示しています。しかし、MoRAモデルは、財務および医療のドメインで継続的プレトレーニングタスクでLoRAフレームワークを上回り、高ランク更新アプローチの利点を示しています。さらに、3つのタスクはそれぞれ異なっており、異なる要件とファインチューニング能力を持っています。

プレトレーニング

ハイランク更新の全体的なパフォーマンスへの影響を評価するために、MoRAフレームワーク内のトランスフォーマーは、C4データセットからスクラッチでトレーニングされ、LoRAモデルとReLoRAモデルと比較して評価されました。C4データセットでのプレトレーニング損失と複雑さは、次の図に示されています。

MoRAモデルは、LoRAモデルとReLoRAモデルと比較して、プレトレーニングタスクで優れたパフォーマンスを示しています。

さらに、低ランク更新行列の学習された低ランク更新行列のスペクトルを分析することで、ハイランク更新のランクへの影響を示すために、MoRAフレームワークは、250Mモデルのプレトレーニングで学習された低ランク更新行列のスペクトルを分析しました。結果は、次の画像に示されています。

最終的な考え

この記事では、LoRAフレームワークのパフォーマンスに低ランク更新が与える影響について話し合いました。低ランク更新メカニズムが、LLMが新しい知識を学習し、記憶する能力を妨げる可能性があることが観察されています。同様に、この記事では、同じ数の学習可能なパラメータを使用して高ランク更新を実現する新しい方法であるMoRAについて話し合いました。MoRAフレームワークは、低ランク行列ではなく、正方行列を使用します。MoRAフレームワークは、入力次元を減らし、出力次元を増やすことで、正方行列の学習可能な行列を実現します。さらに、これらの演算子により、重みをLLMにマージすることが可能になり、MoRAフレームワークはLoRAと同様に展開可能になります。

職業はエンジニア、心は作家。クナルは、AIとMLを深く愛し理解しているテクニカルライターで、これらの分野の複雑な概念を魅力的で情報の多いドキュメンテーションを通じて簡素化することに尽力しています。