你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

对话摘要

Azure AI 服务

大多数企业都提供客户服务支持,帮助客户进行产品查询、故障排除,以及维护或升级功能或产品本身。 为了提供令人满意的解决方法,客户支持专家需要通过准确的信息快速响应。 OpenAI 可以通过多种方式帮助组织提供客户支持。

此指南描述如何使用 Azure OpenAI GPT-3 模型生成客户与代理交互的摘要。 它包含端到端示例体系结构,该体系结构演示了获取文本输入摘要所涉及的关键组件。 文本输入的生成不在本指南的范围内。 本指南的重点是介绍完成一组代理-客户示例对话摘要的过程,并分析生成摘要的各种方法的结果。

对话方案

  • 自助服务聊天机器人 (完全自动化)。 在此方案中,客户可以与由 GPT-3 提供支持并经过行业特定数据训练的聊天机器人进行交互。 聊天机器人可以理解客户的问题,并根据从知识库获得的响应作出适当的回答。
  • 具有代理干预的聊天机器人 (半自动化)。 客户提出的问题有时很复杂,需要人工干预。 在这种情况下,GPT-3 可以提供客户-聊天机器人对话的摘要,并帮助代理快速搜索大型知识库以获取额外信息。
  • 汇总文本 ( 完全自动化或半自动化)。 在大多数客户支持中心,代理需要汇总对话以用于保存记录、未来进行跟进、训练和其他内部流程。 GPT-3 可以提供自动或半自动摘要,捕获对话的重要信息以供将来使用。

本指南重点介绍通过 Azure OpenAI GPT-3 汇总文本的过程。

平均而言,一个代理需要 5 到 6 分钟来汇总一个代理-客户对话。 鉴于服务团队在任何给定的一天内需处理大量请求,此额外任务可能会使团队负担过重。 OpenAI 可帮助代理执行与汇总相关的活动。 它可以提高客户支持过程的效率,并提供更好的精确度。 对话摘要可以应用于任何涉及代理-客户交互的客户支持任务。

对话摘要类型

对话摘要适用于采用问答格式的客户支持对话。

使用摘要服务的部分好处如下:

  • 提高效率:它允许客户服务代理快速汇总客户对话,无需进行长时间的来回交换。 这种效率有助于加快解决客户问题。
  • 改进的客户服务:代理可以在将来的交互中使用对话摘要,以快速找到准确解决客户问题所需的信息。
  • 改进的知识共享:对话摘要可帮助客户服务团队快速有效地相互共享知识。 它为客户服务团队提供更好的解决方案,并帮助他们提供更快的支持。

体系结构

对话摘要生成器的典型体系结构有三个主要阶段:预处理、汇总和后处理。 如果输入内容包含口头对话或任何形式的语音,则需要将语音转录为文本。 有关详细信息,请参阅 Azure 语音转文本服务

下面是一个示例体系结构:

显示对话摘要体系结构的图表。

下载此体系结构的 PowerPoint 文件

工作流

  1. 收集输入数据:将相关的输入数据馈送到管道中。 如果源文件是音频文件,则需要使用文本转语音 (TTS) 服务(如 Azure 文本转语音)将其转换为文本。
  2. 预处理数据:从数据中删除机密信息和所有不重要的对话。
  3. 将数据馈送至摘要生成器:通过 Azure OpenAI API 在提示中传递数据。 上下文学习模型包括零样本、少样本或自定义模型
  4. 生成摘要:模型会生成对话的摘要。
  5. 对数据进行后处理:对摘要应用不雅内容筛选器和各种验证检查。 将预处理步骤中删除的敏感或机密数据添加回摘要。
  6. 评估结果:查看并评估结果。 此步骤可帮助你确定模型需要改进的地方并发现错误。

以下各节提供了有关这三个主要阶段的更多详细信息。

预处理

预处理的目标是确保提供给摘要生成器服务的数据是相关的,且不包含敏感信息或机密信息。

