Tracks
Qwen3.8-27B đang nhanh chóng trở thành một trong những mô hình phổ biến nhất cho AI cục bộ. Dù chỉ có 27 tỷ tham số, nó vẫn cho hiệu năng cạnh tranh với các mô hình lớn hơn nhiều ở các bài đánh giá về lập trình, suy luận, agent và mục đích chung. Thậm chí, nó đang tiến gần tới các mô hình như GLM-5.2 ở một số khía cạnh, khiến nó đặc biệt được ưa chuộng trong cộng đồng đang thử nghiệm phần cứng cục bộ mạnh mẽ.
RTX 5090 đặc biệt phù hợp với Qwen3.8-27B vì kiến trúc Blackwell của nó hỗ trợ NVFP4, cho phép mô hình chạy ở tốc độ rất cao đồng thời vẫn giữ chất lượng đầu ra tốt. Kết hợp với suy đoán giải mã thông qua dự đoán đa token (MTP), bản dựng llama.cpp tối ưu và đúng mô hình GGUF, Qwen3.8-27B có thể vượt 100 token mỗi giây chỉ với một RTX 5090.
Trong hướng dẫn này, chúng ta sẽ thiết lập cách mà tôi cho là dễ nhất để đạt cân bằng tốt nhất giữa tốc độ, độ chính xác và hỗ trợ ngữ cảnh dài trên RTX 5090 hoặc GPU Blackwell khác. Chúng ta sẽ biên dịch llama.cpp với hỗ trợ Blackwell gốc, tải Qwen3.8-27B NVFP4-MTP GGUF, chạy bằng tăng tốc GPU và suy đoán giải mã MTP, kiểm thử API tương thích OpenAI và giao diện web tích hợp, và cuối cùng kết nối với Pi để dùng Qwen3.8-27B như một agent lập trình thuần cục bộ.
1. Thiết lập llama.cpp cho GPU Blackwell
Đầu tiên, hãy đảm bảo GPU được nhận diện đúng và kiểm tra phiên bản driver NVIDIA cùng CUDA.
nvidia-smi
Bạn sẽ thấy RTX 5090 của mình, phiên bản driver, phiên bản CUDA, bộ nhớ GPU và mức sử dụng GPU hiện tại.
Lưu ý: Thiết lập này dành riêng cho GPU NVIDIA Blackwell, chẳng hạn RTX 5090. Bản dựng bên dưới nhắm tới SM120, là kiến trúc tính toán dùng trên RTX 5090.
Tiếp theo, chúng ta sẽ tải và biên dịch phiên bản mới nhất của llama.cpp với hỗ trợ CUDA.
cd /workspace
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
cmake -B build \
-DGGML_CUDA=ON \
-DCMAKE_CUDA_ARCHITECTURES=120
cmake --build build --config Release -j$(nproc)

Phần quan trọng ở đây là -DCMAKE_CUDA_ARCHITECTURES=120. Tham số này yêu cầu llama.cpp biên dịch riêng cho kiến trúc Blackwell dùng trên RTX 5090.
Khi biên dịch xong, chúng ta sẽ đưa llama-server vào phạm vi toàn hệ thống để có thể chạy từ bất kỳ thư mục nào:
sudo ln -sf "$(realpath ./build/bin/llama-server)" /usr/local/bin/llama-server
Giờ hãy kiểm tra mọi thứ hoạt động:
llama-server --version
Bạn sẽ nhận được đầu ra tương tự như:
version: 0.1.1-dev (build 10479, commit 0021a77de)
built with GNU 13.3.0 for Linux x86_64
Vậy là xong. Giờ chúng ta có bản dựng llama.cpp hỗ trợ CUDA, có thể tận dụng RTX 5090 và hỗ trợ NVFP4 gốc của Blackwell.
2. Tải mô hình Qwen3.8-27B NVFP4-MTP
Giờ chúng ta sẽ tải mô hình Qwen3.8-27B.
Trước hết, cài Hugging Face CLI:
pip install -U huggingface_hub
Tạo thư mục để lưu mô hình:
mkdir -p /workspace/models/qwen38
Sau đó tải GGUF NVFP4-MTP:
hf download felippeburk/Qwen3.8-27B-NVFP4-MTP-GGUF \
--local-dir /workspace/models/qwen38

