LoRA とQLoRA

URL をコピー

LoRA (低ランク適応) と QLoRA (量子化低ランク適応) はどちらも AI モデルのトレーニング技法です。より厳密には、高パラメーター効率ファインチューニング (PEFT) の一形態であり、大規模言語モデル (LLM) のトレーニングにおいて他の方法よりもリソース効率が高いことから、利用が拡大しているファインチューニングの技法です。 

LoRA と QLoRA はどちらも LLM の効率的なファインチューニングに有効ですが、この 2 つの技法は、ファインチューニングによって目的とする結果を得るためのモデルの処理方法とストレージの消費量が異なります。

Red Hat AI の詳細 

LLM は、膨大な数のパラメーター (数十億に達することもあります) で構成される複雑なモデルです。これらのパラメーターにより、一定量の情報をもとにモデルをトレーニングできます。パラメーターの数が増えるほど、必要なデータストレージ容量も増え、モデルの能力も総合的に高まります。

従来のファインチューニングにおいて LLM を更新するためには、個々のパラメーターをフィットし直す (つまり、更新または調整する) 必要があります。場合によっては、何十億というパラメーターのファインチューニングが必要になることもあり、多大なコンピュート時間と費用がかかります。

各パラメーターを更新することで、「オーバーフィット」につながることもあります。オーバーフィットとは、AI モデルが一般的なトレーニングデータの他に、「ノイズ」や不要なデータまで学習している状態を指す用語です。

基盤モデルとは 

学校での授業に例えて考えてみましょう。このクラスの生徒たちは 1 年をかけて数学を勉強してきました。そして期末テストの直前、先生は割り算の筆算で、計算過程を詳しく書く長除法をくれぐれも忘れないようにと生徒たちに念を押します。すると、テスト中、多くの生徒が必要以上に長除法に気を取られてしまった結果、重要度ではそれに勝るとも劣らない、問題を解くための方程式が思い出せなくなってしまいました。従来のファインチューニングにおける LLM のオーバーフィットでも、これと同じことが起こるわけです。

オーバーフィットの問題に加え、従来のファインチューニングにはリソース面でもかなりのコストがかかります。

QLoRA と LoRA はいずれも、フルファインチューニングに対し、より簡単に、より効率よくファインチューニングを行うための技法です。すべてのパラメーターをトレーニングするのではなく、モデルを行列に分解し、新しい情報の学習に必要なパラメーターのみをトレーニングします。

先ほどのテストの例えで言えば、この 2 つのファインチューニング技法なら、モデルが他のトピックに集中するのを妨げることなく、新しいトピックを効率的に覚えさせることができます。

PEFT (高パラメーター効率ファインチューニング) の詳細はこちら

Red Hat AI

LoRA では、新たなパラメーターを使って、新たなデータで AI モデルをトレーニングします。

モデル全体、そして事前トレーニング済みのウェイトすべてをトレーニングするのではなく、これらを保留または「凍結」し、パラメーターのサンプルサイズを少なくした上でトレーニングします。このサンプルサイズは「低ランク (low-rank)」適応行列と呼ばれ、これが LoRA という名前の由来です。

低ランクと呼ばれるのは、パラメーターとウェイトの数が少ない行列だからです。トレーニングが終わると、元のパラメーターと融合されて 1 つの行列として機能するので、さらに効率的にファインチューニングを行えます。

LoRA 行列は、本来の行列に追加された 1 つの行または列と考えるとわかりやすいでしょう。

これがトレーニングが必要なパラメーターの全体だとします。

 

4x4 grid each cell contains a letter "P"

 

パラメーター内のすべてのウェイトをトレーニングするには、かなりの時間、費用、メモリーが必要となります。トレーニングが完了しても、さらなるトレーニングが必要になることもあり、その過程で多くのリソースが無駄になります。

この列は低ランクウェイトを表しています。

 

A single column made up of four cells. A letter "L" in each cell.

 

新しい低ランクパラメーターのトレーニングが完了すると、元の行列に「行」または「列」が 1 つ追加され、新たなトレーニングをパラメーター全体に適用できます。

 

5X4 grid with the cells of the first column containing the letter "L". All other cells contain the letter "P"

 

これで、AI モデルは新たにファインチューニングされたウェイトで動作できるようになります。

低ランクウェイトのトレーニングなら、かかる時間も、メモリーも、コストも少なくなります。決められたサンプルサイズのトレーニングが終わると、学習した内容をより大規模な行列内で適用でき、余分なメモリーを消費しません。 

生成 AI とは

LoRA は、より少ない時間、リソース、手間でモデルのファインチューニングを可能にする技法です。結果、以下のようなメリットが明らかになりました。

  • トレーニングが必要なパラメーターが少ない。
  • オーバーフィットのリスクが減る。
  • トレーニング時間が短い。
  • 使用するメモリーが少ない。
  • 柔軟に調整できる (トレーニングをモデルの一部に適用し、他の部分には適用しないことも可能)。

エンタープライズで AI が機能する仕組み 

QLoRA は、LoRA を拡張した技法です。同様の技法ですが、LoRA のメリットに加えてメモリー使用量を抑えられます。