下面是一些有助于调节原始数据的预处理步骤。 可能需要应用一个或多个步骤,具体取决于用例。

  • 删除个人身份信息 (PII)。 可以使用对话 PII API (预览) 从转录或书面文本中删除 PII。 此示例显示 API 删除 PII 后的输出内容:

    Document text: Parker Doe has repaid all of their loans as of
          2020-04-25. Their SSN is 999-99-9999. To contact them, use 
          their phone number 555-555-0100. They are originally from 
          Brazil and have Brazilian CPF number 998.214.865-68 
    Redacted document text: ******* has repaid all of their
          loans as of *******. Their SSN is *******. To contact 
          them, use their phone number *******. They are originally from Brazil and have Brazilian CPF number 998.214.865-68
    
    ...Entity 'Parker Doe' with category 'Person' got redacted
    ...Entity '2020-04-25' with category 'DateTime' got redacted
    ...Entity '999-99-9999' with category 'USSocialSecurityNumber' got redacted
    ...Entity '555-555-0100' with category 'PhoneNumber' got redacted
    
  • 删除无关信息。 客户代理开始进行不包含相关信息的普通对话。 可将触发器添加到对话中,以确定首先解决关注点或相关问题的地方。 从上下文中删除该对话内容可以提高摘要生成器服务的准确性,因为模型随后会根据对话中最相关的信息进行微调。 Curie GPT-3 引擎是此任务的热门选择,因为它通过来自 Internet 的内容得到广泛训练,以识别这种类型的普通对话。

  • 删除过度负面的对话。 对话还可以包括来自不满意客户的负面情绪。 可以使用 Azure 内容筛选方法(如 Azure 内容审查器)从分析中删除包含敏感信息的对话。 或者,OpenAI 提供了一个审查终结点,该工具可用于检查内容是否符合 OpenAI 的内容策略。

摘要生成器

OpenAI 的文本完成 API 终结点称为完成终结点。 若要启动文本完成过程,需要提示。 提示工程是大型语言模型中使用的一个过程。 提示的第一部分包括具体任务所要求的自然语言指令或示例(在本方案中为摘要)。 提示允许开发人员为 API 提供一些上下文,这有助于它生成更相关、更准确的文本补全。 该模型会预测最有可能的下一个文本以完成任务。 这种技术称为上下文学习。

注意

抽取式摘要会尝试从文本中识别和提取重要信息,并将其分组,以生成简明的摘要,而无需理解含义或上下文。

抽象摘要会先创建内部语义表示形式,然后使用自然语言处理创建摘要,从而重写文本。 此过程涉及改写。

有三种主要方法用于训练模型进行上下文学习:零样本、少量样本和微调。 这些方法根据提供给模型的任务特定数据量而异。

  • 零样本:在此方法中,不会向模型提供任何示例。 任务请求是唯一的输入内容。 在零样本学习中,模型依赖于 GPT-3 已训练的数据 (来自互联网的几乎全部可用数据)。 模型会尝试将给定任务与它已学习的现有类别相关联,并相应地做出响应。

  • 少量样本:使用此方法时,向提示中添加少量示例,用于演示预期的答案格式和上下文。 此模型只有极少量的训练数据(通常只有几个示例)来指导其进行预测。 使用一小部分示例进行训练可使模型通用化,并理解相关但之前未见过的任务。 创建此少量样本示例可能具有挑战性,因为需要准确阐明希望模型执行的任务。 常见的问题是模型(尤其是小型模型)对训练示例使用的写作风格很敏感。

    此方法的主要优点是大幅减少了对特定于任务的数据的需求,并降低了从大型但狭窄的微调数据集中学习过窄分布的可能性。

    使用此方法,你无法更新预训练模型的权重。

    有关详细信息,请参阅语言模型是少量样本的学习者

  • 微调:微调是定制模型以从自己的数据集获取特定所需结果的过程。 它涉及针对新数据重新训练模型。 有关详细信息,请参阅了解如何为应用程序自定义模型

    可以通过以下方法使用此自定义步骤来改进流程:

    • 包括一组较大的示例数据。
    • 将传统优化技术与反向传播结合使用,从而重新调整模型权重。 这些技术比零样本或小样本方法本身提供的结果质量更高。
    • 使用特定提示和特定结构以训练模型权重,从而改进少量样本学习方法。 此技术使你能够在更多任务上取得更好的结果,无需在提示中提供示例。 这样一来,发送的文本更少,令牌也更少。

    缺点包括每个任务都需要一个大型的新数据集、分布的泛化效果可能不佳,以及使用训练数据的虚假特征的可能性,导致与人类表现进行不公平比较的可能性很大。

    为模型自定义创建数据集不同于使用其他模型设计所用提示。 提示完成调用通常使用详细说明或少量样本学习技术,并由多个示例组成。 对于微调,我们建议每个训练示例都包含一个输入示例和所需的输出。 无需在提示中提供详细说明或示例。

    随着训练示例数量的增加,结果会有所改善。 建议至少添加 500 个示例。 通常使用数千到数十万个标记示例。 测试显示数据集大小每增加一倍就会引起模型质量的线性增长。

