スマートデバイスが普及した現代において、私たちはスマートフォン、タブレット、さらにはスマートホームデバイスに、より強力なインテリジェント処理能力を持たせたいと願っています。しかし、これらのエッジデバイスはハードウェアリソース、特にメモリと計算能力が限られているため、大規模言語モデル(LLM)の展開と実行が制限されています。これらのデバイスが自然言語を理解し、質問に答え、さらには創作を行うことができる強力なモデルを搭載したら、私たちの生活はどのように変わるでしょうか?
これがT-MAC技術誕生の背景です。T-MAC(Table-Lookup-based MACの略)は、ルックアップテーブルベースの方法であり、低ビットの大規模言語モデルをCPU上で効率的に実行することで、エッジデバイス上のインテリジェントなアップグレードを実現します。
大規模言語モデルは通常、数十億から数百億ものパラメーターを含んでおり、これらのパラメーターを保存するには大量のメモリが必要です。これらのモデルをエッジデバイスに展開するには、モデルの重みを量子化し、より少ないビットで重みを表現することで、モデルのメモリ使用量を削減する必要があります。しかし、量子化されたモデルは演算時に混合精度行列乗算(mpGEMM)を行う必要があり、これは既存のハードウェアおよびソフトウェアシステムでは一般的ではなく、効率的なサポートも不足しています。
T-MACの中核となる考え方は、従来のデータ型に基づく乗算演算を、ビットベースのルックアップテーブル(LUT)検索に変換することです。この方法では、乗算演算が排除されるだけでなく、加算演算も削減されるため、演算効率が大幅に向上します。
具体的には、T-MACは以下の手順で実現されます。
重み行列を複数の一ビット行列に分解する。
活性化ベクトルとすべての一ビットパターンの積を事前に計算し、その結果をルックアップテーブルに保存する。
推論時に、ルックアップテーブルのインデックスと累算操作によって、最終的な行列乗算の結果を迅速に取得する。
様々なエッジデバイスでのテストにより、T-MACは顕著な性能向上を示しました。既存のllama.cpp実装と比較して、T-MACはスループットが4倍向上し、消費電力は70%削減されました。これにより、Raspberry Pi 5のようなローエンドデバイスでも、成人の平均読書速度を超える速度でトークンを生成できます。
T-MACは理論的な利点だけでなく、実用的な可能性も秘めています。スマートフォンでのリアルタイム音声認識や自然言語処理、スマートホームデバイスでのよりインテリジェントなインタラクション体験など、T-MACは重要な役割を果たします。
T-MAC技術は、低ビット大規模言語モデルのエッジデバイスへの展開のための、効率的で省エネルギーなソリューションを提供します。デバイスのインテリジェンスレベルを向上させるだけでなく、ユーザーにより豊かで便利なインテリジェントな体験をもたらします。技術の進歩と最適化に伴い、T-MACはエッジインテリジェンス分野でますます重要な役割を果たすと確信しています。
オープンソースアドレス:https://github.com/microsoft/T-MAC