每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/

要提出像GPT这类大型语言模型的概念,并从事严肃的人工智能研究,确实需要扎实的数学功底。然而好消息是,如果只是想理解这些模型的工作原理,所需的数学并不复杂。只要曾经在1960年代以后接受过高中数学教育,就已经掌握了基本的知识,比如向量、矩阵等内容。

需要注意的是,本文讲解的是理解“推理”过程所需的数学知识——也就是如何使用一个已经训练好的人工智能模型,而不是关于如何训练它的过程。虽然训练所需的数学也并不复杂,但那部分内容将留待后续文章介绍。

明确这一点后,正式开始深入讲解。

向量与高维空间

博主使用了“向量”一词,基本等同于软件工程师所说的“数字数组”。但在数学意义上,一个长度为 n 的向量不仅是一个数组,它还表示一个 n 维空间中的方向和距离,或者等价地,可以看作是从原点出发,沿着这个向量到达某个点。

在二维空间中,向量 (2, -3) 意味着“向右两单位,下移三单位”,也就是从原点出发移动后所处的位置。三维空间中的向量 (5, 1, -7) 则意味着“向右五单位、上移一单位、远离观察者七单位”(某些情况下可能表示向观察者移动七单位)。当维度更高时,人类无法直观想象,但概念上是一致的。

在LLM中,向量用于表达各种含义。例如,模型输出的logits向量(见上一篇)代表了对下一个token的不同可能性的预测。在这种情形下,可以将logits看作存在于一个高维空间中,这个空间表示了“意义”的分布。

词汇空间(Vocab Space)

每个token对应的logits值是一组数字,每个数字表示该token在当前上下文中作为下一个token的可能性。在书中分析的GPT-2模型中,其tokenizer包含50,257个token,因此每个logits向量的长度也是50,257。比如,token ID为464的是“The”,那么logits向量中第464位的数值表示“The”作为下一个token的相对概率。

可以将每一个logits向量视为一个存在于50,257维空间中的点。这个空间的每一个位置都代表了对下一token的各种可能性组合。本文将这个空间称为“词汇空间”。

不过,这是一个“混乱”的词汇空间。假设一个简化的LLM,其词汇表中只有三个token,那么两个logits向量 (1, 2, 3) 和 (-9, -8, -7) 虽然数值不同,但表达的是相同的排序:第一个token最不可能,第二个次之,第三个最可能。

为了整理这种冗余,可以将logits向量传入softmax函数,从而得到一组真实的概率分布。这组概率数值介于0到1之间,总和为1。这样,所有表达相同排序的logits向量将映射为同一个概率向量。例如,(1, 2, 3) 和 (-9, -8, -7) 都会被softmax映射为大约 (0.09, 0.24, 0.66)。

需要指出的是,其他向量也可能表达相同的排序,但概率分布不同。例如,(1, 2, 5) 虽然仍是“第三个token最可能”的排序,但其softmax结果会是类似 (0.02, 0.05, 0.94) 的分布,显示出第三个token的优势更加明显。

因此,可以将词汇空间分为两类:一种是“混乱”的、未经归一化的向量空间;另一种是经过softmax函数后得到的、表示真实概率分布的“整洁”空间。

还有一种特殊情况是所谓的“one-hot向量”,其中只有一个数值为1,其余均为0,表示某个token的概率为100%。这种向量在下一篇文章中将发挥关键作用。

嵌入空间(Embedding Space)

嵌入空间是另一种高维空间,向量在此代表“意义”。如果将这些向量视为点,那么在语义上相近的词汇会在空间中聚集在一起。

“意义”的定义因任务而异。比如,在一个为动物学家设计的嵌入空间中,“家猫”、“狮子”和“老虎”可能聚集成一个簇,而“狗”、“狼”和“郊狼”则形成另一个簇。这种分类体现了对猫科动物和犬科动物的区分。

而在日常应用中,可能更希望看到“家猫”和“狗”聚在一起,远离“狮子”或“狼”等野生动物。这种嵌入空间更适合用于普通文本的处理和分析。

嵌入空间的维度和定义方式是灵活多样的,可以从表达复杂概念的“丰富空间”,一直到仅根据词性(如动词、名词、形容词)来聚类的“简单空间”。

一个可能令人困惑的事实是,在嵌入空间中,向量的长度往往并不重要。比如,(1, 2) 和 (8, 16) 方向一致,因此可视为表达相同的意义。

矩阵乘法实现空间投影

