最强开源模型?Qwen3.0本地部署体验对比

Qwen3.0官方介绍
Qwen3 是 Qwen 系列中最新一代的大规模语言模型,提供了一整套密集型和专家混合(MoE)模型。基于广泛的训练,Qwen3 在推理、指令执行、代理能力和多语言支持方面取得了突破性进展,具有以下关键特性:

  • 独特支持在单一模型内无缝切换思考模式(用于复杂的逻辑推理、数学和编程)和非思考模式(用于高效的通用对话),确保在各种场景下的最佳性能。
  • 显著增强其推理能力,在数学、代码生成和常识逻辑推理方面超越了之前的 QwQ(在思考模式下)和 Qwen2.5 指令模型(在非思考模式下)。
  • 优越的人类偏好对齐,擅长创意写作、角色扮演、多轮对话和指令执行,以提供更自然、吸引人和沉浸式的对话体验。
  • 在代理能力方面的专长,能够在思考和非思考模式下与外部工具精确集成,并在复杂的基于代理的任务中达到开源模型中的领先性能。
  • 支持 100 多种语言和方言,具备强大的多语言指令执行翻译能力。

所以有必要部署体验一下!

最方便的方式是用ollama部署,但下载完成提示我的ollama版本过低

尝试升级ollama,结果。。。

winget upgrade ollama

换个方式,使用modelscope下载模型,用python transformers库推理

modelscope download --model Qwen/Qwen3-1.7B --local_dir Qwen/Qwen3-1.7B

modelscope download --model Qwen/Qwen3-4B --local_dir Qwen/Qwen3-4B

modelscope download --model deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B --local_dir deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B

推理示例:你是待办提醒助手,帮我识别用户输入是否是一个待办或提醒,以{\"code\": \"true或false\",\"response\": {\"desc\": \"输入的原文\",\"time\": \"提醒时间\"}},模板样例{\"code\": \"true\",\"response\": {\"desc\": \"明天晚上8点给客户打电话\",\"time\": \"明天晚上8点\"}},返回严格的json格式,不要有其它多余字符。以下是用户输入:开会

使用qwen2.5:3b推理结果

from modelscope import AutoModelForCausalLM, AutoTokenizer

model_name = "D:\\work\\program\\pytorch_models\\Qwen2.5-3B-Instruct"

model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype="auto",
    device_map="cpu"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)

prompt = "你是待办提醒助手,帮我识别用户输入是否是一个待办或提醒,以{\"code\": \"true或false\",\"response\": {\"desc\": \"输入的原文\",\"time\": \"提醒时间\"}},模板样例{\"code\": \"true\",\"response\": {\"desc\": \"明天晚上8点给客户打电话\",\"time\": \"明天晚上8点\"}},返回严格的json格式,不要有其它多余字符。以下是用户输入:开会"
messages = [
    {"role": "system", "content": "你是智能助手!"},
    {"role": "user", "content": prompt},
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)

generated_ids = model.generate(
    **model_inputs,
    max_new_tokens=512,
)
generated_ids = [
    output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]

response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]

print(response)

{"code": "true","response": {"desc": "开会","time": ""}} 

再使用qwen3:1.7b对比

执行报错,可能是我的transformer版本过低

更新transformers库

pip install --upgrade transformers -i https://mirrors.aliyun.com/pypi/simple/

再次执行,开思考过程enable_thinking=True
thinking content: <think>

好的,用户输入的是“开会”。我需要判断这是否是一个待办或提醒。首先,“开会”是一个常见的日常任务,通常属于待办事项。但用户没有提供具体的时间,所以无法确定具体的提醒时间。根据模板样例,如果用户没有给出时间,应该返回false,因为缺少必要信息。因此,正确的响应应该是code为false,desc为“开会”,time为空字符串。

</think>

content: {"code": "false","response": {"desc": "开会","time": ""}}

关掉思考过程再试试

thinking content:

content: {"code": "false","response": {"desc": "输入的原文","time": "开会"}}

再换qwen3:4B试试,关思考过程

thinking content:

content: {"code": "false","response": {"desc": "开会","time": "null"}}

从这个用例看很明显,qwen3:1.7B、qwen3:4B的推理能力不如qwen2.5:3B!!!

后续我将继续增加测试用例,并增加deepseek-r1:1.5B模型的测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值