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

transformer学习资料

一、NLP 自然语言处理

NLP 是机器学习在语言学领域的研究,专注于理解与人类语言相关的一切。NLP 的目标不仅是要理解每个单独的单词含义,而且也要理解这些单词与之相关联的上下文之间的意思。

常见的NLP 任务列表:

  • 对整句的分类:如获取评论的好坏、垃圾邮件的分类,如判断两个句子的逻辑相关性;
  • 对句中单词的分类:如单词的语法构成(名词、动词、形容词)、单词的实体命名(人、地点、时间)
  • 文本内容的生成:如文章续写、屏蔽词填充;
  • 文本答案的提取:给定问题,根据上下文信息提前答案;
  • 从提示文本生成新句子:如文本翻译、文本总结;

NLP 并不局限于书面文本,它也能解决语音识别、计算机视觉方方面的问题,如生成音频样本的转录、图像的描述等;


二、Transformer

Hugging Face Hub 社区是最大的Transformer开发者的交流地,里面分享了数万个预训练模型、数据集等,任何人都可以下载和使用。而Transformers 库提供了创建和使用这些共享模型、数据集的功能。

# # 安装
pip install transformers# # 导入
import transformers

Transformers库的优势:

  1. 简单:Transformers只提供一个 API,只需两行代码即可下载、加载和使用 NLP 模型进行推理;
  2. 灵活:所有模型的核心都是 PyTorchnn.Module 类或 TensorFlowtf.keras.Model 类;
  3. 独立:模型之间相互独立,每个模型拥有的层都在一个模型文件内。这个是与其他 ML 库截然不同的,

2.1、Transformer 发展历史

在这里插入图片描述

Transformer 架构于2017 年 6 月推出。最初的研究重点是翻译任务。随后推出了几个有影响力的模型,包括:

  • 2018年6月:GPT,第一个预训练的Transformer模型,用于各种NLP任务的微调并获得了SOTA的结果;
  • 2018 年10月:BERT,另一个大型预训练模型,旨在生成更好的句子摘要;
  • 2019年2月:GPT-2GPT 的改进(和更大)版本,由于道德问题没有立即公开发布;
  • 2019年10月:DistilBERTBERT 的精炼版,速度提高了 60%,内存减少了 40%,但仍然保留了 BERT 97% 的性能;
  • 2019年10月:BARTT5,两个大型预训练模型,使用与原始 Transformer 模型相同的架构;
  • 2020年5月:GPT-3GPT-2的更大版本,能够在各种任务上表现良好,无需微调(称为zero-shot零样本学习)

上面提到的所有Transformer 模型(GPT、BERT、BART、T5 等)都是预训练语言模型(以自监督的方式接受了大量原始文本的训练),预训练模型只是对所训练语言进行的统计理解,对于特定的实际任务来说并不适用。正因如此,预训练模型还要经历一个迁移学习的过程,针对具体的任务以监督学习的方式进行微调。

预训练模型

  • 从零开始训练,权重随机初始化,没有任何先验知识;
  • 需要大量数据用于训练,训练时间也可能很久;

微调模型

  • 是在预训练模型的基础上进行的训练;
  • 要有具体任务的数据集,微调训练的时间不会很久;
  • 微调模型的成本较低:时间、数据、财务、硬件等,更容易部署。

所以在实际应用中,应该始终尝试去寻找与实际任务接近的预训练模型,再使用具体任务的小样本数据集,以监督学习的方式来微调它。

2.2、Transformer 详细原理

Transformer 详细原理包括:

  • 编码器Encoder部分
  • 解码器Decoder部分
  • Self-Attention 自注意力原理
  • Multi-Head Attention 多头注意力机制

详细原理请看链接:Transformer模型原理

2.3、Transformer 能做什么

Transformers 库中最基本的对象是pipeline() 函数,它将必要的预处理后处理连接起来,使我们能直接输入文本并获取对应需求的答案。目前可用的一些管道模型有:

  • ner:实体命名识别
  • fill-mask:掩码填充
  • translation:翻译
  • summarization:文章总结
  • text-generation:文本生成
  • question-answering:问题回答
  • sentiment-analysis:情绪分析
  • zero-shot-classification:零样本分类
  • feature-extraction:获取文本的向量表示
