Chuyển đến nội dung chính

Cách chạy Qwen 3.5 cục bộ trên một GPU: Hướng dẫn từng bước

Chạy mẫu Qwen mới nhất trên máy ảo GPU đơn, thiết lập llama.cpp và truy cập an toàn cục bộ qua SSH thông qua endpoint riêng tương thích OpenAI.
Đã cập nhật 5 thg 6, 2026  · 10 phút đọc

Qwen3.5 là dòng mẫu Qwen mới nhất của Alibaba, kế thừa hiệu năng mạnh mẽ của các phiên bản trước trong các tác vụ suy luận, lập trình và đa phương thức. 

Các đánh giá benchmark độc lập cho thấy mẫu Qwen3.5-397B-A17B đạt điểm cao trên các bài kiểm tra phổ biến như LiveCodeBench và AIME26, thường vượt qua các mẫu hàng đầu như GPT-5.2 và Claude Opus 4.5 ở phần lớn hạng mục được đánh giá, đồng thời mang lại thông lượng cao hơn đáng kể so với các thế hệ Qwen trước.

Qwen3.5 benchmark

Nguồn: Qwen/Qwen3.5-397B-A17B · Hugging Face

Trong hướng dẫn này, chúng ta sẽ:

  1. Tìm hiểu các điều kiện tiên quyết để chạy Qwen3.5 cục bộ
  2. Thiết lập máy ảo GPU Hyperbolic AI
  3. Cài đặt llama.cpp với hỗ trợ CUDA
  4. Tải mẫu Qwen3.5 từ Hugging Face
  5. Khởi động máy chủ suy luận Qwen3.5 tương thích OpenAI
  6. Kiểm thử máy chủ bằng OpenAI SDK
  7. Dùng WebUI của llama.cpp để xây dựng ứng dụng giao dịch đơn giản

Yêu cầu phần cứng và phần mềm cho Qwen3.5

Trước khi chạy Qwen3.5 cục bộ, bạn cần đảm bảo hệ thống đáp ứng cả yêu cầu phần cứng lẫn phần mềm để suy luận mượt mà. Trong hướng dẫn này, chúng tôi sử dụng GPU NVIDIA H200 với 141GB VRAM, kết hợp 240GB RAM hệ thống, đủ dồi dào để chạy hiệu quả phiên bản MXFP4_MOE của Qwen3.5 với việc offload MoE.

Tham chiếu: bản định lượng động 4-bit Unsloth UD-Q4_K_XL sử dụng khoảng 214GB dung lượng đĩa. Nó có thể đặt trực tiếp trên Mac Studio M3 Ultra 256GB, và cũng chạy tốt trên một GPU 24GB với 256GB RAM, đạt 25+ token/giây với MoE offloading. Các bản định lượng 3-bit nhỏ hơn có thể nằm gọn trong 192GB RAM, trong khi bản 8-bit độ chính xác cao hơn có thể cần tới 512GB RAM + VRAM kết hợp.

Nhìn chung, để có hiệu năng tốt nhất, tổng VRAM + RAM nên xấp xỉ kích thước mẫu đã định lượng mà bạn tải về. Nếu không, llama.cpp có thể offload xuống SSD nhưng suy luận sẽ chậm hơn.

Về phần mềm, bạn nên cài đặt trình điều khiển GPU NVIDIA mới nhất cùng với CUDA Toolkit phiên bản gần đây để đảm bảo tương thích hoàn toàn với llama.cpp và suy luận tăng tốc bằng CUDA.

Cách chạy Qwen 3.5 cục bộ

Khi đã có đủ điều kiện tiên quyết, hãy đi qua từng bước để sử dụng Qwen 3.5 cục bộ: 

1. Thiết lập môi trường cục bộ

Để chạy Qwen3.5 cục bộ, bạn cần truy cập vào một máy có GPU mạnh. Vì hầu hết laptop và PC để bàn không có đủ VRAM hoặc bộ nhớ để xử lý mẫu kích thước này, chúng ta sẽ dùng máy ảo GPU trên đám mây.

Trong hướng dẫn này, chúng tôi dùng Hyperbolic để chạy mẫu một cách riêng tư. Bạn cũng có thể dùng các nhà cung cấp khác như RunPod, Vast.ai, hoặc bất kỳ nền tảng máy ảo GPU nào bạn ưa thích. Chúng tôi chọn Hyperbolic vì hiện cung cấp một số phiên bản GPU có chi phí hiệu quả nhất.

Bắt đầu bằng cách khởi chạy một instance mới với một GPU H200

Khởi động instance VM GPU H200 của Hyperbolic