Đây là phiên bản chúng ta cần cho thiết lập này vì nó dùng NVFP4 và bao gồm hỗ trợ MTP, vốn là nguồn mang lại phần lớn cải thiện tốc độ trên RTX 5090.
3. Khởi động máy chủ Qwen3.8-27B
Giờ đến phần thú vị. Chúng ta sẽ phục vụ Qwen3.8-27B hoàn toàn trên GPU với Flash Attention, cửa sổ ngữ cảnh 131K và suy đoán giải mã MTP để sinh nhanh hơn.
Chạy:
cd /workspace/llama.cpp
llama-server \
-m /workspace/models/qwen38/qwen3.8-27b-text-nvfp4-mtp.gguf \
--alias qwen3.8-27b \
--host 0.0.0.0 \
--port 8910 \
--ctx-size 131072 \
--n-gpu-layers all \
--flash-attn on \
--cache-type-k q8_0 \
--cache-type-v q8_0 \
--parallel 1 \
--spec-type draft-mtp \
--spec-draft-n-max 4 \
--spec-draft-p-min 0.75 \
--spec-draft-ngl all \
--spec-draft-type-k q8_0 \
--spec-draft-type-v q8_0 \
--reasoning-effort medium \
--jinja
Có khá nhiều tùy chọn ở đây, nhưng phần lớn chỉ nhằm khai thác tối đa hiệu năng của 5090.
Các tùy chọn chính cần biết là:
-
--ctx-size 131072cho chúng ta cửa sổ ngữ cảnh khoảng 131K. -
--n-gpu-layers allgiữ mô hình trên GPU. -
--flash-attn onbật Flash Attention. -
--cache-type-k q8_0và--cache-type-v q8_0giúp giảm bộ nhớ dùng cho KV cache. -
--spec-type draft-mtpbật suy đoán giải mã MTP của Qwen3.8. -
--spec-draft-n-max 4kiểm soát số token suy đoán MTP có thể sinh cùng lúc.
Với thiết lập này, chúng ta dùng n-max 4 như điểm khởi đầu cho RTX 5090. Bạn có thể thử các giá trị như 2 (thẻ mô hình khuyến nghị cho GGUF này) hoặc 3 sau đó, vì thiết lập nhanh nhất có thể thay đổi nhẹ tùy hệ thống của bạn.
Khi llama-server tải mô hình xong, Qwen3.8 sẽ khả dụng cục bộ tại http://127.0.0.1:8910.

Giờ chúng ta đã chạy Qwen3.8-27B cục bộ. Tiếp theo, chúng ta sẽ kiểm thử mô hình qua cả API lẫn giao diện trình duyệt tích hợp.
4. Kiểm thử tốc độ và khả năng lập trình của Qwen3.8-27B
Khi máy chủ đang chạy, mở một terminal khác và gửi yêu cầu thử tới API tương thích OpenAI:
curl http://127.0.0.1:8910/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.8-27b",
"messages": [
{
"role": "user",
"content": "Write a Python FastAPI application that monitors GPU usage."
}
],
"max_tokens": 2000
}'

Trong bài kiểm thử này, Qwen3.8-27B đã sinh 2.000 token ở tốc độ 122 token/giây với tỷ lệ chấp nhận MTP ấn tượng 84,9%.
llama.cpp cũng có giao diện trình duyệt, vì vậy bạn có thể thử mô hình mà không cần dùng API.
Mở http://127.0.0.1:8910 trong trình duyệt để xem giao diện.

Với bài kiểm thử phức tạp hơn, tôi đã dùng prompt này:
Create a stunning single-file animated HTML website with a dark futuristic
theme, smooth scrolling, glowing gradients, floating particles, animated cards,
hover effects, and responsive design using only HTML, CSS, and JavaScript.

Trên RTX 5090 của tôi, tốc độ trung bình khoảng 142 token mỗi giây, đôi lúc đạt khoảng 170 token mỗi giây, cực kỳ nhanh đối với một mô hình 27B chạy cục bộ.

