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

【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.kler.cn/a/547065.html

相关文章:

  • Springboot整合ES
  • Linux系统使用ollama本地安装部署DeepSeekR1 + open-webui
  • 字玩FontPlayer开发笔记14 Vue3实现多边形工具
  • wps接入DeepSeek教程
  • uniapp语音时的动态音波的实现
  • SpringBoot中Mybatis记录执行sql日志
  • 基于 STM32 平台的音频特征提取与歌曲风格智能识别系统
  • TypeScript装饰器 ------- 学习笔记分享
  • DeepSeek 模型部署与使用技术评测(基于阿里云零门槛解决方案)
  • 部署onlyoffice后,php版的callback及小魔改(logo和关于)
  • Java项目引入DeepSeek搭建私有AI
  • React历代主要更新
  • 使用EVE-NG-锐捷实现NAT
  • 尚硅谷爬虫note003
  • 微软AutoGen介绍——Managing State保存并加载持续会话的Agents和Teams
  • ML.NET库学习006:成人人口普查数据分析与分类预测
  • 第十一篇:EMC的“电磁护盾”——三电系统干扰抑制实战
  • uniapp中对于文件和文件夹的处理,内存的查询
  • 132,【1】 buuctf web [EIS 2019]EzPOP
  • Scrapy:任务队列底层设计详解