深度讲解AI大模型原理,它到底是如何工作的

AI模型的工作原理是什么? AI模型的工作原理可以从多种类型的技术和方法论来讨论,但在此,我主要介绍基于最近非常流行的深度学习技术的AI模型,特别是涉及到神经网络的部分。 阅读详情

现在很多朋友都在研究AI大模型;

对各个公司的大模型更是数如家珍。

“chatgpt、Claude、Gemini、Llama3、文心一言、千问…”

国外的、国内的、开源的、不开源的;

只要出来一个大模型,就要注册,试一试效果。

但我想问的是:

你真正了解它们是如何工作的吗?

大家可以尝试回答下面这几个问题;

就能知道自己是不是真懂,什么是LLM大语言模型了。

例如:

“为什么基于生成式的模型,可以模拟出聊天对话的样子?”

“为什么大语言模型,可以生成不同的、非固定的对话回复?”

“生成式的AI大模型,依赖的是Transformer中的哪一部分?”

“几乎所有的大模型的最后一层都是softmax层,它的作用是什么?”

“如何快速的在笔记本电脑上,部署大语言模型进行实验?”

看完今天的文章,上面的问题都会迎刃而解!

最后希望能帮助大家:

真正理解AI大模型的工作原理。

具体来说,我会从三个方面进行讲解:

1)文本生成的原理,怎样基于文本生成模拟对话。

2)基于llama模型的结构,讲解大模型的推理过程。

3)基于openai的GPT2模型,进行推理实验。

1.文本生成的原理

图片

你是否困惑过,无论向chatgpt输入什么样的问题,它都能准确的回复。

并且,chatgpt还能参考过去的对话内容,生成符合历史对话的新回复。

不仅如此,如果我们觉得chatgpt回复效果不够好;

还可以让它重新生成一个、不同于之前的回复。

这究竟是什么样的原理呢?

实际上,我们看似是与chatgpt进行问答式的沟通与对话交流;

但对于gpt来说,它做的事情,仍然是文本生成。

也就是基于过去的数据,预测出下一个最有可能出现的单词。

下面我举两个例子,来说明这个问题。

1)到底什么是文本生成?

假如我们有一个AI大模型,比如GPT2。

图片

此时我们向模型输入,“[cls]、今、天、天、气、真”,一共6个字(单词)。

我们希望模型基于这6个字,生成第7个字。

此时,模型会输出第7个字,是“的”字。

这里要需要特殊说明:

最开始的[cls],是一个特殊标记;

它用于标记句子的起始位置;

模型需要基于一些特殊的标记来进行计算。

现在不太理解也没关系,可以暂时忽略这个cls标记。

接着,我们要生成第8个字。

对于第8个字的生成,就会依赖初始输入的6个字,与刚刚生成的第7个“的”字。

基于这7个字,模型会继续生成“很”字。

接着,我们可以再基于这8个字,再向后生成一个字;

也就是第9个字,模型会输出“好”字。

以此类推,接着往后生成“,我们一行人去吃的,我们点了一个牛肉锅”。

总结来说:

文本生成,就是使用前面的字作为输入,生成新的字。

而到底要生成多少内容,取决于我们希望生成多少内容。

图片

也就是,只要你愿意,大语言模型可以生成无穷无尽的文本。

2)chatgpt和文本生成又有什么关系?

chatgpt就是对话形式的文本生成。

假如此时,我们有一个经过对话数据微调的、中文GPT2大语言模型。

图片

同样向这个模型输入“[cls]、今、天、天、气、真”,一共6个字。

这一次我们会发现,生成的下一个字是“好”;

然后是“[SEP]”;

接着是“是的,你最近怎么样[SEP]挺好的,你呢[SEP]”。

这又代表什么意思呢?

SEP分隔符

实际上,SEP就像一开始的[cls],是一种预定义的特殊字符;

SEP用于表示对话的分隔符。

我们可以将SEP看做是两个人对话的分隔标记。

模型专门输出这个特殊字符[SEP],来指示对话的结构。

例如,如果以SEP分割模型生成的文本,就会模拟出两个人的对话。

