QwQ-32B là mô hình suy luận của Qwen, được thiết kế để vượt trội trong các tác vụ giải quyết vấn đề phức tạp và suy luận. Dù chỉ có 32 tỷ tham số, mô hình đạt hiệu năng tương đương DeepSeek-R1 có tới 671 tỷ tham số.
Trong hướng dẫn này, tôi sẽ dẫn bạn qua việc thiết lập và chạy QwQ-32B tại chỗ bằng Ollama, một công cụ giúp đơn giản hóa suy luận LLM cục bộ. Hướng dẫn này bao gồm:
Chạy qua terminal hoặc IDE: Kèm các đoạn mã ngắn gọn để chạy QwQ-32B qua terminal hoặc IDE bạn chọn.
Bản demo thực hành: Xây dựng một dự án demo tận tay khai thác khả năng tư duy có cấu trúc của QwQ-32B.
Vì sao nên chạy QwQ-32B tại chỗ?
Mặc dù có kích thước lớn, QwQ-32B có thể được lượng tử hóa để chạy hiệu quả trên phần cứng phổ thông. Chạy QwQ-32B tại chỗ giúp bạn toàn quyền kiểm soát quá trình thực thi mô hình mà không phụ thuộc máy chủ bên ngoài. Dưới đây là vài lợi ích khi chạy QwQ-32B tại chỗ:
Quyền riêng tư & bảo mật: Không có dữ liệu rời khỏi hệ thống của bạn.
Truy cập không gián đoạn: Tránh giới hạn tốc độ, thời gian ngừng hoạt động hoặc gián đoạn dịch vụ.
Hiệu năng: Phản hồi nhanh hơn nhờ suy luận cục bộ, tránh độ trễ API.
Tùy biến: Điều chỉnh tham số, tinh chỉnh prompt và tích hợp mô hình vào ứng dụng cục bộ.
Tiết kiệm chi phí: Loại bỏ phí API bằng cách chạy mô hình tại chỗ.
Khả dụng ngoại tuyến: Làm việc không cần kết nối Internet sau khi tải mô hình.
Thiết lập QwQ-32B tại chỗ với Ollama
Ollama đơn giản hóa việc chạy LLM tại chỗ bằng cách xử lý tải mô hình, lượng tử hóa và thực thi.
QwQ-32B là mô hình lớn. Nếu hệ thống của bạn hạn chế tài nguyên, bạn có thể chọn các phiên bản lượng tử hóa nhỏ hơn. Ví dụ, bên dưới chúng ta dùng phiên bản Q4_K_M, là mô hình 19,85GB cân bằng giữa hiệu năng và kích thước:
Điều này sẽ giúp mô hình sẵn sàng cho các ứng dụng, sẽ được thảo luận ở phần tiếp theo.
Sử dụng QwQ-32B tại chỗ
Giờ QwQ-32B đã sẵn sàng, hãy cùng khám phá cách tương tác với nó.
Bước 1: Chạy suy luận qua CLI
Sau khi tải mô hình, bạn có thể tương tác trực tiếp với QwQ-32B trong terminal:
ollama run qwq
How many r's are in the word "strawberry”?Được hỗ trợ bởi
Phản hồi của mô hình thường gồm phần suy nghĩ (được bao trong các thẻ <think> </think>) tiếp theo là câu trả lời cuối cùng.
Bước 2: Truy cập QwQ-32B qua API
Để tích hợp QwQ-32B vào ứng dụng, bạn có thể dùng API của Ollama với curl. Chạy lệnh curl sau trong terminal của bạn.
curl-X POST http://localhost:11434/api/chat -H"Content-Type: application/json"-d'{
"model": "qwq",
"messages": [{"role": "user", "content": "Explain Newton second law of motion"}],
"stream": false
}'Được hỗ trợ bởi
curl là công cụ dòng lệnh gốc trên Linux nhưng cũng hoạt động trên macOS. Nó cho phép người dùng thực hiện các yêu cầu HTTP trực tiếp từ terminal, rất hữu ích để tương tác với API.
Lưu ý: Hãy đảm bảo đặt dấu ngoặc kép đúng chỗ và chọn đúng cổng localhost để tránh lỗi dquote.
Bước 3: Chạy QwQ-32B với Python
Chúng ta có thể chạy Ollama trong bất kỳ môi trường phát triển tích hợp (IDE) nào. Bạn có thể cài đặt gói Python của Ollama bằng đoạn mã sau:
Sau khi cài đặt Ollama, dùng đoạn mã sau để tương tác với mô hình:
import ollama
response = ollama.chat(
model="qwq",
messages=[{"role":"user","content":"Explain Newton's second law of motion"},],)print(response["message"]["content"])Được hỗ trợ bởi
Hàm ollama.chat() nhận tên mô hình và prompt của người dùng, xử lý theo dạng hội thoại. Script sau đó trích xuất và in ra phản hồi của mô hình.
Chạy ứng dụng suy luận logic với QwQ-32B tại chỗ
Chúng ta có thể tạo một trợ lý suy luận logic đơn giản bằng QwQ-32B và Gradio, ứng dụng sẽ nhận câu hỏi người dùng nhập vào và tạo phản hồi logic có cấu trúc. Ứng dụng này sẽ tận dụng cách tư duy theo từng bước của QwQ-32B để đưa ra câu trả lời rõ ràng, có cơ sở, hữu ích cho giải quyết vấn đề, hỗ trợ học tập và ra quyết định với AI.
Bước 1: Điều kiện tiên quyết
Trước khi triển khai, hãy đảm bảo chúng ta đã cài đặt các công cụ và thư viện sau:
Giờ chúng ta đã có đầy đủ phụ thuộc, sẽ xây dựng hàm truy vấn để chuyển câu hỏi tới mô hình và nhận về phản hồi có cấu trúc.
defquery_qwq(question):
response = ollama.chat(
model="qwq",
messages=[{"role":"user","content": question}])
full_response = response["message"]["content"]# Extract the <think> part and the final answer
think_match = re.search(r"<think>(.*?)</think>", full_response, re.DOTALL)
think_text = think_match.group(1).strip()if think_match else"Thinking process not explicitly provided."
final_response = re.sub(r"<think>.*?</think>","", full_response, flags=re.DOTALL).strip()return think_text, final_responseĐược hỗ trợ bởi
Hàm query_qwq() tương tác với mô hình Qwen QwQ-32B qua Ollama, gửi câu hỏi do người dùng cung cấp và nhận về phản hồi có cấu trúc. Hàm trích xuất hai thành phần chính:
Quy trình suy nghĩ: Bao gồm các bước lập luận của mô hình (trích xuất từ các thẻ <think>...</think>).
Phản hồi cuối: Phần này là câu trả lời cuối cùng có cấu trúc sau khi suy luận (loại trừ phần <think>).
Cách này tách riêng các bước lập luận và phản hồi cuối, đảm bảo tính minh bạch về cách mô hình đi đến kết luận.
Bước 3: Tạo giao diện Gradio
Giờ khi đã có hàm lõi, chúng ta sẽ xây dựng giao diện Gradio.
interface = gr.Interface(
fn=query_qwq,
inputs=gr.Textbox(label="Ask a logical reasoning question"),
outputs=[gr.Textbox(label="Thinking Process"), gr.Textbox(label="Final Response")],
title="QwQ-32B Powered: Logical Reasoning Assistant",
description="Ask a logical reasoning question and the assistant will provide an explanation.")
interface.launch(debug =True)Được hỗ trợ bởi
Giao diện Gradio này thiết lập một trợ lý suy luận logic nhận câu hỏi do người dùng nhập qua hàm gr.Textbox() và xử lý bằng hàm query_qwq(). Cuối cùng, hàm interface.launch() khởi chạy ứng dụng Gradio với chế độ gỡ lỗi bật, cho phép theo dõi lỗi và log theo thời gian thực để khắc phục sự cố.
Kết luận
Chạy QwQ-32B tại chỗ với Ollama mang lại suy luận mô hình riêng tư, nhanh và tiết kiệm chi phí. Với hướng dẫn này, bạn có thể khám phá khả năng suy luận nâng cao của mô hình theo thời gian thực. Mô hình này có thể dùng cho các ứng dụng như hỗ trợ học tập bằng AI, giải quyết vấn đề dựa trên logic và nhiều hơn nữa.
Tôi là Chuyên gia Google Developers trong lĩnh vực ML (Gen AI), Chuyên gia Kaggle 3x và Đại sứ Women Techmakers với hơn 3 năm kinh nghiệm trong ngành công nghệ. Tôi đồng sáng lập một startup công nghệ y tế vào năm 2020 và hiện đang theo học thạc sĩ khoa học máy tính tại Georgia Tech, chuyên sâu về học máy.
Học cách phát triển các ứng dụng được hỗ trợ bởi trí tuệ nhân tạo (AI) bằng cách sử dụng các công cụ phát triển AI mới nhất, bao gồm API OpenAI, Hugging Face và LangChain.
Thử nghiệm với Llama 3 để thực hiện suy luận trên các mô hình đã được huấn luyện sẵn, tinh chỉnh chúng trên các tập dữ liệu tùy chỉnh và tối ưu hóa hiệu suất.
QwQ-32B là mô hình suy luận của Qwen, được thiết kế để vượt trội trong các tác vụ giải quyết vấn đề phức tạp và suy luận. Dù chỉ có 32 tỷ tham số, mô hình đạt hiệu năng tương đương DeepSeek-R1 có tới 671 tỷ tham số.
Trong hướng dẫn này, tôi sẽ dẫn bạn qua việc thiết lập và chạy QwQ-32B tại chỗ bằng Ollama, một công cụ giúp đơn giản hóa suy luận LLM cục bộ. Hướng dẫn này bao gồm:
Vì sao nên chạy QwQ-32B tại chỗ?
Mặc dù có kích thước lớn, QwQ-32B có thể được lượng tử hóa để chạy hiệu quả trên phần cứng phổ thông. Chạy QwQ-32B tại chỗ giúp bạn toàn quyền kiểm soát quá trình thực thi mô hình mà không phụ thuộc máy chủ bên ngoài. Dưới đây là vài lợi ích khi chạy QwQ-32B tại chỗ:
Thiết lập QwQ-32B tại chỗ với Ollama
Ollama đơn giản hóa việc chạy LLM tại chỗ bằng cách xử lý tải mô hình, lượng tử hóa và thực thi.
Bước 1: Cài đặt Ollama
Tải và cài đặt Ollama từ trang web chính thức.
Sau khi tải xong, hãy cài đặt ứng dụng Ollama như với các ứng dụng khác.
Bước 2: Tải và chạy QwQ-32B
Hãy kiểm tra thiết lập và tải mô hình. Mở terminal và nhập lệnh sau để tải và chạy mô hình QwQ-32B:
QwQ-32B là mô hình lớn. Nếu hệ thống của bạn hạn chế tài nguyên, bạn có thể chọn các phiên bản lượng tử hóa nhỏ hơn. Ví dụ, bên dưới chúng ta dùng phiên bản
Q4_K_M, là mô hình 19,85GB cân bằng giữa hiệu năng và kích thước:Nguồn: Hugging Face
Bạn có thể tìm thêm các mô hình đã lượng tử hóa tại đây.
Bước 3: Chạy QwQ-32B ở chế độ nền
Để chạy QwQ-32B liên tục và phục vụ qua API, hãy khởi động máy chủ Ollama:
Điều này sẽ giúp mô hình sẵn sàng cho các ứng dụng, sẽ được thảo luận ở phần tiếp theo.
Sử dụng QwQ-32B tại chỗ
Giờ QwQ-32B đã sẵn sàng, hãy cùng khám phá cách tương tác với nó.
Bước 1: Chạy suy luận qua CLI
Sau khi tải mô hình, bạn có thể tương tác trực tiếp với QwQ-32B trong terminal:
Phản hồi của mô hình thường gồm phần suy nghĩ (được bao trong các thẻ
<think> </think>) tiếp theo là câu trả lời cuối cùng.Bước 2: Truy cập QwQ-32B qua API
Để tích hợp QwQ-32B vào ứng dụng, bạn có thể dùng API của Ollama với curl. Chạy lệnh curl sau trong terminal của bạn.
curllà công cụ dòng lệnh gốc trên Linux nhưng cũng hoạt động trên macOS. Nó cho phép người dùng thực hiện các yêu cầu HTTP trực tiếp từ terminal, rất hữu ích để tương tác với API.Lưu ý: Hãy đảm bảo đặt dấu ngoặc kép đúng chỗ và chọn đúng cổng localhost để tránh lỗi
dquote.Bước 3: Chạy QwQ-32B với Python
Chúng ta có thể chạy Ollama trong bất kỳ môi trường phát triển tích hợp (IDE) nào. Bạn có thể cài đặt gói Python của Ollama bằng đoạn mã sau:
Sau khi cài đặt Ollama, dùng đoạn mã sau để tương tác với mô hình:
Hàm
ollama.chat()nhận tên mô hình và prompt của người dùng, xử lý theo dạng hội thoại. Script sau đó trích xuất và in ra phản hồi của mô hình.Chạy ứng dụng suy luận logic với QwQ-32B tại chỗ
Chúng ta có thể tạo một trợ lý suy luận logic đơn giản bằng QwQ-32B và Gradio, ứng dụng sẽ nhận câu hỏi người dùng nhập vào và tạo phản hồi logic có cấu trúc. Ứng dụng này sẽ tận dụng cách tư duy theo từng bước của QwQ-32B để đưa ra câu trả lời rõ ràng, có cơ sở, hữu ích cho giải quyết vấn đề, hỗ trợ học tập và ra quyết định với AI.
Bước 1: Điều kiện tiên quyết
Trước khi triển khai, hãy đảm bảo chúng ta đã cài đặt các công cụ và thư viện sau:
Chạy các lệnh sau để cài đặt phụ thuộc cần thiết:
Sau khi các phụ thuộc trên được cài đặt, chạy các lệnh import sau:
Bước 2: Gửi truy vấn đến QwQ 32B bằng Ollama
Giờ chúng ta đã có đầy đủ phụ thuộc, sẽ xây dựng hàm truy vấn để chuyển câu hỏi tới mô hình và nhận về phản hồi có cấu trúc.
Hàm
query_qwq()tương tác với mô hình Qwen QwQ-32B qua Ollama, gửi câu hỏi do người dùng cung cấp và nhận về phản hồi có cấu trúc. Hàm trích xuất hai thành phần chính:Cách này tách riêng các bước lập luận và phản hồi cuối, đảm bảo tính minh bạch về cách mô hình đi đến kết luận.
Bước 3: Tạo giao diện Gradio
Giờ khi đã có hàm lõi, chúng ta sẽ xây dựng giao diện Gradio.
Giao diện Gradio này thiết lập một trợ lý suy luận logic nhận câu hỏi do người dùng nhập qua hàm
gr.Textbox()và xử lý bằng hàmquery_qwq(). Cuối cùng, hàminterface.launch()khởi chạy ứng dụng Gradio với chế độ gỡ lỗi bật, cho phép theo dõi lỗi và log theo thời gian thực để khắc phục sự cố.Kết luận
Chạy QwQ-32B tại chỗ với Ollama mang lại suy luận mô hình riêng tư, nhanh và tiết kiệm chi phí. Với hướng dẫn này, bạn có thể khám phá khả năng suy luận nâng cao của mô hình theo thời gian thực. Mô hình này có thể dùng cho các ứng dụng như hỗ trợ học tập bằng AI, giải quyết vấn đề dựa trên logic và nhiều hơn nữa.