【斯坦福cs324w】中译版 大模型学习笔记九 大模型之Adaptation

文章目录

  • 引言
    • Adaptation的必要性
      • 从llm的训练过程分析
      • 从下游任务和原始训练任务之间的差异分析
    • 通用的Adaptation配置
  • 当前主流的Adaptation方法
    • Probing
    • Fine-tuning
    • Lightweight Fine-tuning
      • Prompt Tuning
      • Prefix Tuning
      • Adapter Tuning
  • 参考资料

在特定领域的下游任务中,仅仅使用prompt方法是不够的,我们需要使用特定于任务的数据或领域知识来针对下游任务进⾏适配
image.png

引言

Adaptation的必要性

从两个角度进行说明:llm的训练过程和下游任务与原始训练任务之间的不同之处的分析

从llm的训练过程分析

llm使用的是task-agnostic(任务不可知)的
这给llm带来了灵活性和广泛适用性,但也会出现通用模型在特定任务上不如专门为该任务训练的模型表现好

从下游任务和原始训练任务之间的差异分析

格式不同
举个例子,BERT模型训练过程中使用了MASK标记,但很多downstream task中是不使用这些标记的,比如NLI(自然语言推理)是比较两个句子后产生单一的二进制输出,这和llm根据上下文产生下一个标记是很不同的
主题需求
downstream tasks往往集中在特定的领域,这需要模型有相关的知识
时间转变
模型训练时使用的资料是有时限性、有资料使用的范围限制的
某些downstream task往往需要考虑到最新信息、在训练期间不公开的信息

通用的Adaptation配置

五个步骤
预训练模型(Pre-trained LM)
下游任务数据集(Downstream Task Dataset)
适配参数(Adaptation Parameters)
任务损失函数(Task Loss Function)
优化问题(Optimizaiton Problem)
image.png
image.png
image.png
image.png

当前主流的Adaptation方法

Probing

通常的用法
分析和理解模型内部表示的技术
举个例子:在BERT模型的训练中,我们可以引入一个词性标注分类器,将BERT模型的编码器部分的输出结果作为词性标注分类器的输入,根据分类器结果判断BERT的编码部分是否将模型输入token的词性信息进行了编码
如何进行llm的Adaptation
通过线性的或浅前馈网络学习预训练模型的输出,固定预训练模型的权重,训练probing部分的网络
固定长度表示的策略
处理的问题在于很多下游任务,如分类需要固定长度的输出(如何将L个嵌入向量经过probing之后得到一个向量)
方法一:CLS策略,CLS token对应的嵌入向量作为“序列级”嵌入,CLS token被放在整个token序列的第一个位置
方法二:平均化token策略,对L个token向量求平均之后作为probing网络的输入

Fine-tuning

使用llm的参数 θ \theta θ作为初始值的优化过程
特点
学习率比pre-train过程小,微调时长比pre-train过程小
存储量大,需要存储每个downstream task专门化的llm
性能比probing策略好
fine-tuning过程
收集⼈类书写的示范⾏为,即得到训练数据,进行有监督微调
利用人类反馈进行微调
使用强化学习目标微调

Lightweight Fine-tuning

轻量级微调
目标
减小模型存储需求(不需要存储每一个downstream task对应的llm)和计算负担、保持和全面微调同样的性能
主要方法
提示微调(prompt tuning):用户输入导向模型输出,通过在input上添加可学习的标记嵌入实现
前缀调整(prefix tuning):调整llm输入的又一种方式
适配器调整(adapter tuning):在模型的hidden layer之间插入可训练的adapter
有效性

  1. 提供了一种实现个性化模型的方法,例如通过prefix tuning技术,我们存储N个前缀,实现为N个用户部署模型,这些个性化模型是能够做到并行化运行的
  2. 提升模型鲁棒性,相较于全面微调,lightweight fine-tuning能够改善模型在分布外数据集上的性能

Prompt Tuning