在这里插入图片描述

例如,我们可以将:

第1句“今天天气真好”看做是A说的;

第2句“是的,你最近怎么样”看做是B说的;

第3句“挺好的,你呢”,又是A说的;

第4句“我也是,还在上班”,又是B说的。

这样就得到了,对话形式的生成结果。

我们在使用模型的输出时,也就是chatgpt在展示结果的时候:

图片

只需要展示、输出第1个SEP后与第2个SEP前的文本就可以了。

也就是说,chatgpt会回复:

“是的,你最近怎么样”,这样就可以了。

这之后的输出,对于此时的对话是没有意义的。

当看到SEP后,就代表了本次的回复结束了。

综合上面这两个例子:

我们就会发现:

chatgpt的本质,就是文本生成。

模型本身,并没有试图去理解对话本身的意义。

chatgpt仅仅是通过文本生成,模拟出对话的效果而已。

所以,大家会不会觉得:

AI大模型也不过如此呢?

2.如何推理计算出下一个字

如何基于已有的文本,计算出下一个字呢?

也就是:

到底如何基于“[cls]、今、天、天、气、真、”;

计算出下一个单词是“的”;

再下一个字是“很”;

再下一个是“好”呢?

下面我基于llama3模型,来说明这个问题。

图片

简单介绍Llama3,它是Meta的开源AI大模型;

效果先放一边,最关键的是它的资料非常全面;

对于学习者来说,是难得的学习资源。

Llama3基于Transformer架构。

图片

如果真想搞懂llama,

肯定需要先理解Transformer。

下面我会基于Transformer和llama的模型结构图;

来解释大语言模型的推理过程。

大家即使看着似懂非懂也没关系,关键是感受一下大模型是如何工作的。

下面进入正题!

1)模型的结构:

在这里插入图片描述

左图是Transformer结构图,右图是llama结构图。

Transformer中的左侧结构是编码器,右侧是解码器。

对比观察这两个结构图可以看到,llama模型借鉴了Transformer的解码器。

实际上,生成式的AI大模型,都依赖Transformer的解码器架构。

如果深入来看模型方框中的结构;

Transformer的解码器和llama模型,同时都包括了:

  • 红色的embedding层

  • 绿色的标准化层

  • 橙色的自注意力机制

  • 蓝色的前馈神经网络

在模型的输出位置,又同时都有:

  • 一个灰色linear线性层
  • 一个绿色的softmax层

2)数据流的计算

图片

输入数据Input标记为1,会从下方输入。

首先经过2号embedding,进行词嵌入,将单词序列转为向量序列。

接着进入N个transformer块,进行特征提取。

虚线框中的结构,编号3到10,都是Transformer块中的内容。

我们只需要知道,它们会将Input,转换为一个固定长度的向量。

接着,这个向量会被11号RMS-norm和12号Linear层处理。

3)预测下一个字

预测下一个字,就是使用Linear层+softmax层。

Linear层用于将特征向量的维度数,转换为字典中字的数量。

softmax层用于计算下一个字出现的概率,也就是预测下一个字。

这实际上是一个分类的过程!

假如在中文词汇表中,有1000个字:

图片

那么它就是一个1000个类别的多分类任务。

具体来说:

给定的输入文本会被Transformer转为固定长度的向量:

在这里插入图片描述

图中标记的4096,就是输入文本转换后的维度。

这个4096的向量会输入到Linear线性层:

通过Linear线性层:

我们可以将这个4096维的向量,转换为字典中字的个数的维度的向量;

比如字典中有1000个字,那么就被转为1000维的向量。

从而进行1000个类别的分类。

分类的结果,就是具体的某一个字。

将1000维的向量,继续输入到softmax层:

softmax层会给出1000个字,每个字可能的概率。

例如,对输入文本“今天天气真”进行“分类”,就得到“好”字。

4)如何选择输出结果

贪心方式选择:

如果我们选择概率最大的字作为下一个字,进行输出;

这是贪心的方式来选择结果。

图片

例如,1000个字:

“好”字的概率是0.67;

