选择大型语言模型自定义技术

推荐:使用 NSDT场景编辑器 助你快速搭建可二次编辑器的3D应用场景

 

选择大型语言模型自定义技术

 

企业需要自定义模型来根据其特定用例和领域知识定制语言处理功能。自定义LLM使企业能够在特定的行业或组织环境中更高效,更准确地生成和理解文本。

自定义模型使企业能够创建符合其品牌声音的个性化解决方案,优化工作流程,提供更精确的见解,并提供增强的用户体验,最终推动市场竞争优势。

这篇文章涵盖了各种模型定制技术以及何时使用它们。NVIDIA NeMo 支持許多方法。

NVIDIA NeMo 是一个端到端的云原生框架,可在任何地方构建、定制和部署生成式 AI 模型。它包括训练和推理框架、护栏工具包、数据管理工具和预训练模型,提供了一种简单、经济高效且快速的采用生成 AI 的方法。

选择 LLM 自定义技术

您可以根据数据集大小要求与自定义期间的训练工作量级别(与下游任务准确性要求相比)之间的权衡来对技术进行分类。

该图显示了四个自定义工具,其中包含技术、用例和示例表。

图1.LLM 定制技术可用于 NVIDIA NeMo

图 1 显示了以行的自定义技术:

  • 提示工程:操作发送到LLM的提示,但不以任何方式更改LLM的参数。它在数据和计算要求方面很轻。
  • 快速学习:使用提示和完成对,通过虚拟令牌向LLM传授特定于任务的知识。此过程需要更多的数据和计算,但比提示工程具有更好的准确性。
  • 参数高效微调(PEFT):将少量参数或层引入现有LLM架构,并使用特定于用例的数据进行训练,提供比提示工程和快速学习更高的准确性,同时需要更多的训练数据和计算。
  • 微调:涉及更新预训练的LLM权重,这与前面概述的三种类型的自定义技术不同,这些技术使这些权重保持冻结。这意味着与其他技术相比,微调还需要最多的训练数据和计算。但是,它为特定用例提供了最准确的准确性,从而证明了成本和复杂性的合理性。

有关更多信息,请参见大型语言模型简介:提示工程和 P 调优。

快速工程

提示工程涉及在推理时通过展示和讲述示例进行定制。LLM提供了示例提示和完成,这些详细说明附加到新提示之前以生成所需的完成。模型的参数不会更改。

少数镜头提示:此方法需要在提示前面附加一些示例提示和完成对,以便LLM学习如何为新的不可见提示生成响应。虽然与其他自定义技术相比,少数镜头提示需要相对较少的数据量,并且不需要微调,但它确实增加了推理延迟。

思维链推理:就像人类将大问题分解成小问题并应用思维链来有效地解决问题一样,思维链推理是一种快速的工程技术,可以帮助LLM提高他们在多步骤任务上的表现。它涉及将问题分解为更简单的步骤,每个步骤都需要缓慢而深思熟虑的推理。这种方法适用于逻辑、算术和演绎推理任务。

系统提示:此方法涉及在用户提示之外添加系统级提示,以向LLM提供特定和详细的说明,使其按预期运行。可以将系统提示视为LLM的输入以生成其响应。系统提示的质量和特异性会对LLM响应的相关性和准确性产生重大影响。

及时学习

快速学习是一种高效的自定义方法,可以在许多下游任务上使用预训练的LLM,而无需调整预训练模型的完整参数集。它包括两种具有细微差异的变体,称为 p 调谐和提示调谐;这两种方法统称为快速学习。

快速学习可以向LLM添加新任务,而不会覆盖或中断模型已经预先训练的先前任务。由于原始模型参数被冻结且永远不会更改,因此快速学习还可以避免微调模型时经常遇到的灾难性遗忘问题。当LLM在微调过程中以LLM预培训期间获得的基础知识为代价学习新行为时,就会发生灾难性的遗忘

