NLP问答系统:使用 Deepset SQUAD 和 SQuAD v2 度量评估

目录

一、说明

二、Deepset SQUAD是个啥?

三、问答系统(QA系统),QA系统在各行业的应用及基本原理

3.1 医疗

3.2 金融

3.3 顾客服务

3.4 教育

3.5 制造业

3.6 法律

3.7 媒体

3.8 政府

四、在不同行业使用QA系统的基本原理

五、关于 Deepset deepset/minilm-uncased-squad2 模型

5.1 以下是如何使用 deepset/minilm-uncased-squad2 的一些示例:

5.2 以下是对 deepset/minilm-uncased-squad2 的一些见解:

5.3 以下是使用 deepset/minilm-uncased-squad2 的一些优点:

5.4 以下是使用 deepset/minilm-uncased-squad2 的一些缺点:

六、关于 SQuAD v2 指标

6.1 以下是有关 SQuAD v2 指标的一些关键见解:

6.2 以下是如何使用 SQuAD v2 指标的一些示例:

七、使用 Deepset minilm-uncased-squad2 模型和 SQuAD v2 指标评估进行问答

7.1 第 1 步 — 安装

7.2  第 2 步 — 构建问答管道

7.3 第 3 步 — 打印问答模型的详细信息

7.4 第 4 步 — 设置问答的上下文

7.5 第 5 步 — 使用问答管道检查 QA

7.6 第 6 步 — 使用 SQuAD v2 指标进行评估


一、说明

        在本文中,我们将研究使用 Deepset 的 SQUAD2 模型进行问答以及使用 SQuAD v2 指标评估模型,我们将使用 model — deepset/minilm-uncased-squad2。

我们将按以下顺序讨论这些主题:

1. 问答系统(QA系统),QA系统在各行业的应用及基本原理

2. 关于 Deepset minilm-uncased-squad2 模型

3. 关于 SQuAD v2 指标

4. 使用 Deepset minilm-uncased-squad2 模型和 SQuAD v2 指标评估进行问答 [应用人工智能]

二、Deepset SQUAD是个啥?

        Deepset SQUAD是一个基于深度学习的阅读理解任务,旨在回答关于给定段落的问题。该任务基于斯坦福大学发布的SQuAD(Stanford Question Answering Dataset)数据集,该数据集包含一系列问题和与之对应的答案,以及相关的段落文本。

        Deepset SQUAD通常指的是使用深度学习方法(如Transformer模型)在SQuAD数据集上进行训练和评估,以实现阅读理解任务。通过给定一个问题和一个相关的段落文本,模型需要预测出最可能的答案。

        在训练过程中,模型会学习理解文本语境、定位关键信息以及生成准确的答案。这种模型可以在各种领域和应用中发挥作用,例如智能客服、搜索引擎优化、信息检索等。

        Deepset SQUAD任务的成功取决于模型的能力去理解和推理文本信息,因此需要大规模的数据集和强大的深度学习模型来取得良好的性能。近年来,随着Transformer模型(如BERT、RoBERTa、BERT-large等)的发展,Deepset SQUAD任务在自然语言处理领域取得了显著的进展。

三、问答系统(QA系统),QA系统在各行业的应用及基本原理

        问答系统(QA 系统)是自然语言处理 (NLP) 系统,经过训练可以以全面和信息丰富的方式回答问题。QA系统用于各种行业,包括:

3.1 医疗

        QA 系统可用于为患者提供有关其病情、治疗方案和药物的信息。QA系统还可用于帮助医疗保健专业人员诊断疾病并制定治疗计划。

        例如,患者可以向 QA 系统询问特定疾病的症状、不同治疗方案的风险和益处或特定药物的副作用。医疗保健专业人员可以向 QA 系统询问有关特定疾病的最新研究或针对特定患者的最有效治疗计划的信息。

3.2 金融

        QA 系统可用于为投资者提供有关股票、债券和其他金融产品的信息。QA系统还可用于帮助金融分析师做出投资决策和开发财务模型。

        例如,投资者可以向 QA 系统询问特定公司的财务业绩、投资特定资产类别的风险和回报,或分配投资组合的最佳方式。金融分析师可以向 QA 系统询问有关最新经济趋势、特定事件对股票市场的影响或对特定金融产品进行建模的最佳方式的信息。