本指南演示 curie-instruct/text-curie-001 和 davinci-instruct/text-davinci-001 引擎。 这些引擎经常更新。 使用的版本可能不同。

后续处理

建议检查从 GPT-3 获取的结果的有效性。 使用编程方法或分类器实现有效性检查,具体取决于用例。 下面是一些关键检查:

  • 验证是否未遗漏任何重要点。
  • 检查是否存在与事实不符之处。
  • 检查模型上使用的训练数据是否引入了任何偏差。
  • 通过添加新的想法或观点来验证模型是否不会更改文本。 此问题被称为幻觉
  • 检查语法和拼写错误。
  • 使用内容审查器等不雅内容筛选器,确保不包含不适当或不相关的内容。

最后,重新引入以前从摘要中删除的任何重要信息,例如机密信息。

在某些情况下,还会将对话摘要连同原始脚本一起发送给客户。 在这些情况下,后期处理涉及将脚本附加到摘要。 它还可能包括添加引导式句子,如“请参阅下面的摘要”。

注意事项

使用特定于行业的训练数据集微调基础模型并更改可用数据集的大小非常重要。 当训练数据至少包含 1000 个数据点,并且用于训练模型的基本事实 (人为生成的摘要) 质量很高时,微调模型的性能最佳。

权衡是成本。 标记和清理数据集的过程可能很昂贵。 若要确保高质量的训练数据,可能需要手动检查基本事实摘要并重写低质量摘要。 请考虑有关摘要阶段的以下几点:

  • 提示工程:当提供很少的指令时,Davinci 的性能通常优于其他模型。 若要优化结果,请针对不同的模型尝试不同的提示。
  • 令牌大小:基于 GPT-3 的摘要生成器的令牌总数上限为 4098 个,包括提示和完成。 若要汇总较大的段落,请将文本分成符合这些限制的多个部分。 逐个汇总每个部分,然后在最终摘要中收集结果。
  • 输入垃圾,输出垃圾:训练的模型的性能仅取决于你提供的训练数据的质量。 请确保训练数据中的基本事实摘要非常适合最终要在对话中汇总的信息。
  • 停止点:模型会在到达自然停止点或提供的停止序列时停止汇总。 测试此参数以在多个摘要之间进行选择,并检查摘要看起来是否完整。

示例方案:汇总呼叫中心的文本

此方案演示 Azure OpenAI 汇总功能如何帮助客户服务代理执行摘要任务。 它测试零样本、少量样本和微调这三种方法,并将结果与人为生成的摘要进行比较。

此方案中使用的数据集是 Xbox 客户支持中心客户与代理之间关于各种 Xbox 产品和服务的一组假设对话。 假设的聊天标有“提示”。 人工编写的抽象摘要标有“完成”

Prompt Completion
客户:有关 XAIL 的问题

代理:你好! 我今天有什么可帮助你的吗?

客户:你好,我有一个关于辅助功能预览体验成员通道的问题

代理:好的。 我当然可以帮你。

客户:是否需要注册预览版通道才能加入辅助功能联盟?

代理:不需要。 你可以将你的主机排除在 Xbox 预览版通道外,并仍然加入联盟。 但请注意,提供的某些体验可能需要加入 Xbox 预览环。

客户:好的。 我以后可以注册预览版通道,是吗?

