Hugging Face Transformers 库是一个全面的机器学习框架,为自然语言处理、计算机视觉、音频处理和多模态任务提供了最先进的预训练模型。该库既是推理引擎又是训练平台,提供超过 500,000 个涵盖多种模态和框架的模型检查点。
本文档涵盖了使 Transformers 能够为多样化的模型架构和任务提供统一 API 的基础架构、核心系统和设计模式。有关特定组件的详细信息,请参见核心架构、训练系统、生成系统和模型实现。
Transformers 旨在通过提供以下功能,普及对最先进机器学习模型的访问:
该库的架构围绕着在 src/transformers/__init__.py57-280 中实现的三项基本原则。
Transformers 库由几个相互关联的系统组成,这些系统协同工作,提供从模型加载到推理和训练的无缝体验。
来源:src/transformers/__init__.py57-280 src/transformers/models/auto/modeling_auto.py32-357 src/transformers/models/auto/configuration_auto.py36-346
Auto 类提供了加载模型的主要接口,通过复杂的懒加载系统处理模型名称到实现的映射复杂性。
来源:src/transformers/models/auto/modeling_auto.py32-357 src/transformers/models/auto/configuration_auto.py36-346 src/transformers/models/auto/tokenization_auto.py57-58
该库使用在 src/transformers/__init__.py57-280 中定义的复杂懒加载机制,通过 _import_structure 字典实现。这使得库能够在需要时才导入数百个类,从而显著减少导入时间。
Transformers 中的每个模型都遵循一致的模式,其行为通过继承自 PretrainedConfig 的配置对象进行控制。这使得所有模型类型的序列化、加载和参数管理都能标准化。
该库通过并行的类层次结构为 PyTorch、TensorFlow 和 JAX/Flax 提供实现。特定于框架的实现共享通用接口,同时针对每个框架的优势进行优化。
来源:src/transformers/__init__.py57-280 src/transformers/models/auto/modeling_auto.py1-20 README.md204-226
Transformers 库支持按模态和用例组织的大量模型架构生态系统。 src/transformers/models/auto/modeling_auto.py32-357 文件定义了超过 300 种不同模型架构在多个类别中的映射。
| 模态 | 示例模型 | 配置类 |
|---|---|---|
| 文本 | BertModel, LlamaModel, GPT2Model | BertConfig, LlamaConfig, GPT2Config |
| 视觉 | ViTModel, SwinModel, DeiTModel | ViTConfig, SwinConfig, DeiTConfig |
| 音频 | WhisperModel, Wav2Vec2Model | WhisperConfig, Wav2Vec2Config |
| 多模态 | LlavaModel, PaliGemmaModel, CLIPModel | LlavaConfig, PaliGemmaConfig, CLIPConfig |
该架构支持在同一类别模型之间无缝切换,同时通过共享基类保持 API 一致性。
来源:src/transformers/models/auto/modeling_auto.py32-357 src/transformers/models/auto/configuration_auto.py36-346 docs/source/en/_toctree.yml370-896