lora 微调时,各个大模型使用的modules_mapping配置

LoRA是一种新的预训练微调框架,它可以在保持预训练模型性能的同时,显著减少微调所需的计算资源。在使用LoRA进行微调时,需要为每个大模型配置一个modules_mapping,以指定哪些模块需要微调。本文将介绍各个大模型使用的modules_mapping配置。

以下是各个大模型使用的modules_mapping配置:

TRANSFORMERS_MODELS_TO_LORA_TARGET_MODULES_MAPPING = {
    "t5": ["q", "v"],
    "mt5": ["q", "v"],
    "bart": ["q_proj", "v_proj"],
    "gpt2": ["c_attn"],
    "bloom": ["query_key_value"],
    "blip-2": ["q", "v", "q_proj", "v_proj"],
    "opt": ["q_proj", "v_proj"],
    "gptj": ["q_proj", "v_proj"],
    "gpt_neox": ["query_key_value"],
    "gpt_neo": ["q_proj", "v_proj"],
    "bert": ["query", "value"],
    "roberta": ["query", "value"],
    "xlm-roberta": ["query", "value"],
    "electra": ["query", "value"],
    "deberta-v2": ["query_proj", "value_proj"],
    "deberta": ["in_proj"],
    "layoutlm": ["query", "value"],
    "llama": ["q_proj", "v_proj"],
    "chatglm": ["query_key_value"],
    "gpt_bigcode": ["c_attn"],
    "mpt": ["Wqkv"],
    "RefinedWebModel": ["query_key_value"],
    "RefinedWeb": ["query_key_value"],
    "falcon": ["query_key_value"],
    "btlm": ["c_proj", "c_attn"],
    "codegen": ["qkv_proj"],
}

在这个配置中,每个大模型都被映射到了一个由字符串组成的列表,这个列表指定了需要微调的模块。例如,对于BERT模型,需要微调的模块是queryvalue。对于GPT-2模型,需要微调的模块是c_attn。对于LayoutLM模型,需要微调的模块是queryvalue。这些模块的具体含义可以参考相应的论文。

总的来说,这个modules_mapping配置是LoRA框架的关键之一,它可以帮助用户快速、准确地指定需要微调的模块,从而加速微调过程。

你可能感兴趣的:(NLP,深度学习,人工智能)