代理:是的。

客户:太好了。
客户想知道是否需要注册预览环才能加入 Xbox 辅助功能会员联盟。 代理答复说,这并非强制性的,但有些体验可能需要这样做。

理想的输出。 目标是创建遵循此格式的摘要:“客户说 x。 代理响应 y。”另一个目标是捕获对话的显著特征,例如客户投诉、建议的解决方案和后续操作。

下面是客户服务交互的示例,后跟一个全面的人工编写的摘要:

对话框

客户:你好。 我有关于游戏通行证的问题。

代理:你好! 你今天怎么做?

客户:我很好。

代理。 我看到你需要有关 Xbox Game Pass 的帮助。

客户:是的。 我想知道它们离开游戏通行证后,我可以访问游戏多久。

代理:游戏离开 Xbox Game Pass 目录后,你需要从适用于 Windows 或 Microsoft Store 的 Xbox 应用购买数字副本、通过光盘玩游戏,或获取其他形式的资格以继续玩游戏。 请记住,Xbox 将在游戏离开 Xbox Game Pass 目录之前通知成员。 此外,作为会员,你可以以最高 20% 的折扣 (或可使用的最高折扣) 购买目录中的任何游戏 ,以在游戏离开目录后继续玩游戏。

客户:明白了,谢谢

基本事实摘要

客户想要知道游戏离开 Game Pass 后,他们可以访问游戏的时间。 代理告诉客户,他们需要购买游戏才能继续拥有访问权限。

零样本

在没有足够的带标签的训练数据时,零样本方法非常有用。 在本例中,没有足够的基本事实摘要。 必须仔细创建提示,以便提取相关信息。 以下格式用于从客户-代理聊天中提取常规摘要:

prefix = "Please provide a summary of the conversation below: "

suffix = "The summary is as follows: "

下面是一个示例,演示如何运行零样本模型:

rouge = Rouge()
# Run zero-shot prediction for all engines of interest
deploymentNames = ["curie-instruct","davinci-instruct"] # also known as text-davinci/text-instruct
for deployment in deploymentNames:
url = openai.api_base + "openai/deployments/" + deployment + "/completions?api-version=2022-12-01-preivew"
response_list = []
rouge_list = []
print("calling..." + deployment)
for i in range(len(test)):
response_i = openai.Completion.create(
engine = deployment,
prompt = build_prompt(prefix, [test['prompt'][i]], suffix),
temperature = 0.0,
max_tokens = 400,
top_p = 1.0,
frequence_penalty = 0.5,
persence_penalty = 0.0,
stop=["end"] # We recommend that you adjust the stop sequence based on the dataset
)
scores = rouge.get_scores(normalize_text(response_i['choices'][ 0]['text']),test['completion'][i])
rouge_list += [scores[0]['rouge-1']['f']],
response_list += [response_i]
summary_list = [normalize_text(i['choices'][0]['text']) for i in response_list]
test[deployment + "_zeroshotsummary"] = summary_list
test[deployment + "_zeroshotroguescore"] = rouge_list

结果和观察

零样本模型的输出内容直接从基本模型中生成。 在本例中,Curie 和 Davinci 都很好地总结了对话。 唯一明显的区别是 Curie 模型提供的细节略少一些。 Curie 以“顾客向代理询问 Xbox Game Pass”作为摘要的开头。Davinci 中相应的一句话是“顾客询问他们离开 Xbox Game Pass 目录后能玩多长时间的游戏。”

对话框

客户:你好。 我有关于游戏通行证的问题。

代理:嗨! 你好吗?

客户:我很好。

代理:我看到你需要有关 Xbox Game Pass 的帮助。

客户:是的。 我想知道它们离开游戏通行证后,我可以访问游戏多久。

代理:游戏离开 Xbox Game Pass 目录后,你需要从适用于 Windows 或 Microsoft Store 的 Xbox 应用购买数字副本、通过光盘玩游戏,或获取其他形式的资格以继续玩游戏。 请记住,Xbox 将在游戏离开 Xbox Game Pass 目录之前通知成员。 此外,作为会员,你可以以最高 20% 的折扣或可使用的最高折扣购买目录中的任何游戏,以在游戏离开目录后继续玩游戏。