3.3 顾客服务

        QA系统可用于回答客户有关产品和服务的问题。QA 系统还可用于帮助客户服务代表解决客户问题并提供更好的客户支持。

        例如,客户可以向 QA 系统询问特定产品的功能和优势、如何使用特定产品或特定产品的退货政策。客户服务代表可以向 QA 系统询问有关客户帐户、客户订单状态或解决客户问题的最佳方法的信息。

3.4 教育

        QA 系统可用于为学生提供有关其课程作业的信息,回答他们有关课程材料的问题,并帮助他们准备考试。QA 系统还可用于帮助教师创建和提供教育内容。

        例如,学生可以向 QA 系统询问教科书中特定章节中的关键概念、解决特定数学问题所涉及的步骤或为即将到来的考试学习的最佳方式。教师可以向 QA 系统询问有关特定主题的信息、帮助创建课程计划或对其教材的反馈。

3.5 制造业

        QA 系统可用于为员工提供有关制造过程、产品规格和质量控制程序的信息。

3.6 法律

        QA 系统可用于为律师提供有关判例法、法规和法规的信息。

3.7 媒体

        QA系统可用于为记者提供有关时事、新闻报道和感兴趣主题的背景信息。

3.8 政府

        QA 系统可用于为公民提供有关政府服务、计划和政策的信息。

四、在不同行业使用QA系统的基本原理

        QA 系统用于各种行业,因为它们提供了许多好处,包括:

  • 便利性:QA系统可用于快速轻松地回答问题,而无需搜索多个信息来源。
  • 准确性:QA 系统在大型文本和代码数据集上进行训练,这使它们能够为问题提供准确且信息丰富的答案。
  • 个性化:QA系统可以根据用户的需求进行个性化设置,以便他们能够提供相关且有用的答案。
  • 可扩展性:QA 系统可以扩展以处理大量问题,使其成为客户支持或客户服务是关键组成部分的行业的理想选择。

总体而言,QA 系统是一种强大的工具,可用于提高各行各业的效率、生产力和客户满意度。

随着 QA 系统的不断改进,我们可以期待在未来看到它们以更具创新性和令人兴奋的方式使用。

        现在我们已经对 QA 系统及其在各个行业的应用有了相当的了解,让我们深入了解 Deepset SQUAD 问答模型。

五、关于 Deepset deepset/minilm-uncased-squad2 模型

        deepset/minilm-uncased-squad2 是 Deepset 的问答 (QA) 模型,它基于 Microsoft 的 MiniLM-L12-H384-uncased 语言模型。它是在 SQuAD 2.0 数据集上训练的,该数据集是一个大规模的数据集,其中包含有关维基百科文章的人工生成的问题和答案。

        deepset/minilm-uncased-squad2 在 SQuAD 2.0 开发集上获得了 76.19% 的精确匹配 (EM) 分数和 79.49% 的 F1 分数。这些结果与该数据集上最先进的 QA 模型相当。

        deepset/minilm-uncased-squad2 是 QA 任务的不错选择,因为它是:

  • 准确:它在 SQuAD 2.0 数据集上取得了最先进的结果。
  • 高效:它基于高效的 MiniLM-L12-H384 无大小写语言模型。
  • 易于使用:它可作为预训练模型使用,可以轻松加载并在各种编程语言中使用。

        deepset/minilm-uncased-squad2 可用于各种 QA 任务,例如:

  • 回答有关维基百科条目的问题。
  • 回答有关客户支持文章的问题。
  • 回答有关产品文档的问题。
  • 回答有关新闻文章的问题。
  • 回答有关任何其他类型的文本内容的问题。

5.1 以下是如何使用 deepset/minilm-uncased-squad2 的一些示例:

  • 客户支持代表可以使用 deepset/minilm-uncased-squad2 来回答客户有关产品或服务的问题。
  • 记者可以使用 deepset/minilm-uncased-squad2 来研究新闻文章的主题。
  • 学生可以使用 deepset/minilm-uncased-squad2 来学习考试或学习新主题。
  • 研究人员可以使用 deepset/minilm-uncased-squad2 为研究项目收集信息。

