O campo dos modelos de linguagem de grande porte tem um novo membro. Recentemente, a família Qwen de grandes modelos de linguagem lançou sua versão mais recente, o Qwen3. De acordo com a equipe de desenvolvimento, seu principal modelo, o Qwen3-235B-A22B, demonstrou ser comparável ao Qwen3-235B-A22B em benchmarks de codificação, matemática e habilidades de uso geral. DeepSeek-R1 , o1 . o3-mini O Qwen3 foi projetado para corresponder ao desempenho dos principais modelos do setor, como o Grok-3 e o Gemini-2.5-Pro. A seleção desses concorrentes reflete o posicionamento do Qwen3, já que ele pretende estar em diálogo direto com as referências de desempenho atuais.
É interessante observar que o modelo pequeno de especialista misto (MoE) Qwen3-30B-A3B tem desempenho superior ao QwQ-32B com um número maior de covariáveis (embora com um décimo dos parâmetros de ativação deste último), e até mesmo o modelo menor Qwen3-4B tem desempenho igual ao do Qwen2.5-72B-Instruct. Isso mostra um ganho significativo de eficiência devido à arquitetura otimizada do modelo e aos métodos de treinamento aprimorados.
Um destaque do lançamento é a abertura dos pesos de dois modelos MoE: Qwen3-235B-A22B (235 bilhões de parâmetros totais, 22 bilhões ativados) e Qwen3-30B-A3B (30 bilhões de parâmetros totais, 3 bilhões ativados). MoE é uma técnica que permite que um modelo ative apenas uma parte da rede "especializada" durante o raciocínio. O MoE é uma técnica que permite que os modelos ativem apenas uma parte da rede de "especialistas" durante o raciocínio, reduzindo significativamente os requisitos computacionais e mantendo um bom desempenho, o que é importante para impulsionar a implantação de modelos grandes em uma variedade maior de cenários.
Além disso, seguindo a licença Apache 2.0, a equipe abriu pesos para seis modelos densos com cobertura de tamanho de parâmetro variando de 600 milhões a 32 bilhões, especificamente Qwen3-32B, Qwen3-14B, Qwen3-8B, Qwen3-4B, Qwen3-1.7B e Qwen3-0.6B.
Visão geral das especificações do modelo (modelos densos):
Modelos | Camadas | Cabeças (Q / KV) | Incorporação de laços | Comprimento do contexto |
---|---|---|---|---|
Qwen3-0.6B | 28 | 16 / 8 | Sim | 32K |
Qwen3-1.7B | 28 | 16 / 8 | Sim | 32K |
Qwen3-4B | 36 | 32 / 8 | Sim | 32K |
Qwen3-8B | 36 | 32 / 8 | Não | 128K |
Qwen3-14B | 40 | 40 / 8 | Não | 128K |
Qwen3-32B | 64 | 64 / 8 | Não | 128K |
Visão geral das especificações do modelo (modelo MoE):
Modelos | Camadas | Cabeças (Q / KV) | # Especialistas (Total / Ativado) | Comprimento do contexto |
---|---|---|---|---|
Qwen3-30B-A3B | 48 | 32 / 4 | 128 / 8 | 128K |
Qwen3-235B-A22B | 94 | 64 / 4 | 128 / 8 | 128K |
Esses modelos e suas versões pré-treinadas (por exemplo, Qwen3-30B-A3B-Base) já estão ativos nas principais plataformas, como Hugging Face, ModelScope, Kaggle e outras. Para a implantação do modelo, é recomendável usar SGLang e vLLM e outras estruturas. Para cenários de uso local, Ollama, LMStudio, MLX llama.cppe KTransformadores e outras ferramentas oferecem acesso fácil.
Os desenvolvedores podem usar o Qwen Chat Web e aplicativos móveis para experimentar o poder do Qwen3.
Análise de recursos principais
O Qwen3 apresenta vários recursos dignos de nota:
- Modos de pensamento híbridosO Qwen3 oferece suporte a dois modos de solução de problemas:
- Modo de pensamento. O modelo executa o raciocínio passo a passo, mostra o processo de pensamento e, em seguida, dá a resposta final. Isso se aplica a problemas complexos que exigem uma análise aprofundada.
- Modo não pensante. O modelo oferece uma resposta rápida e quase instantânea para cenários em que a velocidade é importante e o problema é relativamente simples.
Esse design oferece ao usuário a flexibilidade de controlar a "profundidade de pensamento" do modelo de acordo com as necessidades da tarefa. Mais importante ainda, esse modelo híbrido permite o controle estável e eficiente do "orçamento de raciocínio" do modelo. Conforme mostrado na figura abaixo, o desempenho do Qwen3 apresenta escalabilidade e melhorias suaves diretamente relacionadas ao orçamento de raciocínio computacional alocado. Os usuários podem configurar mais facilmente os orçamentos para tarefas específicas, encontrando assim um melhor equilíbrio entre a relação custo-benefício e a qualidade do raciocínio. Isso fornece novas ideias para o gerenciamento de custos de modelos grandes em aplicativos do mundo real.
- Amplo suporte multilíngueOs modelos Qwen3 suportam até 119 idiomas e dialetos. Esse amplo recurso multilíngue abre novas possibilidades para aplicativos internacionalizados e ajuda os usuários globais a tirar proveito dos modelos.
Família de idiomas Idiomas e dialetos Indo-europeu Inglês, francês, português, alemão, romeno, sueco, dinamarquês, búlgaro, russo, tcheco, grego, ucraniano, espanhol, holandês, eslovaco, croata. Polonês, lituano, norueguês Bokmål, norueguês Nynorsk, persa, esloveno, gujarati, letão, italiano, occitano, nepalês, marata, bielorrusso. Sérvio, luxemburguês, veneziano, assamês, galês, silesiano, asturiano, chhattisgarhi, awadhi, maithili, bhojpuri, sindi, irlandês, faroense, hindi. Punjabi, bengali, oriya, tadjique, iídiche oriental, lombardo, liguriano, siciliano, friuliano, sardo, galego, catalão, islandês, albanês tosk. Limburgish, dari, africâner, macedônio, cingalês, urdu, magahi, bósnio, armênio Sino-tibetano Chinês (chinês simplificado, chinês tradicional, cantonês), birmanês Afro-asiático Árabe (padrão, najdi, levantino, egípcio, marroquino, mesopotâmico, ta'izzi-adeni, tunisiano), hebraico, maltês Austronésico Indonésio, malaio, tagalo, cebuano, javanês, sundanês, minangkabau, balinês, banjar, pangasinan, iloko, waray (Filipinas) Dravidiano Tamil, Telugu, Kannada, Malayalam Turco Turco, norte do Azerbaijão, norte do Uzbequistão, Cazaque, Bashkir, Tártaro Tai-Kadai Tailandês, Laos Uralic Finlandês, estoniano, húngaro Austroasiático Vietnamita, Khmer Outros Japonês, coreano, georgiano, basco, haitiano, papiamento, kabuverdianu, tok pisin, suaíli - Recursos avançados de agentesO modelo Qwen3 é otimizado para codificação e para a capacidade de executar tarefas como um agente inteligente (Agent). A equipe também aprimorou o suporte para MCP, que pode se referir à Multi-Agent Collaboration Platform (Plataforma de colaboração multiagente). O link do vídeo abaixo mostra como o Qwen3 pensa e interage com o ambiente (por exemplo, invocando ferramentas).Link para o vídeo de apresentação: https://qianwen-res.oss-accelerate-overseas.aliyuncs.com/mcp.mov
Detalhes do treinamento: dados, fases e otimização
A quantidade de dados de pré-treinamento do Qwen3 é significativamente maior do que a do Qwen2.5, que usou 18 trilhões de tokens, e do Qwen3, que tem quase o dobro de dados de pré-treinamento, com cerca de 36 trilhões de tokens, abrangendo 119 idiomas e dialetos.
As fontes de dados incluíam não apenas páginas da Web, mas também documentos do tipo PDF. A equipe utiliza Qwen2.5-VL O modelo extraiu o texto desses documentos e usou o Qwen2.5 para melhorar a qualidade do conteúdo extraído. Para aumentar a proporção de dados de matemática e código, também foram gerados dados sintéticos, como livros didáticos, pares de questionários e trechos de código, usando o Qwen2.5-Math e o Qwen2.5-Coder.
O processo de pré-treinamento é dividido em três etapas:
- Fase S1. Mais de US$ 30 trilhões token O pré-treinamento é realizado em um contexto com 4 mil tokens. Essa fase tem o objetivo de fornecer ao modelo habilidades linguísticas básicas e conhecimento geral.
- Fase S2. Aumente a proporção de dados com uso intensivo de conhecimento (por exemplo, STEM, codificação, tarefas de raciocínio), otimize o conjunto de dados e continue o pré-treinamento em mais 5 trilhões de tokens.
- Fase S3. O uso de dados de contexto longo de alta qualidade estende o comprimento do contexto do modelo para 32 mil tokens (e até 128 mil para alguns modelos), garantindo que o modelo possa lidar com entradas longas de forma eficiente.
Graças à arquitetura aprimorada do modelo, ao aumento dos dados de treinamento e aos métodos de treinamento mais eficientes, o desempenho geral do modelo de base densa Qwen3 atinge o nível do modelo de base Qwen2.5, que tem um número muito maior de covariáveis. Por exemplo, o Qwen3-1.7B/4B/8B/14B/32B-Base tem desempenho comparável ao Qwen2.5-3B/7B/14B/32B/72B-Base, respectivamente. Em particular, o modelo de base densa Qwen3 supera até mesmo o modelo maior Qwen2.5 em áreas como STEM, codificação e inferência.
Para o modelo básico Qwen3-MoE, eles alcançam um desempenho semelhante ao do modelo básico denso Qwen2.5 usando apenas cerca de 101 parâmetros de ativaçãoTP3T, o que implica uma economia significativa nos custos de treinamento e inferência.
Processo pós-treinamento
Para desenvolver um modelo de modo misto que combine raciocínio por etapas com recursos de resposta rápida, a equipe da Qwen implementou um processo de pós-treinamento de quatro estágios:
- Long CoT Cold Start. Os modelos são ajustados usando longas cadeias de dados de pensamento que abrangem diversas tarefas e domínios, como matemática, codificação, raciocínio lógico, STEM etc., com o objetivo de desenvolver habilidades de raciocínio fundamentais.
- RL baseada em raciocínio. Expandir o investimento de recursos computacionais em aprendizado por reforço e utilizar recompensas baseadas em regras (RBR) para aprimorar a exploração e o aproveitamento de modelos para melhorar ainda mais o desempenho da inferência.
- Convergência de padrões de pensamento. Integração de recursos que não são de raciocínio no modelo de raciocínio. A integração dos recursos de raciocínio e resposta rápida é obtida por meio do ajuste fino em uma mistura de dados de CoT longos e dados de ajuste fino de comandos generalizados (que são gerados pelo modelo de raciocínio aprimorado na Fase 2).
- Aprendizado por reforço geral (RL geral). O aprendizado por reforço é aplicado em mais de 20 tarefas de domínio genérico para fortalecer ainda mais os recursos genéricos do modelo (por exemplo, aderência às instruções, aderência ao formato, recursos do agente etc.) e para corrigir comportamentos indesejáveis.
Desenvolvimento com o Qwen3
Aqui está um breve guia para usar o Qwen3 em diferentes estruturas. O primeiro é um exemplo padrão de uso do Qwen3-30B-A3B na biblioteca de transformadores Hugging Face:
from modelscope import AutoModelForCausalLM, AutoTokenizer model_name = "Qwen/Qwen3-30B-A3B" # 加载 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} ] # apply_chat_template 用于构建符合 Qwen 对话格式的输入 # enable_thinking=True 启用思考模式 (默认为 True) 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() # 解析思考内容 (如果存在) # 寻找 '</think>' 对应的 token id (151668) try: # rindex 从后往前查找 151668 index = len(output_ids) - output_ids[::-1].index(151668) except ValueError: # 如果没有找到 '</think>',说明没有思考内容 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) print("最终回复:", content)
Para desativar o modo de raciocínio, basta definir o parâmetro enable_thinking como False:
text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True, enable_thinking=False # 默认为 True )
Para a implantação do modelo, os pontos de extremidade compatíveis com a API OpenAI podem ser criados usando sglang>=0.4.6.post1 ou vllm>=0.8.4:
- Usando SGLang.
python -m sglang.launch_server --model-path Qwen/Qwen3-30B-A3B --reasoning-parser qwen3
- Usando o vLLM.
vllm serve Qwen/Qwen3-30B-A3B --enable-reasoning --reasoning-parser deepseek_r1
(Observação: o artigo original aqui usa o analisador deepseek_r1, os desenvolvedores precisam verificar sua compatibilidade com o Qwen3)
No ambiente de desenvolvimento local, o ollama pode ser usado com o simples comando ollama execute qwen3:30b-a3b para interagir com o modelo. Além disso, ferramentas como LMStudio, llama.cpp e ktransformers suportam a criação e a execução do Qwen3 localmente.
Uso avançado: Mudança dinâmica de modos de pensamento
O Qwen3 fornece um mecanismo de "soft-switching" que permite ao usuário controlar dinamicamente o comportamento do modelo quando enable_thinking=True. Especificamente, você pode adicionar as tags /think ou /no_think às perguntas do usuário ou às mensagens do sistema para alternar o modo de pensamento do modelo de uma rodada para outra. Em um diálogo de várias rodadas, o modelo seguirá a instrução mais recente.
A seguir, um exemplo de um diálogo de várias rodadas:
from transformers import AutoModelForCausalLM, AutoTokenizer class QwenChatbot: def __init__(self, model_name="Qwen/Qwen3-30B-A3B"): self.tokenizer = AutoTokenizer.from_pretrained(model_name) # 注意:实际运行时需要确保有足够的 GPU 显存加载模型 # device_map="auto" 可能需要根据实际硬件调整 self.model = AutoModelForCausalLM.from_pretrained( model_name, torch_dtype="auto", # 自动选择合适的精度 device_map="auto" # 自动分配模型到可用设备 ) self.history = [] # 用于存储对话历史 def generate_response(self, user_input): # 将当前用户输入加入历史记录 messages = self.history + [{"role": "user", "content": user_input}] # 使用 apply_chat_template 构建输入 # 注意:这里没有显式设置 enable_thinking,会使用模型的默认行为或最近的 /think /no_think 指令 text = self.tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True ) inputs = self.tokenizer(text, return_tensors="pt").to(self.model.device) # 生成回复 response_ids = self.model.generate( **inputs, max_new_tokens=32768 # 设置最大生成 token 数 )[0][len(inputs.input_ids[0]):].tolist() # 提取生成内容 # 解码回复文本 response = self.tokenizer.decode(response_ids, skip_special_tokens=True).strip() # 更新对话历史 self.history.append({"role": "user", "content": user_input}) # 注意:此处仅添加解码后的纯文本回复,未处理思考内容 # 如果需要保留或展示思考过程,需要像之前的例子一样解析 output_ids self.history.append({"role": "assistant", "content": response}) # 返回解码后的回复文本 return response # 示例用法 if __name__ == "__main__": # 确保在有足够资源的机器上运行 try: chatbot = QwenChatbot() # 第一次输入 (默认启用思考模式) user_input_1 = "strawberries 这个单词里有多少个 'r'?" print(f"用户: {user_input_1}") response_1 = chatbot.generate_response(user_input_1) print(f"助手: {response_1}") print("----------------------") # 第二次输入,使用 /no_think 禁用思考模式 user_input_2 = "那么,blueberries 这个单词里有多少个 'r'? /no_think" print(f"用户: {user_input_2}") response_2 = chatbot.generate_response(user_input_2) print(f"助手: {response_2}") print("----------------------") # 第三次输入,使用 /think 再次启用思考模式 user_input_3 = "真的吗?请再想想。 /think" print(f"用户: {user_input_3}") response_3 = chatbot.generate_response(user_input_3) print(f"助手: {response_3}") except Exception as e: print(f"运行出错: {e}") print("请确保已安装所需依赖,并拥有足够的计算资源(如 GPU 显存)。")
Uso do agente: chamada de ferramenta
O Qwen3 se destaca por seus recursos de chamada de ferramentas. Uso recomendado Agente Qwen O Qwen-Agent encapsula internamente modelos e analisadores para chamadas de ferramentas, simplificando a complexidade do desenvolvimento.
Isso pode ser feito por MCP Arquivos de configuração, usando as ferramentas de integração do Qwen-Agent ou integrando outras ferramentas por conta própria para definir o conjunto de ferramentas disponíveis.
import os from qwen_agent.agents import Assistant # 定义 LLM 配置 llm_cfg = { 'model': 'Qwen3-30B-A3B', # 指定使用的 Qwen3 模型 # 如果使用阿里云 ModelScope 提供的 DashScope API: # 'model_type': 'qwen_dashscope', # 'api_key': os.getenv('DASHSCOPE_API_KEY'), # 需要设置环境变量 # 如果使用兼容 OpenAI API 的自定义端点 (例如 VLLM 或 SGLang 部署的): 'model_server': 'http://localhost:8000/v1', # 替换为你的 API 地址 'api_key': 'EMPTY', # 对于本地部署或不需要 key 的情况 # 可选:其他生成参数配置 # 'generate_cfg': { # # 如果模型的原始输出将思考过程 <think>...</think> 包含在最终内容里,设为 True # # 如果 VLLM/SGLang 等框架已分离 reasoning_content 和 content,则设为 False 或不设置 # 'thought_in_content': False, # }, } # 定义工具列表 tools = [ {'mcpServers': { # 可以指定 MCP 配置文件或直接定义服务 'time': { # 定义一个名为 'time' 的工具 'command': 'uvx', # 使用 uvx 启动 # 启动参数,运行 mcp-server-time,并设置时区 'args': ['mcp-server-time', '--local-timezone=Asia/Shanghai'] }, "fetch": { # 定义一个名为 'fetch' 的工具,用于访问网页 "command": "uvx", "args": ["mcp-server-fetch"] } } }, 'code_interpreter', # 使用 Qwen-Agent 内置的代码解释器工具 # 可以继续添加其他自定义或内置工具 ] # 初始化 Agent # 需要确保 uvx 和相应的 mcp-server-* 已安装并配置好 bot = Assistant(llm=llm_cfg, function_list=tools) # 流式生成调用示例 messages = [{'role': 'user', 'content': '访问 https://qwenlm.github.io/blog/ 页面,并介绍一下 Qwen 的最新进展。'}] responses = None # 初始化 responses 变量 # bot.run 返回一个生成器,用于流式输出 for responses in bot.run(messages=messages): # 可以在这里处理中间步骤的输出,例如工具调用和观察结果 # print(responses) # 打印每个中间步骤或最终回复 pass # 循环结束后,responses 将包含最终的完整回复 # 打印最终的回复内容 if responses: print(responses) else: print("未能获取到回复。")
(Observação: para executar o exemplo do agente, você precisa instalar a biblioteca qwen-agent e as dependências relacionadas, além de garantir que as ferramentas uvx e mcp-server-* estejam disponíveis).
perspectivas futuras
O Qwen3 é visto como um marco importante na jornada rumo à Inteligência Artificial Geral (AGI) e à Super Inteligência Artificial (ASI). Ao ampliar o pré-treinamento e o aprendizado por reforço, o modelo atinge um nível mais alto de inteligência. A fusão de padrões de pensamento híbridos oferece aos usuários a flexibilidade de controlar seu orçamento de pensamento, enquanto o amplo suporte a idiomas aumenta a acessibilidade global.
No futuro, a equipe da Qwen planeja continuar a aprimorar os recursos do modelo em várias dimensões, incluindo a otimização das arquiteturas do modelo e dos métodos de treinamento para dimensionamento de dados, aumento do tamanho do modelo, extensão do comprimento do contexto, ampliação do suporte à modalidade e avanço do aprendizado por reforço por meio de feedback ambiental para permitir o raciocínio de longo prazo. A equipe acredita que o setor está passando da era do treinamento de "modelos" para a era do treinamento de "inteligências" (agentes). Sua próxima iteração promete trazer avanços mais significativos para o trabalho e a vida.