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

Issues, pull‑requests와 business inquiries는 GitHub 페이지 또는 SOPHGO 웹사이트를 통해 환영합니다.


License

Apache‑2.0 (see LICENSE).


TL;DR – LLM‑TPU는 HuggingFace 체크포인트를 빠르고 TPU-native한 추론 엔진으로 변환하는 실용적이고 공식적으로 지원되는 브릿지입니다. 다양한 텍스트 및 멀티모달 모델을 지원하며, 즉시 실행 가능한 데모와 광범위한 컴파일 compilation options를 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트