图中显示,提示学习在训练的虚拟令牌之前附加提示令牌,从而为虚拟令牌训练的特定用例提供更准确的LLM完成。

图2.应用于法学硕士的快速学习

提示调优和 p 调谐不是以手动或自动方式选择离散文本提示,而是使用可通过梯度下降进行优化的虚拟提示嵌入。这些虚拟令牌嵌入与构成模型词汇表的离散、硬令牌或真实令牌相反。虚拟代币是纯粹的一维向量,其维数等于每个真实代币嵌入的维数。在训练和推理中,根据模型配置中提供的模板,在离散令牌嵌入中插入连续令牌嵌入。

提示调整:对于预训练的 LLM,软提示嵌入初始化为大小total_virtual_tokens Xhidden_size的 2D 矩阵。提示优化模型以执行的每个任务都有其自己的关联 2D 嵌入矩阵。任务在训练或推理期间不共享任何参数。NeMo 框架提示调优实现基于参数高效提示调优的规模力量。

P-调谐: 称为 LSTM 或 MLP 模型用于预测虚拟令牌嵌入。 参数在 p 调优开始时随机初始化。所有基本LLM参数都被冻结,并且在每个训练步骤中仅更新权重。p 调优完成后,提示调优的虚拟令牌将自动移动到存储所有提示调优和 p 调优软提示的位置。 然后从模型中移除。这使您能够保留以前 p 调优的软提示,同时仍保持将来添加新的 p 调优或提示调优软提示的能力。prompt_encoderprompt_encoderprompt_encoderprompt_encoderprompt_tableprompt_encoder

prompt_table使用任务名称作为键来查找指定任务的正确虚拟令牌。NeMo框架p调谐实现基于GPT Understands,Too。

参数高效微调

参数高效微调(PEFT)技术使用巧妙的优化来有选择地向原始LLM架构添加和更新一些参数或层。使用 PEFT,针对特定用例训练模型参数。预训练的LLM权重保持冻结,并且在PEFT期间使用域和任务特定的数据集更新的参数明显较少。这使LLM能够在训练的任务上达到高精度。

有几种流行的参数高效替代方法来微调预训练语言模型。与提示学习不同,这些方法不会在输入中插入虚拟提示。相反,他们将可训练层引入变压器架构中,用于特定任务的学习。这有助于在下游任务上获得强大的性能,同时与微调相比,可训练参数的数量减少了几个数量级(参数减少了近 10,000 倍)。

  • 适配器学习
  • 通过抑制和放大内部激活(IA3)注入适配器
  • 低秩适应 (LoRA)

适配器学习:在核心变压器架构各层之间引入小的前馈层。只有这些层(适配器)在微调时针对特定的下游任务进行训练。适配器层通常使用下投影将输入

h

h

投影到低维空间,然后使用非线性激活函数,并使用W_up

 W_up

 

W_up

.残差连接将此输出添加到输入中,从而形成最终形式:h \leftarrow h + f(hW_{down})W_{up}

 

 

h \leftarrow h + f(hW_{down})W_{up}

适配器模块通常被初始化为适配器的初始输出始终为零,以防止由于添加此类模块而导致原始模型的性能下降。NeMo 框架适配器实现基于 NLP 的参数高效迁移学习。

IA3:与适配器相比,添加的参数更少,适配器只是使用学习向量缩放转换器层中的隐藏表示。可以为特定的下游任务训练这些扩展参数。学习的向量 、 和 分别重新缩放注意力机制中的键和值以及位置前馈网络中的内部激活。这种技术还使混合任务批处理成为可能,因为批处理中的每个激活序列都可以单独且廉价地乘以其关联的学习任务向量。NeMo框架IA3 实现基于少镜头参数高效微调比上下文学习更好、更便宜。lklvlff

图表显示 LoRA 微调通过冻结的预训练权重和减少维度层来实现参数效率.

图3.用于参数高效微调的 LoRA

