Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Chain of Verification (CoVe)

验证链(CoVe)让 LLM 先起草答案,再提出有针对性的事实核查问题,独立回答每个问题,然后修改草稿。

验证链(CoVe)是一种提示方法,它通过让模型检查自己的草稿,减少大型语言模型(LLM)输出中的幻觉。模型先撰写初步答案,再规划简短的验证问题来检验其中的每个事实主张,独立于草稿回答这些问题,最后只保留验证结果支持的主张并撰写最终答案。Meta AI 的 Shehzaad Dhuliawala 及其同事在 2023 年的论文《验证链降低大型语言模型中的幻觉》中提出了该方法。它之所以有效,是因为相比在长答案中陈述同样的事实,模型回答简短而聚焦的问题时准确度更高:在论文的列表问题实验中,Llama 65B 列出的实体只有约 17% 正确,但同一模型正确回答单个验证问题的比例约为 70%。

验证链的工作方式#

CoVe 使用同一个模型完成四个步骤:

  1. 起草基准答复:模型照常回答查询。若要求列出出生于纽约市的政治人物,它可能会列出 Hillary Clinton、Donald Trump 和 Michael Bloomberg。
  2. 规划验证问题:模型阅读草稿,并为每项可核实的主张编写一个问题,例如“希拉里·克林顿出生在哪里?”和“迈克尔·布隆伯格出生在哪里?”
  3. 独立回答每个问题:模型会在不包含草稿的新提示中回答这些问题,以免只是重复之前的错误。克林顿出生于芝加哥,布隆伯格出生于波士顿,而特朗普出生于皇后区。
  4. 撰写修订后的最终答复:模型会根据答案修改草稿,删除或纠正所有未通过核实的主张;在这个例子中,最终名单只剩下特朗普。

第三步隔离各个问题的严格程度很重要。论文比较了四种变体:联合式会在仍包含草稿的同一个提示中完成规划和回答;两步式会在第二个不含草稿的提示中回答所有问题;分解式会为每个问题单独使用一个提示;分解加修订式则会额外明确检查每个答案是否符合原始主张。所有在验证提示中排除草稿的变体,其幻觉都少于联合式,因为模型一旦能看到自己的草稿,就倾向于重复其中的错误。

结果#

使用 Llama 65B 时,CoVe 将 Wikidata 列表问题的精确率从 0.17 提高到 0.36,并将闭卷 MultiSpanQA 基准上的 F1 从 0.39 提高到 0.48。在长篇人物传记任务中,factor+revise 变体将 FActScore(即有 Wikipedia 支持的原子事实所占比例)从 55.9 提高到 71.4,超过了 ChatGPT 报告的 58.7 和基于检索的 PerplexityAI 的 61.6。这些提升也带来了推理延迟方面的代价:因子化变体对每个验证问题都需要额外调用一次模型。

  • 思维链提示:让模型在回答前逐步推理,有助于解决逻辑和数学问题。CoVe 会在草稿生成后核查其中的事实陈述。
  • 检索增强生成(RAG):从一开始就以检索到的文档作为答案依据。原始 CoVe 只依赖模型自身的知识;如果通过搜索引擎或文档索引来回答验证问题,两者就能自然结合。
  • 语义熵:通过采样多个答案并衡量它们的含义差异,检测可能存在的幻觉。CoVe 则更进一步,会修正答案。
  • AI 辩论:两个模型分别为相反立场辩论,让裁判找出错误。CoVe 则由单个模型自行检查,不需要对手。

借助工具验证陈述#

验证问题不必依靠模型的记忆来回答。管线会将这些问题交给掌握真实信息的工具:查询公开事实的搜索引擎、存储公司文档的向量数据库,或用于验证图像相关陈述的视觉模型。当视觉语言模型生成图像描述时,Ultralytics YOLO26目标检测模型可以独立于草稿,根据图像描述回答每个“有多少”问题:

from collections import Counter

from ultralytics import YOLO

# Claims extracted from a draft caption: "A bus, four people, and a bicycle on a street"
draft_counts = {"bus": 1, "person": 4, "bicycle": 1}

# Answer each verification question with a detector that never sees the draft
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
detected = Counter(result.names[int(c)] for c in result.boxes.cls)

# Keep claims the detector confirms and mark the rest for revision
for name, claimed in draft_counts.items():
    verdict = "keep" if detected[name] == claimed else f"revise to {detected[name]}"
    print(f"How many '{name}'? Draft: {claimed}, detector: {detected[name]} -> {verdict}")

每一行输出都对应一个验证问题,其中包含草稿中的陈述、检测器独立给出的答案,以及最终图像描述采用的判定结果。

实际应用#

  • 医疗健康:总结医学文献的助手会在临床医生查看摘要前,通过单独提问核实药物名称、剂量和相互作用。
  • 问答:搜索和支持助手会检查列表答案、日期和人物传记事实;论文测得最大提升的正是这些类型的陈述。
  • 制造业报告:负责起草交接班报告的 LLM 会在提交报告前,将其中提及的每个缺陷与检查系统的日志进行核对。
  • 文档处理:从合同或发票中提取的值会逐个字段重新询问,并与首次提取结果进行比较。

局限性#

CoVe 能发现模型前后不一致地犯下的错误,但无法发现模型在所有上下文中都持有的错误认知,因为独立答案会重复同一个错误。它会检查事实陈述,却不会处理正确事实之间的错误推理,而且会增加每个答案所需的模型调用次数。论文中表现最好的变体仍有 28.6% 的传记原子事实缺乏支持,这是其 71.4 FActScore 的剩余部分。

Explore solutions

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来