PowerInfer - 高速大規模言語モデル推論エンジン
プロジェクト概要
PowerInferは、上海交通大学IPADS研究所が開発した高速大規模言語モデル(LLM)推論エンジンで、単一のコンシューマーグレードGPUを搭載したパーソナルコンピュータ向けに設計されています。このプロジェクトの中核となる革新は、LLM推論に固有の高い局所性を利用し、パワーロー分布のニューロン活性化パターンを通じて推論性能を最適化することです。
プロジェクト背景
従来のLLM推論は、特にコンシューマーグレードのハードウェアに大規模モデルをデプロイする場合、膨大な計算量とメモリの課題に直面しています。PowerInferは、ニューラルネットワークの活性化パターンを詳細に分析することで、重要な洞察を発見しました。それは、少数の「ホット」ニューロンがすべての入力で継続的に活性化され、大多数の「コールド」ニューロンが特定の入力に応じて変化するということです。
コア技術原理
ホット/コールドニューロンメカニズム
PowerInferの設計は、以下のコアとなる観察に基づいています。
- ホットニューロン: すべての入力で継続的に活性化される少数のニューロン
- コールドニューロン: 特定の入力に応じて変化する大多数のニューロン
- パワーロー分布: ニューロンの活性化はパワーロー分布パターンに従う
GPU-CPUハイブリッドアーキテクチャ
ホット/コールドニューロンの特性に基づいて、PowerInferは革新的なハイブリッド推論戦略を採用しています。
- GPU: ホット活性化ニューロンをプリロードし、高速アクセスを実現
- CPU: コールド活性化ニューロンを計算し、GPUメモリの必要量を大幅に削減
- インテリジェントスケジューリング: CPU-GPU間のデータ転送オーバーヘッドを大幅に削減
コア機能特性
🚀 高性能推論
- 速度: 平均トークン生成速度は13.20 tokens/sに達し、ピーク時には29.08 tokens/sに達する
- 性能比較: llama.cppと比較して最大11.69倍の性能向上
- ハードウェア効率: RTX 4090での性能は、サーバーグレードのA100 GPUよりもわずか18%低い
🧠 インテリジェント最適化技術
- 適応予測器: ニューロン活性化予測を動的に最適化
- ニューロン感知型スパース演算子: 計算のスパース性を効率的に最適化
- 局所性中心設計: スパース活性化特性を最大限に活用
🔧 使いやすさと互換性
- 簡単な統合: 一般的なReLUスパースモデルと互換性あり
- ローカルデプロイメント: コンシューマーグレードのハードウェア向けに高度に最適化
- 後方互換性: ほとんどのllama.cppの使用方法をサポート
サポートするモデル
現在サポートされているモデルシリーズ
| モデルシリーズ | パラメータ規模 | 特性 |
|---|---|---|
| Falconシリーズ | 40B | ReLU活性化関数最適化 |
| Llama2シリーズ | 7B/13B/70B | 全シリーズサポート |
| ProSparse Llama2 | 7B/13B | ~90%のスパース性、性能はオリジナル版に近い |
| Bambooシリーズ | 7B | 最高の性能と速度を両立 |
モデル形式
PowerInferは、専用のPowerInfer GGUF形式を使用します。
- LLM重み
- 予測器重み
- 活性化統計情報
技術アーキテクチャ
システム設計
┌─────────────────┐ ┌─────────────────┐
│ ホットニューロン │───▶│ GPU │
│ (継続的活性化) │ │ (高速アクセス) │
└─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐ ┌─────────────────┐
│ コールドニューロン │───▶│ CPU │
│ (条件付き活性化) │ │ (柔軟な計算) │
└─────────────────┘ └─────────────────┘
コアコンポーネント
- 活性化予測器: ニューロン活性化パターンをインテリジェントに予測
- メモリマネージャー: GPU/CPUメモリ割り当てを最適化
- スパース演算子: スパース計算を効率的に処理
- スケジューラー: 計算タスクをインテリジェントに割り当て
プラットフォームサポート
テスト済みプラットフォーム
- Linux: AVX2命令セットを備えたx86-64 CPU、NVIDIA GPUをサポート
- Windows: AVX2命令セットを備えたx86-64 CPU、NVIDIA GPUをサポート
- macOS: Apple Mシリーズチップ(CPUのみ、性能向上は限定的)
- AMD GPU: ROCmを通じてサポート
ハードウェア要件
- CPU: AVX2命令セットをサポートするx86-64プロセッサ
- GPU: NVIDIA RTXシリーズまたはAMD GPU(オプション)
- メモリ: モデルサイズに応じて異なる
- ストレージ: モデルファイルを保存するのに十分なスペース
性能ベンチマークテスト
RTX 4090性能
| モデル | PowerInfer | llama.cpp | 加速比 |
|---|---|---|---|
| Falcon-40B | 11.2 tokens/s | 1.0 tokens/s | 11.2x |
| Llama2-70B | 8.1 tokens/s | 2.7 tokens/s | 3.0x |
| Llama2-13B | 24.8 tokens/s | 8.9 tokens/s | 2.8x |
RTX 2080Ti性能(INT4量子化)
| モデル | PowerInfer | llama.cpp | 加速比 |
|---|---|---|---|
| Falcon-40B | 6.8 tokens/s | 0.85 tokens/s | 8.0x |
| Llama2-70B | 5.2 tokens/s | 1.7 tokens/s | 3.1x |
インストールと使用
環境要件
- CMake (3.17+)
- Python (3.8+) と pip (19.3+)
- CUDAツールチェーン(NVIDIA GPUを使用する場合)
基本的なインストール
git clone https://github.com/SJTU-IPADS/PowerInfer
cd PowerInfer
pip install -r requirements.txt
# NVIDIA GPU
cmake -S . -B build -DLLAMA_CUBLAS=ON
cmake --build build --config Release
# CPU only
cmake -S . -B build
cmake --build build --config Release
モデルのダウンロード
# huggingface-cliを使用してモデルをダウンロード
huggingface-cli download --resume-download --local-dir ReluLLaMA-7B \
--local-dir-use-symlinks False PowerInfer/ReluLLaMA-7B-PowerInfer-GGUF
推論の実行
# 基本的な推論
./build/bin/main -m ./ReluLLaMA-7B-PowerInfer-GGUF/llama-7b-relu.powerinfer.gguf \
-n 128 -t 8 -p "Once upon a time"
# VRAMの使用制限
./build/bin/main -m ./ReluLLaMA-7B-PowerInfer-GGUF/llama-7b-relu.powerinfer.gguf \
-n 128 -t 8 -p "Once upon a time" --vram-budget 8
最新の更新と開発
技術革新
- PowerInfer-2: モバイル端末向け最適化バージョン、スマートフォンで11.68 tokens/sを実現
- TurboSparse: 低コストのスパース化技術、性能を維持しながらパラメータを大幅に削減
- Bamboo LLM: 性能と速度を両立した自社開発モデルシリーズ
アプリケーションシナリオ
適用可能なシナリオ
- 個人用AIアシスタント: ローカルにプライベートAIアシスタントをデプロイ
- 企業内アプリケーション: データプライバシーを保護する社内AIサービス
- 研究開発: 迅速なプロトタイプ開発とモデルテスト
- エッジコンピューティング: リソースが限られた環境にLLMをデプロイ
- 教育研究: 大規模モデル推論技術の学習と研究
利点と特徴
- プライバシー保護: すべての計算がローカルで完了
- 費用対効果: コンシューマーグレードのハードウェアで優れた性能を実現
- 簡単なデプロイメント: 複雑な分散システム構成は不要
- 迅速な応答: 低遅延のローカル推論
技術比較
vs. 従来の推論エンジン
| 特性 | PowerInfer | 従来のエンジン |
|---|---|---|
| ハードウェア要件 | コンシューマーグレードGPU | サーバーグレードGPU |
| メモリ効率 | ハイブリッドCPU/GPU | フルGPUロード |
| 推論速度 | 11.69倍の向上 | ベンチマーク性能 |
| コスト | 低コスト | 高コスト |
vs. llama.cpp
- 性能: 最大11.69倍の速度向上
- メモリ: より効率的なメモリ利用
- ハードウェア: より優れたCPU/GPU連携
- 互換性: ほとんどのllama.cpp機能をサポート
技術原理の詳細
スパース性の利用
PowerInferの中核は、ニューラルネットワークのスパース性を深く利用することです。
- 活性化パターン分析: 大量のデータ分析を通じて、ニューロン活性化のパワーロー分布を発見
- 予測メカニズム: 軽量な予測器を使用してニューロン活性化状態を予測
- 動的スケジューリング: 予測結果に基づいて計算リソースを動的に割り当て
メモリ最適化戦略
- 階層型ストレージ: ホットデータはGPUに、コールドデータはCPUに保存
- プリフェッチメカニズム: 必要になる可能性のあるデータをインテリジェントにプリフェッチ
- 圧縮技術: コールドデータを圧縮して保存
開発と貢献
オープンソースライセンス
PowerInferはオープンソースライセンスを採用しており、コミュニティからの貢献を歓迎します。プロジェクトは、問題のフィードバックと機能の提案を積極的に受け入れています。
開発チーム
- 上海交通大学IPADS研究所: 主な開発チーム
- 清華大学THUNLP: ReLUスパースモデルのサポート
- オープンソースコミュニティ: 継続的な貢献と改善
学術的影響
関連する研究論文が発表されており、大規模言語モデル推論最適化の分野に重要な理論的基盤と実践的指導を提供しています。
まとめ
PowerInferは、大規模言語モデルのローカル推論技術における大きなブレークスルーを代表しています。革新的なホット/コールドニューロンメカニズムとCPU/GPUハイブリッドアーキテクチャを通じて、コンシューマーグレードのハードウェアでサーバーレベルに近い推論性能を実現することに成功しました。