目录
[二、Deepset SQUAD是个啥?](#二、Deepset SQUAD是个啥?)
[3.1 医疗](#3.1 医疗)
[3.2 金融](#3.2 金融)
[3.3 顾客服务](#3.3 顾客服务)
[3.4 教育](#3.4 教育)
[3.5 制造业](#3.5 制造业)
[3.6 法律](#3.6 法律)
[3.7 媒体](#3.7 媒体)
[3.8 政府](#3.8 政府)
[五、关于 Deepset deepset/minilm-uncased-squad2 模型](#五、关于 Deepset deepset/minilm-uncased-squad2 模型)
[5.1 以下是如何使用 deepset/minilm-uncased-squad2 的一些示例:](#5.1 以下是如何使用 deepset/minilm-uncased-squad2 的一些示例:)
[5.2 以下是对 deepset/minilm-uncased-squad2 的一些见解:](#5.2 以下是对 deepset/minilm-uncased-squad2 的一些见解:)
[5.3 以下是使用 deepset/minilm-uncased-squad2 的一些优点:](#5.3 以下是使用 deepset/minilm-uncased-squad2 的一些优点:)
[5.4 以下是使用 deepset/minilm-uncased-squad2 的一些缺点:](#5.4 以下是使用 deepset/minilm-uncased-squad2 的一些缺点:)
[六、关于 SQuAD v2 指标](#六、关于 SQuAD v2 指标)
[6.1 以下是有关 SQuAD v2 指标的一些关键见解:](#6.1 以下是有关 SQuAD v2 指标的一些关键见解:)
[6.2 以下是如何使用 SQuAD v2 指标的一些示例:](#6.2 以下是如何使用 SQuAD v2 指标的一些示例:)
[七、使用 Deepset minilm-uncased-squad2 模型和 SQuAD v2 指标评估进行问答](#七、使用 Deepset minilm-uncased-squad2 模型和 SQuAD v2 指标评估进行问答)
[7.1 第 1 步 --- 安装](#7.1 第 1 步 — 安装)
[7.2 第 2 步 --- 构建问答管道](#7.2 第 2 步 — 构建问答管道)
[7.3 第 3 步 --- 打印问答模型的详细信息](#7.3 第 3 步 — 打印问答模型的详细信息)
[7.4 第 4 步 --- 设置问答的上下文](#7.4 第 4 步 — 设置问答的上下文)
[7.5 第 5 步 --- 使用问答管道检查 QA](#7.5 第 5 步 — 使用问答管道检查 QA)
[7.6 第 6 步 --- 使用 SQuAD v2 指标进行评估](#7.6 第 6 步 — 使用 SQuAD v2 指标进行评估)
一、说明
在本文中,我们将研究使用 Deepset 的 SQUAD2 模型进行问答以及使用 SQuAD v2 指标 评估模型,我们将使用 model --- deepset/minilm-uncased-squad2。
我们将按以下顺序讨论这些主题:
-
问答系统(QA系统),QA系统在各行业的应用及基本原理
-
关于 Deepset minilm-uncased-squad2 模型
-
关于 SQuAD v2 指标
-
使用 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
ajk
!pip install transformers
!pip install evaluate
7.2 第 2 步 --- 构建问答管道
我们将使用模型"deepset/minilm-uncased-squad2"
ajk
import transformers
#Set to avoid warning messages.
transformers.logging.set_verbosity_error()
from transformers import pipeline
question_answer = pipeline("question-answering",
model="deepset/minilm-uncased-squad2")
7.3 第 3 步 --- 打印问答模型的详细信息
此步骤用于深入了解模型配置的每个细节,包括网络、其层、编码器、解码器、注意力头、激活函数、超参数、QA 参数、转换器版本等,
ajk
#Print Details of the Question Answering Model
print("Checkpoint used: ", question_answer.model.config)
7.4 第 4 步 --- 设置问答的上下文
ajk
<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
ajk
#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
ajk
#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
ajk
#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 分数
ajk
#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 predictions
predictions = [{'prediction_text':predicted_answers[i],
'id': str(i),
'no_answer_probability': 0.}]
cum_predictions.append(predictions[0])
#Use the input format for naswers
references = [{'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)
输出为