自然语言nlp学习 三

4-8 Prompt-Learning--应用_哔哩哔哩_bilibili

Prompt Learning(提示学习)是近年来在自然语言处理领域中,特别是在预训练-微调范式下的一个热门研究方向。它主要与大规模预训练模型如GPT系列、BERT等的应用密切相关。

在传统的微调过程中,通常需要对预训练模型的顶部添加特定任务相关的层或结构,并针对目标任务进行端到端的训练。而Prompt Learning则提出了一种新颖的方式,通过设计巧妙的任务提示(prompt),将下游任务转换为与预训练阶段相似的语言模型预测任务,无需添加额外的结构。

具体来说,Prompt Learning的核心思想是构造一个或多个文本模板,这些模板能将待解决的任务转化为模型熟悉的自然语言问题或语境。例如,在文本生成任务中,可以将一句话的开头作为提示,然后让模型基于这个提示去完成剩余部分的生成;在问答任务中,可以将问题嵌入到一个自然语言的问句模板中,使其看起来像是模型在预训练时就已经见过的问题形式。

这种方法有效地利用了预训练模型已经学到的通用语言知识,避免了过拟合和微调可能导致的知识遗忘问题,有助于提高模型在小样本甚至零样本场景下的泛化能力和性能表现。同时,Prompt Learning也极大地拓展了预训练模型的应用范围,使得非专业人士能够更容易地使用预训练模型来解决各种自然语言处理任务。

多模态

多模态(Multimodal)是指在机器学习、人工智能和信号处理等领域中,同时利用和融合两种或多种不同类型的感知数据或信息源来理解和处理信息的方法。这些不同的模态可以包括但不限于:

  1. 视觉模态:图像、视频、视觉特征等。
  2. 听觉模态:语音、音频、声谱图等。
  3. 文本模态:自然语言文本、关键词、标签等。
  4. 触觉模态:力反馈、触感信息等。
  5. 空间/位置模态:地理位置、三维空间结构、姿态信息等。

在多模态技术中,模型通常被训练以联合建模的方式来解析和关联不同模态的数据,目的是为了更全面地模拟人类的感知和理解世界的方式,并提升系统的性能,如提高识别准确性、增强交互体验等。例如,在多模态机器翻译中,系统可能同时考虑文本和图像信息来生成翻译结果;在智能助手应用中,可能会结合语音输入和视觉环境信息来提供更加准确的服务响应。

Delta Tuning

Delta Tuning 是一种调整PID控制器参数(比例P、积分I和微分D)的方法,尤其适用于已经具有初始整定参数的系统。在工业自动化控制领域中,Delta Tuning 是一种相对快速且实用的现场整定技术,用于优化闭环控制系统性能。

其基本思想是通过小幅度地改变PID控制器各部分的参数来观察系统响应,并根据响应变化情况进一步调整参数。具体步骤包括:

  1. 步进测试:首先,对PID控制器的某个参数进行一次增量更改(例如,增加或减少ΔP的比例增益),并观察系统的响应。
  2. 分析结果:分析系统响应的变化,如超调量、振荡频率、调节时间等性能指标,以确定下一步如何调整参数。
  3. 迭代调整:基于上述分析,对每个参数(P、I、D)分别进行类似的步进调整,直至获得满意的系统动态性能,如快速稳定、无明显振荡或者达到特定的稳态精度要求。

Delta Tuning 的有效性在于它利用了系统对于参数微小变化的即时反应,从而避免了复杂的理论计算和长时间的实际运行测试。不过这种方法依赖于操作员的经验和对系统的理解程度,而且可能不适用于所有类型的系统,特别是非线性或时变系统。对于复杂的过程控制,现代整定方法可能会结合自动整定算法和先进的过程辨识技术。

fine tuning

微调(fine-tuning)的过程如下:

在深度学习中,通常会先利用大规模的数据集训练一个基础模型,如预训练的自然语言模型(如BERT、GPT系列等)、计算机视觉模型(如ResNet、VGG等)。这个基础模型在训练过程中学习到了大量通用特征和模式,对于许多相关的下游任务具有一定的泛化能力。