from transformers import pipeline# # # 命名实体识别
# ner = pipeline("ner", grouped_entities=True)
# print(ner("My name is Sylvain and I work at Hugging Face in Brooklyn."))# # # 掩码填充
# fill_mask = pipeline("fill-mask")
# print(fill_mask("The cat is <mask> on the mat."))# # # 翻译
# translator = pipeline("translation", model="Helsinki-NLP/opus-mt-fr-en")
# print(translator("Ce cours est produit par Hugging Face."))# # # 文章总结
# summarizer = pipeline("summarization")
# print(summarizer("xxxxxxxxxxxxxxxxxx"))# # # 文本生成
# generator = pipeline("text-generation")
# print(generator("In this course, we will teach you how to"))
# # # 指定hugging face Hub网站中任意模型
# generator = pipeline("text-generation", model="distilgpt2")
# print(generator("In this course, we will teach you how to", max_length=30, num_return_sequences=2))# # # 问题回答
# question_answerer = pipeline("question-answering")
# print(question_answerer(question="Where do I work?", context="My name is Sylvain and I work at Hugging Face in Brooklyn"))# # 情绪分析
classifier = pipeline("sentiment-analysis")   # # (该库只能输入英文。)
print(classifier(["I've been waiting for a HuggingFace course my whole life.", "I hate this so much!"]))# # # 零样本分类zero-shot-classification
# classifier = pipeline("zero-shot-classification")
# print(classifier("This is a course about the Transformers library", candidate_labels=["education", "politics", "business"]))# # # 获取文本的向量表示
# feature_extraction = pipeline("feature-extraction") 
# print(feature_extraction("i am a studet"))

NLP 在处理问题使主要涉及三个步骤:

  1. 人类可理解的文本被预处理为模型可理解的数据格式;
  2. 将可理解的数据传递给模型,模型做出预测;
  3. 模型的预测再经过后处理,输出人类可理解的文本。

例如:

# # 情绪分析
classifier = pipeline("sentiment-analysis")   # # (该库只能输入英文。)
print(classifier(["I've been waiting for a HuggingFace course my whole life.", "I hate this so much!"]))# # 结果
# [{'label': 'POSITIVE', 'score': 0.9598047137260437},
#  {'label': 'NEGATIVE', 'score': 0.9994558095932007}]

2.4、

相关文章:

transformer学习资料

一、NLP 自然语言处理 NLP 是机器学习在语言学领域的研究&#xff0c;专注于理解与人类语言相关的一切。NLP 的目标不仅是要理解每个单独的单词含义&#xff0c;而且也要理解这些单词与之相关联的上下文之间的意思。 常见的NLP 任务列表&#xff1a; 对整句的分类&#xff1…...

一起学docker系列之四docker的常用命令--系统操作docker命令及镜像命令

目录 前言1 操作 Docker 的命令1.1 启动 Docker1.2 停止 Docker1.3 重启 Docker1.4 查看 Docker 状态1.5 查看 Docker 所有命令的信息1.6 查看某个命令的帮助信息 2 操作镜像的命令2.1 查看所有镜像2.2 搜索某个镜像2.3 下载某个镜像2.4 查看镜像所占空间2.5 删除镜像2.6 强制删…...

MySQL 的执行原理(三)

5.4. InnoDB 中的统计数据 我们前边唠叨查询成本的时候经常用到一些统计数据&#xff0c;比如通过 SHOW TABLE STATUS 可以看到关于表的统计数据&#xff0c;通过 SHOW INDEX 可以看到关于索引 的统计数据&#xff0c;那么这些统计数据是怎么来的呢&#xff1f;它们是以什么方…...

一道好题——分治

一道好题应该有一个简洁的题面。 有一个长度为 n&#xff0c;初始全为 0 的序列 a&#xff0c;另有一个长度为 n 的序列 b&#xff0c;你希望将 a 变成 b&#xff0c;你可以执行如下两种操作&#xff1a; 1 x&#xff1a;将 a 中所有值为 x 的数 11。 2 x&#xff1a;将 a 中下…...

庖丁解牛:NIO核心概念与机制详解 02 _ 缓冲区的细节实现

文章目录 PreOverview状态变量概述PositionLimitCapacity演示&#xff1a; 观察变量 访问方法get() 方法put()方法类型化的 get() 和 put() 方法 缓冲区的使用&#xff1a;一个内部循环 Pre 庖丁解牛&#xff1a;NIO核心概念与机制详解 01 接下来我们来看下缓冲区内部细节 Ov…...

Python itertools模块中的combinations() 函数用法

Python itertools模块中的combinations 函数用法 调用方法示例1示例2 调用方法 itertools.combinations(iterable, r)各个参数意义&#xff1a; iterable&#xff1a;输入数据&#xff0c;数据应该是可迭代的。 r&#xff1a;子序列的长度 返回值&#xff1a;从输入的可迭代数…...

在线预览excel,luckysheet在vue项目中的使用

