千问Qwen大模型技术报告:预训练、对齐与开源选型解析

发布时间:2026/11/6 3:53:13
千问Qwen大模型技术报告:预训练、对齐与开源选型解析

简介:面向大语言模型研究者、算法工程师与高校师生的Qwen技术资料,聚焦通义千问开源模型的技术路线与实现细节,适合希望系统理解国产开源大模型训练与对齐方法的中高级读者。包内为1个PDF文件,压缩包约1.53MB,主要内容对应Qwen Technical Report,按预训练数据、分词、模型架构、上下文长度扩展、训练流程与实验结果展开,并覆盖监督微调、RLHF对齐以及Qwen-Chat、Code-Qwen、Math-Qwen-Chat等衍生模型。已有1698人学习,可用于论文精读、课程汇报、技术选型或二次开发前的背景调研,帮助读者把握基座模型、对话模型、代码与数学专用模型之间的设计取舍,快速建立开源大模型从预训练到人类对齐的整体认知框架。

1. 千问到底是什么:一个"读了三万亿字"的语言模型意味着什么

你有没有过这种体验:同一个问题问两个 AI,一个答得有条有理,另一个答得像在胡诌。差别常常不在"谁更聪明",而在"谁读的东西更多、更杂、更干净"。大模型、千问、开源、技术资料这几个词凑到一起,讲的正是后面这件事——一份把"怎么把一个模型喂到能用"摊开写的技术报告。

千问(Qwen)这个名字来自"千条提示"的意思,它指的不是某一个模型,而是一整个系列:底座模型、对话模型,还有专门写代码、专门解数学题的变体,以及能看图的多模态版本。搞懂这套东西怎么分层,你就能判断眼前这个 AI 的回答,是底子扎实,还是碰巧蒙对。

2. 一个模型家族的四条支线:底座、对话、代码、数学分别是什么

很多人第一次翻这份报告会懵:里面一会儿叫 Qwen,一会儿叫 Qwen-Chat,还有带 Code、带 Math、带 VL 的,看着像一堆型号。其实它是一条主干上长出来的几根枝,主干只有一个——预训练出来的底座模型,其余全是在它身上继续加工的产物。把这张"家谱"看清了,后面所有参数、评测、适用场景才有地方挂。

2.1 底座模型:读遍书但还没学会"答话"

底座模型(报告里就叫 Qwen)干的事非常朴素:给它一段文字,它猜下一个词最可能是什么。反复猜上几万亿次,它就被迫学会了语法、常识、事实、代码结构,甚至一点点推理。打个比方,这就像一个人把图书馆从头翻到尾,知识塞了一脑子,但你问他"帮我写个请假条",他可能接着往下续写"请假条"三个字,而不是真给你写。

所以底座模型不是产品,是原料。它的价值体现在"下游任务"上:做文本分类、信息抽取、改写、翻译、机器阅读,只要在下游接一层小结构或者少量样本,它就能干活。报告里提到,同尺寸下底座模型在多个公开任务上超过了体量更大的对手,但对比最强的闭源商用产品还有距离。这个描述很重要——它说明底座模型的定位是"同量级里很能打",而不是"天下第一"。

公开的 7B 和 14B 两个规格的底座权重,是这份资料里最"原始"的部分。它适合谁?适合那些不想被某家接口绑死、想自己在私有数据上接着训的人。它不适合谁?不适合想直接复制一段代码就得到聊天机器人的人,因为你会发现它根本不听指令。

2.2 对话模型:在底座上补的一门"人类偏好课"

底座会续写,但不会"回答"。要让它听话,得走两步:第一步叫监督微调(SFT),拿大量"问题 + 理想回答"的样本喂给它,让它模仿这种一问一答的形态;第二步叫基于人类反馈的强化学习(RLHF),让它学会在多个说得通的回答里,挑人类更喜欢的那个。

通俗地说,SFT 教的是"格式",RLHF 教的是"品味"。一个回答可以事实全对但口气冲、可以逻辑通顺但绕圈子、可以安全但没有用——这些细微差别很难写成规则,却很容易让人二选一投票。RLHF 就是把这堆投票变成模型的直觉。

报告里特别提到,对话模型的训练数据覆盖了任务执行、聊天、工具调用、智能体、安全等方向。这句话透露了一个事实:对话模型不只是"会聊天",它被刻意训练成"会办事"。人工评测的结论是,经过 RLHF 的对话模型在较难的测试上很有竞争力,但仍在最强的闭源模型之后。这种"承认差距"的表述,恰恰是技术报告可信的地方。

