大语言模型LLM原理篇

大模型席卷全球,彷佛得模型者得天下。对于IT行业来说,以后可能没有各种软件了,只有各种各样的智体(Agent)调用各种各样的API。在这种大势下,笔者也阅读了很多大模型相关的资料,和很多新手一样,开始脑子里都是一团乱麻,随着相关文章越读越多,再进行内容梳理,终于理清了一条清晰的脉络。笔者希望通过三篇文章总结(入门篇、原理篇和应用篇)将思路写下来,以便跟我一样的新手读者快速了解大模型的方方面面。在这里,笔者先强调一下,本系列文章的深度有限,只是个人对大模型知识脉络的梳理,同时也会借鉴一下同行的博客内容充实本文,文末将会注明参考来源。

笔者写原理篇时心情是有些惴惴不安的,因为毕竟对大模型的研究有限,缺乏深度。但是,还是觉得有必要记录一下学习理解心得,权当自己的学习笔记吧!如果本文有疏漏,敬请留言指正,勿喷,谢谢!

大模型架构

要说清楚大模型的原理,必须先大致了解大模型的架构。在上一篇文章中的分类中提高,大模型基本都是采用的Transformer架构,而该架构整体可以分为四个部分:

  • 输入(Input):对输入的内容进行向量化,计算机只能对数字进行计算和转换;
  • 编码器(Encoders):通过自注意力机制,将输入内容Token之间的隐含关联信息以向量的形式进行表征;
  • 解码器(Decoders):循环迭代预测下一个元素出现的概率,将本轮预测结果作为输入,进行下一轮预测。
  • 输出(Output):将预测结果进行向量化,最终得到一个矩阵。

Transformer架构图如下:

大模型原理

向量与矩阵

在正式讲解大模型原理之前,有两个数学概念需要先了解一下。

  • 向量
    向量表示形式类似于数组,但是值只能为数字,如:[1,2,3,4]。
    向量用来通过一组特征来描述一个事物。比如苹果可以描述为:一种圆形的,果皮上有纹路的,味道酸甜的水果。用向量则可以表示为:[0, 1, 3, 4],其中0表示形状值-圆形,1表示果皮是否有纹路-有,3表示口味值-酸甜,4表示物体品类-水果。
    同理,用户输入文本中的每个词也都可以用向量表示。

  • 矩阵
    矩阵类似多维数组,但是值只能为数字。多个同维度向量可以组成矩阵,向量是一种特殊的矩阵。

原理阐述

通过上述对Transformer架构的描述,可以得出一个大模型的大致原理,分为两个阶段:
(1)模型训练生成阶段
通过将海量数据输入到Transformer系统中进行训练计算,最终输出一个矩阵W,这就是训练的结果 —— (大)模型。是否为大模型,需要根据参数量和数据量来判断,这两个因素也决定了模型矩阵W的维度大小。

(2)模型应用进化阶段
将用户输入的信息转化为向量X,将向量X与模型W矩阵进行计算,得到一个向量Y,再将Y反向量化为用户能看懂的信息(比如:文本)。当然,在实际的应用过程中,模型会随着用户的使用交流,得到进化,本质上是矩阵W的某些数值会发生调整。

下图是笔者理解的大模型的训练和使用原理图:
在这里插入图片描述

上述原理阐述中有一个比较关键的问题需要弄清楚:文本如何转化为向量?

(1)先将输入文本切换为词元Token;
(2)然后用向量对单个Token进行表示;
(3)再将词元在文本中的位置信息表示为向量;
(4)将Token本身的向量与位置向量相加,则得到了该Token的表征向量。
一个文本输入最终被转为化一个向量矩阵,但是在推理过程中,仍是对一个Token进行推理的(即与一个向量进行运算),更详细的词向量化原理可以参考文末引用的文章。以下是一个词向量化示意图:
在这里插入图片描述

简单总结

  1. 所有喂给大模型的数据,都是需要先进行词向量化的,计算机只能通过数字计算来实现推理或思考;
  2. 大模型本质上是一个维度非常巨大的矩阵;
  3. 模型训练和微调本质上是调整模型矩阵的值;
  4. 大模型回答用户问题,实质上是先将用户输入向量化之后,再与模型矩阵进行运算得到值最优的向量值,再将该向量值转为用户可以理解的信息返回给用户。
参考文献
  • 大模型词向量:解析语义,助你成为沟通达人
  • 大模型解惑
  • Transformer模型详解(图解最完整版)
  • 模型 · 向量和矩阵

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

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

相关文章

【Redis】用户登录校验

