实现问答提取的7个项目与改进思路

本系列记录大模型 (LLMs) 以及 RAG 项目背景下的问答提取工程化相关背景、理论、技术与实践,分 3 篇(即基础入门、技术综述、项目与实践)。本文是最后一部分,主要是相关开源项目介绍、特点,实践优化思路。

摘要

介绍 7 个QA提取项目(论文)的特定、场景、思路。

以下是正文。

QA 提取开源项目

Github 上关于 QA 提取的资源并不多,检索到一部分还处于论文阶段。我们主要搜集了以下 7 个项目,总结如下:

  1. roberta-base-chinese-extractive-qa

    • 特点:此项目是基于 RoBERTa 基础模型的中文抽取式问答模型,经过了中文语料的微调。它支持 PyTorch 和 TensorFlow 格式,并提供了通过 Hugging Face Transformers 库直接使用的 API。该模型在 cmrc 2018、webqa 和 laisi 三个数据集上进行了训练。
    • 应用场景:适用于需要处理中文文本并从中抽取准确答案的应用场景。
    • 项目地址:https://gitee.com/hf-models/roberta-base-chinese-extractive-qa
  2. OneStop QAMaker

    • 特点:OneStop 采用了一种全新的端到端方法来生成问答对,而不是传统的流水线方式。它直接优化了问题生成和答案提取之间的兼容性,确保生成的问题和对应的答案更加匹配。此外,OneStop 只需要一个模型就能完成复杂的 QA 生成任务,这使得它在工业环境中更容易部署。
    • 应用场景:适合于那些需要高质量且相互匹配的问答对的数据集构建任务。
    • 论文地址:OneStop QAMaker: Extract Question-Answer Pairs from Text in a One-Stop Approach
  3. Question Extractor

    • 特点:利用非微调的语言模型如 ChatGPT 自动从现有文本中提取问答对。它可以处理长文档,并实现了并发处理以提高效率。项目还支持智能文本分割,当文本过长时会沿 Markdown 标题进行分割。
    • 性能表现:能够在 6 分钟内处理完 NERSC 文档集(318 个 Markdown 文件),生成 8005 个问答对,仅需$29 的成本。(注:这个项目是采用的收费接口,因此对于那些离线部署的场景不可用!)
    • 潜在改进:项目自述提到这些——考虑引入 GPT-4 来提升答案质量,实现中间结果保存以便恢复中断的任务,以及减少对 Langchain 的依赖。
    • 应用场景:适用于需要快速生成大量高质量问答对的研究人员和开发者。
    • 项目地址:https://github.com/nestordemeure/question_extractor
  4. WikiHowQAExtractor-mnbvc

    • 特点:该项目旨在从 WikiHow 页面中抽取中文/英文问答数据。它可以接受 HTML 文件或 CSV 文件作为输入,输出为 JSONL 格式的文件。每个问答条目包含问、答、来源等信息,且能够处理超过 500 MB 大小的结果文件。
    • 应用场景:场景受限,特别适合用于创建教育类内容或者帮助文档的知识库。
    • 项目地址:https://github.com/wanicca/WikiHowQAExtractor-mnbvc
  5. Haystack Extractive QA Pipeline

    • 特点:Haystack 是一个灵活的框架,允许用户轻松地构建和运行各种 NLP 工作流,包括问答系统。其抽取式问答管道可以使用预训练的模型来定位文档中的确切答案位置,保证了较高的准确性。
    • 应用场景:非常适合希望集成最先进的 NLP 技术到自己应用中的开发者,尤其是那些关注可解释性和高精度的应用。
    • 项目地址:https://github.com/deepset-ai/haystack
  6. synthetic-LLM-QA-dataset-generator

    • 特点:用于生成合成问答对(QA pairs)的开源工具,特别设计用于增强和扩展现有的语言模型训练数据集。该项目利用预训练的语言模型(如 GPT 或 BART),通过提供上下文和问题模板,自动生成高质量的问答对。其核心特点是高度可定制化,用户可调整生成参数、选择不同的模型和提示策略,以适应特定领域的需求。此外,该工具支持批量处理,能在短时间内生成大量多样化的 QA 对,显著减少人工标注的工作量。项目还提供了详细的日志记录和评估功能,帮助用户监控生成过程并确保数据质量。
    • 应用场景:适用于需要大规模高质量问答数据的场景。例如,在开发和训练对话系统、聊天机器人时,它可以快速生成大量的训练样本,提升模型的泛化能力和响应质量。在教育领域,教师可以使用该工具从教材或讲义中生成练习题和测试题,帮助学生更好地理解和掌握知识点。
    • 项目地址:https://github.com/nalinrajendran/synthetic-LLM-QA-dataset-generator
  7. QA-Pair-Generator

    • 特点:一个用于自动生成问答对(QA pairs)的开源工具,具备以下关键特性:基于预训练模型:利用 BERT 和 T 5 等预训练语言模型,生成高质量的问题和答案。任务学习框架:整合问题生成和答案提取,确保 QA 对的一致性和相关性。多种输入格式支持:处理纯文本、HTML 和 CSV 文件,适应不同数据源。灵活配置:用户可调整模型参数,如选择不同的预训练模型、控制生成问题数量等。高效批处理:快速生成大量 QA 对,适用于大规模数据集构建。
    • 应用场景:这自动构建训练数据集、知识库构建、文本摘要与理解。
    • 项目地址:https://github.com/MalaiarasuGRaj/QA-Pair-Generator

