低ランク適応(LoRA)とは何か

低ランク適応(LoRA)とは、モデル全体を再学習することなく、大規模な機械学習モデルを特定の用途に適応させる方法です。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • 「低ランク適応」(LoRA)の定義
  • LoRAの仕組みを簡単に説明する
  • LoRAを使用する利点を理解する

記事のリンクをコピーする

低ランク適応(LoRA)とは何か

低ランク適応(LoRA)は、機械学習モデルを新しいコンテキストに迅速に適応させるための手法です。LoRAは、巨大で複雑な機械学習モデルをより特定の用途に適したものにするのに役立ちます。LoRAは、モデル全体を変更するのではなく、元のモデルに軽量の部分を追加することで機能します。LoRAは、開発者が構築する機械学習モデルのユースケースを迅速に拡大するのに役立ちます。

LoRAの役割とは?

ChatGPTのような大規模言語モデル(LLM)に使われるような大規模で複雑な機械学習モデルは、セットアップに長い時間と多くのリソースを必要とします。特定の値に設定された何兆ものパラメータを持っているかもしれません。このプロセスが完了すると、通常モデルは強力で正確性を増す可能性がありますが、特定のタスクを実行するために必ずしも微調整される必要はありません。

特定のコンテキストでモデルが機能するようにするには、すべてのパラメーターを変更する、多くの再トレーニングが必要になる可能性があります。このようなモデルにはパラメーターが多いため、再トレーニングにはコストと時間がかかります。LoRAは、再トレーニングすることなくモデルを素早く適応させる方法を提供します。

Jimがヨーロッパから北米に移住したが、すべての電化製品(電子レンジ、湯沸かしポットなど)のコンセントが新しい家のコンセントに合わないとします。これは、この2つの地域間で電気プラグの規格が異なるためです。Jimには、機器のコンセントに合うように自宅にあるすべてのコンセントを取り外して交換する、または、安価なコンセント用アダプターをいくつか購入し、それを使用して機器に接続すると言う2つの選択肢があります。

LoRAはこのJimのケースの2つ目の選択肢のようなものです。LoRAは、モデルを最初から最後まで完全に再トレーニングするのではなく、軽量で変更可能な部分をモデルに追加することで、新しいコンテキストに適合させます。AI開発者にとって、これははるかに高速かつリソース消費が少ない選択肢です。これはJimが請負業者を雇って壁にあるコンセントを置き換えるよりも、工具店でいくつかのアダプターを購入する方が安価に済むのと同じです。

低ランク適応は機械学習モデルにどのような影響を与えるか?

機械学習モデルは、機械学習アルゴリズムとデータセットを組み合わせたものです。この組み合わせの結果、これまで見たことのないデータセットであっても、パターンを識別したり、オブジェクトを見つけたり、項目間の関係を描くことができるコンピュータープログラムになります。

テキストの生成、画像の生成、その他の機械学習の最新アプリケーションの実行といった複雑なタスクの場合、モデルは大量のデータから得られるため、非常に複雑なアルゴリズムが使用されます。アルゴリズムまたはデータセットをわずかに変更すると、モデルによって異なる結果が生成されます。しかし、特定のコンテキストで必要とされる種類の結果を取得するためには、多くのトレーニングが必要になる可能性があります。

LoRAは、モデル全体を再構築する代わりに、モデルの重み*とパラメータをそのまま固定します。その後、この元のモデルの上に低ランク行列と呼ばれる軽量な追加部分を加え、これを新しい入力に適用して、特定のコンテキストに合わせた結果を取得できるようにします。この低ランク行列は元のモデルの重みを調整し、出力が望ましい使用例に一致するようにします。

*機械学習モデルにおいて、「重み」とは、さまざまな入力の重要度を決定するための数学的な値です。

LoRAにおける低ランク行列とは何か

数学における行列とは、次のような数の配列または集合のことです:

低ランク行列の例:1列目(2、4、6)、2列目(4、8、12)、3列目(6、12、18)

行列は、機械学習モデルやニューラルネットワークの動作において重要な役割を果たします。このような用途では、行列は上記の例よりもはるかに大きくなる可能性があります。LoRAにとって、重要なことは、低ランクの行列は小さく、より大きな行列よりも小さい値を持つということです。これらは多くのメモリを消費せず、加算または乗算のステップも少ないため、コンピューターはそれらをより速く処理することができます。

LoRAは、固定された元の機械学習モデルに低ランク行列を追加します。これらの行列には、結果を生成する際にモデルに適用される新しい重みが含まれています。このプロセスにより、最小限の計算能力とトレーニング時間でモデルが生成する出力が変更されます。

上記の例では、Jimは自分の家電のコンセントを壁のコンセントに差し込むために、安価なアダプターを購入しました。低ランク行列は安価なアダプターのようなもので、壁側のコンセントが元の機械学習モデルに該当します。

機械学習の仕組みは?

機械学習とは、人間から特定の指示を受けることなくデータ内のパターンを見つけることを学習することができる統計アルゴリズムの一種を指す用語です。機械学習は、例から一般化して、これまで見たことのないデータを分類することができます。多くの種類の人工知能(AI)アプリケーションの基盤となっています。

Cloudflareでは、開発者は以下のようなサービスを通じて、よく使われる機械学習モデルとの連携を素早く図ることができます:

詳細についてはCloudflare for AIプラットフォームをご覧ください。