Sau khi máy khởi động, bạn sẽ thấy địa chỉ IP công khai và lệnh SSH cần thiết để kết nối từ terminal cục bộ.

Instance GPU Hyperbolic đang chạy

Trước khi kết nối, hãy đảm bảo bạn đã thiết lập SSH cục bộ và đã thêm khóa SSH công khai khi tạo máy ảo.

Khi instance sẵn sàng, hãy kết nối qua SSH với chuyển tiếp cổng. Điều này quan trọng vì chúng ta muốn truy cập máy chủ suy luận llama.cpp cục bộ qua cổng 8080:

ssh -L 8080:localhost:8080 root@129.212.191.53

Lần đầu kết nối, gõ yes để xác nhận, rồi xác thực bằng khóa SSH của bạn.

kết nối tới VM Hyperbolic bằng ssh

Sau khi đăng nhập, hãy xác minh GPU được nhận diện đúng:

nvidia-smi 

Bạn sẽ thấy NVIDIA H200 trong phần output.

kiểm tra thông số GPU

Cuối cùng, cài đặt các gói Linux cần thiết để tải xuống, biên dịch và chạy llama.cpp:

sudo apt update
sudo apt install pciutils build-essential cmake curl libcurl4-openssl-dev -y

Sau khi hoàn tất, môi trường của bạn đã sẵn sàng để cài đặt llama.cpp và chạy Qwen3.5 cục bộ.

2. Cài đặt llama.cpp với hỗ trợ CUDA

llama.cpp là engine suy luận mã nguồn mở bằng C và C++ cho phép bạn chạy các mô hình ngôn ngữ lớn cục bộ với thiết lập tối thiểu, hỗ trợ tăng tốc cả CPU và GPU.

Đầu tiên, clone repository llama.cpp:

git clone https://github.com/ggml-org/llama.cpp

Tiếp theo, cấu hình bản build có CUDA bằng CMake. Ta bật CUDA với -DGGML_CUDA=ON, và đặt kiến trúc CUDA là 90a vì chúng ta dùng NVIDIA H200 (nhóm Hopper). Điều này giúp tạo mã GPU tối ưu cho đặc tính của Hopper.

cmake llama.cpp -B llama.cpp/build \
  -DGGML_CUDA=ON \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_CUDA_ARCHITECTURES="90a"

tạo tệp build llama.cpp có CUDA.

Giờ hãy biên dịch binary máy chủ. llama-server là máy chủ REST tích hợp cho phép bạn xuất llama.cpp thành một endpoint API:

cmake --build llama.cpp/build --config Release -j --clean-first --target llama-server

Biên dịch llama.cpp từ mã nguồn

Cuối cùng, sao chép các binary đã biên dịch vào thư mục chính để dễ chạy:

cp llama.cpp/build/bin/llama-* llama.cpp

3. Tải mẫu Qwen3.5

Khi đã cài xong llama.cpp, bước tiếp theo là tải trọng số mẫu Qwen3.5 ở định dạng GGUF. Các tệp này rất lớn, nên dùng CLI của Hugging Face là cách đáng tin cậy nhất để tải trực tiếp về máy GPU của bạn.

Chúng ta cài Python trước vì công cụ tải và tiện ích xác thực của Hugging Face được phân phối dưới dạng gói Python. Dù llama.cpp được viết bằng C++, Python giúp quản lý việc tải và truyền mẫu dễ dàng hơn nhiều.

Bắt đầu bằng cách cài đặt pip:

sudo apt install python3-pip

Tiếp theo, cài client Hugging Face Hub cùng các tiện ích hiệu năng. hf_transferhf-xet tăng tốc tải xuống đáng kể, quan trọng khi kéo về hàng trăm GB tệp mẫu:

pip -q install -U huggingface_hub hf-xet
pip -q install -U hf_transfer

Giờ hãy tải mẫu Qwen3.5 từ Hugging Face. Trong hướng dẫn này, chúng ta chỉ lấy biến thể MXFP4_MOE, được tối ưu cho suy luận MoE hiệu quả:

hf download unsloth/Qwen3.5-397B-A17B-GGUF \
   --local-dir models/Qwen3.5 \
   --include "*MXFP4_MOE*"

tải mẫu Qwen3.5 4-bit từ hugging face

Khi tải xong, các tệp mẫu sẽ nằm trong models/Qwen3.5, sẵn sàng nạp vào llama.cpp để suy luận cục bộ.

4. Khởi động mẫu Qwen3.5 trên một GPU

Giờ chúng ta có thể khởi động Qwen3.5 bằng llama-server. Điều này cung cấp endpoint API tương thích OpenAI mà ta có thể gọi từ các công cụ và ứng dụng cục bộ.