2.3 代码与数学支线:为什么值得单独立门户

按常理,通用模型读了那么多代码和数学文本,应该也能写代码、解方程。那为什么还要专门做 Code-Qwen 和 Math-Qwen-Chat?

因为这两类任务对"错一步"的容忍度极低。写一段解释性文字,某个词用得不准读者也能懂;写一段程序,少一个缩进就是运行失败;解一道应用题,中间一步算错,后面全废。通用模型在长链条推理上容易"中途走神",而专用模型是在代码或数学语料上继续预训练、再用同类数据做微调,等于把这根链条反复练到不容易断。

具体形态上,代码支线有 7B 和 14B 的底座版本,也有对应的对话版本,训练目标包括代码生成、调试和解释;数学支线则是直接给出的对话版本,7B 和 14B 两档,在小学应用题和高难度竞赛题两类评测上都明显超过同尺寸开源模型,接近某个商用闭源模型的水平。多模态那条支线(能看图的版本)同样是接在底座上做的,支持中英文的文字识别和视觉定位,还能做多图对话。

支线起点训练重点更适合的任务
底座模型从零预训练海量文本与代码的下一个词预测二次训练、分类抽取、私有领域适配
对话模型底座监督微调 + 人类反馈强化学习问答、写作、任务执行、工具调用
代码模型底座代码语料继续预训练 + 代码对话微调生成、补全、调试、解释
数学模型底座数学推理数据微调应用题、分步推导、答案核验
多模态模型底座视觉与语言联合训练看图问答、文字识别、多图叙述

看清这张表,你会发现所谓"一个模型"其实是"一套流水线的不同出口"。同一个底座,往不同方向再推一把,就成了不同产品。这也是为什么报告要花整整一节讲预训练、再用一整节讲对齐——所有分支的能力上限,都被主干决定。

3. 预训练在预什么:三万亿 token、分词器和上下文长度背后的取舍

预训练是大模型最烧钱也最不透明的一段。外面看到的是"效果好不好",里面决定的是"数据怎么洗、词怎么切、上下文怎么撑"。报告把这一段拆得比较细,恰好能回答一个常见困惑:为什么有的模型参数不大,用起来却更顺手?

3.1 三万亿 token 的构成与清洗流水线

报告给出的预训练规模是最多三万亿 token,来源包括公开网页文档、百科、书籍、代码等,语种上以中英文为主,同时覆盖多种语言。这个"构成"本身就说明了一件事:模型的能力边界,基本由数据配比提前画好。代码放得多,逻辑和结构化表达就强;百科和书籍放得多,事实性问答就稳;网页放得多,口语和时效性内容就跟得上,但噪声也最多。

真正费功夫的是清洗。报告描述的流程大致是五步,顺序不能乱:

第一步,从网页的 HTML 里把正文抽出来,丢掉导航栏、广告位、页脚这些壳子;同时用语言识别工具判断这段文字到底是什么语言,避免把不同语种的语料混进同一个桶。第二步,去重。这里用了两层:一层是归一化之后的精确匹配去重,把完全一样的段落删掉;另一层是基于 MinHash 和局部敏感哈希的模糊去重,专门抓那种改了几个词、换了个模板的近似重复。

为什么要费劲做模糊去重?因为重复数据会让模型"背答案"。同一段话在训练集里出现几十次,模型对它的记忆权重就会异常高,遇到相近问题时它会复述而不是推理,评测分数好看,实际用起来一脸茫然。这是很多人踩过的坑。

第三步,质量过滤。报告说用了规则加机器学习两套手段,具体是拿多个模型给内容打分:语言模型判断这段话像不像人写的,文本质量打分模型判断信息密度够不够,还有专门识别不当内容的模型。第四步,人工抽样复核,从不同来源随机抽文本来看,校准自动打分是否跑偏。第五步,对某些高价值来源做上采样,也就是故意提高它在训练中的出现频率,因为稀缺的好文本天然占比太低。

这套流程听起来不玄妙,但它决定了模型"读过什么"。玄学的地方在于配比:网页、百科、书籍、代码各占多少,多语言之间怎么分,上采样放大几倍——报告没有给出全部数字,这属于各家不公开的部分。

