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

【AI系列】从零开始学习大模型GPT (2)- Build a Large Language Model (From Scratch)

前序文章
【AI系列】从零开始学习大模型GPT (1)- Build a Large Language Model (From Scratch)

Build a Large Language Model

    • 背景
    • 第1章:理解大型语言模型
    • 第2章:处理文本数据
    • 第3章:编码Attention机制
      • 什么是Attention机制?
        • Attention机制的基本原理
        • 数学表示
        • 应用
        • 总结
      • 为什么要使用注意力机制
      • 如何实现?
        • 简单注意力机制
        • 带训练权重的注意力机制
        • 紧凑注意力机制 mask attention
        • 多头注意力机制
    • 第4章:从零实现GPT模型
    • 第5章:在未标记数据上进行预训练
    • 第6章:用于文本分类的微调
    • 第7章:为指令执行进行微调
    • 参考

背景

第1章:理解大型语言模型

见前序文章【AI系列】从零开始学习大模型GPT (1)- Build a Large Language Model (From Scratch)

第2章:处理文本数据

见前序文章【AI系列】从零开始学习大模型GPT (1)- Build a Large Language Model (From Scratch)

第3章:编码Attention机制

什么是Attention机制?

Attention机制是一种在深度学习中广泛应用的技术,特别是在自然语言处理(NLP)和计算机视觉等领域。它的核心思想是让模型在处理输入数据时,能够有选择地关注某些重要部分,而不是对所有部分一视同仁。这种机制可以显著提高模型的性能和效率。

Attention机制的基本原理

Attention机制的基本原理可以通过以下几个步骤来描述:

  1. 计算注意力权重(Attention Weights)
    对于每一个输入元素,计算它与其他输入元素的相关性(即注意力权重)。这些权重通常通过点积(dot product)或其他相似度度量方法来计算。

  2. 归一化权重
    使用Softmax函数将这些权重归一化,使它们的和为1。这一步确保了权重可以被解释为概率分布。

  3. 加权求和
    使用归一化后的权重对输入元素进行加权求和,得到一个新的表示。这一步的结果是模型能够更关注那些权重较高的输入元素。

数学表示

假设有一个输入序列 X = [ x 1 , x 2 , … , x n ] X = [x_1, x_2, \ldots, x_n] X=[x1,x2,,xn],Attention机制的计算过程可以表示为:

  1. 计算注意力权重
    e i j = score ( x i , x j ) e_{ij} = \text{score}(x_i, x_j) eij=score(xi,xj)
    其中, score ( x i , x j ) \text{score}(x_i, x_j) score(xi,xj) 可以是点积、加性函数等。

  2. 归一化权重
    α i j = exp ⁡ ( e i j ) ∑ k = 1 n exp ⁡ ( e i k ) \alpha_{ij} = \frac{\exp(e_{ij})}{\sum_{k=1}^{n} \exp(e_{ik})} αij=k=1nexp(eik)exp

http://www.dtcms.com/a/18130.html

相关文章:

  • C# ASP.NET的未来发展趋势
  • ElasticSearch基础和使用
  • SOUI基于Zint生成Code 2 of 5码
  • (5/100)每日小游戏平台系列
  • Vue3(1)
  • 探索顶级汽车软件解决方案:驱动行业变革的关键力量
  • Create Deploy Your Website Quickly - Docusaurus GitHub Pages
  • 2.14学习记录
  • 28、深度学习-自学之路-NLP自然语言处理-做一个完形填空,让机器学习更多的内容程序展示
  • DeepSeek 引领AI新潮流:Janus-Pro 打破多模态理解与生成的边界
  • 探索Hugging Face:开源AI社区的核心工具与应用实践
  • 【Xposed】在 Android Studio 中使用 Kotlin DSL 自动结束并启动应用进程
  • Zabbix告警队列清理教程
  • JUC并发—Java集合包底层源码剖析
  • 麒麟系统离线安装SVN
  • 【Elasticsearch】Elasticsearch检索方式全解析:从基础到实战(一)
  • [css] 黑白主题切换
  • poetry shell - 作为插件安装和使用
  • Django开发入门 – 5. Web框架与MVT架构
  • 手写数字识别学习记录(自用)
  • 在nodejs中使用RabbitMQ(二)发布订阅
  • Python实现文件夹监控:自动捕获并处理新增Excel文件,支持子文件夹遍历
  • AI赋能铁道安全巡检探索智能巡检新时代,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建铁路轨道场景下轨道上人员行为异常检测预警系统
  • 高中物理-基础知识1
  • 【3.Git与Github的历史和区别】
  • Spring Boot 原理分析
  • 打靶记录29——dawn
  • 红队视角出发的k8s敏感信息收集——持久化存储与数据泄露
  • 达梦:跟踪日志诊断
  • 备战蓝桥杯 Day2 枚举 Day3 进制转换