【人工智能】Transformers之Pipeline(十三):填充蒙版(fill-mask)

news2024/11/13 15:28:24

目录

一、引言 

二、填充蒙版(fill-mask)

2.1 概述

2.2 技术原理

2.2.1 BERT模型的基本概念

2.2.2 BERT模型的工作原理

2.2.3 BERT模型的结构 

2.2.4 BERT模型的应用

2.2.5 BERT模型与Transformer的区别和联系

2.3 应用场景

2.4 pipeline参数

2.4.1 pipeline对象实例化参数

2.4.2 pipeline对象使用参数 ​​​​​​​

2.4.3 pipeline返回参数 ​​​​​​​

2.5 pipeline实战

2.6 模型排名

三、总结


一、引言 

 pipeline(管道)是huggingface transformers库中一种极简方式使用大模型推理的抽象,将所有大模型分为音频(Audio)、计算机视觉(Computer vision)、自然语言处理(NLP)、多模态(Multimodal)等4大类,28小类任务(tasks)。共计覆盖32万个模型

今天介绍NLP自然语言处理的第一篇:填充蒙版(fill-mask),在huggingface库内有1.2万个填充蒙版(fill-mask)模型,最典型且必须掌握的模型当属google的bert。

二、填充蒙版(fill-mask)

2.1 概述

掩码mask语言建模的任务是掩码句子中的一些单词,并预测哪些单词应该替换这些掩码mask。当我们从统计上建模所训练的语言时,这些模型非常有用。。

2.2 技术原理

最典型的模型是google发布的BERT,‌‌BERT模型是一种基于‌Transformer的深度学习模型,主要用于自然语言处理任务,通过预训练和微调过程,在多种NLP任务中取得了显著的成绩

2.2.1 BERT模型的基本概念

‌BERT‌(Bidirectional Encoder Representations from Transformers)是一种预训练语言模型,由‌Google于2018年发布。它通过联合左侧和右侧的上下文信息,从未标记文本中预训练出一个深度双向表示模型。BERT模型的核心在于其使用Transformer的编码器部分,能够捕捉文本的双向上下文信息,这在之前的语言模型中是不曾实现的。

2.2.2 BERT模型的工作原理

  • ‌预训练阶段‌:BERT通过两个主要任务进行预训练:‌遮蔽语言模型(‌MLM)‌和‌下一句预测(‌NSP)‌。在MLM任务中,模型被训练来预测输入句子中被遮蔽的词;而在NSP任务中,模型需要判断两个句子是否是连续的文本序列。
  • ‌微调阶段‌:预训练完成后,BERT模型可以通过添加任务特定的输出层来进行微调,以适应不同的NLP任务,如情感分析、问答、命名实体识别等。微调过程利用了预训练阶段学到的语言表征,使得模型能够快速适应新的任务并取得优异的性能。 

2.2.3 BERT模型的结构 

BERT模型由多层Transformer编码器堆叠而成,每一层都包含‌自注意力机制和‌前馈神经网络。这种深层结构使得BERT能够捕捉从浅层语法特征到深层语义特征的不同级别的语言信息。

2.2.4 BERT模型的应用

BERT在多种NLP任务上取得了当时的最先进结果,包括但不限于情感分析、问答、命名实体识别等。由于其出色的性能和广泛的适用性,BERT成为了NLP领域的一个重大突破,为后续的语言模型研究和发展奠定了基础。

2.2.5 BERT模型与Transformer的区别和联系

‌Transformer‌是一种基于注意力的神经网络架构,而‌BERT‌是Transformer的一个具体应用实例,专注于自然语言处理任务。BERT利用了Transformer的编码器部分,通过预训练和微调过程,在多种自然语言处理任务中表现优异。

2.3 应用场景

  • 语言理解评估:通过评估模型在遮蔽的单词预测上的准确性,可以衡量模型对语言的理解能力。
  • 词汇学习:帮助模型学习词汇关系,例如同义词、上下文适用的词汇等。
  • 文本生成:在内容创作、文本自动生成等领域,根据上下文填充适当的词汇,生成连贯、合理的文本段落。
  • 文本完成与修正:自动完成文本或纠正拼写错误、语法错误,特别是在自动文本编辑器或写作辅助工具中。
  • 个性化推荐系统:在内容推荐中,理解用户查询或上下文后,填充特定的关键词来优化推荐内容。
  • 翻译与多语言处理:在机器翻译中,通过上下文预测单词,有助于提高翻译的准确性和自然性。
  • 情感分析和语义理解:通过预测特定情境下的词汇来更精确地理解文本的情感或意图。
  • 教育工具:用于语言学习软件中,帮助学生学习新词汇,通过填空练习来加强记忆。

2.4 pipeline参数

