世界那么大,我想去看看——探索ModelScope之零样本分类

简介: 世界那么大,我想去看看。这句话,是什么类别? 一个有多年算法工作经验的萌新将在本文中跟大家一起探索ModelScope的零样本分类模型。 文章主要包含实验环境准备、模型测试、原理分析等内容。
+关注继续查看

在开始探索ModelScope上的零样本分类之前,我们先来看看预测结果:

image.png

它竟然知道我想去旅游?难道这个样本已经被训练过了?我们再来试试,你能知道我啥心情吗?

image.png

难道这样本也被训练过了?不可能吧。

接下来,让我们一起探索一下ModelScope的零样本分类。

实验环境准备

依据ModelScope的介绍,实验环境可分为两种情况。笔者在此推荐使用第2种方式,点开就能用,省去本地安装环境的麻烦,直接体验ModelScope。

1 本地环境安装

可参考ModelScope环境安装

2 Notebook

ModelScope直接集成了线上开发环境,用户可以直接在线训练、调用模型。

打开零样本分类模型,点击右上角“在Notebook中打开”,选择机器型号后,即可进入线上开发环境。

实验测试

进入Notebook或本地安装好开发环境后,开始我们的零样本分类之旅吧。

加载模型

使用以下两行命令即可进行零样本分类的模型加载。

from modelscope.pipelines import pipeline
classifier = pipeline('zero-shot-classification', 'damo/nlp_structbert_zero-shot-classification_chinese-base')

运行后,ModelScope自动将指定的模型下载至缓存目录中。此处不得不说,依托于便宜云服务器的ModelScope的模型下载速度令人十分舒畅。

设置标签

与一般的文本分类模型不同,零样本分类模型可以自己设定对应的标签,模型将根据给定的标签进行分类。此处我们先将文本标签设置如下。

labels = ['家居', '旅游', '科技', '军事', '游戏', '故事']

进行分类

接着,输入文本进行分类。这里输入的文本当然是“世界那么大,我想去看看”了!

sentence = '世界那么大,我想去看看'
classifier(sentence, candidate_labels=labels)

最后,我们得到了以下结果:

image.png

按照这返回格式判断,labels是我们设定的标签,scores则是每个标签的概率分布。从返回的结果中,可以发现样本属于旅游的概率远大于其他类别。

多标签分类

在上述分类中,我们还有一个参数没有用到,即multi_label。从零样本分类模型的介绍中可以发现,这个参数是用于设置分类任务是否为多标签分类的。接着,我们也来尝试一下多标签分类任务。

首先,设置标签如下:

labels = ["不开心", "不高心", "高兴", "开心"]

接着,输入文本进行分类,并设置multi_label=True。

sentence = '世界那么大,我想去看看'
result = classifier(sentence, candidate_labels=labels, multi_label=True)

最后我们得到了以下结果。

image.png
其中scores代表的是每个标签的概率,预测结果可以认为是开心和高兴,因他们的概率大于0.5。

原理分析

体验完零样本分类的神奇之后,我们来分析分析它的工作原理。

零样本分类模型介绍中有提到,这是一个基于自然语言推理任务实现的零样本分类模型。因此,我们先来看看什么是自然语言推理任务。

自然语言推理

自然语言推理主要是判断两个句子(前提和假设,Premise and Hypothesis)之间的语义关系,一般定义有(Entailment, Contradiction, Neutral)三个类别,可以当成是一个三分类任务。下面举了3个例子让大家切实感受一下自然语言推理任务。

自然语言推理举例
前提:中间坐着的修鞋匠,就是张永红的父亲
假设:修鞋匠是女的
语义关系:Contradiction(矛盾)
解释:张永红的父亲,当然是男的!

前提:中间坐着的修鞋匠,就是张永红的父亲
假设:修鞋匠是男的
语义关系:Entailment(蕴含)
解释:张永红的父亲是男的,所以前提句子中已经包含了假设句的语义。

前提:中间坐着的修鞋匠,就是张永红的父亲
假设:张永红是男的
语义关系:Neutral(中立)
解释:前提和假设并没有关系。

零样本分类

那么如何基于自然语言推理进行零样本分类任务呢?