基本事实

客户想要知道游戏离开 Game Pass 后,他们可以访问游戏的时长。 代理告诉客户,他们需要购买游戏才能继续拥有访问权限。

Davinci 结果

客户询问游戏离开 Xbox Game Pass 目录后,他们还可以访问游戏多长时间。 代理告诉他们,他们需要从适用于 Windows 或 Microsoft Store 的 Xbox 应用购买游戏的数字副本才能继续玩游戏。 代理还提醒客户,在游戏离开 Xbox Game Pass 目录之前,他们会收到通知。 作为会员,客户可以以最高 20% 的折扣或可用的最高折扣购买目录中的任何游戏。

Curie 结果

客户向代理询问 Xbox Game Pass。 代理告诉客户,游戏离开 Xbox Game Pass 目录后,客户需要从适用于 Windows 或 Microsoft Store 的 Xbox 应用购买数字副本、通过光盘玩游戏,或获取其他形式的资格以继续玩游戏。 代理还提醒客户,Xbox 将在游戏离开 Xbox Game Pass 目录之前通知成员。

少样本

使用少量样本方法时,会为模型提供少量示例。

context_primer = "Below are examples of conversations and their corresponding summaries:"

prefix = "Please provide a summary of the conversation below: "

suffix = "The summary is as follows: "

下面是一个示例,演示如何运行少量样本模型:

train_small = train[]
train_small_json = train_small.to_dict(orient='records')
compiled_train_prompt = build_prompt_fewshot(prefix,context_primer, train_small_json, suffix)

for deployment in deploymentNames:
url = openai.api_base + "openai/deployments/" + deployment + "/completions?api-version=2022-12-01-preivew"
response_list = []
rouge_list = []
print("calling..." + deployment)
for i in range(len(test)):
response_i = openai.Completion.create(
engine = deployment,
prompt = compiled_train_prompt+build_prompt(prefix, [test['prompt'][i]], suffix),
temperature = 0.0,
max_tokens = 400,
top_p = 1.0,
frequence_penalty = 0.5,
persence_penalty = 0.0,
stop=["end"] # We recommend that you adjust the stop sequence based on the dataset
)
scores = rouge.get_scores(normalize_text(response_i['choices'][ 0]['text']),test['completion'][i])
rouge_list += [scores[0]['rouge-1']['f']],
response_list += [response_i]
summary_list = [normalize_text(i['choices'][0]['text']) for i in response_list]
test[deployment + "_fewshot"] = summary_list
test[deployment + "_FSscore1"] = rouge_list

结果和观察

通过少量样本方法,摘要会继续捕获对话的突出特征。 Davinci 摘要更紧凑,更接近基本事实。 Curie 捏造了一些微不足道的细节。

对话框

客户:你好。 我有关于游戏通行证的问题。

代理:嗨! 你好吗?

客户:我很好。

代理:我看到你需要有关 Xbox Game Pass 的帮助。

客户:是的。 我想知道它们离开游戏通行证后,我可以访问游戏多久。

代理:游戏离开 Xbox Game Pass 目录后,你需要从适用于 Windows 或 Microsoft Store 的 Xbox 应用购买数字副本、通过光盘玩游戏,或获取其他形式的资格以继续玩游戏。 请记住,Xbox 将在游戏离开 Xbox Game Pass 目录之前通知成员。 此外,作为会员,你可以以最高 20% 的折扣或可使用的最高折扣购买目录中的任何游戏,以在游戏离开目录后继续玩游戏。

基本事实

客户想要知道游戏离开 Game Pass 后,他们可以访问游戏的时长。 代理告诉客户,他们需要购买游戏才能继续拥有访问权限。

Davinci 结果

客户想知道游戏离开 Game Pass 目录后,他们可以访问游戏的时长。 代理告知他们,一旦游戏离开 Xbox Game Pass 目录,客户将需要购买数字副本或获取其他形式的资格才能继续玩游戏。

Curie 结果

