通义千问Qwen3,开源!

刚刚,Qwen3正式发布并全部开源8款「混合推理模型」。

此次开源包括两款MoE模型:Qwen3-235B-A22B(2350多亿总参数、 220多亿激活参),以及Qwen3-30B-A3B(300亿总参数、30亿激活参数);以及六个Dense模型:Qwen3-32B、Qwen3-14B、Qwen3-8B、Qwen3-4B、Qwen3-1.7B和Qwen3-0.6B。

图片

  • 旗舰模型Qwen3-235B-A22B在代码、数学、通用能力等基准测试中,与一众顶级模型相比,表现出极具竞争力的结果。

  • 小型MoE模型Qwen3-30B-A3B的激活参数数量是QwQ-32B10%,表现更胜一筹, Qwen3-4B 这样的小模型也能匹敌 Qwen2.5-72B-Instruct 的性能。

经过后训练的模型,例如 Qwen3-30B-A3B,以及它们的预训练基座模型(如 Qwen3-30B-A3B-Base),现已在 Hugging Face、ModelScope 和 Kaggle 等平台上开放使用。对于部署,我们推荐使用 SGLang 和 vLLM 等框架;而对于本地使用,像 Ollama、LMStudio、MLX、llama.cpp 和 KTransformers 这样的工具也非常值得推荐。这些选项确保用户可以轻松将 Qwen3 集成到他们的工作流程中,无论是用于研究、开发还是生产环境。

我们相信,Qwen3 的发布和开源将极大地推动大型基础模型的研究与开发。我们的目标是为全球的研究人员、开发者和组织赋能,帮助他们利用这些前沿模型构建创新解决方案。

目前,全球开发者、研究机构和企业均可免费在魔搭社区、HuggingFace等平台下载模型并商用,也可以通过阿里云百炼调用Qwen3的API服务。个人用户可立即通过通义APP直接体验Qwen3,夸克也即将全线接入Qwen3。

  • GitHub:

    https://github.com/QwenLM/Qwen3

  • Hugging Face:

    https://huggingface.co/collections/Qwen/qwen3-67dd247413f0e2e4f653967f

  • 魔搭社区:

    https://modelscope.cn/collections/Qwen3-9743180bdc6b48

核心亮点

多种思考模式

Qwen3 模型支持两种思考模式:

\1. 思考模式:在这种模式下,模型会逐步推理,经过深思熟虑后给出最终答案。这种方法非常适合需要深入思考的复杂问题。

\2. 非思考模式:在此模式中,模型提供快速、近乎即时的响应,适用于那些对速度要求高于深度的简单问题。

这种灵活性使用户能够根据具体任务控制模型进行“思考”的程度。例如,复杂的问题可以通过扩展推理步骤来解决,而简单的问题则可以直接快速作答,无需延迟。至关重要的是,这两种模式的结合大大增强了模型实现稳定且高效的“思考预算”控制能力。如上文所述,Qwen3 展现出可扩展且平滑的性能提升,这与分配的计算推理预算直接相关。这样的设计让用户能够更轻松地为不同任务配置特定的预算,在成本效益和推理质量之间实现更优的平衡。

*多语言*

Qwen3 模型支持 119 种语言和方言。这一广泛的多语言能力为国际应用开辟了新的可能性,让全球用户都能受益于这些模型的强大功能。

增强的 Agent 能力

我们优化了 Qwen3 模型的 Agent 和 代码能力,同时也加强了对 MCP 的支持。下面我们将提供一些示例,展示 Qwen3 是如何思考并与环境进行交互的。

,时长00:55

预训练

在预训练方面,Qwen3 的数据集相比 Qwen2.5 有了显著扩展。Qwen2.5是在 18 万亿个 token 上进行预训练的,而 Qwen3 使用的数据量几乎是其两倍,达到了约 36 万亿个 token,涵盖了 119 种语言和方言。为了构建这个庞大的数据集,我们不仅从网络上收集数据,还从 PDF 文档中提取信息。我们使用 Qwen2.5-VL 从这些文档中提取文本,并用 Qwen2.5 改进提取内容的质量。为了增加数学和代码数据的数量,我们利用 Qwen2.5-Math 和 Qwen2.5-Coder 这两个数学和代码领域的专家模型合成数据,合成了包括教科书、问答对以及代码片段等多种形式的数据。

