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

LLM;超越记忆《第 2 部分 》

一、说明

        在这篇博客中,我深入研究了将大型语言模型(LLM)提升到基本记忆之上的数学框架。我们探索了动态上下文学习、连续空间插值及其生成能力,揭示了 LLM 如何理解、适应和创新超越传统机器学习模型。

        LLM代表了人工智能的重大飞跃,超越了单纯的记忆模型的概念。在第 1 部分中,我介绍了 LLM 如何通过具有语言多样性的更大语料库进行泛化的复杂性。

        要详细了解 LLM 的工作原理,您可以在此处找到全面的博客: GPT 背后的巫术

二、动态情境学习与静态映射

2.1 记忆模型:高级有限状态自动机:

        数学描述:记忆模型可以使用高级形式的有限状态自动机 (FSA) 表示,该模型可以使用复杂的转移矩阵进行数学建模:

        在这个公式中,Aijx) 是状态转移矩阵的元素,捕获转移概率或规则,而 Sj 是表示自动机中不同状态的状态向量。

        固定关系:张量乘积⊗表示状态和输入之间固定的、预先确定的关系。这种刚性与LLM的适应性形成鲜明对比。在语言特征的上下文中,这意味着自动机只能识别和响应它已被明确编程为处理的输入模式。

        适应性的局限性:与LLM不同,这些记忆模型缺乏超越其编程状态转换的泛化能力,这使得它们不太擅长处理新颖或看不见的输入模式。

2.2 具有注意力机制的序列到序列建模:

        数学基础:LLM,尤其是那些建立在 Transformer 架构上的 LLM,利用了由注意力机制增强的序列到序列模型。这种注意力机制的数学表示如下:

        此处,QK 和 V 表示从输入数据派生的查询、键和值矩阵。softmax 函数应用于查询和键的缩放点积,确定输出中每个值的权重。

        上下文适应:比例因子 dk 对点积进行归一化,以避免由于高维数而导致的超大值。这种归一化在稳定跨层梯度流动方面起着至关重要的作用。

        层深度:Transformer 架构中的每一层都应用这种注意力机制,使模型能够对输入序列形成复杂的分层理解。这种多层方法使 LLM 能够捕获数据中细微的关系和依赖关系。

2.3 对比分析:

  • 复杂性和灵活性:LLM 具有多层、注意力驱动的架构,与记忆模型中高级 FSA 的静态、基于规则的性质相比,表现出更大程度的复杂性和灵活性。
  • 上下文理解:Transformer 的注意力机制允许 LLM 动态权衡和解释输入的不同部分,从而对语言模式有更丰富、更上下文感知的理解。
  • 泛化能力:这种动态的情境学习使LLM能够有效地从他们的训练数据中泛化,适应新的场景并产生新的反应,这种能力在记忆模型中受到严重限制。

三、连续空间插值

3.1 记忆模型:具有代数结构的离散映射:

代数表示:在记忆模型中,可以使用代数结构来表述离散映射:

这里,⋁ 表示逻辑 OR 运算,∧ 表示逻辑 AND 运算。每个 yi 都是模型旨在识别的特定模式或状态。

这种表示反映了二进制和确定性映射,其中输出严格由某些输入模式的存在与否来定义。

代数公式的局限性:此类模型受到限制,因为它们无法在显式定义的映射之外进行插值或泛化。该结构是刚性的,这意味着它缺乏灵活性,无法适应与预定义模式不完全匹配的输入。

3.2 LLM:嵌入空间插值:

高维向量空间:基于神经网络的LLM在连续的高维向量空间中运行:

在此公式中,hi 表示上下文中单词或标记的嵌入表示形式。α_ij是注意力权重,W是权重矩阵,E_xj表示第j个标记的嵌入,b是偏置项。

ReLU(整流线性单元)函数引入了非线性,使模型能够捕获数据中的复杂模式。

注意力机制和情境理解:

  • 注意力权重 αij 允许模型动态关注输入序列的不同部分。这种机制是理解上下文和单词之间关系的关键。
  • 与记忆模型中的离散映射不同,LLM 中基于注意力的插值允许对语言进行细致入微的理解,使模型能够有效地处理歧义、同义词和不同的句子结构。