2.4.1 pipeline对象实例化参数

  • model(PreTrainedModel或TFPreTrainedModel)— 管道将使用其进行预测的模型。 对于 PyTorch,这需要从PreTrainedModel继承;对于 TensorFlow,这需要从TFPreTrainedModel继承。
  • tokenizer ( PreTrainedTokenizer ) — 管道将使用 tokenizer 来为模型编码数据。此对象继承自 PreTrainedTokenizer。
  • modelcardstrModelCard可选)— 属于此管道模型的模型卡。
  • frameworkstr可选)— 要使用的框架,"pt"适用于 PyTorch 或"tf"TensorFlow。必须安装指定的框架。
  • taskstr,默认为"")— 管道的任务标识符。
  • num_workersint可选,默认为 8)— 当管道将使用DataLoader(传递数据集时,在 Pytorch 模型的 GPU 上)时,要使用的工作者数量。
  • batch_sizeint可选,默认为 1)— 当管道将使用DataLoader(传递数据集时,在 Pytorch 模型的 GPU 上)时,要使用的批次的大小,对于推理来说,这并不总是有益的,请阅读使用管道进行批处理。
  • args_parser(ArgumentHandler,可选) - 引用负责解析提供的管道参数的对象。
  • deviceint可选,默认为 -1)— CPU/GPU 支持的设备序号。将其设置为 -1 将利用 CPU,设置为正数将在关联的 CUDA 设备 ID 上运行模型。
  • torch_dtypestrtorch.dtype可选) - 直接发送model_kwargs(只是一种更简单的快捷方式)以使用此模型的可用精度(torch.float16,,torch.bfloat16...或"auto"
  • binary_outputbool可选,默认为False)——标志指示管道的输出是否应以序列化格式(即 pickle)或原始输出数据(例如文本)进行。
  • top_kint可选,默认为 5)— 要返回的预测数量。
  • targetsstrList[str]可选)— 传递后,模型会将分数限制在传递的目标上,而不是在整个词汇表中查找。如果提供的目标不在模型词汇表中,则它们将被标记化,并使用第一个生成的标记(带有警告,并且可能会更慢)。
  • tokenizer_kwargsdict可选)——传递给标记器 (tokenizer) 的关键字参数的附加词典。

2.4.2 pipeline对象使用参数 ​​​​​​​

  • argsstrList[str])— 一个或多个带有掩码标记的文本(或一个提示列表)。
  • targetsstrList[str]可选)— 传递后,模型会将分数限制在传递的目标上,而不是在整个词汇表中查找。如果提供的目标不在模型词汇表中,则它们将被标记化,并使用第一个生成的标记(带有警告,并且可能会更慢)。
  • top_kint可选)——传递时,覆盖要返回的预测数量。

2.4.3 pipeline返回参数 ​​​​​​​

  • sequencestr)——与掩码标记预测相对应的输入。
  • scorefloat)——相应的概率。
  • token ( int) — 预测的 token id(用于替换被屏蔽的 token id)。
  • token_str ( str) — 预测的标记(用于替换被屏蔽的标记)。

2.5 pipeline实战

采用pipeline,使用google的bert中文版模型bert-base-chinese对文本进行补全。

import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
os.environ["CUDA_VISIBLE_DEVICES"] = "2"
from transformers import pipeline


fill_masker = pipeline(model="google-bert/bert-base-chinese", task="fill-mask")
output=fill_masker("我是一个[MASK].")
print(output)

执行后,自动下载模型文件并进行识别:

2.6 模型排名

在huggingface上,我们将填充蒙版(fill-mask)模型按下载量从高到低排序,总计1.2万个模型,排名第一的当属google-bert/bert-base-uncased。

三、总结

本文对transformers之pipeline的填充蒙版(fill-mask)从概述、技术原理、pipeline参数、pipeline实战、模型排名等方面进行介绍,读者可以基于pipeline使用文中的2行代码极简的使用NLP中的填充蒙版(fill-mask)模型。

期待您的3连+关注,如何还有时间,欢迎阅读我的其他文章:

《Transformers-Pipeline概述》

【人工智能】Transformers之Pipeline(概述):30w+大模型极简应用

《Transformers-Pipeline 第一章:音频(Audio)篇》

【人工智能】Transformers之Pipeline(一):音频分类(audio-classification)

【人工智能】Transformers之Pipeline(二):自动语音识别(automatic-speech-recognition)

【人工智能】Transformers之Pipeline(三):文本转音频(text-to-audio/text-to-speech)

【人工智能】Transformers之Pipeline(四):零样本音频分类(zero-shot-audio-classification)

《Transformers-Pipeline 第二章:计算机视觉(CV)篇》

【人工智能】Transformers之Pipeline(五):深度估计(depth-estimation)