一. 需求 需要在内网项目中在线预览excel文档&#xff0c;并可以下载 二.在项目中下载并引入luckysheet 1.打开项目根目录&#xff0c;npm i luckyexcel 安装 npm i luckyexcel2.在项目的index.html文件中引入依赖 外网项目中的引入&#xff08;CDN引入&#xff09;&#…...

【python】OpenCV—Image Pyramid(8)

文章目录 1 图像金字塔2 拉普拉斯金字塔 1 图像金字塔 高斯金字塔 在 OpenCV 中使用函数 cv2.pyrDown()&#xff0c;实现图像高斯金字塔操作中的向下采样&#xff0c;使用函数 cv2.pyrUp() 实现图像金字塔操作中的向上采样 import cv2img cv2.imread(C://Users/Administrat…...

vue3父组件提交校验多个子组件

实现功能&#xff1a;在父组件提交事件中校验多个子组件中的form 父组件&#xff1a; <script setup lang"ts">import {ref, reactive} from vueimport childForm from ./childForm.vueimport childForm2 from ./childForm2.vuelet approvalRef ref()let ap…...

系统移植-uboot

uboot概述&#xff1a; 操作系统运行之前运行的一小段代码&#xff0c;用于将软硬件环境初始化到 一个合适的状态&#xff0c;为操作系统的加载和运行做准备&#xff08;其本身不是操作系统&#xff09; Bootloader基本功能 1.初始化软硬件环境 2.引导加载linux内核 3. 给lin…...

使用FFmpeg合并多个ts视频文件转为mp4格式

前言 爬取完视频发现都是ts文件&#xff0c;而且都是几百KB的视频片段&#xff0c;.ts 全名叫&#xff1a;MPEG Transport Stream&#xff0c;它是一个万能的多媒体容器&#xff0c;可以装下音频、视频、字幕。有时我们需要将.ts文件转换为其他更加广泛被支持的格式&#xff0…...

大模型之十二十-中英双语开源大语言模型选型

从ChatGPT火爆出圈到现在纷纷开源的大语言模型&#xff0c;众多出入门的学习者以及跃跃欲试的公司不得不面临的是开源大语言模型的选型问题。 基于开源商业许可的开源大语言模型可以极大的节省成本和加速业务迭代。 当前&#xff08;2023年11月17日)开源的大语言模型如下&#…...

.Net6 部署到IIS示例

基于FastEndpoints.Net6 框架部署到IIS 环境下载与安装IIS启用与配置访问网站 环境下载与安装 首先下载环境安装程序&#xff0c;如下图所示,根据系统位数选择x86或者x64进行下载安装,网址&#xff1a;Download .NET 6.0。 IIS启用与配置 启用IIS服务 打开控制面板&#xff…...

轻松搭建短域名短链接服务系统,可选权限认证,并自动生成证书认证把nginx的http访问转换为https加密访问,完整步骤和代码

轻松搭建短域名短链接服务系统&#xff0c;可选权限认证&#xff0c;并自动生成证书认证把nginx的http访问转换为https加密访问&#xff0c;完整步骤和代码。 在互联网信息爆炸的时代&#xff0c;网址复杂而冗长&#xff0c;很难在口头告知他人&#xff0c;也难以分享到社交媒体…...

JS 日期格式化

日期格式化 parseTime&#xff1a; // 日期格式化 export function parseTime(time, pattern) {if (arguments.length 0 || !time) {return null}const format pattern || {y}-{m}-{d} {h}:{i}:{s}let dateif (typeof time object) {date time} else {if ((typeof time st…...

右键菜单和弹出菜单的区别

接触windows开发10年了&#xff0c;一直以为"右键菜单"和"弹出菜单"是不同的。 最近刚刚发现&#xff0c;这两种菜单在定义的时候和消息循环处理程序中并没有什么不同&#xff0c;区别只是在于windows底层显示方式。 如下是右键菜单的显示方式&#xff1…...

查询数据库DQL

DQL 查询基本语法 -- DQL :基本语法; -- 1查询指定的字段 name entrydate 并返回select name , entrydate from tb_emp;-- 2 查询 所有字段 并返回select id, username, password, name, gender, image, job, entrydate, create_time, update_time from tb_emp;-- 2 查询…...

SpringBoot中文乱码问题解决方案

在Spring Boot中&#xff0c;确实没有像传统Web应用程序中需要使用web.xml配置文件。对于中文乱码问题&#xff0c;你可以采取以下几种方式来解决&#xff1a; 在application.properties文件中添加以下配置&#xff1a; spring.http.encoding.charsetUTF-8 spring.http.encod…...

京东联盟flutter插件使用方法

