跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

WEBCPM 技术解析:交互式中文长文本问答框架

解析了 WEBCPM 交互式中文长文本问答框架的技术细节。该方案集成 WebGPT 和 WebGLM 思想,利用 Bing 搜索 API 完成多轮交互。核心包含行为规划、查询改写、摘要抽取和信息聚合四个模块。文章对比了 Interactive 与 Pipeline 两种实现方案的优劣,指出 Pipeline 方案因支持并发处理和模块解耦更易落地。此外,介绍了 Span 抽取机制以降低延迟,以及通过引入无关事实噪声训练提升模型对噪声上文的判别能力,最终在 LFQA 任务上取得显著效果。

信号故障发布于 2025/2/7更新于 2026/10/27113 浏览
WEBCPM 技术解析:交互式中文长文本问答框架

WEBCPM 技术解析:交互式中文长文本问答框架

背景与概述

WEBCPM (Web-based Chinese Pre-trained Model) 是近期提出的一项针对中文长文开放问答(Long-form Question Answering, LFQA)的研究成果。该研究旨在解决传统搜索引擎在回答复杂、多步骤问题时的局限性,通过构建模型与搜索引擎的多轮交互机制,完成从信息检索到答案生成的全过程。

该方案集成了 WebGPT 和 WebGLM 的部分设计思想,利用 Bing 搜索 API 作为外部知识源。研究团队招募了 23 名标注人员,通过与搜索引擎进行多轮交互,收集回答问题所需的支撑性事实数据。数据集来源于 Reddit 上的英文 QA 对转译成的中文数据。选择 Reddit 而非知乎或百度知道,是因为后者经过人工处理的答案往往过于完善,导致单轮搜索即可获取结果,无法有效模拟多轮搜索的交互难度。

基于人工标注的搜索数据,研究团队微调了一个 10B 参数的 CPM 模型,并在 LFQA 任务上取得了显著效果。

整体架构

WebCPM 的整体框架包含四个核心模块,协同工作以完成复杂的问答任务:

  1. Action (行为规划):决定下一步操作。
  2. Search (查询改写):优化搜索关键词。
  3. Retriever (摘要抽取):从网页内容中提取关键信息。
  4. Synthesis (信息聚合):整合信息生成最终答案。

以下将详细解析各模块的设计原理与实现细节。

1. Action:行为规划

行为规划模块的核心目标是让模型学习人类与搜索引擎交互的行为链路。针对交互式搜索场景,WEBCPM 定义了包括搜索、页面加载、页面下滑等在内的 10 种具体行为。

状态表示

为了预测下一步动作,系统需要将当前状态转化为文本表述,并输入到分类模型中。状态描述包含以下要素:

  • 最初的问题:用户输入的原始 Query。
  • 当前的搜索 Query:最近一次执行的搜索词。
  • 历史 Action 序列:过去执行的操作记录。消融实验证明这是最重要的特征之一。
  • 历史全部摘要内容:之前步骤中已提取的关键信息拼接。
  • 上一步搜索界面:上一步页面展示的所有标题和摘要的文本拼接。
  • 当前搜索界面:当前页面展示的所有标题和摘要的文本拼接。
  • 剩余 Action 步骤:限制的最大操作步数。
指令样本构建

状态信息被拼接成特定的 Prompt 格式,用于训练分类模型。以下是构建输入数据的逻辑示意:

def make_input(self, info_dict, type="action"):
    context_ids = ""
    
    # 定义辅助函数处理空值
    def convert_nothing(info):
        return "无" if len(info) == 0 else info
    
    
    context_ids +=  + info_dict[] + 
    context_ids +=  + convert_nothing(info_dict[]) + 
    
    
    last_few_actions = 
     past_action  info_dict[]:
         past_action != []:
            last_few_actions += past_action
    
    
    context_ids +=  + convert_nothing(info_dict[]) + 
    context_ids +=  + convert_nothing(info_dict[]) + 
    context_ids +=  + convert_nothing(info_dict[]) + 
    
    
    context_ids +=  + (info_dict[]) + 
    
    
      == :
        context_ids += 
         idx, k  (.action2idx):
            context_ids += .action2idx[k]
             idx != (.action2idx) - :
                context_ids += 
        context_ids += 
        context_ids +=  + convert_nothing(last_few_actions) + 
        context_ids += 
      == :
        context_ids += 
      == :
        context_ids += 
    
    next_action = info_dict[]
     context_ids, next_action
# 拼接问题与摘要
"问题:\n"
"question"
"\n"
"摘要:\n"
"quotes"
"\n"
# 拼接历史操作
""
for
in
"past_actions"
if
# 拼接搜索上下文
"当前搜索:\n"
"title"
"\n"
"上回界面:\n"
"past_view"
"\n"
"当前界面:\n"
"text"
"\n"
# 剩余步数
"剩余操作步数:"
str
"actions_left"
"\n"
# 根据类型添加不同指令
if
type
"action"
"可选操作:"
for
in
enumerate
self
self
if
len
self
1
";"
"\n"
"历史操作:"
"\n"
"下一步操作:"
elif
type
"query"
"请生成新的合适的查询语句:"
elif
type
"abstract"
"请对当前界面内容摘取和问题相关的内容:"
"next_action"
return
Interactive 与 Pipeline 方案对比

源码提供了两种实现路径:

  1. Interactive 方案:每一步执行什么行为由 Action 模型动态预测。Query 改写、摘要等模块会获得之前所有步骤的输出作为上文,进行条件文本生成。这种方式更贴近人类思考过程,适合串行依赖强的任务。
  2. Pipeline 方案:行为链路固定为 Query 改写 -> 搜索 Top-K -> 页面摘要 -> 整合回答。不需要 Action 模型,各模块简化为不依赖上文的无条件生成任务。

