원문 캡처 · github.com
원문 캡처 · github.com

Qwen-tin은 8GB VRAM과 32GB RAM을 갖춘 리눅스 PC에서 Qwen3.8-Flash-Next를 실행하도록 만든 llama.cpp 포크다. 제작자가 공개한 측정에서는 150k 컨텍스트를 지원하고 짧은 대화에서 초당 약 20토큰을 생성했지만, SSD 온도가 오르면 속도가 떨어진다.

모델은 125B MoE로 토큰마다 6B를 활성화하며, 51B 규모의 엔그램 테이블을 포함한다. 양자화에는 ISTA-DASLab의 GSQ-RCO IQ3_S 파일을 사용한다. 가중치당 평균 3.50비트이며 전체 크기는 83.6GB다. Qwen-tin은 게이트 잔차 행렬을 BF16에서 Q8_0으로, 비전 인코더를 BF16에서 Q5_0/F16/Q8_0 혼합 방식으로 바꾸고, KV 캐시에는 K q5_0·V q4_0을 사용한다. 컨텍스트 길이는 153,600토큰이다.

메모리 배치와 성능

모델의 전문가 가중치 46.8GiB는 SSD에 두고 일부를 RAM과 VRAM에 캐시한다. 각 토큰을 처리할 때 512개 전문가 중 10개를 사용하며, 제작자 설명에 따르면 토큰당 약 0.9GiB의 전문가 데이터가 필요하고 그중 약 96%는 이미 RAM이나 VRAM에 있다. 나머지 가중치와 KV 캐시, 계산 버퍼도 GPU 메모리에 맞춰 배치한다. 150k 컨텍스트에서는 KV 캐시가 약 1.4GiB를 차지한다.

측정 장비는 Intel i9-13900H, RTX 5060 Laptop GPU(8GB), DDR4-3200 16GB 메모리 모듈 2개, PCIe 4.0 x4 NVMe SSD다. Ubuntu 26.04와 CUDA 13.1에서 공개 텍스트를 대상으로 측정했으며, 생성은 최대 길이로 진행했다. 읽기 속도는 프롬프트 처리 속도를 뜻한다.

  • 1k 컨텍스트 짧은 대화: 생성 속도 23.9토큰/초
  • 8.7k 컨텍스트 문서 질의: 읽기 464토큰/초, 생성 20.6토큰/초
  • 33k 컨텍스트 문서 질의: 읽기 489토큰/초, 생성 19.1토큰/초
  • 100k 컨텍스트 문서 질의: 읽기 461토큰/초, 생성 18.2토큰/초
  • 최대 35k 컨텍스트의 12회 대화: 읽기 199토큰/초, 생성은 회당 평균 19.0토큰/초(16.5~20.3)

이 측정에서 8,192토큰 프롬프트 배치는 전문가 데이터 거의 46.8GiB를 RAM과 SSD에서 GPU로 전송한다. 2.5k토큰 대화 차례도 토큰 수가 3분의 1인데 전송 부담은 거의 비슷하다. 긴 세션에서는 SSD 발열이 제약이 될 수 있다. 생성 토큰마다 SSD에서 약 20MB를 읽으며, SSD 온도가 약 65~70°C를 넘으면 속도가 낮아진다. 공개된 대화 측정에서는 약 20토큰/초에서 16.5~17토큰/초로 떨어졌다. 이전 빌드의 30분 에이전트 세션에서는 SSD에서 2.4TB를 읽으며 평균 14토큰/초를 기록했다. 제작자는 M.2 슬롯에 방열판을 달거나 공기를 흐르게 하는 것이 설정 변경보다 효과적이라고 설명한다.

RAM이 16GB인 경우도 제한을 걸어 시험했다. RAM 캐시는 6.3GiB로 줄고 적중률은 96%에서 71%로 떨어졌다. 토큰당 SSD 읽기량은 네 배가 됐으며, 생성 속도는 처음 2분 동안 약 12토큰/초였다가 SSD가 뜨거워진 뒤 약 5토큰/초로 낮아졌다. 읽기 속도는 250~475토큰/초였다.

설치와 제약

필요한 환경은 리눅스, VRAM 8GB 이상인 NVIDIA GPU, RAM 32GB(16GB도 가능하지만 느림), 여유 공간 84GB인 NVMe SSD다. 설치 중에는 140GB가 필요하다. CUDA 툴킷, cmake, C++ 컴파일러, curl, numpy와 PyYAML이 포함된 python3도 요구한다.

sh
git clone https://github.com/tin-hat/Qwen-tin
cd Qwen-tin
qwen-tin/setup.sh # builds, downloads 84 GB from Hugging Face (checksums verified), converts 2 files
qwen-tin/qwen-tin-server # OpenAI-compatible API and web UI on http://127.0.0.1:8080
qwen-tin/bench.py # optional: the benchmark above

서버는 OpenAI 호환 API와 도구 호출, 이미지 입력, 웹 UI를 지원한다. setup.sh는 Hugging Face에서 84GB를 내려받고 두 파일을 변환하며, 체크섬을 확인한다. 두 번째 실행에서는 다운로드를 이어 받고 완료된 단계를 건너뛴다. NO_HCQ8=1을 설정하면 변환 없이 ISTA의 shard 1을 사용해 설치 중 추가로 필요한 54GB를 아낄 수 있지만, 전문가용 VRAM은 0.6GB 줄어든다. 컨텍스트 길이는 CTX 환경 변수로 조정하며 기본값은 153600이다.

Qwen-tin은 Linux와 NVIDIA 전용이며, 요청은 한 번에 하나만 처리한다(--parallel 1). 위에 적힌 한 대의 장비에서 시험했으며 다른 GPU에서도 작동할 수 있지만 시험되지는 않았다. 이 변경 사항은 상류 llama.cpp에 포함되지 않았고, 엔진은 이 모델의 qwen4exp 아키텍처에 맞춰 제작됐다. 기반 버전은 llama.cpp 커밋이며, 그 위에 변경 사항을 한 커밋 추가했다. 다른 MoE GGUF에서도 전문가 스트리밍이 작동할 수 있지만 검증되지는 않았다.

더 많은 메모리를 갖춘 시스템을 위한 대안으로는 Strata가 소개됐다. 제작자는 전문가 가중치가 RAM에 들어가는 경우 Strata가 훨씬 빠르다고 설명하며, Qwen-tin은 8GB GPU와 32GB RAM을 갖추고 나머지를 SSD에 맡기는 시스템을 대상으로 한다고 밝혔다.

코드는 MIT 라이선스로 공개된 llama.cpp 포크다. 모델은 Qwen 팀의 Qwen3.8-Flash-Next이며 Qwen Community License 1.0을 따른다. 저장소에는 가중치가 포함되지 않고, 설치 스크립트가 ISTA 저장소에서 내려받는다. 모델 사용자는 Qwen 라이선스에 동의해야 한다. 양자화 방법 자료는 GSQ 논문과 RCO 논문에서 확인할 수 있다.