
好的,這是一篇為台灣讀者設計的部落格文章,介紹 Qwen3 大型語言模型:
Qwen3:新一代開源大型語言模型,繁體中文也通!新手也能輕鬆駕馭!
各位台灣的朋友們,大家好!
近年來,AI 發展一日千里,大型語言模型 (LLM) 如雨後春筍般冒出。今天,要為大家介紹一款來自中國的開源 LLM 新秀:Qwen3 (通義千問 3)。它不僅支援繁體中文,而且提供了多種尺寸的模型,讓無論是研究人員、開發者,還是對 AI 有興趣的初學者,都能找到適合自己的版本!
文章導覽
什麼是 Qwen3?
Qwen3 是阿里巴巴集團開發的通義千問 (Qwen) 系列大型語言模型的最新版本。 延續了 Qwen 和 Qwen2.5 的經驗,Qwen3 在多個方面都進行了升級,可以說是目前通義千問家族中「最聰明」的成員。最棒的是,Qwen3 延續了開源傳統,開放了模型的權重 (weights),讓大家都能免費使用!
Qwen3 提供了多種尺寸的模型,從最小的 0.6B (十億參數) 到最大的 235B (兩千三百五十億參數),涵蓋了密集模型 (Dense Model) 和混合專家模型 (Mixture-of-Experts, MoE)。這代表你可以根據自己的需求和硬體設備,選擇最合適的版本。
連結
- Qwen Chat: https://chat.qwen.ai/
- Hugging Face: https://huggingface.co/Qwen
- ModelScope: https://modelscope.cn/organization/qwen
- Qwen3 Blog: https://qwenlm.github.io/blog/qwen3/
- Qwen3 Documentation: https://qwen.readthedocs.io/
- Qwen3 Demo: https://huggingface.co/spaces/Qwen/Qwen3-Demo
Qwen3 的亮點功能
Qwen3 相較於之前的版本,主要有以下幾個亮點:
- 多種尺寸模型: 提供了 0.6B 到 235B 等多種參數規模的模型,還有 MoE 架構可供選擇。
- 思維模式切換: 可以在「思考模式 (Thinking Mode)」和「非思考模式 (Non-Thinking Mode)」之間無縫切換。思考模式適合複雜的邏輯推理、數學和程式碼生成,非思考模式則適合高效的通用聊天。
- 更強的推理能力: 在數學、程式碼生成和常識邏輯推理方面,超越了之前的 QwQ (在思考模式下) 和 Qwen2.5 Instruct 模型 (在非思考模式下)。
- 更好的人類偏好對齊: 在創意寫作、角色扮演、多輪對話和指令遵循方面表現出色,提供更自然、引人入勝的對話體驗。
- 精通代理能力: 在思考和非思考模式下都能與外部工具精確整合,在複雜的基於代理的任務中實現領先的效能。
- 支援 100 多種語言和方言: 具有強大的多語言指令遵循和翻譯能力。
Qwen3 模型版本選擇
Qwen3 提供了非常多樣化的模型版本,以下簡單介紹:
- 參數規模: 0.6B, 1.7B, 4B, 8B, 14B, 32B, 30B-A3B, 235B-A22B。 參數越多,模型通常越大,能力也越強,但同時需要的運算資源也越多。
- 模型類型:
- Dense Model (密集模型): 所有的參數都會參與運算,模型結構相對簡單。
- Mixture-of-Experts (MoE, 混合專家模型): 模型內部有多個「專家 (Expert)」,針對不同的任務,會啟用不同的專家。MoE 模型通常在效能和效率之間取得更好的平衡。
- 命名規則:
- Qwen3-XXB (例如 Qwen3-8B): 指的是後訓練模型 (Post-trained Model),也就是已經針對特定任務 (例如對話) 進行微調的模型。
- Qwen3-XXB-Base (例如 Qwen3-8B-Base): 指的是基礎模型 (Base Model),還沒有經過特定任務的微調。
建議:
- 初學者: 建議從較小的模型 (例如 Qwen3-0.6B 或 Qwen3-1.7B) 開始,先熟悉基本的使用方法。
- 研究人員: 可以根據研究方向,選擇不同尺寸的模型。如果需要強大的推理能力,可以考慮較大的模型 (例如 Qwen3-32B 或 Qwen3-235B-A22B)。
- 開發者: 可以根據應用場景和硬體資源,選擇合適的模型。如果需要部署在資源有限的設備上,可以考慮較小的模型。
如何開始使用 Qwen3?
Qwen3 提供了多種使用方式,以下介紹幾種常見的方法:
Hugging Face Transformers:最常見的入門方式
Hugging Face Transformers 是一個非常流行的 NLP 函式庫,提供了許多預訓練模型和工具。使用 Transformers 可以很方便地載入和使用 Qwen3。
步驟:
- 安裝 Transformers:
bash
pip install transformers - 程式碼範例:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen3-8B" # 替換成你想要使用的模型名稱
# 載入 Tokenizer 和模型
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
# 準備模型輸入
prompt = "用繁體中文給我一個大型語言模型的簡短介紹。" # 修改成你想要問的問題
messages = [
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=True # 開啟或關閉思考模式。預設為 True。
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
# 進行文字生成
generated_ids = model.generate(
**model_inputs,
max_new_tokens=32768 # 設定最大生成 Token 數量
)
output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist()
# 輸出結果
print(tokenizer.decode(output_ids, skip_special_tokens=True))
程式碼說明:
model_name
: 指定要使用的模型名稱。可以在 Hugging Face Model Hub 上找到所有 Qwen3 的模型。tokenizer
: Tokenizer 負責將文字轉換成模型可以理解的數字 (Token)。model
: 載入預訓練的 Qwen3 模型。torch_dtype="auto"
會自動選擇適合你硬體的資料類型,device_map="auto"
會自動將模型放到適合的裝置 (GPU 或 CPU) 上。apply_chat_template
: 將輸入的訊息轉換成模型可以理解的格式。enable_thinking=True
可以開啟思考模式,讓模型在回答問題之前先進行思考。generate
: 生成文字。max_new_tokens
限制生成文字的最大長度。decode
: 將模型輸出的數字 (Token) 轉換回文字。skip_special_tokens=True
會跳過特殊 Token (例如<bos>
,<eos>
)。
思考模式:
Qwen3 預設會先思考再回答。你可以透過以下方式控制思考模式:
enable_thinking=False
: 在tokenizer.apply_chat_template
中設定enable_thinking=False
,可以強制關閉思考模式。/think
和/no_think
指令: 在系統或使用者訊息中使用這些指令,可以控制 Qwen3 是否進行思考。在多輪對話中,以最後一個指令為準。
個人實作心得:
- 第一次使用 Qwen3 時,建議先從最小的模型開始,確認程式碼可以順利執行。
- 如果你的電腦沒有 GPU,可以使用 CPU 執行模型,但速度會比較慢。
- 可以嘗試修改
prompt
,看看 Qwen3 的回答。 - 可以調整
max_new_tokens
,控制生成文字的長度。
ModelScope:中國大陸用戶的優先選擇
ModelScope 是阿里巴巴推出的 AI 模型平台,提供了類似 Hugging Face 的功能。如果你在中國大陸,建議優先使用 ModelScope,因為下載速度可能會比較快。
使用 ModelScope 的方法與 Hugging Face 類似,請參考 ModelScope 的官方文件。
llama.cpp:在你的電腦上跑 LLM
llama.cpp
是一個可以讓你用最少的設定,在各種硬體上執行 LLM 的函式庫。它支援 CPU 和 GPU,而且效能很好。
步驟:
- 安裝
llama.cpp
:
請參考llama.cpp
的官方文件:https://github.com/ggerganov/llama.cpp - 下載 Qwen3 的 GGUF 格式模型:
在 Hugging Face Model Hub 上搜尋 Qwen3,找到標示 “GGUF” 的模型。GGUF 是一種針對 CPU 和 GPU 優化的模型格式。 - 使用 CLI 執行:
./llama-cli -hf Qwen/Qwen3-8B-GGUF:Q8_0 --jinja --color -ngl 99 -fa -sm row --temp 0.6 --top-k 20 --top-p 0.95 --min-p 0 -c 40960 -n 32768 --no-context-shift
# CTRL+C 結束
- 使用 API 伺服器:
./llama-server -hf Qwen/Qwen3-8B-GGUF:Q8_0 --jinja --reasoning-format deepseek -ngl 99 -fa -sm row --temp 0.6 --top-k 20 --top-p 0.95 --min-p 0 -c 40960 -n 32768 --no-context-shift --port 8080
啟動 API 伺服器後,可以在 http://localhost:8080` 看到一個簡單的網頁介面,也可以透過
http://localhost:8080/v1` 使用 OpenAI 相容的 API。
注意事項:
llama.cpp
使用「旋轉上下文管理 (Rotating Context Management)」,透過移除較早的 Token 來實現無限生成。你可以透過參數來設定這個行為。llama.cpp
的範本引擎不完全支援 Qwen3 的聊天範本,可能會出現錯誤。開發者正在努力修正這個問題。
個人實作心得:
llama.cpp
的設定選項非常多,可以根據你的硬體和需求進行調整。- 如果你想在 CPU 上執行 Qwen3,建議使用 GGUF 格式的模型,並根據你的 CPU 核心數量調整執行緒數量。
Ollama:更簡單的本地部署方案
Ollama 是一個可以讓你更輕鬆地在本地執行 LLM 的工具。它提供了一個簡單的命令列介面,可以讓你快速下載和執行 Qwen3。
步驟:
- 安裝 Ollama:
請參考 Ollama 的官方網站:https://ollama.com/ - 啟動 Ollama 服務:
ollama serve
# 只要使用 Ollama,就需要保持這個服務運行
- 下載和執行 Qwen3:
ollama run qwen3:8b # 你可以指定模型尺寸,例如 :8b 或 :30b-a3b
# 設定參數,輸入 "/set parameter num_ctx 40960" 和 "/set parameter num_predict 32768"
# 輸入 "/bye" 並按下 ENTER 結束
- 使用 OpenAI 相容的 API:
Ollama 提供了一個 OpenAI 相容的 API,預設網址是 `http://localhost:11434/v1/`。
注意事項:
- 使用 API 之前,請確保
ollama serve
正在運行,並且已經執行過ollama run qwen3:8b
,下載了模型。 - Ollama 也使用「旋轉上下文管理」。建議你設定
num_ctx
(上下文長度) 和num_predict
(生成 Token 數量)。
LM Studio:圖形化介面,輕鬆上手
LM Studio 是一個提供圖形化介面的 LLM 工具。它支援 Qwen3 的 GGUF 格式模型,讓你可以更輕鬆地使用 Qwen3。
步驟:
- 下載和安裝 LM Studio:
請參考 LM Studio 的官方網站:https://lmstudio.ai/ - 下載 Qwen3 的 GGUF 格式模型:
在 Hugging Face Model Hub 上搜尋 Qwen3,找到標示 “GGUF” 的模型。 - 在 LM Studio 中載入模型並開始使用。
Qwen3 的應用:工具使用與微調
Qwen3 不僅僅是一個聊天機器人,還可以應用在許多不同的場景中。
工具使用 (Tool Use):
Qwen3 可以與外部工具整合,實現更複雜的功能。例如,可以透過工具使用來查詢天氣、預訂機票、或是執行程式碼。
- Qwen-Agent: Qwen-Agent 是一個基於 Qwen 的代理框架,提供了工具使用的 API 封裝。
- SGLang, vLLM, Transformers, llama.cpp, Ollama: 這些工具也支援 Qwen3 的工具使用功能。
微調 (Finetuning):
你可以使用 Qwen3 的基礎模型 (Base Model) 進行微調,讓模型更符合你的特定需求。
- 訓練框架: 可以使用 Axolotl, UnSloth, Swift, Llama-Factory 等訓練框架進行微調。
- 訓練方法: 可以使用 SFT (Supervised Fine-Tuning), DPO (Direct Preference Optimization), GRPO (Generative Reward Preference Optimization) 等訓練方法。
常見問題與錯誤排除
- 記憶體不足 (Out of Memory, OOM): 如果你的電腦記憶體不足,可以嘗試使用較小的模型,或是減少
max_new_tokens
的值。 - 執行速度太慢: 如果執行速度太慢,可以嘗試使用 GPU 加速,或是使用針對 CPU 優化的模型格式 (例如 GGUF)。
- 模型輸出的結果不符合預期: 可以嘗試調整模型的參數 (例如
temperature
,top_p
),或是修改prompt
。 - 聊天範本錯誤:
llama.cpp
的範本引擎可能不完全支援 Qwen3 的聊天範本,可以關注官方的修正進度。
結語
Qwen3 是一個功能強大、易於使用的開源大型語言模型。它不僅支援繁體中文,而且提供了多種尺寸的模型和使用方式,讓無論是研究人員、開發者,還是對 AI 有興趣的初學者,都能輕鬆上手。希望這篇文章能幫助你開始使用 Qwen3,並探索 AI 的無限可能!
如果你覺得這篇文章對你有幫助,請分享給你的朋友!
如果你有任何問題或建議,歡迎在留言區留言!
參考閱讀
https://github.com/QwenLM/Qwen3