洛拉:将可训练的低秩矩阵注入变压器层以近似权重更新。LoRA 没有更新完整的预训练权重矩阵 W,而是更新其低秩分解,与微调相比,可训练参数的数量减少了 10,000 倍,GPU 内存需求减少了 3 倍。此更新将应用于多头注意力子图层中的查询和值投影权重矩阵。事实证明,将更新应用于低秩分解而不是整个矩阵在模型质量上与微调相当或更好,从而实现更高的训练吞吐量,并且没有额外的推理延迟。

NeMo框架LoRA实现基于大型语言模型的低秩适配。有关如何将 LoRa 模型应用于抽取式 QA 任务的详细信息,请参阅 LoRA 教程笔记本。

微调

当数据和计算资源没有硬约束时,监督微调 (SFT) 和人工反馈强化学习 (RLHF) 等定制技术是 PEFT 和提示工程的绝佳替代方法。与其他自定义方法相比,微调有助于在一系列用例上实现最佳准确性。

有监督的微调: SFT是在输入和输出的标记数据上微调模型所有参数的过程,它教授模型域特定的术语以及如何遵循用户指定的指令。它通常在模型预训练后完成。与预训练阶段相比,使用预训练模型可以实现许多好处,包括使用最先进的模型而无需从头开始训练、降低计算成本并减少数据收集需求。SFT的一种形式被称为指令调优,因为它涉及在通过指令描述的数据集集合上微调语言模型。

该图显示了监督微调使用指令更新预训练的LLM权重,这些指令遵循按任务以不同比例混合的数据集,以帮助提高LLM在看不见的任务上的性能。

图4.通过跟踪数据的标记指令进行监督微调

带有指令的SFT利用了NLP任务可以通过自然语言指令描述的直觉,例如“将以下文章总结为三句话”或“用西班牙语写一封关于即将到来的学校节日的电子邮件”。该方法成功地结合了微调和提示范式的优势,以提高推理时的LLM零镜头性能。

指令调优过程涉及对预训练模型执行微调,这些数据集由以不同比例混合的自然语言指令表达的多个 NLP 数据集的混合物。在推理时,对看不见的任务进行评估,并且已知此过程可以显着提高看不见任务的零镜头性能。SFT也是使用强化学习提高LLM能力过程中的重要中间步骤,我们将在下面描述。

带有人类反馈的强化学习: 带有人类反馈的强化学习(RLHF)是一种定制技术,使LLM能够更好地与人类价值观和偏好保持一致。它使用强化学习使模型能够根据收到的反馈调整其行为。它涉及一个三阶段微调过程,该过程使用人类偏好作为损失函数。使用前面部分中描述的说明进行微调的SFT模型被认为是RLHF技术的第一阶段。

图表显示,具有人类反馈的强化学习是一个三阶段过程,它利用根据人类偏好训练的奖励模型,使用强化学习向受监督的微调LLM提供反馈。

图5.使用强化学习使LLM行为与人类偏好保持一致

SFT 模型在 RLHF 的第 2 阶段被训练为奖励模型 (RM)。由具有多个响应的提示组成的数据集用于训练 RM 以预测人类偏好。

训练 RM 后,RLHF 的第 3 阶段侧重于使用近端策略优化 (PPO) 算法的强化学习针对 RM 微调初始策略模型。RLHF的这三个阶段迭代执行,使LLM能够生成更符合人类偏好的输出,并且可以更有效地遵循指令。

虽然 RLHF 会产生强大的 LLM,但缺点是这种方法可能会被滥用和利用来生成不良或有害的内容。NeMo方法使用PPO价值网络作为批评者模型,以指导LLM远离生成有害内容。研究界正在积极探索其他方法,以引导LLMs采取适当的行为,并减少LLM构成事实的有毒物质产生或幻觉。