当需要解决一个新的特定问题或使用新的特定数据集时,我们可以直接使用这个预训练模型作为起点,而不是从头开始训练一个新的模型。这是因为预训练模型已经具备了一定的基础知识表示能力,只需在此基础上进行一定程度的调整,就可以适应新任务的需求。

微调的具体做法是:将预训练模型的部分或全部权重参数解锁,并用新的目标数据集对该模型进行再训练。这样做的好处是可以大大加快训练速度,同时由于模型已有较好的初始化,往往能取得比从零开始训练更好的效果。尤其在数据量有限的情况下,微调策略尤为有效。

verbalizer

在自然语言处理(NLP)领域,特别是在Prompt Learning(提示学习)和预训练模型的上下文中,"Verbalizer"(词表征器或词映射器)是一个特定的概念,它用于将模型的输出转换为特定任务的标签空间。

通常,在prompt-based fine-tuning中,设计一个合理的prompt可以引导预训练模型如GPT系列、BERT等去预测与目标任务相关的词语或短语。这里的“verbalizer”就是指定义了这个从模型最后层的词汇分布到实际标签类别之间的映射规则。

例如,在文本分类任务中,假设我们有一个情感分析任务,目标是判断文本的情感极性是正面、负面还是中性。那么,verbalizer会指定模型需要生成哪些词汇来代表这些情感类别。比如,对于正面情感,verbalizer可能会选择“积极”、“正面”这样的词汇作为正类标签的触发词;而对于负面情感,则可能对应“消极”、“负面”等词汇。

总的来说,verbalizer是prompt方法中的一个重要组成部分,它帮助预训练模型的输出能够与具体任务的目标标签进行匹配,从而实现对下游任务的有效适应。

soft token

在自然语言处理和机器学习领域中,“soft token”通常不是一个标准术语,但根据上下文,它可能指的是以下概念之一:

  1. Soft Segmentation Tokens: 在某些文本处理或深度学习模型(尤其是基于Transformer的模型)中,特别是在处理连续性文本时,可能会使用“soft tokenization”。这不同于传统的硬分词(hard tokenization),后者将文本分割成离散的、固定的词汇单元。软分词可能通过概率模型来实现,产生的是连续的概率分布,而非确定的边界。

  2. Soft Attention Tokens: 在Transformer等模型的注意力机制中,有时会提到“soft attention”,这里的“token”并非指文本中的实际词汇,而是指在计算注意力权重过程中生成的加权向量。这些“soft tokens”代表了对输入序列中不同部分的关注程度,而非具体的词汇符号。

  3. Soft Label Tokens: 在训练模型时,尤其是在半监督或者迁移学习场景下,有时候标签可能是概率分布形式的“soft labels”,而不是硬类别标签。这种情况下,每个类别可以被视为一个带有置信度分数的“soft token”。

  4. Embedding Vectors: 在某些语境下,"soft token"可能是指模型输出的词嵌入向量,这些向量是连续的、高维空间中的点,它们以一种模糊的方式表示词汇的意义,而非精确的一一对应关系。

如果要更准确地理解“soft token”的含义,需要具体到特定的技术文档或研究论文中去分析其上下文。

pipeline

loss

freeze model

5-2 BMTrain--背景介绍_哔哩哔哩_bilibili

前向传播

前向传播(Forward Propagation)是神经网络在接收到输入数据时,从输入层到输出层逐层计算并生成预测结果的过程。这一过程遵循一系列线性与非线性变换规则,每个神经元节点的输出成为下一层节点的输入,直至达到最终的输出层。