3.3 比较分析及启示:

  • 灵活性和泛化:与记忆模型相比,LLM 表现出显着的灵活性和泛化能力。LLM操作的连续空间允许在含义和上下文中产生细微的变化和渐变,这在记忆模型的离散框架中是不可能的。
  • 处理新输入:LLM 擅长处理新输入,根据学习模式进行推理,而不是依赖精确匹配。这与僵化的、基于规则的记忆模型方法形成鲜明对比。
  • 复杂模式识别:LLM 中使用的高维向量空间和非线性函数使它们能够捕获和生成复杂的语言模式,由于其二进制和固定性质,这一特征在记忆模型中受到限制。

四、适应性和泛化

4.1 记忆模型:固定概率空间中的随机过程:

随机过程公式:机器学习中的记忆模型可以使用随机过程进行数学表示。一种常见的表示是通过马尔可夫模型,其特征是固定的转移概率:

这里,st 表示时间 t 的状态,pij 是从状态 i 过渡到状态 j 的概率。这些概率保持不变,反映了模型的静态特性。

固定概率的含义:pij 的恒定性意味着模型的行为是预先确定的,不会根据新的数据或经验而演变。这限制了模型适应新模式或泛化到初始编程之外的能力。

4.2 LLM:梯度下降优化:

梯度下降机制:LLM 采用梯度下降优化,这是现代机器学习的基石。梯度下降更新的基本方程为:

在这个方程中,θt 表示迭代 t 处的模型参数,η 表示学习率,∇θLθt;x,y) 是损失函数 L 相对于参数 θ 的梯度。

持续学习和适应:

  • 梯度下降的迭代性质允许 LLM 根据从训练数据计算的梯度不断调整和改进其参数。这个过程使模型能够学习复杂的模式,并从其训练数据泛化到新的、看不见的示例。
  • 通过ReLU等激活函数引入的非线性进一步增强了LLM的适应性,使它们能够对数据中复杂的非线性关系进行建模。

4.3 对比分析:

静态学习与动态学习:

  • 记忆模型具有固定的概率框架,缺乏LLM的动态学习能力。它们受限于初始设置期间定义的模式和关系。
  • LLM 通过梯度下降,不断更新和完善它们对数据的理解,从而实现更强大的泛化能力。

模式识别的复杂性:

  • 记忆模型的静态特性限制了它们识别和适应复杂模式的能力。它们最适合于具有明确定义且不变规则的问题。
  • 相比之下,LLM 可以捕获和生成复杂且不断发展的模式,使其适用于需要深入理解和创造性解决问题的任务。

五、复杂模式学习

        记忆模型:基于集合理论的局限性:

        集合理论表示:机器学习中的记忆模型可以使用集合论进行概念化。模型的知识表示为一组输入-输出对:

        集合 K 中的每个元素都是一对 (xi,yi),其中 xi 是输入,yi 是相应的输出。这个集合是有限和静态的,意味着从输入到输出的固定映射。

        静态知识集的含义:

  • 知识集的静态性质意味着模型无法适应或学习明确定义的输入输出对之外。它缺乏对新的、看不见的数据进行插值或泛化的能力。
  • 这种表示类似于查找表,其中对给定输入的响应是预先确定且不可更改的。

5.1 LLM:使用神经网络层的深度学习:

神经网络层动力学:LLM 使用深度神经网络来捕获复杂的模式。深度神经网络中层的基本方程为:

这里,h_l+1 是层 l+1 的输出,σ 是非线性激活函数(如 ReLU、sigmoid 或 tanh),Wl 是权重矩阵,bl 是偏置向量,hl 是前一层 l 的输出。

非线性和模式识别:

  • 非线性激活函数σ将非线性引入网络,使其能够学习和建模数据中复杂的非线性关系。
  • 此功能允许 LLM 捕获线性模型或简单记忆无法实现的复杂模式和依赖关系。

分层学习和泛化:

  • 网络的深度(层数)和连接的复杂性(由 Wl 和 bl 定义)允许学习分层特征,从简单到越来越抽象的表示。
  • 这种分层学习对于处理自然语言的复杂性至关重要,使 LLM 能够理解和生成细微且上下文丰富的语言。