5.2 以下是对 deepset/minilm-uncased-squad2 的一些见解:

  • 它是 QA 任务的不错选择,因为它准确、高效且易于使用。
  • 它可用于各种 QA 任务,例如回答有关维基百科文章、客户支持文章、产品文档和新闻文章的问题。
  • 它可用于提高各种行业的效率、生产力和客户满意度,例如医疗保健、金融、客户服务、教育和制造。

5.3 以下是使用 deepset/minilm-uncased-squad2 的一些优点:

  • 它是一个预训练的模型,因此您不需要从头开始训练它。这可以为您节省大量时间和资源。
  • 它可以通过 Hugging Face Transformers 库获得,该库是一个流行且支持良好的开源库,用于自然语言处理 (NLP) 任务。
  • 它易于使用,即使您不是 NLP 专家。

5.4 以下是使用 deepset/minilm-uncased-squad2 的一些缺点:

  • 它是一个大型模型,因此运行速度可能很慢且占用大量内存。
  • 它是在文本和代码数据集上训练的,因此它可能不太擅长回答有关其他类型数据(例如图像或视频)的问题。
  • 它不是免费使用的。

总体而言,deepset/minilm-uncased-squad2 是一个功能强大且用途广泛的 QA 模型,可用于各种任务。对于需要可靠和准确的 QA 模型的企业和组织来说,这是一个不错的选择。

六、关于 SQuAD v2 指标

SQuAD v2 指标是自然语言处理 (NLP) 任务(如问答和文本摘要)广泛使用的评估指标。它基于斯坦福问答数据集 (SQuAD),这是一个关于维基百科文章的人类生成的问题和答案的大规模数据集。

SQuAD v2 指标衡量两件事:

· 完全匹配 (EM):模型的答案与人工生成的答案完全匹配的问题百分比。

· F1 分数:精确度和召回率的加权平均值,其中精确度是模型正确答案的百分比,召回率是模型找到的人工生成答案的百分比。

为了计算 SQuAD v2 指标使用逐字匹配算法将模型的答案与人工生成的答案进行比较。如果模型的答案与人工生成的答案完全匹配,则该问题将计为完全匹配。否则,将使用 F1 评分算法对模型的答案进行评分。

        SQuAD v2 指标是衡量 NLP 模型在问答和文本摘要任务上的整体性能的良好指标。 但是,需要注意的是,SQuAD v2 指标只是性能的一种衡量标准,不应孤立地用于评估 NLP 模型

6.1 以下是有关 SQuAD v2 指标的一些关键见解:

        ·SQuAD v2 指标是一个具有挑战性的指标,因为它要求模型生成既符合事实又符合语言流利的答案。

        ·SQuAD v2 指标广泛用于评估 NLP 模型,因此它是比较不同模型性能的好方法。

        ·SQuAD v2 指标并不完美,因为它可能会被生成事实正确但语言不流利的答案的模型所愚弄。

        总体而言,SQuAD v2 指标是评估 NLP 模型在问答和文本摘要任务中性能的宝贵工具。但是,将 SQuAD v2 指标与其他指标(例如人工评估)结合使用非常重要,以全面了解 NLP 模型的性能。

6.2 以下是如何使用 SQuAD v2 指标的一些示例:

        ·正在开发新问答系统的公司可以使用 SQuAD v2 指标来评估其系统在标准数据集上的性能。

        ·正在开发新的文本摘要算法的研究人员可以使用 SQuAD v2 指标将其算法的性能与其他最先进的算法进行比较。

        ·正在学习机器学习课程的学生可以使用 SQuAD v2 指标来评估其问答模型在家庭作业中的性能。

现在我们已经了解了 QA 系统、QA 系统在各个行业的应用、Deepset SQUAD 模型和用于评估的 SQuAd 指标

        现在让我们深入了解使用 SQUAD 模型进行问答,使用 SQuAd V2 指标评估 SQUAD 模型

七、使用 Deepset minilm-uncased-squad2 模型和 SQuAD v2 指标评估进行问答

7.1 第 1 步 — 安装

        pip 安装以下软件包和系统依赖项:

  • 库:transformers、evaluate