Qwen3.8-27B đã tạo ra một website trau chuốt, chạy được ngay lập tức. Đây là cách tốt để nhanh chóng kiểm thử cả khả năng lập trình của mô hình lẫn tốc độ của thiết lập cục bộ.
5. Dùng Qwen3.8-27B với Pi
Trong phần này, chúng ta sẽ kết nối Qwen3.8-27B với Pi và dùng nó như một agent lập trình thuần cục bộ.
Pi là một agent lập trình nhẹ chạy trên terminal, có thể giúp bạn xây dựng, chỉnh sửa, kiểm thử và gỡ lỗi dự án ngay từ dòng lệnh.
Cài Pi bằng:
curl -fsSL https://pi.dev/install.sh | sh
Trình cài đặt yêu cầu Node.js và npm. Nó cài Pi vào npm prefix toàn cục của bạn. Nếu bạn chưa có Node, hãy cài trước bằng nvm hoặc trình quản lý gói của bạn.
Sau khi cài đặt xong, khởi động lại terminal.
Tiếp theo, cài tiện ích mở rộng pi-llama và trỏ Pi tới máy chủ llama.cpp cục bộ của chúng ta:
pi install git:github.com/huggingface/pi-llama
export LLAMA_BASE_URL=http://127.0.0.1:8910/v1
Tạo dự án mới và khởi động Pi:
mkdir new-project
cd new-project
Pi

Bên trong Pi, chạy /model, tìm llama-cpp và chọn Qwen3.8-27B.
Để thử nghiệm, tôi đã đưa prompt này:
Build a polished personal finance dashboard from scratch that imports CSV
bank statements, categorizes spending, shows monthly trends and charts, and
detects unusual expenses; also generate a realistic sample CSV, import it,
test the full app end-to-end, and fix any errors automatically.

Nó đã xây dựng toàn bộ dự án trong vài phút.

Sau đó tôi yêu cầu nó khởi động máy chủ và kiểm thử cả frontend lẫn logic ứng dụng. Nó dành nhiều thời gian hơn để gỡ lỗi và kiểm thử nhằm đảm bảo mọi thứ hoạt động đúng.

Khi tôi tự kiểm thử dashboard, ứng dụng hoạt động tốt, biểu đồ đẹp và trải nghiệm tổng thể mượt mà.

