【大模型】LLM工作原理简述

news2024/12/22 16:03:11

LLM,即large-language-model,大语言模型。

我们可以观察LLM大模型比如豆包在回复的时候,是不是一个一个字,行业里称之为流式输出的方式给你呈现内容的。为什么会这样呢?这是因为,大模型确实是在一个字一个字地去推理生成内容的。

在这里插入图片描述

就好像我们看输入法的输入联想逻辑,输入联想,其实就是根据你输入的单个字,来推测你要输入的下个字是什么。比如我打了一个“输”字,那么我要打的下字就很有可能是“入”,当然这里就会有人问了,我要打的下个字也很有可能是“球”啊。

没错,最开始的研究人员确实也识别到了这个问题。那么解法是什么呢?其实很简单,我们把上下文加入到输入里,不就能帮助模型理解下个字该是什么了吗。

比如我们输入的是“我想在这个单元格中输”,那这下一个字大概率就是“入”。而我们如果输入的是“这场足球比赛中,输”,那下一个字大概率就是“球”。

那么看到这里,善于思考的同学可能会发现这里存在

第一,我们知道大模型的学习数据规模往往是海量的,每次的计算如果都带入全量的数据,算力上肯定是吃不消的。

第二,仅去算字的概率,似乎也有问题。因为我们用于训练的文章数据等,往往是出于各种场景各种背景写就的。仅去算下个字出现的概率,容易会被各种不相干的信息干扰。

是的,研究人员同样也遇到了这两个问题,而这时,两个概念的出现解决了这一难题。一个是词向量机制,一个是transformer模型中的attention自注意力机制。

1)词向量机制

词向量机制怎么理解呢?可以理解为把我们三维生活中的词,行业里称之为词元,或者token,去进行一次拍平,降维到向量空间,也被称为潜空间,或者latentspace中去。比如一个词“杨柳”,在latentspace中,它不仅带有“植物”这一生物学的向量表示,也带有着“送别”的向量表示,也带有着“人名”的向量表示。这些向量表示,行业里称为feature,中文翻译是“特征”,但说实话我觉得翻译为“意象”,更能表达其含义。

为什么说是意象呢,因为这个“杨柳”究竟在当前语境中表达什么含义,取决于其上下文而决定。这不正像是我们诗歌作品中的“意象”嘛

所以词向量就是,大模型通过海量的文档学习,把三维世界中的“词元”,转化为了latentspace中的“意象”的过程。比如“杨柳”,在latentspace中的表达可能就是[01,56,42]这样的表达。

这样转换之后,其实就解决了第一个问题,即我们把学习资料转化为了latentspace中的词向量,而在这个潜空间中运算的效率可以大大的增加,且词向量的表达方式可以表示出机器学习中,词汇之前的语义关系。

2)attention层

而第二个问题,被transformer模型中的自注意力机制解决。自注意力机制可以理解为,在机器训练中,我们加入了若干的attention层,每一个层都会对输入的信息进行学习和理解记忆。

打个比方,“我今天吃了狮子头和蔬菜”这句话,在transformer中,会由attention层对这句话加入更多的信息来补充。比如补充“狮子头是一道菜”“今天是星期六”等等。这些补充信息,会作为输入给到下一个attention层进行补充。当然有些信息可能是不重要的,也会被忽视掉。最终层与层之间,哪些信息需要补充,哪些信息需要保留,哪些信息传递,均由模型自主学习完成。而最终学习的结果就是,模型可以把海量的数据以关系网的形式“消化”掉,并保留其重要的相关性。

这些表述可能还不够直观,再打个比方,这些层就好像人在去阅读文章的时候的一个连贯性注意力的过程。就好像我们在去阅读理解一篇文章的时候,脑子里会对输入的内容进行消化然后吸收记忆,而记忆下来的不是点状的知识,而是网状的经验。

3)再形象些的比喻

llm的原理基本就是这样了,总结起来就是大模型以词向量和transformer的模型学习了海量的知识,把知识作为向量空间中的一种关系网进行存储,并在接受输入时,通过向量空间中的一系列匹配进行输出。