目录 1.京东联盟官网注册申请步骤略~2.安卓端插件配置&#xff1a;3.IOS端插件配置4.其它配置5.京东OAuth授权 文档地址&#xff1a;https://baiyuliang.blog.csdn.net/article/details/134444104 京东联盟flutter插件地址&#xff1a;https://pub.dev/packages/jdkit 1.京东联…...

python电影数据可视化分析系统的设计与实现【附源码】

电影数据可视化分析系统的设计与实现 (一)开题报告&#xff0c;就是确定设计(论文)选题之后&#xff0c;学生在调查研究的基础上撰写的研究计划&#xff0c;主要说明设计(论文)研究目的和意义、研究的条件以及如何开展研究等问题&#xff0c;也可以说是对设计(论文)的论证和设…...

暗黑破坏神2现代重生:D2DX宽屏高帧率完全配置指南

暗黑破坏神2现代重生&#xff1a;D2DX宽屏高帧率完全配置指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 作为一款诞生于…...

物理学巅峰成就巡礼:从牛顿到量子,探索宇宙与微观世界的革命性突破

1. 项目概述&#xff1a;一次对物理学巅峰成就的巡礼2019年&#xff0c;诺贝尔物理学奖授予了三位天体物理学家——詹姆斯皮布尔斯、米歇尔马约尔和迪迪埃奎洛兹&#xff0c;以表彰他们在物理宇宙学理论以及系外行星发现领域的开创性贡献。这个奖项像一束聚光灯&#xff0c;将公…...

Gemini 1.5、Sora与V-JEPA:AI工程水位线的三大坐标轴

1. 这份AI Newsletter到底在讲什么&#xff1f;为什么它值得你花5分钟读完“Towards AI”这个名称&#xff0c;对很多刚接触AI内容生态的朋友来说可能有点陌生——它不是某个大厂的官方号&#xff0c;也不是某位顶流KOL的个人频道&#xff0c;而是一个由一线工程师、研究员和产…...

Skelerealms:Godot开放世界的数据驱动架构解析

1. 这不是又一个“Godot RPG模板”&#xff0c;而是一套为开放世界量身定制的底层骨架我第一次在GitHub上看到Skelerealms这个仓库时&#xff0c;没点开README就直接关掉了——标题里带“RPG框架”“Godot”“开放世界”的项目&#xff0c;过去三年我至少扫过四十七个&#xff…...

JMeter接口测试实战:从鉴权验证到故障注入的工程化落地

1. 为什么接口测试不能只靠“点点点”——JMeter不是高级版Postman&#xff0c;而是工程化验证的起点很多人第一次接触JMeter&#xff0c;是在开发甩来一个接口文档后&#xff0c;下意识打开Postman填URL、选Method、点Send&#xff0c;看到返回200就松一口气&#xff1a;“通了…...

UVa 273 Jack Straws

题目分析 本题的题目背景源自一种名为 “Jack Straws\texttt{Jack Straws}Jack Straws” 的游戏&#xff0c;玩家需要从桌上一堆杂乱摆放的塑料或木质 “稻草” 中逐根取出&#xff0c;而不扰动其他稻草。本题不关心游戏过程&#xff0c;只关心一个问题&#xff1a;给定若干根稻…...

效率优化:把网申填表交给塔塔网申的简历代投,省下时间刷题

招聘季一到&#xff0c;后台一堆私信。本以为大家会问算法题、系统设计&#xff0c;结果点开一看——全在骂网申填表。有个读者给我算了一笔账&#xff1a;投了30家公司&#xff0c;每家填20分钟&#xff0c;就是10个小时。10个小时能干嘛&#xff1f;刷好几套LeetCode&#xf…...

LERF:将语言嵌入3D辐射场,实现开放词汇的3D语义查询

1. 项目概述&#xff1a;当语言成为3D场景的“探针”如果你玩过NeRF&#xff08;神经辐射场&#xff09;&#xff0c;肯定被它从几张2D照片生成逼真3D场景的能力震撼过。但不知道你有没有和我一样的感受&#xff1a;生成的3D模型虽然好看&#xff0c;但像个“美丽的哑巴”。我们…...

【计算机毕业设计】基于Spring Boot的秒杀系统设计与实现+万字文档

博主介绍&#xff1a;✌全网粉丝3W,csdn特邀作者、CSDN新星计划导师、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、…...

Unity安装配置全链路排坑指南:从下载到首建成功

1. 这不是“装个软件”那么简单&#xff1a;Unity安装背后的真实战场很多人点开Unity官网&#xff0c;看到那个醒目的“Download”按钮&#xff0c;下意识觉得&#xff1a;“不就是点几下、选个路径、等十分钟&#xff1f;”——我带过三届Unity方向的实习团队&#xff0c;每年…...