如何使用NVIDIA Riva快速创建自己的QA应用程序

网友投稿 375 2022-11-01

如何使用NVIDIA Riva快速创建自己的QA应用程序

你很有可能问过聪明的演讲者一个问题,比如“珠穆朗玛峰有多高?”如果你问了,它可能会说,“珠穆朗玛峰海拔 29032 英尺。”你有没有想过它是如何为你找到答案的?

问答系统是一个由信息检索( IR )和自然语言处理( NLP )组成的系统,主要负责以自然语言回答人类提出的问题。如果您不熟悉信息检索,它是一种从数据库中的资源库、网页或文档中获取查询相关信息的技术。理解这个概念最简单的方法就是你每天使用的搜索引擎。

然后,您需要 NLP 系统在 IR 系统中查找与查询相关的答案。虽然我刚刚列出了构建 QA 系统所需的内容,但从头开始构建 IR 和 NLP 并不是一项简单的任务。以下是 NVIDIA Riva 如何使开发 QA 系统变得容易。

Riva 概述

Riva 质量保证功能

使用预训练的 BERT ,一个强大的 NLP 引擎,您可以进一步微调它,以对许多问答对执行 QA ,就像斯坦福问答数据集( SQuAD )中的问答对一样。该模型现在可以从给定的上下文中找到自然语言问题的答案:句子或段落。图 1 显示了一个 QA 示例,其中突出显示了“重力”一词,作为对“是什么导致降水量下降?”问题的回答。在本例中,段落是上下文,成功微调的 QA 模型返回单词“重力”作为答案。

图 1 团队数据集中一篇示例文章的问答对。

使用 Riva 创建 QA 系统

首先安装 Wikipedia API for Python 。接下来,导入 Riva NLP 服务 API 和 gRPC ,这是 Riva 的底层通信框架。

import grpcimport riva_api.riva_nlp_pb2 as rnlpimport riva_api.riva_nlp_pb2_grpc as rnlp_srv

input_query = "What is speech recognition?"wiki_articles = wiki.search(input_query)max_articles_combine = 3combined_summary = ""if len(wiki_articles) == 0:print("ERROR: Could not find any matching results in Wikipedia.")else:for article in wiki_articles[:min(len(wiki_articles), max_articles_combine)]:print(f"Getting summary for: {article}")combined_summary += "" + wiki.summary(article)

接下来,打开指向 Riva 服务器运行位置的 gRPC 通道。因为您正在本地运行 Riva 服务器,所以它是“localhost:50051”。然后,实例化NaturalQueryRequest,并向 Riva 服务器发送请求,同时传递查询和上下文。最后,打印从 Riva 服务器返回的响应。

概括

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:ELK学习笔记之Elasticsearch删除指定日期的数据(脚本+定时任务)
下一篇:ELK学习笔记之Elasticsearch和Kibana数据导出实战
相关文章

 发表评论

暂时没有评论,来抢沙发吧~