微信扫码
添加专属顾问
我要投稿
阿里qwen3系列模型发布,小模型的生产力和部署优势不容小觑。核心内容:1. Qwen3系列模型的参数规模和性能优势2. Qwen3小模型的本地部署和使用方式介绍3. Qwen3小模型在文档总结和文本处理上的应用案例
4月底,阿里发布了qwen3系列模型,在全球互联网激起热烈的讨论,又一次证明阿里在开源模型届的号召力。
这次qwen3发布了6个不同体量参数开源模型
0.6b、1.7b、4b、8b、14b、32b、30bA14b、235bA22b
其中小体积模型特别引人注目,0.6b参数qwen3只有DeepSeek R1模型的千分之一的体积。
如此小的体积,让很多人对其充满期待,同时也带着疑问。
反正体积特别小,部署和测试成本很低,Make hands dirty 上手试试。
本文内容:
先总体聊聊小模型的优点
说说部署和使用方式
测试典型使用的场景
我们先看看,用户总结的qwen小模型的突出优点。
效率贼高,
0.6b版本,在MacBook m4芯片电脑上达到 170 tokens/s,
而8b版本,达到33 tokens/s
推理模型,虽然是小模型,但也具备“深思熟虑”的能力
自由切换模式,根据任务的特性,自由地在推理和非推理模型之间切换
多语言支持,支持119种语言
开源,可以自由商用和自用
对于这种功能全面的小模型,在恰当使用的场景下,也能发挥巨大的作用;
我推荐使用Ollama的方式在PC或Mac进行本地部署。
先安装Ollama,进入官网
https://ollama.com/
下载适合你电脑的版本,安装完成后,下载对应的Qwen3模型
ollama run qwen3 # 模型下载qwen3:8b参数模型
ollama run qwen3:0.6b # 0.6b参数模型
运行以上命令后,有以下几种方式进行使用模型的问答
直接在命令行上输入问题,这种方式可以连续提问,为会话提供记忆功能,这种方式是最直接的测试方式
在客户端中使用,如Cherry Studio中配置本地模型,这是比较推荐的测试方式。
使用http请求进行对话,这种方式需要自己管理会话
使用框架如langchain进行对话,这种方式适合智能体开发
具体细节在这篇文章中不展开。
经过部署后我们具体看看都在小模型大用途的场景,以下主要针对0.6b和8b两个版本的qwen3模型进行实测;
qwen3系列的小模型在总结文档上完成的比较出色
很多人担心小LLM模型在总结文档上无法精准达到效果,或者,出现严重的幻觉。
对此,GitHub上有机构针对市场上出现的上百款开源和私有模型进行测试对比。
我总结了和qwen小模型相关的对比,如下图所示,你会发现,8b模型的精准度要优于DeepSeek-R1
对于简单的文本总结,相信两个参数的模型都没有问题,由于我们总结文档很有可能是需要总结网页的内容,经过对比,发现:
8B比0.6B调用MCP工具的准确性更高
8B总结的内容比0.6B更有深度(或者说,更能读出文章的含义)
样本分类的任务,我openai工程师分享的gpt分类测试
https://cookbook.openai.com/examples/leveraging_model_distillation_to_fine-tune_a_model
文章中提到的任务:根据红酒的描述文字,推断品种,
测试的效果:两个模型的差异
0.6b的模型的执行速度是8b模型的6倍
8b的准确率比0.6b高的多(准确率56% vs 10%)
而gpt-4o和gpt-4o-mini 分别达到 81.80% 和 61 %的准确
考虑到成本情况,8b模型相当于有竞争力。
当然,对0.6b进行微调/蒸馏,或许可以显著提升准确率,这个可以留在下一篇文章中进行测试。
以下是测试代码,大家可以自己运行:
记得先从kaggle上下载数据 https://www.kaggle.com/datasets/zynicide/wine-reviews
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
from ollama import chat
import pandas as pd
import numpy as np
from tqdm import tqdm
from pydantic import BaseModel, Field
df = pd.read_csv('wine-reviews/winemag-data-130k-v2.csv')
df_country = df[df['country']=='Italy']
# 只取部分数据进行测试
varieties_less_than_five_list = (
df_country["variety"]
.value_counts()[df_country["variety"].value_counts() < 5]
.index.tolist()
)
df_country = df_country[~df_country['variety'].isin(varieties_less_than_five_list)]
df_country_subset = df_country.sample(n=500)
class WineVariety(BaseModel):
variety: str = Field(enum=varieties.tolist())
def generate_prompt(row, varieties):
# Format the varieties list as a comma-separated string
variety_list = ", ".join(varieties)
prompt = f"""
基于此酒评,猜测可能的葡萄品种:
这款酒由 {row['winery']} 在 {row['province']} 的 {row['country']} 城市酿造。
产自 {row['region_1']},描述为 "{row['description']}"。
由 {row['taster_name']} 评价,获得 {row['points']} 分。
这里列出的可能选择的葡萄品种为: {variety_list}。
请猜测最可能的葡萄品种?只需回答品种名称或列表中的品种名称。
"""
return prompt
def call_model(model, prompt):
response = chat(
model=model,
messages=[
{
'role': 'system',
'content': system_prompt
},
{
'role': 'user', 'content': prompt
}
],
format=WineVariety.model_json_schema(),
)
vine_variety = WineVariety.model_validate_json(response.message.content)
return vine_variety.variety
def process_example(index, row, model, df, progress_bar):
global progress_index
try:
# Generate the prompt using the row
prompt = generate_prompt(row, varieties)
df.at[index, model + "-variety"] = call_model(model, prompt)
# Update the progress bar
progress_bar.update(1)
progress_index += 1
except Exception as e:
print(f"Error processing model {model}: {str(e)}")
def process_dataframe(df, model):
global progress_index
progress_index = 1 # Reset progress index
# Create a tqdm progress bar
with tqdm(total=len(df), desc="Processing rows") as progress_bar:
# Process each example sequentially
for index, row in df.iterrows():
try:
process_example(index, row, model, df, progress_bar)
except Exception as e:
print(f"Error processing example: {str(e)}")
return df
df_country_subset = process_dataframe(df_country_subset, 'qwen3:0.6b')
df_country_subset = process_dataframe(df_country_subset, 'qwen3')
for model in models:
print(f'{model} 准确度: {get_accuracy(model, df_country_subset) * 100:.2f}%')
哪吒2中的“急急如律令”如何翻译,引起了一番讨论,我们看看两个小模型如何翻译的
可以看出,两者翻译都不会出错,但是8b模型在知识量上强很多,所以翻译上考虑的内容会更多
小语种翻译
qwen3支持129种语言,我在工作中正好遇到了小语种音乐歌词的问题,用来测试下
Aylonayin
Yuragimdagi cho'g-cho'g,
Tunlari uyqum yo'q-yo'q,
Bedorman-ey, hey bejonman-ey.
Sening bir bo'ying yo'q-yo'q,
Qilasan doim do'q-do'q,
Sezmaysan-ey, hey bilmaysan-ey.
Yuragimda atalgan muhabbat,
Faqat senga, faqat senga.
Naqorat:
Aylonayin, ho aylonayin,
Belingga belbog' bo'lib boylanoyin.
Aylonayin, ho aylonayin,
Yurgan yo'llaringdan-ey aylonayin.
Senga aytar so'zim bor-bor,
Mehringga yurak zor-zor,
Qiynaysan-ey, hech bilmaysan-ey.
Beparvo bo'lma yor-yor,
Sensiz bu dunyo tor-tor,
Ko'rmaysan-ey, hech sezmaysan-ey.
Yuragimda atalgan muhabbat,
Faqat senga, faqat senga.
Naqorat:
Aylonayin, ho aylonayin,
Belingga belbog' bo'lib boylanoyin.
Aylonayin, ho aylonayin,
我也不知道这是什么语种的歌词,看看0.6b和8b的翻译表现:
明显看出,在稍微专业一点的小语种领域:
8b的效果令人震撼,而0.6b出现了幻觉
能结合上下文进行翻译,甚至能看到他在追求“信达雅”的翻译目标
qwen3-0.6b和qwen3-8b运行在本地,毫无压力,速度很快,意味着测试很验证成本很低
在非专业领域(对知识储备要求不高)时,0.6b也能使用
8b在专业细分领域效果可能更好,在成本和效果上能达到很好的平衡
二者的推理模式,都能起到很好的思考的效果,但0.6b知识量限制了推理效果
建议在企业项目中,如果对响应速度有要求的AI场景(或分类、文本提取等场景),先快速的用qwen3-0.6b模型快速测试。
后续我还会根据其他的实际场景,进行小模型的测试。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-05-14
开源AI新协议!AI Agent与前端交互的轻量级协议,轻松构建交互式AI应用!
2025-05-14
AG-UI:打破AI与应用壁垒,让智能助理真正“嵌入”你的工作流
2025-05-14
智能体到用户交互(AG-UI)协议
2025-05-14
ChatUI:阿里开源 智能对话式 UI 组件库
2025-05-14
3.4K star!阿里出品对话式UI神器,轻松打造专业级聊天界面!
2025-05-14
深度对比流行开源智能体 Agent 框架:选择适合你的解决方案
2025-05-13
阿里云人工智能大模型通义千问Qwen3开发部署
2025-05-12
一款辅助Cursor的开源神器,直接在浏览器选中元素调用AI Composer!
2024-07-25
2025-01-01
2025-01-21
2024-05-06
2024-09-20
2024-07-20
2024-07-11
2024-06-12
2024-12-26
2024-08-13
2025-05-14
2025-05-12
2025-04-30
2025-04-29
2025-04-28
2025-04-28
2025-04-28
2025-04-21