!pip install transformers
!pip install evaluate

7.2  第 2 步 — 构建问答管道

        我们将使用模型“deepset/minilm-uncased-squad2”

import transformers#Set to avoid warning messages.
transformers.logging.set_verbosity_error()from transformers import pipelinequestion_answer = pipeline("question-answering",model="deepset/minilm-uncased-squad2")

7.3 第 3 步 — 打印问答模型的详细信息

        此步骤用于深入了解模型配置的每个细节,包括网络、其层、编码器、解码器、注意力头、激活函数、超参数、QA 参数、转换器版本等,

#Print Details of the Question Answering Model
print("Checkpoint used: ", question_answer.model.config)

7.4 第 4 步 — 设置问答的上下文

<span style="background-color:#f9f9f9"><span style="color:#242424"><span style="color:#007400">#Set Up Context for Question Answering Model to Answer Questions</span>
context=<span style="color:#c41a16">"""In a recent survey conducted by the government,
public sector employees were asked to rate their level
of satisfaction with the department they work at.
The results revealed that NASA was the most popular
department with a satisfaction rating of 95%.One NASA employee, John Smith, commented on the findings,
stating, "I'm not surprised that NASA came out on top.
It's a great place to work with amazing people and
incredible opportunities. I'm proud to be a part of
such an innovative organization.The results were also welcomed by NASA's management team,
with Director Tom Johnson stating, "We are thrilled to
hear that our employees are satisfied with their work at NASA.
We have a talented and dedicated team who work tirelessly
to achieve our goals, and it's fantastic to see that their
hard work is paying off.The survey also revealed that the
Social Security Administration had the lowest satisfaction
rating, with only 45% of employees indicating they were
satisfied with their job. The government has pledged to
address the concerns raised by employees in the survey and
work towards improving job satisfaction across all departments.
"""</span></span></span>

7.5 第 5 步 — 使用问答管道检查 QA

#Question Answering Check 1
print("\n Question 1:")
answer=question_answer( question="Which department had the highest level of Satisfaction Rating?",context=context)
print(answer)

输出为

问题 1: {'score': 0.7639074921607971, 'start': 179, 'end': 183, 'answer': 'NASA'}

答案是正确的,让我们根据提供的上下文检查更多问题。

问答 - 检查 2

#Question Answering Check 2
print("\n Question 2:")
answer=question_answer( question="Which department had the lowest level of Satisfaction Rating?",context=context)
print(answer)

输出为

问题 2: {'score': 0.6433295011520386, 'start': 855, 'end': 885, 'answer': '社会保障局'}

答案是正确的..

让我们再检查一个问题

问答 — 勾选 3

#Question Answering Check 3
print("\n Question 3:")
answer=question_answer( question="What did Tom Johnson state on the findings?",context=context)
print(answer)

输出为

问题 3: {'score': 0.07185160368680954, 'start': 596, 'end': 676, 'answer': '我们很高兴听到我们的员工对他们在 NASA 的工作感到满意'}

我们可以尝试根据提供的上下文来试验问题。

7.6 第 6 步 — 使用 SQuAD v2 指标进行评估

在此步骤中,我们将使用 SQuAD v2 指标评估模型

精确匹配 (EM)

F1 分数

根据提供的上下文,对于问题

社会保障局的满意度是多少?

假设预期的人类反应将是

“社保局满意度为45%”

模型预测答案为

“社会保障局的满意度为50%”,“
社会保障局的满意度为30%”,“
提供的上下文不提供问题的答案”

而模型对问题的回答是 45%,如前所述

让我们使用 SQuAD v2 指标评估问答模型

精确匹配,F1 分数

