前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【人工智能】Transformers之Pipeline(十三):填充蒙版(fill-mask)

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

作者头像
LDG_AGI
发布2024-09-03 07:46:01
1730
发布2024-09-03 07:46:01
举报
文章被收录于专栏:人工智能极简应用

一、引言

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对象实例化参数

  • modelPreTrainedModelTFPreTrainedModel)— 管道将使用其进行预测的模型。 对于 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_parserArgumentHandler可选) - 引用负责解析提供的管道参数的对象。
  • 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对文本进行补全。

代码语言:javascript
复制
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)模型。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、引言
  • 二、填充蒙版(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 模型排名
          • 三、总结
          相关产品与服务
          NLP 服务
          NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档