transformers库的使用【一】

您所在的位置:网站首页 generate函数分词作用 transformers库的使用【一】

transformers库的使用【一】

2024-07-17 09:13:01| 来源: 网络整理| 查看: 265

transformers库的使用

使用pipeline API来快速使用一些预训练模型

使用预训练模型最简单的方法就是使用pipeline(),transformers提供了一些任务:

1、情感分析(Sentment analysis):分析文本是正面的还是负面的 2、文本生成(in English):提供一个语句,模型将生成这条语句的下一句

3、命名实体识别(NER):在输入的语句中,对每个单词进行标记,来揭示该单词的含义(比如人物、地点等等)

4、问题回答:输入一段文本以及一个问题,来从文本中抽取出这个问题的答案

5、填补被遮蔽的文本:输入一段文本,其中一些单词被[MASK]标签取代,模型填补这些被遮蔽的文本

6、摘要生成:产生一段长文本的摘要

7、翻译:将一种语言的文本翻译成另一种语言

8、特征抽取:得到一段文本的tensor表示

接下来是一个情感分析的例子:

from transformers import pipeline classifier = pipeline('sentiment-analysis')

当第一次执行这段代码的时候,会下载一个预训练模型(Pre-training model)以及他的一个标记器(tokenizer),标记器的作用是对文本进行预处理,随后模型会对处理过后的文本进行预测。

classifier('We are very happy to show you the Transformers library.')

[{'label':'POSITIVE','score':0.9997795224189758}]

可以看到返回值为一个列表,其中包含一个字典,字典中有两个元素,分别是这个句子的表情以及分数。

上面的例子只是输入一个句子进行情感分析,如果我们需要处理很多句子时,只需要把句子放到一个列表(list)中

sentences=["We are very happy to show you the Transformers library", "We hope you don't hate it"] results = classifier(sentences) for result in results: print(f"label:{result['label']},with score:{round(result['score'],4)}")

这里我们将两个句子以列表的形式送入classifier中,随后对得到的结果用一个for循环进行打印,得到的结果如下:

label: POSITIVE, with score: 0.9998 label: NEGATIVE, with score: 0.5309

可以看到,模型把第一个句子分成了积极,第二个句子分成了消极,但实际上第二个句子的得分更接近于一个中性。

回过头来再看这个模型,当我们创建这个模型的时候,它会默认下载一个叫做"distilbert-base-uncased-finetuned-sst-2-english"的模型,这个模型是使用DistillBERT architecture 以及在SST-2数据集上进行微调的模型。

如果希望不使用这个默认的数据集,比如说,我希望使用一个在法语数据上训练的模型。我们可以在这个网站 model hub(https://huggingface.co/models)来查看一些模型,这个网址收集了许多的由实验室训练出来的模型,同时还有一些社区模型(社区模型是指在一些特殊的数据集上对一些模型进行微调得到的模型)。

那么我们使用标签"French"以及"text-classification"进行搜索的时候,会得到一个结果"nlptown/bert-base-multilingual-uncashed-sentiment"

接下来看一下如何使用这个模型:

classifier = pipeline('sentiment-analysis',model="nlptown/bert-base-multilingual-uncashed-sentiment")

可以看到,这个分类器的定义和之前相比,只是在创建pipeline()的时候多指定了一个model字段。

还可以在指定模型的时候用存放了模型的本地的文件夹来指定模型,或者传递一个模型以及这个模型的标记器。

这个分类器不仅仅能处理英语,法语,甚至能处理西班牙语,德语。

接下来我们需要两个类,一个是AutoTokenizer,这个类是用来自动下载与模型相关联的标记器,并且可以进行实例化。

第二个类是AutoModelForSequenceClassification(在Tensorflow中是TFAutoModelForSequenceClassification)用来去下载模型本身。(注意:⚠️如果我们在别的任务上使用这个库,模型的类会发生改变)

from transformers import AutoTokenizer,AutoModelForSequenceClassification

为了下载我们那之前指定的模型和标记器,需要使用一个叫做from_pretrained()的方法

model_name ="nlptown/bert-base-multilingual-uncashed-sentiment" model = AutoModelForSequenceClassification.from_pretrained(model_name) tokenizer = AutoTokenizer.from_pretrained(model_name) classifier = pipeline('sentiment-analysis',model=model,tokenizer=tokenizer)

在创建pipeline实例的时候,指明模型以及标记器。

如果你没有找到一个在和你用到的数据类似的预训练模型,你需要去自己把模型用在你的数据上并进行微调。

 



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


    图片新闻

    实验室药品柜的特性有哪些
    实验室药品柜是实验室家具的重要组成部分之一,主要
    小学科学实验中有哪些教学
    计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
    实验室各种仪器原理动图讲
    1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
    高中化学常见仪器及实验装
    1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
    微生物操作主要设备和器具
    今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
    浅谈通风柜使用基本常识
     众所周知,通风柜功能中最主要的就是排气功能。在

    专题文章

      CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