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

你很有可能问过聪明的演讲者一个问题,比如“珠穆朗玛峰有多高?”如果你问了,它可能会说,“珠穆朗玛峰海拔 29032 英尺。”你有没有想过它是如何为你找到答案的?
问答系统是一个由信息检索( ir )和自然语言处理( nlp )组成的系统,主要负责以自然语言回答人类提出的问题。如果您不熟悉信息检索,它是一种从数据库中的资源库、网页或文档中获取查询相关信息的技术。理解这个概念最简单的方法就是你每天使用的搜索引擎。
然后,您需要 nlp 系统在 ir 系统中查找与查询相关的答案。虽然我刚刚列出了构建 qa 系统所需的内容,但从头开始构建 ir 和 nlp 并不是一项简单的任务。以下是 nvidia riva 如何使开发 qa 系统变得容易。
riva 概述
nvidia riva 是一款 gpu – 加速 sdk ,用于构建使用端到端深度学习管道的多模式对话 ai 服务。 riva 框架包括针对语音、视觉和自然语言理解( nlu )任务的优化服务。除了为您的对话 ai 服务的整个管道提供几个预先训练的模型外, riva 的体系结构也适合大规模部署。在本文中,我将仔细研究 riva 的 qa 功能,以及如何使用它创建自己的 qa 应用程序。
riva 质量保证功能
要了解 riva qa 功能的工作原理,请从 transformers ( bert )的双向编码器表示开始。这是谷歌在 2018 年开发的一种基于 transformer 的 nlp 预训练方法,它彻底改变了 nlp 领域。 bert 理解文本中给定单词的上下文表示。它是根据包括维基百科在内的大量数据进行预训练的。
使用预训练的 bert ,一个强大的 nlp 引擎,您可以进一步微调它,以对许多问答对执行 qa ,就像斯坦福问答数据集( squad )中的问答对一样。该模型现在可以从给定的上下文中找到自然语言问题的答案:句子或段落。图 1 显示了一个 qa 示例,其中突出显示了“重力”一词,作为对“是什么导致降水量下降?”问题的回答。在本例中,段落是上下文,成功微调的 qa 模型返回单词“重力”作为答案。
图 1 团队数据集中一篇示例文章的问答对。
使用 riva 创建 qa 系统
nvidia 的工程师和研究人员团队提供了质量保证功能,您可以直接使用 riva 。 riva nlp 服务提供了一组高级 api 操作,包括 qa 、 naturalquery 。 wikipedia api 操作允许您获取在线百科全书 wikipedia 上发布的文章,并使用自然语言进行查询。这就是我之前讨论过的信息检索系统。结合 wikipediaapi 操作和 riva qa 函数,您可以使用几行 python 代码创建一个简单的 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 现在,创建一个输入查询。使用 wikipedia api 操作获取相关文章,并定义要获取的文章数量,定义为 max_articles_combine 。问一个问题,“什么是语音识别?”然后打印出搜索返回的文章的标题。最后,将每篇文章的摘要添加到变量 combined_summary 中。
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(fgetting summary for: {article})        combined_summary += + wiki.summary(article) 图 2 .维基百科 api 操作获取的文章标题。
接下来,打开指向 riva 服务器运行位置的 grpc 通道。因为您正在本地运行 riva 服务器,所以它是“ localhost:50051 ”。然后,实例化 naturalqueryrequest ,并向 riva 服务器发送请求,同时传递查询和上下文。最后,打印从 riva 服务器返回的响应。
channel = grpc.insecure_channel('localhost:50051')riva_nlp = rnlp_srv.rivalanguageunderstandingstub(channel)req = rnlp.naturalqueryrequest()req.query = input_queryreq.context = combined_summaryresp = riva_nlp.naturalquery(req)print(fquery: {input_query})print(fanswer: {resp.results[0].answer}) 图 3 .查询和回答示例
概括
使用 riva qa 和 wikipedia api 操作,您只需创建一个简单的 qa 应用程序。如果维基百科中有一篇文章与你的查询相关,理论上你可以找到答案。想象一下,你有一个数据库,里面装满了与你的领域、公司、行业或任何感兴趣的东西相关的文章。您可以创建一个 qa 服务,该服务可以找到特定于您感兴趣领域的问题的答案。显然,您需要一个 ir 系统从数据库中获取相关文章,就像本文中使用的 wikipedia api 操作一样。当你有了红外系统, riva 可以帮你找到答案。我们期待着您将使用 riva 创建的酷应用程序。
关于作者
james sohn 是 nvidia 的深度学习技术营销工程师,专注于多模态对话 ai 框架 riva 。杰姆斯获得了西北大学的机器人学硕士学位,在那里他专注于计算机视觉和人体运动建模与机器学习。


中电照明许岩峰:LED研讨会对我们具有指导意义
诺基亚8210手机旅行充电器电路
卡扣设计的排针和母连接器更适用于汽车测试设备
庆荣耀商城周岁生日 万份好礼等你来开启
视觉信号辅助的自然语言文法学习
如何使用NVIDIA Riva快速创建自己的QA应用程序
区块链对组织制度变革的影响
如何简化Kubernetes中的GPU管理
高通骁龙865移动平台首次将“端游级正向渲染”带入安卓平台
基于RFID技术的营区车辆管理的设计方案
红外线防盗报警系统电路设计
指纹识别模块厂家详解,指纹识别模块价格介绍
Forkgen比特币分叉生成器的诞生将可以生成属于自己的分叉币
全球首款量产无人驾驶纯电SUV多场景开启100%自主泊车功能
智慧警务系统的逻辑架构和实现应用设计
GaN已非小功率快充那么low,大功率路线开启在即!
传明年2月Apple Pay将在中国登录
ASML与卡尔蔡司合作研发EUV光刻系统 2024年问世
音频前级放大器制作教程 基于LM358
iMovee发布无线袖珍移动电视转发器Mobeo