「QLoRA」の「Q」は「量子化 (quantized)」を意味します。この文脈でのモデルの量子化とは、きわめて複雑で正確なパラメーター (小数点以下の桁数が多く、メモリー消費量が多い) を、より小さく簡潔なパラメーター (小数点以下の桁数が少なく、メモリー消費量が少ない) に圧縮することを意味します。

量子化の目的は、1 つのグラフィックス・プロセッシング・ユニット (GPU) のストレージとメモリーを使ってモデルをファインチューニングすることにあります。これを 4 ビット NormalFloat (NF4) という新しいデータタイプを用いて行います。NF4 は、LoRA よりもさらに少ないメモリー消費量で行列を量子化できます。パラメーターをより小さく管理しやすいデータに圧縮することで、必要なメモリーフットプリントを元の最大 4 分の 1 に減らせます。

モデルが量子化されると、サイズが小さくなり、ファインチューニングしやすくなります。

こちらがモデルの元のパラメーターだとします。

 

A row of cells each containing the letter "P" representing 12 parameters. 3 are green, 6 are blue, 2 are yellow, and 1 is pink

 

12 のパラメーターのうち、3 つは緑、6 つは青、2 つは黄色、1 つはピンクです。量子化されると、モデルは元のモデルを圧縮した形で表現されます。 

 

A row of 4 cells, 1 green, 2 blue, and 1 yellow.

 

量子化後のサンプルサイズは、緑が 1 つ、青が 2 つ、黄色が 1 つとなります。

量子化する際、一部のデータは小さすぎて圧縮時に失われるリスクがあります。たとえば、ピンクのパラメーターが 1 つありましたが、パラメーター全体に占める割合があまりに小さく、圧縮バージョンに引き継ぐのに十分なデータ量でなかったため、圧縮後は失われています。

この例では、パラメーター数は 12 から 4 に圧縮されています。しかし実際には、数十億のパラメーターが、1 つの GPU でファインチューニングに対応できるような限られた数に圧縮されます。

新たにトレーニングされた行列を元の行列に戻した際に、元のパラメーターから失われたデータを回復できて、精度や正確さが損なわれないのが理想的ですが、それは保証されません。

この技法は、HPC (高性能計算) を活用しつつ、メモリー容量の管理の必要性を減らします。そのため、限られたリソースで対応すると同時に、モデルの正確さを極めて高い水準に保てます。 

量子化モデルによるロングコンテキストタスクの処理の仕組みを見る

QLoRA は、メモリー要件の管理の必要性を減らすことを重視した技法です。LoRA と同様に、より迅速で簡単なファインチューニング・トレーニング・プロセスを可能にする、効率性が優先されます。結果、以下のようなメリットが明らかになりました。

  • LoRA よりもメモリー消費量が少ない
  • データのオーバーフィットを回避できる
  • 高い水準の正確さを維持できる
  • 迅速で軽量なモデルチューニング

LLM を量子化すると、精度はどの程度失われるのでしょうか。量子化された LLM を 50 万回にわたって評価した結果をご覧ください。

LoRA は、効率的なファインチューニング技法として単独で使用できます。QLoRA は、LoRA を基盤に、効率性を高める技法をさらに追加した拡張版です。QLoRA のほうが、使用するストレージははるかに少なくなります。

自社のニーズに対してどちらの技法を使えばよいか迷ったときは、使用できるストレージとリソースの容量を検討することをお勧めします。ストレージが限られている場合は、QLoRA の方が実行しやすいでしょう。

Models-as-a-Service とは 

Red Hat® AI は、AI 導入の初期段階にある企業から、ハイブリッドクラウド全体に AI を拡張する準備ができている企業まで、AI 導入のあらゆる段階で役立つ製品およびサービスのポートフォリオです。

小規模な専用設計モデルと柔軟なカスタマイズ技術により、どこでも開発およびデプロイできる柔軟性をもたらします。

Red Hat AI の詳細

リソース

エンタープライズ AI を始める:初心者向けガイド

この初心者向けガイドでは、Red Hat OpenShift AI と Red Hat Enterprise Linux AI によって AI 導入をどのように加速できるのかについて説明します。

Red Hat AI

Red Hat AI は、ハイブリッドクラウド環境全体にわたって AI ソリューションの開発とデプロイメントを加速する、柔軟でコスト効率に優れたソリューションを提供します。

関連情報

説明可能な AI とは

説明可能な AI (XAI) は機械学習 (ML) ライフサイクル中に適用される技法で、AI による出力を人間にとってより理解しやすく透明性の高いものにします。

小規模言語モデル (SLM) と大規模言語モデル (LLM) の違いとは?

小規模言語モデル(SLM)は、大規模言語モデル(LLM)よりもパラメーター数が少なく、軽量で効率的に動作するモデルで、専門的な知識を備え、より迅速にカスタマイズできます。

Granite モデルとは?をわかりやすく解説

Graniteモデルとは、IBMがビジネス用途向けに開発した、大規模言語モデル(LLM)のシリーズ。Apache 2.0ライセンスの下で提供されており、無料で使用、修正、配布できます。

AI/MLリソース

関連記事