不同 QA 提取项目各有侧重,有的专注于特定语言支持,有的则强调生成过程中的智能化和高效性;而有些则为了满足特定类型的内容需求而设计。

改进点

上面有一篇是论文提出的 OneStop QAMaker 框架:

  • 传统方法:大多数现有的 QA 对生成方法采用的是流水线式方法,即先选择最有可能的答案片段(answer span),然后根据该答案生成相应的问题。这种方法忽略了问题生成与答案提取之间的联系,可能导致生成的 QA 对不兼容。
  • OneStop 方法:OneStop 模型直接优化了联合目标 P(q,a∣d)P(q,a∣d),即同时生成问题 q 和其对应的答案片段 a,并且这两个任务在生成过程中相互影响。具体来说,答案提取任务会促使问题生成模型生成更易回答的问题,而问题生成任务则会增强答案提取模型的表现。
  • 由于 OneStop 模型将问题生成和答案提取整合到了一个单一的模型中,因此相比于传统的流水线方法,它在训练和推理阶段都更加高效。此外,OneStop 模型的参数量相对较少,使得它在工业场景中更容易部署和扩展。

实践经验

  1. 构建高质量的知识库:知识库的质量直接影响问答系统的性能,“Garbage in, garbage out” 说明如果你输入的是无用或低质量数据,那输出的结果也将是无用或错误的。

  2. 加强语义理解:利用语义角色标注、实体链接等技术,深入理解用户问题的语义信息,提高答案的准确性和相关性。

  3. 智能选择语境:根据用户历史问题和兴趣,智能推荐相关问题或答案,提升用户满意度;在某些领域中,只有代入语境才能准确解读问题的含义。

  4. 模型微调:利用大模型开发与服务平台,对语义理解模型、答案生成模型等进行微调,提升模型的准确性和泛化能力。

  5. 性能监控与调优:采用性能监控工具对系统进行实时监控,及时发现并解决性能瓶颈。

关联文章

Part 1 入门介绍
Part 2 技术综述

内容概要:本文介绍了一种名为ChatKBQA的新颖框架,专注于提升基于知识库的问答系统性能,尤其关注于解决传统KBQA方法中存在的三个挑战:知识检索效率低下、检索错误对语义解析的影响以及复杂性和低效率的问题。ChatKBQA通过先生成再检索的方法改进了传统的工作流程。它利用了大规模预训练的语言模型(LLMs)的能力,通过对这些模型进行指令调优和逻辑形式的预测来实现这一目的。此外,研究还证明了无监督实体和关系匹配的有效性。ChatKBQA在两个基准数据集上的实验显示出了卓越的效果,达到了最新的状态记录表现水平,并引入了新的图形查询思维范式(Graph Query of Thoughts),进一步提高了基于KG的知识获取能力。 适合人群:从事自然语言处理研究或者对知识图谱和问答系统的开发感兴趣的科研工作者和技术专家; 使用场景及目标:主要应用于需要从大量的知识基(如Freebase、Wikidata 和 DBpedia等构建的知识图谱中提取精确答案的任务;旨在改进现有KBQA系统的不足,为用户提供更好的交互体验并提供更加直观合理的解释路径。 其他说明:该研究展示了大型语言模型结合知识图表可以显著提高任务准确性的同时也能保持较好的灵活性。同时,ChatKBQA所具有的“插拔特性”使得它可以很容易适应不同的LLMs以及其他模块替换,从而增强了模型的实际应用价值。对于未来LLMs+KG的发展方向提供了新的思路和启示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1024点线面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值