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

网站如何做淘宝联盟推广电商网站建设课件

网站如何做淘宝联盟推广,电商网站建设课件,化妆品网站建设方案的预算,长沙网站建设案例#x1f345;我是小宋#xff0c; Java学习AI#xff0c;记录学习之旅。关注我#xff0c;带你轻松过面试。提升简历亮点#xff08;14个demo#xff09; #x1f345;我的java面试合集已有12W 浏览量。#x1f30f;号#xff1a;tutou123com。拉你进专属群。 ⭐⭐你的… 我是小宋 Java学习AI记录学习之旅。关注我带你轻松过面试。提升简历亮点14个demo 我的java面试合集已有12W 浏览量。号tutou123com。拉你进专属群。 ⭐⭐你的点赞就是我的进步⭐⭐ ⭐⭐你的留言就是我的动力⭐⭐ ⭐⭐加群进入VIP通道⭐⭐ ⭐⭐加入VIPhttps://t.zsxq.com/AJLn4 VIP专属 加入VIPhttps://t.zsxq.com/AJLn4 ⭐点个Star,就是对作者莫大的帮助留个言就是对作者最大的鼓励⭐ ️ 本合集一切为了就业3星之内熟悉4星了解五星必会。 **想要快速完成学习先看2星再看4星5星。 目录 一.前言⭐⭐⭐⭐⭐1.适合人群2.合集目的3.就业必会 二.基础了解⭐⭐⭐1.深度学习的基本概念⭐⭐1.1核心概念1.2核心算法原理1.3数学模型和具体操作步骤1.4应用领域 2.深度学习经典模型概览⭐⭐3.深度学习模型优化策略概览⭐⭐⭐3.1数据预处理3.2模型选择与结构调整3.3优化算法选择3.4正则化方法3.5超参数调整3.6模型评估与调试3.7深入研究3.7.1如何根据数据集选择合适的深度学习模型结构3.7.2为什么要对数据进行归一化和标准化处理 3.8什么是正则化方法及其在防止过拟合中的作用3.8.1正则化方法概述3.8.2正则化方法在防止过拟合中的作用 **4.深度学习GPU原理与应用方法⭐⭐**4.1GPU在深度学习中的作用4.2GPU的架构原理4.3GPU在深度学习中的应用方法4.4实际应用案例4.5GPU原理4.6结论 5.Transformer模型的核心原理(NLP入门 )⭐⭐⭐⭐5.0Transformer模型的核心原理5.1Transformer整体结构5.2Self-Attention2.1 为什么选择Self-Attention2.2 Self-Attention结构2.3 Scaled Dot-Production Attetntion2.4 Multi-Head Attention 5.3The Residual Connection 残差连接5.4Positional Encoding5.5Layer Norm5.6 Mask6.1 padding mask6.2 sequence mask 5.7.Encoder and Decoder stacks **5.0深入研究**5.1**Transformer模型中自注意力机制是如何工作的**5.2Transformer模型中自注意力机制的工作原理5.3**为什么要引入多头注意力机制**5.4**Transformer模型中的位置编码有哪些常见的实现方式**1. 三角函数式位置编码Sinusoidal Position Encoding2. 可学习式位置编码3. 相对位置编码4. 旋转位置编码RoPE5. ALiBi位置编码 三.大模型基础⭐⭐⭐⭐1.GPT系列模型核心原理LLaMA系列模型核心原理⭐⭐⭐1.1GPT系列模型核心原理 GPT1/GPT2/GPT3/GPT4/InstructGPT1.2LLaMA系列模型核心原理LLaMA/LLaMA2/Alpaca/Vicuna/BaiChuan21.3优秀开源大模型核心原理BLOOMZ/ChatGLM3/Qwen1.5 2.大模型应用框架LangChain核心原理⭐⭐⭐ 2.1LangChain核心原理 2.0深入研究⭐⭐⭐了解2.1为什么需要 Langchain2.2Langchain的核心模块2.3Langchain的学习路径2.4参考资料2.5其他语言的LangChain2.6开源项目 3.多模态技术⭐⭐⭐3.1经典多模态模型核心原理Vit/CLIP/ALBEF/BLIP3.2多模态大模型核心原理BLIP-2/LLaVA/Qwen-VL 四.就业必会⭐⭐⭐⭐⭐1.大模型微调基础⭐⭐⭐⭐⭐1.0先看个vedio1.1微调技术1.2大模型微调的数据收集和处理过程(⭐⭐⭐)1.2.1数据收集1.2.2数据预处理1.2.3数据标注1.2.4数据增强1.2.5数据集构建 1.3大模型Tuning技术原理 Prompt-Tuning/Instruction-Tuning/P-Tuning⭐⭐⭐⭐⭐1.4大模型全参数微调技术原理DeepSpeed(⭐⭐⭐)1.5大模型CoT/ToT/GoT/AoT 技术(⭐⭐⭐)1.6大模型DPO技术核心原理(⭐⭐⭐) 2.实战项目⭐⭐⭐⭐⭐2.1咕泡AI第六期8h⭐⭐⭐⭐⭐2.2微调项目⭐⭐⭐⭐⭐2.3就业必会⭐⭐⭐⭐⭐ 一.前言⭐⭐⭐⭐⭐ 1.适合人群 **IT转⾏JAVA/C/PHP等语⾔ ** 具有1-3年左右编程⼯作经验对NLP感兴趣或有业务需求 IT兴趣爱好者拒绝平庸谋求突破 在⾃⼰多年积累的领域有⾜够的经验想将⼈⼯智能 完美应⽤在NLP领域。 2.合集目的 ** ️ 本合集一切为了就业3星之内熟悉4星了解五星必会。** ** ** 想要快速完成学习先看2星再看4星5星。 3.就业必会 会基础的python会用pytora会用HUface会微调 说白了就是微调和调用API 二.基础了解⭐⭐⭐ 1.深度学习的基本概念⭐⭐ 深度学习是一种模拟人脑神经网络结构的机器学习算法它能够自动提取数据的高层次抽象特征并在大数据环境下展现出强大的学习能力和泛化性能。 1.1核心概念 多隐藏层结构深度学习模型由多个隐藏层组成每个隐藏层可以学习到数据的不同抽象级别的特征形成端到端的特征提取能力。 隐藏层结构 端到端学习深度学习模型可以直接从原始数据出发通过反向传播算法自动学习数据的高层次特征表示不需要依赖于人工设计的特征。 端到端学习 强大的泛化能力通过多层次特征的组合学习深度学习模型可以捕获数据中复杂的潜在模式在大规模数据集上展现出优异的泛化性能。 泛化能力 1.2核心算法原理 人工神经网络是深度学习的基础通过模拟生物神经网络的结构和功能构建由输入层、隐藏层和输出层组成的多层感知机模型。 人工神经网络 卷积神经网络是一种特殊的神经网络主要应用于图像处理和分类任务通过卷积核对输入图像进行卷积操作以提取图像的特征。 卷积神经网络 循环神经网络主要应用于处理序列数据如时间序列分析、自然语言处理等通过循环连接实现对序列数据的建模。 1.3数学模型和具体操作步骤 深度学习的数学模型通常涉及向量、矩阵运算、微积分、概率论与统计等数学知识。具体操作步骤包括数据预处理、网络结构设计、参数初始化、前向传播、反向传播、权重更新等。 1.4应用领域 深度学习已经广泛应用于计算机视觉、自然语言处理、语音识别、医疗诊断、金融预测等多个领域成为现代人工智能技术的核心。 2.深度学习经典模型概览⭐⭐ 深度学习领域中有许多经典模型它们各自在不同的应用场景中发挥着重要作用。以下是一些广为人知的深度学习模型及其特点 卷积神经网络CNNCNN是专为处理图像数据设计的神经网络广泛应用于图像识别和处理任务。经典的CNN架构包括LeNet、AlexNet、VGG、GoogLeNet等。 卷积神经网络 循环神经网络RNNRNN适用于处理序列数据如文本和语音。它通过循环连接来捕捉时间序列中的依赖关系。LSTM和GRU是RNN的变种它们通过门控机制改善了RNN处理长距离依赖的能力。 循环神经网络 生成对抗网络GANGAN由两个网络组成一个生成器和一个判别器通过博弈学习生成高质量的数据。DCGAN、WGAN、SAGAN等是GAN的变体广泛应用于图像生成和编辑。 生成对抗网络 TransformerTransformer模型基于自注意力机制不使用循环结构能够处理长距离依赖问题。它在自然语言处理任务中表现出色如BERT、GPT等。 Transformer模型 序列到序列模型Seq2SeqSeq2Seq模型用于处理序列数据的转换任务如机器翻译和图像字幕。它通常结合注意力机制来提高模型的性能。 序列到序列模型 强化学习强化学习模型如Deep Q Network和Policy Gradient等通过与环境互动来学习最优策略广泛应用于游戏和机器人控制等领域。自然语言处理NLPNLP模型如Word Embeddings、Word Phrase Embedding、Text Classification等用于处理文本数据提取语义信息。 NLP 计算机视觉Computer Vision除了CNN外还有ResNets、Inception等网络模型它们通过残差连接和金字塔结构等创新设计进一步提升了计算机视觉任务的性能。 计算机视觉 其他模型如Variational Autoencoders (VAEs) 和 Siamese Networks 等它们在不同的应用场景中有着独特的优势和用途。 这些模型的共同特点是通过深层次的网络结构来学习数据的高层次表示从而实现复杂的任务。随着深度学习技术的不断进步新的模型和架构持续涌现推动着人工智能领域的发展。 3.深度学习模型优化策略概览⭐⭐⭐ 深度学习模型优化是一个复杂的过程涉及到多个方面的调整和改进。以下是一些关键的优化策略 3.1数据预处理 数据预处理是优化深度学习模型的第一步包括数据清洗、归一化、标准化和增强等方法。这些步骤可以提高模型的输入质量减少噪声和误差从而提高模型的性能。 数据预处理 3.2模型选择与结构调整 选择合适的模型结构对于深度学习模型的优化至关重要。根据问题的特点可以选择卷积神经网络CNN、循环神经网络RNN等不同的网络结构。此外调整网络结构如增加或减少层数、调整隐藏单元数量等也可以优化模型的性能。 CNN结构 3.3优化算法选择 选择合适的优化算法可以加速模型的训练过程。常用的优化算法包括梯度下降、Adam、RMSprop等。不同的优化算法适用于不同的问题和数据集因此需要根据具体情况进行选择。 梯度下降 3.4正则化方法 正则化方法可以防止模型过拟合提高模型的泛化能力。常见的正则化方法包括L1、L2正则化和Dropout等。 L2正则化 3.5超参数调整 超参数调整是优化深度学习模型的另一个重要方面。学习率、批量大小、迭代次数等超参数对模型的训练过程和最终性能有着重要影响。通过实验和调整这些超参数可以找到最佳的组合以提高模型的性能。 3.6模型评估与调试 模型评估和调试是优化过程中的重要步骤。通过评估模型在验证集上的性能可以发现模型的不足之处并进行相应的调整。使用交叉验证、多种评估指标和可视化工具等方法可以帮助进行模型评估和调试。 以上是深度学习模型优化的一些关键策略。在实际应用中可能需要根据具体情况灵活运用和调整这些策略以达到最佳的优化效果。 3.7深入研究 3.7.1如何根据数据集选择合适的深度学习模型结构 选择合适的深度学习模型结构是一个关键的问题它直接影响着模型的性能和训练效果。以下是一些帮助选择合适神经网络结构的指导原则 任务目标首先要明确你的任务目标是什么例如图像分类、语音识别、机器翻译等。不同的任务需要不同类型的神经网络结构。数据集了解你的数据集的特点包括数据的类型、维度、数量等。这将有助于确定是否需要使用卷积神经网络、循环神经网络等特定结构。模型复杂度根据任务的复杂度和计算资源的限制选择合适的模型复杂度。过于复杂的模型可能会导致过拟合而过于简单的模型可能无法充分学习数据的特征。网络架构根据任务的特点选择适当的网络架构。例如在图像分类任务中常用的网络架构包括卷积神经网络CNN和深度残差网络ResNet。在自然语言处理任务中常用的网络架构包括循环神经网络RNN和Transformer。激活函数选用适当的激活函数来引入非线性以便神经网络可以学习复杂的特征表达。常用的激活函数有ReLU、Sigmoid和Tanh等。正则化和优化算法考虑是否需要在神经网络中引入正则化技术例如L1和L2正则化以防止过拟合。选择合适的优化算法如随机梯度下降SGD和Adam以提高训练效果和收敛速度。超参数调优根据经验或使用网格搜索、随机搜索等方法对神经网络的超参数进行调优以找到最佳的结构。 最后建议尝试不同的网络结构并通过交叉验证等方法进行模型比较和评估以选择最合适的神经网络结构。 3.7.2为什么要对数据进行归一化和标准化处理 归一化和标准化处理的必要性 在机器学习和数据科学中归一化和标准化处理是常见的数据预处理步骤它们对于提高模型的性能和稳定性至关重要。以下是进行这些处理的几个主要原因 加速收敛在使用梯度下降等优化算法时归一化或标准化可以加快模型参数的收敛速度。这是因为归一化后的数据使得优化算法的步长更加均匀避免了因特征尺度不一致而导致的缓慢收敛。防止梯度消失和爆炸在深层神经网络中梯度可能会因为特征尺度的巨大差异而消失或爆炸影响模型的训练稳定性。归一化有助于缓解这些问题确保梯度能够有效地传播。提高模型稳定性归一化可以减少不同特征之间的比例差异避免模型对某些特征过度敏感从而提高模型的稳定性。提升模型泛化能力通过减少模型对训练数据的依赖程度归一化有助于提升模型的泛化能力使模型在未知数据上的表现更加稳健。解决量纲问题归一化和标准化可以消除不同特征之间的量纲影响使得所有特征在同一数量级上便于进行综合对比评价。避免数值问题在某些算法中过大的数值可能会导致计算错误或数值不稳定。归一化可以将数据缩放到一个适当的范围内避免这些问题。改善距离计算在使用基于距离的算法如KNN时归一化可以确保所有特征对距离的贡献是公平的避免某些特征因为尺度过大而主导整个距离计算。 综上所述归一化和标准化处理是数据预处理中不可或缺的步骤它们对于提高模型的性能和稳定性有着重要的作用。在实际应用中根据具体问题和模型的需求选择合适的归一化或标准化方法是非常重要的。 3.8什么是正则化方法及其在防止过拟合中的作用 3.8.1正则化方法概述 正则化方法是一种用于防止过拟合的技术它通过添加额外信息来约束或惩罚模型复杂度。在深度学习中正则化通常通过修改损失函数来实现将一个与模型复杂度相关的项加到原始的损失函数上。常见的正则化方法包括L1正则化Lasso、L2正则化Ridge、Dropout和Early Stopping等。 3.8.2正则化方法在防止过拟合中的作用 正则化方法通过对模型参数施加约束减少模型的复杂度从而防止过拟合。L1正则化通过添加权重绝对值之和的项来约束权重促使一些权重趋向于零有助于实现特征选择。L2正则化通过添加权重平方和的项来约束权重使模型在拟合训练数据时不仅要考虑误差的大小还要考虑权重参数的大小促使模型在所有特征之间分散权重避免对某些特征的过度拟合。 Dropout是一种在网络的训练过程中随机丢弃设置为零一些神经元输出的技术相当于对模型进行了一种随机化的简化减少了模型对特定训练数据的依赖从而提高模型的泛化能力。 ![ Early Stopping是一种在模型训练过程中监控验证集的表现一旦模型在验证集上的表现不再提升时停止训练的方法它可以防止模型继续学习训练数据中的噪声从而避免过拟合。 综上所述正则化方法通过不同的机制减少模型的复杂度提高模型的泛化能力有效防止过拟合。 4.深度学习GPU原理与应用方法⭐⭐ 4.1GPU在深度学习中的作用 GPUGraphics Processing Unit图形处理单元最初设计用于处理图形渲染任务但随着计算能力的提升现在的GPU也被广泛应用于通用计算任务特别是深度学习。深度学习模型通常涉及大量的矩阵运算这些运算在CPU上执行效率较低而GPU的并行计算能力可以大幅加速这类计算。GPU拥有成千上万个计算核心可以同时处理多个数据集从而显著缩短模型训练时间。 4.2GPU的架构原理 GPU的架构设计主要是为了图形渲染但其并行处理能力使其适用于深度学习。GPU通常由多个流处理器Streaming Multiprocessor, SM组成每个SM包含多个CUDA核心或流处理器Streaming Processor, SP。这些核心可以同时执行多个计算任务实现高效的并行计算。GPU还配备了专用的高速内存VRAM用于存储模型参数和数据以及高速的显存带宽确保数据能够迅速传输。 GPU架构 4.3GPU在深度学习中的应用方法 在深度学习中GPU的应用方法主要包括以下几点 数据并行将数据集分割成多个子集每个GPU处理一个子集然后将结果合并以更新模型参数。模型并行将模型的不同部分分布在不同的GPU上每个GPU处理模型的一部分然后通过高速通信网络交换信息。混合精度训练使用半精度浮点数FP16进行计算以减少内存使用量和提高计算速度同时保持较高的精度。分布式深度学习使用多台机器上的多个GPU进行训练进一步提高训练速度和模型的规模。 4.4实际应用案例 在实际应用中例如使用TensorFlow或PyTorch等深度学习框架时可以通过简单的配置将模型和数据迁移到GPU上利用GPU的并行计算能力加速训练过程。例如可以通过.cuda()方法将模型、数据和损失函数迁移到GPU上然后使用GPU进行训练。 4.5GPU原理 GPU架构GPU拥有成百上千个小核心这些核心被组织成流处理器能够并行执行相同的指令从而加速计算18。并行处理能力与CPU相比GPU的并行性使其在处理大规模数据和执行复杂算法时表现出色可以同时处理多个数据元素加速矩阵运算、图像处理、机器学习和深度学习等任务 4.6结论 GPU在深度学习中扮演着重要角色其并行计算能力和专用的硬件设计使其成为加速深度学习模型训练的关键工具。通过合理的应用方法可以充分利用GPU的优势提高深度学习的效率和效果。 5.Transformer模型的核心原理(NLP入门 )⭐⭐⭐⭐ 5.0Transformer模型的核心原理 Transformer模型是一种基于注意力机制的深度学习模型它在自然语言处理NLP领域取得了显著的成果。Transformer模型的核心原理包括自注意力机制、多头注意力、位置编码、编码器和解码器结构等。 5.1Transformer整体结构 从图中可以看出整体上Transformer由四部分组成 Inputs : Inputs WordEmbedding(Inputs) PositionalEmbeddingOutputs:_ OuputsWordEmbedding(Outputs)PositionalEmbedding_ 3.** Encoders stack** : 由六个相同的Encoder层组成除了第一个Encoder层的输入为Inputs其他Encoder层的输入为上一个Encoder层的输出 4.** Decoders stack** : 由六个相同的Decoder层组成除了第一个Decoder层的输入为Outputs和最后一个Encoder层的输出其他Decoder层的输入为上一个Decoder层的输出和最后一个Encoder层的输出 如下图所示在更高的层级上来理解Encoder和Decoder层之间的输入和输出的关系可以更直观。 而Encoder层和Decoder层的内部组成之间的差异如下图所示。每一个Encoder层都包含了一个Self-Attention子层和一个Feed Forward子层。每个Decoder层都包含了一个Self-Attention子层、一个Encoder-Decoder Attention子层和一个Feed Forward子层。Encoder层和Decoder层之间的差别在于Decoder中多了一个Encoder-Decoder Attention子层而其他两个子层的结构在两者中是相同的。 举例说明 首先输入源语“I arrived at the ” 第一层 self-attention 然后第二层 self-attention,输入是上一层attention的结果 然后第三层 self-attention输入是上一层的attention结果。 这样 见过三次多头attention后,得到输入句子的句法树。 完了Decoder是 start 开始拿它与encoder最后的输出进行attention经过多次的attention得到输出。 第二个输出时会把decoder上一步的输出也拿来一起attention. 5.2Self-Attention 2.1 为什么选择Self-Attention 首先通过一个简单的例子来简单说明一下self-Attention这种机制较之传统的序列模型的优势所在。 比如我们当前要翻译的句子为_** The animal didn’t cross the street because ****it was too tired在翻译it时它究竟指代的是什么呢要确定it指代的内容毫无疑问我们需要同时关注到这个词的上下文语境中的所有词在这句话中重点为animal, street, tired然后根据常识我们知道只有animal才会tired所以确定了it指代的是animal。 如果将tired改为narrow_那很显然it**应该指的是_street因为只有street才能用narrow_修饰。 Self-Attention机制在对一个词进行编码时会考虑这个词上下文中的所有词和这些词对最终编码的贡献再根据得到的信息对当前词进行编码这就保证了在翻译_it时在它上下文中的**animal, street, tired**都会被考虑进来从而将it正确的翻译成animal。_ 下图是模型的最上一层(下标0是第一层5是第六层)Encoder的Attention可视化图。这是tensor2tensor这个工具输出的内容。我们可以看到 在编码 **it **的时候有一个Attention Head(后面会讲到)注意到了Animal因此编码后的 **_it _**有 **_Animal _**的语义。 Self-Attention的优势不仅仅在于对词语进行编码时能充分考虑到词语上下文中的所有信息还在于这种机制能够实现模型训练过程中的并行这使得模型的训练时间能够较传统的序列模型大大缩短。 传统的序列模型由于t时刻的状态会受到t−1时刻状态的影响所以在训练的过程中是无法实现并行的只能串行。而Self-Attention模型中整个操作可以通过矩阵运算很容易的实现并行。 2.2 Self-Attention结构 为了能更好的理解Self-Attention的结构首先介绍向量形式的Self-Attention的实现再从向量形式推广到矩阵形式。 对于模型中的每一个输入向量(第一层的输入为词语对应的Embedding向量如果有多层则其它层的输入为上一层的输出向量) 首先我们需要根据输入向量生成三个新的向量Q(Query)、K(Key)、V(Value) 其中Query向量表示为了编码当前词需要去注意(attend to)的其他词(包括当前词语本身)Key向量表示当前词用于被检索的关键信息而Value向量是真正的内容。 三个向量都是以当前词的Embedding向量为输入经过不同的线性层变换得到的。 下面以具体实例来理解Self-Attention机制。比如当我们的输入为_thinking和machines_时首先我们需要对它们做Word Embedding得到对应的词向量表示 x1, x2再将对应的词向量分别通过三个不同的矩阵进行线性变换得到对应的向量q1,k1,v1和q2,k2,v2。 为了使得Query和Key向量能够做内积模型要求WK、WQ的大小是一样的而对WV的大小并没有要求。 q1x1∗WQ1,k1x1∗WK1,v1x1∗WV1 q1x1∗W1Q,k1x1∗W1K,v1x1∗W1V q2x2∗WQ2,k2x2∗WK2,v2x2∗WV2 q2x2∗W2Q,k2x2∗W2K,v2x2∗W2V图中给出了上述过程的可视化在得到所有的输入对应的qi、ki、vi qi、ki、vi向量后就可以进行Self-Attention向量的计算了。如下图所示当我们需要计算_thinking_对应的attention向量时首先将q1和所有输入对应的ki做点积分别得到不同的Score Score Score1q1∗k1 Score2q1∗k2如下图所示再对Score值做scale操作通过除以√dk将score值缩小这样能使得score值更平滑在做梯度下降时更稳定有利于模型的训练。再对得到的新的Score值做Softmax利用Softmax操作得到的概率分布对所有的操作得到的概率分布对所有的v_{i}进行加权平均得到当前词语的最终表示 进行加权平均得到当前词语的最终表示z_{1}。对_machines_的编码和上述过程一样。 z1Softmax(Score1,Socre2)∗[v1v2]T z1Softmax(Score1,Socre2)∗[v1v2]T如果我们以向量形式循环输入所有词语的Embedding向量得到它们的最终编码这种方式依然是串行的而如果我们把上面的向量计算变为矩阵的运算则可以实现一次计算出所有词语对应的最终编码这样的矩阵运算可以充分的利用电脑的硬件和软件资源从而使程序更高效的执行。 下图所示为矩阵运算的形式。其中X为输入对应的词向量矩阵WQ、WK、WV为相应的线性变换矩阵Q、K、V为X经过线性变换得到的Query向量矩阵、Key向量矩阵和Value向量矩阵 接下来再利用Q、K、V Q、K、V计算ScoreScore矩阵通过将ScoreScore矩阵除以dk−−√dk进行ScaleScale操作再对结果按行进行Softmax Softmax利用得到的概率分布得到最后的编码矩阵具体过程的可视化如下图所示。 2.3 Scaled Dot-Production Attetntion __Scaled Dot-Product Attention__其实是在上一节的attention的基础上加入了__scale__和__mask__操作进行优化具体结构如下图所示。首先对于__scale__操作缩放因子的加入是考虑到Q∗K Q∗K的结果矩阵中的值可能会很大除以一个缩放因子可以使值变小这样模型在做梯度下降时可以更加稳定。__mask__操作主要是为了屏蔽掉输入中没有意义的部分(padding mask)和针对特定任务需要屏蔽的部分(sequence mask)从而降低其对最后结果的影响。这两种不同的mask方法在后面会详细说明。 2.4 Multi-Head Attention Scaled dot-product attention只通过一组线性变换矩阵WQ、WK、WV WQ、WK、WV得到一组Q、K、V来实现对词语上下文信息的关注。而Multi-Head Attention提出我们可以通过定义多组线性变换矩阵(WQi,WKi,WVi)得到多组(Qi,Ki,Vi)它们分别关注输入的不同部分的上下文信息这样使得最后的编码中关注的信息能够更多。换句话说multi-head attention就是针对输入的不同部分分别做scaled dot-product attention再将得到的多个输出拼接成最终的输出矩阵。值得注意的一点是在Multi-head Attention中每个head的输入都只是模型的输入词向量矩阵的一部分。在Transformer中每个head的输入都是从词向量矩阵的最后一维进行切分出来的一部分例如模型输入的词向量矩阵大小为N∗dmodelN∗dmodelTransformer中Multi-head Attention中head的数量设置为8则每个head的输入矩阵大小为N∗(dmodel/8) 上图给出了在不同head中的attention操作由图中可知每个head中都存在一组WQi,WKi,WVi WiQ,WiK,WiV通过与输入进行矩阵相乘运算可以得到一组对应的(Qi,Ki,Vi)并由此得到head的输出zi。在单个head中进行的attention操作与上一节所讲的完全相同。最后多个head得到的结果如下图所示。 而最后我们所需要的输出不是多个矩阵而是单个矩阵所以最后多个head的输出都在矩阵的最后一个维度上进行拼接再将得到的矩阵与一个矩阵WO WO相乘这一次线性变换的目的是对拼接得到的矩阵进行压缩以得到最理想的输出矩阵。 下图所示为完整的Multi-head Attention过程 那么我们如何来理解多个head分别注意到的内容呢下面给出两个图来举例说明。第一个图给出了在翻译it时两个head分别注意到的内容从中可以很明显的看到第一个head注意到了animal而第二个head注意到了tired这就保证了翻译的正确性。 5.3The Residual Connection 残差连接 在Transformer中每个Multi-Head Attention层和Feed Forward层都会有一个残差连接然后再接一个Layer Norm层。残差连接在Encoder和Decoder中都存在且结构完全相同。如下图所示一个Encoder中Self-Attention层的输出z1,z2和输入(x1,x2)相加作为LayerNorm层的输入。残差连接本身有很多好处但并不是Transformer结构的重点这里不做详述。 5.4Positional Encoding 我们在Transformer中使用Self-Attention的目的是用它来代替RNN。RNN只能关注到过去的信息而Self-Attention通过矩阵运算可以同时关注到当前时刻的上下文中所有的信息这使得其可以实现和RNN等价甚至更好的效果。同时RNN作为一种串行的序列模型还有一个很重要的特征就是它能够考虑到单词的顺序(位置)关系。在同一个句子中即使所有的词都相同但词序的变化也可能导致句子的语义完全不同比如”北京到上海的机票”与”上海到北京的机票”它们的语义就有很大的差别。而Self-Attention结构是不考虑词的顺序的如果不引入位置信息前一个例子两句话中中的北京会被编码成相同的向量但实际上我们希望两者的编码向量是不同的前一句中的北京需要编码出发城市的语义而后一句中的北京则为目的城市。换言之如果没有位置信息Self-Attention只是一个结构更复杂的词袋模型。所以在词向量编码中引入位置信息是必要的。 为了解决这个问题我们需要引入位置编码也就是t时刻的输入除了Embedding之外(这是与位置无关的)我们还引入一个向量这个向量是与t有关的我们把Embedding和位置编码向量加起来作为模型的输入。这样的话如果两个词在不同的位置出现了虽然它们的Embedding是相同的但是由于位置编码不同最终得到的向量也是不同的。 位置编码有很多方法其中需要考虑的一个重要因素就是需要它编码的是相对位置的关系。比如两个句子”北京到上海的机票”和”你好我们要一张北京到上海的机票”。显然加入位置编码之后两个北京的向量是不同的了两个上海的向量也是不同的了但是我们期望Query(北京1)∗Key(上海1)却是等于Query(北京2)∗Key(上海2)的。 由上图可知位置编码其实是以加法的形式将词语的Embedding向量加上其位置向量作为最后的输出这保证了当同一个词出现在句子的不同位置时其对应的词向量表示是不同的。在Transformer中的positional 具体实现上首先要明确的是在Transformer中的的positional encoding矩阵是固定的当每个输入样本的大小为maxlen∗dmodel时则我们需要的positional enccoding矩阵的大小同样为maxlen∗dmodel且这个位置编码矩阵被应用于和所有输入样本做加法以此将位置信息编码进样本的词向量表示。接下来说一下如何得到这个positional encoding矩阵。 当我们需要的positional encoding矩阵PE的大小为maxlen∗dmodel时首先根据矩阵中每个位置的下标(i,j) (i,j)按下面的公式确定该位置的值 PE(i,j)i10000(j−j%2)/dmodel PE(i,j)10000(j−j%2)/dmodeli 接着在偶数位置使用正弦编码在奇数位置使用余弦编码 PE(i,2j)sin(PE(i,2j)) PE(i,2j1)cos(PE(i,2j1)) 为什么这样编码就能引入词语的位置信息呢如果只按照第一个公式那样根据输入矩阵的下标值进行编码的话显然编码的是词汇的绝对位置信息即__绝对位置编码__。但词语的相对位置也是非常重要的这也是Transformer中引入正弦函数的原因进行__相对位置编码__的原因。正弦函数能够表示词语的相对位置信息主要是基于以下两个公式这表明位置kp kp的位置向量可以表示为位置k k的特征向量的线性变化这为模型捕捉单词之间的相对位置关系提供了非常大的便利。 sin(αβ)sinαcosβcosαsinβ cos(αβ)cosαcosβ−sinαsinβ 5.5Layer Norm 假设我们的输入是一个向量这个向量中的每个元素都代表了输入的一个不同特征而LayerNorm要做的就是对一个样本向量的所有特征进行Normalization这也表明LayNorm的输入可以只有一个样本。 假设一个样本向量为Xx1,x2,…,xn Xx1,x2,…,xn则对其做Layer Normalization的过程如下所示。先求不同特征的均值和方差再利用均值和方差对样本的各个特征值进行Normalization操作。 Layer Normalization的方法可以和Batch Normalization对比着进行理解因为Batch Normalization不是Transformer中的结构这里不做详解。 5.6 Mask Mask顾名思义就是掩码可以理解为对输入的向量或者矩阵中的一些特征值进行掩盖使其不发挥作用这些被掩盖的特征值可能是本身并没有意义(比如为了对齐而填充的’0’)或者是针对当前任务为了做特殊处理而特意进行掩盖。 在Transformer中有两种mask方法分别为__padding mask__和__sequence mask__这两种mask方法在Transformer中的作用并不一样。__padding mask__在Encoder和Decoder中都会用到而__sequence mask__只在Decoder中使用。 6.1 padding mask 在自然语言处理的相关任务中输入样本一般为句子而不同的句子中包含的词汇数目变化很大但机器学习模型一般要求输入的大小是一致的一般解决这个问题的方法是对输入的单词序列根据最大长度进行__对齐__即在长度小于最大长度的输入后面填’0’。举个例子当maxlen20 maxlen20而我们输入的矩阵大小为12∗dmodel12∗dmodel时这是我们对输入进行对齐就需要在输入的后面拼接一个大小为8∗dmodel8∗dmodel的零矩阵使输入的大小变为maxlen∗dmodel maxlen∗dmodel。但显然这些填充的’0’并没有意义它的作用只是实现输入的对齐。在做attention时为了使attention向量不将注意力放在这些没有意义的值上我们需要对这些值做__padding mask__。 具体来说做__padding mask__的方法是将这些没有意义的位置上的值置为一个很小的数这样在做softmax softmax时这些位置上对应的概率值会非常小接近于0其对最终结果的影响也会降低到最小。 6.2 sequence mask 前面已经说过在Transformer中__sequence mask__只用在Decoder中它的作用是使得Decoder在进行解码时不能看到当前时刻之后的的信息。也就是说对于一个输入序列当我们要对t t时刻进行解码时我们只能考虑(1,2,…,t−1)时刻的信息而不能考虑之后的(t1,…,n)时刻的信息。 具体做法是产生一个下三角矩阵这个矩阵的上三角的值全为0下三角的值全为输入矩阵对应位置的值这样就实现了在每个时刻对未来信息的掩盖。 5.7.Encoder and Decoder stacks 上面几节中已经介绍了Transformer的主要结构这一节将在此基础上从整体上再次理解一下Tranformer的结构 如上图所示Transformer由6个Encoder层和6个Decoder层组成其中各个Encoder层的结构完全相同各个Decoder层的结构也是完全一样的。而Decoder层和Encoder层之间的差别在于Decoder层中多了一个Encoder-Decoder Attention子层和Add Normalize子层这一层的输入为Decoder层的上一个子层的输出和Encoder层的最终输出其中Encoder层的最终输出作为K和VDecoder层中上一个子层的输出作为Q。 参考内容https://blog.csdn.net/weixin_48185819/article/details/107208513 5.0深入研究 5.1Transformer模型中自注意力机制是如何工作的 5.2Transformer模型中自注意力机制的工作原理 Transformer模型中的自注意力机制是一种特殊类型的注意力机制它允许模型在处理序列数据时考虑序列中所有其他位置的信息。自注意力机制的核心思想是为每个位置分配一个权重突出重要的上下文信息。它包括三个主要部分查询Query、键Key和值Value。 计算过程 查询、键和值的获取首先输入序列例如词向量矩阵通过线性变换得到查询Q、键K和值V。这些向量是通过将输入向量与三个不同的权重矩阵相乘得到的权重矩阵是学习得到的参数。注意力分数的计算接着模型计算每个Query与所有Key之间的点积以衡量它们之间的相似度。然后将这些点积的结果除以一个缩放因子通常是Key向量维度的平方根并应用softmax函数来获得最终的注意力权重。这一步的结果是一个注意力分数矩阵表示输入序列中每个元素对其他所有元素的关注程度。加权和并输出最后模型将上一步得到的注意力权重应用于Value向量计算加权和。这样对于输入序列中的每个位置模型都生成了一个加权的Value向量这些向量合在一起形成了自注意力层的输出它们编码了输入序列中每个位置关于整个序列的上下文信息。 优势 自注意力机制的优势在于它能够直接计算序列中任意两个位置之间的关系使得模型能够有效地捕获长距离依赖信息。此外由于自注意力机制在处理序列数据时不需要按顺序迭代计算因此可以高效地并行处理整个序列大大加快了训练和推理速度。 5.3为什么要引入多头注意力机制 多头注意力机制的引入原因 多头注意力机制是深度学习中的一种高级注意力机制它在Transformer模型中起到了至关重要的作用。引入多头注意力机制的主要原因包括以下几点 捕捉多维度特征多头注意力机制通过并行计算多个注意力分布可以捕捉输入序列中的多维度特征和信息。每个注意力头可以学习捕捉不同的上下文信息这样模型在进行计算时可以利用更丰富的信息。 增强模型表达能力通过分割子语义空间多头注意力机制让模型可以关注不同维度的信息从而提高了模型的表达能力和注意力分配。 并行计算效率多头注意力机制的计算过程可以并行化这不仅增强了模型的表达能力而且提高了计算效率符合现代硬件架构。 适应复杂任务多头注意力机制能够提供更加丰富和多样的信息表示从而增强了模型的表示能力和对复杂任务的适应性。 学习不同位置关系通过同时处理多个不同位置的关系多头注意力机制能够提供更加丰富和多样的信息表示从而增强了模型的表示能力和对复杂任务的适应性。 综上所述多头注意力机制的引入显著提升了模型的性能使其能够更好地处理复杂的自然语言处理任务。 5.4Transformer模型中的位置编码有哪些常见的实现方式 位置编码的常见实现方式 位置编码是Transformer模型中的关键组成部分它负责为序列中的每个位置赋予一个独特的编码以便模型能够理解序列中各个元素的相对或绝对位置。以下是一些常见的位置编码实现方式 1. 三角函数式位置编码Sinusoidal Position Encoding 这种方法是最早在原始Transformer论文中提出的它使用正弦和余弦函数来生成位置编码。具体来说对于一个给定的位置pos和特征向量的维度位置i位置编码的计算公式为 [ PE(pos, 2i) \sin\left(\frac{pos}{10000^{\frac{2i}{d_{\text{model}}}}}\right) ] [ PE(pos, 2i1) \cos\left(\frac{pos}{10000^{\frac{2i}{d_{\text{model}}}}}\right) ]其中d_model是模型的维度。这种方法的特点是具有显式的生成规律因此具有一定的外推算性。 2. 可学习式位置编码 在某些情况下位置编码可以作为模型的可学习参数。例如在BERT和GPT等模型中位置编码是与词嵌入向量一起学习的它们都是模型的参数可以通过反向传播进行优化。 3. 相对位置编码 相对位置编码不是直接编码每个位置而是编码两个位置之间的相对距离。例如对于一个给定的位置其与其他位置的相对位置编码将表示它们之间的距离或关系。这种方法可以帮助模型捕获长距离的依赖关系。 4. 旋转位置编码RoPE RoPE是一种相对位置编码的变种它通过乘法操作而不是加法操作将位置编码应用到注意力机制中。RoPE在进行Attention计算时不同位置的编码进行点击运算从而在结果中体现出相对位置关系。 5. ALiBi位置编码 ALiBi是另一种相对位置编码的实现方式它通过在注意力权重中直接添加基于两个位置相对距离的权重而不是在输入端添加位置编码。 这些方法各有优缺点选择哪种方法取决于具体的应用场景和模型设计需求。在实际应用中研究者和工程师可能会根据任务的特点和模型的复杂度来选择最合适的位置编码实现方式。 三.大模型基础⭐⭐⭐⭐ 1.GPT系列模型核心原理LLaMA系列模型核心原理⭐⭐⭐ 1.1GPT系列模型核心原理 GPT1/GPT2/GPT3/GPT4/InstructGPT GPTGenerative Pre-trained Transformer是一系列由OpenAI开发的预训练语言模型它们在自然语言处理NLP领域取得了显著的进展。以下是各个版本GPT模型的简要概述 GPT-1 2018年发布是第一个使用Transformer架构的大规模语言模型。它使用了12层Transformer拥有1.17亿参数。GPT-1主要通过预测下一个词的方式来生成文本。 GPT-2 2019年发布是一个更大的模型拥有15亿参数。它使用了48层Transformer。GPT-2在多个NLP任务上展示了卓越的性能包括文本摘要、翻译和问答等。 GPT-3 2020年发布是一个巨大的模型拥有1750亿参数。它使用了96层Transformer。GPT-3的规模和能力使其在各种NLP任务上都取得了突破性的表现包括文本生成、代码生成、对话系统等。GPT-3引入了“少样本学习”和“零样本学习”的概念能够根据给定的指令或示例生成文本。 GPT-4 GPT-4依旧是一个基于Transformer风格的预训练模型用于预测文档中的下一个token使用公开可用数据(如互联网数据)和第三方提供商授权的数据利用人类反馈的强化学习(RLHF)对模型进行微调 InstructGPT InstructGPT是GPT系列的一个变体它专注于提高模型遵循指令的能力。它通过在人类标注的指令数据上进行微调使得模型能够更好地理解和执行用户的指令。InstructGPT旨在提高模型的安全性和有用性减少生成不当或不准确内容的风险。 1.2LLaMA系列模型核心原理LLaMA/LLaMA2/Alpaca/Vicuna/BaiChuan2 LLaMALarge Language Model Meta AI是由Meta前身为Facebook开发的一种大规模语言模型旨在提高自然语言处理NLP任务的性能。LLaMA基于Transformer架构并经过大规模数据训练以便在多种语言任务中表现出色。LLaMA的核心目标是在给定的计算预算下通过在更多数据上训练较小模型来实现最佳性能而不是单纯追求模型规模的增大 LLaMA LLaMALarge Language Model Attention它使用Transformer架构拥有大规模的预训练模型参数。它通过学习文本的语义和语法信息在自然语言处理任务上取得了优异的性能。 LLaMA2 LLaMA2是LLaMA模型的进化版本。它在模型架构和训练策略上进行了优化拥有更高效的模型规模和性能。它在多个方面相较于前一代模型有所提升。 Alpaca Alpaca是LLaMA系列的进一步发展。它采用了改进的Transformer架构和多任务学习策略扩展了模型规模。它在自然语言处理的多个任务上表现出色。 Vicuna Vicuna是LLaMA系列的新成员。它在模型架构和训练策略上进行了创新提升了自然语言理解和生成的能力。它展现出了卓越的性能和高泛化能力。 BaiChuan2 BaiChuan2是谷歌Brain团队与阿里巴巴合作开发的模型。它继承了LLaMA系列的优秀特性并针对中文自然语言处理任务进行了深入研究和优化。它在中文自然语言处理任务上取得了令人瞩目的成果。 1.3优秀开源大模型核心原理BLOOMZ/ChatGLM3/Qwen1.5 BloomZ BloomZ继承了Bloom的多语言处理能力。它使用Transformer架构优化了多语言和编程语言的处理。它以开源和可访问性为特点便于研究和使用。 ChatGLM3 ChatGLM3是ChatGLM系列中的开源模型。它使用6B参数的强大基础模型具有全面的开源序列支持。它在多个领域的数据集上展现出色性能是10B以下基础模型中的佼佼者。 Qwen1.5 Qwen1.5是通义千问公司发布的千亿级参数模型。它使用分组查询注意力机制支持高达32K的上下文。它兼容多种语言成为全球用户需求的满足者。 2.大模型应用框架LangChain核心原理⭐⭐⭐ 2.1LangChain核心原理 LangChain是一个专门针对大型语言模型LLM应用开发的框架它通过模块化设计、可扩展性和灵活性的设计思路简化了LLM应用的开发过程提高了开发效率。LangChain的核心原理包括以下几个方面 模块化设计LangChain将LLM应用的功能划分为多个模块每个模块负责处理特定的任务降低了开发的复杂性。这些模块包括数据处理组件、模型调用组件、业务逻辑组件和用户交互组件等。 LangChain 可扩展性LangChain支持自定义模块和组件开发者可以根据需求添加新的功能或扩展现有功能以满足不同应用场景的需求。 LangChain 灵活性LangChain允许开发者根据具体应用场景选择合适的模块和组件进行组合实现个性化的LLM应用。这种灵活性使得LangChain能够适应多样化的业务需求。 工作流程LangChain的工作流程包括需求分析、模块选择、配置与集成、测试与优化以及部署与运维。这个流程确保了LLM应用的顺利开发和稳定运行。 核心组件LangChain的核心组件包括数据处理组件、模型调用组件、业务逻辑组件和用户交互组件。这些组件共同协作实现了LLM应用的各项功能。 应用开发LangChain在LLM应用开发中的应用包括简化开发过程、提高开发效率和个性化定制。它通过提供丰富的组件和接口使得开发者可以更加快速地构建LLM应用。 综上所述LangChain通过其模块化、可扩展性和灵活性的设计以及一系列核心组件的支持为开发者提供了一个强大的工具以构建高效、个性化的LLM应用。 2.0深入研究⭐⭐⭐了解 LangChain之所以大火是因为它提供了一系列方便的工具、组件和接口大大降低了 AI 应用开发的门槛也极大简化了大模型应用程序的开发过程。 2.1为什么需要 Langchain 大模型的智能效果令人振奋可是当开发人员试图将大模型这颗“聪明脑”放入应用程序时却发现了前所未有的挑战。 prompt的结构如何标准化如果我想中途随时切换大模型怎样简单方便地操作LLM的输出是非结构化的它如何与结构化的程序接口相互交互预训练模型的知识落后如何让它知道最新的信息如何让这颗大脑拥有记忆如何给这颗“聪明脑”装上“五官”让它能够感知环境输入怎样给这颗“聪明脑”装上“手”和“脚”让它帮我执行具体的任务… LangChain 尝试解决的就是这些问题。 LangChain框架背后的核心思想是将自然语言处理序列分解为各个部分允许开发人员根据自己的需求高效地定制工作流程。 2.2Langchain的核心模块 Langchain有6大核心模块 Models模型是各种类型的模型和模型集成。 Prompts提示包括提示管理、提示优化和提示序列化。Memory记忆用来保存和模型交互时的上下文状态。Indexes索引用来结构化文档以便和模型交互。包括文档加载程序、向量存储器、文本分割器和检索器等。Agents代理决定模型采取哪些行动执行并且观察流程直到完成为止。Chains链一系列对各种组件的调用。 LangChain 通常被用作「粘合剂」将构建 LLM 应用所需的各个模块连接在一起。使用Langchain中不同组件的特性和能力可以构建不同场景下的应用如聊天机器人、基于文档的问答、知识管理、个人助理、Agent智能体等等。 例如使用 Models模块 可以很方便地使用 OpenAI 的模型接口 from LangChain.llms import OpenAI llm OpenAI(temperature0, model_namegpt-3.5-turbo, openai_api_keyOPENAI_APIKEY) res llm(Tell me a joke) print(res)如果需在本地或离线环境下使用大模型需要首先将所需的模型下载至本地通常开源 LLM 与 Embedding 模型可以从 HuggingFace 下载。 再比如使用Index部分涉及的RAG技术可以将特定领域的资料存在向量数据库里在调用大模型时找出相关的部分作为“参考资料”传给大模型以得到更为符合业务要求的回答。 2.3Langchain的学习路径 1、从官方文档入手掌握LangChain的基本概念和使用方法。 2、了解LangChain的6大主要模块。 3、通读官方给出的示例对于各个模块有更加直观的认识。 4、找一个具体的开源项目深入学习提高对LangChain的理解和应用能力。 LangChain是一座桥将混沌的非结构化AI世界与精确的结构化的传统计算机世界连接起来。 就在1月份LangChain团队刚刚宣布,他们的首个稳定版本LangChain v0.1.0正式发布。这个版本集成了模块化设计、服务治理等功能,提供了更完善的文档和示例,使LangChain变得更加易于上手和扩展。这个稳定版本的发布标志着LangChain已然从概念验证阶段进入产品化和成熟化的新阶段。 2.4参考资料 官方文档Introduction | ️ Langchain How to Make Large Language Models Play Nice with Your Software Using LangChain - KDnuggets Zhihu Paper:https://www.zhihu.com/question/609483833/answer/3420895685** 2.5其他语言的LangChain Golang: https://github.com/tmc/langchaingo RubyGitHub - tmc/langchaingo: LangChain for Go, the easiest way to write LLM-based programs in Go Java:https://github.com/langchain4j/langchain4j 2.6开源项目 【Chat Langchain】本地托管的聊天机器人专门针对LangChain文档中的问题回答 GitHub - langchain-ai/chat-langchain 【Langchain Chat】一个用于LangChain Chat的Next.js前端 GitHub - zahidkhawaja/langchain-chat-nextjs: Next.js frontend for LangChain Chat. 【Notion QA】 Notion问答机器人 https://github.com/hwchase17/notion-qa 【知识GPT】为您的文档提供准确的答案和即时引用 https://github.com/mmz-001/knowledge_gpt 【ChatFiles】基于文档的问答 https://github.com/guangzhengli/ChatFiles 【SolidGPT】使用您的代码库进行聊天提出代码库级别的问题并讨论您的需求。 https://github.com/AI-Citizen/SolidGPT 【MindGeniusAI】 使用ChatGPT自动生成思维导图 GitHub - xianjianlf2/MindGeniusAI: Auto generate MindMap with ChatGPT 【Langchain-Chatchat 】可离线部署的检索增强生成 (RAG) 大模型的本地知识库问答应用项目 GitHubhttps://github.com/chatchat-space/Langchain-Chatchat 3.多模态技术⭐⭐⭐ 多模态技术是一种结合多种数据模态进行训练和推理的深度学习模型具有广泛的应用前景。通过模态融合、跨模态表示学习等技术多模态大模型能够更好地处理和理解跨模态数据为人工智能领域的发展带来新的机遇和挑战 3.1经典多模态模型核心原理Vit/CLIP/ALBEF/BLIP 在人工智能领域多模态模型能够同时处理并理解多种类型的数据如文本、图像、声音等。以下是几个经典多模态模型的核心原理 Vision Transformer (ViT) ViT是首个将Transformer架构成功应用于图像识别任务的模型。它将图像分割成多个小块patches将这些小块视为序列元素然后应用Transformer进行处理。ViT的核心原理是利用自注意力机制来捕捉图像内不同区域之间的关系。 Contrastive Language–Image Pre-training (CLIP) CLIP通过大规模的图像和文本对训练学习视觉内容和文本描述之间的关联。它使用对比学习的原理通过比较正负样本对来训练模型识别图像和文本的一致性。CLIP的核心原理是跨模态的语义嵌入空间使得相似的图像和文本在该空间中更接近。 Aligning Vision and Language Backwards and Forwards (ALBEF) ALBEF是一个端到端的多模态模型用于图像和文本的联合表示学习。它通过融合视觉特征和语言特征来提高跨模态的检索和理解能力。ALBEF的核心原理是双向融合机制即从视觉到语言和从语言到视觉的信息流。 Bootstrapped Language Image Pre-training (BLIP) BLIP通过自举的方式进行训练首先使用一个基础模型进行预训练然后不断迭代优化。它结合了图像特征提取和文本特征提取通过交互式学习提高多模态理解能力。BLIP的核心原理是自举学习框架通过迭代过程逐步提升模型对图像和文本关联的把握。 3.2多模态大模型核心原理BLIP-2/LLaVA/Qwen-VL 多模态大模型通过结合不同类型数据的感知能力推动了人工智能在理解和生成多模态内容方面的进步。以下是几个前沿多模态大模型的核心原理 BLIP-2 BLIP-2是BLIP模型的进阶版本专注于提升图像和文本的联合理解与生成能力。它可能采用了更深层次的融合策略和更先进的预训练技术来加强模型的跨模态关联学习。BLIP-2的核心原理可能包括更复杂的注意力机制和更优的跨模态特征表示学习。 LLaVA LLaVALarge Language Visual Artist是一个结合了语言和视觉能力的多模态模型。它旨在通过大规模预训练掌握文本到图像的生成以及图像到文本的描述任务。LLaVA的核心原理可能涉及创新的编码器-解码器架构以及对视觉艺术和语言创造力的深入理解。 Qwen-VL Qwen-VL是Qwen系列在多模态领域的扩展专注于视觉语言任务。它可能结合了强大的视觉识别能力与先进的语言模型以处理如图像描述、视觉问答等任务。Qwen-VL的核心原理可能包括跨模态的注意力机制和联合嵌入空间以实现文本和视觉数据的无缝交互。 多模态模型适用于图像-文本匹配、视觉问答、图像描述生成等任务。 总结来说多模态模型专注于处理和理解图像与文本的结合而GPT ChatLLM专注于文本交互和对话。TensorFlow作为一个多功能平台支持包括这两种模型在内的多种AI应用的开发和部署。每种技术都有其独特的优势和应用场景选择合适的技术取决于具体的任务需求。 四.就业必会⭐⭐⭐⭐⭐ 1.大模型微调基础⭐⭐⭐⭐⭐ 1.0先看个vedio 微调视频介绍13min External Player - 哔哩哔哩嵌入式外链播放器 大模型微调是一种在预训练模型基础上进行调整的方法旨在使模型适应特定的任务或领域。通过微调可以在保留预训练模型的通用知识的同时通过微调顶层来适应特定任务。微调的量取决于预训练语料库和任务特定语料库之间的相似性。 1.1微调技术 微调技术包括Fine tuning、Learnable Regression Adapter (LoRA)、Adapter、Prefix-tuning、P-tuning、Prompt-tuning等。这些方法都有各自的特点例如LoRA通过在预训练模型的顶部添加一个可学习的线性层来实现微调而Adapter通过替换预训练模型中的特定层来改变模型的特 1.2大模型微调的数据收集和处理过程(⭐⭐⭐) 大模型微调的数据收集和处理过程是一个关键步骤它直接影响到微调后模型的性能和应用效果。以下是一些关于大模型微调数据收集和处理过程的要点 1.2.1数据收集 数据收集是微调过程中的首要步骤它涉及到从各种来源收集与任务相关的数据。这些数据可以来自公开数据集、网络抓取、传感器收集等渠道。确保数据的质量和多样性对于构建有效的微调数据集至关重要。在收集数据时应特别注意数据的时效性和相关性以确保数据能够反映预期任务或领域的实际情况. 1.2.2数据预处理 在构建数据集之前需要进行数据清洗、去重、标注等预处理工作。确保数据的准确性和完整性同时进行特征提取和转换以便适应大模型的微调需求。数据预处理的步骤可能包括文本标准化、分词、去除停用词、词干提取等.数据预处理 1.2.3数据标注 对于监督学习任务数据标注是必不可少的。可以借助人工标注、自动标注等方式对数据进行标注以便模型在微调过程中能够学习到更准确的信息。人工标注需要专业知识和细致的工作而半自动化标注可以利用已有的模型进行初步分类再由人工进行校正. 1.2.4数据增强 为了增加数据集的多样性和丰富性可以采用数据增强技术如旋转、翻转、缩放、加噪声等方式对数据进行扩充以提高模型的泛化能力。数据增强提供了相关且具有代表性的训练数据并为有效的微调奠定了基础. 1.2.5数据集构建 构建微调数据集时应考虑数据的领域相关性、质量高、多样性等因素。数据集的规模比预训练数据集小得多但仍然需要确保数据的质量和多样性。在收集和整理数据后可以将自定义数据集与其他开源数据集混合训练以提高模型效果和泛化性. 综上所述大模型微调的数据收集和处理过程是一个复杂而精细的工作需要综合考虑数据的来源、质量、多样性和标注准确性等多个方面以确保微调后的模型能够在特定任务上表现出色。 1.3大模型Tuning技术原理 Prompt-Tuning/Instruction-Tuning/P-Tuning⭐⭐⭐⭐⭐ 视频讲解26minhttps://www.bilibili.com/video/BV1Fu4y1C7tJ/?spm_id_from333.788 Prompt-Tuning 核心原理Prompt-Tuning 是一种微调方法它通过在输入文本前添加特定的提示prompt来引导模型理解任务需求。这种方法不需要改变模型的参数而是通过设计合适的提示来激活模型的知识。应用适用于分类、问答、文本生成等任务。例如在情感分析任务中可以在文本前后添加“该文本表达的情感是”作为提示。 Instruction-Tuning 核心原理Instruction-Tuning 侧重于使用指令性的语言来指导模型完成特定任务。这通常涉及到对模型进行少量参数的更新以更好地响应指令。应用适用于需要模型遵循明确指令的场景如遵循多步骤指令解决问题。 P-Tuning 核心原理P-TuningPrompt Tuning是一种结合了Prompt-Tuning和Instruction-Tuning的方法。它通过在模型的输入中加入可学习的提示参数并在微调过程中更新这些参数以提高模型对特定任务的适应性。应用P-Tuning 通过引入可学习的提示使得模型能够更灵活地适应各种任务同时保持参数更新量较小。 这些技术的优势在于它们不需要对整个模型进行大规模的参数更新从而减少了计算资源的需求并能够快速适应新任务。然而设计有效的提示prompt或指令instruction是这些方法成功的关键需要对任务和模型都有深入的理解。 1.4大模型全参数微调技术原理DeepSpeed(⭐⭐⭐) 大模型全参数微调技术的核心原理涉及到多个方面其中DeepSpeed是一个关键的框架由微软开发专门用于支持大规模模型的训练。以下是DeepSpeed的一些关键特性和原理111216 ZeRO Optimization DeepSpeed的ZeROZero Redundancy Optimizer是一种优化技术它通过减少每个GPU上需要存储的重复数据来减少内存占用。ZeRO分为几个阶段每个阶段都提供了不同程度的内存优化。 ZeRO-Offload ZeRO-Offload是ZeRO技术的扩展它允许将优化器状态和中间激活数据卸载到CPU内存或NVMe存储上从而进一步减少GPU显存使用。 3D Parallelism DeepSpeed支持数据并行、模型并行和流水线并行的组合称为3D并行。这种混合并行策略可以有效地扩展到非常大的模型和数据集。 Mixed Precision Training DeepSpeed支持混合精度训练结合使用FP16半精度浮点数和FP32单精度浮点数来减少内存占用并加速训练同时保持模型的精度。 Sparsity DeepSpeed还提供了稀疏注意力机制允许模型处理长序列输入同时显著提高效率和减少内存占用。 Configurability DeepSpeed提供了丰富的配置选项允许用户根据具体的硬件环境和模型需求来定制训练策略。 Scalability DeepSpeed设计用于在多GPU和多节点上扩展支持从单个GPU到数千个GPU的无缝扩展。 Ease of Use DeepSpeed易于使用与PyTorch紧密集成用户可以轻松地将其集成到现有的PyTorch训练代码中。 DeepSpeed通过这些技术使得在有限的硬件资源上训练和微调大型模型成为可能。它降低了大规模模型训练的内存和计算门槛使得研究人员和开发者能够更高效地利用其可用资源 1.5大模型CoT/ToT/GoT/AoT 技术(⭐⭐⭐) 大模型中的CoTChain of Thought、ToTTree of Thought、GoTGraph of Thought和AoTAbstract Thought是一系列用于提升模型推理能力的技术。以下是对这些技术的详解 CoTChain of Thought CoT是一种提示技术它要求模型在给出最终答案之前显式地输出中间逐步的推理步骤。这种方法可以帮助模型更好地处理复杂的推理任务如算术、常识和符号推理问题。 ToTTree of Thought ToT是CoT的扩展它采用树状的搜索过程来解决问题。在ToT中模型不是简单地按照链式结构生成推理步骤而是在每个节点生成多个候选子节点然后对这些子节点进行评估和选择形成树状的推理路径1920。ToT允许模型探索不同的可能选择分支并在节点进行前后向的探索从而更有效地解决问题。 GoTGraph of Thought GoT技术进一步将ToT的树状结构扩展为图状结构。在GoT中模型的推理过程被视为一个图其中节点表示状态边表示状态之间的转换。GoT通过图状结构来表示问题解决过程中的复杂关系和决策点26。 AoTAbstract Thought AoT技术侧重于抽象层次的推理。它要求模型在进行推理时不仅要考虑具体的步骤和解决方案还要能够进行高层次的抽象思考从而更好地理解和解决问题26。 这些技术的核心思想是让大模型在解决问题时能够进行更加深入和灵活的推理。通过生成中间步骤、探索不同的解决方案、以及进行高层次的抽象思考这些技术有助于提高模型在复杂任务上的性能和可解释性。实际应用中这些技术可以根据具体的任务需求和模型特点进行选择和调整。 1.6大模型DPO技术核心原理(⭐⭐⭐) DPODirect Preference Optimization直接偏好优化是一种用于训练和微调大型语言模型的技术。它的核心原理是直接根据人类的偏好来优化模型而不是通过传统的方式先训练一个奖励模型再使用这个奖励模型通过强化学习RL来优化语言模型。 在实践中DPO可以通过对预训练的语言模型进行微调来实现微调过程中调整模型参数以最小化上述损失函数使模型输出与人类偏好更加一致 DPO技术通过直接利用人类的偏好数据来优化语言模型避免了传统RLHFReinforcement Learning from Human Feedback流程中奖励模型拟合和RL优化的复杂性和不稳定性从而简化了偏好学习的过程 2.实战项目⭐⭐⭐⭐⭐ 2.1咕泡AI第六期8h⭐⭐⭐⭐⭐ https://pan.quark.cn/s/8937f56f7057#/list/share 1.学习pytora基础运用就行) 2.学会第24个HUggingface 2.2微调项目⭐⭐⭐⭐⭐ https://www.bilibili.com/video/BV1ce411J7nZ/?spm_id_from333.337.search-card.all.click chatglm微调/开源大模型微调 2.3就业必会⭐⭐⭐⭐⭐ 会基础的python会用pytora会用HUface会微调 说白了就是微调和调用API
http://www.hkea.cn/news/14405865/