主要用于文本分类任务
原理
通过在输⼊前添加k个可学习的、连续的标记嵌入来⼯作
则得到新的输入长度为 L ′ = L + k L'=L+k L=L+k
初始化策略
随机词汇词嵌入(Embedding of random vecab words)
类标签词嵌入(Embedding of class label words)

Prefix Tuning

用于语言生成任务
具体操作
在输入的开始处加入k个位置,在每个注意⼒层连接额外的可学习权重,作为键(key)值(value)

Adapter Tuning

具体操作
在每个Transformer层之间添加新的学习"bottleneck"层
adapter定义
image.png

参考资料

  1. datawhale so-large-lm学习资料

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

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

相关文章

使用Python做一个微信机器人

介绍 简介 该程序将微信的内部功能提取出来,然后在程序里加载Python,接着将这些功能导出成库函数,就可以在Python里使用这些函数 程序启动的时候会执行py_code目录下的main.py,类似于你在命令行使用python main.py。 现在会以…

vue + openlayer 按路径移动

示例 创建一个方形的规矩&#xff0c;并让点按轨迹移动。效果如下: 源代码 <template><div><div id"map" class"map"></div><button id"start-animation" ref"startButton">Start Animation</bu…

03 MIT线性代数-矩阵乘法和逆矩阵Multiplication inverse matrices

1. 矩阵乘法 Matrix multiplication 我们通过四种方法讨论如何使矩阵A与B相乘得到矩阵C。其中A为mxn&#xff08;m行n列&#xff09;矩阵&#xff0c;而B为nxp矩阵&#xff0c;则C为mxp矩阵&#xff0c;记cij为矩阵C中第i行第j列的元素 1.1 Regular way 矩阵乘法的标准计算方…

uni-app:canvas-图形实现1

效果 代码 <template><view><!-- 创建了一个宽度为300像素&#xff0c;高度为200像素的canvas元素。canvas-id属性被设置为"firstCanvas"&#xff0c;可以用来在JavaScript中获取该canvas元素的上下文对象。 --><canvas style"width:200p…

【AI视野·今日CV 计算机视觉论文速览 第253期】Mon, 25 Sep 2023

AI视野今日CS.CV 计算机视觉论文速览 Mon, 25 Sep 2023 Totally 64 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computer Vision Papers MosaicFusion: Diffusion Models as Data Augmenters for Large Vocabulary Instance Segmentation Authors Jiahao Xie, W…

郁金香2021年游戏辅助技术中级班(一)

郁金香2021年游戏辅助技术中级班&#xff08;一&#xff09; 用代码读取utf8名字字节数组搜索UTF-8字符串 用CE和xdbg分析对象名字从LUA函数的角度进行分析复习怪物名字偏移 用CE和xdbg分析对象数组认识虚函数表分析对象数组 分析对象数组链表部分链表的定义链表的数据在内存里…

想要精通算法和SQL的成长之路 - 最长递增子序列 II(线段树的运用)

想要精通算法和SQL的成长之路 - 最长递增子序列 II&#xff08;线段树的运用&#xff09; 前言一. 最长递增子序列 II1.1 向下递推1.2 向上递推1.3 更新操作1.4 查询操作1.5 完整代码&#xff1a; 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 最长递增子序列 II 原题链接…

OpenAI官方吴达恩《ChatGPT Prompt Engineering 提示词工程师》(2)如何迭代开发提示词

迭代/Iterative 在机器学习中&#xff0c;您经常有一个想法&#xff0c;然后实现它。编写代码&#xff0c;获取数据&#xff0c;训练模型&#xff0c;这就给您一个实验结果。然后您可以查看该输出&#xff0c;进行错误分析&#xff0c;找出哪些地方工作或不工作&#xff0c;然后…

郁金香2021年游戏辅助技术(初级班)(上)

郁金香2021年游戏辅助技术初级班&#xff08;上&#xff09; %p、size_t、%zd、%llu、FindWindow、GetWindowText、SetWindowTextGetWindowThreadProcessId、OpenProcess、ReadProcessMemory封接读内存接口函数 int R4(void* 地址)跨进程向目标进程内存地址写入数值 WriteProce…