“糟”字的概率是0.32;

其他所有加一起是“0.01”。

这时我们可以直接输出“好”字。

这种选择结果的方式,虽然简单,但也存在弊端:

因为直接输出概率最大的字,输出结果总是固定的。

chatgpt的回复就没有多样性了。

基于概率分布选择:

我们可以基于概率分布,随机的取出下一个字作为输出。

图片

就像从一个黑箱中有放回的摸球,

摸到哪个字,就输出哪个字;

我们也不用担心摸到不常用的字;

因为我们可以将概率过低的字进行丢弃。

这时我们就会选择“好”字,或者“糟”字;

从而生成出两不同的结果了。

这就是为什么,chatgpt可以生成不同结果的原理。

3.GPT2模型的推理实验

最后我们在本地电脑,进行大模型的推理实验。

这里选择GPT2进行实验。

图片

简单介绍GPT2:

它是GPT4的前身,是openai的最后一个开源版本。

之所选择GPT2进行推理实验,是因为它所依赖的资源很少;

单机环境就可以运行大模型推理;

并且对于初学者,如果你想学大语言模型;

GPT2就是最合适的!

因为它的资料,真的很多!

1)模型下载

gpt2的中文模型,可以从huggingface上下载。

在这里插入图片描述

我们选择其中的clue-corpus-small,这个版本。

为了部署模型,需要下载其中的3个关键文件:

模型的配置:config.json

模型本身:pytorch_model.bin

切词字典:vocab.txt

2)实验代码1

使用这个模型需要基于Transformer库。

主要需要使用Transformer库的切词组件与GPT2模型组件。

下面在讲解代码时,我会基于代码的调试信息来说明。

实验整体包括两个部分,分词部分和推理部分。

分词部分:

图片

首先定义设备变量device,打印后会看到我们当前的设备是cuda,GPU设备。

定义分词器,BertTokenizerFast。

使用分词器的encode函数,可以将句子分词,并将中文词语转为数字索引的形式。

例如,输入句子“[CLS]今天天气真”;

它就会被转换为6个整数索引,分别是101、791等等。

我们可以在字典vacab.txt中,找到这些词和对应的索引。

打开vacab.txt文件观察:

图片

找到字典的第102行,就是[CLS]这个词。

找到字典的第792行,就是“今”这个字。

推理部分:

图片

接着,我们使用接口from_pretrained,加载预训练模型。

定义max_len=20,表示向后生成20个字。

在循环中,每循环一次,就生成一个字。

将输入序列input_ids输入到模型model后,会计算出推理结果output。

这里我们直接选择概率最大的字,作为下一个字。

也就是使用softmax函数,计算出所有字出现的概率后;

使用torch.max,贪心的选择最大概率的字。

将这个字作为下一个生成结果,添加到response中。

然后更新输入序列input_ids,把新生成的next_token,cat到input_ids中。

接着我们将input_ids的整数索引与文本形式打印出来。

输出结果:

在这里插入图片描述

这时会看到,每一轮循环,都会生成一个字。

i=0时,生成了“的”字;

i=1时,生成了“很”字;

i=2时,生成了“好”字;

…

i=19时,就基于前面的19个字,就会生成最后一个“锅”字。

这样我们就基于“[CLS]今天天气真”;

生成了“的很好,我们一行人去吃的,点了一个牛肉锅”。

3)实验代码2:

实验代码1,是普通的文本生成;

实验代码2,是对话形式的文本生成。

这两个代码,只是加载的模型不同:

在这里插入图片描述

左侧是基础中文gpt2模型,右侧是中文对话微调的gpt2模型。

我们会发现,使用对话文本微调的gpt2模型,输出的结果包括了SEP分隔符。

图片

如果输入“[CLS]今天天气真”;

就会输出“好[SEP]是的,你最近怎么样”等等。

通过SEP分隔符,我们就可以模拟出对话的效果了。