Chúng tôi đã tối ưu máy chủ cho cấu hình một GPU bằng ba điểm chính. Thứ nhất, bật --fit on để llama.cpp tự cân bằng mẫu giữa VRAM của GPU và RAM hệ thống, thay vì lỗi khi mẫu không vừa hoàn toàn trong VRAM. 

Thứ hai, dùng cửa sổ ngữ cảnh lớn hơn với --ctx-size 16384 để máy chủ xử lý prompt dài hơn. Thứ ba, bật --jinja và truyền --chat-template-kwargs để kiểm soát định dạng hội thoại và tắt chế độ thinking nhằm có phản hồi nhanh, trực tiếp hơn.

Chạy máy chủ với:

./llama.cpp/llama-server \
    --model models/Qwen3.5/MXFP4_MOE/Qwen3.5-397B-A17B-MXFP4_MOE-00001-of-00006.gguf \
    --alias "Qwen3.5" \
  --host 0.0.0.0 \
  --port 8080 \
  --fit on \
  --jinja \
   --ctx-size 16384 \
   --temp 0.7 \
   --top-p 0.8 \
   --top-k 20 \
   --min-p 0.00 \
   --chat-template-kwargs "{\"enable_thinking\": false}"

Trong lúc nạp mẫu, bạn sẽ thấy nó dùng cả VRAM của GPU và bộ nhớ hệ thống, điều này là bình thường với mẫu MoE lớn. 

khởi động máy chủ llama.cpp và nạp mẫu

Khi nạp xong, máy chủ có thể truy cập tại:

  • 0.0.0.0:8080 trên VM
  • http://127.0.0.1:8080 trên máy cục bộ của bạn sau khi chuyển tiếp cổng SSH

máy chủ Qwen3.5 chạy trên cổng 8080

Giữ máy chủ đang chạy. Trên PC cục bộ của bạn, mở terminal mới và kết nối lại với chuyển tiếp cổng SSH:

ssh -L 8080:localhost:8080 root@129.212.191.53

Sau đó kiểm thử máy chủ bằng cách liệt kê các mẫu khả dụng:

curl -s http://127.0.0.1:8080/v1/models

Nếu bạn thấy Qwen3.5 trong phản hồi, máy chủ của bạn chạy đúng và bạn sẵn sàng gọi từ OpenAI SDK và ứng dụng cục bộ của bạn.

mẫu Qwen3.5 khả dụng tại cổng 8080 trên máy chủ llama.cpp

5 Kiểm thử mẫu Qwen3.5 bằng OpenAI SDK

Khi máy chủ suy luận Qwen3.5 đang chạy, bước tiếp theo là xác minh nó hoạt động đúng với ứng dụng khách thực tế. Một trong những ưu điểm lớn của llama.cpp là llama-server cung cấp API tương thích OpenAI, nghĩa là bạn có thể dùng OpenAI SDK chính thức mà không cần thay đổi cấu trúc mã.

Đầu tiên, cài gói OpenAI Python trên máy cục bộ (hoặc trong VM nếu bạn muốn):

pip install openai 

Giờ chạy một script kiểm thử đơn giản. Script này kết nối tới endpoint được chuyển tiếp cục bộ tại http://127.0.0.1:8080/v1 thay vì máy chủ đám mây của OpenAI.

python3 - <<'PY'
from openai import OpenAI

client = OpenAI(
    base_url="http://127.0.0.1:8080/v1",
    api_key="sk-no-key-required"
)

response = client.chat.completions.create(
    model="Qwen3.5",
    messages=[
        {"role": "user", "content": "Write one sentence about AI agents."}
    ]
)

print(response.choices[0].message.content)
PY

Một vài điểm quan trọng cần hiểu ở đây:

  • base_url trỏ tới máy chủ Qwen3.5 cục bộ của bạn, không phải API của OpenAI.
  • api_key vẫn được SDK yêu cầu, nhưng llama.cpp không bắt buộc xác thực, nên có thể dùng giá trị placeholder bất kỳ.
  • Tên model="Qwen3.5" khớp với alias ta đặt khi khởi động máy chủ.

Nếu mọi thứ được cấu hình đúng, bạn sẽ nhận phản hồi nhanh, gọn từ mẫu.

Tạo phản hồi bằng OpenAI Python SDK

Điều này xác nhận rằng:

  • Mẫu Qwen3.5 đã được nạp thành công
  • Máy chủ llama.cpp chạy đúng cách
  • Chuyển tiếp cổng SSH hoạt động
  • Endpoint hoàn toàn tương thích với các ứng dụng kiểu OpenAI