对于一个简单的单层神经网络模型(例如您提到的NeuralNetwork(inputs, weight)函数),前向传播步骤如下:

  1. 输入数据:给定一个或多个输入值。

    • 例如:inputs = 2
  2. 权重参数:定义连接输入和输出的权重值。

    • 例如:weight = -1
  3. 计算节点输出:将输入值与对应的权重相乘得到该节点的净输入。

    • 例如:net_input = inputs * weight
  4. (可能还包括偏置项,并进行激活函数处理)

    • 在简化版本中没有明确提到偏置项,且未指明使用何种激活函数,因此这里假设直接输出净输入作为预测结果。
  5. 预测输出:简单模型中,经过上述计算后的结果就是预测值。

    • 例如:prediction = net_input = 2 * (-1) = -2

在多层感知器(MLP)、卷积神经网络(CNN)或循环神经网络(RNN)等更复杂的神经网络结构中,前向传播涉及更多的层次和操作,包括但不限于:

  • 每层各节点的加权求和(包括偏置项)。
  • 对每个节点的加权和应用非线性激活函数(如sigmoid、ReLU等)以引入模型的非线性表达能力。
  • 这些步骤在每一层中重复,直到到达输出层,得出最终的预测结果。

在训练神经网络时,前向传播是用来初步计算损失函数(即模型预测输出与实际标签之间的差距)的关键步骤。随后,通过反向传播(Backward Propagation)来更新网络中的权重和偏置,以最小化这个损失函数。

反向传播 

反向传播(Backward Propagation)是神经网络训练过程中的核心算法,它用于计算损失函数关于模型参数(如权重和偏置)的梯度,进而通过梯度下降或其他优化方法更新这些参数以减少损失并改善模型性能。

在前向传播阶段完成计算得到预测结果后,如果模型预测与实际目标存在差异,则需要通过反向传播来调整模型参数。反向传播的具体步骤如下:

  1. 计算损失:首先,根据前向传播得出的预测输出和真实标签计算损失函数值。对于分类问题常用交叉熵损失,回归问题中可能使用均方误差等。

  2. 反向传播初始化:从输出层开始,计算损失相对于该层激活值的梯度(即损失函数对每个输出节点的偏导数)。

  3. 逐层反向传播:

    • 对于每一层(从输出层到输入层),计算损失相对于该层所有神经元激活值的梯度。
    • 接着,利用链式法则以及各层的激活函数的导数(也称为导数或微分),计算损失相对于该层权重矩阵和偏置向量的梯度。
    • 这个过程中通常会保存前向传播时的中间结果(例如,激活值和它们对应的输入信号),以便高效地进行梯度计算。
  4. 更新参数:一旦获得了所有参数的梯度,就可以使用优化器(如SGD、Adam等)结合学习率来更新权重和偏置。更新公式通常是weight = weight - learning_rate * gradient

  5. 循环迭代:这一正向传播和反向传播的过程反复进行,直至达到预设的停止条件,比如达到最大迭代次数、损失收敛或验证集上的性能不再提升等。

简而言之,反向传播的核心作用在于基于损失函数的梯度信息指导模型参数朝着减小损失的方向调整,从而实现模型的自我学习和改进。

梯度

梯度(Gradient)在数学和机器学习中是一个非常重要的概念,它表示函数值相对于自变量变化率的最大方向。对于一个多变量的函数 f(x1, x2, ..., xn),其梯度可以理解为一个向量,这个向量包含了函数在各个维度上的偏导数,即:

∇f(x1, x2, ..., xn) = [∂f/∂x1, ∂f/∂x2, ..., ∂f/∂xn]

在机器学习和深度学习领域,当我们训练神经网络时,梯度扮演着至关重要的角色。具体来说,在反向传播过程中,我们计算损失函数关于模型参数(如权重和偏置)的梯度。通过梯度,我们可以了解模型预测误差对每个参数的影响程度以及影响的方向。

如果我们要最小化损失函数,我们会沿着梯度的反方向调整参数,因为梯度方向指示了使函数值增长最快的方向,而梯度的反方向则是使函数值下降最快的方向。这就是梯度下降算法的基础,也是优化神经网络的核心机制。常见的梯度优化方法包括批量梯度下降、随机梯度下降及其变种(如动量梯度下降、RMSProp、Adam等)。

5-5 BMTrain--ZeRO_哔哩哔哩_bilibili