3.2 分词器压缩率:一个被严重低估的成本项

模型不认字,只认 token。分词器负责把"今天天气不错"切成若干个 token。切得越碎,同样一段话占用的 token 越多;切得越省,同样长度的上下文能装更多内容,推理也更快、更便宜。

报告里专门做了一张多语言压缩率的对比:随机抽每种语言百万级的文档语料,用一个支持上百种语言的通用分词器作为基准值 1,比较几个同尺寸开源模型的编码效率。结论是千问在保证中英文和代码解码效率的同时,对不少其他语言也保持了较高的压缩率。

# 示意:编码压缩率怎么算,为什么它直接影响成本和可用上下文 corpus = load_documents("zh", n=1_000_000) # 每种语言抽百万级文档作为样本 tokens = sum(len(tok.encode(doc)) for doc in corpus) chars = sum(len(doc) for doc in corpus) ratio = chars / tokens # 每个 token 平均承载多少字符,越大越省 relative = ratio / ratio_baseline # 除以通用多语言基线的比值,即报告里的"相对压缩率"

这段代码里,chars / tokens是直观的"每 token 字符数",数值越大说明分词器越"舍得装";relative是把它除以基线分词器的同一指标,得到报告里那种以 1 为参照的倍数。参数本身不复杂,复杂的是它带来的连锁反应:一个中文压缩率差的分词器,会让原本 8000 token 的上下文实际只装得下 5000 字的中文材料,长文档摘要、合同比对、代码库问答这类任务会直接翻车。所以压缩率不是学术指标,是账单指标和使用体验指标。

3.3 上下文长度扩展:独立的工程难题

报告在模型结构那一节下面,单独开了"上下文长度扩展"一小节。这个安排本身就是信息:它被当成一个独立工程问题处理,而不是改个配置就完事。

通俗地说,模型处理上下文靠的是注意力机制,每个 token 都要"看"前面的 token。长度翻倍,计算量增长远不止翻倍,显存压力和速度都会顶到天花板。更麻烦的是外推:模型训练时只见过固定长度的文本,突然让它处理更长的输入,位置信息就会失真,表现是"前面说过的话它当没说过"。

常见的应对方向是调整位置编码的外推方式、在长文本上做继续训练、以及优化注意力的计算方式。这些细节报告没有全展开,但它把这个问题摆上台面,等于提醒使用者:超出训练长度的上下文,效果不是线性延续的,需要自己验证。

4. 对齐到底在调什么:SFT 和 RLHF 为什么不是"再训练一遍"

"微调"这个词被用得很泛,导致很多人以为对齐就是拿数据再训一遍。实际上预训练、监督微调、人类反馈强化学习这三件事,目标、数据形态、失败模式完全不同。分不清它们,就会出现"我拿几千条数据微调了,怎么还是不听指令"这种挫败。

4.1 监督微调:把"会说话"变成"按要求说话"

预训练的目标是预测下一个词,监督微调的目标是"给定这段输入,输出这段期望内容"。前者学的是语言规律,后者学的是任务形态。数据从哪来?人工撰写、构造、筛选,覆盖任务执行、聊天、工具调用、智能体、安全等方向。

# 示意:一条监督微调样本的字段结构(字段名为说明用途,不代表实际模板) sample = { "system": "...", # 角色与规则约束,决定模型"以什么身份说话" "user": "...", # 用户输入 "assistant": "...", # 期望回答,这一项才是监督信号 "meta": { # 标注这条样本属于哪类能力 "task": "chat | tool_use | agent | safety", "tools": [] # 若涉及工具调用,这里列出可用工具的描述 } }

关键在于assistant字段:模型学的不是"这句话对不对",而是"遇到这种输入,应该输出这种形状的东西"。所以监督微调最怕两件事,一是样本质量参差,模型会把错误示范一起学走;二是样本分布太窄,只教了聊天没教工具调用,那它在需要动手的场景就会胡编。报告特意点出训练数据覆盖工具调用和智能体,说明这部分是被当作一等公民对待的。

4.2 奖励模型与人类反馈强化学习:教"品味"而不是教"知识"

监督微调之后,模型会答题了,但答得好不好全看运气。人类反馈强化学习解决的就是"哪种回答更好"这个没法写成规则的问题。

