引言
如今AI热潮席卷而来,深度学习、神经网络等名词也或多或少的映入每个人的眼帘,然而,面对这些逼格满满又苦大仇深的专业词汇,我们作为一个没有接触过的普通人,往往会有隔离与疏远感。本文的目标,是帮助揭开AI的面纱,初步理解深度学习的基本概念。
- 深度学习学的是什么?
1.1. 神经元与网络
通过数学模型模拟人脑的神经元网络结构来处理数据。
人脑是如何处理数据的呢?神经元与神经元相连接,数据以电信号的形式在神经元网络中传播。
深度学习模拟的就是电信号在神经网络中传播的过程:
实际概念 | 数学模型概念 |
---|---|
电信号 | 张量(多维向量) |
神经元 | 数学公式:y = G(ax+b) |
神经元的连接方式 | 数学公式的参数传递方式(不同网络类型) |
y = G(ax+b)
x-输入 | a-权重 | b-偏移 |
---|---|---|
y-输出 | G()-激活函数 | ax+b-加权和 |
1.2. 正向传播
各个神经元的权重、偏移量等值是随机初始化的,正向传播的过程是将一组数据放入模型,从左到右走完整个网络,得到模型计算值(预测值)的过程。
1.3. 损失函数
损失函数是一个评价函数 P(预测值) = 损失值,损失函数越小,则模型表现越好,这里,就涉及到了两大类损失函数:
- 监督学习,有打标,也就是标准值,损失函数可以理解为 P(预测值) = |预测值 - 标准值|
- 无监督学习,没有打标,损失函数是一个计算函数,来评价学习结果的好坏,这里不具体展开,只需要简单理解,将预测值带入函数,会得到一个评分即可。
1.4. 反向传播
反向传播是深度学习训练最重要的环节,因为这个环节会对模型参数进行调整,以尽可能得到更小的损失值,我们继续以上面的过程为例子:
损失值 = P(预测值) = P(G(ax+b)) = PG(a, x, b)
我们希望改变a的值,让损失值变小,因此,我们就可以对PG(a,x,b)求a的导数,让a沿着斜率(梯度)下降的方向变化。
- NLP自然语言处理问题的神经网络
实际上,自然语言处理是一个很大的范畴,但落到如今,我们更常提到并且更感兴趣的,是生成式的语言大模型。那么,语言大模型是如何完成对话的,其训练过程又是如何呢?
2.1. 你吃了吗?吃了!
我们以【你吃了吗?吃了!】这组对话为例,结合我们第一章提到的深度学习过程,来复刻模型的训练过程:
上面演示的是一个最简单的对话训练过程,在这个过程中,首先要把输入(你吃了吗?)与输出(吃了!)编码成数学模型能直接计算的数据,之后,经过深度学习梯度下降的过程,完成模型训练。
这个时候出现了一个问题,和我们做赏析题一样,现实中,往往问题很短,但是答案很长,
2.2. 孤勇者
这时,聪明的我们就想到了一个办法,我们能不能把一段连续的字符串切割成一个个子串,然后将某个子串作为输入,计算下一个字是什么:
都
都是
都是勇
都是勇敢的
都是勇敢的,
都是勇敢的,你
都是勇敢的,你破
都是勇敢的,你破旧
都是勇敢的,你破旧的
都是勇敢的,你破旧的玩
都是勇敢的,你破旧的玩偶
随着字符串越来越长,那么编解码过程造成的信息失真就会非常严重,那么该如何解决这个问题?
这个时候就要提到包括ChatGPT在内的主流大模型都会使用的自注意力机制,在这里,我们不解析原理,只分享表现,所谓的自注意力机制,就是模型在生成文字的过程中,会考虑已经生成的词语之间的关系以及对生成的下一个词语的影响:
- 红色的字,是正在生成的字。
- 灰色的字,是对红字生成影响不大的字。
- 蓝色的字,是对红字生成影响更大的字。
都
都是
都是勇
都是勇敢
都是勇敢的,
都是勇敢的,你
都是勇敢的,你破
都是勇敢的,你破旧
在自注意力机制的影响下,语言的生成可以更加准确。
2.3. 整体流程
- 什么是注意力机制是什么?
在上面一节,我们提到了注意力机制,那么什么是注意力机制呢?
3.1. seq2seq问题
AIGC生成式大模型于我们而言,最直观且最常见的表现形式就是Q&A,我们提出问题,模型做出回答,回答的过程,而这个问题,本质上就是通过一个字符序列推演出另一个字符序列的过程(seq2seq问题)。
我们无法穷举所有seq的可能,因此,解决seq2seq问题,就需要对seq进行语言识别(或者说编码),以下面的对话为例:
-你吃了吗?/你吃饭了吗?/恰好了吗?
-吃了。/好了。/吃完了。
我们可以看到,一个相同的问题和回答有不同的seq呈现形式,编码的过程,就是将上述提到到问题抽象出其本意(对于吃饭的询问),而在数据的世界中,一切仪式形态的终极都是数字的排列组合(多维矩阵)。因此,在数学世界中,解决seq2seq问题,就需要针对问题,通过编码的形式转化为语义矩阵,之后对矩阵进行推演,生成答案的矩阵,最后,经过解码的过程生成,从答案矩阵中得到我们想要的结果。
seq是由一个个元素组成的,不同的元素组成方式,最终的语义也是相去甚远,因此,如何在编解码的过程中合理准确的考虑seq组成元素间的组合效果,是问题的关键所在。
3.2. RNN与CNN
针对我们上面提到的问题,有两种常用的思考方式:
- RNN
RNN的方案很简单,我们在对seq中的第N个元素编码时,同时考虑前N-1个元素的编码结果:
通过这种递归的方式(本质是一个马尔可夫决策链),最后推演出整个seq的语义。
- CNN
CNN(卷积神经网络),本质上是考虑一个范围区间内数据的影响:
如上,同时考虑N-1,N,N+1三个元素对语义的综合影响,遍历整个seq的所有元素,最后得到整个seq的语义。
3.3. Attention机制
上面提到的RNN与CNN本身都是有一定缺陷的,不过这对于我们非算法研究者而言,不是关注的重点,对于RNN与CNN的介绍只是想让大家都对seq2seq问题有一个初步的概念。
GhatGTP解决seq2seq问题用的是Attention注意力机制。Attention 的思路是一步到位获取全局信息:
(A,B是全局序列矩阵 )
Google模型中的注意力机制如下:
其中的Q、K、V是三个矩阵,这3个变量都是由原seq对应的矩阵与参数矩阵乘积得到的。
读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓
👉AI大模型学习路线汇总👈
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉大模型实战案例👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉大模型视频和PDF合集👈
观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