Tìm hiểu cách chạy Qwen3-Next trên máy local, phục vụ mô hình với transformers serve và tương tác bằng cURL và OpenAI SDK, sẵn sàng để tích hợp vào ứng dụng của bạn.
AI mã nguồn mở đang tiến rất nhanh; các mô hình mới xuất hiện gần như mỗi ngày, vượt trội hơn các phiên bản trước đồng thời nhanh hơn, dễ huấn luyện hơn và sẵn sàng cho tác vụ dạng “agent” hơn.
Trong hướng dẫn thực hành này, chúng ta sẽ tìm hiểu Qwen3‑Next, chạy nó trên máy local, khởi chạy một máy chủ cục bộ đơn giản và thiết lập để bạn có thể tích hợp vào ứng dụng sau này. Tuyệt nhất là chúng ta sẽ làm mọi thứ chỉ với khung Transformers của Hugging Face, cho cả suy luận (inference) và phục vụ mô hình (serving).
Kết thúc bài, bạn sẽ:
Hiểu những điểm mới trong Qwen3‑Next
Chạy Qwen3‑Next trên máy local với Transformers
Dùng biến thể bitsandbytes (bnb) 4‑bit để giảm bộ nhớ
Phục vụ Qwen3‑Next qua HTTP với transformers serve
Tương tác với máy chủ bằng cả cURL và Python
Giới thiệu Qwen3-Next
Qwen3-Next là một kiến trúc mới được thiết kế để mở rộng cả độ dài ngữ cảnh và tổng số tham số. Mô hình nền tảng 80 tỷ tham số chỉ kích hoạt khoảng 3 tỷ tham số trong quá trình suy luận, nhưng đạt hiệu năng tương đương hoặc nhỉnh hơn một chút so với Dense Qwen3-32B, với chi phí huấn luyện dưới 10%. Nó cũng mang lại thông lượng cao hơn 10 lần cho ngữ cảnh vượt quá 32.000 token.
Về các biến thể hậu huấn luyện, bản Instruct có thể cạnh tranh với mô hình flagship 235 tỷ tham số và hỗ trợ độ dài ngữ cảnh lên tới 256.000 token. Ngoài ra, biến thể Thinking vượt trội so với các mô hình Qwen3-30B-A3B và Qwen3-32B, cũng như Gemini-2.5-Flash-Thinking, tiến gần hiệu năng của mô hình Thinking 235 tỷ.
Cơ chế attention lai (Gated DeltaNet + Gated Attention, 3:1): Kết hợp một attention nhanh, nhẹ bộ nhớ cho đầu vào dài với attention tiêu chuẩn để ghi nhớ chính xác. Cổng đầu ra, số head lớn hơn (256) và RoPE một phần (25%) giúp mô hình vừa chính xác vừa hiệu quả trên chuỗi rất dài.
MoE siêu thưa (512 expert; 10 định tuyến + 1 dùng chung; ~3B/80B hoạt động): Chỉ một phần nhỏ mô hình chạy cho mỗi token, giảm tính toán và bộ nhớ nhưng vẫn giữ chất lượng cao. Cân bằng tải toàn cục phân phối công việc giữa các expert để đạt hiệu năng ổn định mà không lãng phí.
Huấn luyện ưu tiên ổn định: Attention có cổng đầu ra ngăn kích hoạt tăng vọt; Zero‑Centered RMSNorm với weight decay giữ trọng số chuẩn hóa hợp lý; khởi tạo bộ định tuyến MoE đã chuẩn hóa tránh hỗn loạn giai đoạn đầu. Kết quả: ít trục trặc huấn luyện hơn và mở rộng mượt mà hơn.
Dự đoán đa token gốc (MTP): Cho phép mô hình tự tin đề xuất đồng thời nhiều token kế tiếp, tăng tốc độ giải mã. Huấn luyện nhiều bước khớp với cách dùng ở suy luận, tăng tỷ lệ chấp nhận giải mã suy đoán mà không giảm chất lượng.
Sửa lỗi ổn định RL: Tinh chỉnh học tăng cường chạy nhanh hơn và ít dễ crash hơn trên thiết lập attention lai, MoE độ thưa cao—giúp đạt hiệu năng cuối tốt hơn nhanh hơn.
Bạn có thể lấy Qwen3‑Next trên Hugging Face và ModelScope để tải về dùng local, hoặc triển khai làm máy chủ với các framework như vLLM, SGLang, hoặc Transformers Serve.
Chạy Qwen3-Next trên máy local
Để chạy Qwen3-Next trên máy local, chúng ta sẽ cài thư viện transformers từ kho chính, cùng với accelerate, bitsandbytes, flash-linear-attention và causal-conv1d để có backend nhanh hơn.
Sau khi cài đặt, vui lòng khởi động lại kernel của Jupyter notebook.
Tiếp theo, tải và nạp tokenizer và mô hình với kiểu dữ liệu và sơ đồ thiết bị thích hợp.
Chúng ta sẽ nạp một mô hình lượng tử hóa 4‑bit, giúp giảm dung lượng bộ nhớ xuống còn một phần tư. Điều này nghĩa là bạn cần ít dung lượng lưu trữ và ít VRAM hơn để nạp và chạy suy luận.
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_name ="unsloth/Qwen3-Next-80B-A3B-Instruct-bnb-4bit"# --- Load tokenizer ---
tokenizer = AutoTokenizer.from_pretrained(model_name)# --- Load model ---
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map="auto",
dtype="auto",)Được hỗ trợ bởi
Sau đó, chúng ta tạo một prompt, xây dựng message và đưa qua chat template để đảm bảo định dạng cần thiết được mô hình Qwen3-Next nhận diện.
# prepare the model input
prompt ="Write a short introduction to large language models, highlighting how learners can explore them through DataCamp's interactive courses and hands-on projects."
messages =[{"role":"user","content": prompt},]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,)Được hỗ trợ bởi
Tiếp đó, chúng ta sẽ tokenize văn bản, đưa qua mô hình và chỉ trích xuất các token đầu ra. Cuối cùng, giải mã và hiển thị phản hồi.
content: Large language models (LLMs) are advanced AI systems trained on vast amounts of text data to understand, generate, and reason with human language.
From answering questions and writing code to summarizing documents and engaging in conversation, LLMs are transforming how we interact with technology--and how we learn.
At DataCamp, learners can explore the power of LLMs through interactive courses and hands-on projects that bridge theory with real-world application.
Whether you're building your first chatbot, fine-tuning a model with Hugging Face, or evaluating AI-generated text, DataCamp's guided, code-based learning environment lets you experiment safely and effectively--no prior AI expertise required.
Start your journey into the future of language AI today.Được hỗ trợ bởi
Một vài lưu ý:
Kích thước 4-bit: Mô hình Qwen3-Next ở 4‑bit khoảng ~60 GB chỉ riêng trọng số; với overhead/kv‑cache, bạn thường sẽ cần ~60–80 GB VRAM để tạo sinh thoải mái. Chạy chỉ CPU là có thể, nhưng rất chậm.
Thời gian nạp: Trên ổ đĩa chậm (ví dụ HDD/mạng), lần nạp đầu có thể mất thời gian. SSD/NVMe giúp rất nhiều.
Giữ trong VRAM: Khi đã nạp, mô hình nằm trong bộ nhớ GPU cho đến khi bạn giải phóng hoặc khởi động lại kernel, nên các lần suy luận sau nhanh hơn nhiều.
Đảm bảo dùng GPU: Nếu torch.cuda.is_available() là False, bạn đang chạy trên CPU. Hãy kiểm tra lại thiết lập CUDA/driver.
Phục vụ Qwen3-Next
Bạn có thể phục vụ Qwen3-Next trên máy local bằng SGLang hoặc vLLM, như trên trang mô hình của Qwen. Tuy nhiên, trong hướng dẫn này, chúng ta sẽ học một cách mới: dùng Transformers CLI để phục vụ mô hình và truy cập qua giao diện chat do Transformers cung cấp, tương tự Ollama.
Trước tiên, cài thư viện Transformers với khả năng serving:
Như ta thấy, máy chủ sẽ truy cập được qua cổng 8000:
INFO: Started server process [3502]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://localhost:8000 (Press CTRL+C to quit)Được hỗ trợ bởi
Cách đơn giản nhất để tương tác với máy chủ là dùng Transformers chat CLI. Công cụ này cho phép bạn kết nối với máy chủ và cung cấp giao diện chat ngay trong terminal.
Sau đó chạy lệnh sau để khởi chạy giao diện chat kèm đường dẫn mô hình:
transformers chat localhost:8000 \
--model-name-or-path unsloth/Qwen3-Next-80B-A3B-Instruct-bnb-4bitĐược hỗ trợ bởi
Transformers chat sẽ tự động quyết định mô hình đã tải nào để chọn và nạp. Ban đầu việc nạp mô hình có thể mất thời gian, nhưng sau đó bạn có thể bắt đầu trò chuyện.
Như bạn thấy, chúng ta đang tương tác với mô hình Qwen3-Next trên máy local qua giao diện chat.
Tương tác với máy chủ Qwen3-Next
Có nhiều cách để tương tác với máy chủ. Bạn có thể dùng AsyncInferenceClient từ Hugging Face Hub, gửi lệnh CURL, dùng thư viện requests của Python, hoặc truy cập máy chủ qua OpenAI API.
Máy chủ này tương thích với OpenAI, nghĩa là bạn có thể tích hợp vào VSCode, quy trình Agentic, hoặc dùng như một máy chủ MCP.
Đầu tiên, chúng ta sẽ chạy một lệnh CURL đơn giản trong terminal mới để kiểm tra có bao nhiêu mô hình sẵn sàng trên máy chủ:
Sau đó, chúng ta sẽ dùng responses API. Chúng ta cung cấp mô hình, prompt và đặt streaming là false:
curl-s http://localhost:8000/v1/responses \-H"Content-Type: application/json"\-d'{
"model": "unsloth/Qwen3-Next-80B-A3B-Instruct-bnb-4bit",
"input": "One line: what is Qwen3-Next?",
"stream": false
}'Được hỗ trợ bởi
Kết quả là nó đã tạo phản hồi chứa thông tin về mô hình Qwen3-Next.
{"response":{"id":"resp_req_0","created_at":1758494863.6661901,"model":"unsloth/Qwen3-Next-80B-A3B-Instruct-bnb-4bit@main","object":"response","output":[{"id":"msg_req_0","content":[{"annotations":[],"text":"Qwen3-Next is the next-generation large language model in Alibaba's Qwen series, featuring enhanced performance, broader knowledge, and improved reasoning capabilities.","type":"output_text"}],"role":"assistant","status":"completed","type":"message","annotations":[]}],"parallel_tool_calls":false,"tool_choice":"auto","tools":[],"status":"completed","text":{"format":{"type":"text"}}},"sequence_number":40,"type":"response.completed"}Được hỗ trợ bởi
Tương tự, bạn có thể tạo một tệp Python, thêm đoạn mã sau và chạy.
Đoạn mã sẽ khởi tạo OpenAI client với URL máy chủ local. Chúng ta cung cấp tên mô hình, input và tạo phản hồi dưới dạng stream.
from openai import OpenAI
# Connect to your local server
client = OpenAI(
base_url="http://localhost:8000/v1",# transformers serve endpoint
api_key="not-needed"# required by SDK, but can be dummy)# Create a streaming response request
response = client.responses.create(
model="unsloth/Qwen3-Next-80B-A3B-Instruct-bnb-4bit",# use your loaded model
instructions="You are a helpful assistant.",input="What is love?",
stream=True,# enable SSE streaming
metadata={"source":"local-test"}# optional metadata)# Iterate over server-sent eventsfor event in response:if event.type=="response.output_text.delta":# This event contains the incremental textprint(event.delta, end="", flush=True)elif event.type=="response.completed":print("\n--- done ---")Được hỗ trợ bởi
Chúng ta nhận được kết quả đúng dạng streaming. Rất tuyệt.
Love is one of the most profound, complex, and universal human experiences -- a powerful emotion that defies simple definition but shapes our lives in countless ways.
At its core, **love** is a deep affection, care, and connection toward another person -- or even a thing, idea, or cause. It can manifest in many forms:
### Types of Love (from ancient Greek philosophy):
- **Eros**: Passionate, romantic, or sexual love.
- **Philia**: Deep friendship and platonic affection.
- **Storge**: Familial love -- the natural affection between parents and children.
- **Agape**: Selfless, unconditional love -- often spiritual or altruistic.
- **Ludus**: Playful, flirtatious love.
- **Pragma**: Long-lasting, committed love built on patience and compromise.
- **Philautia**: Self-love -- healthy self-regard that enables us to love others.
### What Love Feels Like:
- **Emotionally**: Warmth, safety, joy, vulnerability, longing, and sometimes pain.
- **Behaviorally**: Acts of kindness, sacrifice, patience, listening, and presence.
- **Biologically**: Involves neurotransmitters like oxytocin, dopamine, and serotonin -- chemicals that bond us and create attachment.
### Love Is Also a Choice:
Beyond feelings, love is often a decision -- to show up, to forgive, to stay even when it's hard. It's not just a rush of butterflies; it's the quiet commitment to care for someone day after day.
### In Essence:
> **Love is seeing someone's soul -- and choosing to hold it gently.**
It's the reason people write poetry, compose music, risk everything for another, and find meaning in life. Love connects us -- to others, to ourselves, and to something greater than just our individual existence.
So what is love?
It's complicated. It's messy. It's beautiful.
And above all -- it's human. ❤️
--- done ---Được hỗ trợ bởi
Kết luận
Tại thời điểm viết bài, phiên bản GGUF của Qwen3-Next chưa có, nghĩa là không thể chạy local bằng Ollama hoặc Llama.cpp. Mô hình đầy đủ cần bốn GPU A100 để vận hành hiệu quả, nên chúng tôi chọn bản lượng tử hóa cho phép chạy mô hình trên một GPU A100 với 80GB VRAM. Dù mất chút thời gian tải và thiết lập, chúng ta đã học được cách chạy suy luận thành công.
Trong hướng dẫn này, chúng ta đã khám phá mô hình Qwen3-Next, mô hình cạnh tranh với các mô hình độc quyền hàng đầu về tốc độ và độ chính xác, dù nhỏ hơn.
Sau khi chạy mô hình trên máy local, chúng ta truy cập nó bằng lệnh curl và OpenAI Python SDK. Bước tiếp theo là tối ưu mô hình cho máy của bạn. Chúng ta có thể khám phá các phiên bản nhỏ hơn, như mô hình 1.2‑bit, để tăng tốc suy luận, đặc biệt trên GPU cấu hình thấp.
Ngoài ra, bạn có thể cân nhắc thuê máy chủ GPU để tự thiết lập máy chủ LLM riêng. Runpod là một lựa chọn đáng tham khảo.
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.
Học cách phát triển các mô hình ngôn ngữ lớn (LLMs) bằng PyTorch và Hugging Face, áp dụng các kỹ thuật học sâu và xử lý ngôn ngữ tự nhiên (NLP) tiên tiến nhất.
AI mã nguồn mở đang tiến rất nhanh; các mô hình mới xuất hiện gần như mỗi ngày, vượt trội hơn các phiên bản trước đồng thời nhanh hơn, dễ huấn luyện hơn và sẵn sàng cho tác vụ dạng “agent” hơn.
Trong hướng dẫn thực hành này, chúng ta sẽ tìm hiểu Qwen3‑Next, chạy nó trên máy local, khởi chạy một máy chủ cục bộ đơn giản và thiết lập để bạn có thể tích hợp vào ứng dụng sau này. Tuyệt nhất là chúng ta sẽ làm mọi thứ chỉ với khung Transformers của Hugging Face, cho cả suy luận (inference) và phục vụ mô hình (serving).
Kết thúc bài, bạn sẽ:
Giới thiệu Qwen3-Next
Qwen3-Next là một kiến trúc mới được thiết kế để mở rộng cả độ dài ngữ cảnh và tổng số tham số. Mô hình nền tảng 80 tỷ tham số chỉ kích hoạt khoảng 3 tỷ tham số trong quá trình suy luận, nhưng đạt hiệu năng tương đương hoặc nhỉnh hơn một chút so với Dense Qwen3-32B, với chi phí huấn luyện dưới 10%. Nó cũng mang lại thông lượng cao hơn 10 lần cho ngữ cảnh vượt quá 32.000 token.
Về các biến thể hậu huấn luyện, bản Instruct có thể cạnh tranh với mô hình flagship 235 tỷ tham số và hỗ trợ độ dài ngữ cảnh lên tới 256.000 token. Ngoài ra, biến thể Thinking vượt trội so với các mô hình Qwen3-30B-A3B và Qwen3-32B, cũng như Gemini-2.5-Flash-Thinking, tiến gần hiệu năng của mô hình Thinking 235 tỷ.
Nguồn: Qwen
Điểm mới trong Qwen3-Next:
Bạn có thể lấy Qwen3‑Next trên Hugging Face và ModelScope để tải về dùng local, hoặc triển khai làm máy chủ với các framework như vLLM, SGLang, hoặc Transformers Serve.
Chạy Qwen3-Next trên máy local
Để chạy Qwen3-Next trên máy local, chúng ta sẽ cài thư viện
transformerstừ kho chính, cùng vớiaccelerate,bitsandbytes,flash-linear-attentionvàcausal-conv1dđể có backend nhanh hơn.Sau khi cài đặt, vui lòng khởi động lại kernel của Jupyter notebook.
Tiếp theo, tải và nạp tokenizer và mô hình với kiểu dữ liệu và sơ đồ thiết bị thích hợp.
Chúng ta sẽ nạp một mô hình lượng tử hóa 4‑bit, giúp giảm dung lượng bộ nhớ xuống còn một phần tư. Điều này nghĩa là bạn cần ít dung lượng lưu trữ và ít VRAM hơn để nạp và chạy suy luận.
Sau đó, chúng ta tạo một prompt, xây dựng message và đưa qua chat template để đảm bảo định dạng cần thiết được mô hình Qwen3-Next nhận diện.
Tiếp đó, chúng ta sẽ tokenize văn bản, đưa qua mô hình và chỉ trích xuất các token đầu ra. Cuối cùng, giải mã và hiển thị phản hồi.
Đầu ra trông rất ổn:
Một vài lưu ý:
Phục vụ Qwen3-Next
Bạn có thể phục vụ Qwen3-Next trên máy local bằng SGLang hoặc vLLM, như trên trang mô hình của Qwen. Tuy nhiên, trong hướng dẫn này, chúng ta sẽ học một cách mới: dùng Transformers CLI để phục vụ mô hình và truy cập qua giao diện chat do Transformers cung cấp, tương tự Ollama.
Trước tiên, cài thư viện Transformers với khả năng serving:
Tiếp theo, khởi động máy chủ Transformers từ terminal. Đây là một máy chủ tổng quát, tương tự Ollama.
Như ta thấy, máy chủ sẽ truy cập được qua cổng 8000:
Cách đơn giản nhất để tương tác với máy chủ là dùng Transformers chat CLI. Công cụ này cho phép bạn kết nối với máy chủ và cung cấp giao diện chat ngay trong terminal.
Mở một cửa sổ terminal mới và cài thư viện Rich:
Sau đó chạy lệnh sau để khởi chạy giao diện chat kèm đường dẫn mô hình:
Transformers chat sẽ tự động quyết định mô hình đã tải nào để chọn và nạp. Ban đầu việc nạp mô hình có thể mất thời gian, nhưng sau đó bạn có thể bắt đầu trò chuyện.
Như bạn thấy, chúng ta đang tương tác với mô hình Qwen3-Next trên máy local qua giao diện chat.
Tương tác với máy chủ Qwen3-Next
Có nhiều cách để tương tác với máy chủ. Bạn có thể dùng
AsyncInferenceClienttừ Hugging Face Hub, gửi lệnh CURL, dùng thư việnrequestscủa Python, hoặc truy cập máy chủ qua OpenAI API.Máy chủ này tương thích với OpenAI, nghĩa là bạn có thể tích hợp vào VSCode, quy trình Agentic, hoặc dùng như một máy chủ MCP.
Đầu tiên, chúng ta sẽ chạy một lệnh CURL đơn giản trong terminal mới để kiểm tra có bao nhiêu mô hình sẵn sàng trên máy chủ:
Sau đó, chúng ta sẽ dùng responses API. Chúng ta cung cấp mô hình, prompt và đặt streaming là false:
Kết quả là nó đã tạo phản hồi chứa thông tin về mô hình Qwen3-Next.
Tương tự, bạn có thể tạo một tệp Python, thêm đoạn mã sau và chạy.
Đoạn mã sẽ khởi tạo OpenAI client với URL máy chủ local. Chúng ta cung cấp tên mô hình, input và tạo phản hồi dưới dạng stream.
Chúng ta nhận được kết quả đúng dạng streaming. Rất tuyệt.
Kết luận
Tại thời điểm viết bài, phiên bản GGUF của Qwen3-Next chưa có, nghĩa là không thể chạy local bằng Ollama hoặc Llama.cpp. Mô hình đầy đủ cần bốn GPU A100 để vận hành hiệu quả, nên chúng tôi chọn bản lượng tử hóa cho phép chạy mô hình trên một GPU A100 với 80GB VRAM. Dù mất chút thời gian tải và thiết lập, chúng ta đã học được cách chạy suy luận thành công.
Trong hướng dẫn này, chúng ta đã khám phá mô hình Qwen3-Next, mô hình cạnh tranh với các mô hình độc quyền hàng đầu về tốc độ và độ chính xác, dù nhỏ hơn.
Sau khi chạy mô hình trên máy local, chúng ta truy cập nó bằng lệnh curl và OpenAI Python SDK. Bước tiếp theo là tối ưu mô hình cho máy của bạn. Chúng ta có thể khám phá các phiên bản nhỏ hơn, như mô hình 1.2‑bit, để tăng tốc suy luận, đặc biệt trên GPU cấu hình thấp.
Ngoài ra, bạn có thể cân nhắc thuê máy chủ GPU để tự thiết lập máy chủ LLM riêng. Runpod là một lựa chọn đáng tham khảo.