流程分三段。第一段,同一个问题让模型生成多个回答,让人标注哪个更好,形成偏好对。第二段,用这些偏好对训练一个奖励模型,它的工作不是生成文字,而是给"问题 + 回答"打一个分数,分数越高代表越符合人类偏好。第三段,让策略模型不断生成回答,奖励模型打分,用强化学习把分数推高。

# 示意:人类反馈强化学习的三段式 # 第一段:收集人类偏好,同一问题两个回答,标注谁更好 pairs = [(prompt, answer_a, answer_b, label="A>B") for ...] # 第二段:训练奖励模型,学会给"问题 + 回答"打分 reward_model.fit(pairs) # 输入成对样本,输出可比较的偏好分数 # 第三段:策略模型生成 -> 奖励模型打分 -> 强化学习抬高分数 for prompt in prompts: answer = policy.generate(prompt) score = reward_model.score(prompt, answer) # 分数越高越贴近人类偏好 policy.update(answer, score) # 同时约束别偏离微调模型太远,防止跑飞

最后那句"约束别偏离太远"是这套方法的关键。如果不加约束,模型会找到奖励模型的漏洞,输出一些分数很高但人看着莫名其妙的东西——这是这套方法最典型的翻车方式,业内叫奖励劫持。所以实践里通常要加一个"别离起点太远"的惩罚项,宁可进步慢,也不能跑偏。

报告在评测部分同时给了自动评测和人工评测。人工评测更有说服力,因为"回答好不好"本来就是个主观判断。结论是经过人类反馈强化学习的对话模型在较难测试上表现有竞争力,但仍落后于最强的闭源产品。这个结论不惊艳,但诚实。

4.3 工具调用与智能体:从"会说"到"会做"

报告单独用一节讲工具使用、代码解释器和智能体,这在同类技术报告里不算常见。它描述的能力是:模型不只是生成文字,还能规划步骤、调用外部工具、执行代码来完成任务。

打个比方,纯聊天模型像一个知识渊博但只会动嘴的顾问;加了工具调用,它就像顾问手边多了计算器、搜索引擎和一台能跑程序的机器。差别不在于它懂多少,而在于它能不能把"懂"变成"做完"。

报告提到,即便面对体量更大的模型,这套能力在诸如使用代码解释器这类复杂任务上也表现得相当有竞争力。这句话的潜台词是:智能体任务考验的不只是知识量,还有规划的稳定性和对工具边界的理解,小模型在这上面并非没有机会。

5. 易混概念辨析:底座、对话、专用模型与智能体的五组区别

这一节专治"看懂了每个词,但放在一起就糊涂"。下面五组概念,是初学者最容易混淆、也最容易在实际使用中踩坑的地方。

5.1 参数大和能力强的区别

易混点:把参数量当成唯一指标,看到 14B 就觉得一定比 7B 强,看到更大的数字就觉得一定更好。

为什么混:参数确实是能力的粗粒度代理,同一条流水线上下来的模型,参数多的通常更强。但跨流水线比较就失效了——数据质量、训练 token 数、对齐水平都会改写结论。报告里明确提到,底座模型在同尺寸对比中能超过体量更大的对手,这说明参数不是唯一变量。

怎么区分:看对比是否"同量级"。同尺寸、同数据规模、同评测集的三同对比才有意义。跨尺寸的比较只能说明"某家的 14B 接近另一家的 30B",不能说明"参数没用"。实际选型时,先定你的显存和延迟预算,再在这个预算内挑最强的那个,而不是反过来。

5.2 微调和对齐的区别

易混点:把监督微调、人类反馈强化学习、领域微调统统叫"微调",以为都是"拿数据再训一遍"。

为什么混:三者形式上都属于"在已有模型上继续训练",工具链也接近,所以容易被合并成一个词。但目标完全不同:预训练学语言规律,监督微调学任务形态,人类反馈强化学习学偏好排序,领域微调学垂直知识。

怎么区分:问自己"我要改的是什么"。要模型认识你公司的产品术语,那是领域数据的问题,靠继续预训练或监督微调;要模型说话更简洁更礼貌、少说废话,那是偏好的问题,靠人类反馈那条路;要模型学会输出固定 JSON 结构,那是任务形态,靠少量高质量监督样本就够。用错手段的典型症状是:拿几百条问答去治"啰嗦",结果它更啰嗦了,因为你示范的答案本身就长。

5.3 专用模型和通用模型加提示词的区别

