見出し画像

携帯のGPUでLLMを効率的に実行する論文紹介

論文名

Transformer-Lite: High-efficiency Deployment of Large Language Models on Mobile Phone GPUs

arXivリンク

https://arxiv.org/pdf/2403.20041.pdf

ひとこと要約

モバイル端末のGPUで大規模言語モデル(LLM)を効率的に実行するTransformer-Liteを提案。


メモ

手法

  • シンボリック式に基づくアプローチにより、動的な入力形状のモデル推論をサポート

    • LLMは入力トークン数が動的に変化するため(テンソルの形状も動的に変化するため)テンソルの不明な次元をシンボリック式で表現し、メモリ再利用やスケジューリングを行う。(入力トークン数をNとすると、テンソルの形状を以下のようにシンボリック式で表現できる。

      • [N, 128]

      • [N * 2, 256]

      • [batch_size, N, 1024])

  • オペレーター最適化と実行優先度設定により、推論速度を高速化し、端末のラグを低減

    • 半精度活性化関数の計算と4bit量子化重みを直接扱う行列積を実装し、メモリ帯域幅を最大限活用(活性化関数の計算は精度を維持するために半精度が必要)

    • レイヤーノーム等の小さなオペレーターを融合

    • GPUの実行優先度を最低に設定してラグを低減

  • FP4量子化手法M0E4

    • デクオンタイゼーションの整数から浮動小数点数への変換のオーバーヘッドを指数部0bit、仮数部4bitとして回避。(ビット演算のみで浮動小数点数に変換できるため)

  • KVキャッシュのコピー最適化

    • KVキャッシュを1つの大きなテンソルに格納し、モデルの入力に用いることで、KVキャッシュの余分なコピーを回避(LLMの推論では、各トークンを順番に処理していく際に、直前のトークンから生成されたKey-Value(KV)キャッシュが次のトークンの推論時の入力として使用される。)

結果

モバイル推論エンジンTransformer-Liteの性能を、5つのLLMモデル(Gemma 2B、Qwen1.5 4B、ChatGLM2 6B、Llama2 7B、Qwen1.5 14B)で評価。比較対象としてGPUベースのMLC-LLMとCPUベースのFastLLMを用いて、2つのモバイルプロセッサ(Qualcomm Snapdragon 8 Gen 3、MediaTek Dimensity 9300)上で評価。

  • Prefill(プロンプト入力)速度

    • プロンプト長によらず、最適な性能を発揮(1024トークン程度が最適)

    • パラメータ数が小さいモデルほど高速(Gemma 2Bで330token/s、ChatGLM2 6Bで121token/s)

    • Snapdragon 8 Gen 3の方がDimensity 9300よりも高速

  • デコード(生成)速度

    • プロンプト長が長くなるほど低下

    • KVキャッシュの形式変更が必要なLlama2 7B、Qwen1.5 4Bは、ChatGLM2 6B、Gemma 2Bよりも速度低下が大きい

    • Gemma 2Bで30token/s、ChatGLM2 6Bで14token/s

  • 他手法との比較

    • MLC-LLM(GPU)よりもPrefill速度で5倍以上、デコード速度で約2倍高速

    • FastLLM(CPU)よりもPrefill速度で10倍以上、デコード速度で2~3倍高速

  • 最大デプロイ可能モデルサイズ

    • 12GBのメモリで最大7Bまで(900トークンまで)

    • 24GBのメモリでQwen1.5 14Bを2048トークンまで実行可能

  • 理論限界との差

    • Prefill速度は理論ピーク(5.6TFLOPS)の約1/3(1.6TFLOPS)

    • デコード速度は短いプロンプト長ではメモリ帯域の限界

この記事が参加している募集

最近の学び

この記事が気に入ったらサポートをしてみませんか?