通过研读模型零样本分类模型中给出的论文,再结合对ModelScope源码的调试,我们可以发现,答案其实很简单。只要依次将每个的标签当成假设,输入的文本当成前提,进行自然语言推理任务之后,再对所有标签的预测结果进行处理,即可实现零样本分类。

设置三个标签:家居,旅游,科技
输入文本:世界那么大,我想去看看

对以上输入进行零样本分类的时候,将生成以下三个自然语言推理任务的样本:
1. 前提:世界那么大,我想去看看,假设:家居
2. 前提:世界那么大,我想去看看,假设:旅游
3. 前提:世界那么大,我想去看看,假设:科技

对三个样本进行自然语言推理的预测之后,最后将预测结果进行整合,即可实现零样本分类任务。例如多分类任务中,可以将“前提句”蕴含“假设句”概率最大的那个假设作为最后的标签。

写在最后

今天初步探索了ModelScope开源社区,整体体验非常顺畅。集成notebook的开发方式十分便捷,排除了开发环境安装的困扰,非常适合深度学习开发者直接对各类模型进行学习研究。另外,ModelScope上的模型种类十分丰富,大家也可以多多尝试学习,毕竟现在CPU机器免费使用~image.png

目录
相关文章
|
21天前
|
人工智能 自然语言处理 数据安全/隐私保护
【玩转ModelScope有奖征文活动】全新中文大模型竞技场上手评测
近年来,人工智能领域取得了巨大的进展,其中中文自然语言处理(NLP)领域尤为突出。这一进展的关键因素之一是中文大型语言模型的崛起,如BERT、GPT-3和其后继者,等。为了评估这些模型的性能和效用,进行中文大模型评测变得至关重要。本文将深入探讨中文大模型评测的关键方面,方法和洞见。本次测试主要模型为ChatGLM,moss-moon-003-sft,BiLLa-7B-SFT和BELLE-LLaMA-13B-2M等
688 32
【玩转ModelScope有奖征文活动】全新中文大模型竞技场上手评测
|
30天前
|
机器学习/深度学习 人工智能 自然语言处理
ModelScope大模型测评
近年来,随着人工智能技术的不断发展,大模型已经成为了人工智能领域的重要研究方向。大模型是指拥有数百万甚至数十亿个参数的神经网络模型,能够完成许多复杂的任务,如自然语言处理、图像识别等。大模型的出现极大地推动了人工智能技术的发展,也为人类社会带来了巨大的变革。
ModelScope大模型测评
|
1月前
|
自然语言处理 大数据 Python
关于阿里ModelScope模型
通过查看模型回答对阿里ModelScope模型进行评测分析
100 0
|
1月前
|
人工智能 自然语言处理 5G
ModelScope中文竞技场大模型测评
对双模型匿名对话的写作创作,知识常识和人类价值观方面进行分析
67 1
|
1月前
|
机器人 测试技术 开发者
ModelScope中文模型测评
Modelscope可以帮助研究人员和开发者对模型进行性能分析等。本次我体验了知识常识,人类价值观和写作创作相关这三个对话类型场景,下面是我对测试模型的分析与看法
157 1
 ModelScope中文模型测评
|
1月前
|
自然语言处理 测试技术
ModelScope中文竞技场模型测试
ModelScope中文竞技场是一个创新性的应用测试平台,专注于评估和提升自然语言处理(NLP)模型在中文语境下的性能。该平台为研究人员、工程师和数据科学家提供了一个丰富多样的测试环境,用于测试和比较不同NLP模型在各种任务上的表现。这也使的我们了解它们在不同任务上的相对表现,选择更适合使用场景的回答。下面?就是基于该应用测试结果(使用到的对话类型为:代码相关,人类价值观,NLP 专业领域):
78 2
|
1月前
|
人工智能 自然语言处理 搜索推荐
ModelScope模型测评
ModelScope模型测评
|
1月前
|
自然语言处理 搜索推荐 开发者
ModelScope中文竞技场模型使用测评
ModelScope中文竞技场模型使用测评
|
1月前
|
人工智能 自然语言处理 搜索推荐
对ModelScope模型进行测评分析
对ModelScope模型进行测评分析
64 0
相关产品
机器学习平台 PAI
文字识别
视觉智能开放平台
推荐文章
更多


http://www.vxiaotou.com