【人工智能】Transformers之Pipeline(六):图像分类(image-classification)

【人工智能】Transformers之Pipeline(七):图像分割(image-segmentation)

【人工智能】Transformers之Pipeline(八):图生图(image-to-image)

【人工智能】Transformers之Pipeline(九):物体检测(object-detection)

【人工智能】Transformers之Pipeline(十):视频分类(video-classification)

【人工智能】Transformers之Pipeline(十一):零样本图片分类(zero-shot-image-classification)

【人工智能】Transformers之Pipeline(十二):零样本物体检测(zero-shot-object-detection)​​​​​​​

《Transformers-Pipeline 第三章:自然语言处理(NLP)篇》

【人工智能】Transformers之Pipeline(十三):填充蒙版(fill-mask)

【人工智能】Transformers之Pipeline(十四):问答(question-answering)

【人工智能】Transformers之Pipeline(十五):总结(summarization)

【人工智能】Transformers之Pipeline(十六):表格问答(table-question-answering)

【人工智能】Transformers之Pipeline(十七):文本分类(text-classification)

【人工智能】Transformers之Pipeline(十八):文本生成(text-generation)

【人工智能】Transformers之Pipeline(十九):文生文(text2text-generation)

【人工智能】Transformers之Pipeline(二十):令牌分类(token-classification)

【人工智能】Transformers之Pipeline(二十一):翻译(translation)

【人工智能】Transformers之Pipeline(二十二):零样本文本分类(zero-shot-classification)

《Transformers-Pipeline 第四章:多模态(Multimodal)篇》

【人工智能】Transformers之Pipeline(二十三):文档问答(document-question-answering)

【人工智能】Transformers之Pipeline(二十四):特征抽取(feature-extraction)

【人工智能】Transformers之Pipeline(二十五):图片特征抽取(image-feature-extraction)

【人工智能】Transformers之Pipeline(二十六):图片转文本(image-to-text)

【人工智能】Transformers之Pipeline(二十七):掩码生成(mask-generation)

【人工智能】Transformers之Pipeline(二十八):视觉问答(visual-question-answering)

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

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

相关文章

在银河麒麟服务器V10上源码编译安装mysql-5.7.42-linux-glibc2.12-x86_64

在银河麒麟服务器V10上源码编译安装mysql-5.7.42-linux-glibc2.12-x86_64 一、卸载MariaDB(如果已安装)二、下载MySQL源码包并解压三、安装编译所需的工具和库四、创建MySQL的安装目录及数据库存放目录五、编译安装MySQL六、配置MySQL七、设置环境变量八…

计算机系统-内存与CPU

CPU(中央处理单元,Central Processing Unit)是计算机系统的核心组件,负责执行程序中的指令并处理数据。它被称为计算机的“大脑”,因为它控制了计算机的所有计算和操作。CPU主要由以下几个部分组成: 算术逻…

如何在UE5.4中重新定位动画?

动画在游戏和电影制作中扮演着至关重要的角色,而在虚幻引擎5.4(UE5.4)这一强大的实时3D创作平台中,重新定位动画的能力更是将创意表达推向了新的高度。本文将引导您探索UE5.4中重新定位动画的技巧,确保您的动画作品不仅…

leetcode 169 多数元素

正文 本题较为简单,但是有一些比较有趣的方法,这里特来记录一下。 普通方法 遍历整个数组,使用 count 进行统计,然后选择出现次数大于 len(nums) / 2 的元素。 class Solution:def majorityElement(self, nums: List[int]) -&g…

工业相机测长仪的组成部分

关键字:工业相机测长仪,高精度测长仪,视觉测量系统,蓝鹏测控测长仪,工业测长仪, 本文介绍了蓝鹏测控公司机器视觉业务 测长仪的核心产品及技术特点,主要涵盖相机部分、相机防护系统、补光系统和软件部分。 (一)相机部分 我司的机器视觉业务…

双轴测径仪的四种样式!

双轴测径仪主要是用于外径及椭圆度的检测,适用于线缆电缆、橡胶塑料、金属、纸管等各种材质的线棒管材的外径及椭圆度尺寸检测。 双轴测径仪是由两个单测头垂直布置组合而成,目前根据用户的不同需求,为双轴测径仪设计了四种外观样式。 45角…

【开端】从黑神话。悟空看国产游戏技术能否引领全球

国产游戏技术能否引领全球? 近年来,国产游戏行业蓬勃发展,技术水平不断提升,多款作品在国际市场上崭露头角。从画面渲染到物理引擎,从AI技术到服务器架构,中国游戏开发者在各个领域都取得了显著进步。面对…

博主自用智能猫砂盆分享!CEWEY、空气萝卜、糯雪三款区别到底在哪里

