CPU向けに設計された、疎性を認識する深層学習推論ランタイム
DeepSparse - CPU向けに設計されたスパース性を意識した深層学習推論エンジン
プロジェクト概要
DeepSparseは、Neural Magicによって開発された革新的なCPU推論ランタイムであり、ニューラルネットワークのスパース性を活用して深層学習モデルの推論プロセスを高速化するために特別に設計されています。このプロジェクトは、SparseML最適化ライブラリと組み合わせることで、CPUハードウェア上で優れた推論性能を実現します。
重要なお知らせ: 2025年1月、Neural MagicはRed Hatに買収されました。DeepSparseコミュニティ版は2025年6月2日にメンテナンスを終了し、廃止されます。チームはvLLMベースの商用およびオープンソースソリューションに移行します。
主要な特徴
1. スパース性最適化
- スパースカーネルのサポート:非構造化スパース重みによる高速化とメモリ節約
- 8ビット量子化:重みと活性化の8ビット量子化をサポート
- キャッシュ最適化:キャッシュされた注意キーと値を効率的に利用し、メモリ移動を最小限に抑えます
2. 大規模言語モデル(LLM)のサポート
DeepSparseは、大規模言語モデルの推論に対して初期サポートを提供します。
- MPT-7Bモデルのスパース微調整技術
- 密集ベースラインの7倍の高速化性能(スパース-量子化モデル)
- 精度を損なうことなく最大60%のスパース度をサポート
3. 幅広いモデルのサポート
- コンピュータビジョン:ResNet、EfficientNet、YOLOv5/8、ViTなど
- 自然言語処理:BERT、Transformerバリアントなど
- マルチモーダルモデル:さまざまなCNNおよびTransformerアーキテクチャをサポート
システム要件
ハードウェアサポート
- x86アーキテクチャ:AVX2、AVX-512、AVX-512 VNNI
- ARMアーキテクチャ:v8.2+
ソフトウェア環境
- オペレーティングシステム:Linux
- Pythonバージョン:3.8-3.11
- ONNXサポート:バージョン1.5.0-1.15.0、オペレーションセットバージョン11以降
注意:MacおよびWindowsユーザーはDocker Linuxコンテナの使用を推奨します
インストール方法
安定版
pip install deepsparse
ナイトリービルド版(最新機能を含む)
pip install deepsparse-nightly
LLMサポート版
pip install -U deepsparse-nightly[llm]
ソースコードからのインストール
pip install -e path/to/deepsparse
3つのデプロイAPI
1. Engine API(低レベルAPI)
最も低いレベルのAPIで、ONNXモデルを直接コンパイルし、テンソルの入出力を処理します。
from deepsparse import Engine
# モデルをダウンロードしてコンパイル
zoo_stub = "zoo:nlp/sentiment_analysis/obert-base/pytorch/huggingface/sst2/pruned90_quant-none"
compiled_model = Engine(model=zoo_stub, batch_size=1)
# 推論を実行
inputs = compiled_model.generate_random_inputs()
output = compiled_model(inputs)
2. Pipeline API(中レベルAPI)
Engineをラップし、前処理と後処理機能を追加して、生のデータを直接処理できます。
from deepsparse import Pipeline
# パイプラインを設定
sentiment_analysis_pipeline = Pipeline.create(
task="sentiment-analysis",
model_path="zoo:nlp/sentiment_analysis/obert-base/pytorch/huggingface/sst2/pruned90_quant-none"
)
# 推論を実行
prediction = sentiment_analysis_pipeline("I love using DeepSparse Pipelines")
print(prediction)
# 出力: labels=['positive'] scores=[0.9954759478569031]
3. Server API(高レベルAPI)
FastAPIに基づいてPipelineをラップし、REST APIサービスを提供します。
# サーバーを起動
deepsparse.server \
--task sentiment-analysis \
--model_path zoo:nlp/sentiment_analysis/obert-base/pytorch/huggingface/sst2/pruned90_quant-none
# リクエストを送信
import requests
url = "http://localhost:5543/v2/models/sentiment_analysis/infer"
obj = {"sequences": "Snorlax loves my Tesla!"}
response = requests.post(url, json=obj)
print(response.text)
# 出力: {"labels":["positive"],"scores":[0.9965094327926636]}
大規模言語モデルの例
from deepsparse import TextGeneration
pipeline = TextGeneration(model="zoo:mpt-7b-dolly_mpt_pretrain-pruned50_quantized")
prompt = """
Below is an instruction that describes a task. Write a response that appropriately completes the request.
### Instruction: what is sparsity?
### Response:
"""
result = pipeline(prompt, max_new_tokens=75)
print(result.generations[0].text)
技術的な利点
1. スパース微調整技術
- IST Austriaと共同開発された革新的な技術
- 微調整プロセス中にMPT-7Bを60%のスパース度まで剪定
- 精度を損なうことなく大幅な高速化を実現
2. 性能最適化
- CPU上でGPUレベルの推論性能を実現
- メモリ使用量を大幅に削減
- 高度に最適化されたスパース-量子化モデルをサポート
3. エコシステム統合
- SparseML最適化ライブラリとのシームレスな統合
- SparseZooモデルライブラリは、事前最適化されたモデルを提供
- さまざまなデプロイメントシナリオをサポート
使用事例
- エッジコンピューティング:リソースが限られた環境で高性能AIモデルをデプロイ
- クラウド推論:クラウドコンピューティングコストを削減し、推論効率を向上
- リアルタイムアプリケーション:低遅延のリアルタイムAIアプリケーションが必要
- 大規模デプロイメント:高並行推論リクエストを処理する必要がある本番環境
プライバシーと分析
DeepSparseは、製品の使用状況分析のために基本的な使用状況テレメトリデータを収集します。ユーザーは、環境変数を設定することで無効にできます。
export NM_DISABLE_ANALYTICS=True
学術的な引用
このプロジェクトは、以下の重要な学術論文に基づいています。
- Sparse Fine-Tuning for Inference Acceleration of Large Language Models (2023)
- The Optimal BERT Surgeon: Scalable and Accurate Second-Order Pruning (2022)
- Inducing and Exploiting Activation Sparsity for Fast Inference (ICML 2020)
まとめ
DeepSparseは、CPU推論最適化分野における大きなブレークスルーであり、革新的なスパース性利用技術を通じて、通常のCPUハードウェア上で前例のない深層学習推論性能を実現します。コミュニティ版はまもなくメンテナンスを終了しますが、その技術革新と理念はRed Hatのサポートの下で発展を続け、AI推論最適化分野にさらに貢献します。