ModelScope体验:自然语言推理模型应用

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 自然语言推理,即输入形如(前提句,假设句)的句子对数据,模型会给出该句子对应的自然语言推理标签(contradiction、entailment、neutral)以及相应的概率,从而反映出句子对之间的关系。本文以“达摩自然语言推理”模型为例,展示了如果调用ModelScope工具,并通过gradio将该功能部署为小程序的过程。

操作步骤

参考模型文档快速开始


环境准备

ModelScope提供了本地(参考环境配置模型下载)和远程环境两种模式,这里选择了使用ModelScope提供的远程环境,即Notebook进行开发,更加便捷。

通过个人中心进入到实例启动页面,这里选择CPU环境启动Notebook:

进入到如图所示的交互页面,选择以Notebook方式运行

即可进入正常的Notebook页面:


模型调试

通过如下命令,即可在Notebook环境下自动下载所需推理模型。这里通过pipeline()函数,以一行代码实现了模型定义,其中第一个参数为任务名称,第二个参数为模型地址,这里选用了达摩自然语言推理模型(base),该模型为在structbert-base-chinese预训练模型的基础上,用CMNLI、OCNLI两个数据集(45.8w条数据)微调训练出来的自然语言推理模型。。

frommodelscope.pipelinesimportpipelinefrommodelscope.utils.constantimportTaskssemantic_cls=pipeline(Tasks.nli, 'damo/nlp_structbert_nli_chinese-base')

在定义好模型调用函数后,即可输入句子对实现模型调用:

semantic_cls(input=[('商务职业学院和财经职业学院哪个好?', '商务职业学院商务管理在哪个校区?')])

得到返回结果:

返回输入句子对可能的三种关系contradiction, entailment和neutral的概率,如上所示,该输入句子对之间最有可能为neutral关系,基本符合我们的人工判断,说明模型效果还是不错的。

除了输入单对句子,也可以将多对句子作为模型输入,以列表输入为例:

sen_list1= ['商务职业学院和财经职业学院哪个好?', '我爱中国']
sen_list2= ['商务职业学院商务管理在哪个校区?', '我很爱中国']
sen_pairs= []
forkinrange(len(sen_list1)):
sen_pairs.append((sen_list1[k], sen_list2[k]))
semantic_cls(input=(sen_pairs))

从而得到如下的两组返回结果,可见第一个句子对结果与上述相同,第二个句子对则更有可能为entailment关系,也基本符合我们的判断。

下面,我们展示如何通过一个web ui将该功能封装起来,形成一个小的app。


引入web ui

安装gradio:pip install gradio

运行以下代码:

importgradioasgrsemantic_cls=pipeline(Tasks.nli, 'damo/nlp_structbert_nli_chinese-base')
defnatural_language_inference(text1, text2):
res=semantic_cls(input=(text1, text2))
returnresserver=gr.Interface(
fn=natural_language_inference, 
inputs=[
gr.Textbox(lines=1, placeholder="请输入文本1"),
gr.Textbox(lines=2, placeholder="请输入文本2")
    ], 
outputs="text")
server.launch(share="true")

注意,最后server.launch的参数share=“true”表示该应用可以在Public URL上访问,否则只能在Local URL上访问。


最终,该应用呈现如下:


体验优化建议

  • 当前模型文档还比较简单,仅有单句子对输入示例,可以考虑加入多句子对和数据文件作为输入的示例,以提高用户使用效率。
  • 当前结果输出为按候选类别概率从小到大排列,可以考虑按照从大到小排列,更符合阅读习惯。
相关文章
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术在自然语言处理中的应用与挑战
【10月更文挑战第3天】本文将探讨AI技术在自然语言处理(NLP)领域的应用及其面临的挑战。我们将分析NLP的基本原理,介绍AI技术如何推动NLP的发展,并讨论当前的挑战和未来的趋势。通过本文,读者将了解AI技术在NLP中的重要性,以及如何利用这些技术解决实际问题。
|
21天前
|
自然语言处理 API C++
阿里通义推出SmartVscode插件,自然语言控制VS Code,轻松开发应用,核心技术开源!
SmartVscode插件深度解析:自然语言控制VS Code的革命性工具及其开源框架App-Controller
|
2月前
|
自然语言处理 算法 Python
自然语言处理(NLP)在文本分析中的应用:从「被动收集」到「主动分析」
【10月更文挑战第9天】自然语言处理(NLP)在文本分析中的应用:从「被动收集」到「主动分析」
50 4
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI在自然语言处理中的创新应用
【10月更文挑战第7天】本文将深入探讨人工智能在自然语言处理领域的最新进展,揭示AI技术如何改变我们与机器的互动方式,并展示通过实际代码示例实现的具体应用。
44 1
|
12天前
|
人工智能 自然语言处理
Promptriever:信息检索模型,支持自然语言提示响应用户搜索需求
Promptriever 是一种新型信息检索模型,由约翰斯·霍普金斯大学和 Samaya AI 联合推出。该模型能够接受自然语言提示,并以直观的方式响应用户的搜索需求。通过在 MS MARCO 数据集上的训练,Promptriever 在标准检索任务上表现出色,能够更有效地遵循详细指令,提高查询的鲁棒性和检索性能。
43 6
Promptriever:信息检索模型,支持自然语言提示响应用户搜索需求
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术在自然语言处理中的应用
随着人工智能技术的不断发展,自然语言处理(NLP)已经成为了一个重要的应用领域。本文将介绍一些常见的NLP任务和算法,并通过代码示例来展示如何实现这些任务。我们将讨论文本分类、情感分析、命名实体识别等常见任务,并使用Python和相关库来实现这些任务。最后,我们将探讨NLP在未来的发展趋势和挑战。
|
15天前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI在自然语言处理中的创新应用
本文旨在揭示人工智能技术如何革新自然语言处理领域。我们将从基础的文本分析到复杂的情感识别,逐步深入探讨AI如何提升语言理解的准确性和效率。文章将通过实际代码示例,展示AI技术在自然语言处理中的应用,并讨论其对日常生活的潜在影响。读者将获得关于AI技术在理解和生成自然语言方面的实用知识,以及如何将这些技术应用于解决现实世界问题的见解。
|
26天前
|
机器学习/深度学习 自然语言处理 监控
探索深度学习在自然语言处理中的应用与挑战
本文深入分析了深度学习技术在自然语言处理(NLP)领域的应用,并探讨了当前面临的主要挑战。通过案例研究,展示了如何利用神经网络模型解决文本分类、情感分析、机器翻译等任务。同时,文章也指出了数据稀疏性、模型泛化能力以及计算资源消耗等问题,并对未来的发展趋势进行了展望。
|
29天前
|
人工智能 自然语言处理 API
探索AI在自然语言处理中的应用
【10月更文挑战第34天】本文将深入探讨人工智能(AI)在自然语言处理(NLP)领域的应用,包括语音识别、机器翻译和情感分析等方面。我们将通过代码示例展示如何使用Python和相关库进行文本处理和分析,并讨论AI在NLP中的优势和挑战。
|
1月前
|
机器学习/深度学习 自然语言处理 PyTorch
从零开始构建nlp情感分析模型!
本教程介绍了如何使用PyTorch和Hugging Face的Transformers库构建一个情感分析模型。主要内容包括导入所需库、读取训练数据集、加载预训练的BERT模型和分词器、定义情感数据集类、划分训练集和验证集、创建数据加载器、设置训练参数、训练模型、评估模型性能以及定义和测试预测函数。通过这些步骤,可以实现一个简单而有效的情感分析模型。
112 2

热门文章

最新文章

相关产品

  • 自然语言处理