原文链接:选择大型语言模型自定义技术 (mvrlink.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/41610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BDA初级分析——认识SQL,认识基础语法

一、认识SQL SQL作为实用技能,热度高、应用广泛 在对数据分析人员的调查中SQL长期作为热度排名第-一的编程语言超过Python和R SQL:易学易用,高效强大的语言 SQL:Structured Query Language 结构化查询语言 SQL:易学…

多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测

多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测 目录 多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | MATLAB实现WOA-CNN-BiGRU-Attention多变量时间序列预测 1.程…

java 向上取整 java对小数取整

取整方法 Math.floor(double a) 向下取整 Math.ceil(double a) 向上取整 Math.round(double a) 四舍五入 0.5向下取整 Math.rint(double a) 就近取整 1.6接近2,所以就取2 1.4接近1,所以就取1 1.5跟1和2都很接近,这时候就取偶数 (int) 类型强转…

MongoDB:数据库初步应用

一.连接MongoDB 1.MongoDBCompass连接数据库 连接路径:mongodb://用户名:密码localhost:27017/ 2.创建数据库(集合) MongoDB中数据库被称为集合. MongoDBCompass连接后,点击红色框加号创建集合,点击蓝色框加号创建文档(数据表) 文档中的数据结构(相当于表中的列)设计不用管…

一个DW的计算

一个DW的计算 1- 题目: 已知一个DW1.1 要求: 从DW中取出指定的位的值1.1.1 分析1.1.2 实现1.1.3 简化实现1.1.4 验证 2- 题目: 已知一个DW2.1 要求: 从DW中的指定的P和S,取出指定的位的值2.1.1 分析2.1.2 实现 1- 题目: 已知一个DW 有图中所示一行信息,表示一个DW(…

常见的Web安全漏洞有哪些,Web安全漏洞常用测试方法介绍

Web安全漏洞是指在Web应用程序中存在的可能被攻击者利用的漏洞,正确认识和了解这些漏洞对于Web应用程序的开发和测试至关重要。 一、常见的Web安全漏洞类型: 1、跨站脚本攻击(Cross-Site Scripting,XSS):攻击者通过向Web页面注入…

养生的年轻人,自己给自己“治病”

【潮汐商业评论/原创】 “最近嘴周总长痘,应该是上火了,我这就下单点金银花露喝。”对于长痘这件事,Anna的第一反应就是“内调”。 “针对性护肤和涂药这些方法治标不治本,就算用完痘痘不泛红且瘪了,身体里的问题没解…

金蝶软件实现Excel数据复制分录信息粘贴到单据体分录行中

>>>适合KIS云专业版V16.0|KIS云旗舰版V7.0|K/3 WISE 14.0等版本<<< 实现Excel数据复制分录信息粘贴到金蝶单据体分录中,在采购订单|采购入库单|销售订单|销售出库单等类型单据中,以少量的必要字段在excel表格中按模板填列好,很方便快捷地复制到金蝶单据表体…

java+springboot+mysql银行管理系统

项目介绍&#xff1a; 使用javaspringbootmysql开发的银行管理系统&#xff0c;系统包含超级管理员、管理员、客户角色&#xff0c;功能如下&#xff1a; 超级管理员&#xff1a;管理员管理&#xff1b;客户管理&#xff1b;卡号管理&#xff08;存款、取款、转账&#xff09…

记一次微信小游戏渗透测试

本文转载于&#xff1a;https://www.freebuf.com/vuls/371936.html 准备工作 因为目标站点只能用微信打开&#xff0c;微信又不能调试看代码。这里推荐可以使用pc端旧版微信3.2.1&#xff0c;具体方法放链接里&#xff1a; https://blog.csdn.net/qq_45863248/article/details/…

Springboot 封装整活 Mybatis 动态查询条件SQL自动组装拼接

前言 ps&#xff1a;最近在参与3100保卫战&#xff0c;战况很激烈&#xff0c;刚刚打完仗&#xff0c;来更新一下之前写了一半的博客。 该篇针对日常写查询的时候&#xff0c;那些动态条件sql 做个简单的封装&#xff0c;自动生成&#xff08;抛砖引玉&#xff0c;搞个小玩具&a…

【Linux操作系统】深入探索Linux进程:创建、共享与管理

进程的创建是Linux系统编程中的重要概念之一。在本节中&#xff0c;我们将介绍进程的创建、获取进程ID和父进程ID、进程共享、exec函数族、wait和waitpid等相关内容。 文章目录 1. 进程的创建1.1 函数原型和返回值1.2 函数示例 2. 获取进程ID和父进程ID2.1 函数原型和返回值2.…

接口测试及接口抓包常用测试工具和方法?

作为测试领域中不可或缺的一环&#xff0c;接口测试和抓包技术在软件开发过程中扮演着至关重要的角色。不论你是新手还是有一些经验的小伙伴&#xff0c;本篇文章都会为你详细介绍接口测试的基本概念、常用测试工具和实际操作技巧&#xff0c;让你轻松掌握这一技能。 接口测试…

Java数字化智慧工地管理云平台源码(人工智能、物联网、大数据)

智慧工地优势&#xff1a;"智慧工地”将施工企业现场视频管理、建筑起重机械安全监控、现场从业人员管理、物料管理、进度管理、扬尘噪声监测等现场设备有机、高效、科学、规范的结合起来真正实现工程项目业务流与现场各类监控源数据流的有效结合与深度配合&#xff0c;实…

【JVM】对String::intern()方法深入详解(JDK7及以上)

文章目录 1、什么是intern&#xff1f;2、经典例题解释例1例2例3 1、什么是intern&#xff1f; String::intern()是一个本地方法&#xff0c;它的作用是如果字符串常量池中已经包含一个等于此String对象的字符串&#xff0c;则返回代表池中这个字符串的String对象的引用&#…

Java开源项目mall学习笔记(1)——项目初始化

一、学习声明与项目介绍 该笔记是记录学习开源项目mall过程的文档笔记&#xff0c;完全原创&#xff0c;转载请声明。同时也对开源项目的作者表示感谢&#xff01; mall: &#x1f525; mall项目是一套基于 SpringBoot Vue uni-app 实现的电商系统&#xff0c;包括前台商城项…

ArcGIS 利用cartogram插件制作变形地图

成果图 注&#xff1a;本图数据并不完全对&#xff0c;只做为测试用例 操作 首先需要下载一个插件cartogram 下载地址在这里 https://www.arcgis.com/home/item.html?idd348614c97264ae19b0311019a5f2276 下载完毕之后解压将Cartograms\HelpFiles下的所有文件复制到ArcGIS…

【Git】(二)分支

1、创建分支 已存在主分支master&#xff0c;现在需要创建v1.0的版本&#xff0c;一般直接在web页面操作。 v1.0分支&#xff0c;基线master&#xff0c;称为项目分支。 假如&#xff0c;v1.0项目存在两个项目成员sunriver2000和snow&#xff0c;一般还会再针对个人创建个人…

nodejs+vue+elementui学生档案信息管理系统_06bg9

利用计算机网络的便利&#xff0c;开发一套基于nodejs的大学生信息管理系统&#xff0c;将会给人们的生活带来更多的便利&#xff0c;而且在经济效益上&#xff0c;也会有很大的便利!这可以节省大量的时间和金钱。学生信息管理系统是学校不可缺少的一个环节&#xff0c;其内容直…

说一下什么是tcp的2MSL,为什么客户端在 TIME-WAIT 状态必须等待 2MSL 的时间?

1.TCP之2MSL 1.1 MSL MSL:Maximum Segment Lifetime报文段最大生存时间&#xff0c;它是任何报文段被丢弃前在网络内的最长时间 1.2为什么存在MSL TCP报文段以IP数据报在网络内传输&#xff0c;而IP数据报则有限制其生存时间的TTL字段&#xff0c;并且TTL的限制是基于跳数 1.3…