客户有关于 Game Pass 的问题。 客户很好。 代理需要有关 Xbox Game Pass 的帮助。 客户询问游戏离开 Game Pass 目录后,他们可以访问游戏的时长。 代理告诉客户,游戏离开 Xbox Game Pass 目录后,客户需要从适用于 Windows 或 Microsoft Store 的 Xbox 应用购买数字副本、通过光盘玩游戏,或获取其他形式的资格以继续玩游戏。 客户很高兴听到这一消息,并感谢了代理。

微调

微调是定制模型以从自己的数据集获取特定所需结果的过程。

下面是一个示例格式:

{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}

结果和观察

测试表明,经过微调的 Curie 模型的结果与 Davinci 少量样本模型的结果相当。 这两个摘要都捕获了客户的问题和代理的回答,而没有捕获有关折扣的详细信息,也没有添加内容。 这两个摘要都接近基本事实。

对话框

客户:你好。 我有关于游戏通行证的问题。

代理:嗨! 你好吗?

客户:我很好。

代理:我看到你需要有关 Xbox Game Pass 的帮助。

客户:是的。 我想知道它们离开游戏通行证后,我可以访问游戏多久。

代理:游戏离开 Xbox Game Pass 目录后,你需要从适用于 Windows 或 Microsoft Store 的 Xbox 应用购买数字副本、通过光盘玩游戏,或获取其他形式的资格以继续玩游戏。 请记住,Xbox 将在游戏离开 Xbox Game Pass 目录之前通知成员。 此外,作为会员,你可以以最高 20% 的折扣或可使用的最高折扣购买目录中的任何游戏,以在游戏离开目录后继续玩游戏。

基本事实

客户想要知道游戏离开 Game Pass 后,他们可以访问游戏的时长。 代理告诉客户,他们需要购买游戏才能继续拥有访问权限。

Curie 结果

客户想要知道游戏离开 Game Pass 后,他们可以访问游戏的时长。 代理解释道,游戏离开 Xbox Game Pass 目录后,客户需要从适用于 Windows 或 Microsoft Store 的 Xbox 应用购买数字副本、通过光盘玩游戏,或获取其他形式的资格以继续玩游戏。

结论

通常,与其他模型(如 Curie)相比,Davinci 模型执行任务所需的指令更少。 Davinci 更适合用于汇总需要了解上下文或特定语言的文本。 由于 Davinci 是最复杂的模型,因此其延迟高于其他模型的延迟。 Curie 比 Davinci 更快,并且能够汇总对话。

这些测试表明,当你通过少量样本或微调方法向模型提供更多说明时,可以生成更好的摘要。 微调模型更擅长遵守从训练数据集中习得的结构和上下文。 当摘要特定于域时 (例如,从医生的笔记或在线处方客户支持处生成摘要时),此功能特别有用。 如果使用微调,则可以更好地控制你看到的摘要类型。

为了便于比较,下面汇总了前面显示的结果:

基本事实

客户想要知道游戏离开 Game Pass 后,他们可以访问游戏的时长。 代理告诉客户,他们需要购买游戏才能继续拥有访问权限。

Davinci 零样本结果

客户询问游戏离开 Xbox Game Pass 目录后,他们还可以访问游戏多长时间。 代理告诉他们,他们需要从适用于 Windows 或 Microsoft Store 的 Xbox 应用购买游戏的数字副本才能继续玩游戏。 代理还提醒客户,在游戏离开 Xbox Game Pass 目录之前,他们会收到通知。 作为会员,客户可以以最高 20% 的折扣或可用的最高折扣购买目录中的任何游戏。

Curie 零样本结果

客户向代理询问 Xbox Game Pass。 代理告诉客户,游戏离开 Xbox Game Pass 目录后,客户需要从适用于 Windows 或 Microsoft Store 的 Xbox 应用购买数字副本、通过光盘玩游戏,或获取其他形式的资格以继续玩游戏。 代理还提醒客户,Xbox 将在游戏离开 Xbox Game Pass 目录之前通知成员。

Davinci 少量样本结果

客户想知道游戏离开 Game Pass 目录后,他们可以访问游戏的时长。 代理告知他们,一旦游戏离开 Xbox Game Pass 目录,客户将需要购买数字副本或获取其他形式的资格才能继续玩游戏。

