Huggingface Transformers各类库介绍(Tokenizer、Pipeline)

news2024/11/25 15:40:07

目录

  • 前言
  • 0、transformers的安装以及介绍
    • 0-1、 介绍
    • 0-2、安装
  • 一、分词——transformers.AutoTokenizer
    • 1-0、相关参数介绍(常用参数介绍)
    • 1-1、加载、保存
    • 1-2、使用以及原理
  • 二、黑盒子——transformers.pipeline
    • 2-0、pipeline怎么理解?
    • 2-1、目前可用的pipeline以及简单的小栗子
  • 总结


前言

周四了,日复一日的时间过得飞快!

0、transformers的安装以及介绍

0-1、 介绍

Huggingface是一家在NLP社区做出杰出贡献的纽约创业公司,其创建的库Transformers被广泛使用,Transformers提供了数以千计针对于各种任务的预训练模型模型,开发者可以根据自身的需要,选择模型进行训练或微调,也可阅读api文档和源码, 快速开发新模型。

0-2、安装

# 安装轻量级Transformers,初学适用,一般情况下够用了。(包含AutoTokenizer、BertTokenizer,别的不知道)
pip install transformers
# 安装开发版本,进阶适用
pip install transformers[sentencepiece]

一、分词——transformers.AutoTokenizer

原理:Tokenizer的主要作用是将文本输入转化为模型可以接受的输入,即数值型的输入。

