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

asp服装网站源码工商执照注册号查询网

asp服装网站源码,工商执照注册号查询网,汽车配件网站建设,广州越秀公司网站建设一、背景介绍 我们关注大模型中的两个主流#xff1a;大语言模型和预训练的基础模型。01 大语言模型#xff08;LLMs#xff09; 语言建模是许多自然语言处理任务的基础#xff0c;而大语言模型#xff08;LLMs#xff09;的初衷是为了提高语言建模的性能。与传统的神经语…一、背景介绍 我们关注大模型中的两个主流大语言模型和预训练的基础模型。01 大语言模型LLMs 语言建模是许多自然语言处理任务的基础而大语言模型LLMs的初衷是为了提高语言建模的性能。与传统的神经语言模型NLMs和小型预训练的语言模型PLMs相比LLMs以其在解决各种复杂任务时的突发能力、上下文学习能力而为人所知并重塑了我们使用AI的方式。 随着多模态大语言模型MLLMs的发展LLMs的下游任务远远超出了传统的自然语言范围小型PLMs无法轻易解决这些问题。在最近的使用LLMs对时间序列和时空数据进行建模的过程中我们将其分为两大类可见嵌入型LLMs和不可见嵌入型LLMs。前者通常开源具有公开可访问的内部状态典型的例子包括BLOOM、Llama、Alpaca、Vicuna和Falcon等这些模型通常可以在不同的目标任务上进行微调并显示出有前途的少样本和零样本能力无需额外的再训练。后者通常是闭源的没有公开的内部状态如PaLM、ChatGPT1和GPT-4它们通常通过API调用中的提示进行推断。 下图提供了一个关于大模型的简要路线图概述了它们的发展历程和研究焦点清晰地揭示了大语言模型和预训练基础模型之间的联系和差异。   ​ 二、LLM4TS and LLM4STD 见证了多模态大语言模型MLLMs的巨大成功后我认为主要的研究兴趣之一是如何调整LLMs来解决时间序列和时空数据分析任务。在现有的文献中这通常可以通过多模态再利用或基于API的提示来实现。 这种方法通常用于激活嵌入可见LLMs的任务相关功能通过在目标和预训练源任务中对齐不同的模态来实现。这与LLMs的微调密切相关例如适配器调谐和低秩适应以及模型重编程这取决于在适应过程中LLMs是微调还是冻结。这种方法允许更深入地利用LLMs的内部状态和任务相关功能但可能需要更多的计算资源和访问权限。 另一方面这种方法更直接将目标模态包装成自然语言提示并将其输入到LLMs中进行生成推理。这类似于语言模型即服务LMaaS的黑盒调优。证据表明这种方法在跨多个领域的不同目标任务中都适用并显示出有希望的结果包括时间序列和时空数据的学习。 01 时间序列和时空数据 时间序列和时空数据作为时间相关的数据类别在无数现实世界应用中作为基础数据出现。时间序列通常被定义为按时间顺序排列的数据点序列。这些序列可以是单变量的也可以是多变量的。例如一个城市每天的温度读数将形成一个单变量时间序列而结合每天的温度和湿度数据将创建一个多变量时间序列。 时间序列数据这是按时间顺序排列的数据通常用于分析和预测某一现象随时间的变化情况。代表任务包括时间序列预测、异常检测等。 时空数据这类数据不仅包含时间信息还包含空间信息。它们被广泛用于地理位置相关的研究和应用中。代表任务包括时空数据插补、时空预测等。 1. 时间序列任务 这个领域通常包括四个主要的分析任务预测、分类、异常检测和填充。在预测中目标是预测时间序列的未来值根据预测范围可以进一步分为短期和长期预测。在分类中目标是将输入的时间序列分类到不同的类别中。时间序列的异常检测也可以被理解为一种特殊的分类任务我们的目标是从正常的时间序列中识别出异常的时间序列。在填充任务中目标是填充时间序列中的缺失值。2. 时空图任务 时空图的主要下游任务是预测该任务旨在通过参考历史属性和结构信息来预测未来的节点特征。典型的例子包括交通预测和一些按需服务。其他常见任务包括链接预测和节点/图分类其中链接预测的目标是基于历史信息预测边的存在而节点/图分类的目标是将节点或图分类到不同的类别中。3. 时间知识图任务 时间知识图中有两个重要任务补全和预测。前者主要旨在填充图中的缺失关系而后者关注预测未来的关系。4. 视频任务 在计算机视觉领域视频数据包含几个核心任务如检测、标注、预测和查询。检测的目的是识别视频中的特定物体或动作。标注试图为视频内容生成自然语言描述。预测涉及预测视频序列中的未来帧。最后查询的目的是检索与特定查询相关的视频片段。值得注意的是这些任务经常跨越多种模态与前面提到的数据类型相比它们受到了相当大的关注。 02 LLM4TS 近年来大语言模型在时间序列分析中的应用取得了显著的进展。这些模型具有强大的学习能力和表示能力能够有效地捕捉时间序列数据中的复杂模式和长期依赖关系。1. 通用模型 随着时间的推移大语言模型LLMs逐渐在时间序列分析领域展现出其潜力。作为从LLM角度处理通用时间序列预测的早期努力之一有研究正式引入了一个新任务基于提示的时间序列预测——PromptCast。由于输入和输出都是自然语言句子PromptCast为时间序列预测提供了一种新颖的“无代码”解决方案这提供了一个全新视角而不仅仅是专注于设计复杂的架构。此外为了应对缺乏大规模训练数据的挑战有研究提出了一个基于部分冻结LLMs的统一框架即只微调嵌入和归一化层同时保持自注意力和前馈层不变。这种方法在所有主要的时间序列分析任务中都达到了最先进或可比的性能包括时间序列分类、短期/长期预测、插补、异常检测、少样本和零样本预测。 其他研究则更专注于时间序列预测的特定方面。例如TEMPO专注于时间序列预测但结合了额外的时间序列分解和软提示等精细设计。还有研究利用LLMs进行时间序列预测采用两阶段的微调过程首先使用有监督的微调引导LLM朝向时间序列数据随后转向针对时间序列预测的下游微调。另有研究通过新的嵌入方法激活了LLM在时间序列上的能力该方法通过实例、特征和文本原型对齐的方式进行数据的token化和编码然后创建提示传递给LLMs来执行任务。2. 特定领域模型交通运输领域时间序列预测在智能交通系统Intelligent Transportation Systems简称ITS中发挥着关键作用。为了充分发掘大语言模型在交通运输领域的应用潜力有研究提出了一种新颖的AuxMobLCast管道利用LLM进行交通数据挖掘例如人类移动性预测任务。AuxMobLCast将人类移动性数据转化为自然语言句子使得预训练的LLM可以直接应用于微调阶段来预测人类移动性。这项工作是首次尝试微调现有的LLM以预测交通运输领域的数据为LLM在交通运输领域的应用提供了新的思路和方法。金融领域近年来一些专注于金融领域的大语言模型LLMs的研究已在文献中报道。其中一项研究提出了一种简单而有效的指令调优方法用于金融领域的情感分析。通过这种方法基于分类的情感分析数据集被转化为生成任务从而使LLMs能够更有效地应用其广泛的训练和卓越的分析能力。除了NLP任务外利用LLMs的卓越知识和推理能力进行金融时间序列预测也很吸引人。有研究使用GPT-4进行零样本/少样本推理以及使用Llama进行基于指令的微调来进行可解释的预测尽管与GPT-4相比性能相对较差但仍取得了合理的性能。还有研究使用了类似的方法来基于文本数据预测股票价格变动。这些研究展示了LLMs在金融领域的潜力和多样性为未来的金融应用和研究提供了新的视角和工具。事件预测与具有相等采样间隔的同步规则时间序列数据不同事件序列是具有不规则时间戳的异步时间序列。事件序列在现实世界中扮演着重要角色如金融、在线购物、社交网络等。时间点过程Temporal Point Processes简称TPPs已成为建模此类数据的标准方法。事件预测旨在根据过去预测未来的时间和事件类型。例如在在线购物领域作者想要建立用户的时间戳访问序列模型并根据他们过去的购物评价来预测他们未来的购物行为。大语言模型LLMs在这种设置中潜在地有用因为事件序列通常伴有丰富的文本信息而LLMs擅长处理这些信息。医疗健康领域医疗健康领域是事件序列中最重要的领域之一临床模型可帮助医生和行政人员在日常实践中做出决策。基于结构化数据的临床模型使用受限但GatorTron和NYUTron等临床LLM的扩展和改进为医学提供了与医生一起阅读和在护理点提供指导的潜力。LLMs还可以通过少样本提示调优将来自可穿戴设备和临床级传感设备的数值时间序列数据作为基础在健康任务上带来大的改进。 03 LLM4STD 探讨了大模型在时空数据分析中的进步这些进步跨越了三个主要的数据类别时空图、时间知识图和视频。每一种都具有广泛的现实世界应用。1. 时空图 在深度学习的时代时空图神经网络STGNNs已经成为时空图预测事实上最受欢迎的方法。它们主要利用图神经网络捕捉顶点之间的空间相关性并利用其他模型如RNN和CNN学习不同时间步之间的时间依赖性。 近年来LLM大语言模型的出现为时空表示学习领域的STGNN时空图神经网络提供了宝贵的支持。这些模型在处理和上下文化文本数据方面表现出色使它们具备从各种文本来源包括新闻文章、社交媒体内容到报告中提取洞察力的能力。这些洞察力可以无缝地整合到时空结构中提高其上下文的丰富性。此外它们促进了多种模态的融合包括文本、图像和结构化数据从而扩大了时空理解的深度和广度。这些模型具有生成人类可解释解释的能力提高了透明度和可靠性特别是在城市规划或灾害应对等应用中。此外它们通过简洁表示编码高级信息促进了计算效率简化了训练和推理过程。(1). 大语言模型在时空图中的应用 利用LLMs增强STGNNs学习能力的文献相对较少。第一种方法是使用LLMs学习顶点之间的关系。早期的一项研究提出了一个新颖的框架利用LLM令人赞叹的图推理能力来增强STGNNs对股票价格变动的预测。在这种方法中ChatGPT被用来从每日财经新闻中提取不断演变的网络结构这些推断出的图结构然后被无缝集成到GNNs中为每个公司生成节点嵌入。这些嵌入证明了对提高与股票变动相关的下游任务的性能是有帮助的。 此外第二系列研究利用LLMs的先验知识来支持STGNNs的下游应用如用于人类行为识别的LA-GCN。在LA-GCN中LLM衍生的知识被转化为先验全局关系GPR拓扑和先验类别关系CPR拓扑定义了节点之间的互联。GPR作为生成新颖骨骼表示的指导框架其主要目标是突出从基础数据中提取的关键节点信息。 一般领域的预训练基础模型 对比学习是一种在图像和文本领域被广泛应用的表示学习方法它在时空图学习领域也被证明是非常有效的。其中一种代表性方法是STGCL它通过对比正样本对与负样本对从复杂的时空图数据中提取丰富和有意义的表示。这种方法使得对比学习在诸如交通预测和电力消耗预测等多样化领域的实际应用中变得可行。为了学习顶点间的有信息量的关系SPGCL最大化了正邻居和负邻居之间的区分边界并用一种自我步调策略生成了最优图。 气象领域的预训练基础模型 考虑到计算效率的迫切需求以及及时气候预测的需求Pathak等人引入了FourCastNet这是一个利用自适应傅里叶神经算子实现高分辨率预测和快速推断的气候预训练基础模型。它的训练过程包括两个阶段——预训练和微调。在预训练期间FourCastNet接受监督训练以获得从前一步到后一步的映射。在微调阶段它基于预训练模型进行构建将其优化为以自回归方式预测接下来的两个时间步。 PanGu通过多时间尺度模型组合方法展示了比FourCastNet更强的中期预测能力利用新颖的3D地球特定Transformer。这个3D深度网络增强了地球特定先验有效地处理复杂的气象数据模式。 ClimaX是一个适应性强的深度学习模型应用于气候和天气科学训练于多样化数据集。它扩展了Transformer架构带有创新组件优化了计算效率。最初在CMIP6气候数据上进行预训练ClimaX可以针对各种气候和天气任务进行微调甚至涉及未见过的变量和时空尺度。 W-MAE将自监督预训练方法即Masked Autoencoder整合到气候预测任务中。这种整合使得模型能够从大量的无标签气象数据中提取关键的气象相关特征和通用知识有助于改善对多样化数据源的处理。与上述方法不同FengWu通过多模态和多任务方法解决中期气候预测问题。它采用了一种深度学习架构具有模型特定的Transformer和跨模态融合策略。这种设计精心制作纳入了不确定性损失用于各种预测器的区域自适应优化。 交通运输领域 在交通运输领域CPPBTR是一个基于Transformer的新框架用于人群流量预测其特点是两阶段的解码过程。在第一解码阶段生成一个初步序列。随后在第二解码阶段系统地遮蔽这个初始序列的每一个时间步并将其输入到Transformer编码器中以预测每个遮蔽位置的精细流量。 在交通流量预测领域TrafficBERT利用了受BERT启发的关键特征。它采用与BERT类似的双向Transformer结构可以预测整体交通流量而不是单个时间步。与需要对每条特定道路进行单独训练的常规模型相比TrafficBERT通过使用来自多条道路的数据进行预训练增强了模型的泛化能力。 此外Wang等人引入了交通基础模型(TFM)它将交通模拟纳入到交通预测的领域中。TFM利用图结构和动态图生成算法巧妙地捕获交通系统内参与者之间的复杂动态和交互。这种数据驱动和无模型的模拟方法有效地解决了传统系统在结构复杂性和模型精度方面长期存在的问题为使用真实世界数据解决复杂的交通问题奠定了坚实的基础。 2 .时间知识图 结构化知识推理的应用如搜索引擎、问答系统、对话系统和社交网络等一系列应用都需要对基础结构化知识进行推理。特别是知识图谱 (KGs) 、作为研究这类知识的复杂多关系设置的重要模型已经引起了广泛关注。KGs以三元组(s, p, o)的形式表示事实事件通常从文本数据中提取其中s和o分别表示主体和客体实体p作为关系类型表示谓词。然而在现实世界中知识是不断发展的这激发了时间知识图谱 (TKGs) 的构建和应用其中事实从三元组(s, p, o)扩展到带有时间戳t的四元组即(s, p, o, t)。通过有效捕获事实之间的时间依赖性和结构依赖性TKGs有助于更好地理解实体的行为以及它们如何随着时间的推移促成事实的生成。因此TKGs的应用和改进对于提高这些系统的性能和准确性具有重要的意义。 由于近年来LLMs在许多文本推理任务中表现出惊人的性能因此很自然地会主动研究LLMs在TKGs中的有效性。根据所执行的任务基于LLM的TKG模型可分为两类预测和补全。 3.视频 视频是视觉信息的数字表示通常由一系列图像或帧组成共同传达动作和时间变化。这些数据在各种实际应用中变得无处不在包括监控系统、娱乐平台、社交媒体和驾驶员辅助系统。对于视频理解的常规深度学习方法主要涉及两个关键范式 (1) 2D CNNs在这个范式中每个视频帧通过2D卷积分别处理然后在网络顶部沿时间轴聚合。这种方法主要关注空间特征时间特征的处理较为简单。 (2) 3D CNNs这种方法通过学习3D卷积来聚合空间和时间特征从而学习视频的时空表示。与2D CNNs相比3D CNNs能够更好地捕获视频中的时间动态。 近年来Transformers也因其捕获长距离依赖的能力而被广泛应用于建模视频的时空依赖进行视频识别。这种方法不依赖于卷积操作而是通过自注意力机制来捕获全局的时空依赖关系。 然而近年来LLMs大语言模型和PFMs多模态模型的发展为利用视频固有的多模态性质增强视频理解铺平了道路。这些模型如OpenAI的CLIP和DALL-E能够通过联合处理视觉和文本模态有效地从视频数据中提取丰富的上下文信息实现对复杂场景和事件的更全面理解。此外这些模型有潜力促进不同领域之间的有效迁移学习提高视频分析任务的泛化能力和鲁棒性。 三、大模型上的隐私和对抗性攻击 时序数据可能具有高度敏感性尤其是在医疗和金融等应用场景中。当LLMs在此类数据上进行训练或微调时它们可能会记住训练数据中的特定细节从而带来泄露私有数据的风险。因此如何利用隐私保护技术如差分隐私和联邦学习在确保数据隐私的同时仍然受益于LLMs在时间序列和时空分析上的强大能力存在大量的研究机会。 四、模型泛化与脆弱性 LLMs通常在通用数据上进行预训练然后在特定任务上进行微调。如果微调数据中包含对抗性或噪声样本这个过程可能会引入脆弱性。如果用于微调的时序数据没有得到仔细的处理模型可能会从这些数据中继承偏见或脆弱性导致在现实应用中的鲁棒性受损。此外尽管LLMs在庞大的数据集上进行训练但它们可能无法很好地泛化到未见过的或分布外的数据。时间序列和时空数据可能会表现出突然的变化或趋势。如果LLM在训练过程中没有遇到过类似的模式它可能会产生不可靠的输出这就强调了对鲁棒泛化的需求 五、大模型微调与推理 01大模型消耗的显存简介 在详细说明大模型需要消耗的显存大小之前我们需要先明确几个概念。 一个就是大模型在不同阶段对显存的消耗是不同的。但是大致可以分为三个阶段或者说三个场景。即大模型预训练阶段、大模型微调阶段和大模型推理阶段。 在预训练阶段大模型通常选择较大规模的数据集获取泛化能力因此需要较大的批次等来保证模型的训练强大。而模型的权重也是从头开始计算因此通常也会选择高精度如32位浮点数进行训练。需要消耗大量的GPU显存资源。 在微调阶段通常会冻结大部分参数只训练小部分参数。同时也会选择非常多的优化技术和较少的高质量数据集来提高微调效果此时由于模型已经在预训练阶段进行了大量的训练微调时的数值误差对模型的影响通常较小。也常常选择16位精度训练。因此通常比预训练阶段消耗更低的显存资源。 在推理阶段通常只是将一个输入数据经过模型的前向计算得到结果即可因此需要最少的显存即可运行。 下面是针对大模型在不同阶段消耗的显存的详细估算。 1.大模型预训练阶段的显存消耗 大模型在预训练阶段需要加载完整的模型结构和大量预训练数据所以显存需求很大通常需要几十GB到上百GB。常见的预训练数据集如ImageNet图片数据集、维基百科文本corpus等都比较大。 预训练大模型的显存消耗估算涉及多个因素。以下是一个简化的步骤来估算显存消耗 模型参数 每个参数通常是一个32位浮点数float32需要4字节的存储空间。 如果模型有P个参数那么参数的总大小为P×4字节 中间激活 对于每一层都会有一些中间的激活值。这些激活值的数量通常与模型的宽度和输入数据的大小有关。 假设每层的激活需要A个浮点数那么激活的总大小为A×4字节 梯度 每个模型参数在反向传播时都会有一个对应的梯度。 梯度的总大小与模型参数的总大小相同P×4字节 优化器状态 一些优化器如Adam为每个参数存储额外的状态信息。例如Adam存储每个参数的动量和梯度的平方值。 对于Adam状态的总大小为2×P×4字节 批次大小 批次大小会影响中间激活的数量。假设批量大小为B那么激活的总大小为B×A×4字节 其他因素 正则化、Dropout、Batch Normalization等可能需要额外的显存。 一些特殊的操作或层如特殊的卷积可能有额外的显存需求。 综上所述预训练大模型的显存消耗估算可以通过以下公式得到 总显存(PB×AP2×P)×4字节 这只是一个简化的估算。实际的显存消耗可能会受到其他因素的影响如模型的具体结构、使用的库和框架、显卡的架构等。为了更准确地估算显存消耗建议使用专门的工具或在实际环境中进行测试。 进一步简化一下只考虑模型的参数和批次大小那么大约是4倍批次大小乘以参数的关系。 总结一下就是大模型预训练阶段需要高精度数值来保证训练过程的准确性需要大规模数据让模型获得泛化和涌现能力也会一次使用较大批次加速训练因此需要大量显存消耗。 2.大模型微调阶段的显存消耗 第二个场景就是大模型微调阶段需要的显存。大模型微调是指在一个预训练大模型的基础上对模型进行细微的调整使其适应特定的任务。这通常涉及在新的、特定任务的数据集上进行额外的训练。 在深度学习中预训练和微调是两个常见的阶段。预训练通常涉及在大型数据集上从头开始训练模型而微调则是在预训练模型的基础上使用特定的任务数据进行进一步的训练。通常情况下微调阶段的显存消耗通常远低于预训练阶段 数据集大小预训练通常使用的是大型的数据集如Wikipedia、Common Crawl等这些数据集包含数十亿的单词。而微调时使用的数据集通常针对特定任务相对较小。处理更小的数据集时显存的需求通常会减少。 批次大小由于预训练数据集的大小通常会使用更大的批次来加速训练。大的批次会消耗更多的显存。而在微调时由于数据集较小可以使用较小的批次从而减少显存使用。 模型结构虽然预训练和微调通常使用相同的模型结构但在微调时有时会冻结模型的某些部分例如不训练预训练模型的某些层这可以减少显存的使用。 累积梯度在预训练阶段由于使用大型数据集和大批次可能需要累积多个批次的梯度来进行一次参数更新这会增加显存的使用。而在微调阶段由于数据集和批次大小都较小这种需求会减少。 正则化和技巧预训练阶段可能会使用更多的正则化技巧如Dropout、Layer Normalization等这些技巧可能会增加显存的使用。而在微调阶段这些技巧可能会被减少或调整。 优化器某些优化器如Adam会为每个参数保存额外的状态信息从而增加显存使用。在预训练阶段可能会使用这些优化器而在微调阶段可能会选择不同的优化策略。 总之虽然预训练和微调都是深度学习训练的重要阶段但由于它们的目标、数据集和策略的差异微调阶段的显存消耗通常会远低于预训练阶段。这里也没有一个统一的公式估算主要还是依赖于微调选择的技术和参数。尤其是如果我们冻结了很多参数的话微调所需要的显存资源也会很低。 简单来说大模型微调阶段不需要大幅度更新模型权重因此可以以较低精度来实现也只需要在较小规模的高质量数据集上进行小批次的输入因此比大模型预训练阶段消耗更低的GPU显存资源。 3.大模型推理阶段的显存消耗 大模型在推理阶段的显存估计相对简单主要考虑以下几点 模型参数量这个与训练阶段相同决定了模型本身的显存占用量。单次输入数据推理只需要加载单次输入而不是像训练时的 batch 数据。所以输入数据量很小。激活复用推理阶段可以重用激活数据不需要像训练时存储多个步骤的激活大幅减少激活显存。无需保存梯度推理阶段不需要计算和保存梯度信息减少消耗。优化器状态推理阶段不需要优化器状态减少消耗。 所以一个粗略的估计方式是参数数量×2字节数。例如一个7B大小的模型推理阶段通常需要的显存约7*214GB。原因是推理阶段通常使用16位精度一个参数占用2个字节7b的参数规模是70亿二者相乘再换算到GB也就是14GB左右了。 类似的13B通常需要26GB显存65B通常需要130GB显存左右才能推理。 不过也有一个需要考虑的是量化在某些时候大模型可以继续将16位精度量化成INT8或者INT4的精度那么量化后的大模型在推理阶段所需要的显存大小可以进一步降低。例如7B模型的INT4量化可能只需要3.5GB就行。如果模型是混合精度量化则介于全精度和完全量化之间了。 相比训练阶段推理阶段显存需求可以降低10倍以上。这使得很大的模型也可以部署到资源受限的环境中进行推理。 总之推理阶段显存需求远低于训练阶段原因在于推理只需要前向传播而不需要计算图的反向传播过程。这大大减少了激活和梯度的存储需求。 02 大模型微调 从参数规模的角度大模型的微调分成两条技术路线 一条是对全量的参数进行全量的训练这条路径叫全量微调FFT(Full Fine Tuning)。 一条是只对部分的参数进行训练这条路径叫PEFT(Parameter-Efficient Fine Tuning)。 FFT的原理就是用特定的数据对大模型进行训练将W变成WW相比W 最大的优点就是上述特定数据领域的表现会好很多。 但FFT也会带来一些问题影响比较大的问题主要有以下两个 一个是训练的成本会比较高因为微调的参数量跟预训练的是一样的多的 一个是叫灾难性遗忘(Catastrophic Forgetting)用特定训练数据去微调可能会把这个领域的表现变好但也可能会把原来表现好的别的领域的能力变差。 PEFT主要想解决的问题就是FFT存在的上述两个问题PEFT也是目前比较主流的微调方案 接下来介绍几种比较流行的PEFT微调方案。 1.Prompt Tuning Prompt Tuning的出发点是基座模型(Foundation Model)的参数不变为每个特定任务训练一个少量参数的小模型在具体执行特定任务的时候按需调用。 Prompt Tuning的基本原理是在输入序列X之前增加一些特定长度的特殊Token以增大生成期望序列的概率。 具体来说就是将X [x1, x2, ..., xm]变成X [x1, x2, ..., xk; x1, x2, ..., xm], Y WX。 Prompt Tuning是发生在Embedding这个环节的。 如果将大模型比做一个函数Yf(X)那么Prompt Tuning就是在保证函数本身不变的前提下在X前面加上了一些特定的内容而这些内容可以影响X生成期望中Y的概率。 Prompt Tuning的具体细节可以参见The Power of Scale for Parameter-Efficient Prompt Tuning[1]。 2.Prefix Tuning Prefix Tuning的灵感来源是基于Prompt Engineering的实践表明在不改变大模型的前提下在Prompt上下文中添加适当的条件可以引导大模型有更加出色的表现。 Prefix Tuning的出发点跟Prompt Tuning的是类似的只不过它们的具体实现上有一些差异。 Prompt Tuning是在Embedding环节往输入序列X前面加特定的Token。 而Prefix Tuning是在Transformer的Encoder和Decoder的网络中都加了一些特定的前缀。 具体来说就是将YWX中的W变成W [Wp; W]YWX。 Prefix Tuning也保证了基座模型本身是没有变的只是在推理的过程中按需要在W前面拼接一些参数。 Prefix Tuning的具体细节可以参见Prefix-Tuning: Optimizing Continuous Prompts for Generation[2]。 3.LoRA LoRA是跟Prompt Tuning和Prefix Tuning完全不相同的另一条技术路线。 LoRA背后有一个假设我们现在看到的这些大语言模型它们都是被过度参数化的。而过度参数化的大模型背后都有一个低维的本质模型。 通俗讲人话大模型参数很多但并不是所有的参数都是发挥同样作用的大模型中有其中一部分参数是非常重要的是影响大模型生成结果的关键参数这部分关键参数就是上面提到的低维的本质模型。 LoRA的基本思路包括以下几步 首先, 要适配特定的下游任务要训练一个特定的模型将YWX变成Y(W∆W)X这里面∆W主是我们要微调得到的结果 其次将∆W进行低维分解∆WAB (∆W为m * n维A为m * r维B为r * n维r就是上述假设中的低维) 接下来用特定的训练数据训练出A和B即可得到∆W在推理的过程中直接将∆W加到W上去再没有额外的成本。 另外如果要用LoRA适配不同的场景切换也非常方便做简单的矩阵加法即可(W ∆W) - ∆W ∆W。  关于LoRA的具体细节可以参见LoRA: Low-Rank Adaptation of Large Language Models。 4.QLoRA LoRA 效果已经非常好了可以媲美全量微调的效果了那为什么还要有个QLoRA呢 这里先简单介绍一下量化Quantization。 量化是一种在保证模型效果基本不降低的前提下通过降低参数的精度来减少模型对于计算资源的需求的方法。 量化的核心目标是降成本降训练成本特别是降后期的推理成本。 QLoRA就是量化版的LoRA它是在LoRA的基础上进行了进一步的量化将原本用16bit表示的参数降为用4bit来表示可以在保证模型效果的同时极大地降低成本。 论文中举的例子65B的LLaMA 的微调要780GB的GPU内存而用了QLoRA之后只需要48GB。效果相当惊人 关于QLoRA的具体细节可以参见QLoRA: Efficient Finetuning of Quantized LLMs。 PEFT 的微调方法还有很多种比如说还有指令微调Instruction-Tuning,思维链微调Chain-of-Thought等以及其他微调方式感兴趣可以阅读这篇论文Scaling Down to Scale Up: A Guide to Parameter-Efficient Fine-Tuning。 附具体显存消耗 但如果要进行微调来自北航博士生Yaowei Zheng开源的LLaMA-Factory是一个大模型一键微调平台。主要是用可视化的方式让大家可以一键微调很多业界主流的模型。包括Baichuan、ChatGLM、Mixtral就是Mistral 8×7B MoE等模型。这其中还公布了一个数据即不同参数规模的大模型在不同微调方法下所需的显存大小十分有参考意义 微调方法模型精度70亿参数模型130亿参数模型300亿参数模型650亿参数模型8x7BMoEFull16160GB320GB600GB1200GB1000GBFreeze1620GB40GB120GB240GB200GBLoRA1616GB32GB80GB160GB120GBQLoRA810GB16GB40GB80GB80GBQLoRA46GB12GB24GB48GB32GB 这里的微调方法含义如下 Full全参数微调Full-Parameter Fine-Tuning即更新模型的所有参数Freeze表示冻结部分参数进行微调LoRALow-Rank Adaptation微软提出的高效参数微调方法引入低秩矩阵可以在资源有效的场景下获得较好的效果。QLoRA华盛顿大学提出量化LoRA方法资源要求更低详情参考华盛顿大学提出QLoRA及开源预训练模型Guanaco将650亿参数规模的大模型微调的显存需求从780G降低到48G单张显卡可用 从上表中我们可以看到全参数微调其实显存要求很高如果推理显存如果约等于模型参数的2倍单位是10亿例如7B大模型最少需要14G显存才能推理那么全参数微调几乎是参数的20倍还要多。而使用LoRA则比推理显存大小略高一点。 这里比较重要的参考是8×7B的MoE模型。这个显然就是前段时间刚刚发布的Mixtral大模型即Mistral 8×7B MoE详情参考MistralAI的混合专家大模型Mistral-7B×8-MoE详细介绍效果超过LLaMA2-70B和GPT-3.5推理速度快6倍。这个模型实际参数450亿每次推理只会激活120亿的参数。这个模型在微调的时候需要的显存大小和450亿参数规模的模型相当。也就是说MoE最大的优点应该是提升推理速度。推理现存与微调显存实际上不会有什么优势根据实际测试Mixtral 8×7B MoE推理最少也要90多G的显存。如果使用QLoRA方法那么显存大小会显著降低。不过这也会降低一点精度。 所以如果要进行微调比如说要进行LoRA微调或者QLoRA微调建议使用2-4张80G A100 03 大模型推理 我们可以看出在有限的GPU情况下我们可以使用大模型进行推理和微调如果使用一个7B的大模型进行推理例如llama2-7b)所使用到的显存大概是7B * 2 14GB(假设参数为float16我用一张40G的A100就可以很轻松进行推理如果参数精度比float16更小或者使用混合精度则使用到的显存更少 大概看看各个模型都需要什么样的内存以下只是推理不包括微调如果使用微调大概需要再加20%LORA。 LLaMA-7B 建议使用至少6GB VRAM的GPU。适合此模型的GPU示例是RTX 3060它提供8GB VRAM版本。 LLaMA-13B 建议使用至少10GB VRAM的GPU。满足此要求的gpu包括AMD 6900 XT、RTX 2060 12GB、3060 12GB、3080和A2000。这些gpu提供了必要的VRAM容量来有效地处理LLaMA-13B的计算需求。 LLaMA-30B 建议使用VRAM不低于20GB的GPU。RTX 3080 20GB、A4500、A5000、3090、4090、6000或Tesla V100都是提供所需VRAM容量的gpu示例。这些gpu为LLaMA-30B提供了高效的处理和内存管理。 LLaMA-65B LLaMA-65B在与至少具有40GB VRAM的GPU。适合此型号的gpu示例包括A100 40GB, 2x3090, 2x4090, A40, RTX A6000或8000。 ​ 对于速度来说 用RTX 4090和Intel i9-12900K CPU的推理速度示例 ​ 对于CPU来说LLaMA也是可以用的但是速度会很慢而且最好不要进行训练只能进行推理下面是13B模型在不同CPU上推理速度列表 ​ 六、大模型微调之Adapter Tuning 这也是微调中的一种我觉得这种方式值得详细说明一下所以在这里介绍一下 Adapter Tuning论文Parameter-Efficient Transfer Learning for NLP该方法设计了Adapter结构并将其嵌入Transformer的结构里面针对每一个Transformer层增加了两个Adapter结构(分别是多头注意力的投影之后和第二个feed-forward层之后)在训练时固定住原来预训练模型的参数不变只对新增的 Adapter 结构和 Layer Norm 层进行微调从而保证了训练的高效性。 每当出现新的下游任务通过添加Adapter模块来产生一个易于扩展的下游模型从而避免全量微调与灾难性遗忘的问题。 ​ 01 Adapter结构具体细节 每个 Adapter 模块主要由两个前馈Feedforward子层组成第一个前馈子层down-project将Transformer块的输出作为输入将原始输入维度d高维特征投影到m低维特征通过控制m的大小来限制Adapter模块的参数量通常情况下md。然后中间通过一个非线形层。在输出阶段通过第二个前馈子层up-project还原输入维度将m低维特征重新映射回d原来的高维特征作为Adapter模块的输出。同时通过一个skip connection来将Adapter的输入重新加到最终的输出中去这样可以保证即便 Adapter 一开始的参数初始化接近0Adapter也由于skip connection的设置而接近于一个恒等映射从而确保训练的有效性。 ​ 通过实验发现只训练少量参数的Adapter方法的效果可以媲美全量微调这也验证了Adapter是一种高效的参数训练方法可以快速将语言模型的能力迁移到下游任务中去。同时可以看到Adapter 最佳的中间层特征维度m视数据集的大小而异如MINI数据集为256最小的RTE数据集为8。如果始终将维度限制在64将导致平均准确率略微下降。 ​ 总之Adapter通过引入0.5%5%的模型参数可以达到不落后全量微调模型1%的性能 02 AdapterFusion 1.背景 为了整合来自多个任务的知识传统的两个方法是按一定顺序微调Sequential fine-tuning或者多任务学习multi-task learning。前者的一大问题是需要先验知识来确定顺序且模型容易遗忘之前任务学到的知识后者的问题是不同的任务会互相影响也难以平衡数据集大小差距很大的任务。 而之前的工作Adapter Tuning的一个优势就是不用更新预训练模型的参数而是插入比较少的新的参数就可以很好地学会一个任务。此时Adapter 的参数某种程度上就表达了解决这个任务需要的知识。 作者受此启发如果想要把来自多个任务的知识结合起来是否可以考虑把多个任务的Adapter的参数结合起来基于此作者提出了 AdapterFusion这是一种新的两阶段学习算法可以利用来自多个任务的知识。 2.技术原理 Adapter Fusion论文AdapterFusion:Non-Destructive Task Composition for Transfer Learning一种融合多任务信息的Adapter的变体在 Adapter 的基础上进行优化通过将学习过程分为两阶段来提升下游任务表现。 知识提取阶段在不同任务下引入各自的Adapter模块用于学习特定任务的信息。知识组合阶段将预训练模型参数与特定于任务的Adapter参数固定引入新参数AdapterFusion来学习组合多个Adapter中的知识以提高模型在目标任务中的表现。 ​ 对于第一阶段有两种训练方式分别如下 Single-Task Adapters(ST-A)对于N个任务模型都分别独立进行优化各个任务之间互不干扰互不影响。Multi-Task Adapters(MT-A)N个任务通过多任务学习的方式进行联合优化。 对于第二阶段为了避免通过引入特定任务参数而带来的灾难性遗忘问题AdapterFusion提出了一个共享多任务信息的结构。针对特定任务mAdapterFusion联合了第一阶段训练得到的N个Adapter信息。固定语言模型的参数跟N个Adapter的参数新引入AdapterFusion的参数目标函数也是学习针对特定任务m的AdapterFusion的参数。 3.AdapterFusion结构 AdapterFusion具体结构就是一个Attention它的参数包括querykey, value的矩阵参数在transformer的每一层都存在它的query是transformer每个子模块的输出结果它的key跟value则是N个任务的adapter的输出。通过AdapterFusion模型可以为不同的任务对应的adapter分配不同的权重聚合N个任务的信息从而为特定任务输出更合适的结果。 ​ 通过对全量微调、Adapter Tuning、AdapterFusion这三种方法在各个数据集上进行对比实验可以看出AdapterFusion在大多数情况下性能优于全模型微调和Adapter Tuning特别在MRPC与RTE数据集中性能显著优于另外两种方法。 同时还可以看到第一阶段采用ST-A第二阶段AdapterFusion是最有效的方法在多个数据集上的平均效果达到了最佳。而第一阶段采用MT-A第二阶段AdapterFusion没有取得最佳的效果在于第一阶段其实已经联合了多个任务的信息了所以AdapterFusion的作用没有那么明显同时MT-A这种多任务联合训练的方式需要投入较多的成本并不算一种高效的参数更新方式。另外ST-A的方法在多个任务上都有提升但是MT-A的方法则不然这也表明了MT-A虽然可以学习到一个通用的表征但是由于不同任务的差异性很难保证在所有任务上都取得最优的效果。 ​ 总之通过将适配器的训练分为知识提取和知识组合两部分解决了灾难性遗忘、任务间干扰和训练不稳定的问题。但是Adapter模块的添加也导致模型整体参数量的增加降低了模型推理时的性能。 文献参考 需要多少GPU显存才能运行预训练大语言模型大语言模型参数规模与显存大小的关系估算方法~ Llama-2 推理和微调的硬件要求总结RTX 3080 就可以微调最小模型-腾讯云开发者社区-腾讯云 不同参数规模大语言模型在不同微调方法下所需要的显存总结 | 数据学习者官方网站(Datalearner)  实际案例说明AI时代大语言模型三种微调技术的区别——Prompt-Tuning、Instruction-Tuning和Chain-of-Thought | 数据学习者官方网站(Datalearner)  需要多少GPU显存才能运行预训练大语言模型大语言模型参数规模与显存大小的关系估算方法~ | 数据学习者官方网站(Datalearner) 通俗解读大模型微调(Fine Tuning) Panda LLM: Training Data and Evaluation for Open-Sourced Chinese Instruction-Following Large Language Models Natural language instructions induce compositional generalization in networks of neurons
http://www.pierceye.com/news/51899/