Điểm yếu chính là thực hiện các thay đổi UI chính xác. Sau vài prompt tiếp theo, nó bắt đầu thay đổi những thứ không liên quan thay vì hiểu đúng điều tôi muốn, nên tôi dừng lại tại đó.
Nhận xét cuối
Qwen3.8-27B vẫn còn rất mới, và cộng đồng đang tích cực tìm ra tổ hợp tốt nhất giữa lượng tử hóa và suy đoán giải mã. MTP hoạt động cực kỳ hiệu quả, nhưng các cách tiếp cận mới như DFlash 2 và DSpark cũng đang được thử nghiệm, với một số người dùng báo cáo tốc độ còn cao hơn tùy phần cứng và khối lượng công việc.
Unsloth cũng vừa phát hành GGUF Dynamic v3.0 cho Qwen3.8-27B, tuyên bố độ chính xác cao hơn khoảng 10% ở cùng kích thước mô hình so với các bản lượng tử trước đó. Điều này khiến Unsloth trở thành lựa chọn rất đáng cân nhắc nếu bạn muốn chất lượng tốt hơn trong khi vẫn giữ thiết lập suy luận cục bộ gần như không đổi.
Hiện tại, tôi cho rằng NVFP4 + MTP + llama.cpp là một trong những thiết lập dễ và nhanh nhất cho RTX 5090. Đạt khoảng 140 token mỗi giây từ mô hình 27B trong khi vẫn có cửa sổ ngữ cảnh lớn và đủ năng lực để chạy một agent lập trình thực thụ là rất ấn tượng. Thiết lập này có lẽ sẽ còn nhanh hơn nữa khi llama.cpp, Unsloth, DFlash 2 và DSpark tiếp tục được cải thiện.
Câu hỏi thường gặp khi chạy Qwen3.8-27B cục bộ
Bạn có cần RTX 5090 để chạy Qwen3.8-27B cục bộ không?
Không. Các bản GGUF lượng tử 4-bit tiêu chuẩn của Qwen3.8-27B chiếm khoảng 16–19 GB VRAM, vì vậy RTX 5080, 4090 hoặc Mac 24 GB đều chạy được mô hình. RTX 5090 quan trọng với thiết lập cụ thể này vì NVFP4 cần tensor core của Blackwell. Trên các card cũ hơn, tệp NVFP4 vẫn chạy nhưng chỉ mang lại tiết kiệm bộ nhớ, không tăng tốc.
Cấu hình này thực sự dùng bao nhiêu VRAM?
GGUF NVFP4-MTP khoảng 19 GB trên đĩa, và KV cache là yếu tố đẩy tổng dung lượng tăng lên khi ngữ cảnh lớn dần. Với lượng tử hóa K/V q8_0 ở ngữ cảnh rất dài, các lần chạy RTX 5090 được công bố rơi vào khoảng giữa 20 GB, nên card 32 GB là thoải mái. Với 24 GB bạn sẽ cần giảm --ctx-size xuống thấp hơn nhiều so với 131072.
MTP suy đoán giải mã làm gì, và có mất mát không?
Qwen3.8 đi kèm các lớp dự đoán đa token tích hợp sẵn trong GGUF, đóng vai trò như mô hình nháp tích hợp, không cần tệp thứ hai. Đầu nháp đề xuất nhiều token cùng lúc và mô hình đầy đủ sẽ xác minh chúng, vì vậy các nháp được chấp nhận chỉ tốn một phần nhỏ so với một lượt truyền thẳng thông thường. Chất lượng đầu ra không thay đổi, vì mỗi token được mô hình chính chấp nhận đều là token mà nó sẽ sinh ra anyway.
Bạn nên dùng NVFP4 hay lượng tử hóa Q4_K_M thông thường?
Chọn NVFP4 nếu bạn có GPU Blackwell và muốn tốc độ tối đa; chọn GGUF tiêu chuẩn như Q4_K_M hoặc bản của Unsloth là UD-Q4_K_XL nếu bạn dùng Ampere hoặc Ada, hoặc nếu bạn quan tâm hơn tới chất lượng đầu ra trên mỗi gigabyte. Hỗ trợ NVFP4 trong llama.cpp cũng mới hơn tuyến K-quant, nên hãy kỳ vọng còn thô ráp hơn quanh phần chuyển đổi và công cụ.
Thiết lập này có xử lý hình ảnh được không, vì Qwen3.8-27B là mô hình thị giác?
Qwen3.8-27B là mô hình thị giác-ngôn ngữ gốc, nhưng các chuyển đổi GGUF chỉ văn bản sẽ loại bỏ tháp thị giác. Để dùng hình ảnh, bạn cần truyền một multimodal projector cùng với mô hình bằng --mmproj, thường là tệp mmproj được phát hành trong cùng repo hoặc trong repo GGUF của Unsloth.
Là một nhà khoa học dữ liệu được chứng nhận, tôi đam mê tận dụng công nghệ tiên tiến để tạo ra các ứng dụng học máy đổi mới. Với nền tảng vững chắc về nhận dạng giọng nói, phân tích và báo cáo dữ liệu, MLOps, AI hội thoại và NLP, tôi đã rèn giũa kỹ năng phát triển các hệ thống thông minh có thể tạo ra tác động thực sự. Bên cạnh chuyên môn kỹ thuật, tôi cũng là một người truyền đạt tốt, có khả năng chắt lọc các khái niệm phức tạp thành ngôn ngữ rõ ràng, súc tích. Nhờ đó, tôi trở thành một blogger được nhiều người quan tâm trong lĩnh vực khoa học dữ liệu, chia sẻ góc nhìn và kinh nghiệm với cộng đồng các chuyên gia dữ liệu ngày càng lớn. Hiện tại, tôi tập trung vào sáng tạo và biên tập nội dung, làm việc với các mô hình ngôn ngữ lớn để phát triển nội dung mạnh mẽ và hấp dẫn, giúp doanh nghiệp và cá nhân tận dụng tối đa dữ liệu của mình.

