新智元報道
編輯:編輯部 YZH
【新智元導讀】阿里Qwen3凌晨開源,正式登頂全球開源大模型王座!它的性能全面超越DeepSeek-R1和OpenAI o1,采用MoE架構(gòu),總參數(shù)235B,橫掃各大基準。這次開源的Qwen3家族,8款混合推理模型全部開源,免費商用。
就在今天凌晨,備受全球期待的阿里新一代通義千問模型Qwen3開源!
一經(jīng)問世,它立刻登頂全球最強開源模型王座。
它的參數(shù)量僅為DeepSeek-R1的1/3,但成本大幅下降,性能全面超越R1、OpenAI-o1等全球頂尖模型。
Qwen3是國內(nèi)首個「混合推理模型」,「快思考」與「慢思考」集成進同一個模型,對簡單需求可低算力「秒回」答案,對復雜問題可多步驟「深度思考」,大大節(jié)省算力消耗。
它采用混合專家(MoE)架構(gòu),總參數(shù)量235B,激活僅需22B。
它的預訓練數(shù)據(jù)量達36T ,并在后訓練階段多輪強化學習,將非思考模式無縫整合到思考模型中。
一經(jīng)誕生,Qwen3立刻橫掃各大基準。
而且,性能大幅提升的同時,它的部署成本還大幅下降,僅需4張H20即可部署Qwen3滿血版,顯存占用僅為性能相近模型的1/3!
亮點總結(jié):
· 各種尺寸的稠密模型和混合專家(MoE)模型,包括0.6B、1.7B、4B、8B、14B、32B以及30B-A3B和235B-A22B。
· 能夠在思考模式(用于復雜的邏輯推理、數(shù)學和編碼)和非思考模式(用于高效的通用聊天)之間無縫切換,從而確保在各種場景中實現(xiàn)最佳性能。
· 推理能力顯著增強,在數(shù)學、代碼生成和常識邏輯推理方面,超越了之前處于思考模式下的QwQ和處于非思考模式下的Qwen2.5 instruct模型。
· 更符合人類偏好,擅長創(chuàng)意寫作、角色扮演、多輪對話和指令遵循,從而提供更自然、引人入勝和更真實的對話體驗。
· 精通AI智能體能力,支持在思考和非思考模式下與外部工具的精確集成,并在復雜的基于智能體的任務(wù)中,在開源模型中實現(xiàn)了領(lǐng)先的性能。
· 首次支持119種語言和方言,具有強大的多語言指令跟隨和翻譯能力。
目前,Qwen 3已同步上線魔搭社區(qū)、Hugging Face、GitHub,并可在線體驗。
全球開發(fā)者、研究機構(gòu)和企業(yè)均可免費下載模型并商用,也可以通過阿里云百煉調(diào)用Qwen3的API服務(wù)。個人用戶可立即通過通義APP直接體驗Qwen3,夸克也即將全線接入Qwen3。
在線體驗:https://chat.qwen.ai/
魔搭社區(qū):https://modelscope.cn/collections/Qwen3-9743180bdc6b48
Hugging Face:https://huggingface.co/collections/Qwen/qwen3-67dd247413f0e2e4f653967f
GitHub:https://github.com/QwenLM/Qwen3
至此,阿里通義已開源200余個模型,全球下載量超3億次,千問衍生模型數(shù)超10萬個,徹底超越美國Llama,成為全球第一開源模型!
Qwen 3家族登場
8款「混合推理」模型全開源
這次,阿里一口氣開源了8款混合推理模型,包括2款30B、235B的MoE模型,以及0.6B、1.7B、4B、8B、14B、32B等6款稠密模型,均采用 Apache 2.0許可。
其中,每款模型均斬獲同尺寸開源模型SOTA。
Qwen3的30B參數(shù)MoE模型實現(xiàn)了10倍以上的模型性能杠桿提升,僅激活3B就能媲美上代Qwen2.5-32B模型性能。
Qwen3的稠密模型性能繼續(xù)突破,一半的參數(shù)量可實現(xiàn)同樣的高性能,如32B版本的Qwen3模型可跨級超越Qwen2.5-72B性能。
同時,所有Qwen3模型都是混合推理模型,API可按需設(shè)置「思考預算」(即預期最大深度思考的tokens數(shù)量),進行不同程度的思考,靈活滿足AI應用和不同場景對性能和成本的多樣需求。
比如,4B模型是手機端的絕佳尺寸;8B可在電腦和汽車端側(cè)絲滑部署應用;32B最受企業(yè)大規(guī)模部署歡迎,有條件的開發(fā)者也可輕松上手。
開源模型新王,刷新紀錄
Qwen3在推理、指令遵循、工具調(diào)用、多語言能力等方面均大幅增強,即創(chuàng)下所有國產(chǎn)模型及全球開源模型的性能新高——
在奧數(shù)水平的AIME25測評中,Qwen3斬獲81.5分,刷新開源紀錄。
在考察代碼能力的LiveCodeBench評測中,Qwen3突破70分大關(guān),表現(xiàn)甚至超過Grok3。
在評估模型人類偏好對齊的ArenaHard測評中,Qwen3以95.6分超越了OpenAI-o1及DeepSeek-R1。
具體來說,旗艦模型 Qwen3-235B-A22B與其他頂級模型(如DeepSeek-R1、o1、o3-mini、Grok-3和Gemini-2.5-Pro)相比,在編碼、數(shù)學、通用能力等各項基準測試中,成績都相當亮眼。
此外,小型混合專家模型Qwen3-30B-A3B雖然激活參數(shù)只有QwQ-32B的十分之一,但性能卻更勝一籌。
甚至是Qwen3-4B這樣的小模型,也能媲美Qwen2.5-72B-Instruct的性能。
經(jīng)過微調(diào)的模型,如Qwen3-30B-A3B,及其預訓練版本(如 Qwen3-30B-A3B-Base),現(xiàn)在都可在Hugging Face、ModelScope 和Kaggle等平臺上找到。
對于部署,阿里推薦使用SGLang和vLLM等框架。對于本地使用,強烈推薦Ollama、LMStudio、MLX、llama.cpp和KTransformers等工具。
無論研究、開發(fā)還是生產(chǎn)環(huán)境,Qwen3都可輕松集成到各種工作流程中。
利好智能體Agent和大模型應用爆發(fā)
可以說,Qwen3為即將到來的智能體Agent和大模型應用爆發(fā)提供了更好的支持。
在評估模型Agent能力的BFCL評測中,Qwen3創(chuàng)下70.8的新高,超越Gemini2.5-Pro、OpenAI-o1等頂尖模型,這將大幅降低Agent調(diào)用工具的門檻。
同時,Qwen3原生支持MCP協(xié)議,并具備強大的工具調(diào)用能力,結(jié)合封裝了工具調(diào)用模板和工具調(diào)用解析器的Qwen-Agent框架。
這將大大降低編碼復雜性,實現(xiàn)高效的手機及電腦Agent操作等任務(wù)。
主要特點
混合推理模式
Qwen3模型引入了一種混合問題解決方式。它們支持兩種模式:
1. 思考模式:在該模式下,模型會逐步推理,然后給出答案。這適合需要深入思考的復雜問題。
2. 非思考模式:在該模式下,模型會快速給出答案,適用于對速度要求較高的簡單問題。
這種靈活性,讓用戶可以根據(jù)任務(wù)的復雜程度,控制模型的推理過程。
例如,難題可以通過擴展推理來解決,而簡單的問題可以直接回答,而不會延遲。
至關(guān)重要的是,這兩種模式的結(jié)合,大大提高了模型穩(wěn)定高效地控制推理資源的能力。
如上所示,Qwen3表現(xiàn)出可擴展且平滑的性能改進,這與分配的計算推理預算直接相關(guān)。
這種設(shè)計使用戶能夠更輕松地配置特定于任務(wù)的預算,從而在成本效率和推理質(zhì)量之間實現(xiàn)更優(yōu)化的平衡。
多語言支持
Qwen3模型支持119種語言和方言。
如此廣泛的多語言能力,也意味著Qwen 3有極大潛力創(chuàng)建風靡全球的國際應用。
更強大的智能體能力
阿里對Qwen3模型進行了優(yōu)化,以提高編碼和智能體能力,并且還加強了對MCP的支持。
下面這個示例,很好地展示了Qwen3是如何思考并與環(huán)境交互的。
36萬億token,多階段訓練
作為千問系列最強模型,Qwen3究竟是如何實現(xiàn)如此驚艷的表現(xiàn)?
接下來,一起扒一扒Qwen3背后技術(shù)細節(jié)。
預訓練
與Qwen2.5相比,Qwen3預訓練數(shù)據(jù)集規(guī)模幾乎是上一代兩倍,從18萬億個token擴展到了36萬億個token。
它覆蓋了119種語言和方言,不僅來源于網(wǎng)絡(luò),還包括從PDF等文檔中提取文本內(nèi)容。
為了確保數(shù)據(jù)質(zhì)量,團隊利用Qwen2.5-VL提取文檔文本,并通過Qwen2.5優(yōu)化提取內(nèi)容的準確性。
此外,為了提升模型在數(shù)學和代碼領(lǐng)域的表現(xiàn),Qwen3還通過Qwen2.5-Math和Qwen2.5-Coder生成大量合成數(shù)據(jù),包括教科書、問答對和代碼片段。
Qwen3預訓練過程,一共分為三個階段,逐步提升模型的能力:
第一階段(S1):基礎(chǔ)語言能力構(gòu)建
使用超30萬億個token,以4k上下文長度進行預訓練。這一階段為模型奠定了扎實的語言能力和通用知識基礎(chǔ)。
第二階段(S2):知識稠密型優(yōu)化
通過增加STEM、編碼和推理任務(wù)等知識稠密型數(shù)據(jù)的比例,模型在額外5萬億和token上繼續(xù)訓練,進一步提升專業(yè)能力的表現(xiàn)。
第三階段(S3):上下文能力擴展
利用高質(zhì)量上下文數(shù)據(jù),將模型的上下文長度擴展至32k,確保其能夠處理復雜、超長輸入。
得益于模型架構(gòu)優(yōu)化、數(shù)據(jù)規(guī)模擴展和更高效的訓練方法,Qwen3 Dense基礎(chǔ)模型展現(xiàn)出亮眼的性能。
如下表所示,Qwen3-1.7B/4B/8B/14B/32B-Base可以媲美Qwen2.5-3B/7B/14B/32B/72B-Base,以更小的參數(shù)量達到更大模型的水平。
尤其是,在STEM、編碼和推理等領(lǐng)域,Qwen3 Dense基礎(chǔ)模型甚至優(yōu)于更大的Qwen2.5模型。
更令人矚目的是,Qwen3 MoE模型僅用10%激活參數(shù),即可實現(xiàn)Qwen2.5 Dense基礎(chǔ)模型相似的性能。
這不僅大幅降低了訓練和推理成本,還為模型的實際部署提供了更高的靈活性。
后訓練
為了打造一個既能進行復雜推理,又能快速響應的混合模型,Qwen3設(shè)計了一個四階段后訓練流程。
1. 長思維鏈冷啟動
使用多樣化的長思維鏈數(shù)據(jù),覆蓋數(shù)學、編碼、邏輯推理和STEM問題,訓練模型掌握基本的推理能力。
2. 長思維鏈強化學習
通過擴展RL的計算資源,結(jié)合基于規(guī)則的獎勵機制,提升模型在探索和利用推理路徑方面的能力。
3. 思維模式融合
使用長思維鏈數(shù)據(jù)和指令微調(diào)數(shù)據(jù)進行微調(diào),將快速反應能力融入推理模型,確保模型在復雜任務(wù)中既精準又高效。
此數(shù)據(jù)由第二階段的增強思考模型生成,確保推理和快速響應能力的無縫融合。
4. 通用強化學習
在20多個通用領(lǐng)域任務(wù),如指令遵循、格式遵循和智能體能力中應用RL,進一步提升模型的通用性和魯棒性,同時糾正不良行為。
全網(wǎng)好評如潮
Qwen3開源不到3小時,GitHub狂攬17k星,徹底點燃了開源社區(qū)的熱情。開發(fā)者們紛紛下載,開啟了極速測試。
項目地址:https://github.com/QwenLM/Qwen3
蘋果工程師Awni Hannun宣布,Qwen3已經(jīng)得到MLX框架支持。
而且,不論是iPhone(0.6B, 4B),還是MacBook(8B, 30B, 3B/30B MoE)、M2/M3 Ultra(22B/235B MoE)消費級設(shè)備,均可本地跑。
他在M2 Ultra上運行了Qwen3 235B MoE,生成速度高達28 token/s。
有網(wǎng)友實測后發(fā)現(xiàn),與Qwen3大小相同的Llama模型,簡直不在一個級別上。前者推理更深入,保持更長上下文,還能解決更難的問題。
還有人表示,Qwen3就像是一個DeepSeek時刻。
官方指南
如何用Qwen3進行開發(fā)
這次,阿里還放出了在不同框架上使用Qwen3的簡單指南。
首先,這是一個在Hugging Face transformers中使用Qwen3-30B-A3B的標準示例:
from modelscope import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen3-30B-A3B"
# load the tokenizer and the model
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
# prepare the model input
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 # Switch between thinking and non-thinking modes. Default is True.
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
# conduct text completion
generated_ids = model.generate(
**model_inputs,
max_new_tokens=32768
)
output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist()
# parsing thinking content
try:
# rindex finding 151668 ()
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)
要關(guān)閉推理功能,只需更改參數(shù)enable_thinking,如下所示:
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=False # True is the default value for enable_thinking.
)
對于部署,可以使用sglang>=0.4.6.post1或vllm>=0.8.4創(chuàng)建與OpenAI兼容的API端點:
SGLang:
python -m sglang.launch_server --model-path Qwen/Qwen3-30B-A3B --reasoning-parser qwen3
vLLM:
vllm serve Qwen/Qwen3-30B-A3B --enable-reasoning --reasoning-parser deepseek_r1
如果將其用于本地開發(fā),則可以通過運行簡單的命令ollama run qwen3:30b-a3b來使用ollama運行模型,或者,也可使用LMStudio、llama.cpp和ktransformers在本地進行構(gòu)建。
高級用法
團隊提供了一種軟切換機制,當enable_thinking=True時,用戶可以通過該機制動態(tài)控制模型的行為。
具體來說,可以將/think和/no_think添加到用戶提示或系統(tǒng)消息中,以逐輪切換模型的思考模式。該模型將遵循多輪對話中最近的指令。
下面就是一個多輪對話的示例:
from transformers import AutoModelForCausalLM, AutoTokenizer
class QwenChatbot:
def __init__(self, model_name="Qwen/Qwen3-30B-A3B"):
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)
# Update history
self.history.append({"role": "user", "content": user_input})
self.history.append({"role": "assistant", "content": response})
return response
# Example Usage
if __name__ == "__main__":
chatbot = QwenChatbot()
# First input (without /think or /no_think tags, thinking mode is enabled by default)
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("----------------------")
# Second input with /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("----------------------")
# Third input with /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}")
智能體功能的使用
Qwen3在工具調(diào)用方面的表現(xiàn)非常出色。
團隊建議開發(fā)者使用Qwen-Agent,來充分利用Qwen3的智能體功能。
Qwen-Agent在內(nèi)部集成了工具調(diào)用模板和解析器,從而大大降低了編碼的復雜程度。
要定義可用的工具,可以使用MCP配置文件,使用Qwen-Agent的集成工具,或者自己集成其他工具。
from qwen_agent.agents import Assistant
# Define LLM
llm_cfg = {
'model': 'Qwen3-30B-A3B',
# Use the endpoint provided by Alibaba Model Studio:
# 'model_type': 'qwen_dashscope',
# 'api_key': os.getenv('DASHSCOPE_API_KEY'),
# Use a custom endpoint compatible with OpenAI API:
'model_server': 'http://localhost:8000/v1', # api_base
'api_key': 'EMPTY',
# Other parameters:
# 'generate_cfg': {
# # Add: When the response content is ` this is the thought this is the answer;
# # Do not add: When the response has been separated by reasoning_content and content.
# 'thought_in_content': True,
# },
}
# Define Tools
tools = [
{'mcpServers': { # You can specify the MCP configuration file
'time': {
'command': 'uvx',
'args': ['mcp-server-time', '--local-timezone=Asia/Shanghai']
},
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
},
'code_interpreter', # Built-in tools
]
# Define Agent
bot = Assistant(llm=llm_cfg, function_list=tools)
# Streaming generation
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)
參考資料:
https://qwenlm.github.io/blog/qwen3/
熱門跟貼