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)

  1. Download weights – 可能な限りint4 AWQ/GPTQチェックポイントを使用してください。
  2. Set up TPU‑MLIR – リンク先のrepoまたは提供されているDockerイメージを使用してください。
  3. 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 を追加してください。
  4. 出力フォルダには、デモスクリプト用の *.bmodel ファイルと設定ディレクトリが含まれます。

Getting the Most Accuracy

  • プリ量子化されたAWQ/GPTQ/AutoRoundチェックポイントを優先してください。変換後もモデルの品質を維持できます。
  • FP16/FP32重みのみが存在する場合、llm_convert.py を実行する前に AutoAWQ または AutoGPTQ で量子化を行ってください。

Where to Learn More

  • FAQdocs/FAQ.md
  • PaperAn 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ネイティブな推論エンジンに変換する、実用的で公式サポートされたブリッジです。幅広いテキストおよびマルチモーダルモデルをサポートし、すぐに利用可能なデモと豊富なコンパイルオプションを提供します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト