sophgo/LLM-TPU
Run generative AI models in sophgo BM1684X/BM1688
LLM‑TPU – SOPHGO TPU上で大規模言語・ビジョンモデルをデプロイ
概要 – SOPHGOのオープンソースツールキットで、人気の生成AIモデル(Qwen、Llama、Phi、MiniCPMなどのLLM、およびマルチモーダル・ビジョン言語モデル)を、単一のコマンドでSOPHGOのBM1684X、BM1688、またはCV186X TPUチップ上で実行できるようにします。
重要性 – 専用TPUで大規模モデルを実行することは、CPU/GPUと比較して数桁の高速化と低消費電力化を実現できますが、コンパイルとデプロイのステップは通常複雑です。LLM‑TPUは、重み変換、量子化、bmodel生成、およびすぐに利用可能なPython/C++デモという一連の工程を、合理化されたワークフローにまとめています。
Key Features
| Feature | What it does |
|---|---|
| One‑click compilation | llm_convert.py により、HuggingFaceまたはGGUFチェックポイントを直接SOPHGO bmodel(TPUが理解するバイナリ形式)に変換します。 |
| Broad model catalog | 純粋なテキストLLM(Qwen‑3, Llama‑3.2, Phi‑4, MiniCPM‑V)から、画像・動画・音声対応のマルチモーダルVLM(Mage‑VL, InternVL‑3, Qwen‑3.5‑VL, Gemma‑4)まで、数十種類のモデルがプリパッケージされています。 |
| Quantisation support | AWQ/GPTQ/AutoRound int4モデルに標準対応しています。また、カスタム精度(w4bf16, bf16など)のためのオプションの --quantize フラグも提供しています。 |
| Dynamic & KV‑cache compilation | --dynamic は短入力のレイテンシを低減します。--use_history_kv は、マルチターン会話や長いコンテキストのためのKV‑cacheを有効にします。 |
| Multi‑chip parallelism | --num_device N により、モデルを複数のTPUに分散させ、より大きなモデルとより高いスループットを実現します。 |
| Dual‑language demos | すべてのモデルにPythonとC++のリファレンススクリプト、および即座にテスト可能なプリコンパイル済みbmodelが付属しています。 |
| Advanced utilities | 共有prefill再利用、マルチタスク重み共有、オプションのモデル暗号化、およびLoRA‑awareコンパイルを提供します。 |
Quick Start (two commands)
git clone https://github.com/sophgo/LLM-TPU.git
cd LLM-TPU
./run.sh --model qwen3.5 # pulls a pre‑compiled bmodel and launches the demo
このスクリプトは、適切なbmodelを自動的にダウンロード(またはTPU‑MLIRがセットアップされている場合はコンパイル)し、@<path> を介して画像/動画ファイルを受け取ることができるインタラクティブなチャットを開始します。
Supported Hardware
- BM1684X – エントリーレベルのTPU。4‑8 Bモデルに適しています。
- BM1688 – ハイエンドモデル。マルチチップスケーリングにより、10‑30 Bモデルを扱えます。
- CV186X – ビジョン特化型TPU。VLM推論に使用されます。
Model Coverage (excerpt)
| Category | Example Models | One‑click compile? |
|---|---|---|
| Text‑only LLMs | Qwen‑3, Qwen‑2.5, Llama‑3.2, Phi‑4, MiniCPM‑4, DeepSeek‑R1 series | ✅ |
| Vision‑Language | Mage‑VL, InternVL‑3, Qwen‑3.5‑VL, Qwen‑2.5‑VL, Gemma‑4 | ✅ |
| Audio / Video | Qwen‑3.5 (audio), MiniCPM‑V‑4.6 (video), Gemma‑4 (audio) | ✅ |
| Legacy demos | Baichuan‑2, ChatGLM‑3, RWKV, etc. (still in models/legacy/) |
— |
Compilation Flow (example with Qwen3.5‑2B)
- Download weights – 可能な限りint4 AWQ/GPTQチェックポイントを使用してください。
- Set up TPU‑MLIR – リンク先のrepoまたは提供されているDockerイメージを使用してください。
- Run the converter:
llm_convert.py -m /path/Qwen3.5-2B-int4-AutoRound \ -s 2048 --max_input_length 1024 \ -c bm1684x -o qwen3.5_2b-s= 合計KV‑cache長。- 長いコンテキストやマルチターン会話には
--use_history_kvと--chunk_lengthを追加してください。
- 出力フォルダには、デモスクリプト用の
*.bmodelファイルと設定ディレクトリが含まれます。
Getting the Most Accuracy
- プリ量子化されたAWQ/GPTQ/AutoRoundチェックポイントを優先してください。変換後もモデルの品質を維持できます。
- FP16/FP32重みのみが存在する場合、
llm_convert.pyを実行する前に AutoAWQ または AutoGPTQ で量子化を行ってください。
Where to Learn More
- FAQ –
docs/FAQ.md - Paper – An MLIR‑Based Compilation Method for Large Language Models (arXiv:2607.15865)
- TPU‑MLIR repo & docs – bmodelを生成するコンパイラです。
- Video walkthroughs – README内のBilibiliリンク。
Contributing
Issue、pull‑request、およびビジネスに関するお問い合わせは、GitHubページまたはSOPHGOのウェブサイトから受け付けています。
License
Apache‑2.0 (see LICENSE).
TL;DR – LLM‑TPUは、HuggingFaceチェックポイントを高速でTPUネイティブな推論エンジンに変換する、実用的で公式サポートされたブリッジです。幅広いテキストおよびマルチモーダルモデルをサポートし、すぐに利用可能なデモと豊富なコンパイルオプションを提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト