开源!RAG竞技场(2):标准RAG算法
本项目已开源:
地址:https://github.com/ZehaoJia1024/RAG-Arena
项目包含多种RAG算法的讲解、从零实现、以及评估。
相关算法正在持续更新中…
🏆标准RAG最终评分:3.47分🏆
RAG
在这篇notebook中,我们将实现一个标准的RAG流程,并且评估标准RAG算法的性能。
标准RAG一共分为三个流程,检索(Retrieval, R)、增强(Augmented, A)、生成(Generation, G)。
- 检索:使用嵌入模型,根据问题检索文档中的多个相关文本块。
- 增强:拼接上下文信息,增强信息的表达。
- 生成:根据上下文信息生成回复。
RAG是由 Facebook AI Research(现 Meta AI) 的一个团队在一篇名为 《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》的论文中正式提出的。
https://arxiv.org/abs/2005.11401
其核心特点是 端到端的可微调。这意味着检索器(Retriever)和生成器(Generator)被视为一个统一的、可以共同训练的系统。
如今我们谈论的RAG,是一种更加模块化和实用化的架构。
- 检索器: 通常是一个独立的向量数据库和嵌入模型,它的任务只有一个:根据查询返回最相关的文本块。
- 生成器: 通常是一个强大的、通用的、预训练好的LLM。
接下来,我们开始对标准的RAG进行评估。
首先需要导入相关的代码库。
from rag_evaluate import Embedder, LLMJudge, load_data, ReplyModel
import warnings
warnings.filterwarnings('ignore') # 忽略所有的警告
WARNING:tensorflow:From F:\anaconda3\envs\main\lib\site-packages\tf_keras\src\losses.py:2976: The name tf.losses.sparse_softmax_cross_entropy is deprecated. Please use tf.compat.v1.losses.sparse_softmax_cross_entropy instead.
加载评估的相关数据。
documents, QA = load_data(data_dir='data')
在进行RAG前,首先要将文档进行分块。
原因如下:
- 如果文档太长,嵌入模型难以处理。
- 一个完整的文档中,可能只有部分语句是与问题相关的,因此需要对文档进行切块。
- LLM尽量避免输入太长的token,输入token太长容易造成无法抓住重点。
我们使用最简单的分块策略,即按照自然段进行划分。
在划分时,需要指定一个 chunk_size
,用于指定每一个文本模块的大小。
文本块太短容易造成信息不充分。
文本块太长容易造成信息的冗余。
在下面的代码中,有些自然段的长度可能超过chunk_size,这些内容暂时不做处理。我们只对长度较短的自然段进行拼接。
def chunk_documents(documents, chunk_size):chunks = []for document in documents:# 按段落分割,并过滤掉空段落paragraphs = [p.strip() for p in document.split("\n") if p.strip()]current_chunk = ""for i, paragraph in enumerate(paragraphs):current_chunk += paragraphif len(current_chunk) >= chunk_size:chunks.append(current_chunk)current_chunk = ""return chunks
指定文本块的最小长度为512,并提取所有的问题与正确答案。
chunks = chunk_documents(documents, 512)
queries = [qa["question"] for qa in QA['data']]
answers_gt = [qa["answer"] for qa in QA['data']]
加载向量化工具,并对所有的文本块和问题进行向量化。
embedder = Embedder()
chunk_embeddings = embedder.embed(chunks)
query_embeddings = embedder.embed(queries)
接下来,计算所有问题与所有文本块之间的相似度矩阵。
通过相似度矩阵,我们可以找到每个问题与每个文本块之间的相似度,从而找到某一个问题与哪些文本块存在着关联。
在这里,我们需要指定一个k值
,通过k值确定需要的文本块数量。
若k值太大,会造成文本模块过多,引入无关文本块,同时会造成输入token数量的爆炸💥。
若K值太小,则会导致信息量的缺失,可能无法找到相关的文本块。
在代码中,我们将得到每个问题相关文本块的索引(top_k_indices
),后续可以通过索引找到相关的文本块。
similarity = embedder.similarity(query_embeddings, chunk_embeddings)
k = 3
top_k_indices = embedder.get_top_k(similarity, k)
for i, query in enumerate(queries):retrieved_chunks = []print(f"问题:{query}")print("-" * 30)for doc_idx in top_k_indices[i]:print(f"文本块(相似度{similarity[i, doc_idx]:.4f}):\n{chunks[doc_idx]}")print("=" * 30)
问题:在后训练过程中,为什么Qwen3模型在经过“思考模式融合”和“通用RL”阶段后,在AIME’24和LiveCodeBench等具有挑战性的任务上性能反而有所下降?------------------------------文本块(相似度0.8330):(3)对于知识、STEM、数学和编码任务,思考模式融合和通用RL并未带来显著改进。相比之下,对于AIME’24和LiveCodeBench等具有挑战性的任务,思考模式下的性能在这两个训练阶段后实际上有所下降。我们推测这种退化是由于模型在更广泛的通用任务上训练,这可能损害了其处理复杂问题的专业能力。在Qwen3的开发过程中,我们选择接受这种性能权衡,以增强模型的整体多功能性。## 5 结论在本技术报告中,我们介绍了Qwen系列的最新版本Qwen3。Qwen3具有思考模式和非思考模式,使用户能够动态管理用于复杂思考任务的token数量。该模型在包含36万亿token的广泛数据集上进行了预训练,使其能够理解和生成119种语言和方言的文本。通过一系列全面的评估,Qwen3在预训练和后训练模型的各种标准基准上均表现出强大的性能,包括与代码生成、数学、推理和代理相关的任务。在不久的将来,我们的研究将集中在几个关键领域。我们将继续通过使用质量更高、内容更多样化的数据来扩展预训练规模。同时,我们将致力于改进模型架构和训练方法,以实现有效的压缩、扩展到极长上下文等目标。此外,我们计划增加强化学习的计算资源,特别关注从环境反馈中学习的基于代理的RL系统。这将使我们能够构建能够处理需要推理时间缩放的复杂任务的代理。文本块(相似度0.8291):|方法|AIME’24|AIME’25|MATH500|LiveCodeBench v5|MMLU-Redux|GPQA-Diamond|GPU小时||----|----|----|----|----|----|----|----||离线蒸馏|55.0 (90.0)|42.8 (83.3)|92.4|42.0|86.4|55.6|-||+强化学习|67.6 (90.0)|55.5 (83.3)|94.8|52.9|86.9|61.3|17,920||+在线蒸馏|74.4 (93.3)|65.5 (86.7)|97.0|60.3|88.3|63.3|1,800|#### 思考模式融合和通用RL的效果为了评估后训练期间思考模式融合和通用强化学习(RL)的有效性,我们对Qwen-32B模型的各个阶段进行了评估。除了前面提到的数据集,我们还引入了几个内部基准来监控其他能力。这些基准包括:CounterFactQA:包含反事实问题,模型需要识别问题不真实并避免生成幻觉答案。LengthCtrl:包括有长度要求的创意写作任务;最终分数基于生成内容长度与目标长度的差异。ThinkFollow:涉及随机插入/think和/no think标志的多轮对话,以测试模型是否能根据用户查询正确切换思考模式。文本块(相似度0.7284):|代理|BFCL v3|69.0|68.4 -0.6|61.5|70.3 +1.9|63.0 +1.5|| |ToolUse\*|63.3|70.4 +7.1|73.2|85.5 +15.1|86.5 +13.3||知识与STEM|MMLU-Redux|91.4|91.0 -0.4|86.7|90.9 -0.1|85.7 -1.0|| |GPQA-Diamond|68.8|69.0 +0.2|50.4|68.4 -0.6|54.6 +4.3||数学与编码|AIME’24|83.8|81.9 -1.9|28.5|81.4 -0.5|31.0 +2.5|| |LiveCodeBench v5|68.4|67.2 -1.2|31.1|65.7 -1.5|31.3 +0.2|(1)阶段3将非思考模式集成到模型中,该模型在前两个阶段训练后已具备思考能力。ThinkFollow基准得分为88.7,表明模型已发展出初步的模式切换能力,尽管仍偶尔会出错。阶段3还增强了模型在思考模式下的通用和指令遵循能力,CounterFactQA提高了10.9分,LengthCtrl提高了8.0分。(2)阶段4进一步增强了模型在思考和非思考模式下的通用、指令遵循和代理能力。值得注意的是,ThinkFollow得分提高到98.9,确保了准确的模式切换。==============================问题:在针对轻量级模型的“强到弱蒸馏”管道中,在线蒸馏(Online Distillation)阶段的具体实现方式是什么?------------------------------文本块(相似度0.6764):为上述任务提供反馈,我们利用了三种不同类型的奖励:(1)基于规则的奖励:基于规则的奖励已在推理RL阶段广泛使用,对指令遵循(Lambert等人,2024)和格式遵守等一般任务也很有用。精心设计的基于规则的奖励可以高精度地评估模型输出的正确性,防止奖励破解等问题。(2)带参考答案的基于模型的奖励:在这种方法中,我们为每个查询提供一个参考答案,并提示Qwen2.5-72B-Instruct根据该参考对模型的响应进行评分。这种方法允许更灵活地处理各种任务,而无需严格的格式要求,避免了纯基于规则的奖励可能出现的假阴性。(3)不带参考答案的基于模型的奖励:利用人类偏好数据,我们训练一个奖励模型为模型响应分配标量分数。这种不依赖参考答案的方法可以处理更广泛的查询,同时有效提高模型的参与度和帮助性。### 4.5 强到弱蒸馏强到弱蒸馏管道专门设计用于优化轻量级模型,包括5个密集型模型(Qwen3-0.6B、1.7B、4B、8B和14B)和一个MoE模型(Qwen3-30B-A3B)。这种方法提高了模型性能,同时有效地赋予了强大的模式切换能力。蒸馏过程分为两个主要阶段:(1)离线蒸馏:在这个初始阶段,我们结合教师模型在/think和/no think模式下生成的输出进行响应蒸馏。这帮助轻量级学生模型发展基本的推理技能和在不同思考模式之间切换的能力,为下一阶段的在线训练奠定坚实基础。文本块(相似度0.6152):|OpenAI-o1-mini|63.6|80.0|90.0|60.0|53.8|1820||QwQ-32B-Preview|50.0|60.0|90.6|54.5|41.9|1316||DeepSeek-R1-Distill-Qwen-1.5B|28.9|52.7|83.9|33.8|16.9|954||DeepSeek-R1-Distill-Qwen-7B|55.5|83.3|92.8|49.1|37.6|1189||DeepSeek-R1-Distill-Qwen-14B|69.7|80.0|93.9|59.1|53.1|1481||DeepSeek-R1-Distill-Qwen-32B|72.6|83.3|94.3|62.1|57.2|1691||DeepSeek-R1-Distill-Llama-8B|50.4|80.0|89.1|49.0|39.6|1205||DeepSeek-R1-Distill-Llama-70B|70.0|86.7|94.5|65.2|57.5|1633|表5 | DeepSeek-R1蒸馏模型与其他可比模型在推理相关基准上的比较### 4. 讨论#### 4.1 蒸馏与强化学习文本块(相似度0.6146):#### 2.4 蒸馏:赋予小模型推理能力为了使更高效的小模型具备像DeepSeek-R1一样的推理能力,我们使用DeepSeek-R1策划的800k样本直接微调Qwen(Qwen, 2024b)和Llama(AI@Meta, 2024)等开源模型,如2.3.3节所述。我们的发现表明,这种简单的蒸馏方法显著增强了小模型的推理能力。我们在这里使用的基础模型是Qwen2.5-Math-1.5B、Qwen2.5-Math-7B、Qwen2.5-14B、Qwen2.5-32B、Llama-3.1-8B和Llama-3.3-70B-Instruct。我们选择Llama-3.3是因为其推理能力略优于Llama-3.1。对于蒸馏模型,我们仅应用监督微调,不包括强化学习阶段,尽管加入强化学习可以大幅提高模型性能。我们在这里的主要目标是证明蒸馏技术的有效性,将强化学习阶段的探索留给更广泛的研究社区。### 3. 实验#### 基准测试我们在MMLU(Hendrycks等人,2020)、MMLU-Redux(Gema等人,2024)、MMLU-Pro(Wang等人,2024)、C-Eval(Huang等人,2023)、CMMLU(Li等人,2023)、IFEval(Zhou等人,2023)、FRAMES(Krishna等人,2024)、GPQA Diamond(Rein等人,2023)、SimpleQA(OpenAI, 2024c)、C-SimpleQA(He等人,2024)、SWE-Bench Verified(OpenAI, 2024d)、Aider 1、LiveCodeBench(Jain等人,2024)(2024-08 – 2025-01)、Codeforces 2、中国全国高中数学奥林匹克(CNMO 2024)3和美国数学邀请赛2024(AIME 2024)(MAA, 2024)上评估模型。除了标准基准外,我们还使用大语言模型作为评委在开放式生成任务上评估我们的模型。具体来说,我们遵循AlpacaEval 2.0(Dubois等人,2024)和Arena-Hard(Li等人,2024)的原始配置,它们利用GPT-4-Turbo-1106作为评委进行成对比较。在这里,我们只将最终摘要输入评估,以避免长度偏差。对于蒸馏模型,我们报告AIME 2024、MATH-500、GPQA Diamond、Codeforces和LiveCodeBench上的代表性结果。==============================问题:Qwen3的开发团队在预训练数据筛选和模型后训练阶段,具体实施了哪些伦理审查(Ethical Review)流程来确保模型的安全性并减少偏见?------------------------------文本块(相似度0.6956):Qwen3的预训练过程利用了一个由约36万亿token组成的大规模数据集,精心策划以确保语言和领域的多样性。为了高效扩展训练数据,我们采用了多模态方法:对Qwen2.5-VL(Bai等人,2025)进行微调,以从大量PDF文档中提取文本。我们还使用特定领域模型生成合成数据:Qwen2.5-Math(Yang等人,2024c)用于数学内容,Qwen2.5-Coder(Hui等人,2024)用于代码相关数据。预训练过程遵循三阶段策略。在第一阶段,模型在约30万亿token上进行训练,以构建强大的通用知识基础。在第二阶段,进一步在知识密集型数据上训练,以增强在科学、技术、工程和数学(STEM)及编码等领域的推理能力。最后,在第三阶段,在长上下文数据上训练,将最大上下文长度从4096增加到32768 token。为了更好地使基础模型与人类偏好和下游应用保持一致,我们采用了多阶段后训练方法,赋予思考(推理)和非思考模式能力。在前两个阶段,我们专注于通过长思维链(CoT)冷启动微调和专注于数学和编码任务的强化学习来开发强大的推理能力。在最后两个阶段,我们将包含和不包含推理路径的数据合并到统一数据集中进行进一步微调,使模型能够有效处理两种类型的输入,然后应用通用领域强化学习来提高跨广泛下游任务的性能。对于较小的模型,我们使用强到弱蒸馏,利用来自较大模型的离线和在线知识转移来增强其能力。来自先进教师模型的蒸馏在性能和训练效率上显著优于强化学习。文本块(相似度0.6701):# Qwen3技术报告Qwen团队https://huggingface.co/Qwenhttps://modelscope.cn/organization/qwenhttps://github.com/QwenLM/Qwen3## 摘要在这项工作中,我们介绍了Qwen模型家族的最新版本Qwen3。Qwen3包含一系列旨在提升性能、效率和多语言能力的大型语言模型(LLM)。Qwen3系列包括密集型和混合专家(MoE)架构的模型,参数规模从6亿到2350亿不等。Qwen3的一个关键创新是将思考模式(用于复杂的多步推理)和非思考模式(用于快速的上下文驱动响应)集成到一个统一框架中。这消除了在不同模型之间切换的需要,例如经过聊天优化的模型(如GPT-4o)和专用推理模型(如QwQ32B),并支持根据用户查询或聊天模板动态切换模式。同时,Qwen3引入了思考预算机制,允许用户在推理过程中自适应分配计算资源,从而根据任务复杂度平衡延迟和性能。此外,通过利用旗舰模型的知识,我们显著减少了构建小规模模型所需的计算资源,同时确保它们具有极具竞争力的性能。实证评估表明,Qwen3在各种基准测试中均取得了最先进的结果,包括代码生成、数学推理、代理任务等,可与更大的MoE模型和专有模型相媲美。与前身Qwen2.5相比,Qwen3将多语言支持从29种扩展到119种语言和方言,通过增强的跨语言理解和生成能力提高了全球可访问性。为促进可重复性和社区驱动的研究与开发,所有Qwen3模型均在Apache 2.0下公开提供。文本块(相似度0.6534):我们开发了一个多语言数据注释系统,旨在提高训练数据的质量和多样性。该系统已应用于我们的大规模预训练数据集,对超过30万亿token进行了多个维度的注释,如教育价值、领域、域和安全性。这些详细注释支持更有效的数据过滤和组合。与之前在数据源或领域级别优化数据混合的研究(Xie等人,2023;Fan等人,2023;Liu等人,2024b)不同,我们的方法通过对具有细粒度数据标签的小型代理模型进行广泛的消融实验,在实例级别优化数据混合。### 3.2 预训练阶段Qwen3模型通过三阶段过程进行预训练:(1)通用阶段(S1):在第一个预训练阶段,所有Qwen3模型都在超过30万亿token上使用4096token的序列长度进行训练。在这个阶段,模型已经在语言能力和一般世界知识上完成了全面预训练,训练数据覆盖119种语言和方言。(2)推理阶段(S2):为了进一步提高推理能力,我们通过增加STEM、编码、推理和合成数据的比例来优化此阶段的预训练语料库。模型使用约5万亿更高质量的token进行进一步预训练,序列长度为4096token。我们还在此阶段加速学习率衰减。(3)长上下文阶段:在最后的预训练阶段,我们收集高质量的长上下文语料库来扩展Qwen3模型的上下文长度。所有模型都在数百亿token上进行预训练,序列长度为32768token。长上下文语料库包括75%长度在16384到32768token之间的文本,以及25%长度在4096到16384之间的文本。遵循Qwen2.5(Yang等人,2024b),我们使用ABF技术(Xiong等人,2023)将RoPE的基础频率从10,000增加到1,000,000。同时,我们引入了YARN(Peng等人,2023)和双块注意力(DCA,An等人,2024),以在推理期间实现序列长度容量的四倍增加。==============================问题:与Qwen2.5-MoE相比,Qwen3的MoE模型在架构设计上引入了哪些关键的改变?------------------------------文本块(相似度0.7968):Qwen3密集型模型的架构与Qwen2.5(Yang等人,2024b)类似,包括使用分组查询注意力(GQA,Ainslie等人,2023)、SwiGLU(Dauphin等人,2017)、旋转位置嵌入(RoPE,Su等人,2024)和带预归一化的RMSNorm(Jiang等人,2023)。此外,我们移除了Qwen2中使用的QKV偏差(Yang等人,2024a),并在注意力机制中引入了QK-Norm(Dehghani等人,2023),以确保Qwen3的稳定训练。模型架构的关键信息见表1。|模型|层数|头数(Q/KV)|词嵌入绑定|上下文长度||----|----|----|----|----||Qwen3-0.6B|28|16/8|是|32K||Qwen3-1.7B|36|16/8|是|128K||Qwen3-4B|36|32/8|否|128K||Qwen3-8B|28|32/8|否|32K||Qwen3-14B|40|40/8|否|128K||Qwen3-32B|64|64/8|否|128K|Qwen3 MoE模型与Qwen3密集型模型共享相同的基础架构。模型架构的关键信息见表2。我们遵循Qwen2.5-MoE(Yang等人,2024b)并实现了细粒度专家分割(Dai等人,2024)。Qwen3 MoE模型总共有128个专家,每个token激活8个专家。与Qwen2.5-MoE不同,Qwen3-MoE设计中不包含共享专家。此外,我们采用了全局批处理负载平衡损失(Qiu等人,2025)来促进专家专业化。这些架构和训练创新已在下游任务中带来了模型性能的显著提升。文本块(相似度0.7278):详细结果如下。#### Qwen3-235B-A22B-Base我们将Qwen3-235B-A22B-Base与我们之前类似规模的MoE模型Qwen2.5-Plus-Base(Yang等人,2024b)和其他领先的开源基础模型进行比较:Llama-4-Maverick(Meta-AI,2025)、Qwen2.5-72B-Base(Yang等人,2024b)、DeepSeek-V3 Base(Liu等人,2024a)。从表3的结果来看,Qwen3-235B-A22B-Base模型在大多数评估基准上获得了最高的性能分数。我们进一步将Qwen3-235B-A22B-Base与其他基线分别进行详细分析。(1)与最近开源的参数约为其两倍的模型Llama-4-Maverick-Base相比,Qwen3-235B-A22B-Base在大多数基准上仍然表现更好。(2)与之前最先进的开源模型DeepSeek-V3-Base相比,Qwen3-235B-A22B-Base在15个评估基准中的14个上超越了DeepSeek-V3-Base,仅使用约1/3的总参数和2/3的激活参数,展示了我们模型的强大和成本效益。(3)与我们之前类似规模的MoE模型Qwen2.5-Plus相比,Qwen3-235B-A22B-Base以更少的参数和激活参数显著超越了它,这表明Qwen3在预训练数据、训练策略和模型架构方面的显著优势。文本块(相似度0.7161):### 评估结果总结基于整体评估结果,我们强调Qwen3基础模型的一些关键结论。(1)与之前开源的SOTA密集型和MoE基础模型(如DeepSeekV3 Base、Llama-4-Maverick Base和Qwen2.5-72B-Base)相比,Qwen3-235B-A22B-Base在大多数任务中以显著更少的总参数或激活参数超越了这些模型。(2)对于Qwen3 MoE基础模型,我们的实验结果表明:(a)使用相同的预训练数据,Qwen3 MoE基础模型仅使用1/5的激活参数即可实现与Qwen3密集型基础模型相似的性能。(b)由于Qwen3 MoE架构的改进、训练token的规模扩大和更先进的训练策略,Qwen3 MoE基础模型可以用少于1/2的激活参数和更少的总参数超越Qwen2.5 MoE基础模型。(c)即使使用Qwen2.5密集型基础模型1/10的激活参数,Qwen3 MoE基础模型也能实现可比的性能,这为我们在推理和训练成本方面带来了显著优势。(3)Qwen3密集型基础模型的整体性能与更高参数规模的Qwen2.5基础模型相当。例如,Qwen3-1.7B/4B/8B/14B/32B-Base分别实现了与Qwen2.5-3B/7B/14B/32B/72B-Base相当的性能。特别是在STEM、编码和推理基准测试中,Qwen3密集型基础模型的性能甚至超越了更高参数规模的Qwen2.5基础模型。==============================问题:在“思考模式融合”阶段,Qwen3模型是如何通过显式训练(explicitly trained)来学习并实现“思考预算(Thinking Budget)”这一能力的?------------------------------文本块(相似度0.7604):|方法|AIME’24|AIME’25|MATH500|LiveCodeBench v5|MMLU-Redux|GPQA-Diamond|GPU小时||----|----|----|----|----|----|----|----||离线蒸馏|55.0 (90.0)|42.8 (83.3)|92.4|42.0|86.4|55.6|-||+强化学习|67.6 (90.0)|55.5 (83.3)|94.8|52.9|86.9|61.3|17,920||+在线蒸馏|74.4 (93.3)|65.5 (86.7)|97.0|60.3|88.3|63.3|1,800|#### 思考模式融合和通用RL的效果为了评估后训练期间思考模式融合和通用强化学习(RL)的有效性,我们对Qwen-32B模型的各个阶段进行了评估。除了前面提到的数据集,我们还引入了几个内部基准来监控其他能力。这些基准包括:CounterFactQA:包含反事实问题,模型需要识别问题不真实并避免生成幻觉答案。LengthCtrl:包括有长度要求的创意写作任务;最终分数基于生成内容长度与目标长度的差异。ThinkFollow:涉及随机插入/think和/no think标志的多轮对话,以测试模型是否能根据用户查询正确切换思考模式。文本块(相似度0.7473):(3)对于知识、STEM、数学和编码任务,思考模式融合和通用RL并未带来显著改进。相比之下,对于AIME’24和LiveCodeBench等具有挑战性的任务,思考模式下的性能在这两个训练阶段后实际上有所下降。我们推测这种退化是由于模型在更广泛的通用任务上训练,这可能损害了其处理复杂问题的专业能力。在Qwen3的开发过程中,我们选择接受这种性能权衡,以增强模型的整体多功能性。## 5 结论在本技术报告中,我们介绍了Qwen系列的最新版本Qwen3。Qwen3具有思考模式和非思考模式,使用户能够动态管理用于复杂思考任务的token数量。该模型在包含36万亿token的广泛数据集上进行了预训练,使其能够理解和生成119种语言和方言的文本。通过一系列全面的评估,Qwen3在预训练和后训练模型的各种标准基准上均表现出强大的性能,包括与代码生成、数学、推理和代理相关的任务。在不久的将来,我们的研究将集中在几个关键领域。我们将继续通过使用质量更高、内容更多样化的数据来扩展预训练规模。同时,我们将致力于改进模型架构和训练方法,以实现有效的压缩、扩展到极长上下文等目标。此外,我们计划增加强化学习的计算资源,特别关注从环境反馈中学习的基于代理的RL系统。这将使我们能够构建能够处理需要推理时间缩放的复杂任务的代理。文本块(相似度0.7088):|思考模式|非思考模式||----|----||<|im start|>user {query} /think<|im end|><|im start|>assistant<|FunctionCallBegin|>{thinking content}<|FunctionCallEnd|><|im end|>|<|im start|>user {query} /no think<|im end|><|im start|>assistant<|FunctionCallBegin|>{response}<|im end|>|#### 思考预算思考模式融合的另一个优势是,一旦模型学会以非思考和思考模式响应,它自然会发展出处理中间情况的能力——基于不完整的思考生成响应。这种能力为实现对模型思考过程的预算控制奠定了基础。具体而言,当模型的思考长度达到用户定义的阈值时,我们手动停止思考过程并插入停止思考指令:“考虑到用户的时间有限,我现在必须直接根据思考给出解决方案。\n<|FunctionCallBegin|>.\n\n”。插入此指令后,模型将根据其截至该点积累的推理继续生成最终响应。值得注意的是,这种能力不是显式训练的,而是应用思考模式融合的自然结果。==============================问题:相较于以往的多阶段训练框架(如GTE、E5),Qwen3 Embedding系列在训练流程中引入了哪三项关键创新?------------------------------文本块(相似度0.8030):# Qwen3 Embedding:通过基础模型推进文本嵌入和重排序### arXiv:2506.05176v3 [cs.CL] 2025年6月11日### 技术报告**Qwen3 Embedding:通过基础模型推进文本嵌入和重排序**张岩昭* 李明鑫* 龙丁坤* 张鑫* 林欢 杨宝松 谢鹏军 杨安 刘大一恒 林俊阳 黄飞 周景仁 阿里巴巴集团通义实验室https://huggingface.co/Qwenhttps://modelscope.cn/organization/qwenhttps://github.com/QwenLM/Qwen3-Embedding### 摘要在这项工作中,我们介绍了Qwen3 Embedding系列,它基于Qwen3基础模型,在文本嵌入和重排序能力上较其前身GTE-Qwen系列有显著提升。利用Qwen3大语言模型在多语言文本理解和生成方面的强大能力,我们创新的多阶段训练流程将大规模无监督预训练与高质量数据集上的有监督微调相结合。有效的模型合并策略进一步确保了Qwen3 Embedding系列的鲁棒性和适应性。在训练过程中,Qwen3大语言模型不仅作为骨干模型,还在跨多个领域和语言合成高质量、丰富多样的训练数据方面发挥关键作用,从而增强了训练流程。Qwen3 Embedding系列提供了一系列模型规模(0.6B、4B、8B),用于嵌入和重排序任务,满足不同的部署场景,用户可以针对效率或效果进行优化。实证评估表明,Qwen3 Embedding系列在各种基准测试中取得了最先进的结果。值得注意的是,它在多语言评估基准MTEB上的文本嵌入任务,以及各种检索任务(包括代码检索、跨语言检索和多语言检索)中表现出色。为了促进可重复性并推动社区驱动的研究与开发,Qwen3 Embedding模型在Apache 2.0许可证下公开提供。文本块(相似度0.7870):在这项工作中,我们介绍了构建在Qwen3基础模型之上的Qwen3 Embedding系列模型。Qwen3基础模型同时发布了基础版和指令版模型,我们利用这些模型强大的多语言文本理解和生成能力,充分发挥它们在训练嵌入和重排序模型中的潜力。为了训练嵌入模型,我们实现了一个多阶段训练流程,包括大规模无监督预训练,然后在高质量数据集上进行有监督微调。我们还采用了与各种模型检查点的模型合并,以增强鲁棒性和泛化能力。Qwen3指令模型允许高效合成大规模、高质量、多语言和多任务的文本相关性数据集。这种合成数据用于初始的无监督训练阶段,而选择高质量、小规模的数据子集用于第二阶段的有监督训练。对于重排序模型,我们采用类似的两阶段训练方案,包括高质量有监督微调和模型合并阶段。基于Qwen3骨干模型的不同规模(包括0.6B、4B和8B),我们最终训练了三个文本嵌入模型和三个文本重排序模型。为了促进它们在下游任务中的应用,Qwen3 Embedding系列支持几个实用功能,如嵌入模型的灵活维度表示,以及嵌入和重排序模型的可定制指令。我们在跨越多个任务和领域的综合基准上评估了Qwen3 Embedding系列。实验结果表明,我们的嵌入和重排序模型取得了最先进的性能,在几个检索任务中与领先的专有模型具有竞争力。例如,旗舰模型Qwen3-8B-Embedding在MTEB多语言基准(Enevoldsen等人,2025)上获得70.58分,在MTEB代码基准(Enevoldsen等人,2025)上获得80.68分,超过了之前最先进的专有嵌入模型Gemini-Embedding(Lee等人,2025b)。此外,我们的重排序模型在一系列检索任务中提供了有竞争力的结果。Qwen3-Reranker-0.6B模型在许多检索任务中超过了以前的顶级模型,而更大的Qwen3-Reranker-8B模型表现出甚至更优越的性能,在多个任务上比0.6B模型的排名结果提高了3.0分。此外,我们包括一个建设性的消融研究,以阐明促成Qwen3 Embedding系列卓越性能的关键因素,提供对其有效性的见解。文本块(相似度0.7525):在现有多阶段训练框架的基础上,Qwen3 Embedding系列引入了以下关键创新:- **大规模合成数据驱动的弱监督训练**:与以前的工作(如GTE、E5、BGE模型)不同,其中弱监督训练数据主要从开源社区(如问答论坛或学术论文)收集,我们提出利用基础模型的文本理解和生成能力直接合成对数据。这种方法允许在合成提示中任意定义所需对数据的各种维度,如任务、语言、长度和难度。与从开放域来源收集数据相比,基础模型驱动的数据合成提供了更大的可控性,能够精确管理生成数据的质量和多样性,特别是在低资源场景和语言中。- **监督微调中高质量合成数据的利用**:由于Qwen3基础模型的卓越性能,合成数据的质量显著提高。因此,在第二阶段的监督训练中,选择性地合并这种高质量合成数据进一步增强了整体模型性能和泛化能力。- **模型合并**:受先前工作(Li等人,2024)的启发,在完成监督微调后,我们应用了基于球面线性插值(slerp)的模型合并技术。该技术涉及合并在微调过程中保存的多个模型检查点。此步骤旨在提高模型在各种数据分布上的鲁棒性和泛化性能。值得注意的是,重排序模型的训练过程不包括第一阶段的弱监督训练阶段。#### 3.3 合成数据集==============================问题:Qwen3的重排序模型和嵌入模型采用了相同的两阶段训练流程,请解释在第一阶段的弱监督训练中,重排序模型是如何利用合成数据进行优化的?------------------------------文本块(相似度0.8311):**重排序**:在表4中,我们呈现了各种重排序任务的评估结果(§4.1)。我们使用Qwen3-Embedding-0.6B模型检索前100个候选,然后应用不同的重排序模型进行进一步优化。这种方法确保了重排序模型的公平评估。我们的结果表明,所有三个Qwen3-Reranker模型与嵌入模型相比都提高了性能,并且超过了所有基线重排序方法,其中Qwen3-Reranker-8B在大多数任务中取得了最高性能。#### 4.3 分析为了进一步分析和探索Qwen3 Embedding模型训练框架的关键要素,我们从以下维度进行分析:**大规模弱监督预训练的有效性**:我们首先分析嵌入模型大规模弱监督训练阶段的有效性。如表5所示,仅在合成数据上训练的Qwen3-Embedding-0.6B模型(没有后续训练阶段,如第一行所示)与最终的Qwen3-Embedding-0.6B模型(如最后一行所示)相比,取得了合理且强大的性能。如果我们进一步移除弱监督训练阶段(即没有合成数据训练,如第二行所示),最终性能明显下降。这表明大规模弱监督训练阶段对于取得优异性能至关重要。**模型合并的有效性**:接下来,我们比较模型合并阶段引起的性能差异。如表5所示,没有使用模型合并技术训练的模型(第三行,使用数据采样来平衡各种任务)比最终的Qwen3-Embedding-0.6B模型(使用模型合并,如最后一行所示)表现差得多。这表明模型合并阶段对于开发强大的模型也很关键。文本块(相似度0.7630):在这项工作中,我们介绍了构建在Qwen3基础模型之上的Qwen3 Embedding系列模型。Qwen3基础模型同时发布了基础版和指令版模型,我们利用这些模型强大的多语言文本理解和生成能力,充分发挥它们在训练嵌入和重排序模型中的潜力。为了训练嵌入模型,我们实现了一个多阶段训练流程,包括大规模无监督预训练,然后在高质量数据集上进行有监督微调。我们还采用了与各种模型检查点的模型合并,以增强鲁棒性和泛化能力。Qwen3指令模型允许高效合成大规模、高质量、多语言和多任务的文本相关性数据集。这种合成数据用于初始的无监督训练阶段,而选择高质量、小规模的数据子集用于第二阶段的有监督训练。对于重排序模型,我们采用类似的两阶段训练方案,包括高质量有监督微调和模型合并阶段。基于Qwen3骨干模型的不同规模(包括0.6B、4B和8B),我们最终训练了三个文本嵌入模型和三个文本重排序模型。为了促进它们在下游任务中的应用,Qwen3 Embedding系列支持几个实用功能,如嵌入模型的灵活维度表示,以及嵌入和重排序模型的可定制指令。我们在跨越多个任务和领域的综合基准上评估了Qwen3 Embedding系列。实验结果表明,我们的嵌入和重排序模型取得了最先进的性能,在几个检索任务中与领先的专有模型具有竞争力。例如,旗舰模型Qwen3-8B-Embedding在MTEB多语言基准(Enevoldsen等人,2025)上获得70.58分,在MTEB代码基准(Enevoldsen等人,2025)上获得80.68分,超过了之前最先进的专有嵌入模型Gemini-Embedding(Lee等人,2025b)。此外,我们的重排序模型在一系列检索任务中提供了有竞争力的结果。Qwen3-Reranker-0.6B模型在许多检索任务中超过了以前的顶级模型,而更大的Qwen3-Reranker-8B模型表现出甚至更优越的性能,在多个任务上比0.6B模型的排名结果提高了3.0分。此外,我们包括一个建设性的消融研究,以阐明促成Qwen3 Embedding系列卓越性能的关键因素,提供对其有效性的见解。文本块(相似度0.7626):其中这些项表示与以下的相似性:(1) 正文档d_i^+,(2) K个硬负例d_i,k^-,(3) 其他批内查询q_j,(4) 与正文档d_i^+比较的其他批内文档d_j,(5) 与查询q_i比较的其他批内文档d_j。掩码因子m_ij旨在减轻假负例的影响,定义为:\[m_{i j}= \begin{cases}0 & if s_{i j}>s\left(q_{i}, d_{i}^{+}\right)+0.1 或 d_{j}==d_{i}^{+}, \\ 1 & 否则, \end{cases}\]其中s_ij是q_i, d_j或q_i, q_j的相应分数。对于重排序模型,我们优化定义为的监督微调(SFT)损失:\[L_{reranking }=-log p(l | \mathcal{P}(q, d)), (2)\]其中p(·|*)表示LLM分配的概率。标签l对于正文档是“是”,对于负文档是“否”。这个损失函数鼓励模型为正确标签分配更高的概率,从而提高排序性能。#### 3.2 多阶段训练多阶段训练方法是训练文本嵌入模型的常见实践(Li等人,2023;Wang等人,2022;Chen等人,2024)。这种策略通常从在包含噪声的大规模半监督数据上的初始训练开始,然后使用较小的高质量监督数据集进行微调。这个两步过程增强了嵌入模型的性能和泛化能力。大规模弱监督训练数据对模型的泛化做出了重大贡献,而后续阶段用高质量数据进行微调进一步提高了模型性能。嵌入模型的两个训练阶段都使用方程1中定义的优化目标,而重排序模型训练采用方程2中定义的损失函数作为优化目标。==============================问题:请详细描述附录A.1中提到的,为合成检索文本对所采用的两阶段生成流程(配置阶段和查询生成阶段)的具体步骤和目的。------------------------------文本块(相似度0.5096):给定一个**段落**和**角色**,从三个字段:角色、问题类型、难度中选择合适的选项,并以JSON格式返回输出。→ 首先,从候选者中选择可能对段落感兴趣的**角色**。然后选择角色可能针对段落提出的**问题类型**;最后,根据段落、角色和问题类型选择可能问题的**难度**。→角色:由输入**角色**给出问题类型:- 关键字:...- 获取知识:...- 摘要:...- 是或否:...- 背景:...难度:- 高中:...- 大学:... - 博士:...这里有一些例子<Example1> <Example2> <Example3>现在,根据用户的**段落**和**角色**生成**输出**,**段落**将是{语言}语言,**角色**将是英语。→ 确保仅生成内容为英语的JSON输出。**段落**:{段落} **角色**:{角色}在查询生成阶段,我们使用第一阶段选择的配置来指导查询的生成。此外,我们明确指定生成查询的所需长度和语言。使用的模板如下:给定一个**角色**、**段落**和**要求**,从**角色**的角度生成一个满足**要求**并可用于检索**段落**的查询。请以JSON格式返回结果。→这里有一个例子:<example>文本块(相似度0.4813):为了创建用于在各种相似性任务上训练模型的强大合成数据集,我们生成跨越检索、双语挖掘、分类和语义文本相似性(STS)等类别的多样化文本对。这些合成数据对的质量通过使用Qwen3 32B模型作为数据合成的基础模型来确保。我们设计了多样化的提示策略来提高生成数据的多样性和真实性。例如,在文本检索任务中,我们使用来自Qwen3的多语言预训练语料库合成数据。在数据合成过程中,为每个文档分配特定角色,以模拟潜在用户查询该文档的情况。这种用户视角的注入增强了合成查询的多样性和现实性。具体来说,我们使用检索模型从角色库中为每个文档识别前五个角色候选,并将这些文档与其角色候选一起呈现给提示。这指导模型输出最适合查询生成的角色配置。此外,提示包含各种维度,如查询类型(如关键字、事实、摘要、判断)、查询长度、难度和语言。这种多维方法确保了合成数据的质量和多样性。最后,我们创建了总共约1.5亿对多任务弱监督训练数据。我们的实验表明,用这些合成数据训练的嵌入模型在下游评估中表现异常出色,特别是在MTEB多语言基准中超过了许多以前的监督模型。这促使我们过滤合成数据以识别高质量对,以纳入第二阶段的监督训练。我们采用简单的余弦相似性计算来选择数据对,从随机采样的数据中保留余弦相似性大于0.7的对。最终,选择了约1200万高质量监督训练数据对用于进一步训练。文本块(相似度0.4745):### 5 结论在本技术报告中,我们介绍了Qwen3-Embedding系列,这是一套基于Qwen3基础模型的全面文本嵌入和重排序模型。这些模型旨在在广泛的文本嵌入和重排序任务中表现出色,包括多语言检索、代码检索和复杂指令遵循。Qwen3-Embedding模型建立在强大的多阶段训练流程之上,该流程将合成数据上的大规模弱监督预训练与高质量数据集上的有监督微调和模型合并相结合。Qwen3 LLM在跨多种语言和任务合成多样化训练数据方面发挥关键作用,从而增强了模型的能力。我们的综合评估表明,Qwen3-Embedding模型在各种基准上取得了最先进的性能,包括MTEB、CMTEB、MMTEB和几个检索基准。我们很高兴开源Qwen3-Embedding和Qwen3-Reranker模型(0.6B、4B和8B),使社区能够使用和构建它们。### 参考文献[参考文献部分略,保留原文格式]### A 附录#### A.1 合成数据我们构建了四种类型的合成数据——检索、双语挖掘、语义文本相似性和分类,以使模型在预训练期间适应各种相似性任务。为了确保多语言和跨语言的多样性,数据使用Qwen3 32B生成。下面是一个合成检索文本对的示例。检索数据使用文档到查询的方法合成。我们从Qwen3基础模型的预训练语料库中收集多语言语料库作为文档源。然后应用两阶段生成流程,包括:(1) 配置和 (2) 查询生成。在配置阶段,我们使用大型语言模型(LLM)确定合成查询的“问题类型”、“难度”和“角色”。候选角色从Persona Hub(Ge等人,2024)中检索,选择与给定文档最相关的前五个。此步骤旨在增强生成查询的多样性。使用的模板如下:==============================问题:Qwen3的重排序模型是如何将相似性评估构建为一个分类问题,并最终计算出相关性分数的?请描述其具体机制和数学表达式。------------------------------文本块(相似度0.7540):在以下部分中,我们描述模型架构的设计,详细说明训练过程,呈现Qwen3 Embedding系列的嵌入和重排序模型的实验结果,并通过总结关键发现和概述未来研究的潜在方向来结束本技术报告。### 2 模型架构嵌入和重排序模型的核心思想是以任务感知的方式评估相关性。给定查询q和文档d,嵌入和重排序模型基于指令I定义的相似性标准评估它们的相关性。为了使模型能够进行任务感知的相关性估计,训练数据通常组织为{I_i, q_i, d_i^+, d_i,1^-, ..., d_i,n^-},其中d_i^+表示查询q_i的正(相关)文档,d_i,j^-是负(不相关)文档。在不同的文本对上训练模型,拓宽了其对一系列下游任务的适用性,包括检索、语义文本相似性、分类和聚类。**架构**:Qwen3嵌入和重排序模型构建在Qwen3基础模型的密集版本上,有三种规模:0.6B、4B和8B参数。我们使用Qwen3基础模型初始化这些模型,以利用它们在文本建模和指令遵循方面的能力。每个模型配置的模型层、隐藏大小和上下文长度在表1中详细说明。**嵌入模型**:对于文本嵌入,我们使用具有因果注意力的LLM,在输入序列的末尾附加一个[EOS]标记。最终的嵌入来自对应于该[EOS]标记的最后一层的隐藏状态。文本块(相似度0.7526):为了确保嵌入在下游任务中遵循指令,我们将指令和查询连接成一个单一的输入上下文,而在使用LLM处理之前,文档保持不变。查询的输入格式如下:{指令} {查询}<|endoftext|>**重排序模型**:为了更准确地评估文本相似性,我们在单个上下文中使用LLM进行点式重排序。与嵌入模型类似,为了实现指令遵循能力,我们在输入上下文中包括指令。我们使用LLM聊天模板,并将相似性评估任务构建为二元分类问题。LLM的输入遵循如下模板:<|im_start|>system根据提供的查询和指令,判断文档是否符合要求。注意,答案只能是“是”或“否”。<|im_end|>→ <|im_start|>user<Instruct>: {指令}<Query>: {查询}<Document>: {文档}<|im_end|><|im_start|>assistant<|FunctionCallBegin|>\n\n</think>\n\n为了根据给定的输入计算相关性分数,我们评估下一个标记为“是”或“否”的可能性。这用数学表达式表示为:\[score(q, d)=\frac{e^{P(yes | I, q, d)}}{e^{P(yes | I, q, d)}+e^{P(no | I, q, d)}}\]文本块(相似度0.6868):**重排序**:在表4中,我们呈现了各种重排序任务的评估结果(§4.1)。我们使用Qwen3-Embedding-0.6B模型检索前100个候选,然后应用不同的重排序模型进行进一步优化。这种方法确保了重排序模型的公平评估。我们的结果表明,所有三个Qwen3-Reranker模型与嵌入模型相比都提高了性能,并且超过了所有基线重排序方法,其中Qwen3-Reranker-8B在大多数任务中取得了最高性能。#### 4.3 分析为了进一步分析和探索Qwen3 Embedding模型训练框架的关键要素,我们从以下维度进行分析:**大规模弱监督预训练的有效性**:我们首先分析嵌入模型大规模弱监督训练阶段的有效性。如表5所示,仅在合成数据上训练的Qwen3-Embedding-0.6B模型(没有后续训练阶段,如第一行所示)与最终的Qwen3-Embedding-0.6B模型(如最后一行所示)相比,取得了合理且强大的性能。如果我们进一步移除弱监督训练阶段(即没有合成数据训练,如第二行所示),最终性能明显下降。这表明大规模弱监督训练阶段对于取得优异性能至关重要。**模型合并的有效性**:接下来,我们比较模型合并阶段引起的性能差异。如表5所示,没有使用模型合并技术训练的模型(第三行,使用数据采样来平衡各种任务)比最终的Qwen3-Embedding-0.6B模型(使用模型合并,如最后一行所示)表现差得多。这表明模型合并阶段对于开发强大的模型也很关键。==============================问题:报告强调了使用Qwen3 32B模型合成大规模训练数据,请问在数据合成过程中,团队遵循了哪些具体的伦理准则或偏见缓解措施来确保生成数据的公平性和无害性?------------------------------文本块(相似度0.7065):在现有多阶段训练框架的基础上,Qwen3 Embedding系列引入了以下关键创新:- **大规模合成数据驱动的弱监督训练**:与以前的工作(如GTE、E5、BGE模型)不同,其中弱监督训练数据主要从开源社区(如问答论坛或学术论文)收集,我们提出利用基础模型的文本理解和生成能力直接合成对数据。这种方法允许在合成提示中任意定义所需对数据的各种维度,如任务、语言、长度和难度。与从开放域来源收集数据相比,基础模型驱动的数据合成提供了更大的可控性,能够精确管理生成数据的质量和多样性,特别是在低资源场景和语言中。- **监督微调中高质量合成数据的利用**:由于Qwen3基础模型的卓越性能,合成数据的质量显著提高。因此,在第二阶段的监督训练中,选择性地合并这种高质量合成数据进一步增强了整体模型性能和泛化能力。- **模型合并**:受先前工作(Li等人,2024)的启发,在完成监督微调后,我们应用了基于球面线性插值(slerp)的模型合并技术。该技术涉及合并在微调过程中保存的多个模型检查点。此步骤旨在提高模型在各种数据分布上的鲁棒性和泛化性能。值得注意的是,重排序模型的训练过程不包括第一阶段的弱监督训练阶段。#### 3.3 合成数据集文本块(相似度0.6673):### 5 结论在本技术报告中,我们介绍了Qwen3-Embedding系列,这是一套基于Qwen3基础模型的全面文本嵌入和重排序模型。这些模型旨在在广泛的文本嵌入和重排序任务中表现出色,包括多语言检索、代码检索和复杂指令遵循。Qwen3-Embedding模型建立在强大的多阶段训练流程之上,该流程将合成数据上的大规模弱监督预训练与高质量数据集上的有监督微调和模型合并相结合。Qwen3 LLM在跨多种语言和任务合成多样化训练数据方面发挥关键作用,从而增强了模型的能力。我们的综合评估表明,Qwen3-Embedding模型在各种基准上取得了最先进的性能,包括MTEB、CMTEB、MMTEB和几个检索基准。我们很高兴开源Qwen3-Embedding和Qwen3-Reranker模型(0.6B、4B和8B),使社区能够使用和构建它们。### 参考文献[参考文献部分略,保留原文格式]### A 附录#### A.1 合成数据我们构建了四种类型的合成数据——检索、双语挖掘、语义文本相似性和分类,以使模型在预训练期间适应各种相似性任务。为了确保多语言和跨语言的多样性,数据使用Qwen3 32B生成。下面是一个合成检索文本对的示例。检索数据使用文档到查询的方法合成。我们从Qwen3基础模型的预训练语料库中收集多语言语料库作为文档源。然后应用两阶段生成流程,包括:(1) 配置和 (2) 查询生成。在配置阶段,我们使用大型语言模型(LLM)确定合成查询的“问题类型”、“难度”和“角色”。候选角色从Persona Hub(Ge等人,2024)中检索,选择与给定文档最相关的前五个。此步骤旨在增强生成查询的多样性。使用的模板如下:文本块(相似度0.6588):为了创建用于在各种相似性任务上训练模型的强大合成数据集,我们生成跨越检索、双语挖掘、分类和语义文本相似性(STS)等类别的多样化文本对。这些合成数据对的质量通过使用Qwen3 32B模型作为数据合成的基础模型来确保。我们设计了多样化的提示策略来提高生成数据的多样性和真实性。例如,在文本检索任务中,我们使用来自Qwen3的多语言预训练语料库合成数据。在数据合成过程中,为每个文档分配特定角色,以模拟潜在用户查询该文档的情况。这种用户视角的注入增强了合成查询的多样性和现实性。具体来说,我们使用检索模型从角色库中为每个文档识别前五个角色候选,并将这些文档与其角色候选一起呈现给提示。这指导模型输出最适合查询生成的角色配置。此外,提示包含各种维度,如查询类型(如关键字、事实、摘要、判断)、查询长度、难度和语言。这种多维方法确保了合成数据的质量和多样性。最后,我们创建了总共约1.5亿对多任务弱监督训练数据。我们的实验表明,用这些合成数据训练的嵌入模型在下游评估中表现异常出色,特别是在MTEB多语言基准中超过了许多以前的监督模型。这促使我们过滤合成数据以识别高质量对,以纳入第二阶段的监督训练。我们采用简单的余弦相似性计算来选择数据对,从随机采样的数据中保留余弦相似性大于0.7的对。最终,选择了约1200万高质量监督训练数据对用于进一步训练。==============================
在检索到相关的文本块后,需要使用LLM进行回复。
相关的提示词模板为:
系统提示词为:
你是一个问答机器人。请严格根据下面提供的“参考文档”来回答问题。
如果文档中的信息不足以回答,直接回复“根据提供的文档,我无法回答该问题。”
用户提示词为:
参考文档:
---
{context_str}
---问题: {query}
llm = ReplyModel()
answers = []
for i, query in enumerate(queries):retrieved_chunks = []for doc_idx in top_k_indices[i]:retrieved_chunks.append(chunks[doc_idx])answer = llm.answer(query, retrieved_chunks)answers.append(answer)print(query)print(answer)print("=" * 30)
在后训练过程中,为什么Qwen3模型在经过“思考模式融合”和“通用RL”阶段后,在AIME’24和LiveCodeBench等具有挑战性的任务上性能反而有所下降?根据提供的文档,Qwen3模型在经过“思考模式融合”和“通用RL”阶段后,在AIME’24和LiveCodeBench等具有挑战性的任务上性能下降的原因是:模型在更广泛的通用任务上训练,这可能损害了其处理复杂问题的专业能力。文档中提到,这种退化是由于模型在更广泛的通用任务上训练,可能影响了其处理复杂问题的专业能力,因此选择接受这种性能权衡以增强模型的整体多功能性。==============================在针对轻量级模型的“强到弱蒸馏”管道中,在线蒸馏(Online Distillation)阶段的具体实现方式是什么?根据提供的文档,"强到弱蒸馏"管道中的在线蒸馏(Online Distillation)阶段的具体实现方式是:在初始的离线蒸馏阶段之后,学生模型在教师模型的引导下进行在线训练。在这个阶段,学生模型通过与教师模型的交互来进一步提升其性能和模式切换能力。然而,文档中并没有详细描述在线蒸馏阶段的具体实现细节,如具体的训练方法、数据处理方式或评估指标等。因此,基于现有信息,我们无法提供更详细的在线蒸馏阶段的实现方式。==============================Qwen3的开发团队在预训练数据筛选和模型后训练阶段,具体实施了哪些伦理审查(Ethical Review)流程来确保模型的安全性并减少偏见?根据提供的文档,没有具体提到Qwen3的开发团队在预训练数据筛选和模型后训练阶段实施了哪些伦理审查(Ethical Review)流程来确保模型的安全性并减少偏见。因此,我无法提供相关细节。==============================与Qwen2.5-MoE相比,Qwen3的MoE模型在架构设计上引入了哪些关键的改变?与Qwen2.5-MoE相比,Qwen3的MoE模型在架构设计上引入了以下关键的改变:1. **移除了共享专家**:Qwen3-MoE设计中不包含共享专家,而Qwen2.5-MoE则包含共享专家。2. **细粒度专家分割**:Qwen3-MoE实现了细粒度专家分割,这是基于Dai等人(2024)的工作。3. **全局批处理负载平衡损失**:Qwen3-MoE采用了全局批处理负载平衡损失(Qiu等人,2025),以促进专家专业化。4. **激活参数的优化**:实验结果表明,Qwen3 MoE基础模型仅使用1/5的激活参数即可实现与Qwen3密集型基础模型相似的性能,并且可以用少于1/2的激活参数和更少的总参数超越Qwen2.5 MoE基础模型。这表明Qwen3 MoE在激活参数使用上更加高效。==============================在“思考模式融合”阶段,Qwen3模型是如何通过显式训练(explicitly trained)来学习并实现“思考预算(Thinking Budget)”这一能力的?根据提供的文档,Qwen3模型的“思考预算(Thinking Budget)”能力并不是通过显式训练(explicitly trained)来学习的,而是应用思考模式融合的自然结果。文档中提到:“这种能力不是显式训练的,而是应用思考模式融合的自然结果。”因此,Qwen3模型在“思考模式融合”阶段通过融合思考模式和非思考模式的响应方式,自然地发展出了处理中间情况的能力,从而实现了“思考预算”功能。==============================相较于以往的多阶段训练框架(如GTE、E5),Qwen3 Embedding系列在训练流程中引入了哪三项关键创新?Qwen3 Embedding系列在训练流程中引入了以下三项关键创新:1. **大规模合成数据驱动的弱监督训练**:与以往从开源社区收集弱监督训练数据不同,Qwen3 Embedding系列利用基础模型的文本理解和生成能力直接合成对数据,提供了更大的可控性,能够精确管理生成数据的质量和多样性。2. **监督微调中高质量合成数据的利用**:在第二阶段的监督训练中,选择性地合并高质量合成数据,进一步增强了整体模型性能和泛化能力。3. **模型合并**:在完成监督微调后,应用基于球面线性插值(slerp)的模型合并技术,合并在微调过程中保存的多个模型检查点,以提高模型在各种数据分布上的鲁棒性和泛化性能。==============================Qwen3的重排序模型和嵌入模型采用了相同的两阶段训练流程,请解释在第一阶段的弱监督训练中,重排序模型是如何利用合成数据进行优化的?根据提供的文档,Qwen3的重排序模型在第一阶段的弱监督训练中利用合成数据进行优化。具体来说,Qwen3指令模型允许高效合成大规模、高质量、多语言和多任务的文本相关性数据集。这种合成数据用于初始的无监督训练阶段,而选择高质量、小规模的数据子集用于第二阶段的有监督训练。因此,在重排序模型的第一阶段,即大规模弱监督训练阶段,模型通过使用合成数据来优化其性能,这有助于提升模型在后续有监督微调阶段的性能。==============================请详细描述附录A.1中提到的,为合成检索文本对所采用的两阶段生成流程(配置阶段和查询生成阶段)的具体步骤和目的。{"角色": "英语","问题类型": "摘要","难度": "大学"}==============================Qwen3的重排序模型是如何将相似性评估构建为一个分类问题,并最终计算出相关性分数的?请描述其具体机制和数学表达式。Qwen3的重排序模型将相似性评估构建为一个二元分类问题,具体机制如下:1. **输入格式**:在重排序模型中,输入格式遵循模板:`<Instruct>: {指令}<Query>: {查询}<Document>: {文档}`。这个输入包含了指令、查询和文档三部分,用于指导模型判断文档是否符合查询的要求。2. **任务构建**:模型的任务是根据给定的指令和查询内容,判断提供的文档是否符合要求。答案只能是“是”或“否”,这将相似性评估转化为一个二元分类问题。3. **概率计算**:模型通过计算下一个标记为“是”或“否”的可能性来评估相关性。具体来说,模型会计算在给定指令、查询和文档的情况下,下一个标记是“是”的概率 $ P(yes | I, q, d) $ 和是“否”的概率 $ P(no | I, q, d) $。4. **相关性分数计算**:最终的相关性分数通过以下数学表达式计算得出:$$score(q, d) = \frac{e^{P(yes | I, q, d)}}{e^{P(yes | I, q, d)} + e^{P(no | I, q, d)}}$$这个公式是一个逻辑斯蒂回归函数,将概率转换为介于0和1之间的分数,其中分数越高表示文档与查询的相关性越强。==============================报告强调了使用Qwen3 32B模型合成大规模训练数据,请问在数据合成过程中,团队遵循了哪些具体的伦理准则或偏见缓解措施来确保生成数据的公平性和无害性?根据提供的文档,没有具体提到在数据合成过程中遵循了哪些伦理准则或偏见缓解措施来确保生成数据的公平性和无害性。因此,无法确定报告中是否涉及相关伦理准则或偏见缓解措施。==============================
最后一步,使用另一个性能较强的模型,对答案进行评估。
judge = LLMJudge()
judge.evaluate(queries, answers_gt, answers)
1 正在评估问题:在后训练过程中,为什么Qwen3模型在经过“思考模式融合”和“通用RL”阶段后,在AIME’24和LiveCodeBench等具有挑战性的任务上性能反而有所下降?--------------------{'scores': {'Correctness': 5, 'Completeness': 5, 'Clarity & Conciseness': 5}, 'reasoning': '生成答案准确复现了正确答案的两个核心观点:1) 通用任务训练损害复杂问题处理能力;2) 团队为多功能性接受性能权衡。在保持语义等价性的同时,完整覆盖了所有关键信息点,且语言表达简洁流畅,无冗余或歧义表述。', 'final_score': 5.0}====================2 正在评估问题:在针对轻量级模型的“强到弱蒸馏”管道中,在线蒸馏(Online Distillation)阶段的具体实现方式是什么?--------------------{'scores': {'Correctness': 1, 'Completeness': 1, 'Clarity & Conciseness': 4}, 'reasoning': "生成答案与正确答案存在严重偏差,正确答案明确指出文档中并未提供在线蒸馏阶段的具体实现细节,而生成答案却提供了具体的实现步骤,包括logits对齐、KL散度优化等内容,这些信息在提供的Ground Truth中并未提及,属于编造信息,因此Correctness得1分。由于生成答案引入了文档未涵盖的技术细节,导致与原始答案不一致,也未覆盖正确答案中强调的'信息缺失'这一核心要点,因此Completeness也得1分。语言表达较为清晰,技术术语使用得当,逻辑通顺,因此Clarity & Conciseness得4分。", 'final_score': 2.0}====================3 正在评估问题:Qwen3的开发团队在预训练数据筛选和模型后训练阶段,具体实施了哪些伦理审查(Ethical Review)流程来确保模型的安全性并减少偏见?--------------------{'scores': {'Correctness': 5, 'Completeness': 5, 'Clarity & Conciseness': 5}, 'reasoning': "生成答案准确反映了正确答案的核心结论(文档未提及具体伦理审查流程),完整传递了'无法回答'的关键信息。语言表达简洁明确,无冗余或歧义,符合问题直接要求的回应方式。", 'final_score': 5.0}====================4 正在评估问题:与Qwen2.5-MoE相比,Qwen3的MoE模型在架构设计上引入了哪些关键的改变?--------------------{'scores': {'Correctness': 3, 'Completeness': 1, 'Clarity & Conciseness': 5}, 'reasoning': '生成答案正确指出了Qwen3-MoE移除共享专家和采用全局批处理负载平衡损失两个关键点,但遗漏了细粒度专家分割和激活参数优化这两个正确答案中明确列出的核心架构改变。虽然已有信息表述准确,但关键信息缺失导致正确性扣分。完整性严重不足,因为仅覆盖了50%的核心要点。语言表达清晰简洁,无冗余或歧义。', 'final_score': 3.0}====================5 正在评估问题:在“思考模式融合”阶段,Qwen3模型是如何通过显式训练(explicitly trained)来学习并实现“思考预算(Thinking Budget)”这一能力的?--------------------{'scores': {'Correctness': 1, 'Completeness': 1, 'Clarity & Conciseness': 1}, 'reasoning': "生成答案完全回避了问题核心,未提供任何与正确答案相关的信息。正确答案明确指出Qwen3的'思考预算'能力来源于思考模式融合的自然结果而非显式训练,但生成答案既未否定显式训练也未提及融合机制,导致正确性和完整性严重缺失。同时,'无法回答'的表述未解释任何技术细节,语言质量低下且无实质内容,三维度均符合最低评分标准。", 'final_score': 1.0}====================6 正在评估问题:相较于以往的多阶段训练框架(如GTE、E5),Qwen3 Embedding系列在训练流程中引入了哪三项关键创新?--------------------{'scores': {'Correctness': 5, 'Completeness': 5, 'Clarity & Conciseness': 5}, 'reasoning': '生成答案在三个维度上均与正确答案完全一致。正确性方面,三项创新点的核心表述完全对应;完整性方面,所有关键信息(包括数据合成机制、质量筛选逻辑、模型合并技术)均完整覆盖;清晰度方面,分点结构明确,术语使用精准,且未引入冗余信息。唯一细微差异在于生成答案未明确提及『精确管理生成数据质量与多样性』,但『可控的弱监督训练数据』已隐含该含义,不影响语义等价性。', 'final_score': 5.0}====================7 正在评估问题:Qwen3的重排序模型和嵌入模型采用了相同的两阶段训练流程,请解释在第一阶段的弱监督训练中,重排序模型是如何利用合成数据进行优化的?--------------------{'scores': {'Correctness': 1, 'Completeness': 1, 'Clarity & Conciseness': 5}, 'reasoning': '生成答案未尝试回答问题,直接声明无法提供信息,导致正确性和完整性严重缺失。但语言表达清晰且简洁,无冗余或结构问题。', 'final_score': 2.3333333333333335}====================8 正在评估问题:请详细描述附录A.1中提到的,为合成检索文本对所采用的两阶段生成流程(配置阶段和查询生成阶段)的具体步骤和目的。--------------------{'scores': {'Correctness': 1, 'Completeness': 1, 'Clarity & Conciseness': 4}, 'reasoning': "生成答案详细描述了两阶段流程的步骤和目的,但与提供的【正确答案】完全无关。正确答案仅包含'角色:英语, 问题类型:摘要, 难度:大学'三个字段,未涉及任何关于两阶段生成流程的内容,因此在正确性和完整性维度严重偏离黄金标准。生成答案虽然语言表述清晰,但核心内容与正确答案无关联。", 'final_score': 2.0}====================9 正在评估问题:Qwen3的重排序模型是如何将相似性评估构建为一个分类问题,并最终计算出相关性分数的?请描述其具体机制和数学表达式。--------------------{'scores': {'Correctness': 5, 'Completeness': 5, 'Clarity & Conciseness': 4}, 'reasoning': "生成答案在核心机制和数学表达上与正确答案完全一致,准确描述了二元分类任务构建、概率计算流程及最终公式。输入格式部分虽未完全复现模板符号,但通过'LLM聊天模板'的概括性表述保留了关键逻辑,未影响核心信息传递。公式推导过程与正确答案等价,但'softmax类函数'的表述略逊于'逻辑斯蒂回归'的专业性,导致清晰度轻微扣分。", 'final_score': 4.666666666666667}====================10 正在评估问题:报告强调了使用Qwen3 32B模型合成大规模训练数据,请问在数据合成过程中,团队遵循了哪些具体的伦理准则或偏见缓解措施来确保生成数据的公平性和无害性?--------------------{'scores': {'Correctness': 5, 'Completeness': 5, 'Clarity & Conciseness': 4}, 'reasoning': "生成答案准确反映了文档未提及伦理准则的核心事实,与正确答案完全一致(正确性5分)。完整覆盖了'无法确定是否存在措施'的关键结论(完整性5分)。语言简洁但略显简略,未明确提及'文档未提供相关信息'这一中间逻辑,导致清晰度扣1分(清晰度4分)。", 'final_score': 4.666666666666667}====================最终得分:3.47
从结果可以看出,RAG最终的评分为:3.47分(满分5分)