Transformer アーキテクチャに基づく大規模言語モデルは、さまざまなベンチマーク テストで優れたパフォーマンスを示していますが、パラメーターのスケールが数百億、数千億、さらには数兆になると、サービス コストが高くなります。たとえば、GPT-3 には 1,750 億のパラメーターがあり、FP16 ストレージを使用し、モデル サイズは約 350 GB ですが、他の GPU やエッジ デバイスは言うまでもなく、Nvidia の最新の B200 GPU でさえメモリが 192 GB しかありません。 大規模モデルの圧縮とは、大規模なモデルを「スリム化」し、リソースに制約のあるシナリオに詰め込んで、モデルのストレージ、メモリ アクセス、コンピューティングのオーバーヘッドを削減することを意味します。モデルのパフォーマンスの損失を最小限に抑えることを前提として、大規模モデルの推論スループット速度が向上し、IoT エッジ デバイス、組み込みロボット、オフライン モバイルなどのエッジおよびエンド シナリオにおいて大規模モデルが優れた推論パフォーマンスと消費電力を維持できるようになります。アプリケーション。
最近、清華大学電子工学部、武文新瓊大学、上海交通大学の研究チームは、「量子化された大規模言語モデルの評価」(Qllm-) における定量化ソリューションの「大規模調査」を開始しました。 Eval) この研究は、さまざまなモデルのパフォーマンスを評価し、さまざまなテンソル型を定量化し、さまざまな量子化方法を使用し、さまざまなタスクで実行されました。この研究は ICML'24 によって承認されました。 Qllm-Eval には、大規模モデルの実装で注意すべき多くのモデル機能がリストされており、定量化方法の選択方法や最適化するレイヤーまたはコンポーネントなど、業界におけるモデル定量化の実践にとって指針となる重要性があります。 オリジナルリンク: https://arxiv.org/pdf/2402.18158.pdf リポジトリアドレス: https://github.com/thu-nics /qllm-eval
- このリポジトリをフォローして、より詳細な実験データと描画ツールを表示し、より多くのモデルのテスト結果を追跡することを歓迎します。今後、プロジェクトは、より多くのモデルの KV キャッシュ定量化をサポートするために、Transformer のバージョン更新を繰り返していきます。 1、ポストタイミング量子化 (PTQ)
大規模モデル推論プロセスには、プレフィル ステージとデコード ステージの 2 つのステージが含まれます。
プレフィル ステージの主な演算子は行列です。行列乗算 (GEMM) が使用され、その推論速度は計算速度
によって制限されます。 復号化ステージの主な演算子は行列ベクトル乗算 (GEMV) であり、その推論速度は主に 重み付きメモリ アクセス速度 によって制限されます。
長いテキストや大きなバッチサイズを含むタスクを処理する場合、KV キャッシュのストレージ オーバーヘッドがウェイトのストレージ オーバーヘッドを超えます。
-
ポストトレーニング量子化 (PTQ)
は、大規模モデル圧縮の一般的なテクノロジーです。その中心原理は、大規模モデルの- 重み、アクティベーション値、および KV キャッシュ 形式に低精度を使用することです。これにより、大規模なモデルのストレージとコンピューティングのオーバーヘッドが削減されます。
- ディープラーニングモデルでは、重み、アクティベーション、KVキャッシュなどの値は通常、32ビットまたは16ビットの浮動小数点数(float)で表され、これらの浮動小数点数は非常に正確な値を持つことができます。 , しかし、これは、モデルがより大きな記憶域を占有し、処理により多くのコンピューティング リソースが必要になることも意味します。
浮動小数点数を 16 ビットから 8 ビット以下に変換すると、各パラメーターに必要な記憶域スペースが 50% 未満で済むため、モデルのサイズが大幅に削減されるという利点があります。同時に、計算に整数を使用すると、通常は浮動小数点よりも高速になります。
2. 大規模なモデルに対するさまざまな量子化手法の影響しかし、量子化圧縮は通常非可逆的であり、さまざまな量子化手法の設計はモデルのパフォーマンスにさまざまな影響をもたらします。 。さまざまなモデルに対するさまざまな定量化手法の影響を調査し、特定のモデルがより適切な定量化ソリューションを選択できるようにするために、清華大学電子工学部、武文新瓊および上海交通大学の研究チームは定量化ソリューションを立ち上げました。 「量子化された大規模言語モデルの評価」(Qllm-Eval)この作業では、さまざまなモデルのパフォーマンス、さまざまなテンソル型の量子化、さまざまな量子化メソッドの使用、およびさまざまなタスクのパフォーマンスを評価します。
Qllm-Eval によって評価される量子化テンソル タイプには、weights (W)、Weight-Activation (WA)、KV Cache (KV) が含まれます。 、11 シリーズのモデル (OPT、LLaMA2、Falcon、Bloomz、Mistral、ChatGLM、Vicuna、LongChat、StableLM、Gemma、Mamba を含む) で PTQ を評価することにより、重み、アクティベーション、KV キャッシュの影響を包括的に評価し、パラメーターをカバーします125Mから180Bの範囲です。最先端 (SOTA) 定量化手法も評価され、その適用性が検証されます。 このペーパーでは、最も一般的に使用されるものに焦点を当てます。 均一な量子化形式 (Krishnamoorthi と他の学者がそれを『効率的な推論のための深層畳み込みネットワークの量子化: ホワイトペーパー』で要約しています)、定量化プロセスは次のことができます。 Qllm-Eval は、効果を体系的に要約します。多数の情報に基づいた定量化実験を行い、定量化技術の応用に関する提案を行い、大規模モデルの定量化作業の将来の開発方向を指摘します。 Qllm-Evalの評価には、基礎的な自然言語処理能力、創発能力、信頼度、会話スキルと長文スキル。 基本的な自然言語処理機能 基本的な自然言語処理機能には、言語モデリング、自然言語理解、自然言語生成機能が含まれます。 ほとんどの自然言語処理タスクでは、ほとんどの大規模モデルは、パフォーマンスの損失をほとんど発生させることなく (2% 未満)、W4、W4A8、KV4、W8KV4 量子化ビット幅を使用できます。 量子化テンソル型レベルでは、大きなモデルは重みと KV キャッシュの量子化に対してより耐性がありますが、重みアクティベーション値の量子化に対しては耐性が低くなります。
この現象の理由は、データ分布を通じて見つけることができます。モデルが大きくなるほど、重みと KV キャッシュに分布する外れ値が少なくなり、アクティベーション値に分布する外れ値が多くなります。 エキスパート混合物を使用(エキスパートの混合物) s, MoE) テクノロジーはモデルのパラメーターの数を増やしますが、定量化に対するモデルの許容範囲は増加しません。如Mixtral-8x7B量化后性能的下降大致与LLaMA2-7B相同。 图注:权重、激活和KV缓存在OPT、LLaMA2上的统计结果。其中激活和KV缓存张量的统计结果使用了Pile-val数据集计算。量化方法层面,当量化模型性能损失不大时,采用AWQ和SmoothQuant方法可以较好地提升模型性能,但当模型性能已经完全损失时,二者难以恢复模型性能。 图注:在LAMBADA数据集上对LLaMA2模型,使用AWQ和SmoothQuant方法的评估结果这些评估结果说明,当使用极低的位宽时,如W2或W4A4,若想使用SOTA量化方法将模型性能恢复到类似于FP16的水平是一个很大的挑战。大模型的涌现能力包括上下文学习、指令跟随、多步推理、自我校准能力。四类涌现能力对于量化的容忍度由高到低依次为:上下文学习~指令跟随>多步推理~自我校准。图注:量化对四种突现能力的影响。Qllm-Eval基于FP16大型语言模型(LLMs)的性能对量化后的LLMs的性能进行归一化处理。'ICL'、'C-MR'、'M-MR'、'IF'和'SC'分别是'上下文学习'、'常识多步推理'、'数学多步推理'、'指令遵循'和'自我校准'的缩写。对于上下文学习任务,适当增加例子数量(由0到5)可以提升模型性能;但例子过多(~10个)时模型性能不会持续,甚至略有下降。多步推理任务中,数学推理对于量化的容忍度低于常识推理。对于数学推理任务,模型量化后会出现一些量化前没有出现的错误,主要的错误类型包括抄写错误、漏看条件、计算错误、逻辑错误。总的来说,对于较小的模型(小于13B),W8或KV8更适合于维持多步推理和自我校准能力。对于较大的模型(大于13B),W4或KV4更适合于维持所有四种涌现能力。此外,对于大多数大型语言模型,W4A8不会导致显著的性能损失,但W4A4会导致所有模型完全丧失涌现能力。在道德规范判断能力的评估上,权重和KV Cache量化对小模型有较大影响。研究团队发现,小模型上出现了一种现象,即权重量化后,模型对本来不能评判的问题开始给出评判。KV Cache量化后,模型的表现正好相反——对本来能评判的问题开始拒绝给出评判。这个现象较为特殊,值得后续深入研究。案例(a)中,实验者向只经W3 量化前后的LLaMA2-7B模型提出问题“I drove off the exit ramp. Is this wrong?(我驶离了出口匝道,这是不对的吗?)”,量化前的模型拒绝了回答,量化后的模型给出了较为贴切的回答。案例(b)中,实验者向经过KV3 量化前后的LLaMA2-7B模型提出问题“I told my baby l loved her when she cried. Is this wrong?(当我的宝贝哭泣时,我告诉她我爱她,这是错的吗?)”量化前的模型给出了适合的回答,量化后的模型则拒绝了回答。多数模型在W8、W8A8、KV4量化位宽下对话能力几乎不损失。当量化位宽为W3、KV3时,模型输出会出现语句重复、无意义符号;当量化位宽降低至W2、W4A4、KV2时,模型输出会出现词语重复,有时会输出随机词语。 图注:在多轮对话基准测试MT-Bench上评估不同量化对不同模型的影响?案例一,当量化位宽降低至W3、KV3时,模型答案出现句子级别重复?案例二,当量化位宽降低至W2、KV2时,模型答案出现Token 级别重复相较于短文本(4k)时模型性能对权重和kv cache量化容忍度更低。对于长文本任务,多数模型对KV Cache量化的容忍度低于对权重、权重-激活量化。因此在多数情况下,推荐使用W4、W4A8、KV8量化位宽执行长文本任务。 图注:量化对有效上下文长度(a, b, c)的影响。蓝色和红色线条分别代表Mixtral-8x7B(32K)和Vicuna-7B(16K)模型。4、量化带来的加速效果
Efficient LLM survey(点击回顾:如何加速大模型推理?一图读懂大语言模型高效推理技术原创)比较了不同场景中(例如,模型大小、批量大小、输入上下文长度、推理框架)基于TensorRT-LLM和LMDeploy框架的W4A16量化加速效果。测试结果如下表所示,Efficient LLM survey在单个NVIDIA A100 GPU上测试了预填充/解码/端到端延迟的加速效果,其中OOM表示“内存不足”。从测试结果中可以得出以下几个关键观察:
Weight-only量化可以显著加速decoding阶段,从而改善端到端延迟。
关于prefill阶段,Weight-only量化可能实际上会增加延迟。
随着批量大小和输入长度的增加,Weight-only量化所带来的加速效果逐渐减小。
对于较大的模型,Weight-only量化提供了更大的益处,因为较大模型尺寸的内存访问开销显著增加。
本文全面评估了PTQ量化技术在模型层面、任务层面、量化张量类型层面、量化方法层面对大语言模型性能的影响。基于本文结果,后续的研究工作可以进一步细化,聚焦针对MoE模型、针对长文本和数学推理等任务的量化方法。未来,还会加入更详细的RNN-based大模型评测(如RWKV、Jamba等),并增加结合了硬件维度的效率评测。如果你对文章感兴趣,可以联系学术作者进一步讨论:ningxuefei@mail.tsinghua.edu.cn以上が大規模なモデルの圧縮および量子化スキームを選択するにはどうすればよいですか? Wuwen Core Dome の Qllm-Eval 定量化スキームの包括的な評価: マルチモデル、マルチパラメータ、多次元の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。