这个过程其实大家想一想,是不是就像是人脑在阅读学习的个过程?比如我们在记忆一些资料时,其实记忆的也不可能是逐字逐句去记忆的,也是按照相关性,重要程度,再结合历史经验信息进行记忆的。记忆下来的东西,也不是一个个的文字,而更像是一种感觉,一种“意象”。

再比如我们去看红色,会觉得这个代表温暖,代表强烈,这也是因为我们在去记忆这个信息时,同时受到来自生理、社会伦理等的关联记忆,所以一个简单的“红色”在我们的脑海中记忆时,也不仅是一个简单的词语,而是带有了很多的“feature”信息。

当然我这里仅是为了帮助大家理解,简化抽象了很多概念。LLM这块如有感兴趣想进阶的同学,可以再看这篇文章进阶学习下。

https://www.understandingai.org/p/large-language-models-explained-with

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Libero编译怪事(1)计数达不到目标值

最近在开发Libero工程,芯片是AGLN250V2。 其中一段计数的程序,声明了一个integer参数。当该参数大于某一值时,执行状态跳转。 编译烧写后,程序一直无法实现跳转。 以为是由于integer是有符号的,可能出现负值&#x…

IDEA中查看接口的所有实现类和具体实现类

1.IDEA中接口的所有实现类查看 1.CTRLH(hierarchy 结构) 我们选中要查看的接口 按住快捷键ctrlh 在界面右侧可以看到该接口的所有可能实现类 2.右击diagrams->show diagram 选中要查看的接口 右击选择diagrams->show diagram 即可以以图表的方式查看接口和所有实现类…

英智金融行业AI Agent,在金融领域全场景下的业务创新与应用实践

随着全球经济的数字化转型,金融行业也在迅速演变。传统的金融服务已经无法完全满足现代客户对快速、个性化和高效服务的需求。与此同时,市场竞争的加剧、监管环境的变化以及客户期望的提升,促使金融机构不断寻求新的技术来优化运营效率、提升…

设计模式---简单工厂模式

简单工厂模式(Simple Factory Pattern) 是一种创建型设计模式,它定义了一个工厂类,通过这个工厂类可以创建不同类型的对象。简单工厂模式的主要目的是将对象的创建逻辑集中在一个地方,简化客户端的代码,使得…

代码复现改进

代码复现,文献复现,文章复现, 算法复现,科研复现 Matlab,Python中英文均可 保证质量,加快你的研究速度 代码改进跑通,模型优化改进

Java - IDEA开发

使用IDEA开发Java程序步骤: 创建工程 Project;创建模块 Module;创建包 Package;创建类;编写代码; 如何查看JDK版本 Package介绍: package是将项目中的各种文件,比如源代码、编译生成的字节码、配置文件、…

Linux驱动开发基础(设备树)

所学来自百问网 目录 1. 引入设备树的原因 2. 设备树语法 2.1 Devicetree格式 2.1.1 DTS文件格式 2.1.2 node的格式 2.1.3 properties的格式 2.1.4 dts 文件包含dtsi文件 2.2 常用属性 2.2.1 #address-cells、#size-cells 2.2.2 compatible 2.2.3 model 2.2.4 st…

使用 Go 语言将 Base64 编码转换为 PDF 文件

使用Go语言将PDF文件转换为Base64编码-CSDN博客文章浏览阅读104次,点赞2次,收藏5次。本文介绍了如何使用 Go 语言将 PDF 文件转换为 Base64 编码,并保存到文件中。https://blog.csdn.net/qq_45519030/article/details/141224319 在现代编程中…

一、前后端分离通用权限系统(1)

🌻🌻 目录 一、项目介绍1.1 项目简介1.1.1 项目特色1.1.2 项目背景1.1.3 前置知识1.1.4 项目大纲 1.2 项目详细介绍1.2.1 介绍1.2.2 核心技术1.2.3 项目模块1.2.4 数据库设计 二、搭建环境2.1、搭建项目结构2.1.1、搭建父工程 gansu-auth-parent2.1.2、搭…

Unity 求坐标点在扇形区域内的投影

视频效果&#xff1a; 代码: /// <summary>/// 投影在扇形区域内的点/// </summary>/// <param name"targetPos">目标点</param>/// <param name"fanRadius">扇形半径</param>/// <param name"fanAngle"…