复习一下:矩阵本质上是多个向量的集合。例如,将两个二维向量 (2, -3) 和 (5, 1) 并排组合成矩阵:

[2 5]
[-3 1]


或按行排列:

[2 -3]
[5  1]


矩阵的维度用“行×列”表示。上面两个都是2×2矩阵。另一个例子是2×3矩阵:

[ 2 -3  7]
[ 5  1 -8]


矩阵可以相乘。这种乘法可用于几何变换。例如,下面这个2×2旋转矩阵:

[cosθ  -sinθ]

Shortcode

可以将点绕原点逆时针旋转θ度。将所有点放入一个n×2矩阵X(每行一个点),与旋转矩阵R相乘得到结果矩阵Y:

Y = X · R


在传统数学教学中,点通常是列向量组成的2×n矩阵,此时矩阵乘法写作R · X。但在机器学习中,更常采用“行优先”的格式,将每个点表示为行向量,组合成n×2矩阵,再与R右乘,即X · R。本文从此将采用这一方式。

可以将这个旋转矩阵R理解为一种函数,将输入的点变换成另一个空间中的点。也可以将其看作是将点从一个二维空间投影到另一个旋转过θ度的空间中。

更广泛地说,矩阵乘法可用于在不同维度的空间之间进行投影。例如:

  • 3×2矩阵可将三维空间中的点投影到二维平面(用于图形显示)

  • 50,257×768矩阵可将50,257维空间投影到768维空间

  • 768×50,257矩阵则实现从768维空间到50,257维空间的投影

这种投影可能是“有损”的,也就是说,在降维过程中会丢失一部分信息,即使再投影回来,也无法恢复原始数据。例如将两个不同远近的正方体投影到二维平面后,可能变成大小相同的图形。

神经网络的本质

一个神经网络的单层可以简化表示为:

Z = ϕ(XWᵗ + B)


其中ϕ是激活函数,B是偏置项。若忽略这两个部分,则简化为:

Ẑ = XWᵗ


其中:

  • X 是输入数据,形状为 n × d_in

  • W 是权重矩阵,形状为 d_out × d_in,转置后为 d_in × d_out

  • Ẑ 是输出矩阵,形状为 n × d_out

因此,神经网络中的一层实质上就是一个矩阵乘法过程,即从一个输入维度的空间投影到输出维度的空间。偏置项B仅仅是一个线性平移,激活函数则可选。

总结

以上便是目前为止理解大型语言模型所需的基本数学概念。正如文章开头所述,这些内容基本不超出高中数学的范畴。尽管涉及的矩阵较大、空间维度较高,但核心数学原理仍然相对简单。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/96543.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/96543.shtml
英文地址,请注明出处:http://en.pswp.cn/web/96543.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

prometheus安装部署与alertmanager邮箱告警

目录 安装及部署知识拓展 各个组件的作用 1. Exporter(导出器) 2. Prometheus(普罗米修斯) 3. Grafana(格拉法纳) 4. Alertmanager(告警管理器) 它们之间的联系(工…

芯科科技FG23L无线SoC现已全面供货,为Sub-GHz物联网应用提供最佳性价比

低功耗无线解决方案创新性领导厂商Silicon Labs(亦称“芯科科技”,NASDAQ:SLAB)近日宣布:其第二代无线开发平台产品组合的最新成员FG23L无线单芯片方案(SoC)将于9月30日全面供货。开发套件现已上…

Flutter跨平台工程实践与原理透视:从渲染引擎到高质产物

🌟 Hello,我是蒋星熠Jaxonic! 🌈 在浩瀚无垠的技术宇宙中,我是一名执着的星际旅人,用代码绘制探索的轨迹。 🚀 每一个算法都是我点燃的推进器,每一行代码都是我航行的星图。 &#x…

【国内电子数据取证厂商龙信科技】浅析文件头和文件尾和隐写

一、前言想必大家在案件中或者我们在比武中遇到了很多关于文件的隐写问题,其实这一类的东西可以进行分类,而我们今天探讨的是图片隐写,音频隐写,电子文档隐写,文件头和文件尾的认识。二、常见文件头和文件尾2.1图片&am…

深度学习笔记36-yolov5s.yaml文件解读

🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 yolov5s.yaml源文件 yolov5s.yaml源文件的代码如下 # YOLOv5 🚀 by Ultralytics, GPL-3.0 license# Parameters nc: 20 #80 # number of classe…

PostgreSQL 大对象管理指南:pg_largeobject 从原理到实践

概述 有时候,你可能需要在 PostgreSQL 中管理大对象,例如 CLOB、BLOB 和 BFILE。PostgreSQL 中有两种处理大对象的方法:一种是使用现有的数据类型,例如用于二进制大对象的 bytea 和用于基于字符的大对象的 text;另一种…

算法第四题移动零(双指针或简便设计),链路聚合(两个交换机配置)以及常用命令

save force关闭导出dis vlandis ip int bdis int bdis int cudis thisdis ip routing-table(查路由表)int bridge-aggregation 1(链路聚合,可以放入接口,然后一起改trunk类。)稳定性高

告别繁琐配置!Retrofit-Spring-Boot-Starter让HTTP调用更优雅

01 引言 之前分享过一篇文章【像调用接口一样调用第三方API】,今天迎来了新成员Retrofit。 retrofit-spring-boot-starter 是一个基于 Spring Boot 的 starter,它简化了 Retrofit 在 Spring 环境中的集成和使用。Retrofit 本身是一个类型安全的 HTTP 客…

60_基于深度学习的羊群计数统计系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)

