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

《从函数到大模型速通》

一、从函数到神经网络所有一切的前提是你要相信这个世界上的所有逻辑和知识都可以用一个函数来表示。Functions describe the world !比如输入物体的质量和加速度根据牛顿第二定律就可以得到物体施加的力这就是人工智能早期的思路符号主义。但这条路走到头了很多问题人类实在是想不出怎么写成一个明确的函数。比如说一个简简单单的识别一张图片是否是猫对人类来说可能简单到爆炸但是要让计算机运行一段程序来识别一下子就变成了一个史诗级难题就连有着明确语法规则和词典的翻译函数尚且没有办法做到足够丝滑更别说复杂多变的人类智能了。既然不知道这个函数长什么样怎么办呢换个思路假如我们一开始没有找到这个规律我们先把这个x、y放到坐标轴上先随便猜一下。比如说函数关系就是y等于x,也就是这里的w和b分别是1和0然后我们一点点调整这个w和b使得这条直线越来越贴近真实数据。刚刚我们举的例子比较简单只用直线方程就可以表示了。但假如数据稍稍变化一下就会发现不论怎么调整都无法接近真实的数据这个时候就需要从原来的线性函数进化到非线性函数了我们就来研究一下怎么把原来这个原本线性的函数变成非线性的呢很简单在这个函数最外层再套一个非线性的运算就可以了。比如平方、比如sin(wxb)、比如e^wxb这就是激活函数。 它的目的就是把原本死气沉沉的线性关系给盘活了变成了变化能力更强的非线性关系。回到这个新的函数形式我们之前仅仅有一个输入的变量就是x但实际上可能有很多输入。所以这里的每一个x都要对应一个w像这样再者有的时候只套一层激活函数还是没有办法达到很好的效果。也就是说这个曲线弯的还不够灵活这要怎么办我们在此基础之上再进行一次线性变换然后再套上一个激活函数这样就可以无限的套娃下去了。通过这样的方式我们就可以构造出非常非常复杂的线性关系而且理论上可以逼近任意的连续函数。当然了这样写下去实在是太让人头大了普通人看个两层估计脑子就炸了所以我们得换一种更傻瓜的、更直观的形式我们把这样一个线性变换套一个激活函数 画成下面这样左边是输入层只有输入x右边是输出层只有一个输出y。我们把这里的每一个小圈圈叫做一个神经元。每套一层就相当于神经元水平方向又扩展了一个。当然扩展之后中间这一层就不再是最终的输出了而是包裹在了一个很复杂的函数变换之中看不到我们管它叫做隐藏层而整个神经元互相连接形成的网络结构就叫做神经网络。好接下来我们看一下函数和神经网络的对应关系。首先有两个输入变量一个是x1另一个是x2它们构成了输入层然后x1、x2进行一次线性变换再进行一次激活函数就得到了隐藏层a这个a对应的就是上面这一大坨表达式灰色部分我们把它当做一个整体继续进行一次线性变换和一次激活函数这就计算出了最终的输出层y。从神经网络的这个图来看的话似乎就像是一个信号从左到右传播了过去这个过程就叫做神经网络的前向传播。实际上就是一点点分步骤把一个函数的值计算出来了而已。神经网络的每一层神经元都可以无限增加。同时隐藏层的层数也可以无限增加进而就可以构成一个非常非常复杂的非线性函数了。虽然这个函数可能非常复杂但是我们的目标却非常简单和明确就是根据已知的一组x和y的值猜出所有w和b各是多少。二、如何计算神经网络参数上面解释了神经网络的本质其实就是线性变换套上一个非线性激活函数不断组合对应就是一个非常复杂的非线性函数计算出这里的w和b。那么到底如何求得最佳的w和b呢答预测数据与真实数据拟合的好的函数就是好函数也就对应最佳的w和b那么在数学上如何去表示函数是否你和的好呢答求损失函数先从最简单的线性函数入手 每个点上的数据是真实数据落在直线上的点表示预测数据那么这条线段的长度就是真实值与预测值的误差即|y - y^|为了评估整体的拟合效果我们可以将所有这些线段的长度相加得到真实数据与预测数据的总误差这个函数就叫损失函数。然而这个绝对值在数学优化时不太友好那么改造下用平方来代替既解决了绝对值不平滑的问题也放大了误差较大的值的影响。然后我们再根据样本的数量平均一下消除样本数量大小的影响最终得到的公式即均方误差。前面我们为了找到一组w和b来拟合真实数据定义了损失函数。下面要做的就是制定让损失函数最小这个目标来计算w和b的值。求解的方法要用到的就是初中学过的知识让其导数等于0求极值点的过程。举个简单的例子线性模型只保留一个w代入损失函数化简后就是一个简单的关于w的二次函数接下来对w求导让其导数等于0就可以求出w1。刚刚的步骤其实就在寻找这条抛物线的最低点。如果再加上b损失函数图像就是1个三维图像。而多元函数求最小值的问题就不再是导数了而是要让每个参数的偏导数等于0来求解。在三维图像中就是对应w和b两个切面上的二维函数来求导。这里不再展开。 通过寻找一个线性函数来拟合x和y的关系就是机器学习中的最基本分析方法–线性回归。具体的每次调整一点w或b数值使得损失函数会变化多少这其实就是损失函数L(w,b)对w或b的偏导数。我们要做的就是不断往偏导数的反方向去变化具体变化的快慢用一个系数来控制叫做学习率这些偏导数构成的向量叫做梯度。调整w或b数值让损失函数逐渐减小最终得到w和b值的过程就叫做梯度下降。通过减小预测值与实际值之间的误差进行反向传播来不断调整模型参数与权重。梯度下降法有两个缺点1.对学习率太敏感。学习率太大会反复横跳找不到最低点学习率太小会浪费很多计算量。2.除了效率极低的BGD外你无法保证找到全局最低点可能会陷入局部最低点。为了解决以上问题人们提出了一种叫AdaGrad动态学习率的方法经常更新的参数学习率就小一些不经常更新的参数学习率就大一些。当然这种方法的一个缺点就是频繁更新参数的学习率可能会过小以致逐渐消失。因此就出现了解决这一问题的RMSProp算法优化动态学习率以及更高级的不需要设置学习率的AdaDelta算法。那么现在关键就在于这个偏导数怎么求。之前的线性回归问题中偏导数就是一个一元二次函数求导非常简单。但是在神经网络中层数较多函数本身就是一个及其复杂的非线性函数更别说损失函数了直接求偏导数非常困难。虽然神经网络整体代表的函数很复杂但是层与层之间的关系还是很简单的现在关键问题就是求出L对它们的偏导数。我们可以逐层求导比如w1变化一个单位看a变化多少再看a变化一个单位y^变化多少再看y^变化一个单位L变化多少每一个都是一个简单的偏导数那把三者乘起来就可以得到w变化一个单位会使L变化多少了。这种偏导数的计算方式就是链式法则。其实就是微积分中的复合函数求导。由于我们可以通过链式法则从右往左依次求导逐步更新每一层的参数直到把所有神经网络的参数都更新一遍在计算前一层时用到的一些偏导数的值后面也会用到并不用全部计算而是让这些值从右往左一点点传播过来就好了这个过程就叫做反向传播。总结前面的知识我们通过前向传播根据输入x计算输出y然后再通过反向传播计算出损失函数关于每个参数的梯度每个参数都向着梯度的反方向变化一点点。不断地前向传播、反向传播这就构成了神经网络的训练过程。三、如何调优神经网络参数现在我们知道神经网络的本质就是线性变换套上一个激活函数不断组合而成的一个非常复杂的非线性函数并且巧妙的通过梯度下降一点点计算出神经网络中的一组合适的参数。这样看起来只要神经网络足够大是不是什么问题都能解决看下面一组图你认为是左边好还是右边好纯从预测值与真实值误差来看也就是损失值最小化这个目标来看的话显然右边这个更好但直觉似乎告诉我们右边这个好像有点好的太过了。结果可能是只适合训练数据对新数据的预测反而不如左边的准。这种在训练数据上表现的很完美但是在没见过的数据上表现的很糟糕的现象就叫做过拟合Over Fitting。而在没见过的数据上的表现能力我们叫它泛化能力。为什么会过拟合呢看看刚刚这个图其实就是训练数据本身是个很简单的规律但模型太复杂了把那些噪声和随机波动也给学会了。因此这个案例中用一个非常复杂的神经网络模型来训练效果甚至不如一个线性模型这就告诉我们神经网络不是越大越好。简化模型复杂度有效果与之相对的就是增加训练数据的量数据量足够充足原本复杂的模型也就相对变得简单了。但有的时候我们确实无法收集或者懒得收集更多的数据怎么办呢那就在原有的数据中创造更多的数据比如说在图像处理中我们可以对图像进行旋转、翻转、裁剪夹、噪声等操作创造出更多新的训练样本这就叫做数据增强。这样不仅仅能够产生更多的数据还刚好训练了一个让模型不因输入的一点点小的变化而对结果产生很大的波动这就是增强了模型的鲁棒性。刚刚是从数据和模型本身入手来防止过拟合有没有可能从训练过程入手阻止过拟合的发生其实训练过程就是不断调整各种参数的过程只要不让参数继续过分的向着过拟合的方向发展就可以了。有一个简单的方法就是提前终止模型训练过程早停策略但这种方法还是太粗糙有没有什么方法也已直接抑制参数的野蛮增长呢回想一下参数的训练过程通过让参数往让损失函数变小的方向不断调整也就是梯度下降。我们可以在损失函数中把参数本身的值加上去这样在参数往大的调整时如果让损失函数减小的没有那么多导致新的损失函数反而是变大的。那么此时调整就是不合适的因此一定程度上就抑制了参数的野蛮增长。除了可以用参数的绝对值之和之外我们还可以用参数的平方和。这样参数大的时候抑制的效果就更强了。我们把这一项叫做惩罚项把通过这种损失函数中添加权重惩罚项抑制其野蛮增长的方法叫做正则化。上面这个参数绝对值相加的叫L1正则化这个平方项相加的叫L2正则化因为绝对值之和叫做L1范数而平方和的平方根叫做L2范数这是向量空间中范数的概念然后和之前梯度下降时增加学习率控制下降粒度一样我们也增加一个参数来控制惩罚项的力度我们叫它正则化系数。而这些控制参数的参数我们以后统称为超参数。总之这个公式就只是为了抑制参数的野蛮增长。除了这种方式外还有一种令人简单到发指但是就是效果显著的办法。那就是可以在训练过程中每次都随机丢弃一部分参数这样模型就避免了在某些关键参数上过渡依赖的风险。虽然听起来有点玄学但确实十分有效这种方法叫dropout其翻译过来就是丢弃而且这个方法是大名鼎鼎的深度学习之父辛顿提出来的。好了上面我们了解了在对抗过拟合这条路上我们搅尽脑汁想了各种办法包括增加数据量、减少模型复杂度、提前终止训练、L1正则化、L2正则化、dropout等等。除此之外模型还会遇到其他问题比如梯度消失也就是网络越深梯度反向传播时会越来越小导致参数更新困难。梯度爆炸梯度数值越来越大参数的调整幅度失去了控制。收敛速度过慢比如可能陷入局部最优或者来回震荡。计算开销过大每次完整的前向传播和反向传播都非常耗时。每个问题人们都想了各种办法来解决比如用梯度裁剪来防止梯度的更新过大。用合理的网络结构比如残差网络来防止深层网络的梯度衰减。用合理的权重初始化和将输入数据归一化让梯度分布更平滑。用动量法、RMSProp、 Adam等自适应优化器来加速收敛减少震荡。用mini batch把巨量的训练数据分割成几个小批次来降低单次的计算开销。这里的每个概念展开都是一个全新的世界鉴于我们这个系列是抓大放小解决主要思想的特点这里就不一一展开了但它们和我们今天着重讲的内容一样都是为了让训练过程更好罢了。所以并不是神经网络越大越复杂就越好随着神经网络越复杂出现的问题就会越多针对千奇百怪的问题人们才会想出五花八门的应对策略深度学习的确相似一门玄学无穷无尽彷佛研究不到头强大魔力令人着迷随着研究的不断深入更多令人惊艳的技巧层出不穷比如卷积网络CNN如何利用卷积层、池化层处理图片数据。循环网络RNN如何利用上下文处理序列数据。以及后来的注意力机制的引入催生了Transformer并衍生出了现在众多的大语言模型让人工智能不仅仅可以识别和判断还可以创造和决策。四、全连接层回顾前面学过的知识 一个最简单的神经网络就是ywxb 线性函数套上一个激活函数非线性函数即f(x) g(wxb) 如果有多个输入那就是多个w和x 如果有多个输出那就再来一行公式多一组w和b要是神经元多了的话公式密密麻麻的没有数学的简洁之美这怎么办呢其实就是把加减乘除替换成了矩阵运算的写法这里先忽略一下激活函数。然后我们现在把这些矩阵都替换成新的字母那么整个公式就化简成了这个样子不过现在还有个问题就是神经元的层并没有体现在公式中。假如神经元再多几层怎么办我们此时抽象一下也别分什么x、y和隐藏层了就通通用字母a来表示。输入层就当做第0层用a中括号零来表示以此类推。 例如第1层的公式如下第2层的公式如下每一层的神经元的值都是上一层的函数。我们用L表示在第几层那么最终的通用公式就是到这里公式变得更简单了但是也更抽象了麻烦的加减乘除就替换成了矩阵运算可以充分利用GPU的并行计算的特性加速神经网络的训练和推理过程。这就不仅仅是秀写法上的一个操作了。回到这个公式和神经网络结构可以看到这里的每个神经元都与前一层的所有神经元相连。但它其实只是神经网络结构中的一种叫做全连接层。五、卷积神经网络CNN卷积神经网络 CNNConvolutional Neural Network下面先看一下全连接层的问题假如我们现在要做个图像识别的模型假如输入是个30×30的灰度图像。那么平铺展开后喂给输入层的就是900个神经元。假如下一层的神经元的数量是1000个那么这个全连接层的总参数量就达到了900000这太大了。另外这里仅仅是把输入的图片平铺展开无法保留像素之间的空间关系。图片稍稍动一下可能所有神经元都和原来完全不同。但从图片整体上看可能仅仅是平移或者变暗这就是不能很好的理解图像的局部模式。为了更好的理解图像的局部模式我们随便在这个图像中取一个3×3的矩阵这里面的数值就是颜色的灰度值。然后我们再来一个固定的矩阵把每个对应位置数的值相乘并求和最终得到一个值是250。然后我们再选取一个地方再次进行这样的运算。最终我们把这种运算方式遍历划过原图像的每个地方得出的数值形成一个新的图像。这种方式叫做卷积运算。而刚刚我们这个固定的矩阵叫做卷积核。 卷积核不是一个新的概念在传统的图像处理领域卷积核是已知的可以达到一定的图像处理效果比如模糊效果、浮雕效果、轮廓效果以及锐化效果等等就是PS的常规操作。在深度学习领域卷积核的值就是未知的和神经网络中的其他参数一样是被训练出来的一组值。回到刚刚的经典神经网络结构其实就是把其中一个全连接层替换成了卷积层这就大大的减少了权重参数的数量同时还能更有效的捕捉到图片中的一些局部特征可谓是一举两得。而从公式上看其实就是把原来的矩阵的标准乘法即叉乘替换成了卷积运算。那么接下来我们的神经网络就可以用更抽象、更简洁的图来表示。在图像识别的神经网络结构中除了卷积层外通常还有池化层作用是对卷积层后的特征图像进行降维减少计算量同时保留主要特征。这里的卷积层、池化层、全连接层都可以有多个。而这种适用于图像识别领域的神经网络结构就叫做卷积神经网络 CNNConvolutional Neural Network。使用卷积神经网络非常方便可视化我们可以看到训练过程中所训练出的卷积核从原始图像中提取了什么样的特征虽然这些都是中间隐藏层的事情但是却能神奇的观察出一些实际意义这也是卷积神经网络让人着迷的地方。总结我们把之前一个个加减乘除很麻烦的写法写成了矩阵的形式。一是为了方便讨论比如刚刚介绍CNN的时候就从公式直接看出就是差乘变成了卷积运算而已。二是可以更好的利用GPU的并行计算提高效率。接下来我们把之前默认的那种所有神经元都连起来的形式叫做全连接进而通过图像识别这个任务意识到了全连接的局限性。接下来我们通过卷积运算代替了全连接层的标准矩阵乘法一方面使得训练参数大大的减少另外一方面也更有利于提取图像的局部特征这就解决了我们一开始说的问题。最后我们把神经网络结构再次抽象一个层次原来我们画的各种小圈圈在更高的视角下其实就是个全连接层而已。那么这些全连接层、卷积层、池化层的组合就构成了卷积神经网络 CNN。当然卷积神经网络CNN也只是神经网络结构中的一种而且它有一个致命的局限性就是它主要用于静态数据比如说图片。那么如果我们要处理的是时间序列、文本、语音、视频等动态数据就需要引入另外一种神经网络结构了——RNN附视频中用到的一些工具类网站 卷积操作图示https://setosa.io/ev/image-kernels/ GPU 对比页面用 AI 工具生成的代码https://www.blackbox.ai/ 手写数字识别过程演示https://felixzhang00.github.io/DL/mnist/ 3D CNN 网络可视化https://adamharley.com/nn_vis/cnn/3d.html六、循环神经网络RNN我们来看这么一个需求输入一句话输出每个单词的褒贬性。要想把这些文字作为输入参数首先得把这些文字变成计算机能够识别的数字这个过程就叫做编码。具体怎么编码呢有两种极端的方式。一种是只用一个数字标识来代表每个词。这样的缺点非常明显就是维度太低了相当于一个一维的向量而且数字标识本身对语言理解没有任何意义无法灵活地衡量词和词之间的相关性。另一种极端的方式是准备一个超级超级大的向量每个词只有向量中一个位置是1剩下的都是0。这种方式叫做One hot即独热编码。这种编码方式维度太高了而且每个向量之间都是正交的所以词和词之间仍然无法找到相关性。所以另一种更有效的方式叫做词嵌入Word Embedding通过词嵌入的方式所得到的词向量维度不高也不低每个位置数依然可以理解为某一个特征。只不过这是训练出来的不是我们人定的。不过特征是什么可能我们人类完全无法理解。为什么这种方式可以表示词和词之间语义上的相关性我们可以用两个向量的点积或余弦相似度来表示向量之间的相关性进而表示两个词语之间的相关性这就将自然语言之间的联系转化为了可以用数学公式计算出来的方式。同时一些数学上的计算结果也能反映出一些现实中很神奇的解释。比如一个训练好的词嵌入矩阵可能会使得桌子-椅子 鼠标 - 键盘这种有趣的深意。把所有词向量组成的一个大矩阵这个大的矩阵就叫做嵌入矩阵。这里的每一列就表示一个词向量。像刚刚说的这个矩阵不是我们人类手动给每个词赋值而形成的是通过深度学习的方法训练出来的。比如比较经典的方式就是Word2Vec这里就不展开讲解了你就当做已经有了一个这样的嵌入矩阵每一个可能的词语都可以从这里找到对应的词向量这些词向量的维度非常高。所以它所在的空间的维度也非常高这个空间就叫做潜空间。那么这些词在高维潜空间中的相对位置关系虽然可以通过点积或余弦相速度算出来但最好有一种直观的方式能让我们亲眼可视化的看到哪怕不那么准确也行。于是便有了一些方法将这个潜空间降维投影到二维或三维的坐标系中来直观的可视化不同词语之间的距离还是非常有趣的。好了有关词嵌入和嵌入矩阵我们就先聊到这里。这时每个词都可以编码成向量然后送到神经网络输入端的神经元中了。我们再来看看最初的需求输入一句话输出每个单词的褒贬性。这里有5个词通过词嵌入把每个词变成一个300维的词向量那么输入端就要一共有1500个神经元。但是有两个问题一个是输入层太大了而且会随着一句话中词语数量多少而变化是变长的不确定的。另一个是无法体现词语的先后顺序仅仅是把它们非常生硬的平铺展开成了一个非常大的向量一股脑的送入了输入层。在CNN中我们是通过卷积操作提取了图像的特征。那么在自然语言处理领域我们可以通过什么办法既能解决词语之间的先后顺序问题又能降低输入层的参数量呢首先我们还是用经典的神经网络但不要输入一句话而是输入一个词输出就是这个词是褒义还是贬义当然这里的字母都表示矩阵。这时假设第二个词来了也是经过一样的神经网络。我们用尖括号来表示第几个词这样就有了顺序关系。现在的问题是第二个词的计算过程完全没有让第一个词的任何信息参与进来这该如何解决可以这样我们让第一个词经过非线性变换后先输出到一个隐藏状态H1然后再经过一次非线性变换得到输出Y1接下来这个隐藏状态H1的值和第二个词X2一起参与运算。同理对第二个词的流程也是一样继续往下传递。这样的话前面词的信息就这样不断的往下传递直到传到最后一句话的最后一个词那里这样就把一句话中所有的词的信息都囊括进来了。当然这里的W要有所区分有专门针对词向量的Wxh矩阵有专门针对隐藏状态的Whh矩阵以及最终计算输出结果的Why矩阵。同样对于偏置项b也是如此把这个图简化一下这就是循环神经网络RNN。还会有图这样画这个抽象的RNN模型就具备了理解词和词之间先后顺序的能力这就解决了判断一句话中各个单词的褒贬词性、给出一句话不断生成下一个字、以及翻译等多种自然语言处理的工作了。进一步我们把矩阵展开来看就是这样首先第一个词X1和权重矩阵Wxh相乘得到第一个词的隐藏状态h1h1和权重矩阵Why相乘得到第一个词的输出结果y1。这时候同样向后传递计算第2个词同样要和权重矩阵Wxh相乘但是注意此时会把第一个词的隐藏状态h1拼接到输入向量X2中同时权重矩阵也增加了一个Whh最终计算出第二个词的隐藏状态h2。h2会继续往后传后面的流程就是重复的了。最后看一下公式其实非常简单和经典的神经网络相比就是多了一个前一时刻的隐藏状态而已当然RNN还有两个非常严重的问题信息会随着时间步的增多而逐渐丢失无法捕捉长期依赖。而有的语句恰恰是距离很远的地方起到了关键性的作用。RNN必须按顺序处理每个时间步依赖上一个时间步的隐藏状态的计算结果。为了解决这些问题人们使用GRU和LSTM改进了传统的RNN但是这些仍然是建立在让信息一点点按照时间不传递的思路来只能缓解而无法根治。我们是否有一种可以彻底抛弃这种顺序计算直接一眼把全部信息尽收眼里的新方案呢那就是transformer七、Transformer简单而强大用神经网络进行翻译任务例如“i love you baby”译为“我爱你宝贝”。首先通过词嵌入将每个词转换为一个词向量假设维度为六。若直接将每个词输入全连接神经网络会缺乏上下文信息且句子长度受限效果不佳。若使用循环神经网络RNN则面临串行计算问题句子过长时会导致长期依赖困难。因此需要一种全新的方案——Transformar。首先为每个词赋予一个位置编码表示其在句子中的位置。将位置编码加到原来的词向量中使每个词获得位置信息但此时仍未包含其他词的上下文信息也就是注意不到其他词的存在。接着使用一个Wq矩阵与第一个词向量相乘得到维度不变的q1向量。这里的Wq矩阵是可以通过训练过程学习的一组权重值。同理使用Wk矩阵与第一个词向量相乘得到k1向量再使用Wv矩阵与第一个词向量相乘得到V1向量。对其他词向量也进行相同操作分别得到对应的q、k、v向量。在实际GPU运算中通过拼接形成大矩阵进行乘法运算而非如上述逐步计算。得到的是直接包含所有词向量的q、k、v矩阵。不过为便于理解解释时仍拆分为单个词向量。现在原来的词向量已通过线性变换映射成q、k、v向量维度与原来相同。接下来让q1与k2做点积这表示在第一个词的视角里第一个词与第二个词的相似度是多少。同理q1分别与k3、k4点积分别表示与第三个词、第四个词的相似度。最后q1与自己点积表示与自己的相似度。得到这些相似度系数后将它们分别与V向量相乘再相加得到a1。此时a1就表示在第一个词的视角下按相似度大小加权组合所有词的词向量从而包含全部上下文信息而且是从第一个词的视角来看的。同理其他词也按此方式处理。最终每个词都包含其他词的词向量按与自己的相似度加权。这里的q、k、v是中间计算过程。从全局视角看最初的输入的词向量经过一些计算处理变成一组新的词向量不同的是每个新的词向量都包含位置信息和其他词的上下文信息的一组新词向量这就是注意力机制attention做的事情。为进一步优化有时一个词与另一个词的关系可能因视角不同而异。对于注意力机制而言若只通过一种方式计算一次相关性灵活性会大大降低。在做出改进之前我们为每个词计算一组Q、K、V。现在我们在Q、K、V基础上再经过两个权重矩阵得到两组Q、K、V为每个词提供两个学习机会以学习不同的用于计算相似度的Q、K、V以增加语言的灵活性。这里的每组KQV构成一个头接下来每个头内的KQV仍经过注意力层的运算得到a向量然后将两个a向量拼接起来得到与之前相同的结构。这种注意力机制被称为多头注意力我们刚才举的例子就是两个头的情况。现在恭喜你已掌握Transformer架构的核心逻辑。我们对照Transformer的经典论文架构图来看。首先第一步是将输入内容通过词嵌入转换为词向量矩阵这对应的是这里。第二步加入位置信息并添加一个形状相同的矩阵这对应的是这里。第三步经过多头注意力处理输出矩阵的维度与输入相同为每个词向量增加了上下文信息这对应的是这里。此外还有一步添加了残差网络和归一化处理这是为了缓解梯度消失并使分布更加稳定而做的优化我们刚才未详细展开这对应的是这里。同时我们也可以看到在整个Transformer的标准架构中最主要的是多头注意力处理相当于我们已搞明白这些部分的逻辑。下面我们深入到多头注意力机制的细节部分如果是单头注意力先让Q和K相乘得到一个相似度系数矩阵然后再和V相乘最终得到包含上下文信息的词向量矩阵。当然我们刚才的讲解过程中省略了中间的缩放、掩码和一层Softmax处理。再看右边的多头注意力情况首先QKV分别经过线性变换拆分成多组相当于给了多次机会学习到不同的相似度关系。依次经过注意力机制运算后将运算结果拼接起来。不过我们讲解的时候还省略了一次线性变换。即多头结果并不是简单地拼接起来还需要再次经过一层权重矩阵的乘法。这时再看两个核心公式就很好理解了如下所谓注意力运算就是QK矩阵相乘经过缩放再经过Softmax层处理最后和V相乘。对于多头情况就是先将QKV矩阵经过多个权重矩阵拆分到多个头中分别经过注意力机制的运算最后合并起来再经过一次矩阵运算得到输出。再回过头来看这个全局图左边的部分叫做编码器、右边的部分叫做解码器。你实在不愿意叫也没关系。假设这是用于翻译的任务我们训练这个神经网络的过程如下所示。先看左边编码器部分1.首先输入要翻译的文本“I love you baby”2.然后经过词嵌入引入位置编码。3.通过多头注意力、残差和归一化处理。4.再送入一个全连接神经网络将结果经过残差和归一化处理后送入解码器的多头注意力机制的两个输入中作为k、v矩阵。再看右边解码器部分解码器的部分输出是翻译后的文本我爱你宝贝同样经过词嵌入、引入位置编码经过多头注意力然后加入残差和归一化处理然后送入多头注意力的一个输入中作为q矩阵与刚刚从编码器中送入的k、v矩阵一起再经过多头注意力、残差归一化、全连接神经网络、残差归一化最后经过一层线性变换的神经网络投射到词表向量中再用softmax层转化为概率代表预测的下一个词在词表中的概率分布取概率最高的词作为下一个词。注意这里不同的是解码器下面的多头注意力部分有个掩码Masked其作用是真正推理翻译时是一个词一个词翻译的。比如此时翻译到我下一个词应该是“爱”所以输出“我”的时候是看不到后面的词的这就需要掩码来遮挡后面的词以便训练时模拟真实推理场景。比如输入“i love you baby”输出只有一个词“我”经过神经网络后最后输出词表的概率分布我们想要的结果就是“爱”字的概率值最大。如果训练时有偏差就计算损失函数在反向传播中调整transformer结构中的各种权重矩阵直到学习好为止。总的来说transformer确实是个特别简单的架构尤其是有了基础的神经网络知识之后如果看了这个系列之前的视频那就只有多头注意力这一层是陌生的。但它其实拆解之后也是各种矩阵相乘相加的操作其余的词嵌入、位置编码、残差归一化、经典神经网络、softmax层等都是我们之前视频中已经了解过的概念。把这些老东西拼凑起来就诞生了我们现在大模型技术的鼻祖——transformer。gpt的底层transform的一半即只有解码器的部分也不翻译只管看前面的词猜下一个词。别看它来回猜词猜着猜着就变成了聊天、写代码、解数学题的全能选手了。Transformer的架构来源于经典的论文“attention is all you need”。本期视频内容理解之后再去看这篇论文就会发现非常容易理解因为它本身就是一个很简单的架构。也正因为简单粗暴但效果却出奇的好所以才会广为流传并成为现在大模型的基础。八、速通大模型100词万物皆函数Function早期人们用符号主义Symbolism思想找到精确函数Function试图解释一切原理但遇到瓶颈。后来人们转用联结主义Connection思想先构建非常复杂函数根据计算出的预测值与真实值的误差不断调整里面的未知参数。这个函数叫做模型Model模型里的参数叫做权重Weight。如果模型中的参数量特别大就叫做大模型large Model用于自然语言处理的大模型就叫做大语言模型Large Language Model。调整参数的过程即模型的训练Training事先训练好一个基础模型的方式叫做预训练Pretraining。基于预训练的模型继续训练让模型学会具体任务的方式叫做微调Fine-tuning。参数调整好后根据函数的输入计算输出结果这个过程叫做推理Inference。这些概念在大模型时代到来之后逐渐火热起来。当模型参数量足够大时对话能力有了质的提升产生了一定程度的推理能力这种量变引起质变而突然出现的之前没有的能力叫做涌现Emergence。大语言模型爆火的产品是2023年的ChatGPT它是一款用于聊天的产品。而它背后使用的大语言模型是GPTGenerativate Pre-trained Trasformer这是个系列。开发这个模型的公司是OpenAI。由于这家公司推出的产品一直保持不开放源代码即闭源所以也正式更名为CloseAI开个玩笑。一个模型需要训练需要代码有了代码就可以训练出一组权重有了权重就可以进行推理也可以对外提供服务。不开放源代码也不开放权重只对外提供服务的模型叫做闭源模型Closed-source Model如ChatGPT、Claud、Gemini等开放模型权重Open-weight Model可以直接下载到自己电脑上部署的模型叫做开源模型但实际上大部分现在说的开源模型只是开放了权重而没有开放训练代码和训练数据所以准确说叫开放权重模型。比如最近爆火的DeepSeek以及划时代的LLaMA等不但开放了模型结构和权重还开放了训练代码的模型可以叫完全开源模型Fully Open-source Model。当然了有了模型权重就可以下载到本地进行部署并且很少有人需要重新训练它它不依赖于他人的服务而是把模型下载到本地进行使用的过程叫做私有化部署Private deployment。私有化部署依赖很多复杂的环境配置需要装很多依赖的软件和工具包而且需要性能较为强劲的GPU支持。对于仅仅想尝鲜的个人专门为此去买一台电脑不太合适因此就有了云桌面Cloud Desktop的概念。比如青椒云就是一款高性能的云桌面你只需要一台能上网的电脑就可以用几秒钟的时间花几毛钱体验众多需要极高电脑配置的大模型应用。下载一个应用程序根据配置购买一款云电脑可以看到这里有很多别人打包好的环境和软件免去了自己配置的麻烦。这个打包好的东西叫做镜像青椒云内置多种AIGC镜像即开即用省去了很多模型部署的时间。接下来选择一个合适的计费方式如果只想偶尔体验一下就选择按量计费开机后按分钟计算不开机不要钱。如果自己的电脑大部分时间都在关机这种方式和真正拥有一台电脑的区别就不大了。除了能体验私有化大模型外青椒云用来办公或打游戏也非常方便支持Windows、Mac、安卓、iOS四大系统同一个账号的数据是打通的可以在家、在公司、在上班的路上操作同一台云主机。感兴趣的朋友快下载一个试试吧。回到ChatGPT大语言模型的本质就是个大函数根据前面的一句话持续不断地计算下一个词是什么。这种基于输入内容自动生成新内容的人工智能系统叫做生成式AIGenerativate AI。当然除了文本也包含图像、声音、视频等等这里的每一个分割成最小粒度的词叫做token对话时所有给到大模型的信息叫做上下文Context不同的模型有不同的上下文长度限制越大就越能记住前面的信息。上下文从另一个角度理解也可以叫提示词Prompt。可以知道模型的回答流程和风格但其实就是个上下文而已。早期出现很多提示词工程师Prompt Engineer和提示词教程本质就是教你怎么跟大模型说话而已。现在AI的对话越来越贴近人的方式了所以你和人沟通起来有啥毛病那么跟AI沟通也有啥毛病你真正缺的是怎么表达清楚自己的意思而不是prompt技巧。刚刚说了大模型就是个大函数函数是死的所以根据前面的词输出的下一个词是固定的但是我们可以一定程度的调整模型输出的随机性Randomness让下一个词的生成并不总是取前面概率最高的那个词控制输出的随机性的参数叫做温度Temperature。控制范围从概率最高的k个词中选择叫做top-k。随机性太高模型容易胡说八道太低又会过于保守也可能说错。这种在语言上说得通但是在事实上狗屁不通甚至虚假信息的现象叫做大模型的幻觉问题Hallucination。为了解决幻觉问题大模型或者一些套壳产品提供了联网能力Browsing。其实呢在大模型回答问题前先去互联网上查找一些相关信息然后把这些信息和你的问题拼接在一起共同先发给大模型进行回答相当于带着答案回答问题了。之前很多自媒体的震惊体、炸裂体、天塌体的文章说大模型拥有联网能力是有了重大突破人类就要完蛋了。那实际上呢就是这么个玩意。有些数据网络上可能查不到或者企业的数据不方便公开地放在互联网上希望大模型去这些私有的数据库中查找答案。这种方式叫做检索增强生成RAGRetrieval-Augmentted Generation。与联网思路相同先查资料再回答问题但查询内容不在互联网而在私有数据库即知识库KBKnowledge Base。为使模型与知识库语义匹配知识通常以向量形式存储在向量数据库Vector Database中将文字转换为词向量这个过程叫词嵌入Embedding对比词向量间的相似度在知识库中找到相关问题的答案此过程称为向量检索Vector Search。解决大模型的幻觉问题后AI即可真正介入生产和生活中。在内容创作领域传统由专业机构如影视公司、媒体机构、权威专家等创作的内容称为PGCProfessionally Generated Content。随着移动互联网和自媒体时代的到来由普通用户创作的内容称为UGCUser Generated Content。在AI时代由AI创作或辅助创作的内容称为AIGCAI Generated Content。正向案例是内容公司通过AI加快产出速度、提升内容质量。反面案例是很多人用AI洗稿并疯狂产出内容污染互联网内容生态。此处易混淆的词是通用人工智能AGIArtificial General Intelligence它是对人工智能最终形态的畅想即通用人工智能大模型逐渐发展。AI不仅能处理文本内容也能处理图片、声音、视频等多种形式的内容这种处理多种模式内容的能力称为多模态Multimodal。有时需多次使用大模型能力如第一步将口播稿分段第二步给每个段落写成文生图的提示词第三步生成一张合适的图片。这种将多个步骤编排成流程的能力称为工作流Workflow。包括在页面上进行傻瓜操作编排工作流的工具如扣子Coze以及用代码方式编排工作流的框架如LongChain。按照工作流封装大模型和一整套工具集用于自动完成某一类复杂任务的程序称为一个智能体Agent。多个智能体互相协作完成更复杂任务的程序称为多智能体Multi-AgentChatGPT的插件系统、早期昙花一现的Auto GPT以及最近又昙花一现的Manus都属于智能体。智能体需操作各种应用如打开浏览器、上网、打开计算器进行算术或操作手机上的微信发送一条信息等实现托管。为方便操作外部数据源和工具ASRobin公司于2024年底为AI系统提供了一个标准化的接口或协议称为MCPModel Context Protocal给了AI一个操作外部世界的统一标准。而谷歌于2025年4月推出的另一个用于agent和agent之间通信的协议称为A2A协议Agent-to-Agent Protocal。至此大模型的生态开始百花齐放未来的想象空间是无限的。尽管工作流、智能体、MCP等概念兴起但其实都是老一套工程方面的事情。大模型本身能力已近极限一方面模型大小达极限一个顶级大语言模型训练成本超1亿美元。另一方面模型能力也快达极限前十名模型能力差距从两年前12%缩小到2025年初5.4%前两名从4.9%缩小到0.7%模型间差距几乎消失。正所谓边际收益递减因此开始探索其他方向如模型压缩Model Compression以减少成本和方便个人使用包括用更低精度表示模型中的浮点数进行量化Quantization。使用参数量较大的大模型指导参数量较小的小模型进行蒸馏Distillation删除模型中不重要的神经元以实现模型稀疏提高速度即剪枝Pruning用更低成本改善微调方式如LoRALow-Rank Adaptation等从推理能力方向增强模型能力如思维链Chain-of-Thought;通过人类反馈的强化学习让模型更合人心称为RLHF(人类反馈强化学习)。当然当所有方向都难以改进时还可以封装现有大模型接口并对外提供服务。通俗地说就是套壳封装并提供服务。通过提供ai工具、ai服务、ai课程、ai社区等帮助他人开发和使用ai能力的周边产品这种方式在ai淘金热中帮助别人淘金以赚取收益称为卖铲子不直接卖金子帮人淘金卖铲子需要对ai各领域产品和生态了如指掌。和文字相关的自然语言处理NLP有名的包括ChatGPT、claud、gemini、DeepSeek、豆包、通义千问、腾讯元宝等和图片相关的是计算机视觉CV包括很多ai绘画应用。比如闭源的Midjourney、开源的stable diffusion;绘画工作流软件ComfyUI等和语音相关的包括文字转语音的TTS和语音转文字的ASR和视频相关的包括Sora、可灵Kling、极梦等ai视频生成应用以及各种数字人Digital Human应用等。除了帮助普通用户外还可以帮助开发者更好地使用ai比如像英伟达一样提供好的显卡即GPU以及配套的开发框架cuda或者提供专门针对人工智能的处理器比如专门用于大规模神经网络训练与推理的TPU和专门用于终端设备推理的ai加速芯片NPU等。软件方面可以提供适合ai的编程语言python提供针对ai编程的库如pytorch、tensorflow、scikit-learn等建设ai开源平台和社区如Hugging face方便开发者本地运行大模型的工具如Ollama提升大语言模型推理速度的推理引擎如vLLM还有编程助手如单独以软件形式存在的Cursor、或插件形式存在的github copilot等。ai时代瞬息万变产品工具层出不穷但其技术底座依然保持不变从最底层的线性代数、微积分、概率论、最优化等数学知识。到深度学习用神经网络表示函数以损失函数最小化为目标通过反向传播训练参数。再到后续的经典神经网络结构MLP包括用于图像数据处理的卷积神经网络CNN、用于序列数据处理的循环神经网络RNN以及引爆整个大模型时代的注意力机制和基于注意力机制发明的Transformer架构它们共同构建了现代AI技术的基础。

