当前位置: 首页 > news >正文

Transformers基础组件—Model(上)

基础组件之Model

Model简介

  • Transformer
    原始的Transformer为编码器(Encoder)、解码器(Decoder)模型
    Encoder部分接收输入并构建其完整特征表示,Decoder部分使用Encoder的编码结果以及其他的输入生成目标序列
    无论是编码器还是解码器,均由多个TransformerBlock堆叠而成
    TransformerBlock由注意力机制(Attention)和FFN组成
  • 注意力机制
    注意力机制的使用是Transformer的一个核心特性,在计算当前词的特征表示时,可以通过注意力机制有选择性的告诉模型要使用哪些上下文
    在这里插入图片描述
  • 模型类型
    编码器模型:自编码模型,使用Encoder,.拥有双向的注意力机制,即计算每一个词的特征时都看到完整上下文
    解码器模型:自回归模型,使用Decoder,拥有单向的注意力机制,即计算每一个词的特征时都只能看到上文,无法看到下文
    编码器解码器模型:序列到序列模型,使用Encoder+Decoder,Encoder部分使用双向的注意力,Decoderi部分使用单向注意力
    在这里插入图片描述
    在这里插入图片描述

Model Head

  • 什么是Model Head
    Model Head是连接在模型后的层,通常为1个或多个全连接层
    Model Head将模型的编码的表示结果进行映射,以解决不同类型的任务
    在这里插入图片描述
  • Transformers中的Model Head
    Model(模型本身,只返回编码结果)
    *ForCausalLM
    *ForMaskedLM
    *ForSeq2SeqLM
    *ForMultipleChoice
    *ForQuestionAnswering
    *ForSequenceClassification
    *ForTokenClassification

    在这里插入图片描述

Model基本使用方法

模型加载与保存

from transformers import AutoConfig, AutoModel, AutoTokenizer

在线加载

model = AutoModel.from_pretrained("hfl/rbt3", force_download=True)

模型下载(需要科学)

!git clone "https://huggingface.co/hfl/rbt3"
!git lfs clone "https://huggingface.co/hfl/rbt3" --include="*.bin"

离线加载

model = AutoModel.from_pretrained("rbt3")

模型加载参数

model = AutoModel.from_pretrained("rbt3")
model.config
config = AutoConfig.from_pretrained("./rbt3/")
config
config.output_attentions
from transformers import BertConfig

模型调用

sen = "弱小的我也有大梦想!"
tokenizer = AutoTokenizer.from_pretrained("rbt3")
inputs = tokenizer(sen, return_tensors="pt")
inputs

不带model head的模型调用

model = AutoModel.from_pretrained("rbt3", output_attentions=True)
output = model(**inputs)
output
output.last_hidden_state.size()
len(inputs["input_ids"][0])

带model head的模型调用

from transformers import AutoModelForSequenceClassification, BertForSequenceClassification
clz_model = AutoModelForSequenceClassification.from_pretrained("rbt3", num_labels=10)
clz_model(**inputs)
clz_model.config.num_labels
http://www.dtcms.com/a/289451.html

相关文章:

  • shared_ptr创建方式以及循环引用问题
  • MES系列 - MES是提升制造执行效率与透明度的关键系统
  • 单线程 Reactor 模式
  • C++ 继承和多态
  • linux安装Mysql后添加mysql的用户和密码
  • 负的 Content-Length 问题解析与修复方案
  • Claude Code 逆向工程分析,探索最新Agent设计
  • 超参数消融
  • Kafka 在分布式系统中的关键特性与机制深度解析
  • 多任务学习AITM算法简介
  • 虚拟机动态IP配置
  • MongoDB多节点集群原理 -- 复制集
  • 玄机——第六章 流量特征分析-蚂蚁爱上树
  • c语言进阶 自定义类型 (结构体 位段)
  • LWJGL教程(3)——时间
  • 【OD机试】池化资源共享
  • 30天打牢数模基础-K近邻(KNN)讲解
  • `/etc/samba/smb.conf`笔记250719
  • 【1】计算机视觉方法(更新)
  • Spring Boot 自动装配用法
  • Spring AI 聊天记忆
  • InfluxDB 核心概念与发展历程全景解读(一)
  • 定点小数与分数
  • Laravel 框架NOAUTH Authentication required 错误解决方案-优雅草卓伊凡
  • Leetcode 124. 二叉树中的最大路径和
  • 面向对象基础笔记
  • 提升H7-TOOL自制nRF54L15脱机烧写算法文件速度,1MB程序仅需11秒,并且支持了UICR编程
  • C++23中的std::expected:异常处理
  • 以“融合进化 智领未来”之名,金仓Kingbase FlySync:国产数据库技术的突破与创新
  • SpringBoot集成Skywalking链路跟踪