相关文章:

  • 西安优秀高端网站建设服务商个人博客网站怎么建立
  • 高端网站如何建设福田网站建设龙岗网站建设
  • 博客网站开发背景微信公众号微商城平台
  • 做外单网站亚马逊论述农产品电商网站建设
  • 免费商城网站制作博客网站程序
  • 网站建设数据库软件英文网站做游戏活动策划方案
  • 上海医疗网站备案表动易网站安装子目录中
  • 校园网站建设网站wordpress区块链插件
  • cn网站建设多少钱聊城广告设计公司
  • 宿迁明远建设有限公司网站男女做那些事免费网站
  • 沧州网站优化零件加工网上接订单
  • 网站开发公司云鲸互创实惠深圳网站建设售后服务怎样
  • 厦门 网站建设 网站开发郑州专业做网站企业
  • 网站标签中的图片怎么做的樱花jsq30q211
  • 网站编程学习wordpress媒体库素材打不开
  • 装饰网站建设多少钱网址之家大全
  • 手机网站建设的费用福州网站建设索q479185700
  • 电商网站开发fd网址大全12345
  • 优秀flash网站设计动漫制作专业就业前景文字
  • 高校网站站群建设公司wordpress如何接入支付
  • 快递网站模版证券公司客户经理怎么拉客户
  • 怎么做娱乐网站南昌做网站要多少钱
  • 个人网站建设好之后怎么赚钱南联网站建设推广
  • 网站设计 图片怎么做淘宝网站推广
  • 静态网站如何建设巢湖网站开发
  • 怎样做展会推广网站html怎么写
  • 沈阳高端网站制作如何用本地视频做网站
  • 电子商务网站建设课论坛网站模
  • 一站式装修公司有哪些云南火电建设有限公司网站
  • 网站手机访问跳转代码wordpress接入对象存储