What is 适配器?

    一组插入到冻结预训练模型中的小型可训练参数,能够在不修改原始模型权重的情况下实现高效微调。

    Definition

    在大语言模型的语境中,适配器是一个轻量级模块——通常是一对小矩阵或低秩分解——被注入到预训练模型的特定层中。在微调过程中,原始(基础)模型权重被冻结,只有适配器参数通过反向传播进行更新。这种被称为参数高效微调(PEFT)的方法将可训练参数的数量从数十亿减少到仅几百万,大幅降低了内存需求和训练时间。

    最广泛使用的适配器架构是LoRA(低秩适配),它将权重更新分解为两个小矩阵,其乘积近似于全秩更新。其他适配器设计包括前缀调优(在注意力的键和值前添加学习向量)、提示调优(学习软提示嵌入)和瓶颈适配器(在Transformer块之间插入小型前馈层)。每种方法在表达能力、内存效率和与基础模型合并的便捷性之间提供不同的权衡。

    适配器的一个关键优势是可组合性。由于适配器与基础模型分离,组织可以维护一个基础模型,在推理时为不同任务——客户支持、内容生成、代码审查——换入换出不同的适配器,而无需为每个用例复制完整的模型权重。适配器还可以共享、合并或堆叠,从而在共同基础上构建专业化能力的模块化生态系统。

    Why It Matters

    对大模型进行全量微调需要存储和更新每个参数,对于一个70B模型来说,这意味着数百GB的GPU内存,以及每个任务一份完整大小的模型副本。适配器优雅地解决了这个扩展问题:基础模型只需加载一次,每个任务只需要一个小型适配器文件(通常仅10-100 MB)。这使得多任务部署在经济上可行,并允许快速试验不同的微调策略。对于硬件预算有限的团队来说,适配器往往决定了他们能否进行微调。

    How It Works

    在基于适配器的微调过程中,训练框架会识别模型中的目标层(通常是每个注意力块中的查询、键、值和输出投影矩阵),并在其旁边或内部注入适配器模块。对于LoRA,两个小矩阵A和B被初始化,使得它们的乘积B×A从零开始,这意味着适配器最初对模型的输出没有影响。随着训练的进行,梯度更新A和B以捕获特定任务的知识。训练完成后,适配器权重可以保持分离(用于推理时热切换),也可以合并到基础模型权重中以进行单文件部署。

    Example Use Case

    一个客户支持平台维护了一个Mistral 7B基础模型和三个LoRA适配器:一个针对账单咨询微调,一个针对技术故障排除,一个针对账户管理。当支持工单到达时,路由系统对其主题进行分类并加载相应的适配器,在不增加三倍基础设施成本的情况下提供专业化的回复。

    Key Takeaways

    • 适配器是小型可训练模块,能够在不修改基础模型权重的情况下实现微调。
    • LoRA是最流行的适配器架构,将可训练参数减少100-1000倍。
    • 多个适配器可以共享单个基础模型,实现高性价比的多任务部署。
    • 适配器可以合并到基础模型中,也可以保持分离以在推理时进行热切换。
    • 通过适配器实现的参数高效微调使得在普通硬件上定制大模型成为可能。

    How Ertas Helps

    Ertas Studio使用基于适配器的微调(LoRA和QLoRA)作为其默认训练策略。可视化画布使得配置适配器秩、目标模块和alpha缩放变得简单,无需编写代码。训练完成后,Ertas允许用户选择单独导出适配器权重或在导出为GGUF之前将其合并到基础模型中——从统一界面支持热切换和单文件部署两种工作流。

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.