在机器学习和深度学习领域,“优化器”(Optimizer)是一种算法或方法,用于更新模型的参数以最小化损失函数(对于监督学习任务),或者最大化某个目标函数(对于无监督学习任务)。常见的优化器包括:

  1. 梯度下降法(Gradient Descent):最基础的优化器,通过沿着损失函数梯度的反方向更新权重来逐步降低损失。

  2. 随机梯度下降(Stochastic Gradient Descent, SGD):每次迭代只使用一个或一小批量样本计算梯度进行更新,相比于梯度下降法更适用于大规模数据集训练。

  3. 动量(Momentum):基于SGD改进的一种优化器,在更新过程中加入了一个历史梯度项,可以加速收敛并有助于穿越鞍点。

  4. RMSProp:自适应学习率优化器,它根据每个参数的历史梯度平方值调整学习率,使得学习率对不同参数具有不同的更新速度。

  5. Adam (Adaptive Moment Estimation):一种流行的自适应学习率优化算法,结合了RMSProp中自适应学习率调整的优点以及动量的概念,通常在各种深度学习任务中有良好的表现。

这些优化器在训练神经网络时负责找到最优参数组合,以达到模型性能的最佳状态。

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

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

相关文章

将vite项目(vue/react)使用vite-plugin-pwa配置为pwa应用,只需要3分钟即可

将项目配置为pwa模式,就可以在浏览器里面看到安装应用的选项,并且可以将web网页像app一样添加到手机桌面或者pad桌面上,或者是电脑桌面上,这样带来的体验就像真的在一个app上运行一样。为了实现这个目的,我们可以为vue…

算法设计与分析实验:滑动窗口与二分查找

目录 一、寻找两个正序数组的中位数 1.1 具体思路 1.2 流程展示 1.3 代码实现 1.4 代码复杂度分析 1.5 运行结果 二、X的平方根 2.1 具体思路 2.2 流程展示 2.3 代码实现 2.4 代码复杂度分析 2.5 运行结果 三、两数之和 II-输入有序数组 3.1 采用二分查找的思想 …

LeetCode —— 43. 字符串相乘

😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️Take your time ! 😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️…

Bio-Rad(Abd serotec)独特性抗体

当一种抗体与另一种抗体的独特型结合时,它被称为抗独特型抗体。抗体的可变部分包括独特的抗原结合位点,称为独特型。独特型(即独特型)内表位的组合对于每种抗体都是独特的。 如今开发的大多数治疗性单克隆抗体是人的或人源化的,用于诱导抗药…

【国产MCU】-认识CH32V307及开发环境搭建

认识CH32V307及开发环境搭建 文章目录 认识CH32V307及开发环境搭建1、CH32V307介绍2、开发环境搭建3、程序固件下载1、CH32V307介绍 CH32V307是沁恒推出的一款基于32位RISC-V设计的互联型微控制器,配备了硬件堆栈区、快速中断入口,在标准RISC-V基础上大大提高了中断响应速度…

java 社区资源管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web社区资源管系统是一套完善的java web信息管理系统 ,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.…

bxCAN-中断

bxCAN中断 bxCAN 共有四个专用的中断向量。每个中断源均可通过 CAN 中断使能寄存器 (CAN_IER) 来单独地使能或禁止。 发送中断可由以下事件产生: 发送邮箱 0 变为空,CAN_TSR 寄存器的 RQCP0 位置 1。 发送邮箱 1 变为空,CAN_TSR 寄存器…

SkyWalking+es部署与使用

第一步下载skywalking :http://skywalking.apache.org/downloads/ 第二步下载es:https://www.elastic.co/cn/downloads/elasticsearch 注:skywalking 和es要版本对应,可从下面连接查看版本对应关系,8.5.0为skywalking 版本号 Index of /di…

Apache Commons Collection3.2.1反序列化分析(CC1)

Commons Collections简介 Commons Collections是Apache软件基金会的一个开源项目,它提供了一组可复用的数据结构和算法的实现,旨在扩展和增强Java集合框架,以便更好地满足不同类型应用的需求。该项目包含了多种不同类型的集合类、迭代器、队…