相关文章:

《从函数到大模型速通》

一、从函数到神经网络所有一切的前提是,你要相信这个世界上的所有逻辑和知识,都可以用一个函数来表示。Functions describe the world !比如输入物体的质量和加速度,根据牛顿第二定律,就可以得到物体施加的力,这就是人…...

数据结构基础------初识二叉树

数据结构-------二叉树 1.树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。我们把它叫做树是因为它看起来像一颗倒挂的树,也就是根朝上,叶在下。 特点: 1.有一个特殊的结点,称为根结…...

Java 25虚拟线程资源调度黄金参数表(2024 Q3压测实录:TPS提升3.8倍,P99延迟下降67ms)

更多请点击: https://intelliparadigm.com 第一章:Java 25虚拟线程资源调度优化全景概览 Java 25 正式将虚拟线程(Virtual Threads)从预览特性转为标准特性,并深度重构了ForkJoinPool与ThreadScheduler协同机制&#…...

别再用老方法了!用Python+OpenCV搞定Kinect V2相机标定的保姆级避坑指南

Kinect V2相机标定实战:PythonOpenCV避坑全攻略 刚拿到二手Kinect V2的开发者常会遇到各种环境配置和标定问题。市面上许多教程要么依赖过时的库版本,要么省略关键步骤,导致新手在标定过程中频频踩坑。本文将用最新工具链带你完整走通从环境配…...