易混点:觉得既然通用模型也能写代码解题,专用模型就是营销噱头。

为什么混:在日常难度下,通用模型加一段好的提示词确实能覆盖大部分需求,差距不明显。但难度一上去就分叉了,尤其是需要多步推导、需要严格语法、需要长时间保持一致的场景。

怎么区分:看任务的"容错结构"。写一段脚本做数据清洗,语法错一点跑不起来,属于低容错;写一段产品文案,措辞不完美也能用,属于高容错。低容错任务优先考虑专用模型,它能减少你在反复调试提示词上耗掉的时间;高容错任务用通用模型就够了,没必要为了 5% 的提升换一套部署。另外要留意专用模型的对话版本和底座版本不是一回事,底座版本不会自动听指令。

5.4 会聊天和会干活的区别

易混点:把"能对话"等同于"能完成任务",觉得接了智能体框架就自动变强。

为什么混:演示视频里模型一边聊天一边调工具,看起来是一回事。实际上这是两层能力:对话能力决定它理解得对不对,规划与工具调用能力决定它执行得顺不顺。后者需要专门的训练数据,报告里把它和聊天、安全并列,说明是独立训练的。

怎么区分:给它一个必须动手的任务试试,比如"查一下这份数据里缺失值最多的三列,并给出处理建议"。纯聊天模型会给你一段泛泛的方法论;具备工具调用能力的模型会先规划步骤、再执行、再汇报。如果它连着两轮都在"描述做法"而不是"执行做法",那它大概率没有这部分能力,别硬套框架。

5.5 开源和随便用的区别

易混点:看到"开源"两个字就以为没有任何约束,可以随意商用、随意改。

为什么混:开源在软件界意味着自由,但在模型界,"开放权重"和"开源"经常被混着说。权重放出来是真的,但使用范围通常附带许可条款,不同规模、不同版本可能还不一样。

怎么区分:拿到权重第一件事不是跑推理,是看许可。另外要区分"开放权重"和"开放训练细节":报告公开了数据构成思路、清洗流程、对齐方法,但没有公开全部数据配比和完整训练配方,这是行业常态。所以"开源"更准确的理解是"可自由获取权重并在此基础上继续工作",不等于"训练过程完全透明",也不等于"无条件商用"。这一点搞错,后面合规上有麻烦。

6. 什么时候该用千问系模型:三个该上的场景和三个别碰的坑

把前面几章拼起来,选型的逻辑其实很简单:先确定你要的是"原料"还是"成品",再确定你的任务容错结构,最后才看参数。

你的处境建议选择原因
有大量私有文档,想做一个内部问答底座模型 + 自己的检索与微调权重可改,数据不出内网,可控性最高
想快速搭一个能对话、能调工具的助手对话模型已经过监督微调与偏好对齐,开箱即用
主要产出是代码,且要求能跑通代码专用模型在代码语料上继续训练,语法与调试稳定性更好
题目需要多步推导、答案要对数学专用模型长链条推理被专门强化过
只是做文案润色、邮件改写对话模型中较小的规格任务容错高,大材小用既慢又贵
想让它替你操作一堆外部系统先验证工具调用能力,再谈智能体没有规划与调用能力的模型,套框架也白搭

真正容易踩的坑在另一头。第一,别拿底座模型直接对外提供服务,它不会拒绝也不会格式化,用户体验会很糟。第二,别指望对话模型记住超出训练长度的上下文,长文档任务要么切块要么做检索,硬塞进去只会得到"前面那段它没看见"的结果。第三,别在没看许可条款的情况下把权重塞进商业产品,这类问题往往在上线前才被发现,回头改架构的成本远高于一开始花十分钟读条款。

还有一个更隐蔽的坑:很多人拿网上的评测榜单直接当选型依据,但榜单的题目分布和你真实业务分布往往差很远。榜单考的是通用能力,你的业务考的是特定分布上的稳定性。

从那以后我每次拿到一个新模型,都强制走一遍流程:先确认它属于家族里哪条支线,再拿二十条自己业务的真实样本跑一遍,最后才决定要不要动微调。这一步看着笨,却省下过好几次白跑一整周的功夫。完整的技术报告和对应的模型资料,都放在文末的资料入口里了,从预训练细节到对齐评测一条线读下来,比自己瞎试快得多。希望帮到你。

本文还有配套的精品资源,点击获取