以上就是AI大模型的基本工作原理。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】
AI大模型的底层原理 AI 大模型的底层原理包括数据预处理、神经网络构建、前向传播、激活函数等多个关键步骤。Transformer 架构通过自注意力机制和前馈神经网络捕捉复杂的语言模式,而激活函数和优化算法则确保模型能够高效学习和泛化。(如 GPT、BERT 等)的底层原理涉及多个关键步骤和技术,包括数据预处理、神经网络构建、前向传播、激活函数等。从多种来源(如网页、书籍、数据库)收集大规模文本数据。将每个词的整数索引转换为稠密向量(词向量)。层归一化:对每层的输出进行归一化,加速训练。Q,K,VQ,K,V:查询、键、值矩阵。 阅读详情

相关推荐

大模型入门指南:基本技术原理与应用

本文探讨了大型神经网络模型的基本技术原理,包括深度神经网络、激活函数、损失函数、优化算法、正则化和模型结构等,并讨论了预训练与微调、模型压缩与加速、解释性与可解释性、隐私与安全等关键议题,旨在帮助读者更好地理解和利用大模型来解决实际问题。

陆业聪 3943

深度讲解AI大模型原理,它到底是如何工作的,零基础入门到精通,收藏这一篇就够了

假如我们有一个AI大模型,比如GPT2。此时我们向模型输入,“[cls]、今、天、天、气、真”,一共6个字(单词)。我们希望模型基于这6个字,生成第7个字。此时,模型会输出第7个字,是“的”字。这里要需要特殊说明:最开始的[cls],是一个特殊标记;它用于标记句子的起始位置;模型需要基于一些特殊的标记来进行计算。现在不太理解也没关系,可以暂时忽略这个cls标记。接着,我们要生成第8个字。对于第8个字的生成,就会依赖初始输入的6个字,与刚刚生成的第7个“的”字。

Python_0011的博客 2592

RPN 解析

RPN全称是Region Proposal Network,Region Proposal的中文意思是“区域选取”,也就是“提取候选框”的意思,所以RPN就是用来提取候选框的网络; 1. RPN的意义 RPN第一次出现在世人眼中是在Faster RCNN这个结构中,专门用来提取候选框,在RCNN和Fast RCNN等物体检测架构中,用来提取候选框的方法通常是Selective Se

lanran2的博客 10万+

万字长文,详细解读AI大模型技术原理!!

大语言模型作为一个被验证可行的方向,其“大”体现在训练数据集广,模型参数和层数大,计算量大,其价值体现在通用性上,并且有更好的泛化能力。这些模型通常由深度神经网络构建而成,拥有数十亿甚至数千亿个参数。大模型的设计目的是为了提高模型的表达能力和预测性能,能够处理更加复杂的任务和数据。大模型在各种领域都有广泛的应用,包括自然语言处理、计算机视觉、语音识别和推荐系统等。大模型通过训练海量数据来学习复杂的模式和特征,具有更强大的泛化能力,可以对未见过的数据做出准确的预测。

python12345_的博客 5529

从STM32转战STC32G?逐飞开源库帮你快速上手GPIO、PWM与ADC(避坑指南)

本文详细介绍了从STM32迁移到STC32G32K128的开发实践,重点解析了GPIO、PWM和ADC等基础外设的设计差异,并提供了基于逐飞开源库的高效应用方案。通过对比两种平台的开发工具和操作方式,帮助开发者快速上手STC32G,避免常见陷阱,提升开发效率。

weixin_30316097的博客 529

杰理JL701N内置flash录音配置教程

本文详细介绍了内置Flash录音功能的配置方法。主要内容包括:1) 基础模式配置(开启音乐/录音模式、Flash录音宏定义);2) 录音参数设置(格式基准值、存储区域定义、容量配置);3) MP3编码特殊处理;4) 下载时的Flash格式化操作;5) 录音开关和播放接口的使用说明。配置过程涉及多个关键文件的修改,并强调存储容量的精确分配。

qq_42014563的博客 597

深度讲解AI大模型原理,它到底是如何工作的,看完这篇你就懂了!!

现在很多朋友都在研究AI大模型;对各个公司的大模型更是数如家珍。 “chatgpt、Claude、Gemini、Llama3、文心一言、千问…” 国外的、国内的、开源的、不开源的;只要出来一个大模型,就要注册,试一试效果。

