自然语言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.rhkb.cn/news/249979.html

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

相关文章

LeetCode707.设计链表

707. 设计链表 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链表,则还需要属性 prev 以指示链表…

如何在社交平台做好影视宣传?媒介盒子支招

影视宣传和产品营销其实都是一样的,都需要通过找出用户痛点,表现产品/影视的主要两点,提高利润。然而影视宣传还有一个独特的宣发手段,以影视本身的内容制造一种流行趋势,吸引受众,今天媒介盒子就来和大家聊…

Linux:理解信号量以及内核中的三种通信方式

文章目录 共享内存的通信速度消息队列msggetmsgsndmsgrcvmsgctl 信号量semgetsemctl 内核看待ipc资源单独设计的模块ipc资源的维护 理解信号量总结 本篇主要是基于共享内存,延伸出对于消息队列和信号量,再从内核的角度去看这三个模块实现进程间通信 共享…

游戏开发丨基于Panda3D的迷宫小球游戏

文章目录 写在前面Panda3D程序设计程序分析运行结果系列文章写在后面 写在前面 本期内容 基于panda3d的迷宫中的小球游戏 所需环境 pythonpycharm或anacondapanda3d 下载地址 https://download.csdn.net/download/m0_68111267/88792121 Panda3D Panda3D是一种开放源代码…

Transformer|Encoder(未完成)

文章目录 Transformer|Encoder编码器注意力机制残差残差的作用 Transformer|Encoder编码器 注意力机制 比如说已经得到腰围和体重的两份数据,此时给出一个查询——腰围为57的人的体重为多少?可以根据以往的腰围数据对体重进行估计…

Kubernetes WebHook 入门 -- 入门案例: apiserver 接入 github

博客原文 文章目录 k8s 集群配置介绍Admission WebhookWebHook 入门实践: github 认证接入web 服务器Dockerfile 镜像制作amd64x86_64构造镜像检验镜像 Makefilewebhook 接入 apiserverwebhook.yamlapiserver 挂载 webconfig在 github 中创建认证 token将 token 添加到 kubecon…

Android.bp入门指南之浅析Android.bp文件

文章目录 Android.bp文件是什么?Android.bp的主要作用模块定义依赖关系构建规则模块属性插件支持模块的可配置性 为什么会引入Android.bp语法例子 Android.bp文件是什么? Android.bp 文件是 Android 构建系统(Android Build System&#xff…

C/C++ C++入门

个人主页:仍有未知等待探索-CSDN博客 专题分栏:C_仍有未知等待探索的博客-CSDN博客 目录 一、C关键字 二、命名空间 1、区别 1. C语言 ​编辑 2. C 2、命名空间定义 3、命名空间的使用 三、C输入&输出 四、缺省参数 五、函数重载 六、引用 …

界面控件DevExpress ASP.NET Data Grid组件 - 可快速处理各类型数据!(二)

由DevExpress开发的快速且功能完整的ASP.NET Web Forms的Data Grid组件,从全面的数据塑造和数据过滤选项到十多个集成数据编辑器,该套件提供了帮助用户构建极佳数据所需的一些,没有限制!在上文中(点击这里回顾>>…

基于Springboot开发的JavaWeb作业查重系统[附源码]

基于Springboot开发的JavaWeb作业查重系统[附源码] 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统 &a…

MtfLive直播导航PHP源码,附带系统搭建教程

将自动采集斗鱼、虎牙、触手、YY、章鱼、电视直播按分类/关键词聚合,用户选择分类,可以观看到全网该关键词下正在直播的内容。 特点 PC站和H5移动站自适应 自动缓存,避免频繁抓取数据 自定义抓取采集规则,同时支持HTML和JSON …

Linux网络状态查看与防火墙管理

网络状态查看 netstat [选项] Netstat是一款命令行工具,用于显示Linux系统中网络的状态信息,可以显示网络连接、路由表、连接的数据统计等信息。 使用 选项 -a:显示所有选项,包括监听和未监听的端口。 -t:仅显示tc…

【大厂AI课学习笔记】1.4 算法的进步(2)

关于感知器的兴衰。 MORE: 感知器的兴衰 一、感知器的发明与初期振动 在人工智能的历史长河中,感知器(Perceptron)无疑是一个里程碑式的存在。它最初由心理学家Frank Rosenblatt在1950年代提出,并在随后的几年中得到…

【MyBatis】MyBatis是什么?作用?怎么实现?

一、MyBatis是什么 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain …

vue2+html2pdf下载PDF,PDF分页切割

问题: PDF下载下来后,文档内容被暴力分割。 解决方案: HTML <!-- 打印按钮 --> <el-button type="primary" size="small" class="el-icon-download right_btn" @click="downloadPDF">PDF</el-button><!-- …

美国的服务器平台盘点 (服务器美国节点哪家好)

一般来说&#xff0c;企业所选服务器的不同是根据业务种类的不同而促成的。对于业务范围主要在国内活动的站长来说&#xff0c;国内服务器足矣;但对于外贸行业来说&#xff0c;想把海外业务扩展起来的话&#xff0c;更适用于使用国外服务器。当前&#xff0c;国外服务器中&…

Unity SRP 管线【第九讲:URP 点光源与聚光灯】

文章目录 CPU数据搜集GPU数据使用光照计算 CPU数据搜集 我们只能支持有限数量的其他灯。并将这些灯光数据&#xff08;位置、颜色、阴影强度、方向光光源、灯光遮蔽Probe、灯光层级Mask&#xff09;发送到GPU以供场景中所有物体渲染使用。 //ForwardLights.cs 额外光源数量与…

The Rise and Potential of Large Language Model Based Agents: A Survey 中文翻译

大型语言模型代理的崛起与潜力&#xff1a;综述 摘要 长期以来&#xff0c;人类一直追求与或超越人类水平的人工智能&#xff08;AI&#xff09;&#xff0c;而人工智能代理被视为实现这一目标的有希望的方式。人工智能代理是感知环境、做出决策并采取行动的人工实体。已经有…

Mysql-ReadView + MVCC-RR 与 RC

实验准备 创建脚本 CREATE TABLE user (id int(11) NOT NULL AUTO_INCREMENT,name varchar(16) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,age int(11) NULL DEFAULT NULL,addr varchar(256) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,PRIMARY …

Wireshark网络协议分析 - UDP协议

在我的博客阅读本文 文章目录 1. 基础2. 实战2.1. 用Go写一个简单的UDP服务器与客户端2.2. Wireshark抓包分析 3. UDP与TCP的区别4. 参考资料 1. 基础 UDP包的数据结构&#xff1a; 2. 实战 2.1. 用Go写一个简单的UDP服务器与客户端 我们这里使用Golang写了一个简单的9830端…