Qwen3 0.6B Llamafile
Qwen3是Qwen系列最新一代的大語言模型,提供0.6B參數的密集模型,在推理、指令遵循、代理能力和多語言支持方面有突破性進展。
下載量 250
發布時間 : 5/14/2025
模型概述
Qwen3-0.6B是一個0.6B參數的因果語言模型,支持思考和非思考模式切換,擅長邏輯推理、數學計算和代碼生成,支持100多種語言。
模型特點
思考模式切換
支持在思考模式(用於複雜推理)和非思考模式(用於高效對話)之間無縫切換
增強推理能力
在數學、代碼生成和常識邏輯推理方面表現優異
多語言支持
支持100多種語言的指令遵循和翻譯
代理能力
能夠精確集成外部工具,在複雜代理任務中表現領先
模型能力
文本生成
邏輯推理
數學計算
代碼生成
多語言翻譯
工具調用
使用案例
教育
數學問題解答
解答覆雜的數學問題和證明題
能夠逐步推理並給出詳細解答
編程
代碼生成
根據自然語言描述生成代碼
能夠生成可運行的代碼片段
商業
多語言客服
提供多語言的客戶服務對話
支持100多種語言的流暢對話
🚀 Qwen 3 0.6B - llamafile
Mozilla將Qwen 3模型打包成可執行權重,即llamafile,為Linux、MacOS、Windows等系統提供便捷的模型使用方式。
🚀 快速開始
要開始使用,你需要Qwen 3的權重和llamafile軟件。這兩者都包含在一個文件中,可以按以下步驟下載並運行:
wget https://huggingface.co/Mozilla/Qwen3-0.6B-llamafile/resolve/main/Qwen_Qwen3-0.6B-Q4_K_M.llamafile
chmod +x Qwen_Qwen3-0.6B-Q4_K_M.llamafile
./Qwen_Qwen3-0.6B-Q4_K_M.llamafile
這些llamafile的默認操作模式是我們新的命令行聊天機器人界面。
✨ 主要特性
- 多系統支持:可在Linux、MacOS、Windows、FreeBSD、OpenBSD和NetBSD系統(AMD64和ARM64架構)上運行。
- 多種使用模式:提供命令行聊天機器人界面、Web GUI和高級CLI模式。
- 上下文窗口靈活:模型最大上下文窗口大小為128k令牌,默認使用8192令牌,可通過參數調整。
- GPU加速:在有足夠RAM的GPU上,可通過參數使用NVIDIA或AMD GPU加速。
📦 安裝指南
下載並運行llamafile
wget https://huggingface.co/Mozilla/Qwen3-0.6B-llamafile/resolve/main/Qwen_Qwen3-0.6B-Q4_K_M.llamafile
chmod +x Qwen_Qwen3-0.6B-Q4_K_M.llamafile
./Qwen_Qwen3-0.6B-Q4_K_M.llamafile
Linux系統避免運行檢測錯誤
安裝APE解釋器:
sudo wget -O /usr/bin/ape https://cosmo.zip/pub/cosmos/bin/ape-$(uname -m).elf
sudo chmod +x /usr/bin/ape
sudo sh -c "echo ':APE:M::MZqFpD::/usr/bin/ape:' >/proc/sys/fs/binfmt_misc/register"
sudo sh -c "echo ':APE-jart:M::jartsr::/usr/bin/ape:' >/proc/sys/fs/binfmt_misc/register"
💻 使用示例
基礎用法
命令行聊天機器人界面
./Qwen_Qwen3-0.6B-Q4_K_M.llamafile
Web GUI模式
./Qwen_Qwen3-0.6B-Q4_K_M.llamafile --server
高級CLI模式
./Qwen_Qwen3-0.6B-Q4_K_M.llamafile --cli -p 'four score and seven' --log-disable
高級用法
切換上下文窗口大小
./Qwen_Qwen3-0.6B-Q4_K_M.llamafile -c 0
使用GPU加速
./Qwen_Qwen3-0.6B-Q4_K_M.llamafile -ngl 999
📚 詳細文檔
使用說明
- 多行提問:可以使用三引號進行多行提問。
- 查看運行狀態信息:可以傳遞
/stats
和/context
等命令查看運行時狀態信息。 - 更改系統提示:可以通過傳遞
-p "new system prompt"
標誌更改系統提示。 - 中斷模型:按
CTRL-C
中斷模型。 - 退出:按
CTRL-D
退出。
上下文窗口
該模型的最大上下文窗口大小為128k令牌,默認使用8192令牌的上下文窗口大小。可以通過傳遞-c 0
標誌讓llamafile使用最大上下文大小。如果想與書籍進行對話,可以使用-f book.txt
標誌。
GPU加速
在有足夠RAM的GPU上,可以傳遞-ngl 999
標誌使用系統的NVIDIA或AMD GPU。在Windows上,如果擁有NVIDIA GPU,只需安裝顯卡驅動;如果擁有AMD GPU,首次運行llamafile時應安裝ROCm SDK v6.1,然後傳遞--recompile --gpu amd
標誌。在NVIDIA GPU上,默認使用預構建的tinyBLAS庫進行矩陣乘法。如果系統上安裝了CUDA SDK,可以傳遞--recompile
標誌為系統構建一個使用cuBLAS的GGML CUDA庫,以確保獲得最佳性能。
🔧 技術細節
模型信息
屬性 | 詳情 |
---|---|
模型類型 | 因果語言模型 |
訓練階段 | 預訓練和後訓練 |
參數數量 | 0.6B |
非嵌入參數數量 | 0.44B |
層數 | 28 |
注意力頭數量(GQA) | Q為16,KV為8 |
上下文長度 | 32,768 |
代碼示例
使用transformers
庫進行文本生成
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen3-0.6B"
# 加載分詞器和模型
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
# 準備模型輸入
prompt = "Give me a short introduction to large language model."
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
)
output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist()
# 解析思考內容
try:
# rindex查找151668 (</think>)
index = len(output_ids) - output_ids[::-1].index(151668)
except ValueError:
index = 0
thinking_content = tokenizer.decode(output_ids[:index], skip_special_tokens=True).strip("\n")
content = tokenizer.decode(output_ids[index:], skip_special_tokens=True).strip("\n")
print("thinking content:", thinking_content)
print("content:", content)
使用SGLang
或vLLM
創建OpenAI兼容的API端點
- SGLang:
python -m sglang.launch_server --model-path Qwen/Qwen3-0.6B --reasoning-parser qwen3
- vLLM:
vllm serve Qwen/Qwen3-0.6B --enable-reasoning --reasoning-parser deepseek_r1
思維模式和非思維模式切換
# 啟用思維模式
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=True
)
# 禁用思維模式
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=False
)
高級用法:通過用戶輸入在思維模式和非思維模式之間切換
from transformers import AutoModelForCausalLM, AutoTokenizer
class QwenChatbot:
def __init__(self, model_name="Qwen/Qwen3-0.6B"):
self.tokenizer = AutoTokenizer.from_pretrained(model_name)
self.model = AutoModelForCausalLM.from_pretrained(model_name)
self.history = []
def generate_response(self, user_input):
messages = self.history + [{"role": "user", "content": user_input}]
text = self.tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
inputs = self.tokenizer(text, return_tensors="pt")
response_ids = self.model.generate(**inputs, max_new_tokens=32768)[0][len(inputs.input_ids[0]):].tolist()
response = self.tokenizer.decode(response_ids, skip_special_tokens=True)
# 更新歷史記錄
self.history.append({"role": "user", "content": user_input})
self.history.append({"role": "assistant", "content": response})
return response
# 示例用法
if __name__ == "__main__":
chatbot = QwenChatbot()
# 第一次輸入(無/think或/no_think標籤,默認啟用思維模式)
user_input_1 = "How many r's in strawberries?"
print(f"User: {user_input_1}")
response_1 = chatbot.generate_response(user_input_1)
print(f"Bot: {response_1}")
print("----------------------")
# 第二次輸入帶有/no_think
user_input_2 = "Then, how many r's in blueberries? /no_think"
print(f"User: {user_input_2}")
response_2 = chatbot.generate_response(user_input_2)
print(f"Bot: {response_2}")
print("----------------------")
# 第三次輸入帶有/think
user_input_3 = "Really? /think"
print(f"User: {user_input_3}")
response_3 = chatbot.generate_response(user_input_3)
print(f"Bot: {response_3}")
代理使用
from qwen_agent.agents import Assistant
# 定義大語言模型
llm_cfg = {
'model': 'Qwen3-0.6B',
# 使用阿里雲模型工作室提供的端點:
# 'model_type': 'qwen_dashscope',
# 'api_key': os.getenv('DASHSCOPE_API_KEY'),
# 使用與OpenAI API兼容的自定義端點:
'model_server': 'http://localhost:8000/v1', # api_base
'api_key': 'EMPTY',
# 其他參數:
# 'generate_cfg': {
# # 添加:當響應內容為 `<think>this is the thought</think>this is the answer;
# # 不添加:當響應已被reasoning_content和content分隔時。
# 'thought_in_content': True,
# },
}
# 定義工具
tools = [
{'mcpServers': { # 可以指定MCP配置文件
'time': {
'command': 'uvx',
'args': ['mcp-server-time', '--local-timezone=Asia/Shanghai']
},
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
},
'code_interpreter', # 內置工具
]
# 定義代理
bot = Assistant(llm=llm_cfg, function_list=tools)
# 流式生成
messages = [{'role': 'user', 'content': 'https://qwenlm.github.io/blog/ Introduce the latest developments of Qwen'}]
for responses in bot.run(messages=messages):
pass
print(responses)
📄 許可證
本項目採用Apache-2.0許可證,詳情請見LICENSE。
引用
如果您覺得我們的工作有幫助,請引用:
@misc{qwen3,
title = {Qwen3},
url = {https://qwenlm.github.io/blog/qwen3/},
author = {Qwen Team},
month = {April},
year = {2025}
}
最佳實踐
⚠️ 重要提示
如果遇到嚴重的無限重複問題,請參考最佳實踐部分獲取最佳採樣參數,並將
presence_penalty
設置為1.5。
💡 使用建議
為了獲得最佳性能,建議進行以下設置:
- 採樣參數:
- 思維模式(
enable_thinking=True
):使用Temperature=0.6
,TopP=0.95
,TopK=20
和MinP=0
。請勿使用貪婪解碼,因為這可能導致性能下降和無限重複。- 非思維模式(
enable_thinking=False
):建議使用Temperature=0.7
,TopP=0.8
,TopK=20
和MinP=0
。- 對於支持的框架,可以在0到2之間調整
presence_penalty
參數以減少無限重複。但是,使用較高的值可能偶爾會導致語言混合和模型性能略有下降。- 足夠的輸出長度:對於大多數查詢,建議使用32,768令牌的輸出長度。對於高度複雜問題的基準測試,例如數學和編程競賽中的問題,建議將最大輸出長度設置為38,912令牌,以為模型提供足夠的空間生成詳細和全面的響應,從而提高其整體性能。
- 標準化輸出格式:在進行基準測試時,建議使用提示來標準化模型輸出。
- 數學問題:在提示中包含“請逐步推理,並將最終答案放在\boxed{}中”。
- 多項選擇題:在提示中添加以下JSON結構以標準化響應:“請在
answer
字段中僅使用選項字母顯示您的選擇,例如"answer": "C"
”。- 歷史記錄中不包含思維內容:在多輪對話中,歷史模型輸出應僅包含最終輸出部分,不需要包含思維內容。這在Jinja2提供的聊天模板中已經實現。但是,對於不直接使用Jinja2聊天模板的框架,開發人員需要確保遵循最佳實踐。
Phi 2 GGUF
其他
Phi-2是微軟開發的一個小型但強大的語言模型,具有27億參數,專注於高效推理和高質量文本生成。
大型語言模型 支持多種語言
P
TheBloke
41.5M
205
Roberta Large
MIT
基於掩碼語言建模目標預訓練的大型英語語言模型,採用改進的BERT訓練方法
大型語言模型 英語
R
FacebookAI
19.4M
212
Distilbert Base Uncased
Apache-2.0
DistilBERT是BERT基礎模型的蒸餾版本,在保持相近性能的同時更輕量高效,適用於序列分類、標記分類等自然語言處理任務。
大型語言模型 英語
D
distilbert
11.1M
669
Llama 3.1 8B Instruct GGUF
Meta Llama 3.1 8B Instruct 是一個多語言大語言模型,針對多語言對話用例進行了優化,在常見的行業基準測試中表現優異。
大型語言模型 英語
L
modularai
9.7M
4
Xlm Roberta Base
MIT
XLM-RoBERTa是基於100種語言的2.5TB過濾CommonCrawl數據預訓練的多語言模型,採用掩碼語言建模目標進行訓練。
大型語言模型 支持多種語言
X
FacebookAI
9.6M
664
Roberta Base
MIT
基於Transformer架構的英語預訓練模型,通過掩碼語言建模目標在海量文本上訓練,支持文本特徵提取和下游任務微調
大型語言模型 英語
R
FacebookAI
9.3M
488
Opt 125m
其他
OPT是由Meta AI發佈的開放預訓練Transformer語言模型套件,參數量從1.25億到1750億,旨在對標GPT-3系列性能,同時促進大規模語言模型的開放研究。
大型語言模型 英語
O
facebook
6.3M
198
1
基於transformers庫的預訓練模型,適用於多種NLP任務
大型語言模型
Transformers

1
unslothai
6.2M
1
Llama 3.1 8B Instruct
Llama 3.1是Meta推出的多語言大語言模型系列,包含8B、70B和405B參數規模,支持8種語言和代碼生成,優化了多語言對話場景。
大型語言模型
Transformers 支持多種語言

L
meta-llama
5.7M
3,898
T5 Base
Apache-2.0
T5基礎版是由Google開發的文本到文本轉換Transformer模型,參數規模2.2億,支持多語言NLP任務。
大型語言模型 支持多種語言
T
google-t5
5.4M
702
精選推薦AI模型
Llama 3 Typhoon V1.5x 8b Instruct
專為泰語設計的80億參數指令模型,性能媲美GPT-3.5-turbo,優化了應用場景、檢索增強生成、受限生成和推理任務
大型語言模型
Transformers 支持多種語言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一個基於SODA數據集訓練的超小型對話模型,專為邊緣設備推理設計,體積僅為Cosmo-3B模型的2%左右。
對話系統
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基於RoBERTa架構的中文抽取式問答模型,適用於從給定文本中提取答案的任務。
問答系統 中文
R
uer
2,694
98