预训练过程分为三个阶段。在第一阶段(S1),模型在超过 30 万亿个 token 上进行了预训练,上下文长度为 4K token。这一阶段为模型提供了基本的语言技能和通用知识。在第二阶段(S2),我们通过增加知识密集型数据(如 STEM、编程和推理任务)的比例来改进数据集,随后模型又在额外的 5 万亿个 token 上进行了预训练。在最后阶段,我们使用高质量的长上下文数据将上下文长度扩展到 32K token,确保模型能够有效地处理更长的输入。

由于模型架构的改进、训练数据的增加以及更有效的训练方法,Qwen3 Dense 基础模型的整体性能与参数更多的Qwen2.5基础模型相当。例如,Qwen3-1.7B/4B/8B/14B/32B-Base分别与Qwen2.5-3B/7B/14B/32B/72B-Base 表现相当。特别是在 STEM、编码和推理等领域,Qwen3 Dense 基础模型的表现甚至超过了更大规模的 Qwen2.5 模型。对于 Qwen3 MoE 基础模型,它们在仅使用 10% 激活参数的情况下达到了与 Qwen2.5 Dense 基础模型相似的性能。这带来了训练和推理成本的显著节省。

后训练

为了开发能够同时具备思考推理和快速响应能力的混合模型,我们实施了一个四阶段的训练流程。该流程包括:(1)长思维链冷启动,(2)长思维链强化学习,(3)思维模式融合,以及(4)通用强化学习。

在第一阶段,我们使用多样的的长思维链数据对模型进行了微调,涵盖了数学、代码、逻辑推理和 STEM 问题等多种任务和领域。这一过程旨在为模型配备基本的推理能力。第二阶段的重点是大规模强化学习,利用基于规则的奖励来增强模型的探索和钻研能力。

在第三阶段,我们在一份包括长思维链数据和常用的指令微调数据的组合数据上对模型进行微调,将非思考模式整合到思考模型中。确保了推理和快速响应能力的无缝结合。最后,在第四阶段,我们在包括指令遵循、格式遵循和 Agent 能力等在内的 20 多个通用领域的任务上应用了强化学习,以进一步增强模型的通用能力并纠正不良行为。

开始使用 Qwen3

以下是如何在不同框架中使用 Qwen3 的简单指南。首先,我们提供了一个在 Hugging Face transformers 中使用 Qwen3-30B-A3B 的标准示例:

from modelscope import AutoModelForCausalLM, AutoTokenizermodel_name = "Qwen/Qwen3-30B-A3B"# load the tokenizer and the modeltokenizer = AutoTokenizer.from_pretrained(model_name)model = AutoModelForCausalLM.from_pretrained(    model_name,    torch_dtype="auto",    device_map="auto")# prepare the model inputprompt = "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 completiongenerated_ids = model.generate(    **model_inputs,    max_new_tokens=32768)output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist() # parsing thinking contenttry:    # rindex finding 151668 (</think>)    index = len(output_ids) - output_ids[::-1].index(151668)except ValueError:    index = 0thinking_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)

要禁用思考模式,只需对参数 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 来创建一个与 OpenAI API 兼容的 API endpoint:

  • 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

要禁用思考模式,您可以移除参数 --reasoning-parser(以及 --enable-reasoning)。

如果用于本地开发,您可以通过运行简单的命令 ollama run qwen3:30b-a3b 来使用ollama 与模型进行交互。您也可以使用 LMStudio 或者 llama.cpp 以及 ktransformers 等代码库进行本地开发。

高级用法

我们提供了一种软切换机制,允许用户在 enable_thinking=True 时动态控制模型的行为。具体来说,您可以在用户提示或系统消息中添加 /think 和 /no_think 来逐轮切换模型的思考模式。在多轮对话中,模型会遵循最近的指令。

