大模型微调 - 自动加载预训练模型
flyfish
AutoModelFor 是 Hugging Face transformers 库中的一个通用接口,这里用的是modelscope ,用于自动加载预训练模型,涵盖多种任务的模型。AutoModelFor 后面接不同的任务名称会对应不同的模型架构,适合不同的自然语言处理任务。
tokenizer = AutoTokenizer.from_pretrained("qwen/Qwen2-0.5B-Instruct", use_fast=False, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("qwen/Qwen2-0.5B-Instruct", device_map="auto", torch_dtype=torch.bfloat16)
截图来源 https://huggingface.co/docs/transformers/model_doc/auto
举例子
AutoModelFor 系列是 Hugging Face transformers
库中的重要组件,主要用于加载不同任务的预训练模型。这些模型类封装了多种自然语言处理任务所需的不同模型架构,提供了便捷的接口。以下是对这些类的更详细描述:
-
AutoModel
用途 : 加载基础的 Transformer 模型,不带任何任务头部。
典型模型 : BERT、GPT 等。
应用场景 : 当你只需要基础的 Transformer 表示,例如用于进一步的微调或嵌入提取。 -
AutoModelForCausalLM
全称 : AutoModel For Causal Language Modeling
用途 : 用于自回归语言建模任务,适合文本生成任务。这类模型在生成下一个词时,依赖于前面的词作为上下文。
典型模型 : GPT、GPT-2、GPT-3、GPT-Neo、GPT-J。
应用场景 : 生成下一个词或句子,常用于聊天机器人、自动文本生成、语言建模。 -
AutoModelForSeq2SeqLM
全称 : AutoModel For Sequence-to-Sequence Language Modeling
用途 : 适用于序列到序列任务,如机器翻译、文本摘要生成。模型使用 Encoder-Decoder 结构。
典型模型 : T5、BART、mBART、MarianMT。
应用场景 : 翻译、摘要生成、问答系统、对话系统等。 -
AutoModelForMaskedLM
全称 : AutoModel For Masked Language Modeling
用途 : 用于掩码语言建模任务,在模型的预训练阶段非常常用,模型需要根据上下文推测被掩盖的词。
典型模型 : BERT、RoBERTa、DistilBERT。
应用场景 : 预训练阶段的掩码填充任务,或者后续的句子填空任务。 -
AutoModelForQuestionAnswering
全称 : AutoModel For Question Answering
用途 : 处理提问和回答任务,给定一段上下文,模型需要从中找到并返回问题的答案。
典型模型 : BERT、RoBERTa、ALBERT、DistilBERT。
应用场景 : 经典的问答系统,如基于文本的问答任务,常用于 SQuAD 数据集。 -
AutoModelForTokenClassification
全称 : AutoModel For Token Classification
用途 : 标记分类任务,特别适用于命名实体识别(NER)、词性标注等任务。
典型模型 : BERT、RoBERTa、XLM-R。
应用场景 : 识别句子中的命名实体、标注词性、分类每个单词或 token。 -
AutoModelForSequenceClassification
全称 : AutoModel For Sequence Classification
用途 : 序列分类任务,适用于情感分析、文本分类等任务。
典型模型 : BERT、RoBERTa、XLNet。
应用场景 : 情感分析、垃圾邮件检测、新闻分类等。 -
AutoModelForMultipleChoice
全称 : AutoModel For Multiple Choice
用途 : 处理多项选择问题任务,给定问题和多个选项,模型返回最可能的答案。
典型模型 : BERT、RoBERTa。
应用场景 : 各类考试题型的多项选择题任务。 -
AutoModelForImageClassification
全称 : AutoModel For Image Classification
用途 : 图像分类任务,将输入图像映射到预定义的类别。
典型模型 : ViT(Vision Transformer)、DeiT(Data-efficient Image Transformer)。
应用场景 : 图像分类、物体识别、场景分类等任务。 -
AutoModelForVision2Seq
全称 : AutoModel For Vision to Sequence
用途 : 视觉到序列任务,如图像描述生成任务。模型从图像生成文本描述,通常结合视觉和语言模型。
典型模型 : Vision Encoder-Decoder、OFA。
应用场景 : 图像描述生成,如给图片添加说明、图像到文本生成。