预训练模型adapter的几篇论文概述

最近阅读几篇 distillation-adapter论文,要求掌握理解算法,和大家分享一下:第一篇是huggingface的adpater代码库中的位置,其中详细讲解了在transformer中加入adapter层和adapterfusion层,第二篇论文在adpater代码库中的位置中也可以找到,主要是将已经训练好的multilingual模型移到另外一种语言上,模型由三部分组成language, task, and invertible adapters组成,第三篇是使用CONTRASTIVE LEARNING来进行distillation的学习。

1. AdapterFusion: Non-Destructive Task Composition for Transfer Learning

解决问题:解决pre-train模型的在多domain上的catastrophic forgetting和dataset balancing的问题。
related work:目前主流的pre-train模型的方法有三个:

  1. fine-tuning:对于n个任务,在每一步训练一个任务模型的时候要初始化一个层,通过学习这个层的结构来学习参数,但是这种方法在超过两种task下就会出现灾难性遗忘的问题。
  2. Multi-Task Learning (MTL):所有task都同步学习,来学习一个大的结构可以表示所有的模型。这种方法在大量困难任务的学习时loss的设计是一个大问题。
  3. adapter:分为Single-Task Adapters (ST-A)、Multi-Task Adapters (MT-A)。本文提出,可以解决上述的两个问题。

adapter的方法:adapter位置图

<think>嗯,用户的问题是关于adapter-transformers库是否从Hugging Face加载预训练模型的。首先,我需要确认adapter-transformers和Hugging Face的关系。记得adapter-transformers是基于Hugging Face的Transformers库开发的扩展,所以应该和Hugging Face的模型仓库有关联。 接下来,用户提到的引用中有说明Adapter模块的设计是为了在预训练模型基础上添加适配器,而不修改原有参数。引用2提到Adapter插入到预训练模型的每一层之后,这样可以保留原模型的能力。这说明预训练模型本身是必须加载的,而适配器是额外的模块。 然后,引用4提到Hugging Face的adapter_model.safetensors文件存储适配器的权重,而主模型参数可能还是来自Hugging Face的标准模型。因此,当使用adapter-transformers时,主模型应该还是从Hugging Face Model Hub获取的,适配器部分可能是单独保存的。 另外,用户提供的引用5中的代码示例涉及从llamafactory导入模块,这可能涉及到特定框架的使用,但核心的预训练模型加载应该还是基于Hugging Face的。需要确认adapter-transformers的文档是否明确说明其模型来源。 可能用户在使用过程中需要加载特定的预训练模型名称,比如bert-base-uncased,这些名称对应Hugging Face的模型库。当调用AutoModel.from_pretrained时,默认会从Hugging Face下载。而适配器则是通过load_adapter方法添加,可能来自本地或Hub上的适配器文件。 需要验证一下官方文档或示例代码,比如是否在加载模型时使用Hugging Face的模型标识符。例如,代码示例中是否有类似model_name = "bert-base-uncased"这样的参数,这显然指向Hugging Face的模型。 此外,引用3和5提到微调Llama模型时使用Hugging Face的方法,可能说明整个生态是围绕Hugging Face的Transformers库构建的。因此,adapter-transformers作为扩展,自然继承了这个特性,预训练模型的加载来源是Hugging Face Model Hub。 总结:adapter-transformers确实从Hugging Face加载预训练模型的主干部分,而适配器模块可能作为附加层被加载,这些适配器可以来自本地或Hub上的特定适配器文件。用户需要注意在代码中正确指定模型名称和适配器路径,确保正确加载。</think>是的,**adapter-transformers 库确实默认从 Hugging Face Model Hub 加载预训练模型的主干参数**。以下是具体说明: --- ### 1. **模型加载机制** - **主干模型来源**: adapter-transformers 是基于 Hugging Face Transformers 库开发的扩展工具,其核心模型架构(如 BERT、RoBERTa、GPT 等)的预训练权重默认通过 Hugging Face Model Hub 加载。例如: ```python from transformers import AutoModel model = AutoModel.from_pretrained("bert-base-uncased") # 从 Hugging Face 加载 BERT 模型 ``` - **适配器参数来源**: Adapter 模块的权重可以单独加载,其来源包括: - Hugging Face Hub 中已发布的适配器(例如 `AdapterHub/bert-base-uncased-pf-squad`) - 本地训练保存的适配器文件(如 `adapter_model.safetensors`)[^4] --- ### 2. **代码示例** 以下是一个典型的使用流程: ```python from adapter_transformers import AutoAdapterModel # 加载 Hugging Face 的预训练主干模型 model = AutoAdapterModel.from_pretrained("bert-base-uncased") # 从 Hugging Face Hub 加载适配器 model.load_adapter("AdapterHub/bert-base-uncased-pf-squad") # 激活适配器 model.set_active_adapters("squad") ``` --- ### 3. **关键验证点** 1. **模型名称标识**: 当使用 `from_pretrained("bert-base-uncased")` 时,模型名称与 Hugging Face Model Hub 中的标识符完全一致[^2]。 2. **文件路径关联**: adapter-transformers 会优先检查本地缓存目录(如 `~/.cache/huggingface/hub`),若未找到模型文件则自动从 Hugging Face 下载[^4]。 --- ### 4. **特殊情况说明** - **私有模型/适配器**: 如果主干模型或适配器存储在私有仓库或本地路径,需显式指定路径: ```python model = AutoAdapterModel.from_pretrained("/path/to/local_model") model.load_adapter("/path/to/local_adapter") ``` - **安全张量支持**: 适配器文件(如 `adapter_model.safetensors`)使用安全张量格式,与 Hugging Face 的生态系统兼容[^4]。 --- ### 总结 adapter-transformers 的预训练主干模型默认从 **Hugging Face Model Hub** 加载,适配器参数可来自 Hub 或本地路径。这种设计既保持了与 Transformers 库的一致性,又支持灵活的适配器管理[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值