【模型学习】

news2024/10/28 5:44:36

https://zhuanlan.zhihu.com/p/522344841

from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(model_checkpoint)
tokenizer("男女主角亦有专属声优这一模式是由谁改编的?", "任天堂游戏谜之村雨城")
{
'input_ids': [101, 5615, 3235, 2111, 7164, 2167, 4461, 2084, 3496, 3173, 2224, 7700, 2072, 4723, 3709, 4380, 5611, 7363, 4282, 6377, 5718, 10083, 102, 2212, 3198, 3102, 5089, 3974, 7379, 2120, 4492, 8289, 3086, 102],
'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
}

在这个示例中,我们使用了Hugging Face的Transformers库中的AutoTokenizer类来创建一个预训练的分词器(tokenizer)。AutoTokenizer.from_pretrained方法用于从预训练模型的检查点(model_checkpoint)加载分词器。然后,我们使用这个分词器对两个文本进行预处理,将它们转换为模型可以理解的输入ID序列、token类型ID序列和注意力掩码(attention mask)序列。

解释
input_ids:这是一个列表,表示输入文本被分词后的ID序列。每个ID对应一个词汇的编码。在这个示例中,input_ids表示了两个文本被分词后的ID序列。

token_type_ids:这是一个列表,表示每个子词的类型(通常用于区分输入文本中的两个文本)。在这个示例中,token_type_ids的值为0或1,表示两个文本的分词结果。

attention_mask:这是一个列表,表示每个子词是否有效(即是否在输入文本中)。在这个示例中,attention_mask的值为1,表示所有子词都是有效的。

示例代码
以下是一个完整的示例代码,展示了如何使用AutoTokenizer对文本进行预处理:

from transformers import AutoTokenizer

# 使用预训练的分词器
tokenizer = AutoTokenizer.from_pretrained("bert-base-chinese")

# 示例文本
text1 = "男女主角亦有专属声优这一模式是由谁改编的?"
text2 = "任天堂游戏谜之村雨城"

# 预处理文本
inputs = tokenizer(text1, text2, return_tensors='pt', max_length=50, truncation=True)

# 查看预处理结果
print(inputs)

input_ids**:这是一个列表,表示输入文本被分词后的ID序列 , 什么意思
在这里插入图片描述

attention_mask 干什么用的
attention_mask在自然语言处理(NLP)中主要用于指示模型在处理输入文本时哪些位置的子词是有效的(即应该考虑),哪些位置的子词是不重要的(如填充符号或特殊标记)。它通常是一个二进制掩码(0或1),其中1表示有效的子词,0表示不重要的子词。

详细解释
有效子词(1):当attention_mask的值为1时,表示该位置的子词是有效的,模型应该考虑它。在预处理文本时,通常会将有效的子词设置为1。

不重要子词(0):当attention_mask的值为0时,表示该位置的子词是不重要的。这些子词通常是填充符号(padding symbols)或特殊标记(如[CLS]和[SEP]),它们在模型的计算过程中不提供有用的信息。

示例
假设我们有一个文本"男女主角是由谁改编的?任天堂游戏谜之村雨城",经过分词后变成了以下子词ID序列:
attention_mask在自然语言处理(NLP)中主要用于指示模型在处理输入文本时哪些位置的子词是有效的(即应该考虑),哪些位置的子词是不重要的(如填充符号或特殊标记)。它通常是一个二进制掩码(0或1),其中1表示有效的子词,0表示不重要的子词。

详细解释
有效子词(1):当attention_mask的值为1时,表示该位置的子词是有效的,模型应该考虑它。在预处理文本时,通常会将有效的子词设置为1。

不重要子词(0):当attention_mask的值为0时,表示该位置的子词是不重要的。这些子词通常是填充符号(padding symbols)或特殊标记(如[CLS]和[SEP]),它们在模型的计算过程中不提供有用的信息。