#Evaluate Model using SQuAD V2 Metrics
from evaluate import load
squad_metric = load("squad_v2")correct_answer="The satisfaction rating of Social Security Administration is 45%"predicted_answers=["45%","The satisfaction rating of Social Security Administration is 50%","The satisfaction rating of Social Security Administration is 30%","Context provided does not provide the answer for the question"]cum_predictions=[]
cum_references=[]
for i in range(len(predicted_answers)):#Use the input format for predictionspredictions = [{'prediction_text':predicted_answers[i],'id': str(i),'no_answer_probability': 0.}]cum_predictions.append(predictions[0])#Use the input format for naswersreferences = [{'answers': {'answer_start': [1],'text': [correct_answer]},'id': str(i)}]cum_references.append(references[0])results = squad_metric.compute(predictions=predictions,references=references)print("F1 is", results.get('f1')," for answer :", predicted_answers[i])#Compute for cumulative Results
cum_results=squad_metric.compute(predictions=cum_predictions,references=cum_references)
print("\n Cumulative Results : \n",cum_results)

输出为

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用自己训练好的模型YOLOv8进行X-AnyLabeling自动标注

目录 1. 下载项目2. 创建环境3. 运行程序3.1 自行下载和添加官方模型3.2 使用自己训练好的模型标注自己的数据集 本机环境&#xff1a;win 10&#xff0c; GPU 1. 下载项目 git clone https://github.com/CVHub520/X-AnyLabeling.git2. 创建环境 仔细查看项目的README文件 …

游游的you矩阵

题目&#xff1a; 游游拿到了一个字符矩阵&#xff0c;她想知道有多少个三角形满足以下条件&#xff1a; 三角形的三个顶点分别是 y、o、u 字符。三角形为直角三角形&#xff0c;且两个直角边一个为水平、另一个为垂直。 输入描述&#xff1a; 第一行输入两个正整数n,m&#…