目录 项目介绍🎯 功能展示🌟 一、环境安装🎆 环境配置说明📘 安装指南说明🎥 环境安装教学视频 🌟 二、数据集介绍🌟 三、系统环境(框架/依赖库)说明🧱 系统环…

代理服务器是什么?怎么选择?

代理服务器是一种位于用户设备与目标网络之间的中间服务器,通过接收用户请求、转发至目标网络并将结果返回给用户,实现“用户→代理服务器→目标网络”的间接访问。其核心功能围绕“网络优化”“访问控制”与“身份隐藏”展开,为个人与企业用…

代码随想录刷题Day56

子集 这道题求子集,集合的基本运算之一,按照高中数学学习集合的知识,可以把这个找幂集的过程按照元素的个数来划分步骤。也就是先找零个元素的子集,再找一个元素的子集,再找两个元素的子集...一直到找N个元素的集合为…

pycharm——关于Pyqt5

PyQt5新手教程(七万字) import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QPushButton, QLabel, QInputDialog, QColorDialog, QFontDialog, QFileDialog, QProgressDialog, QMessageBox from PyQt5.QtCore i…

P2678 [NOIP 2015 提高组] 跳石头

P2678 [NOIP 2015 提高组] 跳石头 判断条件该怎么写

小麦矩阵系统:一键批量发,多账号同步不掉链

随着互联网的发展和社交平台的普及,企业和个人用户越来越依赖社交媒体平台来进行信息传播、品牌宣传以及市场推广。在这个信息高速流动的时代,如何更高效地管理多个社交平台的账号,并保持信息的同步与流畅传播,成为了许多企业面临…

JavaScript经典面试题二(函数和作用域)

目录 一、闭包,使用场景 1.闭包的定义 2.闭包的实现原理 3.闭包的应用场景 (1)数据封装与私有变量 (2)函数柯里化 (3)事件处理与回调 (4)模块化开发 4.注意事项 …

Linux防火墙iptables

目录 一,Iptables概述 二,iptables组成 1,表 2,链 3,链表对应关系 4,数据包过滤的匹配流程 5,规则匹配策略 三,iptables防火墙配置 1,iptables命令 2&#xff…

[优选算法专题二——NO.16最小覆盖子串]

题目链接 LeetCode最小覆盖子串 题目描述 代码编写 、关键注意点 仅统计目标相关字符:通过 hash1.count(in) 判断字符是否在 t 中,避免无关字符(如 s 中的 D、E)干扰统计,提升效率。count 的更新时机:仅当…

考研408计算机网络近年第34题真题解析(2021-2024.34)

(2021.34)此题已明确为差分曼彻斯特编码,通常第一个时间间隙可能不太好判断,因为0,或1可以变化,但差分曼彻斯特编码的其它位置可以判断,图中黄色数字的时间间隙位置,开始位置和前面一…

微信小程序开发教程(八)

目录:1.全局配置-tabBar2.小程序的页面配置3.数据请求-GET和POST请求4.数据请求-request请求的注意事项1.全局配置-tabBar注意tabar页面必须放到Page头部位置2.小程序的页面配置3.数据请求-GET和POST请求4.数据请求-request请求的注意事项

日语学习-日语知识点小记-构建基础-JLPT-N3阶段(29):文法運用第9回3+(考え方11)

日语学习-日语知识点小记-构建基础-JLPT-N3阶段(31):文法運用第9回31、前言(1)情况说明(2)工程师的信仰2、知识点1ー 復習2ー 单词训练3、单词(1)日语单词  …