导读 本文将介绍知乎直答产品搭建过程中的实践经验。主要内容包括以下三大部分:
- 知乎直答产品介绍
- 实践经验分享
- 直答专业版介绍 分享嘉宾|王界武 知乎 AI 算法负责人 编辑整理|蔡郁婕 内容校对|李瑶 出品社区|DataFun
***01
知乎直答产品介绍****知乎直答是具有强社区属性的通用 AI 搜索产品,但并非社区版 AI 搜索。
知乎直答具有以下几大优势:
- 认真专业:与知乎专注专业内容生产的调性相符,严格把控参考来源与质量,确保回答认真且专业。
- 连接创作者:可在使用中关注、与创作者交流互动获取专业见解。
- 真实可信:依托知乎经用户校验的内容,有更高的公信力。
- 多元数据源:除自身图文数据,还引入了公开英文文献、维普等专业论文库及全网数据以补充知识。
02****
实践经验分享****在这一章节中,将分别对 query、retrieval、chunk、rerank、generation 和 evaluation 这些环节展开介绍,并分享性能优化实践。 1. 检索增强生成(RAG)框架检索增强生成(RAG)是一种将检索系统与大语言模型相结合的 AI 框架。用户提问时先检索知识库,将结果作为大模型上下文生成答案。这种方法可以很好地减少 AI 幻觉问题,确保答案的准确性,并且具备溯源性与更好的可解释性。
对比直接用大模型构建 AI 系统,RAG 在知识更新、时效性、可解释性等多方面优势显著,因此搭建 AI 问答系统首选 RAG 方案。
**2. ****Query 理解相关实践
**生产环境中,query 常常存在表述不完整、多重语义混杂、意图不明确等问题。针对 query 表述不完整的问题,需要进行语义补全。对于意图混杂的问题,会基于上下文对 query 进行改写。而对于 query 过于简短、意图不明确的情况,则通过多轮问答对 query 进行扩展。
知乎直答的初始版本仅支持单轮搜索,每次查询都是一个独立的交互过程。在用户反馈阶段,我们收到了大量关于上下文理解不足的反馈。因此我们快速迭代,实现了基于多轮问答上下文的 query 理解。我们专门微调了一个模型进行 query 改写。
我们将 query 扩展与搜索引擎进行了深度结合,从而降低了成本,并且增强了可控性。因为 query 扩展放到了搜索引擎内执行,所以可以避免多次调用搜索引擎,这样既减少了资源消耗,又可以更好地控制相关性、多样性等关键指标,以提高检索准确率。我们定向训练了一个模型来完成 query 扩展任务。
3. 召回方案知乎直答采用了多策略召回方案,包括语义召回、标签召回,以及在语义召回基础上的向量空间对齐。语义召回方面,基于知乎问答场景数据深度调优 BGE Embedding 模型,以提升检索质量。针对不同任务(如检索、语义相关性、聚类分类等)调优损失函数,采用不同损失函数并调整负采样策略等提升效果。 通过模型融合解决长文、短文语料混合训练效果不佳问题。下图中给出了一个示例,最左边是 base 模型,在此基础上基于长文语料微调了一个长文模型,同样微调了一个短文模型,再将三者融合,得到最终的模型。 下图给出了一组评测数据,其中五列为五个不同的评测任务,包括短文到长文的检索、短文到短文的检索等。可以看到 TextBgeFTQuery2Long 模型在长文检索上有显著优势,TextBgeFTQuery2Short 模型在短文检索上优于其它模型,而融合后的 TextBgeFTMixed 在几乎所有任务上都有着非常好的表现,这充分说明了模型融合的有效性。
除此之外,还有其他一些语义召回方面的经验,比如 Matryoshka 表征学习,一次训练让模型具备多维度输出能力;BGE-M3 的 dense+sparse 混合检索长文表现好且能降低索引压力;ColBERT 的延迟交互方式召回精度高但成本高,适用于高精度要求场景;1bit 量化能提升性能且召回效果损失小,具研发潜力。 标签召回方面,我们搭建了组合式标签提取方案。将大语言模型的推理能力与传统召回技术相结合,采用两阶段策略进行标签抽取。首先通过召回模型获取内容候选标签,再利用 LLM 进行深度语义分析和标签生成,确保更全面和准确的内容标签抽取。标签召回是一种极短文本匹配场景,我们基于特定场景训练了轻量级模型,专门用于从海量标签库中快速识别和提取相关标签。该模块具有高效召回、强语义理解、高可扩展性及零样本新增标签等优势。 在召回模型获得初步标签候选后,可以依托大模型的语义理解和生成能力,进一步选择更加符合输入文本语义的最终标签,提高标签抽取的准确性。这种二阶段的方式具有更强的自适应性和灵活性,当需要新增标签时,可以显著提升处理效率。 向量空间对齐的工作旨在解决非对称索引问题,通过对文档理解构建合成标题索引,实现 query 到 query 的检索使训练空间对齐,提升检索准确率。 下图中给出了一个示例:
**4. **Chunk 相关实践之所以做 chunk,主要目的是:
- 降低成本与延迟:通过 chunk 技术压缩上下文长度,可以显著降低推理计算成本,同时减少响应延迟,提升系统整体性能。
- 提升信息利用效率:大模型在处理过长上下文时容易出现「Lost in the Middle」现象,难以准确抓住关键信息。chunk 通过提炼核心内容,帮助模型更高效地利用有限的上下文窗口。 而不合适的 chunk 会带来如下一些风险:
- 语义连贯性受损:不当的 chunk 处理可能导致上下文割裂,引发模型产生错误理解和虚假信息。
- 信息完整性缺失:过度压缩可能造成重要信息丢失,导致模型无法提供完整准确的回答。
- 噪声干扰问题:在信息提取过程中可能引入无关信息,影响最终输出的质量和准确性。 最初的方案是基于固定窗口长度进行文档切分。该方案的特点为:
- 技术实现简单,处理速度快。
- 分块大小的选择直接影响效果,较大分块能保持完整语义,有助于理解全局内容;而较小分块处理更快,资源消耗更少。 这一方案面临的核心挑战是文档的多样性带来的问题。由于不同类型的文档和查询需求存在巨大差异,固定长度的分块策略难以同时满足语义完整性和处理效率的要求。该方案无法灵活适应不同场景,最终限制了系统的实际应用效果。进而,我们又探索了生成式 chunk,但未能成功落地。该方案的核心思路是不显式切分段落,而是直接使用大语言模型从原文中找出最相关的子串作为候选答案。也就是采用 End2End 的方式,解决灵活性和分块与问题相关性的问题。我们采用大语言模型+prompt 的方式合成 ranker,用约束解码的方式约束生成过程。 通过这一尝试,我们认识到性能优化是关键。推理延迟是核心挑战,为确保用户体验,我们必须最小化模型前向计算次数,每一次 forward 都需要严格控制计算开销。同时,我们还观察到大语言模型存在明显的最近信息偏好(recency bias),prompt 中的信息对模型评分的影响主要集中在序列的开始部分。在实践中发现评分模型具有局限性:✅评分模型在使用相同 prompt 时能够较好区分答案质量,高质量答案确实能获得更高分数❌但在前缀对比测试中表现不佳,同一个答案配上相关/无关前缀时的得分差异不明显。这反映了模型训练范式的局限,模型从未经过这种对比场景的训练。更合适的方案是归并式 chunk。包括三个步骤:相关度排序、片段合并和边界扩展。 下图展示了大致的流程,对于候选 chunk 会进行细粒度的切分,之后用相关性模型对这些 chunk 和 query 的相关性进行打分,再进行 rank、merge 和外推,最后对每一个文档仅生成一个 chunk。
**5. **Rerank 相关经验Rerank 方面主要关注的问题为以下几点:
- 关键信息感知:过多的上下文可能会引入更多的噪声,削弱 LLM 对关键信息的感知。因此需要通过相关性控制,确保生成的内容集中于最重要的信息。
- 多样性控制:冗余信息可能会干扰 LLM 的最终生成,因此需要通过多样性控制,确保生成内容具备丰富性和创新性。
- 提升生成内容权威度:结合知乎社区投票机制加权排序,可以提升生成内容的权威性和可信度,满足用户对高质量内容的需求。
6. Generation 相关经验生成模块是与用户交互的桥梁,是整个流程中至关重要的一环。我们在生成环节的经验主要包括:
- 上下文信息元数据增强:通过精心组织上下文结构,融入可验证的元数据信息(如来源、时间、作者等),显著提升输出内容的可信度和权威性。同时确保生成内容的准确性和连贯性。
- Planning 能力探索:探索大模型的 planning 能力,通过任务分解和推理链等技术,不断增强系统解决复杂多步骤问题的能力。重点提升对专业领域问题的处理水平。
- 模型优化与对齐:持续优化模型调优与对齐策略,通过细致的 badcase 分析和针对性训练,全面提升模型的指令理解和执行能力。确保生成结果始终符合预期标准和用户需求。 喂给模型的上下文中,会添加更丰富的元数据信息,以提升生成效果,包括时间维度元数据、用户互动数据,以及创作者专业背景信息等。 我们对复杂 query 的 planning 能力也进行了探索。传统 RAG 方案在处理复杂查询场景时存在局限性,如难以处理多步推理问题,存在知识幻觉,以及难以有效整合上下文信息等等。 针对这些问题,我们采用了基于 Plan X RAG 的方案,进行任务拆解、逐层推理,优化生成 DAG 过程,如预检索机制降低错误累积、精细化管理子任务等。 生成过程的模型优化:采用 DPO、step-DPO、PPO、GRPO 等对齐训练方式提升模型效果,注意强化学习方案问题;通过样本增强、拉齐等手段改善性能。
7. 评估机制评测结果可能与线上用户体验不符,受语言风格、评测人员主观差异、错误偏好等因素影响。
- 偏向语言风格:评测结果可能更多地反映了模型的语⾔⻛格,而不是其真实的能⼒。恭维、幽默或专业术语的使用都可能影响评测结果。
- 观点差异:不同的评测人对功能、价值、及重要性等问题可能有较大的主观观点差异,这会影响评测结果的一致性和可信度。
- 错误偏好:如果某个模型固定会犯某些错误,这些错误可能会在后续的评测中更容易被注意到,从而影响结果。 为了全面保障产品质量与可靠性,我们构建了一套多层次评估体系,包含自动化评估(利用大语言模型、偏好模型、历史 bad case 验证集合等多维度打分及检测相关问题)、多维人工评估(多机盲评、专员复检、GSB 评估保证客观公平、标准一致和稳定性),并且最后有 AB 实验最终确认,提升了评测效率和准确率。 具体的评测流程如下图所示:
8. 工程优化和成本控制包括系统架构升级、全链路监控体系和成本优化三个方面。系统基于 DAG 的任务编排架构,将核心模块算子化,便于应对新增需求,提升开发效率;并且实现了全链路监控体系,显著缩短了问题解决的时间。
成本优化方面,通过模型量化在基本不损失效果情况下实现了 50% 左右的成本降低;对垂直场景采用迁移手段将大模型方案转为专用模型方案,缩小模型尺寸同时保持 95% 以上专业性能。 03****
直答专业版介绍****知乎直答专业版的入口与知乎直答是一样的,在通用搜索下方,有专业搜索入口。 直答专业版具有如下特点:
- 引入优质数据源:知乎直答专业版引入了多种高质量的数据源,包括维普论文库、公开英文文献、知乎精选等内容,经过严格筛选确保内容专业可信。
- 海量论文期刊数据库:引入国内外海量的论文库和期刊库,用户可以全面搜索并获取相关原文内容,满足对高质量信息的需求。
- 支持学术研究和专业工作:这些优质的数据源为用户的学术研究和专业工作提供了坚实的基础和全面的信息支持。 在此基础上,专业版还为用户提供了强大的个性化知识管理功能,让用户可以构建和管理自己的专属知识库。主要功能包括:
- 文档上传:支持 PDF 等多种格式上传,系统可智能解析文档内容。单轮交互最多支持 99 个文档,满足专业需求。
- 智能解析:系统自动处理上传的文档内容,支持基于文档的智能问答功能。
- 定向问答:支持基于个人知识库的定向问答,帮助用户更高效地利用已有知识,打造结构化的知识体系。 同时,支持深度阅读,在检索到一些内容或是上传了一些内容后,可以开启深度阅读模式,对单篇文档进行问答。 为了支持深度阅读,我们自研了一套智能 PDF 解析方案,以提升阅读体验。 下一步规划主要包括以下几大方面:
- 融合:将直答与知乎社区深度融合,满足用户「找答案」的需求,提供更加丰富、全面、及时的内容。
- 多模态:拓展更加丰富的交互模式和富媒体结果展示,让用户获取信息更加便捷生动。
- 推理能力:Reasoning 能力 o1 化,使直答具备更强的解决复杂问题能力
- 专业化:不断优化专业版,满足科研群体的专业需求,提供极致的使用体验。 以上就是本次分享的内容,欢迎大家关注并使用知乎直答,一起探索 AI 搜索的无限可能!
分享嘉宾
INTRODUCTION
王界武
知乎
AI 算法负责人
硕士毕业于北京邮电大学,长期从事 NLP、推荐、搜索、商业等场景算法研发工作,目前就职于知乎,从事 AI 算法研发方向工作,聚焦于通过大模型 pretrain、post-train 等技术精准、全面的理解内容和用户,赋能公司各业务。