大数据学习之Redis、从零基础到入门(三)

目录 三、redis10大数据类型 1.哪十个? 1.1 redis字符串(String) 1.2 redis列表(List) 1.3 redis哈希表(Hash) 1.4 redis集合(Set) 1.5 redis有序集合&#xff08…

Android SystemUI 介绍

目录 一、什么是SystemUI 二、SystemUI应用源码 三、学习 SystemUI 的核心组件 四、修改状态与导航栏测试 本篇文章,主要科普的是Android SystemUI , 下一篇文章我们将介绍如何把Android SystemUI 应用转成Android Studio 工程项目。 一、什么是Syst…

华为配置小型网络WLAN 的基本业务示例

配置小型网络WLAN基本业务示例 组网图形 图1 配置小型网络WLAN基本业务组网图 小型WLAN网络简介配置注意事项组网需求数据规划配置思路操作步骤配置文件 小型WLAN网络简介 本文介绍的WLAN网络是指利用频率为2.4GHz或5GHz的射频信号作为传输介质的无线局域网,相对于有…

Vue之初识Vue CLI 脚手架

Vue CLI 是Vue 官方提供的一个全局命令工具 可以帮助我们快速创建一个开发Vue项目的标准化基础架子。【集成了webpack配置】 脚手架有什么好处? 1.开箱即用,零配置 2.内置 babel 等工具 3.标准化 使用步骤: 1.全局安装(一次):yarn globaladd vue/cli …

Hack The Box-Pov

信息收集&端口利用 先使用nmap对主机进行端口扫描 nmap 10.10.11.251只开放了80端口 访问网站后发现没有什么功能点,尝试目录扫描 并没有什么能够利用的点 使用gobuster进行子域名扫描 gobuster dns -d pov.htb -w /usr/share/wordlists/seclists/Discovery/DNS/subdo…

MSE Nacos 配置变更审计平台使用指南

作者:孙立(涌月)、邢学超(于怀)、李艳林(彦林) 配置审计平台简介 Nacos [ 1] 作为一款业界主流的微服务注册中心和配置中心,管理着企业核心的配置资产,由于配置变更的安…

聚醚醚酮(Polyether Ether Ketone)PEEK在粘接使用时使用UV胶水的优势有哪些?要注意哪些事项?

使用UV胶水在聚醚醚酮(Polyether Ether Ketone,PEEK)上进行粘接可能具有一些优势,但同时也需要注意一些事项。以下是使用UV胶水的优势和需要考虑的事项: 优势: 1.快速固化: UV胶水通常具有快速…

spark window源码探索

核心类: 1. WindowExec 物理执行逻辑入口,主要doExecute()和父类WindowExecBase 2. WindowFunctionFrame 窗框执行抽象,其子类对应sql语句的不同窗框 其中又抽象出BoundOrdering类, 用于判断一行是否在界限内(Bound), 分为RowBoundOrdering…

总结10(break和continue)

break break如果用于循环是用来终止循环 break如果用于switch,则是用于终止switch break不能直接用于if,除非if属于循环内部的一个子句(下图为举例) 例1: (该图中break与if没有关系,只终止for循…

3、css设置样式总结、节点、节点之间关系、创建元素的方式、BOM

一、css设置样式的方式总结: 对象.style.css属性 对象.className ‘’ 会覆盖原来的类 对象.setAttribut(‘style’,‘css样式’) 对象.setAttribute(‘class’,‘类名’) 对象.style.setProperty(css属性名,css属性值) 对象.style.cssText “css样式表” …

利用外卖系统源码构建高效的在线订餐平台

在当今数字化时代,外卖服务已成为人们日常生活中不可或缺的一部分。为了满足用户需求,许多创业者和企业都希望搭建自己的在线订餐平台。利用现有的外卖系统源码,可以快速构建一个高效、安全的在线订餐平台。本文将介绍如何利用外卖系统源码来…