0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

星星科技指导员 来源:NVIDIA 作者:James Sohn 2022-04-22 09:16 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

你很有可能问过聪明的演讲者一个问题,比如“珠穆朗玛峰有多高?”如果你问了,它可能会说,“珠穆朗玛峰海拔 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 模型返回单词“重力”作为答案。

poYBAGJiAfuAeeaJAAFz-ebew9I886.png

图 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 grpc
import riva_api.riva_nlp_pb2 as rnlp
import 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 = 3
combined_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)
图 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_query
req.context = combined_summary
resp = riva_nlp.NaturalQuery(req)

print(f"Query: {input_query}")
print(f"Answer: {resp.results[0].answer}")
图 3 .查询和回答示例

概括

使用 Riva QA 和 Wikipedia API 操作,您只需创建一个简单的 QA 应用程序。如果维基百科中有一篇文章与你的查询相关,理论上你可以找到答案。想象一下,你有一个数据库,里面装满了与你的领域、公司、行业或任何感兴趣的东西相关的文章。您可以创建一个 QA 服务,该服务可以找到特定于您感兴趣领域的问题的答案。显然,您需要一个 IR 系统从数据库中获取相关文章,就像本文中使用的 Wikipedia API 操作一样。当你有了红外系统, Riva 可以帮你找到答案。我们期待着您将使用 Riva 创建的酷应用程序。

关于作者

James Sohn 是 NVIDIA 的深度学习技术营销工程师,专注于多模态对话 AI 框架 Riva 。杰姆斯获得了西北大学的机器人学硕士学位,在那里他专注于计算机视觉和人体运动建模与机器学习

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    5496

    浏览量

    109087
  • 机器学习
    +关注

    关注

    66

    文章

    8541

    浏览量

    136232
  • 深度学习
    +关注

    关注

    73

    文章

    5590

    浏览量

    123901
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NVIDIA DGX Spark助力构建自己的AI模型

    2025 年 1 月 6 日,NVIDIA 正式宣布其 Project DIGITS 项目,并于 3 月 18 日更名为 NVIDIA DGX Spark,进一步公布了产品细节。DGX Spark
    的头像 发表于 11-21 09:25 533次阅读
    <b class='flag-5'>NVIDIA</b> DGX Spark助力构建<b class='flag-5'>自己</b>的AI模型

    学生适合使用的SOLIDWORKS 云应用程序

    随着科技的不断发展,计算机辅助设计(CAD)技术已经成为现代工程教育的重要组成部分。SOLIDWORKS作为一款CAD软件,其教育版云应用程序为学生提供了强大而灵活的设计平台。本文将探讨
    的头像 发表于 09-15 10:39 512次阅读
    学生适合使用的SOLIDWORKS 云<b class='flag-5'>应用程序</b>

    外围设备通过手机连接到BLE应用程序,为什么不能连接到Infineaon BLE?

    使用 ch06_ex01_periab \" le 项目创建了外围设备。\" \" 使用像 LightBlue 这样的移动应用程序,我能够连接到这个外围设备并更改特征值。 我已经使用 \"
    发表于 07-07 08:06

    NVIDIA技术助力企业创建主权AI智能体

    AI Factory 的经验证设计将加速基础设施与软件(包括全新 NVIDIA NIM 微服务和经扩展的 NVIDIA Blueprint)相结合,为各国和企业简化了全栈式 AI 开发的流程。
    的头像 发表于 06-16 14:28 1081次阅读

    第三届NVIDIA DPU黑客松开启报名

    碰撞的绝佳机会。本次竞赛采用开放式主题,参与者将通过 NVIDIA DOCA 软件框架构建创新的加速应用程序,充分挖掘 NVIDIA BlueField DPU 在 AI、网络、存储和安全等领域的强大潜能。
    的头像 发表于 05-27 10:16 743次阅读

    如何使用CYUSB3KIT-003使用GPIO访问SRAM的应用程序

    你好。我是CYUSB3的初学者。 我想创建一个使用 CYUSB3KIT-003 使用 GPIO 访问 SRAM 的应用程序。 目前我已经在我的电脑上安装了SDK,但是有什么参考资料吗?
    发表于 05-14 06:51

    ServiceNow携手NVIDIA构建150亿参数超级助手

    Apriel Nemotron 15B 开源大语言模型 (LLM) 使用 NVIDIA NeMo、NVIDIA Llama Nemotron 开放数据集以及 ServiceNow 专业领域数据创建而成,并在
    的头像 发表于 05-12 15:37 714次阅读

    请问在NXP板的BSP QA过程中采用了哪些具体的测试方法?

    QA 过程中采用了哪些特定的测试方法? 什么是 QA 流程,以及 yocto/linux BSP 在整个 QA 生命周期中如何跟踪和管理缺陷? RSB 3720 板的 QA
    发表于 03-17 08:04

    AWTK-WEB 快速入门(6) - JS WebSocket 应用程序

    WebSocket可以实现双向通信,适合实时通信场景。本文介绍一下使用Javacript语言开发AWTK-WEB应用程序,并用WebSocket与服务器通讯。用AWTKDesigner新建一个应用程
    的头像 发表于 02-26 11:42 637次阅读
    AWTK-WEB <b class='flag-5'>快速</b>入门(6) - JS WebSocket <b class='flag-5'>应用程序</b>

    AWTK-WEB 快速入门(5) - C 语言 WebSocket 应用程序

    导读WebSocket可以实现双向通信,适合实时通信场景。本文介绍一下使用C语言开发AWTK-WEB应用程序,并用WebSocket与服务器通讯。用AWTKDesigner新建一个应用程序先安装
    的头像 发表于 02-19 11:49 894次阅读
    AWTK-WEB <b class='flag-5'>快速</b>入门(5) - C 语言 WebSocket <b class='flag-5'>应用程序</b>

    基于HPM_SDK_ENV开发应用程序的升级处理

    )以及工程创建工具等文件。用户基于HPM_SDK_ENV开发自己应用程序时需要考虑如何维护板级配置文件和应用程序文件的问题。以下3种维护方式:用户将
    的头像 发表于 02-08 13:38 1439次阅读
    基于HPM_SDK_ENV开发<b class='flag-5'>应用程序</b>的升级处理

    如何快速创建用户自定义Board和App工程

    概述自HPM_SDKv1.7.0发布开始,在HPM_ENV中新增了user_template文件夹,以方便用户快速创建自定义的Board和App工程。user_template是用户模板工程,用户
    的头像 发表于 02-08 13:38 999次阅读
    如何<b class='flag-5'>快速</b><b class='flag-5'>创建</b>用户自定义Board和App工程

    AWTK-WEB 快速入门(4) - JS Http 应用程序

    导读XMLHttpRequest改变了Web应用程序与服务器交换数据的方式,fetch是其继任者。本文介绍一下如何使用JS语言开发AWTK-WEB应用程序,并用fetch访问远程数据。用AWTKDesigner新建一个应用程
    的头像 发表于 01-22 11:31 731次阅读
    AWTK-WEB <b class='flag-5'>快速</b>入门(4) - JS Http <b class='flag-5'>应用程序</b>

    BQ78412应用程序编程接口

    电子发烧友网站提供《BQ78412应用程序编程接口.pdf》资料免费下载
    发表于 12-18 14:46 0次下载
    BQ78412<b class='flag-5'>应用程序</b>编程接口

    TAS2521应用程序参考指南

    电子发烧友网站提供《TAS2521应用程序参考指南.pdf》资料免费下载
    发表于 12-10 13:49 0次下载
    TAS2521<b class='flag-5'>应用程序</b>参考指南