【Docker WASM边缘部署终极指南】:20年架构师亲授5大高频报错根因与秒级修复方案

更多请点击: https://intelliparadigm.com 第一章:Docker WASM边缘部署全景认知与技术栈演进 WebAssembly(WASM)正从浏览器沙箱走向云原生边缘场景,而 Docker 官方对 WASM 运行时的原生支持(自 Docker Des…...

告别显存焦虑:用bitsandbytes的8位优化器,让你的RTX 3060也能跑大模型(保姆级配置)

用8位优化器释放RTX 3060潜力:低成本玩转LLaMA-7B全攻略 当你在Colab上看到"CUDA out of memory"的红色警告时,是否想过自己的RTX 3060其实也能跑动70亿参数的大模型?2023年柏林工业大学发布的实验数据显示,通过8位量化…...

第6篇:Java面向对象进阶:继承、重写与多态,解锁代码复用新姿势

上一篇我们掌握了Java面向对象基础,学会了定义类、创建对象,用封装保护数据安全,用构造方法简化对象初始化,完成了面向对象版的学生成绩管理案例。但在实际开发中,我们会遇到“多个类拥有相同属性和方法”的场景——比…...

K8s Pod 调度策略与优先级算法优化

Kubernetes作为容器编排领域的标杆,其Pod调度策略与优先级算法的优化直接影响集群资源利用率与应用稳定性。随着企业微服务规模扩大,如何让调度器更智能地平衡节点负载、保障关键业务,成为运维团队的核心挑战。本文将深入剖析调度优化关键技术…...