相关文章:

  • 原网站开发新功能湖南营销型网站建设 在线磐石网络
  • 自助建网站哪个好网站维护建设招标
  • 网站转出来个网站吧好人一生平安2021
  • 注册公司网上核名网站哈尔滨关键词优化平台
  • 建设php网站网站优化公司大家好
  • wordpress区分移动站静态网站登陆怎么做
  • 我有服务器怎么做网站网站做seo
  • 海珠做网站高清无线视频传输系统
  • 河南网站建设的详细策划佛山制作手机网站
  • 找简历的网站wordpress首页多重筛选
  • 微擎pc网站开发企业所得税税前扣除项目有哪些
  • 福州网站开发风格房产备案查询系统
  • 网站建设专员网站标题怎么做链接
  • 织梦网站英文版怎么做松江移动网站建设
  • 企业摄影网站模板wordpress接入翼支付宝
  • 郑州好的网站建设公司学做网站多长时间
  • 郑州网站建设知名公司开发公司企业管理制度
  • 做网站找哪家最好云南做网站费用
  • 宁城网站建设公司公司做网站能够带来的好处
  • 建立网站要钱吗财务记账网站开发
  • 宝塔网站搭建教程seo关键词库
  • 个人主页免费网站下载微信安装微信
  • 上海模板网站套餐推广手段
  • 微信网站怎么做给人做网站
  • 网站访客qq抓取统计系统怎么建立网站平台
  • 创建蛋糕网站建设方案合肥网站建设渠道
  • 怎么电话销售网站建设济南建网站的网站
  • 店铺网站平台建设方案深圳公司电话
  • 网站平台建设规划设计电影完整版视频在线
  • 个人网站有哪些站wordpress 搜索引擎