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

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
  • 二、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
      • 纯Decoder 模型
        • GPT
          • GPT-2
            • CTRL
              • GPT-3
                • GPT-Neo
                • GPT-J
      • Encoder-Decoder 模型
        • T5
          • BART
            • M2M-100
              • BigBird
      • Encoder(左边):负责理解输入文本,为每个输入构造对应的语义表示(语义特征)
      • Decoder(右边):负责生成输出,使用 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
    • 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
  • 四、开箱即用的pipelines
  • 五、模型与分词器
  • 六、必要的Pytorch知识
  • 七、微调预训练模型
  • 八、快速分词器

参考资料: Hello! · Transformers快速入门

相关文章:

  • 一个基本的pyside6项目模板demo
  • Linux 命令大全完整版(06)
  • 【并发编程】线程池任务抛异常会怎么样?
  • NI Multisim仿真实现39计数器
  • Linux 权限系统和软件安装(二):深入理解 Linux 权限系统
  • 綫性與非綫性泛函分析與應用_3.例題-母本
  • AI发展迅速,是否还有学习前端的必要性?
  • 音视频封装格式:多媒体世界的“容器”与“桥梁”
  • 契约思维驱动开发:OpenAPI的最佳实践
  • 【论文解读】TransMLA: Multi-Head Latent Attention Is All You Need
  • Rust语言基础知识详解【一】
  • RMII(Reduced Media Independent Interface)详解
  • 基于Spring Boot的公司资产网站设计与实现(LW+源码+讲解)
  • Redis过期数据处理
  • 7. H264码流
  • Spring Boot 日志管理(官网文档解读)
  • 数据结构与算法-搜索-双向搜索 和 A*算法(字串变换,八数码,第k短路)
  • 0基础玩转python(打怪升级篇)第一章1.1安装python编辑器
  • Spring-JAVA
  • 每日一题——主持人调度(二)
  • 对话|男篮国手杨瀚森:参加NBA选秀,去更大的舞台追梦
  • 万能险新规落地:保险期限不得低于五年,明确万能险销售“负面清单”
  • 迎接神十九乘组回家,东风着陆场各项工作已准备就绪
  • 政治局会议:积极维护多边主义,反对单边霸凌行径
  • 北京画院上海“点画”:评论家展场一对一评点
  • 中国海外宏洋集团:一季度经营溢利同比降48.6%,密切关注行业收并购机会等