论文阅读:ICLR 2026 AlphaSteer: Learning Refusal Steering with Principled Null-Space Constraint

总目录 大模型安全研究论文整理 2026年版:https://blog.csdn.net/WhiffeYF/article/details/159047894 https://openreview.net/forum?id1vvbzAqdTe ![ ICLR 2026 | 零空间安全操控 📄 论文背景与基本信息 《AlphaSteer: Learning Refusal Steering…...

C 表达式中的汇编指令

asm 为 gcc 中的关键字,asm 表达式为在 C代码中嵌套汇编指令,该表达式只是单纯的替换出汇编代码,并不对汇编代码的含义进行解析。 asm 表达式有两种形式,第二种 asm-qualifiers 包含了 goto 语句。 第一种形式为常见的用法&#…...

如何永久免费使用IDM:开源激活脚本完整指南

如何永久免费使用IDM:开源激活脚本完整指南 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script 还在为Internet Download Manager(IDM&#x…...

关于C++11的统一初始化语法示例详解

前言本文主要给大家介绍了C11统一初始化语法的相关内容,关于在当前新标准C11的语法看来,变量合法的初始化器有如下形式:1234X a1 {v};X a2 {v};X a3 v;X a4(v);其实,上面第一种和第二种初始化方式在本质上没有任何差别&#xff…...

Win11Debloat:免费Windows系统优化工具终极指南,轻松提升44%性能

Win11Debloat:免费Windows系统优化工具终极指南,轻松提升44%性能 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other change…...

云端还是本地?哪种RFID固定资产系统更合适你的企业?

在数字化转型的浪潮中,越来越多的企业认识到RFID固定资产管理系统的重要性。但当真正准备引进系统时,一个关键却绕不开的问题便摆在面前:到底该选云端还是本地部署?这不仅仅是技术路线的选择题,更关乎企业的成本结构、…...

Ostrakon-VL-8B数据预处理详解:餐饮图像清洗与标注规范

Ostrakon-VL-8B数据预处理详解:餐饮图像清洗与标注规范 如果你正在尝试训练或微调像Ostrakon-VL-8B这样的视觉语言模型,来让它更好地理解餐饮场景,那你肯定知道,数据质量是决定成败的关键。模型再强大,如果喂给它的是…...

推荐2款无需安装实用软件,桌面图标整理设置,简真是Windows神器!

聊一聊今天给大家推荐2款桌面美化小工具。为什么觉得要推荐这个小工具呢?因为最近帮一些人远程处理一些问题。感觉那电脑桌面,密密麻麻,全是小图标。我想找个东西都难,是太难了。我真恨不得上手整理。但又怕整理了,人家…...

mini-job极简分布式延迟任务队列 — 基于 Redis,支持 Cron 周期任务、异步协程和多执行器

mini-job 极简分布式延迟任务队列 — 基于 Redis,支持 Cron 周期任务、异步协程和多执行器。 特性特性说明延迟任务设定延迟秒数,到期自动执行Cron 周期调度支持标准 cron 表达式(分 时 日 月 星期)三种执行器async 协程&#xff…...

内网IP如何申请SSL证书?

一、为什么需要内网IP证书? 很多企业有一个误区:认为“只有域名才能做HTTPS”,或者“内网用HTTP没关系”。现实恰恰相反: 合规硬指标:《数据安全法》等法规明确要求数据传输必须加密,内网明文传输在等保测…...

FastAPI + PostgreSL 实战:给应用装上“缓存”和“日志”翅膀

1. 哑铃图是什么? 哑铃图(Dumbbell Plot),有时也称为DNA图或杠铃图,是一种用于比较两个相关数据点的可视化图表。 它源于人们对更有效数据比较方式的持续探索。 在传统的时间序列比较中,我们通常使用两条折…...

PMC Organometallix宣布所有产品提价

鉴于市场环境发生重大变化,PMC Organometallix, Inc. 宣布,自2026年5月1日起(或根据合同条款允许的时间),全球所有产品线的价格将上调10%至25%。此次调整源于关键投入成本的持续压力,包括原材料成本上涨以及…...

网络安全渗透测试入门|无线安全渗透与防御完整教程

前言 这是给粉丝盆友们整理的网络安全渗透测试入门阶段无线安全渗透与防御教程 喜欢的朋友们,记得给我点赞支持和收藏一下,关注我,学习黑客技术。 1.Aircrack-ng简介 Aircrack- NG是一个完整的工具来评估Wi-Fi网络安全套件。 捕获&#x…...

告别Swagger默认丑界面!.NET Core 6项目集成Knife4jUI保姆级教程

.NET Core 6项目集成Knife4jUI:打造专业级API文档体验 在当今快节奏的开发环境中,API文档的质量直接影响着团队协作效率。许多.NET Core开发者虽然已经使用Swagger生成基础文档,却常常面临界面简陋、功能单一的问题。Knife4jUI作为Swagger UI…...

Qt项目拆分之术:如何用SUBDIRS把大工程拆成小模块(从app到lib的实战)

Qt项目模块化实战:用SUBDIRS构建可扩展工程架构 当你的Qt项目从几百行代码膨胀到数万行时,编译时间开始以分钟计算,团队协作频繁出现文件冲突,新成员面对庞杂的目录结构不知所措——这就是我们需要模块化拆分的临界点。上周我接手…...

5分钟搭建家庭电视直播系统:Kodi IPTV Simple完全指南

5分钟搭建家庭电视直播系统:Kodi IPTV Simple完全指南 【免费下载链接】pvr.iptvsimple IPTV Simple client for Kodi PVR 项目地址: https://gitcode.com/gh_mirrors/pv/pvr.iptvsimple 还在为电视直播体验烦恼吗?想用最简单的方式把网络直播源整…...

Python程序打包为EXE

PowerShell 用anaconda创建虚拟环境 conda -n create XXXconda initconda activate xxx进入要打包的文件夹中安装依赖pip install -r requirements.txt 打包pyinstaller -F -w main.py --clean --noconfirm...

软件产品负责人管理中的需求决策者

在软件开发领域,产品负责人(Product Owner)是决定产品成败的关键角色之一,而需求决策者则是这一角色的核心职能。他们不仅需要理解市场和用户需求,还要在资源有限的情况下,权衡优先级,确保团队交…...

【基于 macOS 虚拟机的 iMessage 批量消息处理技术实践】

一、研究背景与技术意义iMessage 作为苹果生态内置的原生通讯服务,依托系统底层优势,具备端到端加密、无运营商拦截、原生展示等特性,常用于企业内部事务提醒、授权用户服务告知等合规场景。在技术研究过程中,手动单条发送消息效率…...

从ArrayList到VectorSpecies:Java向量化开发全流程拆解,含GraalVM AOT+Linux perf火焰图调优实战

更多请点击: https://intelliparadigm.com 第一章:Java 25 向量 API 硬件加速概览 Java 25 正式将 jdk.incubator.vector 模块升级为标准 API(java.util.vector),标志着 JVM 首次原生支持跨平台向量化计算&#xff0c…...

Live Avatar数字人模型保姆级部署教程:4步搞定AI视频生成

Live Avatar数字人模型保姆级部署教程:4步搞定AI视频生成 1. 准备工作:硬件与软件环境检查 1.1 硬件要求详解 Live Avatar对硬件有明确要求,这是确保模型正常运行的基础: 显卡要求: 最低配置:单卡NVIDIA…...

如何提升域名价值——评估标准

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…...