2401_85325557的博客 1752

Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(10) C++ 前置后置增减运算符重载形式与比较

C语言的++、–运算符在此不讨论。 文章目录1、前置后置增减运算符重载的形式2、前置和后置运算符的性能比较 1、前置后置增减运算符重载的形式 自增运算符“++”和自减运算符“–”分别包含两个版本。即运算符前置形式(如 ++x)和运算符后置形式(如 x++),这两者进行的操作是不一样的。因此,当我们在对这两个运算符进行重载时,就必须区分前置和后置形式。C++根据参数的个数来区分前置和后置形式。如果按照通常的方法来重载 ++ 运算符(即作为成员函数重载时不带参数,或者作为非成员函数重载时带有一个参数),那么重载

二进制君 5831

AI大模型原理深度讲解:它到底是如何工作的

现在很多朋友都在研究AI大模型;对各个公司的大模型更是数如家珍。“chatgpt、Claude、Gemini、Llama3、文心一言、千问…”国外的、国内的、开源的、不开源的;只要出来一个大模型,就要注册,试一试效果。你真正了解它们是如何工作的吗?大家可以尝试回答下面这几个问题,就能知道自己是不是真懂,什么是LLM大语言模型了。例如:“为什么基于生成式的模型,可以模拟出聊天对话的样子?“为什么大语言模型,可以生成不同的、非固定的对话回复?

程序员鑫港的博客 1385

【速通RAG实战:索引】4.RAG文档解析技术

通过本文技术方案,可构建高精准、高效率的文档解析流水线,为 RAG 应用提供坚实的知识底座。核心在于**格式解析的鲁棒性**和**语义分块的准确性**,后续通过持续的性能优化和质量监控,逐步提升索引质量和检索效率。

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 1545

【技能】OpenClaw Memory 与 MemOS 两种 AI 记忆方案深度解析

摘要:本文对比了两种AI记忆系统方案。OpenClaw Memory是轻量级记忆助手,内置SQLite存储,支持语义搜索,部署简单成本低,适合日常对话记忆需求。MemOS是自学习系统,通过Neo4j和Qdrant实现技能自进化,但需部署4套服务,门槛高成本大。建议普通用户选择OpenClaw Memory,技术玩家可逐步尝试MemOS。两种方案各具优势,需根据实际需求选择。

海兰 197

深度讲解AI大模型原理,它到底是如何工作的,(非常详细)零基础入门到精通,收藏这一篇就够了

假如我们有一个AI大模型,比如GPT2。此时我们向模型输入,“[cls]、今、天、天、气、真”,一共6个字(单词)。我们希望模型基于这6个字,生成第7个字。此时,模型会输出第7个字,是“的”字。这里要需要特殊说明:最开始的[cls],是一个特殊标记;它用于标记句子的起始位置;模型需要基于一些特殊的标记来进行计算。现在不太理解也没关系,可以暂时忽略这个cls标记。接着,我们要生成第8个字。对于第8个字的生成,就会依赖初始输入的6个字,与刚刚生成的第7个“的”字。

leah126的博客 1188

OpenCV入门(一)Python环境的搭建

因为有点Python基础,并且Python是比较好入门的编程语言,所以,机器视觉后面打算在Python这个平台下进行。

小幽余生不加糖 8123

DeepSeek基础学习:深度讲解AI大模型基本原理

⭐️⭐️⭐️。

m0_37623374的博客 1042

智能车图像处理1-基础图像规格

从厂家摄像头的库函数中,我们可以直接得到完整图像的灰度数组,经过二值化之后(算力允许,可以考虑大津法),就是我们要处理的0-1二值图像了。本系列所有的文章中,我们的图像规格如下。

taiyuezyh的博客 4336

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: 大模型智障检测+1:Strawberry有几个r纷纷数不清,最新最强Llama3.1也傻了
下一篇: 一篇长文搭建AI大模型应用平台架构
冻感糕人~
博客等级 码龄3年 8926粉丝 2384原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值