不得不说,智能猫砂盆真的是我们这些经常外出的养猫人必备的一个智能产品了,自动铲屎的功能可以让我完全不用担心猫砂盆里会堆积猫便便,然后发臭生虫。有智能猫砂盆在,这些都不是问题,但是想要买一款合适的智能猫砂盆也…

sql-labs36-40通关攻略

第36关 一.判断闭合点 http://127.0.0.1/Less-36/?id1%df%20--http://127.0.0.1/Less-36/?id1%df%20-- 二.查询数据库 http://127.0.0.1/Less-36/?id-1%df%27%20union%20select%201,database(),3--http://127.0.0.1/Less-36/?id-1%df%27%20union%20select%201,database…

vue中使用vue-video-player插件播放视频 以及 audio播放音频

一、使用vue-video-player插件播放视频 安装 npm install vue-video-player --save 在main.js中引用 //引入视频播放插件 // main.js import VueVideoPlayer from vue-video-player import video.js/dist/video-js.css import vue-video-player/src/custom-theme.cssVue.use(V…

web3js连接测试网并完成交易

ps:有个需求是要等待确认交易。写这篇之后,我发现直接用回调函数要等好久好久好久。找到解决方案在这个链接但是有点麻烦。我已经弃用web3,直接使用ethersjs配合infura了,贼快。 本文将介绍如何使用web3js在Sepolia测试网完成一次…

应用案例|亚克力板CNC加工自动化上下料

在现代化制造领域,自动化和智能化已成为提升生产效率、降低成本的关键。针对当前CNC加工过程中亚克力板上下料环节的人工操作问题,富唯智能提出了基于AMR(自主移动机器人)的复合机器人解决方案。传统的人工取料、放置以及加工完成…

PSINS工具箱函数介绍——gpssimu

关于工具箱 gpssimu是生成GPS的位置和速度信息的函数,在psins240101\base\base1目录下 本文所述的代码需要基于PSINS工具箱,工具箱的讲解: PSINS初学指导:https://blog.csdn.net/callmeup/article/details/137087932 gpssimu是…

【ubuntu24.04】AX210/MT9621/USB网络共享访问无线网络

发现华硕的路由器访问网络经常有问题,比如clash 经常不能正常工作。 即使内网丢包严重? 期望能给台式机增加一个无线网卡访问外网。 我的五代网卡U12, 无法使用wap2企业版的无线网络:【ubuntu24.04】腾达U12 8812au无线网卡成功安装 普通的是没问题的。 对比了一些网卡,wifi…

认知杂谈37

今天分享 有人说的一段争议性的话 I 《别让焦虑困住自己》 嘿,朋友!这大热天的,实在是热得让人心里发慌。 I 咱可别再给自己找不痛快啦,赶紧找个舒服的地儿坐下,泡上一杯茶,好好唠唠嗑,给咱的心…

如何克服编程学习中的挫折感:哲学与心理学的启示

在编程学习的道路上,挫折感几乎是每个人都会遇到的障碍。无论是新手还是资深开发者,都会在面对难题时感到沮丧、焦虑甚至是无助。然而,挫折不仅是挑战,更是成长的机会。在这篇博客中,我们将结合哲学与心理学的智慧&…

2024年8月27日(dockerfile应用,创建私有仓库,在企业中分享项目)

一、dockerfile应用 [rootdocker ~]# mkdir http0 [rootdocker ~]# cd http0/ [rootdocker http0]# vim abc.sh [rootdocker http0]# ls abc.sh [rootdocker http0]# vim abc.sh #!/bin/bashrm -rf /run/*httpd*exec /sbin/httpd -D FOREGROUND [rootdocker http0]# echo "…

【大模型理论篇】通用大模型架构分类及技术统一化

1. 背景 国内的 “百模大战” 以及开源大模型的各类评测榜单令人眼花缭乱,极易让人陷入迷茫。面对如此众多的大模型,我们该如何审视和选择呢?本文将从大模型架构的角度,对常见的开源大模型架构进行汇总与分析。资料来源于公开…

创建vue组件时高度为100vh时出现纵向滚动条

<style scoped>.loginBox{padding: 0;width: 100%;min-height: 100vh;background: #c3c4c5;} </style> 原因body自带margin属性 解决方法 在index.html中添加 margin: 0;padding: 0;属性

Spring核心概念复习IOC与DI

Spring IOC概念 控制反转&#xff08;Inversion of Control&#xff09;&#xff1a;这是一种设计原则&#xff0c;用于降低代码之间的耦合度。在传统的编程模式中&#xff0c;对象之间的依赖关系是由对象自身创建和维护的。而在控制反转模式下&#xff0c;对象的创建和依赖关系…