Transformers快速入门-学习笔记
- 一、自然语言处理
- NLP 是借助计算机技术研究人类语言的科学
- 自然语言处理发展史
- 一、不懂语法怎么理解语言
- 依靠语言学家人工总结文法规则
- Chomsky Formal Languages
- 难点:上下文有关文法
- 规则增多,存在矛盾
- 依靠语言学家人工总结文法规则
- 二、只要看得足够多,就能处理语言
- 基于数学模型和统计方法
- 通信系统加隐马尔可夫模型
- 对一维且有序任务有优势
- 对二维及次序变化任务不能处理
- 通信系统加隐马尔可夫模型
- 硬件能力提升、海量数据,统计机器学习方法
- 基于有向图的统计模型
- 如2005年 Google 基于统计方法的翻译系统超过基于规则的SysTran系统
- 2006年 Hinton 证明深度信念网络 DBN , 逐层预训练策略, 基于神经网络和反向传播算法 Back Propagation 的深度学习方法 ; LSTM 长短时记忆网络 ;2024年 xLSTM
- 卷积神经网络 CNN ; 2017年 Attention 注意力模型 Transformer 结构
- 基于有向图的统计模型
- 基于数学模型和统计方法
- 一、不懂语法怎么理解语言
- 统计语言模型发展史
- 为自然语言建立数学模型
- 判断一个文字序列是否构成人类能理解并且有意义的句子
- 70年代 Jelinek 贾里尼克 统计模型
- P(S) = P(w_1,w_2,...,w_n)= P(w_1)P(w_2|w_1)P(w_3|w_1,w_2)...P(w_n|w_1,w_2,...,w_{n-1})
- 词语w_n出现的概率取决于在句子中出现在它之前的所有词(理论上也可以引入出现在它之后的词语)。但是,随着文本长度的增加,条件概率P(w_n| w_1,w_2,…,w_{n-1}) 会变得越来越难以计算,因而在实际计算时会假设每个词语 w_i 仅与它前面的 n-1个词语有关
- P(w_i|w_1,w_2,...,w_{i-1}) = P(w_i|w_{i-N+1},w_{i-N+2},...,w_{i-1})
- 这种假设被称为马尔可夫(Markov)假设,对应的语言模型被称为 N 元(N-gram)模型。例如当 N = 2 时,词语 w_i 出现的概率只与它前面的词语w_{i-1} 有关,被称为二元(Bigram)模型;而 N =1 时,模型实际上就是一个上下文无关模型。由于 N 元模型的空间和时间复杂度都几乎是 N 的指数函数,因此实际应用中比较常见的是取 N =3 的三元模型
- 2003年 本吉奥,NNLM 模型,神经网络语言模型
- 通过输入词语前面的 N-1 个词语来预测当前词语
- 词表 词向量 激活函数 Softmax 函数 , 词表 需要学习获得
- 2013年 Google ,Word2Vec 模型
- Word2Vec 模型提供的词向量在很长一段时间里都是自然语言处理方法的标配
- 训练方法 CBOW (Continuous Bag of Words)和 Skip-gram
- 使用周围词语来预测当前词
- 使用了上文和下文来预测,打破只通过上文来预测当前词的惯性
- 使用当前词来预测周围词
- 使用周围词语来预测当前词
- 多义词问题
- 运用词语之间的互信息 雅让斯基
- 2018年 ELMo模型 Embeddings from Languages Models
- 会根据上下文动态的调整词语的词向量
- 采用双层双向LSTM作为编码器
- 2018年 BERT模型 Bidirectional Encoder Representations from Transformers
- 两阶段框架 预训练 微调
- 类似ELMo 双向语言模型
- UNILM 模型
- 大语言模型
- Emergent Abilities 涌现能力
- 规模扩展定律 Scaling Laws
- 2022年11月 ChatGPT 模型
- Qwen LLaMA
- Emergent Abilities 涌现能力
- 为自然语言建立数学模型
- 二、Transformer模型
- 取代循环神经网络RNN和卷积神经网络CNN成为当前NLP模型的标配
- 2017年 Google 《Attention Is All You Need》
- 序列标注
- 《Universal Language Model Fine-tuning for Text Classification》
- GPT (the Generative Pretrained Transformer)
- BERT (Bidirectional Encoder Representations from Transformers)
- 结构
- 纯Encoder 模型
- BERT
- DistilBERT
- RoBERTa
- XLM
- ALBERT
- ELECTRA
- DeBERTa
- XLM-R
- ALBERT
- XLM
- BERT
- 纯Decoder 模型
- GPT
- GPT-2
- CTRL
- GPT-3
- GPT-Neo
- GPT-J
- GPT-3
- CTRL
- GPT-2
- GPT
- Encoder-Decoder 模型
- T5
- BART
- M2M-100
- BigBird
- M2M-100
- BART
- T5
- Encoder(左边):负责理解输入文本,为每个输入构造对应的语义表示(语义特征)
- Decoder(右边):负责生成输出,使用 Encoder 输出的语义表示结合其他输入来生成目标序列
- 注意力层
- 原始结构
- 纯Encoder 模型
- Transformer
- 预训练语言模型
- 自监督学习
- 自监督学习是一种训练目标可以根据模型的输入自动计算的训练方法。
- 因果语言建模
- NNLM
- 遮盖语言建模
- CBOW
- 迁移学习
- 特定任务的标注语料
- 有监督学习
- 微调
- 有监督学习
- 找到一个尽可能接近我们任务的预训练模型,然后微调它
- 特定任务的标注语料
- 更好的性能 不断地增加模型大小
- 海量数据
- 时间和经济成本都非常高
- 模型蒸馏
- 三、注意力机制
- Attention
- 分词 词向量 矩阵
- RNN
- 递归计算 较慢
- Yt = f(Yt-1, Xt)
- 递归计算 较慢
- CNN
- 滑动窗口 局部上下文计算
- Yt = f(Xt-1, Xt,Xt+1)
- 滑动窗口 局部上下文计算
- Attenion
- Self-Attention
- Yt = f(Xt, A,B)
- A=B=X
- Yt = f(Xt, A,B)
- Self-Attention
- Scaled Dot-product Attention
- 计算注意力权重
- 更新 token embeddings
- Attention(Q,K,V) = softmax( ....)
- Pytorch 实现, torch.nn.Embedding
- Multi-head Attention
- 首先通过线性映射将序列映射到特征空间,每一组线性投影后的向量表示称为一个头 (head),然后在每组映射后的序列上再应用 Scaled Dot-product Attention
- Transformer Encoder
- The Feed-Forward Layer
- Layer Normalization
- Positional Embeddings
- 绝对位置表示
- 相对位置表示
- Transformer Decoder
- Masked multi-head self-attention layer
- Encoder-decoder attention layer
- Attention
- 四、开箱即用的pipelines
- 五、模型与分词器
- 六、必要的Pytorch知识
- 七、微调预训练模型
- 八、快速分词器
参考资料: Hello! · Transformers快速入门
相关文章:
Transformers快速入门-学习笔记
一、自然语言处理 NLP 是借助计算机技术研究人类语言的科学自然语言处理发展史 一、不懂语法怎么理解语言 依靠语言学家人工总结文法规则 Chomsky Formal Languages 难点:上下文有关文法 规则增多,存在矛盾 二、只要看得足够多,就能处理语言…...
luci界面开发中的MVC架构——LuCI介绍(二)
想要给openwrt开发应用,虽然直接可执行程序也可以运行,但是没有UI会很不方便,想要开发UI就要用openwrt的那一套,自然就是LuCI,LuCI又用了一套MVC框架,今天就讲讲这是个什么东西。 OpenWrt LuCI 界面开发中…...
第1章大型互联网公司的基础架构——1.10 其他NoSQL数据库
这里我们简单介绍一下其他常见的NoSQL数据库及其适用的场景,其中部分数据库会在后续服务设计章节中正式使用时再做详细介绍。 1.10.1 文档数据库 文档数据库的典型代表是MongoDB和CouchDB。**文档数据库普遍采用JSON格式来存储数据,而不是采用僵硬的行…...
DeepSeek+Kimi生成高质量PPT
DeepSeek与Kimi生成PPT全流程解析 一、工具分工原理 DeepSeek核心作用:生成结构化PPT大纲(擅长逻辑构建与内容优化)Kimi核心作用:将文本转换为视觉化PPT(提供模板库与排版引擎) 二、操作步骤详解 1. 通…...
web网络安全:跨站脚本攻击(XSS)
跨站脚本攻击(XSS)概述 跨站脚本攻击(XSS,Cross-Site Scripting) 是一种常见的 Web 安全漏洞,攻击者通过向受信任的网站注入恶意脚本(通常是 JavaScript),诱使其他用户在…...
【Python爬虫(44)】分布式爬虫:筑牢安全防线,守护数据之旅
【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取ÿ…...
微信小程序:多菜单栏设计效果
一、实现效果 二、代码 wxml 编辑前端界面,步骤 菜单逻辑: 逐步取出数组中的项,首先取出顶部菜单项,然后选中后取出选中的底部数据(左侧菜单+右侧内容),然后点击左侧菜单取出选中的左侧菜单对应的右侧内容 ①这里我的数据是全部封装到一个数组对象的,首先我的循环…...
海康威视摄像头ISUP(原EHOME协议) 摄像头实时预览springboot 版本java实现,并可以在浏览器vue前端播放(附带源码)
1.首先说了一下为什么要用ISUP协议来取流 ISUP主要就是用来解决摄像头没有公网ip的情况,如果摄像头或者所在局域网的路由器有公网ip的话,其实采用rtsp直接取流是最方便也是性能最好的,但是项目的摄像头没有公网IP所以被迫使用ISUP,ISUP是海康…...
蓝桥杯之阶段考核
📖 Day 7:阶段考核 - 蓝桥杯官方模拟赛(限时 4 小时) 📖 一、如何高效完成模拟赛? 模拟赛是一种接近真实竞赛的训练方式。要高效完成模拟赛,需要掌握以下策略: 1. 赛前准备 ✅ 环…...
Python爬虫基础重要数据类型
重要数据类型 列表数据类型 在实际开发中,经常需要将一组(不只一个)数据存储起来,以便后边的代码使用。列表就是这样的一个数据结构。且列表是Python中最基本也是最常用的数据结构之一。什么是数据结构呢?通俗来讲&a…...
乐享数科:供应链金融—三个不同阶段的融资模式
供应链金融是与产业链紧密结合的融资模式,它主要体现在订单采购、存货保管、销售回款这三个不同的业务阶段,并针对这些阶段提供了相应的金融服务。以下是这三个阶段中主要的融资模式及其特点: 供应链金融融资模式主要分为以下几种࿱…...
【AI】openEuler 22.03 LTS SP4安装 docker NVIDIA Container Toolkit
NVIDIA Container Toolkit 打开网址 Unsupported distribution or misconfigured repository settings | NVIDIA Container Toolkit 为方便离线安装,先下载过来 wget https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo mk…...
【2025全网首发B站教程】YOLOv12训练数据集构建:标签格式转换-划分-YAML 配置 避坑指南 | 小白也能轻松玩转目标检测!
【2025全站首发】YOLOv12训练数据集构建:标签格式转换-划分-YAML 配置 避坑指南 | 小白也能轻松玩转目标检测! 文章目录 1. 数据集准备1.1 标签格式转换1.2 数据集划分1.3 yaml配置文件创建 2. 训练验证 1. 数据集准备 示例数据集下载链接:P…...
设计模式教程:中介者模式(Mediator Pattern)
中介者模式是一种行为型设计模式,它用于减少对象之间的直接依赖关系。通过引入一个中介者对象,所有对象的交互都通过中介者进行,而不是直接相互通信。这种模式的主要目的是减少对象之间的耦合,提升系统的灵活性和可维护性。 1. 定…...
编写dockercompose脚本,管理redis,activemq,mysql5.7
编写dockercompose脚本,管理redis,activemq,mysql5.7,mysql的root密码设置Duke2007,redis密码设置duke0591 Docker Compose 多服务编排脚本(安全增强版) yaml 复制 services: # # MySQL 5.7 服务配置 #…...
【编程语言】委托与函数指针
委托与函数指针的相似之处: 指向方法:C# 的委托和 C 的函数指针都可以用来指向一个方法或函数。调用方法:它们都可以通过引用(委托或函数指针)来调用指向的方法。 委托与函数指针的主要区别: 类型安全&am…...
基于vue和微信小程序的校园自助打印系统(springboot论文源码调试讲解)
第3章 系统设计 3.1系统功能结构设计 本系统的结构分为管理员和用户、店长。本系统的功能结构图如下图3.1所示: 图3.1系统功能结构图 3.2数据库设计 本系统为小程序类的预约平台,所以对信息的安全和稳定要求非常高。为了解决本问题,采用前端…...
数字后端实现之Innovus中open net原因解析及解决方案
数字IC后端设计实现Innovus中我们经常会碰到如下的WARNING警告信息。这个log是在route或ECO Route阶段报的。这个WARNING必须要看,因为这里是报告当前设计存在open的net,即某些pin只有逻辑连接,而没有实际的物理连接。 这里正常工具应该报ERR…...
MATLAB基础学习相关知识
MATLAB安装参考:抖音-记录美好生活 MATLAB基础知识学习参考:【1小时Matlab速成教程-哔哩哔哩】 https://b23.tv/CnvHtO3 第1部分:变量定义和基本运算 生成矩阵: % 生成矩阵% 直接法% ,表示行 ;表示列 a [1,2,3;4,5,6;7,8,9];%…...
Mac系统下使用Docker快速部署MaxKB:打造本地知识库问答系统
随着大语言模型的广泛应用,知识库问答系统逐渐成为提升工作效率和个人学习的有力工具。MaxKB是一款基于LLM(Large Language Model)大语言模型的知识库问答系统,支持多模型对接、文档上传和自动爬取等功能。本文将详细介绍如何在Ma…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...
【Veristand】Veristand环境安装教程-Linux RT / Windows
首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...