【每日一题】递枕头

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;模拟方法二&#xff1a; O ( 1 ) O(1) O(1) 解法 写在最后 Tag 【模拟】【 O ( 1 ) O(1) O(1) 公式】【2023-09-26】 题目来源 2582. 递枕头 题目解读 编号从 1 到 n 的 n 个人站成一排传递枕头。最初&#xff0c;排…

华南理工大学电子与信息学院23年预推免复试面试经验贴

运气较好&#xff0c;复试分数90.24&#xff0c;电科学硕分数线84、信通83、专硕电子与信息74. 面试流程&#xff1a; 1&#xff1a;5min ppt的介绍。其中前2min用英语简要介绍基本信息&#xff0c;后3min可用英语也可用中文 介绍具体项目信息如大创、科研、竞赛等&#xff08…

出现 conda虚拟环境默认放在C盘 解决方法

目录 1. 问题所示2. 原理分析3. 解决方法3.1 方法一3.2 方法二1. 问题所示 通过conda配置虚拟环境的时候,由于安装在D盘下,但是配置的环境默认都给我放C盘 通过如下命令:conda env list,最后查看该环境的确在C盘下 2. 原理分析 究其根本原因,这是因为默认路径没有足够的…

编程每日一练(多语言实现):判断偶数

文章目录 一、实例描述二、技术要点三、代码实现3.1 C 语言实现3.2 Python 语言实现3.3 Java 语言实现 一、实例描述 利用单条件单分支选择语句判断输入的一个整数 是否是偶数。 运行程序&#xff0c;输入一个 整数18&#xff0c; 然后按回车键&#xff0c;将提示该数字是偶数…

linux使用操作[2]

文章目录 版权声明网络传输ping命令wget命令curl命令端口linux端口端口命令和工具 进程管理查看进程关闭进程 主机状态top命令内容详解磁盘信息监控 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明&#xff0c;所有版权属于黑马程序员或相…

Android ConstraintLayout app:layout_constraintHorizontal_weight

Android ConstraintLayout app:layout_constraintHorizontal_weight <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:…

【已解决】qt死活不响应鼠标移动到按钮事件

本博文源于笔者正在研究的内容&#xff0c;这个问题大概捣鼓了一个下午&#xff0c;问题是这样子&#xff1a;我有一个按钮&#xff0c;我应用程序运行时&#xff0c;我鼠标放到按钮上&#xff0c;按钮就会被填充图标。怀揣着这样一个想法&#xff0c;我搜啊搜&#xff0c;整啊…

verilog学习笔记(1)module实例化2

移位寄存器多路选择器 我的代码&#xff1a; module top_module ( input clk, input [7:0] d, input [1:0] sel, output [7:0] q );wire [7:0] w1;wire [7:0] w2;wire [7:0] w3;my_dff8 my_dff8_1(.clk(clk),.d(d),.q(w1));my_dff8 my_dff8_2(.clk(clk),.d(w1),.q(w2));my_d…

前端知识总结

在前端开发中&#xff0c;y x是一种常见的自增运算符的使用方式。它表示将变量x的值自增1&#xff0c;并将自增后的值赋给变量y。 具体来说&#xff0c;x是一种后缀自增运算符&#xff0c;表示将变量x的值自增1。而y x则是将自增前的值赋给变量y。这意味着在执行y x之后&am…

【MySQL】表的约束

文章目录 1. 表的约束概述2. 空属性 not null3. 默认值 default4. 列描述 comment5. zerofill6. 主键 primary key7. 自增长 auto_increment8. 唯一键 unique9. 外键 foreign key 1. 表的约束概述 真正约束字段的是数据类型&#xff0c;但是数据类型约束很单一&#xff0c;需要…

基于微信小程序的英语互助小程序设计与实现(亮点:小组制打卡、模拟考试答题、错题本、学习论坛)

文章目录 前言系统主要功能&#xff1a;具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…