以下是一个多轮对话的示例:

from transformers import AutoModelForCausalLM, AutoTokenizerclass QwenChatbot:    def __init__(self, model_name="Qwen3-30B-A3B/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 Usageif __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}")

Agent 示例

Qwen3 在工具调用能力方面表现出色。我们推荐使用 Qwen-Agent 来充分发挥 Qwen3 的 Agent 能力。Qwen-Agent 内部封装了工具调用模板和工具调用解析器,大大降低了代码复杂性。

要定义可用的工具,您可以使用 MCP 配置文件,使用 Qwen-Agent 内置的工具,或者自行集成其他工具。

from qwen_agent.agents import Assistant# Define LLMllm_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 `<think>this is the thought</think>this is the answer;    #         # Do not add: When the response has been separated by reasoning_content and content.    #         'thought_in_content': True,    #     },}# Define Toolstools = [    {'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 Agentbot = Assistant(llm=llm_cfg, function_list=tools)# Streaming generationmessages = [{'role': 'user', 'content': 'https://qwenlm.github.io/blog/ Introduce the latest developments of Qwen'}]for responses in bot.run(messages=messages):    passprint(responses)

未来发展

Qwen3 代表了我们在通往通用人工智能(AGI)和超级人工智能(ASI)旅程中的一个重要里程碑。通过扩大预训练和强化学习的规模,我们实现了更高层次的智能。我们无缝集成了思考模式与非思考模式,为用户提供了灵活控制思考预算的能力。此外,我们还扩展了对多种语言的支持,帮助全球更多用户。

展望未来,我们计划从多个维度提升我们的模型。这包括优化模型架构和训练方法,以实现几个关键目标:扩展数据规模、增加模型大小、延长上下文长度、拓宽模态范围,并利用环境反馈推进强化学习以进行长周期推理。我们认为,我们正从专注于训练模型的时代过渡到以训练 Agent 为中心的时代。我们的下一代迭代将为大家的工作和生活带来有意义的进步。

如何学习AI大模型 ?

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓

CSDN粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

👉1.大模型入门学习思维导图👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
在这里插入图片描述

👉2.AGI大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。

在这里插入图片描述
在这里插入图片描述

👉3.大模型实际应用报告合集👈

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

在这里插入图片描述

👉4.大模型落地应用案例PPT👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)

在这里插入图片描述

👉5.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
img

在这里插入图片描述

👉6.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)

在这里插入图片描述
👉学会后的收获:👈
基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习