Curie 少量样本结果

客户有关于 Game Pass 的问题。 客户很好。 代理需要有关 Xbox Game Pass 的帮助。 客户询问游戏离开 Game Pass 目录后,他们可以访问游戏的时长。 代理告诉客户,游戏离开 Xbox Game Pass 目录后,客户需要从适用于 Windows 或 Microsoft Store 的 Xbox 应用购买数字副本、通过光盘玩游戏,或获取其他形式的资格以继续玩游戏。 客户很高兴听到这一消息,并感谢了代理。

Curie 微调结果

客户想要知道游戏离开 Game Pass 后,他们可以访问游戏的时长。 代理解释道,游戏离开 Xbox Game Pass 目录后,客户需要从适用于 Windows 或 Microsoft Store 的 Xbox 应用购买数字副本、通过光盘玩游戏,或获取其他形式的资格以继续玩游戏。

评估摘要

有多种技术可用于评估摘要模型的性能。

下面是一些建议:

ROUGE (Gist 评估的重新调用替补)。 此技术包括通过将摘要与人工创建的理想摘要进行比较以自动确定摘要质量的度量值。 这些度量值计算被评估的计算机生成的摘要和理想摘要之间的重叠单位 (如 n-gram、字词序列和字词对) 的数量。

下面是一个示例:

reference_summary = "The cat ison porch by the tree"
generated_summary = "The cat is by the tree on the porch"
rouge = Rouge()
rouge.get_scores(generated_summary, reference_summary)
[{'rouge-1': {'r':1.0, 'p': 1.0, 'f': 0.999999995},
  'rouge-2': {'r': 0.5714285714285714, 'p': 0.5, 'f': 0.5333333283555556},
  'rouge-1': {'r': 0.75, 'p': 0.75, 'f': 0.749999995}}]

BertScore。 此技术在令牌级别上对齐生成摘要和参考摘要,从而计算相似性分数。 贪婪计算令牌对齐,从而最大程度地提高 BERT 中上下文化令牌嵌入之间的余弦相似性。

下面是一个示例:

  import torchmetrics
  from torchmetrics.text.bert import BERTScore
  preds = "You should have ice cream in the summer"
  target = "Ice creams are great when the weather is hot"
  bertscore = BERTScore()
  score = bertscore(preds, target)
  print(score)

相似性矩阵相似性矩阵表示摘要评估中不同实体之间的相似性。 可以将其用于比较同一文本的不同摘要并衡量它们的相似性。 它由二维网格表示,其中每个单元格都包含两个摘要之间相似性的度量值。 可以使用各种方法衡量相似性,例如余弦相似性、Jaccard 相似性和编辑距离。 然后,使用矩阵比较摘要,并确定哪一个摘要是原始文本最准确的表示形式。

下面是示例命令,用于生成两个类似句子的 BERTScore 比较的相似性矩阵:

bert-score-show --lang en -r "The cat is on the porch by the tree"
                          -c "The cat is by the tree on the porch"
                          -f out.png

第一个句子“猫在树旁的门廊上”被称为候选项。 第二个句子被称为参考语句。 命令使用 BERTScore 比较句子并生成矩阵。

以下矩阵显示上述命令生成的输出:

显示相似性矩阵的图表。

有关详细信息,请参阅SummEval:重新评估摘要评估。 有关用于摘要的 PyPI 工具包,请参阅 Summ-eval 0.892

负责任使用

GPT 可以生成出色的结果,但你需要检查输出结果在社会、道德和法律方面的偏见以及是否存在有害的结果。 微调模型时,需要删除可能对模型学习有害的任何数据点。 可以通过“红队演练”来识别模型的任何有害输出。 可以手动实现此过程,并使用半自动化方法对其进行支持。 可以使用语言模型生成测试用例,然后使用分类器检测测试用例中的有害行为。 最后,应对生成的摘要执行手动检查,以确保它们已可供使用。

有关详细信息,请参阅对语言模型和语言模型进行“红色演练”

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

主要作者:

其他参与者:

若要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。

后续步骤