Tại thời điểm này, bạn có thể tích hợp Qwen3.5 vào bất kỳ công cụ cục bộ, quy trình agent hay ứng dụng nào đã hỗ trợ định dạng API của OpenAI.

6. Xây dựng TUI giao dịch cổ phiếu bằng Llama.cpp WebUI

llama.cpp tích hợp sẵn WebUI kiểu ChatGPT để bạn trò chuyện với mẫu trực tiếp trong trình duyệt. Điều này hữu ích cho thử nghiệm nhanh, lặp prompt và tạo mã mà không cần viết script phía client trước. 

Vì chúng ta đã thiết lập chuyển tiếp cổng SSH, bạn có thể mở WebUI trên máy cục bộ và nó sẽ hoạt động như thể máy chủ chạy ngay trên laptop của bạn.

Theo mặc định, WebUI có tại:

http://127.0.0.1:8080

Nếu trang này tải được, điều đó xác nhận hai điều: đường hầm SSH hoạt động đúng và máy chủ Qwen3.5 có thể truy cập cục bộ trong khi vẫn chạy riêng tư trên VM GPU.

llama.cpp WebUI

Khi ở trong WebUI, hãy dán prompt này. Mục tiêu là để mẫu tạo cả mã Python và hướng dẫn sử dụng ngắn.

Xây dựng một Python TUI (Text User Interface) đơn giản "Stock Screener Trainer" chạy bằng python app.py dùng thư viện rich (không có web UI). Ứng dụng cho phép tôi nhập danh sách mã cổ phiếu, chọn chế độ (growth/value/dividend) mức rủi ro (low/med/high), lấy các chỉ số công khai cơ bản cho từng mã từ nguồn miễn phí, hiển thị trạng thái tải trực tiếp, sau đó render bảng đẹp một phần "Top 5 theo quy tắc chấm điểm của tôi" kèm tuyên bố miễn trừ rõ ràng "chỉ nhằm mục đích giáo dục, không phải tư vấn tài chính", lưu toàn bộ kết quả vào results.csv.

Trong vài giây, Qwen3.5 sẽ tạo tệp app.py và thường kèm theo hướng dẫn nhanh cách chạy.

Xây dựng ứng dụng giao dịch trong llama.cpp WebUI bằng Qwen3.5

Bây giờ chuyển sang terminal cục bộ (laptop của bạn). Cài các phụ thuộc ứng dụng vừa tạo cần:

pip install rich yfinance

Lệnh này cài:

  • rich cho bố cục TUI, bảng, prompt và chỉ báo tiến trình
  • yfinance để lấy chỉ số cổ phiếu công khai miễn phí

Tạo tệp tên app.py, dán mã mà mẫu tạo ra, rồi chạy:

python3 app.py

Khi chạy script, bạn sẽ thấy TUI khởi chạy đúng trong terminal. Ứng dụng sẽ nhắc bạn nhập các mã cổ phiếu muốn phân tích, cùng chế độ sàng lọc ưa thích và mức rủi ro. 

Ví dụ, chúng tôi đã thử với ba cổ phiếu phổ biến.

Kiểm thử ứng dụng tạo ra bằng lệnh python.

Sau một giai đoạn tải ngắn, công cụ trả về bảng đầy đủ các chỉ số cổ phiếu, làm nổi bật kết quả dựa trên quy tắc chấm điểm, và lưu mọi thứ vào tệp results.csv.

Kết quả phân tích TUI giao dịch cổ phiếu

Đây là ví dụ điển hình cho thấy Qwen3.5 có thể tạo trọn vẹn một ứng dụng hoạt động chỉ trong một lần, sử dụng endpoint mẫu định lượng 4-bit và một prompt đơn giản.

Kết luận

Chạy Qwen3.5 cục bộ là cách mạnh mẽ để truy cập một mẫu quy mô hàng đầu trong khi giữ mọi thứ riêng tư và hoàn toàn dưới sự kiểm soát của bạn. Trong hướng dẫn này, mẫu được lưu trữ trên một VM GPU H200 đơn, truy cập an toàn từ máy cục bộ bằng chuyển tiếp cổng SSH, và phục vụ qua endpoint llama.cpp tối ưu, tương thích OpenAI.

Tuy vậy, có vài hạn chế thực tế cần lưu ý. Vì mọi thứ phụ thuộc vào đường hầm SSH đang hoạt động, kết nối cần ổn định. Nếu internet của bạn gián đoạn hoặc phiên bị ngắt, bạn sẽ mất quyền truy cập vào cổng cục bộ và thường cần kết nối lại, khởi động lại một số phần của quy trình.

