Transformers 模型家族全景:从 ViT、BERT 到 Whisper,按编码器-解码器视角分类 Transformer 模型

发布时间:2026/9/7 15:05:44
Transformers 模型家族全景:从 ViT、BERT 到 Whisper,按编码器-解码器视角分类 Transformer 模型 Transformers 模型家族全景从 ViT、BERT 到 Whisper按编码器-解码器视角分类 Transformer 模型【免费下载链接】transformers Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.项目地址: https://gitcode.com/GitHub_Trending/tra/transformers本文基于 Transformers 仓库文档docs/source/ar/model_summary.md“Transformer 模型家族”章节整理并扩充按照“编码器 / 解码器 / 编码器-解码器”这一架构视角系统梳理计算机视觉、NLP、音频、多模态与强化学习五大领域中经典 Transformer 模型的设计动机、预训练目标与结构差异。读完本文你可以快速定位任意一个 Transformers 模型在架构谱系中的位置理解它为什么这样设计、适合什么任务并能结合仓库源码目录与AutoClass接口实际加载这些模型。1. 为什么要给 Transformer 模型分类自 2017 年原始 TransformerAttention Is All You Need发布以来它已远不止用于 NLP既有用于蛋白质折叠结构预测的模型也有用于决策训练、时间序列预测的模型。变体繁多很容易迷失细节——但这些模型有一个共同点都建立在原始 Transformer 的编码-解码器骨架之上。有些模型只用编码器有些只用解码器有些两者兼备参见 模型时间线。这个分类正是理解模型家族的关键维度编码器Encoder双向关注整个输入序列擅长理解/表征任务分类、特征提取、密集预测的 backbone解码器Decoder自回归地逐 token 生成输出擅长生成任务文本/图像生成、ASR 转写编码器-解码器Encoder-Decoder编码器先提取输入特征解码器在其隐状态之上自回归生成擅长转换任务翻译、摘要、OCR。下面按领域逐一展开每个模型都会给出它在 Transformers 仓库中的模型文档位置docs/source/en/model_doc/与源码实现位置src/transformers/models/便于继续深入阅读。2. 计算机视觉Computer Vision2.1 卷积网络ConvNeXt 与卷积-注意力的融合CNN 曾长期统治视觉领域直到 ViT 展示出更强的可扩展性。但 CNN 的一些特性尤其是平移不变性在特定任务上依然非常强大以至于一些 Transformer 会把卷积并入自身结构。ConvNeXt则反其道而行把 Transformer 的设计选项搬回 CNN 中更新 CNN例如使用非重叠的滑动窗口将图像切分为 patch 并扩大其有效感受野同时对层设计做多项内存效率与性能优化成为 Transformer 的有力竞争者。模型文档convnext、convnextv2源码src/transformers/models/convnext/2.2 视觉编码器ViTVision Transformer是视觉领域绕开卷积的开端。它使用标准 Transformer 编码器核心贡献在于图像预处理方式把图像切成固定大小的 patch 并嵌入如同把句子切分为 token。ViT 借助高效的 Transformer 结构以较少的训练资源取得了与当时 CNN 竞争的结果。此后一系列视觉模型也能处理分割、检测等密集预测任务Swin Transformer与 ViT 相反它从更小的 patch 出发构建层级特征图在更深层将 patch 与相邻 patch 合并注意力只在局部窗口内计算并在相邻注意力层之间交错偏移窗口建立跨窗口连接。正因能输出层级特征Swin 非常适合分割、检测等密集预测任务。SegFormer同样用 Transformer 编码器构建层级特征图但在顶部加一个轻量级多层感知机MLP解码器来融合所有层级特征并做出预测。BeIT / ViTMAE借鉴 BERT 的掩码自监督目标。BeIT通过**图像掩码建模MIM**预训练随机遮住图像 patch图像同时被转化为视觉 token模型学习预测被遮 patch 对应的视觉 token。ViTMAE目标类似但要预测的是像素而非视觉 token特别之处在于遮住 75% 的 patch由解码器根据可见 patch 的编码隐状态重建像素。预训练完成后丢弃解码器编码器即可直接用于下游任务。模型文档vit、swin、segformer、beit、vit_mae源码src/transformers/models/vit/、src/transformers/models/swin/、src/transformers/models/segformer/、src/transformers/models/beit/、src/transformers/models/vit_mae/import torch from transformers import AutoImageProcessor, ViTModel image_processor AutoImageProcessor.from_pretrained(google/vit-base-patch16-224) model ViTModel.from_pretrained(google/vit-base-patch16-224) inputs image_processor(images, return_tensorspt) # 图像被切分为 16x16 的 patch 序列 outputs model(**inputs) print(outputs.last_hidden_state.shape) # [batch, num_patches1, hidden]首 token 为 [CLS]2.3 视觉解码器ImageGPT纯解码器视觉模型较少见因为大多数视觉模型靠编码器学习图像表征但对图像生成这类任务解码器是天然合适的选择正如 GPT-2 之于文本生成。ImageGPT与 GPT-2 结构完全相同只是从预测序列中下一个 token变为预测图像中的下一个像素除生成外也可微调到图像分类。模型文档imagegpt源码src/transformers/models/imagegpt/2.4 视觉编码器-解码器DETR 与目标检测视觉模型常用编码器亦称 backbone先提取图像特征再交给 Transformer 解码器。DETR使用预训练 backbone并完整采用编码器-解码器结构做目标检测编码器学习图像表征将其与对象查询object queries在解码器中联合处理——每个对象查询是一个可学习嵌入聚焦图像中的某个区域或物体解码器为每个对象查询预测边界框坐标和类别标签。模型文档detr、conditional_detr、deformable_detr源码src/transformers/models/detr/from transformers import DetrImageProcessor, DetrForObjectDetection processor DetrImageProcessor.from_pretrained(facebook/detr-resnet-50) model DetrForObjectDetection.from_pretrained(facebook/detr-resnet-50) # inputs processor(images, return_tensorspt) # target_sizes torch.tensor([images.size[::-1]]) # outputs model(**inputs) # results processor.post_process_object_detection(outputs, threshold0.9, target_sizestarget_sizes) # 每个对象查询对应一组 (score, label, box)3. 自然语言处理NLP3.1 语言编码器BERT 家族与效率优化BERT是纯编码器 Transformer随机遮住输入中的部分 token让模型看不到被遮 token 及其上下文防止作弊预训练目标是根据上下文预测被遮 token。这使 BERT 能利用完整的双向上下文学到更深的输入表征。但 BERT 的预训练策略仍有改进空间RoBERTa新的预训练配方——训练更久、batch 更大、每个 epoch 随机重新打掩码而非仅在预处理时打一次、去除下一句预测NSP目标。DistilBERT增大模型能提升效果但训练昂贵DistilBERT 用知识蒸馏这一压缩技术训练出比 BERT 更小却保留大部分语言理解能力的模型。ALBERT从两方面降低参数量以节省内存——把大的词汇嵌入矩阵分解为两个更小的矩阵并允许层间共享参数。DeBERTa引入解耦注意力——词嵌入与其位置嵌入分别编码为两个向量注意力基于这两个分离的向量计算而非融合后的单一向量。Longformer面向长文档用局部窗口注意力 全局注意力仅对[CLS]等特定重要 token的组合构造稀疏注意力矩阵替代完整 O(n²) 注意力矩阵。模型文档bert、roberta、distilbert、albert、deberta、longformer源码src/transformers/models/bert/、src/transformers/models/roberta/、src/transformers/models/longformer/from transformers import AutoTokenizer, AutoModelForMaskedLM tokenizer AutoTokenizer.from_pretrained(bert-base-uncased) model AutoModelForMaskedLM.from_pretrained(bert-base-uncased) text The capital of France is [MASK]. inputs tokenizer(text, return_tensorspt) outputs model(**inputs) # 取 [MASK] 位置的 logits 即为对缺失词的预测分布 mask_idx inputs[input_ids][0].tolist().index(model.config.pad_token_id) if model.config.pad_token_id in inputs[input_ids][0] else 43.2 语言解码器从 GPT-2 到大型语言模型GPT-2是纯解码器 Transformer预测序列中的下一个词它遮住右侧未来的 token 以免模型作弊。通过在海量文本上预训练GPT-2 成为文本生成的专家虽然输出未必总精确正确。但它缺少 BERT 式双向上下文不适合某些任务。XLNet采用排列语言建模Permutation Language Modeling, PLM融合 BERT 与 GPT-2 两种预训练目标的优势实现双向上下文学习。在 GPT-2 之后语言模型变得更大更复杂进入**大语言模型LLM**时代——在足够大的语料上预训练后展现出少样本乃至零样本学习能力。仓库文档中记录的代表性例子GPT-J60 亿参数训练于 4000 亿 tokenOPT纯解码器模型家族最大 1750 亿参数训练于 1800 亿 tokenBLOOM同期发布家族最大模型 1760 亿参数训练于 3660 亿 token覆盖 46 种自然语言和 13 种编程语言。模型文档gpt2、xlnet、gptj、opt、bloom源码src/transformers/models/gpt2/、src/transformers/models/xlnet/、src/transformers/models/gptj/、src/transformers/models/opt/、src/transformers/models/bloom/from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer AutoTokenizer.from_pretrained(gpt2) model AutoModelForCausalLM.from_pretrained(gpt2) inputs tokenizer(Once upon a time in a remote corner of the universe, return_tensorspt) outputs model.generate(**inputs, max_new_tokens50) print(tokenizer.decode(outputs[0], skip_special_tokensTrue))3.3 语言编码器-解码器BART、Pegasus、T5BART保留原始 Transformer 结构但用**破坏输入文本**的方式改造预训练目标把若干文本片段替换为单个masktoken解码器在遮住未来 token 的条件下预测未破坏的 token并利用编码器的隐状态。Pegasus类似 BART但遮住的是整句而非片段除掩码语言建模外还预训练了**句子级生成GSG**目标——遮住文档中信息量大的整句并替换为mask解码器必须从其余句子生成被遮内容。T5则独辟蹊径把一切 NLP 任务都转化为文本到文本问题用特定前缀prefix标识任务例如Summarize:表示摘要。T5 的预训练结合了有监督学习GLUE 与 SuperGLUE与自监督学习随机采样句子并删除 15% 的 token。模型文档bart、pegasus、t5源码src/transformers/models/bart/、src/transformers/models/pegasus/、src/transformers/models/t5/from transformers import AutoTokenizer, AutoModelForSeq2SeqLM tokenizer AutoTokenizer.from_pretrained(t5-small) model AutoModelForSeq2SeqLM.from_pretrained(t5-small) inputs tokenizer( summarize: Studies show dogs are better with cats than previously thought, return_tensorspt, ) outputs model.generate(**inputs, max_new_tokens20) print(tokenizer.decode(outputs[0], skip_special_tokensTrue))4. 音频Audio4.1 音频编码器Wav2Vec2 与 HuBERTWav2Vec2使用 Transformer 编码器直接从原始音频波形学习语音表征预训练采用对比学习任务从一堆错误表征中识别出正确的语音表征。HuBERT与 Wav2Vec2 相近但训练流程不同目标标签由一个聚类步骤生成——把相似的音频片段划入聚类每个聚类成为一个隐式单元hidden unit模型学习为该单元预测对应的表征。模型文档wav2vec2、hubert源码src/transformers/models/wav2vec2/、src/transformers/models/hubert/4.2 音频编码器-解码器Speech2Text 与 WhisperSpeech2Text是面向自动语音识别ASR与语音翻译的模型输入是从波形提取的对数梅尔滤波器组log-mel filter bank特征以自回归方式预训练以生成转写或译文。Whisper也是 ASR 模型但不同于大多数音频模型它在海量人工转写数据上预训练以取得零样本能力数据集中大量内容是非英语语言因此 Whisper 也可用于低资源语言。结构上 Whisper 类似 Speech2Text音频信号先转为log-mel 频谱由编码器编码解码器从编码器隐状态与已生成的 token 出发自回归地生成转写文本。模型文档speech_to_text、whisper源码src/transformers/models/speech_to_text/、src/transformers/models/whisper/import torch from transformers import AutoProcessor, WhisperForConditionalGeneration processor AutoProcessor.from_pretrained(openai/whisper-tiny) model WhisperForConditionalGeneration.from_pretrained(openai/whisper-tiny) # input_features processor(audio, sampling_rate16000, return_tensorspt).input_features # decoder_input_ids model.prepare_decoder_input_ids_from_scores(None) # attention_mask torch.ones(decoder_input_ids.shape, dtypetorch.long) # seq_ids model.generate(input_features, decoder_input_idsdecoder_input_ids, # attention_maskattention_mask) # transcription processor.batch_decode(seq_ids, skip_special_tokensTrue)5. 多模态Multimodal5.1 多模态编码器VisualBERT、ViLT、CLIP、OWL-ViTVisualBERT是 BERT 发布后不久的视觉-语言多模态模型将 BERT 与一个预训练目标检测器结合从检测器提取视觉嵌入与文本嵌入一起送入 BERT模型既要根据未遮文本和视觉嵌入预测被遮文本也要判断文本与图像是否匹配。ViLT在 ViT 出现后改为直接采用 ViT 结构获取图像嵌入更简单图像嵌入与文本嵌入联合处理预训练包含图文匹配image-text matching、掩码语言建模、整词遮罩whole-word masking三个目标。CLIP走另一条路预测图像,文本对是否匹配的二分类标签。图像编码器ViT与文本编码器Transformer在 4 亿图文对上联合训练最大化匹配的图文对之间图像嵌入向量与文本嵌入向量的相似度。预训练之后可以用自然语言来指挥 CLIP给定图像预测文本或反之。OWL-ViT构建于 CLIP 之上将其作为零样本目标检测的 backbone在预训练权重上追加一个检测头按类别,边界框二元组做开放式预测。模型文档visual_bert、vilt、clip、owlvit源码src/transformers/models/visual_bert/、src/transformers/models/vilt/、src/transformers/models/clip/、src/transformers/models/owlvit/import torch from transformers import CLIPProcessor, CLIPModel processor CLIPProcessor.from_pretrained(openai/clip-vit-base-patch32) model CLIPModel.from_pretrained(openai/clip-vit-base-patch32) # inputs processor(text[a diagram, a cat], imagesimage, return_tensorspt, paddingTrue) # outputs model(**inputs) # logits_per_image outputs.logits_per_image # 图像 - 文本 相似度再对 labels 取 argmax 即完成零样本分类5.2 多模态编码器-解码器TrOCR 与 DonutOCR 与文档理解OCR光学字符识别是老任务通常需要理解图像 生成文本的多组件管线。TrOCR用端到端的 Transformer 简化了这一流程编码器为类 ViT 结构把图像当作固定大小 patch 序列来理解解码器接收编码器隐状态自回归地生成文本。Donut是不依赖传统 OCR 范式的更通用文档视觉理解模型编码器使用Swin Transformer解码器使用多语言BART训练目标是结合图像与文本上下文预测下一个词。解码器按提示prompt生成 token 序列提示由每个任务一个特殊 token表示——例如文档解析任务使用特殊 tokenparsing它与编码器隐状态拼接后模型以结构化 JSON 格式解析文档。模型文档trocr、donut源码src/transformers/models/trocr/、src/transformers/models/donut/6. 强化学习Reinforcement Learning解码器视角Decision and Trajectory Transformer把状态State、动作Action、奖励Reward转化为序列建模问题Decision Transformer决策 Transformer基于期望回报、历史状态与动作生成能带来未来期望回报的动作序列。在最近K个时间步中三类数据各被转换为 token 嵌入再交由一个GPT 风格模型预测未来的动作 token。Trajectory Transformer轨迹 Transformer同样把状态、动作、奖励离散化为 token 并用 GPT 结构处理与决策 Transformer 侧重以回报为条件不同Trajectory Transformer 通过**束搜索Beam Search**生成未来动作。模型文档decision_transformer源码src/transformers/models/decision_transformer/from transformers import DecisionTransformerConfig, DecisionTransformerModel config DecisionTransformerConfig( state_dim2, action_dim1, reward_dim1, max_length28, state_mean0.0, state_std1.0, ) model DecisionTransformerModel(config) # 推理时按 (return, state, action) 的 token 序列组织输入 # 模型在 action token 位置的输出即为动作预测注原文档还提到trajectory_transformer在当前仓库的模型文档目录中已不存在对应条目docs/source/en/model_doc/下无该文件仅保留了 Decision Transformer 的实现说明该方向在仓库中已收敛。7. 架构视角速查表架构视觉NLP音频多模态强化学习纯编码器ViT、Swin、SegFormer、BeIT、ViTMAE编码器部分BERT、RoBERTa、DistilBERT、ALBERT、DeBERTa、LongformerWav2Vec2、HuBERTVisualBERT、ViLT、CLIP—纯解码器ImageGPTGPT-2、XLNet、GPT-J、OPT、BLOOM——Decision/Trajectory Transformer编码器-解码器DETRBART、Pegasus、T5Speech2Text、WhisperTrOCR、Donut—CNN/混合ConvNeXtTransformer 化 CNN————8. 从分类到落地在 Transformers 中加载这些模型无论模型属于哪一类架构Transformers 仓库都遵循统一的组织方式每个模型在src/transformers/models/model_name/下包含configuration_*超参数与modeling_*网络结构等文件并通过AutoClass对外暴露统一入口。选型时可以按任务 → 架构 → 模型的路径推进理解/表征类任务分类、特征提取、密集预测 backbone→ 优先看编码器生成类任务文生文、文生图、语音转写→ 优先看解码器或编码器-解码器的解码器端转换类任务翻译、摘要、OCR、文档解析→ 优先看编码器-解码器。from transformers import AutoModel, AutoConfig config AutoConfig.from_pretrained(facebook/detr-resnet-50) print(config.architectures) # 查看该模型对应的架构类 model AutoModel.from_pretrained(google/vit-base-patch16-224) # 每个模型类均提供 save_pretrained / from_pretrained 与 Auto 入口 # 接口在 encoder / decoder / encoder-decoder 家族间保持一致此外仓库的 模型时间线 提供了交互式图表可以按模态、任务和日期范围筛选浏览各模型的演进顺序适合作为本文静态分类表的动态补充。9. 小结原始 Transformer 的编码器/解码器/编码器-解码器三分法是贯穿视觉、NLP、音频、多模态与强化学习所有模型家族的通用坐标系预训练目标掩码重建、下一词预测、排列语言建模、对比学习、破坏式生成、聚类预测决定了模型学到的表征类型也决定了它适合下游任务的类型效率创新DistilBERT 的蒸馏、ALBERT 的嵌入分解与参数共享、DeBERTa 的解耦注意力、Longformer 的稀疏注意力说明更大不是唯一路线更省同样关键在 Transformers 仓库中本文提到的每个模型都能在docs/source/en/model_doc/找到专属文档、在src/transformers/models/找到完整实现并可通过AutoModel、AutoTokenizer、AutoImageProcessor等统一接口加载使用这保证了跨模型迁移学习经验时的低成本切换。【免费下载链接】transformers Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.项目地址: https://gitcode.com/GitHub_Trending/tra/transformers创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考