企业为什么需要安装加密软件

1. 数据保护 防止数据泄露&#xff1a;加密软件通过对敏感数据进行加密处理&#xff0c;确保即使数据在传输或存储过程中被截获&#xff0c;也无法被未授权人员读取或利用&#xff0c;从而有效防止数据泄露。 完整性保护&#xff1a;加密不仅保护数据的机密性&#xff0c;还通…

Vue3+ElementPlus,侧边栏菜单折叠时,图标不显示踩坑笔记

问题如下&#xff1a; 折叠前&#xff1a; 折叠后&#xff1a; 一般有三个问题&#xff0c;会导致这个错误&#xff1a; 排查1 动态图标渲染时&#xff0c;要写el-icon&#xff0c;否则也是不显示的 排查2 嵌套路由需要写在插槽里面&#xff0c;不是嵌套路由则需要写在插…

Ubuntu中服务部署

Ubuntu中服务部署 一、root用户密码一、SSH远程连接二、JDK1.8安装1、解压上传的安装包2、配置jdk环境变量 三、minio安装1、官网下载安装包2、上传文件并授权3、书写启动脚本4、启动及说明5、启动异常 四、nacos安装1、下载上传安装包&#xff0c;并解压2、修改启动脚本3、配置…

【网络安全】重置密码token泄露,实现账户接管

未经许可&#xff0c;不得转载。 文章目录 正文 正文 对某站点测试过程中&#xff0c;登录账户触发忘记密码功能点&#xff0c;其接口、请求及响应如下&#xff1a; PUT /api/v1/people/forgot_password 可以看到&#xff0c;重置密码token和密码哈希均在响应中泄露。 删除co…

openharmony 南向开发基础:ohos自定义子系统,自定义部件,调用hilog部件,hilog日志封装傻瓜式教程

openharmony 南向开发基础:ohos自定义子系统,自定义部件,调用hilog部件,hilog日志封装 自定义单部件 关于开源鸿蒙的南向教程不多,很多都是从官方文档上抄的的例子,官网的例子不是很适合入门,写的很粗糙,不适合傻瓜阅读,毕竟对于刚入行鸿蒙的新手而言,gn语法就是第一劝退魔咒…

TinaSDKV2.0 Kernel基本开发

TinaSDKV2.0 Kernel基本开发 Tina-SDK Linux系统启动流程&#xff1a; Linux Kerenl目录结构 设备树配置文件位置 100ASK_T113s3-Industrial-DevKit开发板LinuxKernel配置文件&#xff1a; device/config/chips/t113/configs/100ask/linux/config-5.4 100ASK_T113s3-Industr…

学习笔记--算法(滑动窗口)9

长度最小的子数组 链接&#xff1a; . - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a;给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其总和大于等于 target 的长度最小的 子数组子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0…

高性能日志系统 性能测试

百万并发压测 测试环境 云服务器环境 2核2G 2M Linux华为云服务器Ubuntu系统本地电脑环境 处理器&#xff1a;AMD Ryzen 7 4800H with Radeon Graphics2.90 GHz已安装的内存(RAM):16.0GB(15.4GB可用)系统类型&#xff1a;64位操作系统&#xff0c;基于x64的处理器 测试结果 响应…

软件工程造价师习题练习 5

1.下面哪项是EO的主要目的&#xff08; &#xff09; A. 改变应用行为 B. 维护一个或多个ILFs C. 呈现信息给用户 D. 执行数学公式和计算 外部输出&#xff08;EO&#xff09;是发送数据或控制信息到边界外部的基本过程&#xff0c;与EQ相比还包含了额外的处理逻辑。EO的主…

TypeError: Cannot read properties of undefined (reading ‘scrollIntoView‘)(已解决)

问题复现&#xff1a;眨眼睛使用vitevue3实现跳转dom功能时使用了scrollIntoView方法&#xff0c;在打包上传以后使用该功能报错 小友可能会陷入误区&#xff0c;以为是函数方法有问题&#xff0c;毕竟在开发时是没有问题的&#xff0c; 而实际上呢问题出在获取节点失败了 在这…