示例
假设我们有一个文本"男女主角是由谁改编的?任天堂游戏谜之村雨城",经过分词后变成了以下子词ID序列:
为了将这个序列输入模型,我们需要为其创建一个attention_mask。假设我们使用了一个最大长度为50的序列,并且文本长度为23,那么我们需要将attention_mask设置为长度为50的序列,其中前23个位置为1,后27个位置为0:
为了将这个序列输入模型,我们需要为其创建一个attention_mask。假设我们使用了一个最大长度为50的序列,并且文本长度为23,那么我们需要将attention_mask设置为长度为50的序列,其中前23个位置为1,后27个位置为0:
在这个attention_mask中,前23个位置(对应有效的子词)被设置为1,后27个位置(对应填充符号)被设置为0。模型在处理这个输入序列时,只会考虑前23个有效的子词,忽略后面的填充符号。

使用场景
attention_mask在多种场景中都非常有用,包括但不限于:

文本分类:在分类任务中,可能需要将输入文本截断到一个固定的长度,并使用attention_mask来指示模型哪些位置的子词是有效的。

序列对齐:在机器翻译任务中,源文本和目标文本的长度可能不同,使用attention_mask可以帮助模型区分哪些位置的子词是源文本的哪些位置的子词。

问答任务:在问答任务中,输入文本可能包含多个段落,使用attention_mask可以帮助模型区分哪些位置的子词属于哪个段落。

通过attention_mask,模型可以更准确地理解输入文本的结构和内容,从而提高模型的性能和准确性。

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

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

相关文章

数通自学——计算机网络基础知识IP地址、局域网、广域网、NAT、端口映射、子网掩码、网关、IPV4、IPV6

计算机网络基础知识IP地址、局域网、广域网、NAT、端口映射、子网掩码、网关、IPV4、IPV6 一、IP地址1、概念引入2、概念3、组成及分类 二、局域网和广域网1、局域网2、广域网 三、NAT与端口映射四、公网IP、私网IP五、IPV4与IPV6 一、IP地址 1、概念引入 现在思考一个问题&a…

IntelliJ IDEA 查看类class的结构Structure轮廓outline窗口, 快捷键是Alt+7