Root mapping definition has unsupported parameters: [all : {analyzer=ik_max_wor

你们好&#xff0c;我是金金金。 场景 我正在使用Springboot整合elasticsearch&#xff0c;在创建索引(分词器) 运行报错&#xff0c;如下 排查 排查之前我先贴一下代码 import org.elasticsearch.action.admin.indices.create.CreateIndexRequest; // 注意这个包SpringBootTe…

文字转语音工具:GPT-SoVITS

诸神缄默不语-个人CSDN博文目录 OpenAI官方的TTS模型我在这篇博文中给出了使用教程&#xff1a;ChatGPT 3.5 API的调用不全指南&#xff08;持续更新ing…&#xff09; - 知乎 但是OpenAI的TTS对中文支持不好&#xff0c;有一种老外说中文的美&#xff0c;所以本文介绍另一个…

自己的事情自己做:使用 Python Turtle 绘制 Python Logo

以下代码中&#xff0c;将向你展示一个有趣的程序&#xff0c;如何使用 Python Turtle 中绘制 Python Logo。Python 翻译成汉语是蟒蛇的意思&#xff0c;Python 的 Logo 也是两条缠绕在一起的蟒蛇。 import turtlepen turtle.Turtle() turtle.bgcolor("black") pe…

ins视频批量下载,instagram批量爬取视频信息【爬虫实战课1】

简介 Instagram 是目前最热门的社交媒体平台之一,拥有大量优质的视频内容。但是要逐一下载这些视频往往非常耗时。在这篇文章中,我们将介绍如何使用 Python 编写一个脚本,来实现 Instagram 视频的批量下载和信息爬取。 我们使用selenium获取目标用户的 HTML 源代码,并将其保存…

Python路面车道线识别偏离预警

程序示例精选 Python路面车道线识别偏离预警 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《Python路面车道线识别偏离预警》编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易…

tsconfig.json文件常用配置

最近在学ts&#xff0c;因为tsconfig的配置实在太多啦&#xff0c;所以写此文章用作记录&#xff0c;也作分享 作用&#xff1f; tsconfig.jsono是ts编译器的配置文件&#xff0c;ts编译器可以根据它的信息来对代码进行编译 初始化一个tsconfig文件 tsc -init配置参数解释 …

HZNUCTF第五届校赛实践赛初赛 Web方向 WriteUp

ezssti 很简单的ssti 源码给了&#xff0c;调用Eval即可执行命令 package mainimport ("fmt""net/http""os/exec""strings""text/template" )type User struct {Id intName stringPasswd string }func (u User) Ev…

Python学习从0开始——项目一day01爬虫

Python学习从0开始——项目一day01爬虫 一、导入代码二、使用的核心库三、功能测试3.1初始代码3.2新建文件3.3代码调试 四、页面元素解析4.1网页4.2修改代码4.3子页面4.4修改代码 一、导入代码 在Inscode新建一个python类型的项目&#xff0c;然后打开终端&#xff0c;粘贴以下…

《七》布局QLayout类

QLayout简介 QLayout是由具体类 QBoxLayout、QGridLayout、QFormLayout 和 QStackedLayout继承的抽象基类。 对于 QLayout子类或 QMainWindow的用户&#xff0c;很少需要使用 QLayout 提供的基本功能&#xff0c;例如 setSizeConstraint() 或 setMenuBar()。Qt 布局系统提供了…

程序员购车指南

哈喽大家好&#xff0c;我是咸鱼。 爱车可以说是大部分男人的天性&#xff0c;而我对汽车的热情却远不及对手表的钟爱&#xff08;痴迷劳力士&#xff09;。以至于我的朋友掏出车钥匙指着上面的苹果树标志跟我介绍奔驰 AMG 系列的强劲性能和马力时&#xff0c;我只能尽量假装自…

【三维Dvhop定位】基于麻雀搜索算法的多通信半径和跳距加权的三维Dvhop定位算法【Matlab代码#81】

文章目录 【可更换其他算法&#xff0c;获取资源请见文章第6节&#xff1a;资源获取】1. Dvhop定位算法2. 麻雀搜索算法3. 多通信半径和跳距加权策略3.1 多通信半径策略3.2 跳距加权策略 4. 部分代码展示5. 仿真结果展示6. 资源获取 【可更换其他算法&#xff0c;获取资源请见文…

Oracle-TDE数据加密功能

1 Oracle TDE 1.1 TDE介绍 Oracle TDE是数据库层对存储的用户敏感数据进行的静态加密&#xff0c;加密数据满足主流的安全法规&#xff08;如 PCI DSS&#xff09;相关的加密要求&#xff0c;可以防止数据文件被其他非数据库读取方式访问的情况下(如通过工具直接打开读取数据文…

Java程序生成可执行的exe文件 详细图文教程

1.Java编辑器&#xff0c;如&#xff1a;idea、eclipse等&#xff0c;下载地址&#xff1a;IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrainshttps://www.jetbrains.com/idea/2.exe4j&#xff0c;下载地址&#xff1a;ej-technologies - Java APM, Java Prof…

ansible-tower连接git实现简单执行playbook

前提&#xff1a;安装好ansible-tower和git&#xff0c;其中git存放ansible得剧本 其中git中得内容为&#xff1a; --- - name: yjxtesthosts: yinremote_user: rootgather_facts: noroles:- testroles/test/tasks/main.yml #文件内容 --- #- name: Perform Test Task # tas…

ant-design-vue Table+Form表单实现表格内置表单验证,可自定义验证规则,触发必填项

代码示例如下&#xff1a; <!-- --> <template><a-button type"primary" style"padding-left: 10px; padding-right: 10px" click"handleAddRow"><template #icon><plus-outlined /></template>新增</…

2024年大唐杯官网模拟题

单选(出题角度很奇怪&#xff0c;不用太纠结&#xff09; 5G NR系统中&#xff0c;基于SSB的NR同频测量在measconfig里最多可以配置&#xff08; &#xff09;个SMTC窗口。 A、3 B、4 C、1 D、2 答案&#xff1a;D 2个 只在官网找到了这张PPT 5G 中从BBU到AAU需要保证&#x…

Python分析之3 种空间插值方法

插值是一个非常常见的数学概念,不仅数据科学家使用它,而且各个领域的人们也使用它。然而,在处理地理空间数据时,插值变得更加复杂,因为您需要基于几个通常稀疏的观测值创建代表性网格。 在深入研究地理空间部分之前,让我们简要回顾一下线性插值。 为了演示的目的,我将使…

Spring Security详细学习第一篇

Spring Security 前言Spring Security入门编辑Spring Security底层原理UserDetailsService接口PasswordEncoder接口 认证登录校验密码加密存储退出登录 前言 本文是作者学习三更老师的Spring Security课程所记录的学习心得和笔记知识&#xff0c;希望能帮助到大家 Spring Sec…