码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • PEFT LoraConfig参数详解


    参数高效微调 (PEFT) 可以使预训练模型高效适应下游应用,而无需微调所有模型参数。 PEFT 支持广泛使用的大型语言模型低秩适应 (LoRA)。

    为了从预训练的 Transformer 模型创建 LoRA 模型,我们导入并设置 LoraConfig。 例如,

    1. from peft import LoraConfig
    2. config = LoraConfig(
    3. r=8,
    4. lora_alpha=16,
    5. target_modules=["q", "v"],
    6. lora_dropout=0.01,
    7. bias="none"
    8. task_type="SEQ_2_SEQ_LM",
    9. )

    NSDT在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

    让我们回顾一下 LoraConfig 中的参数。

    1、LoRA 维数/分解阶 r

    对于要训练的每一层,d×k权重更新矩阵ΔW由低秩分解BA表示,其中B是d×r矩阵,A是r×k矩阵。 分解 r 的秩为 << min(d,k)。 r 的默认值为 8。

    A 由随机高斯数初始化,因此初始权重更新有一些变化。 B 由零初始化,因此训练开始时 ΔW 为零。

    2、LoRA 缩放参数 lora_alpha

    根据 LoRA 文章,ΔW 按 α / r 缩放,其中 α 是常数。 当使用 Adam 进行优化时,如果适当缩放初始化,调整 α 与调整学习率大致相同。 原因是参数的数值随 r 线性增加。 随着 r 的增加,ΔW 中的条目值也随 r 线性缩放。 无论使用什么 r,我们都希望 ΔW 能够与预训练权重保持一致。 这就是为什么作者将 α 设置为第一个 r 并且不对其进行调整。 α 的默认值为 8。

    3、将 LoRA 应用于 target_modules 的模块

    你可以选择特定模块进行微调。 根据说明,loralib仅支持nn.Linear、nn.Embedding和nn.Conv2d。 微调线性层是常见的做法。 要了解你的模型具有哪些模块,请使用 Python 中的transformers库加载模型,然后打印(模型)。 默认值为“无”。 如果你想微调所有线性层,请执行以下操作:

    1. import re
    2. pattern = r'\((\w+)\): Linear'
    3. linear_layers = re.findall(pattern, str(model.modules))
    4. target_modules = list(set(linear_layers))

    4、LoRA 层的丢失概率 lora_dropout

    Dropout 是一种通过在训练过程中以 dropout 概率随机选择要忽略的神经元来减少过度拟合的技术。 这些选定的神经元对下游神经元激活的贡献在前向传递中被暂时删除,并且任何权重更新都不会应用于后向传递中的神经元。 lora_dropout的默认值为0。

    5、Lora bias偏差类型

    偏差可以是“无”、“全部”或“lora_only”。 如果是“all”或“lora_only”,则相应的偏差将在训练期间更新。 即使禁用适配器,模型也不会产生与没有适应的基本模型相同的输出。 默认值为“无”。

    6、任务类型task_type

    似乎在不指定task_type 的情况下一切都正常。 可能的任务类型包括 CAUSAL_LM、FEATURE_EXTRACTION、QUESTION_ANS、SEQ_2_SEQ_LM、SEQ_CLS 和 TOKEN_CLS。

    7、其他参数

    其余参数包括 fan_in_fan_out、modules_to_save、layers_to_transform 和layers_pattern 不太常用。


    原文链接:PEFT LoraConfig参数详解 - BimAnt

  • 相关阅读:
    webpack 中 require.context() 的用法
    从零开发 stylelint规则(插件)
    今天面了个腾讯拿 38K 出来的,让我见识到了基础的天花板
    跨境商城源码部署(多商户入驻,一键铺货,快速部署)
    使用EVO
    Mac 点击桌面 出现黑边框 解决
    LT1085稳压器介绍(含数据手册datasheet下载)
    爬虫逆向实战(30)-某查查股东关联公司(HmacSHA512)
    Educational Codeforces Round 151 (Rated for Div. 2)
    SSM+Mysql实现的共享单车管理系统(功能包含分角色,登录、用户管理、服务点管理、单车管理、分类管理、学生信息管理、单车租赁、信息统计、系统设置等)
  • 原文地址:https://blog.csdn.net/shebao3333/article/details/134523779
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号