虽然 Interactive 方案理论上能获得更优解,但在实际落地中,Pipeline 方案更具优势。因为 Pipeline 模型的无条件生成使得每一步可以并发处理,更容易部署。且各模块独立优化,相互解耦。因此,后续介绍均以 Pipeline 方案为主。

2. Search:Query 改写

Query 改写模块是一个 Seq2Seq 文本生成模型,其本质类似于 Self-Ask 的自我提问拆解。主要解决两个问题:

  • Decompose (拆解):用户问题通常包含多个并联或串联的内容,需要拆解为子 Query。例如,"涨幅最高的板块成交量如何?"需拆解为"涨幅最高的板块" + "XX 板块成交量"。
  • Rephrase (改写):用户原话可能不适配搜索引擎,需改写成关键词明确的 Query。例如,"微软的 new bing 上线了,使用体验如何?"可改写为"new bing 使用体验"。

该模型使用了 WebCPM 提供的训练数据进行微调,能够生成高质量的改写 Query。

3. Retriever:摘要抽取

Retriever 负责从网页正文中抽取与 Query 相关的内容,属于阅读理解或抽取式摘要任务。相比依赖搜索 API 直接提供的 snippet,自定义抽取允许针对场景设计长度和段落组合策略。

为了降低推理延迟,WebCPM 采用了类似 Span 抽取的方案。解码器仅解码应当抽取段落的第一个字和最后一个字。

示例:

  • Query: 麦田怪圈是什么?
  • Content: 麦田怪圈(Crop Circle),是指在麦田或其它田地上...产生出来的几何图案...
  • 目标抽取第一句
  • Fact: 麦田怪圈(Crop Circle),是指在麦田或其它田地上,通过某种未知力量(大多数怪圈是人类所为)把农作物压平而产生出来的几何图案

模型输出结果为起始字符和结束字符(如:起始字符:麦 - 结束字符:案)。如果首尾匹配到多处文本,则取最长匹配段落。这种方案在 Pipeline 和 Interactive 模式中的样本构建方式略有不同,仅在互动式样本构建中采用了类 Span 抽取方案。

4. Synthesis:信息聚合

Synthesis 模块负责整合 Search 和 Retriever 得到的多个 Fact,拼接作为上文,通过人工标注的答案,让模型学习如何基于多段事实生成一致、流畅、基于内容的长回答。

噪声鲁棒性训练

为解决模型在自动检索过程中收集到无关信息从而影响推理结果的问题,WebCPM 在构建指令集时引入了噪声增强策略:

  1. 在人工收集的每个 Query 对应的多个摘要 Fact 基础上。
  2. 从其他样本中随机采样同等量级的无关上文。
  3. 将原始事实与随机无关事实 Shuffle 后拼接作为输入。
  4. 训练模型区分相关事实和无关事实。

论文对比了加入无关 Fact 与只使用相关 Fact 微调后的模型效果差异。结果显示,只使用相关内容的 Baseline 模型偏好率为 18%,而加入随机无关内容微调后的模型偏好率提升至 43.7%。这证明了引入无关上文训练确实能显著提升模型对噪声上文的判别能力。

总结

WEBCPM 通过构建交互式搜索框架,有效解决了中文长文开放问答中的信息获取难题。其核心创新在于将搜索过程建模为多步决策任务,并通过噪声注入训练提升了模型的抗干扰能力。尽管 Interactive 方案在理论上具有灵活性,但 Pipeline 方案因其简洁性和易落地性成为更优的工程选择。该框架为后续大模型结合外部工具(Tool Learning)提供了重要的参考范式。

目录

  1. WEBCPM 技术解析:交互式中文长文本问答框架
  2. 背景与概述
  3. 整体架构
  4. 1. Action:行为规划
  5. 状态表示
  6. 指令样本构建
  7. Interactive 与 Pipeline 方案对比
  8. 2. Search:Query 改写
  9. 3. Retriever:摘要抽取
  10. 4. Synthesis:信息聚合
  11. 噪声鲁棒性训练
  12. 总结

更多推荐文章

查看全部
  • 鸿蒙金融理财全栈项目:合规审计优化与数据产品变现
  • JavaScript 窗口、文档及表单对象操作示例
  • OpenCode 升级指南:从旧版到新架构的完整迁移方案
  • EasyLink 文档解析实战:让非结构化数据为AI所用
  • OpenRouter 入门:统一接口调用 500+AI 模型实战
  • CPU 的局部性原理:高性能编程的核心基础
  • 基于 LLaMA-Factory 的 GLM-4-9B-Chat LoRA 微调实战
  • KingbaseES 用户权限隔离功能实现与实战
  • C++中 memcpy 和赋值拷贝的核心区别
  • IDA Pro macOS 版本安装与配置指南
  • RAG 进阶:多模态图片检索技术实践
  • 渗透测试详解:核心概念、流程与实战方法
  • Linux 进程替换详解:从 fork 到 exec 的完整链路
  • 云电脑与传统 PC:3A 游戏与 AI 训练成本及性能对比
  • 基于 Java+Vue+MySQL 的东北特产销售系统设计与实现
  • B 树与 B+ 树详解:原理、实现及 MySQL 索引应用
  • Faster-Whisper 本地部署:实现实时语音转文本实战指南
  • XR 技术分享:三维实时渲染与 VR 全景视频的共生
  • RoVer:机器人奖励模型作为 VLA 模型的测试时验证器
  • AIGC 内容创作方法论:基于爆款短片《牌子》的深度拆解

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online