对于用 redis 对用户进行登录校验,大致可分为以下六步: 首先通过查询数据库来查找具有提供的用户名、密码和delFlag值为0的用户。如果未找到用户,则抛出一个带有消息"用户不存在"的ClientException(用户不存在&#xf…

【产品应用】一体化伺服电机在拉力系统设备中的应用

随着工业自动化的快速发展,高精度、高效率的传动与控制设备需求日益增长。一体化伺服电机作为一种集驱动、控制、反馈于一体的智能型电机,因其卓越的性能,在各类工业设备中得到了广泛应用。特别是在拉力实验设备中,一体化伺服电机…

WebRTC 的核心:RTCPeerConnection

WebRTC 的核心:RTCPeerConnection WebRTC 的核心:RTCPeerConnection创建 RTCPeerConnection 对象RTCPeerConnection 与本地音视频数据绑定媒体协商ICE什么是 Candidate?收集 Candidate交换 Candidate尝试连接 SDP 与 Candidate 消息的互换远端…

线程同步--互斥锁,读写锁

线程同步 基本概念 线程的能力在于能够方便地通过全局变量或共享内存来交换信息,但这也带来了并发控制的复杂性,主要表现在如何安全地管理多个线程对共享资源的访问。这里涉及到几个关键的概念和技术: 临界区(Critical Section…

jenkins部署想定报错

报错: 解决办法: 登录被编译的设备,清楚旧代码,在重新执行

Dependencies:查找项目中dll关联文件是否缺失。

前言 Dependencies工具作为一款优秀的DLL解析工具,能让你很直观地看到DLL的相关信息,如具备哪些功能函数、参数,又比如该DLL基于哪些DLL运行。判断该dll基于哪些dll运行,如果基于的dll丢失,那么就会提示。就能判断缺少…

【Ubuntu永久授权串口设备读取权限‘/dev/ttyUSB0‘】

Ubuntu永久授权串口设备读取权限 1 问题描述2 解决方案2.1 查看ttyUSB0权限,拥有者是root,所属用户组为dialout2.2 查看dialout用户组成员,如图所示,普通用户y不在dialout组中2.3 将普通用户y加入dialout组中2.4 再次查看dialout用…

Redis-新数据类型-Hyperloglog

新数据类型-Hyperloglog 简介 在我们做站点流量统计的时候一般会统计页面UV(独立访客:unique visitor)和PV(即页面浏览量:page view)。 什么是基数? 数据集{1,2,5,7,5,7&#xff…

AI绘画的基本原理是什么?

目录 一、AI绘画的基本原理是什么? 二、Python中有几个库可以用于AI绘画? 三、OpenCV画一个人形 四、AI画的红苹果 一、AI绘画的基本原理是什么? AI绘画的原理基于机器学习和人工智能技术,通过这些技术模型能够理解文本描述并…

vivado 配置存储器支持-Artix-7 配置存储器器件

配置存储器支持 本章主要讲解 Vivado 软件支持的各种非易失性器件存储器。请使用本章作为指南 , 按赛灵思系列、接口、制造商、 密度和数据宽度来为您的应用选择适用的配置存储器器件。 Artix-7 配置存储器器件 下表所示闪存器件支持通过 Vivado 软件对 A…

HTTP 1.1 与 HTTP 1.0

什么是HTTP HTTP 就是一个 超文本传输协议 协议 : 双方 约定 发送的 域名 数据长度 连接(长连接还是短连接) 格式(UTF-8那些) 传输 :数据虽然是在 A 和 B 之间传输,但允许中间有中转或接力。 超文本:图片、视频、压缩包,在HTTP里都是文本 HTTP 常见状态码 比如 20…

在go-zero中使用jwt

gozero使用jwt 两个步骤 获取token验证token 前端获取token 先编写 jwt.api 文件,放在api目录下 syntax "v1"info (title: "type title here"desc: "type desc here"author: "type author here"email: &quo…

工控组态技术:实现工业自动化控制的重要手段

体验地址:by组态[web组态插件] 工控组态技术是一种应用于工业自动化控制领域的重要技术,它通过将各种不同的硬件设备和软件系统进行组合和配置,实现了工业生产过程的自动化控制和优化。 随着工业技术的不断发展和进步,工控组态技…

拥有蝴蝶效应的爬虫如何进行防护

美国气象学家爱德华罗伦兹(Edward N.Lorenz)1963年在一篇提交纽约科学院的论文中分析了一个叫做蝴蝶效应的理论:“一个气象学家提及,如果这个理论被证明正确,一只海鸥扇动翅膀足以永远改变天气变化。”在以后的演讲和论…

IP 地理定位神话与事实

ip地理定位是一项技术,用于通过访问设备的ip地址来获取地理位置信息,例如国家、城市、经纬度等。该技术广泛应用于网站内容自定义、广告定位、网络安全和用户分析等领域。它通过与包含ip地址和地理位置映射的大型数据库进行查询来工作,但在准…

软件测评报告:除了软件测评中心,还有哪些选择?

传统的观念中,软件测评中心往往被视为进行软件测评的首选机构。然而,随着技术的发展和市场的扩大,除了软件测评中心,越来越多的机构和平台也提供了专业的软件测评服务。本文将探讨除了软件测评中心之外,还有哪些地方可…

工作中使用Optional处理空指针异常

工作中使用Optional处理空指针异常 实体类以前对空指针的判断Optional处理空指针测试结果 实体类 package po;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.io.Serializable;Data AllArgsConstructor NoArgsConstruct…

单调栈:(C++)

在题目的要求中,存在先进后出(即在前面的数据需要遍历到后面的某一数据时才能确定计算值)单调栈在一部分解题场景中避免了暴力解法的高时间复杂度问题,但是在做题过程中视情况而定,有些题目的最优解不一定使用单调栈&a…

2024下载旧版本谷歌浏览器和谷歌驱动器chromedriver,亲测有效

2024下载旧版本谷歌浏览器和谷歌驱动器chromedriver,亲测有效 1. 下载旧版本谷歌浏览器 找了很多博客,实验了很多种,我发现最有效的是下面的网址,可能需要一些科技。 但是下载下来的谷歌浏览器版本是ok的。拿来就能用,亲测有效…

QT创造一个新的类(柱状图的类),并关联属性和方法

1.以在UI上添加柱状图的类为例&#xff08;Histogram&#xff09; #ifndef STUDY_HISTOGRAM_H #define STUDY_HISTOGRAM_H#include <QVector> #include <QWidget>// 前向声明 QT_BEGIN_NAMESPACE class QColor; class QRect; class QString; class QPaintDevice; …