5.2 对比分析:

  • 静态与动态知识表示:记忆模型仅限于静态的、预定义的知识集,而 LLM 通过复杂的神经网络结构动态生成知识。
  • 泛化能力:记忆模型中的静态知识表示限制了它们的泛化能力,而 LLM 通过深度学习,擅长从训练数据泛化到新的、看不见的场景。
  • 模式的复杂性:LLM 中神经网络的深度和非线性使它们能够捕获比简单的、基于规则的记忆模型方法更复杂的模式。

六、新颖的输出生成:概率建模

        作为最后一部分,LLM 使用概率语言模型来生成新颖的输出。核心数学公式以应用于最终隐藏状态的线性变换的 softmax 函数为中心:

哪里

  • P(word∣c) 表示给定上下文 c 的下一个单词在词汇表上的概率分布。
  • W_final 和 b_final 分别是最终输出层的权重矩阵和偏置向量。h_final 是神经网络的最后一个隐藏状态,封装了模型处理的上下文信息。

        LLMs复杂而先进的数学结构,从动态注意力机制和连续空间运算到梯度下降优化和深度神经网络结构,凸显了其相对于传统记忆模型的优越性。

        这些错综复杂的数学框架使 LLM 能够动态学习、适应、插值和生成新的输出,反映出它们在推进人工智能方面的关键作用。

        通过这种综合分析,LLM被证明代表了机器学习的范式转变,能够进行复杂的数据处理和复杂的语言理解,远远超出基于记忆的方法的能力。

七、LLM系列:

  • 第 1 部分 — LLM 只是一种记忆技巧吗?
  • 第 2 部分 — LLM;超越记忆
  • 第 3 部分 — 从数学上评估封闭式 LLM 的泛化
  • 第 4 部分 — 提高 LLM 的安全性:对越狱的严格数学检查
  • 第 5 部分 — LLM 中红队的深入分析:数学和实证方法

相关文章:

LLM;超越记忆《第 2 部分 》

一、说明 在这篇博客中,我深入研究了将大型语言模型(LLM)提升到基本记忆之上的数学框架。我们探索了动态上下文学习、连续空间插值及其生成能力,揭示了 LLM 如何理解、适应和创新超越传统机器学习模型。 LLM代表了人工智能的重大飞…...

Python中的加法测试题实现

随机生成5道10以内的加法测试题,用户在10秒内使用键盘输入答案。完成全部5道答题之后,计算机生成答题记录报告,并对答题情况进行分析,显示“答对了”,或“答错了”、并显示正确答案。如果未能按时完成,则显…...

使用gcloud SDK 管理和部署 Cloud run service

查看cloud run 上的service 列表: gcloud run services list > gcloud run services listSERVICE REGION URL LAST DEPLOYED BY LAST DEPL…...

JS逆向-mytoken之code参数

前言 本文是该专栏的第60篇,后面会持续分享python爬虫干货知识,记得关注。 本文以mytoken为例,通过js逆向获取其code参数的生成规律。具体的“逆向”思路逻辑,笔者将会详细介绍每个步骤,并且将在正文结合“完整代码”进行详细说明。 接下来,跟着笔者直接往下看正文详细…...

第九节HarmonyOS 常用基础组件4-Button