Một vấn đề thường gặp khác là build llama.cpp đúng cách. Nếu bạn không chỉ định cờ kiến trúc CUDA phù hợp cho GPU của mình, quá trình biên dịch có thể lâu hơn nhiều và không tối ưu hoàn toàn cho phần cứng. Đặt đúng kiến trúc ngay từ đầu tạo khác biệt rõ rệt về thời gian build và hiệu năng.

Cuối cùng, dù bản định lượng 4-bit MXFP4_MOE rất tốt để chạy mẫu lớn hiệu quả, nó không phải lúc nào cũng lý tưởng cho quy trình lập trình dạng agent. Khi thử nghiệm với các công cụ như Qwen Code CLI, Kilo Code CLI và OpenCode, mẫu gặp khó ở suy luận sâu và thường thất bại trong các vòng tạo dài, đôi khi còn gây bất ổn GPU. 

Các bản định lượng độ chính xác cao hơn hoặc mẫu nhỏ hơn tập trung suy luận có thể phù hợp hơn cho lập trình dựa trên agent ổn định.

Để tìm hiểu thêm về lập trình dạng agent, hãy xem khóa học AI-Assisted Coding for Developers của chúng tôi. Tôi cũng khuyến nghị hướng dẫn chạy GLM-5 cục bộ cho lập trình dạng agent.

Câu hỏi thường gặp về Qwen 3.5

"397B-A17B" trong tên mẫu Qwen 3.5 nghĩa là gì?

Điều này đề cập đến kiến trúc Mixture-of-Experts (MoE) thưa. Mẫu có tổng cộng 397 tỷ tham số, nhưng chỉ kích hoạt 17 tỷ tham số (A17B) mỗi token trong quá trình suy luận. Thiết kế này cho phép bạn có được sức mạnh suy luận của một mẫu hạng tiên phong mà không cần siêu máy tính nhiều GPU để chạy một prompt.

Tôi có thể chạy mẫu Qwen 3.5 397B trên máy bàn hoặc Mac phổ thông không?

Chạy mẫu chưa định lượng yêu cầu phần cứng doanh nghiệp, nhưng định lượng giúp nó khả dụng cho các thiết lập cục bộ cao cấp. Bản định lượng 4-bit (như định dạng MXFP4 hoặc GGUF) cần khoảng 214GB đến 256GB bộ nhớ kết hợp. Điều này có nghĩa bạn có thể chạy trên Mac Studio với 256GB bộ nhớ hợp nhất, hoặc trên PC với GPU 24GB và RAM hệ thống lớn bằng cách tận dụng MoE offloading của llama.cpp. Nếu phần cứng nhỏ hơn, Alibaba cũng cung cấp các phiên bản nhẹ hơn trong họ Qwen 3.5, như 35B-A3B.

Điều gì khiến Qwen 3.5 tốt hơn các mẫu Qwen trước cho ứng dụng cục bộ?

Không giống các thế hệ trước tách văn bản và thị giác, Qwen 3.5 là mẫu ngôn-ngữ-thị giác bản địa, tức là được huấn luyện đồng thời trên văn bản, hình ảnh, ảnh chụp UI và video ngay từ đầu. Nó cũng sử dụng kiến trúc lai mới (kết hợp Gated Delta Networks với MoE) giúp tăng tốc giải mã đáng kể và cho phép xử lý cửa sổ ngữ cảnh khổng lồ (lên tới 256K token bản địa) hiệu quả hơn nhiều.

Vì sao mẫu Qwen 3.5 cục bộ của tôi chạy chậm hơn mong đợi trong llama.cpp?

Nếu tốc độ token/giây rất chậm, thường là do tắc nghẽn biên dịch hoặc bộ nhớ. Trước hết, đảm bảo bạn build llama.cpp với cờ kiến trúc CUDA chính xác cho GPU của bạn (ví dụ, -DCMAKE_CUDA_ARCHITECTURES="90a" cho H200). Thứ hai, kiểm tra mức sử dụng bộ nhớ. Nếu tổng VRAM và RAM hệ thống của bạn không đủ chứa mẫu đã định lượng, llama.cpp sẽ phân trang bộ nhớ xuống SSD, điều này sẽ kìm hãm tốc độ suy luận nghiêm trọng.

Chủ đề

Các khóa học hàng đầu trên DataCamp

Courses

Thiết kế Hệ thống Agentic với LangChain

3 giờ
12K
Nắm vững các thành phần nền tảng của agent LangChain và xây dựng agent chat tùy chỉnh.
Xem chi tiếtRight Arrow
Bắt đầu khóa học
Xem thêmRight Arrow