CSDN粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)
<think>好的,我现在需要帮助用户了解如何在本地部署通义Qwen2.5-Omni-7B模型。首先,我需要确认用户的需求,他们可能希望在自己的服务器或个人电脑上运行这个模型,所以必须了解部署的系统要求、步骤以及可能的代码示例。 根据提供的引用内容,这个模型是阿里巴巴开源的,支持多模态,包括文本、图像、音频和视频的处理,并且能够流式生成响应。因此,在部署时需要考虑多模态处理的能力以及硬件资源是否足够。 首先,系统要求方面,用户需要足够的计算资源。因为模型参数是7B规模,通常需要至少16GB的GPU显存,比如使用NVIDIA V100或A10这样的显卡。同时,内存方面建议32GB以上,存储空间需要至少20GB,因为模型文件本身可能较大,加上依赖库和数据集。软件环境方面,需要Python 3.8或更高版本,PyTorch框架,以及Hugging Face的Transformers库,这些都是运行此类模型的基础。 接下来,部署步骤。第一步是环境准备,安装必要的库,比如transformers、torch、sentencepiece等。用户可能需要使用pip安装这些依赖。然后,模型下载,可以通过Hugging Face Hub或者阿里巴巴提供的源获取模型文件。需要确保下载正确的模型版本,可能使用git lfs来下载大文件。 然后是代码示例,用户需要加载模型和分词器。使用AutoModelForCausalLM和AutoTokenizer来自动加载适合的模型结构和分词器。同时,可能需要配置设备映射,比如device_map="auto"让模型自动分配到可用的GPU上。预处理输入部分,可能需要处理多模态数据,比如图像或音频,需要特定的处理器来转换成模型可接受的输入格式。生成输出时,设置参数如max_length、temperature等来控制生成文本的长度和多样性。对于流式输出,可能需要使用generate的streamer参数,但需要查看模型的文档是否支持。 部署注意事项方面,显存优化是关键。如果显存不足,可以考虑量化技术,比如bitsandbytes库的8位或4位量化,或者使用模型并行将模型分散到多个GPU上。多模态处理部分,用户需要确保输入数据经过正确的预处理,比如图像需要resize和归一化,音频可能需要转换为频谱图等。流式响应可能需要结合WebSocket或服务器推送技术,但具体实现可能需要参考模型的API文档。 此外,用户可能需要参考官方文档和GitHub仓库,因为开源项目通常会有详细的安装和使用说明,以及可能的常见题解答。如果遇到题,检查依赖版本是否兼容,比如PyTorch和CUDA的版本是否匹配,transformers库是否更新到支持该模型的版本。 最后,生成相关题需要考虑用户可能进一步的题,比如性能优化方法、处理多模态输入的技巧,或者与其他模型的对比。这样可以帮助用户更全面地理解和应用该模型。</think>### 通义 Qwen2.5-Omni-7B 本地部署指南 #### 一、部署要求 1. **硬件配置** - **GPU**: 推荐 NVIDIA V100/A10/A100 等显存 ≥16GB 的显卡(7B 模型推理需约 14GB 显存) - **内存**: ≥32GB - **存储**: ≥20GB 可用空间(模型文件约 14GB) 2. **软件环境** - Python ≥3.8 - PyTorch ≥2.0(需与 CUDA 版本匹配) - Transformers ≥4.37.0 - 其他依赖:`sentencepiece`, `accelerate`, `bitsandbytes`(量化部署时需安装) #### 二、部署步骤 1. **环境准备** ```bash pip install torch transformers sentencepiece accelerate ``` 2. **模型下载** ```bash git lfs install git clone https://www.modelscope.cn/qwen/Qwen2.5-Omni-7B.git ``` 3. **基础推理代码示例** ```python from transformers import AutoModelForCausalLM, AutoTokenizer model_path = "Qwen2.5-Omni-7B" tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained( model_path, device_map="auto", trust_remote_code=True ) # 文本推理示例 inputs = tokenizer("法国的首都是哪里?", return_tensors="pt").to("cuda") outputs = model.generate(**inputs, max_length=50) print(tokenizer.decode(outputs[0])) ``` #### 三、多模态处理(需额外安装依赖) ```bash pip install pillow soundfile torchaudio ``` ```python # 图像推理示例 from PIL import Image image = Image.open("test_image.jpg").convert("RGB") image_input = model.image_processor(image, return_tensors="pt").to("cuda") text_input = tokenizer("描述这张图片", return_tensors="pt").to("cuda") outputs = model.generate(**dict(text_input, **image_input)) ``` #### 四、显存优化方案 1. **4-bit 量化部署** ```python model = AutoModelForCausalLM.from_pretrained( model_path, device_map="auto", load_in_4bit=True, # 启用4-bit量化 bnb_4bit_compute_dtype=torch.float16 ) ``` 2. **模型并行** ```python model = AutoModelForCausalLM.from_pretrained( model_path, device_map={"": 0}, # 手动分配多GPU max_memory={0:"16GiB", 1:"16GiB"} ) ``` #### 五、流式响应实现 ```python from transformers import TextStreamer streamer = TextStreamer(tokenizer) inputs = tokenizer("请解释量子计算", return_tensors="pt").to("cuda") model.generate(**inputs, streamer=streamer, max_new_tokens=500) ``` #### 六、部署验证 执行以下命令测试模型响应: ```bash python -c "from transformers import pipeline; pipe = pipeline(&#39;text-generation&#39;, model=&#39;Qwen2.5-Omni-7B&#39;); print(pipe(&#39;你好,请作一首七言诗&#39;, max_length=50)[0][&#39;generated_text&#39;])" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值