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

Question Answering

问答 (QA) 系统会针对自然语言问题给出直接答案。涵盖抽取式、开放领域、生成式和视觉问答。

问答(QA)是自然语言处理(NLP)任务,目标是用答案本身回答以自然语言提出的问题,例如对“澳大利亚的首都是哪里?”回答“堪培拉”,而不是返回一组网页。QA 系统会理解问题,在段落、文档集合、数据库或自身参数中查找相关信息,然后返回或撰写答案。搜索引擎的答案框、虚拟助手、客户支持机器人,以及能够回答公司文档相关问题的大型语言模型(LLM)助手,都属于 QA 系统。

早期系统回答的是有关小型数据库的问题:BASEBALL(1961)能处理有关一个赛季美国联盟比赛的问题;LUNAR(1971)能回答地质学家有关阿波罗月球岩石样本的问题。TREC 问答赛道于 1999 年开始为开放领域 QA 提供基准测试。2011 年 2 月,IBM Watson 击败了《危险边缘!》冠军 Ken Jennings 和 Brad Rutter;它为每条线索生成大量候选答案,并使用数百种算法为每个答案的证据评分。

QA 系统的类型#

  • 抽取式 QA:选取给定段落中能够回答问题的文本片段。
  • 开放领域 QA:先在大型资料集合(例如整个 Wikipedia)中搜索相关段落,然后再作答。
  • 检索增强生成(RAG):在检索到的段落基础上,由 LLM 撰写答案,因此答案可以综合多个来源的事实并引用这些来源。
  • 闭卷 QA:根据模型权重中存储的知识作答,不使用任何文档,因此更难发现模型编造的答案。
  • 知识图谱 QA:将问题转换为针对实体和关系图谱或数据库的结构化查询。
  • 视觉问答(VQA):回答有关图像或视频的问题。

抽取式 QA 与 SQuAD#

斯坦福问答数据集(SQuAD)由 Pranav Rajpurkar 及其同事于 2016 年发布,使抽取式 QA 成为标准基准:众包标注人员围绕维基百科文章编写了超过 100,000 个问题,每个答案都是文章中的一个片段。逻辑回归基线的 F1 为 51.0%,而人类的 F1 为 86.8%。评分采用精确匹配,以及预测答案与参考答案之间基于 token 的 F1 分数;2018 年,BERT 的测试集 F1 达到 93.2。抽取式模型会为段落中的每个 token 评分,将其视为答案的可能起点或终点:

import torch
from transformers import AutoModelForQuestionAnswering, AutoTokenizer

# DistilBERT fine-tuned on SQuAD v1.1 for extractive question answering
model_id = "distilbert/distilbert-base-cased-distilled-squad"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForQuestionAnswering.from_pretrained(model_id)

context = (
    "SQuAD was released in 2016 by Pranav Rajpurkar and colleagues at Stanford University. "
    "Crowdworkers wrote more than 100,000 questions about Wikipedia articles, and every answer is a span of the article."
)
for question in ["Who released SQuAD?", "Where do the answers come from?", "How many languages does SQuAD cover?"]:
    inputs = tokenizer(question, context, return_tensors="pt", return_offsets_mapping=True)
    offsets = inputs.pop("offset_mapping")[0]
    with torch.no_grad():
        outputs = model(**inputs)

    # The answer is the context span between the highest-scoring start and end tokens
    start, end = outputs.start_logits.argmax(), outputs.end_logits.argmax()
    print(f"{question} -> {context[offsets[start][0] : offsets[end][1]]}")

模型回答“Pranav Rajpurkar”和“文章中的一个片段”。段落没有提到语言,但模型对第三个问题回答“100,000”,因为在 SQuAD 1.1 上训练的模型总会返回某个片段。SQuAD 2.0(2018)新增了超过 50,000 个看似可回答、实际无法回答的问题;一个在 SQuAD 1.1 上 F1 达到 86% 的系统,在该版本上的 F1 降至 66%,因为模型现在必须判断何时应弃答。

开放域 QA 与 RAG#

开放域系统将工作拆分给检索器和阅读器:检索器从数百万个段落中找出少量相关内容,阅读器则根据这些内容作答。DrQA(2017)使用 TF-IDF 检索维基百科文章,并通过循环神经网络阅读文章;密集段落检索(2020)用 BERT 嵌入和向量搜索取代 TF-IDF;RAG(2020)则将检索到的段落交给生成器来撰写答案。阅读器查看段落前,重排序器通常会先重新排列检索结果。RAG 论文作者发现,与没有检索的同类模型相比,以检索文本为条件能让生成语言更具体、多样且符合事实;引用段落也让读者能够核查答案是否存在幻觉。

视觉问答#

VQA 接收一张图像和一个问题,例如“有多少人在车站等车?”,需要使用结合计算机视觉与语言理解的多模态 AI,通常由视觉语言模型(VLM)实现。在 Ultralytics Platform Agents 中,LLM 模块会将图像及其上游上下文(例如 YOLO26 检测结果)与提示词一起发送给视觉语言模型,因此,关于场景的问题会结合检测器的结果作答。

  • 语义搜索: 返回与查询最相关的文档或段落,这些内容是 QA 系统用来生成答案的输入。
  • 聊天机器人: 管理多轮对话的交互界面,并在对话中使用 QA 回答事实性问题。
  • 文本生成: 根据提示词生成任意文本。生成式 QA 是受限于回答问题的文本生成,通常依据引用来源作答。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

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

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 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 的未来!

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