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
Issues, pull‑requests와 business inquiries는 GitHub 페이지 또는 SOPHGO 웹사이트를 통해 환영합니다.
License
Apache‑2.0 (see LICENSE).
TL;DR – LLM‑TPU는 HuggingFace 체크포인트를 빠르고 TPU-native한 추론 엔진으로 변환하는 실용적이고 공식적으로 지원되는 브릿지입니다. 다양한 텍스트 및 멀티모달 모델을 지원하며, 즉시 실행 가능한 데모와 광범위한 컴파일 compilation options를 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트