LLM--微调(Adapters,Prompt,Prefix)

文章目录

任务:了解思想,核心掌握下一节LoRA微调

适配器(Adapters)

提出背景:谷歌针对"BERT"的微调,谷歌工程师认为仅仅微调后面几层参数,效果很不好。

解决思想 :不更新全部参数,微调的时候在Transformer编码层上添加几层"神经网络层",微调的时候其他参数冻结,只更新"新添加的网络结构参数"

Prompt-Tuning

提示词工程(Prompt Engineering)

什么是提示词工程?

先看一个小demo。

假设询问大模型一个问题:"为什么天空是蓝色?"

对比三种方式的大模型回答。

  1. 模糊,无引导大模型。

大模型可能回答:

  • 因为太阳光是蓝色的
  • 因为空气中有蓝色气体
  1. 结构化 + 角色设定
plain 复制代码
你是一位中学物理老师,请用通俗易懂的语言,向初中生解释"为什么晴朗的天空是蓝色的"。要求:
1. 基于瑞利散射原理;
2. 不超过150字;
3. 避免使用复杂公式。

这个时候可能就会输出:

  • 这是因为太阳光进入大气层时,遇到空气分子会发生"瑞利散射"。蓝光波长较短,比红光更容易被散射到各个方向,所以我们抬头看天空时,就看到一片蓝色啦!

🍔显得很专业。

  1. 思维链引导
plain 复制代码
请逐步推理并回答:为什么晴朗的天空是蓝色的?

步骤1:太阳光由哪些颜色组成?  
步骤2:光进入大气层后会发生什么现象?  
步骤3:不同颜色的光散射程度有何不同?  
步骤4:人眼看到的是哪种光的散射结果?

输出示例

  • 太阳光是由红、橙、黄、绿、蓝、靛、紫等多种颜色组成的白光。
  • 当阳光穿过地球大气层时,会与空气中的分子和微粒发生散射。
  • 根据瑞利散射定律,波长越短的光(如蓝光、紫光)散射越强。
  • 虽然紫光散射更强,但人眼对蓝光更敏感,且部分紫光被臭氧吸收,因此我们看到的天空呈蓝色。

🍔逻辑很清楚,也有利于防止回答错误。


所以,总的来说,**提示词工程就是对模型思考回答的引,**如果没有提示词,模型回答可能会变得很模糊,加提示词是为了让模型更准确的回答问题。

提示词工程作用

对普通用户:可以更好的获得AI的服务

对开发者:构建AI应用的基础

提示词工程关键要素

一句话:角色 + 任务 + 约束 + 格式

  • 角色:"我是谁?"
  • 任务:"需要做什么?"
  • 约束:"需要做的目标是谁?"
  • 格式:输出格式,如:字数约束

提示词微调(Prompt-tuning)

提出:微软提出的一种高效微调方法。

先来看传统微调方法

  • 思想 :在预训练的模型基础上,针对不同任务分别训练,从而获得专有模型。

Prompt-tuning方法

  • 思想 :将多种任务进行混合,结合"提示词"思想,在每个任务前加一个"提示词",以区分不同任务。

  • 实现:这个"提示词"是可学习的,在Prompt-tuning中,他是作为embedding参数的一部分,随着模型训练的时候一起学习。

  • 参数更新:在进行微调的时候,预训练权重基本不更新,只更新可学习的 prompt 向量

  • 缺点:小数据下不够好

Prefix-Tuning

作者:斯坦福研究人员

思想:与prompt-tuning类似,Prefix思路是在输入的开头增加一段"virtual token"作为输入的prefix,模型微调的时候,只更新Prefix参数。

与Prompt区别:

  • "virtual-token"会被增加每一层的输入层中,prompt-tuning是只在embedding时候添加。
  • 为了防止直接跟新Prefix的参数导致训练不稳定,在Prefix前加入MLP结构。

在encoder-decoder模型中,encoder、decoder架构中,输入均需要加prefix

参考资料

相关推荐
羊小猪~~7 小时前
LLM--BERT架构解析
人工智能·深度学习·大模型·llm·nlp·bert·ai算法
未来之窗软件服务7 小时前
SenseVoicecpp ggml-hexagon.cpp大模型[AI人工智能(七十九)]—东方仙盟
人工智能·算法·仙盟创梦ide·东方仙盟
xiaoye-duck7 小时前
《算法题讲解指南:动态规划算法--子数组系列》--25.单词拆分,26.环绕字符串中唯一的子字符串
c++·算法·动态规划
Fcy6488 小时前
算法基础详解(二)枚举算法——普通枚举与二进制枚举
算法·枚举算法
承渊政道8 小时前
【优选算法】(实战:栈、队列、优先级队列高频考题通关全解)
数据结构·c++·笔记·学习·算法·leetcode·宽度优先
py有趣8 小时前
力扣热门100题之将有序数组转为二叉搜索树
算法·leetcode
天若有情6738 小时前
Python精神折磨系列(完整11集·无断层版)
数据库·python·算法
凌波粒8 小时前
LeetCode--383.赎金信(哈希表)
java·算法·leetcode·散列表
诸神缄默不语8 小时前
如何选择合适的大模型(写给小白的LLM工具选型系列:第二篇)
人工智能·大模型