ホームページ >テクノロジー周辺機器 >AI >大規模な言語モデル(LLMS)の量子化:AIモデルサイズを効率的に削減する

大規模な言語モデル(LLMS)の量子化:AIモデルサイズを効率的に削減する

Christopher Nolan
Christopher Nolanオリジナル
2025-03-05 09:10:13788ブラウズ

ラップトップで独自のchatgptを実行する:LLM量子化のガイド

ラップトップで直接自分のchatgptを実行することを夢見たことがありますか? 大規模な言語モデル(LLMS)の進歩のおかげで、これは現実になりつつあります。 キーは量子化です。これは、パフォーマンスの損失を最小限に抑えて消費者ハードウェアに適合するようにこれらの大規模なモデルを縮小する手法です(正しく行われた場合!)。このガイドでは、量子化とその方法を説明し、2つの簡単なステップでFaceのQuantoライブラリを抱きしめてモデルをQuantizeする方法を示します。 DataCamp Datalabを使用してフォローしてください

llmsの増え続けているサイズ

llmsは複雑さで爆発しました。 GPT-1(2018)には010億パラメーターがありました。 GPT-2(2019)、15億; GPT-3(2020)、なんと1750億。そして、GPT-4は1兆以上を誇っています。この大成長は、メモリボトルネックを作成し、トレーニングと推論の両方を妨げ、アクセシビリティを制限します。 量子化は、パフォーマンスを維持しながらモデルのサイズを縮小することでこれを解決します。

量子化の理解

量子化は、モデルの重みと活性化の精度を低下させるモデル圧縮技術です。 これには、データを高精度のタイプ(32ビットの浮動小数点など)から低精度タイプ(8ビット整数など)に変換することが含まれます。 ビットが少ないということは、モデルが小さいことを意味し、メモリ、ストレージ、エネルギーが少なくなります。

画像圧縮について考えてください:高解像度の画像は、Web使用のために圧縮され、サイズと読み込み時間をいくつかの詳細を犠牲にします。 同様に、LLMを量子化すると計算需要が減少し、強力なハードウェアで実行できます。

より高速なWeb読み込みのための画像圧縮

量子化はノイズ(量子化エラー)を導入しますが、研究ではパフォーマンスを維持するためにこれを最小化することに焦点を当てています。

量子化の背後にある理論Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

量子化は通常、モデルの重みをターゲットにします。これは、ニューロン間の接続の強度を決定するパラメーターです。 これらのウェイトは最初はランダムで、トレーニング中に調整されます。 簡単な例は、小数点以下の小数を丸めることです。

例:重量マトリックス(左)とその量子化バージョン(右)。

元のマトリックスと量子化されたマトリックスの違いは、量子化誤差です。

量子化エラーマトリックス

実際には、量子化にはデータ型(ダウンキャスティング)の変更が含まれます。 たとえば、Float32(パラメーターあたり4バイト)からINT8(パラメーターごとに1バイト)に変換すると、メモリ使用量が大幅に削減されます。

脳浮動小数点(BF16)およびダウンキャスティング

Googleが開発した

BF16は、Float32のダイナミックレンジとFloat16の効率のバランスを提供します。ダウンキャスティング - 高精度から低精度データ型への変換 - 特にデータ型が小さい場合、データの損失とエラーの伝播につながる可能性があります。 量子化のタイプ

いくつかの量子化タイプが存在します:

線形量子化:
    マップフローティングポイント値は、固定点範囲に均等になります。 最小値/最大値、スケール、ゼロポイント、量子化、および非積極化(推論中)の計算が含まれます。

線形量子化方程式 Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

例:重量マトリックスの線形量子化

Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

脱来誤差と量子化誤差

ブロックワイズの量子化:Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently 小さなブロックの重みを量子化し、不均一な分布をより効果的に処理します。

重量対活性化量子化:
    量子化は、重量(静的)と活性化(動的)の両方に適用できます。 活性化量子化はより複雑です
  • トレーニング後の量子化(PTQ)対量子化対応トレーニング(QAT):

    PTQは、事前に訓練されたモデルを定量化します。 QATは、量子化効果をシミュレートするトレーニングを変更し、精度が向上しますが、トレーニング時間の増加につながります。
  • キャリブレーション 一部の方法では、キャリブレーションが必要です。量子化パラメーターを最適化するためにデータセットの推論を実行します。 手法には、パーセンタイルキャリブレーションと平均/標準偏差キャリブレーションが含まれます。 Qloraのような方法は、キャリブレーションを避けています 量子化のためのツール

  • PytorchやTensorflowを含むいくつかのPythonライブラリが量子化をサポートしています。 FaceのQuanto Libraryを抱き締めることで、Pytorchモデルのプロセスが簡素化されます。
  • 顔のQuanto

    を抱きしめてモデルを量子化します Pythia 410Mモデルを使用した段階的なガイド:を使用してください

    1. モデルをロードします:事前に訓練されたモデルとトークンザーをロードします
    from transformers import AutoModelForCausalLM, AutoTokenizer
    model_name = "EleutherAI/pythia-410m"
    model = AutoModelForCausalLM.from_pretrained(model_name, low_cpu_mem_usage=True)
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    1. QUANTIZE:使用してモデルを変換します。 quantize()
    from quanto import quantize, freeze
    quantize(model, weights=torch.int8, activations=None)
      freeze:
    1. 使用を使用して、体重に量子化を適用します。 freeze()
    freeze(model)
      結果を確認してください:
    1. モデルサイズの削減とテスト推論を確認します。 (注:はカスタム関数です。実装についてはDatacamp Datalabを参照してください)。 compute_module_sizes()

    Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently 結論Quantization for Large Language Models (LLMs): Reduce AI Model Sizes Efficiently

    Quantizationは、LLMSをよりアクセスしやすく効率的にします。 そのテクニックを理解し、FaceのQuantoを抱き締めるなどのツールを使用することで、強力なハードウェアで強力なモデルを実行できます。 大規模なモデルについては、リソースのアップグレードを検討してください

    llm量子化FAQ

    • Qat vs. PTQ:QATは一般的にパフォーマンスが向上しますが、トレーニング中はより多くのリソースが必要です。
    • QUANTO LIBRARY:PTQとQATの両方をサポートしています。 暗黙のキャリブレーションが含まれています。カスタムキャリブレーションにはquantize()メソッドが利用できます calibration()
    • 精度:
    • int4およびint2の量子化が可能です。
    • 抱きしめる顔モデルへのアクセス:
    • 変数を目的のモデルに変更します。 Faceの利用規約を抱き締めることを忘れないでください model_name

以上が大規模な言語モデル(LLMS)の量子化:AIモデルサイズを効率的に削減するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。