IntelliJ IDEA 查看类class的结构Structure轮廓outline窗口, 快捷键是Alt7 idea的结构Structure窗口相当于Eclipse的outline 快捷键是: Alt7 或者点击左上角主菜单面包屑,打开主菜单 然后菜单找到-视图(View)→ 工具窗口(Tool Windows&…

鸿蒙开发--点击下拉菜单,同时最下面出现遮罩层的实现方法

效果展示 实现 除去最上面的Naviation标题(房源列表),该页面有两个SearchFilter搜索筛选(包括其中的下拉菜单),RoomList房源列表 根目录容器 显然,两个组件之间存在覆盖关系,所以…

【密码学】全同态加密张量运算库解读 —— TenSEAL

项目地址:https://github.com/OpenMined/TenSEAL 论文地址:https://arxiv.org/pdf/2104.03152v2 TenSEAL 是一个在微软 SEAL 基础上构建的用于对张量进行同态加密操作的开源Python库,用于在保持数据加密的状态下进行机器学习和数据分析。 Ten…

ssm旅游网页开发与设计+jsp

系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习,获取源码请私聊我 需要定制请私聊 目 录 摘 要 I 目 录 III 第1章 绪论 1 1.1 研究背景 1 1.2目的和意义 1 1.3 论文研究内容 1 第2章 程序…

银河麒麟V10系统下libopenblas.so.0和libllmlmf库的安装

1、当前linux服务器系统是银河麒麟V10,具体的内核和cpu型号如下: 2、使用:uname -a来进行查询 Linux localhost.localdomain 4.19.90-89.16.v2401.ky10.x86_64 #1 SMP Sat Sep 14 13:09:47 CST 2024 x86_64 x86_64 x86_64 GNU/Linux 3、在部署QT开发的应…

vue通过JSON文件生成KML文件源码

可以使用封装的json解析器进行JSON数据获取,读取点的经度、维度、高程等数据,再使用对应的KML文件生成函数使用该源码下载KML文件(固定KML生成:js模板式生成大疆上云kml文件(含详细注释,已封装成函数&#…

从病理AI的基础模型发展历程,看未来的医学AI发展趋势|个人观点·24-10-23

小罗碎碎念 在临床相关的人工智能(AI)模型发展方面,传统上需要大量标注数据集,这使得AI的进步主要围绕大型中心和私营企业展开。所以,在这期推文中,我会介绍一些已经商用的模型,并且为计划进军…

Minio文件服务器:SpringBoot实现文件上传

在Minio文件服务器部署成功后(参考上篇文章Minio文件服务器:安装)接下来我们通过SpringBoot框架写一个接口,来实现文件的上传功能:文件通过SpringBoot接口,上传到Minio文件服务器。并且,如果上传的文件是图片类型&…

裴蜀定理与欧几里得算法——蓝桥杯真题中的应用

目录 裴蜀定理(Bzouts Theorem)1、定义2、推论3、欧几里得算法4、多个整数的裴蜀定理扩展 真题挑战解题思路代码实现与详细注释代码解析 裴蜀定理(Bzout’s Theorem) 1、定义 对于任意两个整数 a 和 b ,如果它们的最…

Gateway 统一网关

一、初识 Gateway 1. 为什么需要网关 我们所有的服务可以让任何请求访问,但有些业务不是对外公开的,这就需要用网关来统一替我们筛选请求,它就像是房间的一道门,想进入房间就必须经过门。而请求想要访问微服务,就必须…

聚链成网,趣链科技参与 “跨链创新联合体”建设

近日,2024全球数商大会在上海举办。大会由上海数据集团和上海市数商协会联合主办,上海市数据局和浦东新区人民政府支持,以“数联全球,商通未来——‘链’接数字经济新未来”为主题,聚焦区块链技术和应用场景展开。 会上…

Windows生成公钥和私钥

1、打开命令提示符或 PowerShell: 按下 Win R,输入 cmd 或 powershell,然后按 Enter 打开命令提示符或 PowerShell 窗口。 2、生成密钥对: 输入以下命令生成 RSA 密钥对 ssh-keygen -t rsa -b 2048-t rsa 表示生成 RSA 类型的密…

开源模型应用落地-Qwen2-VL-7B-Instruct-vLLM-OpenAI API Client调用

一、前言 学习Qwen2-VL ,为我们打开了一扇通往先进人工智能技术的大门。让我们能够深入了解当今最前沿的视觉语言模型的工作原理和强大能力。这不仅拓宽了我们的知识视野,更让我们站在科技发展的潮头,紧跟时代的步伐。 Qwen2-VL 具有卓越的图…

android studio编译错误提示无法下载仓库

一、调整方法之一 buildscript {repositories {google()jcenter()//maven { url https://maven.aliyun.com/repository/google }//maven { url https://maven.aliyun.com/repository/central }}dependencies {// classpath "com.android.tools.build:gradle:4.1.1"c…

Python金色流星雨

系列目录 序号直达链接爱心系列1Python制作一个无法拒绝的表白界面2Python满屏飘字表白代码3Python无限弹窗满屏表白代码4Python李峋同款可写字版跳动的爱心5Python流星雨代码6Python漂浮爱心代码7Python爱心光波代码8Python普通的玫瑰花代码9Python炫酷的玫瑰花代码10Python多…

算法的学习笔记—翻转单词顺序列(牛客JZ73)

😀前言 在《剑指 Offer》系列题中,有一道关于翻转单词顺序的经典题目。给定一个由多个单词组成的字符串,需要将每个单词的顺序颠倒。这道题考察了对字符串的操作技巧,尤其是如何在限定空间内完成字符串的翻转。本文将详细解析这道…

吉客云与金蝶云星空系统高效数据对接实践

调拨出库红字对接分步式调入(退货)案例分享:吉客云数据集成到金蝶云星空 在企业的日常运营中,数据的高效流转和准确对接是实现业务流程自动化和优化的重要环节。本文将聚焦于一个具体的系统对接集成案例——如何将吉客云的数据无缝集成到金蝶云星空&…

阿里云物联网的通信方式

阿里云物联网通信的两种方式,一个是物模型(分为服务,事件,属性),一个是自定义topic(要另外设置数据流转) 1.使用产品内的功能定义,(其实也就是Topic中定义好的…

Prompt Engineering (Prompt工程)

2 prompt工程2大原则 2.1 给出清晰&#xff0c;详细的指令 策略1&#xff1a;使用分割符清晰的指示输出的不同部分&#xff0c;比如"",<>,<\tag>等分隔符 策略2&#xff1a;指定一个结构化的输出&#xff0c;比如json,html等格式 策略3&#xff1a;要…