1-0、相关参数介绍(常用参数介绍)

  • text (str, List[str], List[List[str]]`):就是输入的待编码的序列(或1个batch的),可以是字符串或字符串列表。
  • add_special_tokens(bool, optional, defaults to True) :True就是给序列加上特殊符号,如[CLS],[SEP]
  • padding (Union[bool, str], optional, defaults to False) :给序列补全到一定长度,True or ‘longest’: 是补全到batch中的最长长度,max_length’:补到给定max-length或没给定时,补到模型能接受的最长长度。
  • truncation (Union[bool, str], optional, defaults to False) :截断操作,true or ‘longest_first’:给定max_length时,按照max_length截断,没给定max_lehgth时,到,模型接受的最长长度后截断,适用于所有序列(单或双)。only_first’:这个只针对第一个序列。only_second’:只针对第二个序列。
  • max_length (Union[int, None], optional, defaults to None) :控制padding和truncation的长度。
  • return_tensors (str, optional, defaults to None):返回数据的类型,可选tf’, ‘pt’ or ‘np’ ,分别表示tf.constant, torch.Tensor或np.ndarray

1-1、加载、保存

# tokenizer的加载和保存使用的方法是from_pretrained、save_pretrained
from transformers import AutoTokenizer
from transformers import BertTokenizer

from transformers import  AutoConfig
from transformers import  AutoModel
# 加载分词器
# bert-base-cased这里代表的是bert的基础版本
# 也可以加载本地保存的模型。
tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
# 保存
tokenizer.save_pretrained("no_more")

# 加载模型和加载模型配置
# AutoModel.from_pretrained('bert-base-uncased')
# AutoConfig.from_pretrained('bert-base-uncased')

bert的常用预训练模型:

在这里插入图片描述

1-2、使用以及原理

# 将文本转化为数字
tokenizer("It's impolite to love again", padding=True, truncation=True, return_tensors="pt")

# Tokenizer的过程先分词,后将分词后的token映射为数字
# 1、 分词
token = tokenizer.tokenize("It's impolite to love again")
# ['It', "'", 's', 'imp', '##oli', '##te', 'to', 'love', 'again']
# 2、 映射
ids = tokenizer.convert_tokens_to_ids(token)
# [1135, 112, 188, 24034, 11014, 1566, 1106, 1567, 1254]
# 3、 将映射后的数字再重新转变为文本
str = tokenizer.decode(ids)
# "It's impolite to love again"
# 4、也可以直接用对应的encode将字符串转变为数字
tokenizer.encode("It's impolite to love again")
# [1135, 112, 188, 24034, 11014, 1566, 1106, 1567, 1254]

二、黑盒子——transformers.pipeline

2-0、pipeline怎么理解?

含义:可以理解为一个打包好的黑盒子,内置流水线的处理方法(包含数据读取、数据预处理、创建模型、评估模型结果、模型调参等)。即输入原始数据,直接就可以给出结果,是不是十分方便?

2-1、目前可用的pipeline以及简单的小栗子

feature-extraction 特征提取:把一段文字用一个向量来表示
fill-mask 填词:把一段文字的某些部分mask住,然后让模型填空
ner 命名实体识别:识别文字中出现的人名地名的命名实体
question-answering 问答:给定一段文本以及针对它的一个问题,从文本中抽取答案
sentiment-analysis 情感分析:一段文本是正面还是负面的情感倾向
summarization 摘要:根据一段长文本中生成简短的摘要
text-generation文本生成:给定一段文本,让模型补充后面的内容
translation 翻译:把一种语言的文字翻译成另一种语言

以下为常见任务所用到的模型举例:
在这里插入图片描述
简单举例

# 过程遇到一个无法加载torch下的一个什么配置文件的错误,找了一下午资料不知道是什么原因,一气之下删掉torch,结果问题解决了。
from transformers import pipeline

# 这里使用任务会自动下载对应的模型,注意预留好空间。
# 下载速度很慢,可以直接到末尾参考链接里下载。
# 选择任务为文本生成,使用pipeline
generator = pipeline("text-generation")
generator("In this course, we will teach you how to")

输出:
[{‘generated_text’: 'In this course, we will teach you how to understand and use ’
'data flow and data interchange when handling user data. We ’
'will be working with one or more of the most commonly used ’
'data flows — data flows of various types, as seen by the ’
‘HTTP’}]

参考文章:
Transformers Tokenizer API 的使用.
深度学习pipeline和baseline是什么意思?.
huggingface使用(一):AutoTokenizer(通用)、BertTokenizer(基于Bert).
[NLP] transformers 使用指南.
【Huggingface Transformers】保姆级使用教程02—微调预训练模型 Fine-tuning.
用huggingface.transformers在文本分类任务(单任务和多任务场景下)上微调预训练模型.
【Huggingface Transformers】保姆级使用教程—上.
【学习笔记】Transformers库笔记.

transformers官方文档.
AutoModel文档:.
AutoTokenizer文档:.
Pipeline文档:.
任务模型在这里下载:.


总结

再爱就不礼貌了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/52955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloud:Gateway之限流、熔断

目录 一、服务雪崩简介及压测实践演示 ​编辑 二、sentinel简单模式之流控QPS案例 什么是Sentinel ​ 安装Sentinel控制台 三、sentinel流控简单模式之并发线程数案例 四、sentinel流控之关联模式&链路模式 关联模式 链路模式 五、sentinel降级之平均响应时间&…

Mybatis入门

详细的Mybatis介绍/使用,可以访问: 地址:mybatis – MyBatis 3 | 简介 目录 一、Mybatis介绍 二、依赖 三、什么是rowmapper 四、Mybatis demo 演示 4.1 背景 4.2 JDBC执行sql的流程 &Mybatis 关键要素 4.3 项目的整体结构&…

kubernetes 实战学习

文章目录kubernetes 实战学习1. 资源创建方式2. Namespace3. Pod3.1 使用命令行创建一个 Pod3.2 使用 YAML 文件创建一个 pod3.3 查看 pod 日志3.4 查看 pod IP3.5 进入 pod 查看信息3.6 一个 pod 里同时运行多个容器3.7 pod 和宿主机之间文件拷贝4. Deployment4.1 deployment …

功能测试(一)—— web项目环境与测试流程、业务流程测试

目录 目标 一、web项目环境说明 【了解】 ​编辑 1.1 环境的定义 1.2 环境(服务器)的组成 1.3 面试题:你们公司有几套环境? 二、熟悉商城项目 【了解】 2.1 商城项目的核心业务 2.2 商城项目的核心功能模块 三、测试流程的应用 【重点】 3.1 需…

Java 基础数据类型占用内存空间和字符串编码简介(二)

Java 基础数据类型占用内存空间简介一 计算机简介1.基本概念2.CPU 三级缓存3.本机参数查看二 数据占用内存情况1.多线程Demo2.结果解析1.直接计算2.volatile 计算3.缓存行填充一 计算机简介 结合多线程计算机的硬件,从侧面理解数据存储如何影响我们的程序 1.基本概…

数据结构学习笔记(Ⅶ):查找

目录 1 查找 1.1 定义 1.2 查找操作 1.3 算法评价指标 2 查找算法 2.1 顺序查找 1.算法思想 2.实现 3.查找效率 4.算法优化 2.2 折半查找 1.算法思想 2.算法实现 3.查找判定树 4.折半查找效率 2.3 分块查找 1.算法思想 2.查找效率分析 3 B树 3.1 B树概念 3…

Java#30(扩展知识:可变参数与Collections)

目录 一.可变参数 二.Collections 1.Collections常用的API 一.可变参数 本质: 可变参数本质上是一个数组 作用: 在形参中接收多个数据 格式: 数据类型...参数名称 例如: int...a 代码示范: package Demo;public class Test {public static void main(String[] args) {int s…

单目标优化:蜣螂优化算法(Dung beetle optimizer,DBO)

蜣螂优化算法(Dung beetle optimizer,DBO)由Jiankai Xue和Bo Shen于2022年提出,该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为的启发所得。 一、蜣螂优化算法 1.1蜣螂滚球 (1)当蜣螂前行无障碍时…

redis基础3——配置文件核心参数实测+RDB持久化、AOF持久化核心参数详解

文章目录一、redis.conf配置文件详解1.1 查看配置文件位置1.2 启动需指定配置文件1.3 单位大小写不敏感1.4 引用其他配置文件(包含)1.4.1 测试参数存放前后位置1.4.1.1 反例1.4.1.2 正例1.4.2 测试引用参数有效性1.5 网络相关1.5.1 绑定IP1.5.2 保护模式…

全球领先飞瞳引擎™云服务全球两千+企业用户,集装箱识别集装箱箱况残损检测,正常箱号识别率99.98%以上,箱信息识别及铅封识别免费

全球领先飞瞳引擎™AI集装箱识别检测云服务全球两千企业用户,集装箱识别集装箱箱况残损检测,正常箱号识别率99.98%以上,箱信息识别及铅封识别免费。CIMCAI中集飞瞳是全球应用落地最广,规模最大,最先进的的港航人工智能…

链游新发展方向:告别高强度打金,回归游戏本质

2022 年伊始,加密领域最瞩目的项目要属区块链游戏了。随着 Axie Infinity、Genopets 和 Perion 等公司大获成功,区块链游戏生态系统逐渐进入主流圈。值得一提的是,游戏和 NFT 这两个备受关注的类别在 Web 3 世界中互相成就,创造出…

【简单总结】SLAM 算法的 Benchmark 及相关数据集的结果对比

前言与参考 主要是copy一下总结,方便自己后续找方案特定使用,所有的出处均在标题处和原链接跳转,此处仅做各个benchmark收集使用,如果有原作者觉得侵权,请联系我 将全力配合相关内容和链接删除 如果网友有其他更新的…

代码随想录刷题day51 309.最佳买卖股票时机含冷冻期;714.买卖股票的最佳时机含手续费

代码随想录刷题day51 309.最佳买卖股票时机含冷冻期;714.买卖股票的最佳时机含手续费 股票买卖,前两天的有点忘了正好也复习一下。 309.最佳买卖股票时机含冷冻期 309. 最佳买卖股票时机含冷冻期 - 力扣(Leetcode) 不是很好优…

Java---SpringBoot---SpringBoot

SpringBoot1,SpringBoot简介1.1 SpringBoot快速入门1.1.1 开发步骤1.1.1.1 创建新模块1.1.1.2 创建 Controller1.1.1.3 启动服务器1.1.1.4 进行测试1.1.2 对比1.1.3 官网构建工程1.1.3.1 进入SpringBoot官网1.1.3.2 选择依赖1.1.3.3 生成工程1.1.4 SpringBoot工程快…

尚医通-预约下单中rabbitmq的使用

需求描述 在挂号界面选择完需要挂号的医生和排版后,添加就诊人,确认挂号 附上业务流程图 技术分析 我们今天主要来看看这块 mq 的运用,也是一个思考,我还是挑着重要的来讲,这里讲讲我们这里怎么使用 mq 的 这里会用…

关于λ-optimal的初始化解算法在(元)启发式中的应用

关于λ-optimal算法在启发式中初始化解的应用TSP问题介绍λ-optimal定理与定义算法描述与伪代码算法的优化参考文献这里讨论组合优化中初始解的生成问题。组合优化问题,很多情况下,解的生成是随机的或者是采用某种直观上满足题意的初始化方法&#xff0c…

12月1日(第三天)

四舍五入 Math.round()整形 字符串输出字符串,加字符则输出整形if else if,是互斥关系,同时满足条件,只会被执行前面那个,if if,是并列的关系,条件满足都会执行ORACLE中的操作(来自…

使用SpringBoot将图片上传至阿里云OSS

一. 对象存储OSS 1. 什么是OSS? 官方的解释是这样的:阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。 官网…

我开发的开源项目,让.NET7中的EFCore更轻松地使用强类型Id

在领域驱动设计(DDD)中,有一个非常重要的概念:“强类型Id”。使用强类型Id来做标识属性的类型会比用int、Guid等通用类型能带来更多的好处。比如有一个根据根据Id删除用户的方法的签名如下: void RemoveById(long id)…

【毕业设计】9-基于STM32无刷直流电机控制器的设计仿真与实现(原理图+源码+仿真工程+论文+PPT+参考英文文献)

毕业设计】基于STM32无刷直流电机控制器的设计仿真与实现(原理图源码仿真工程论文PPT参考英文文献) 文章目录毕业设计】基于STM32无刷直流电机控制器的设计仿真与实现(原理图源码仿真工程论文PPT参考英文文献)任务书设计说明书摘要…