一、Button Button组件主要用来响应点击操作,可以包含子组件。 示例代码: Entry Component struct Index {build() {Row() {Column() {Button(确定, { type: ButtonType.Capsule, stateEffect: true }).width(90%).height(40).fontSize(16).fontWeigh…...

常用数据预处理方法 python

常用数据预处理方法 数据清洗缺失值处理示例删除缺失值插值法填充缺失值 异常值处理示例删除异常值替换异常值 数据类型转换示例数据类型转换在数据清洗过程中非常常见 重复值处理示例处理重复值是数据清洗的重要步骤 数据转换示例 数据集成示例数据集成是将多个数据源合并为一…...

【无标题】AttributeError: module ‘gradio‘ has no attribute ‘outputs‘

问题描述 AttributeError: module gradio has no attribute outputs 不知道作者用的是哪个gradio版本,最新的版本报错AttributeError: module gradio has no attribute outputs , 换一个老一点的版本会报错AttributeError: module gradio has no attribu…...

无人机助力电力设备螺母缺销智能检测识别,python基于YOLOv7开发构建电力设备螺母缺销小目标检测识别系统

传统作业场景下电力设备的运维和维护都是人工来完成的,随着现代技术科技手段的不断发展,基于无人机航拍飞行的自动智能化电力设备问题检测成为了一种可行的手段,本文的核心内容就是基于YOLOv7来开发构建电力设备螺母缺销检测识别系统&#xf…...

动态页面技术的发展与应用

jsp 静态页面:web诞生后的html文档,不论多少次访问都是同一份html文档或者是其他的什么文档,所以说是”静态“的。 虽然js能让页面产生互动,但是不论什么人访问,看到的都是放在服务器的那一份写死的文件/文档activexa…...

1-算法基础-编程基础

1.基本数据类型 char ch A; char s[] "hello";2.const定义常量 const int N 1e5 9;//const定义常量&#xff0c;后续不可被修改 int a[N];3.万能头文件 C11等可用 #include<bits/stdc.h> using namespace std;4.typedef typedef long long kk; kk a[20…...

HarmonyOS应用开发——程序框架UIAbility、启动模式与路由跳转

前言 UIAbility简单来说就是一种包含用户界面的应用组件&#xff0c;用于和用户进行交互。每一个UIAbility实例&#xff0c;对应于一个最近任务列表中的任务。 一个应用可以有一个UIAbility&#xff0c;也可以有多个UIAbility。一个UIAbility可以对应于多个页面&#xff0c;建议…...

node.js-连接SQLserver数据库

1.在自己的项目JS文件夹中建文件&#xff1a;config.js、mssql.js和server.js以及api文件夹下的user.js 2.在config.js中封装数据库信息 let app {user: sa, //这里写你的数据库的用户名password: ,//这里写数据库的密码server: localhost,database: medicineSystem, // 数据…...

目标检测YOLO系列从入门到精通技术详解100篇-【图像处理】图像预处理方法

目录 前言 知识储备 Opencv图像操作 几个高频面试题目 为什么需要图像算法? 算法原理...

Android drawable layer-list右上角红点,xml布局实现,Kotlin

Android drawable layer-list右上角红点&#xff0c;xml布局实现&#xff0c;Kotlin <?xml version"1.0" encoding"utf-8"?> <layer-list xmlns:android"http://schemas.android.com/apk/res/android"><itemandroid:id"id…...

网络虚拟化场景下网络包的发送过程

网络虚拟化有和存储虚拟化类似的地方&#xff0c;例如&#xff0c;它们都是基于 virtio 的&#xff0c;因而在看网络虚拟化的过程中&#xff0c;会看到和存储虚拟化很像的数据结构和原理。但是&#xff0c;网络虚拟化也有自己的特殊性。例如&#xff0c;存储虚拟化是将宿主机上…...

《数据结构与测绘程序设计》试题详细解析(仅供参考)

一. 选择题&#xff08;每空2分&#xff0c;本题共30分&#xff09; &#xff08;1&#xff09;在一个单链表中&#xff0c;已知q所指结点是p所指结点的前驱结点&#xff0c;若在q和p之间插入结点s&#xff0c;则执行( B )。 A. s->nextp->next; p->nexts; B. q…...

Raft 算法

Raft 算法 1 背景 当今的数据中心和应用程序在高度动态的环境中运行&#xff0c;为了应对高度动态的环境&#xff0c;它们通过额外的服务器进行横向扩展&#xff0c;并且根据需求进行扩展和收缩。同时&#xff0c;服务器和网络故障也很常见。 因此&#xff0c;系统必须在正常…...

Redis队列stream,Redis多线程详解

Redis 目前最新版本为 Redis-6.2.6 &#xff0c;会以 CentOS7 下 Redis-6.2.4 版本进行讲解。 下载地址&#xff1a; https://redis.io/download 安装运行 Redis 很简单&#xff0c;在 Linux 下执行上面的 4 条命令即可 &#xff0c;同时前面的 课程已经有完整的视…...

ThinkPHP的方法接收json数据问题

第一次接触到前后端分离开发&#xff0c;需要在后端接收前端ajax提交的json数据&#xff0c;开发基于ThinkPHP3.2.3框架。于是一开始习惯性的直接用I()方法接收到前端发送的json数据&#xff0c;然后用json_decode()解析发现结果为空&#xff01;但是打印出还未解析的值却打印得…...

简单理解算法

简单理解算法 前言算法衡量一个好的算法具备的标准算法的应用场景 数据结构数据结构的组成方式 前言 hello&#xff0c;宝宝们~来分享我从一本书中理解的算法。《漫画算法》感觉对我这种算法小白比较友好。看完感觉对算法有了新的理解&#xff0c;计算机学习这么多年&#xff…...

C/C++ 内存管理(2)

文章目录 new 和 delet 概念new 和 delet 的使用new与 delete 底层原理malloc/free和new/delete的区别new / opera new / 构造函数 之间的关系定位new表达式(placement-new)内存泄漏内存泄漏分类如何对待内存泄漏 new 和 delet 概念 new和delete是用于动态内存管理的运算符&am…...

Net6.0或Net7.0项目升级到Net8.0 并 消除.Net8中SqlSugar的警告

本文基于NetCore3.1或Net6.0项目升级到Net7.0&#xff0c;参考连接&#xff1a;NetCore3.1或Net6.0项目升级到Net7.0-CSDN博客 所有项目按照此步骤操作一遍&#xff0c;完成后再将所有引用的包&#xff08;即 *.dll&#xff09;更新升级到最新版&#xff08;注意&#xff1a;有…...

力扣题:字符串的反转-11.22

力扣题-11.22 [力扣刷题攻略] Re&#xff1a;从零开始的力扣刷题生活 力扣题1&#xff1a;541. 反转字符串 II 解题思想&#xff1a;进行遍历翻转即可 class Solution(object):def reverseStr(self, s, k):""":type s: str:type k: int:rtype: str"&quo…...

Effective C++(二):对象的初始化

文章目录 一、类的初始化二、全局静态对象的初始化 一、类的初始化 对于类中的成员变量的初始化&#xff0c;一般有两种方法&#xff0c;一种是在类中定义的时候直接赋予初值&#xff1a; class CTextBlock { private:std::size_t textLength{ 0 };bool lenisValid{ false }:…...

云原生高级--shell自动化脚本备份

shell自动化脚本实战---备份 数据库备份&#xff1a; 结合计划任务 MySQL、 Oracle 网站备份&#xff1a; tar&#xff0c;异地保存--ftp、rsync 一、数据库备份 1.利用自带工具mysqldump 实现数据库分库备份 分库备份&#xff1a; 1> 如何获取备份的…...

Spring Boot实现热部署

Spring Boot提供了一个名为spring-boot-devtools的开发工具&#xff0c;它可以实现热部署功能。通过使用spring-boot-devtools&#xff0c;可以在修改了resources目录下的内容后&#xff0c;自动重新加载应用程序&#xff0c;而无需手动重启。 以下是使用spring-boot-devtools…...

MVCC-

文章目录 1. 什么是MVCC2. 快照读和当前读3. 复习4. MVCC实现原理之ReadView5. 总结 文章目录 1. 什么是MVCC2. 快照读和当前读3. 复习4. MVCC实现原理之ReadView5. 总结 1. 什么是MVCC 口述&#xff1a;MVCC其实他是解决这种读-写的情况的&#xff0c;当然读-写也可以用 锁来…...

键盘打字盲打练习系列之刻意练习——1

一.欢迎来到我的酒馆 盲打&#xff0c;刻意练习! 目录 一.欢迎来到我的酒馆二.选择一款工具三.刻意练习第一步&#xff1a;基准键位练习第二步&#xff1a;字母键位练习第三步&#xff1a;数字符号键位练习 四.矫正坐姿 二.选择一款工具 工欲善其事必先利其器。在开始之前&…...

某公司前端笔试题(12.30)

1、对象数组去重&#xff1a; 数组去重&#xff1a; const a[{a:1,b:2},{a:2},{a:2},{a:1,c:3},{b:2,a:1}] 结果&#xff1a;[{a:1,b:2},{a:2},{a:1,c:3}] // 判断两个对象的属性值是否一致 const a [{ a: 1, b: 2 }, { a: 2 }, { a: 2 }, { a: 1, c: 3 }, { b: 2, a: 1 }] co…...

Sentinel核心类解读:Node

基本介绍 Sentinel中的簇点链路是由一个个的Node组成的&#xff0c;Node是一个接口。Node中保存了对资源的实时数据的统计&#xff0c;Sentinel中的限流或者降级等功能就是通过Node中的数据进行判断的。 Sentinel中是这样描述Node的&#xff1a; Holds real-time statistics…...