|
<!--Copyright 2020 The HuggingFace Team. All rights reserved. |
|
|
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with |
|
the License. You may obtain a copy of the License at |
|
|
|
http: |
|
|
|
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on |
|
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the |
|
specific language governing permissions and limitations under the License. |
|
--> |
|
|
|
# Auto Classes |
|
|
|
In many cases, the architecture you want to use can be guessed from the name or the path of the pretrained model you |
|
are supplying to the `from_pretrained()` method. AutoClasses are here to do this job for you so that you |
|
automatically retrieve the relevant model given the name/path to the pretrained weights/config/vocabulary. |
|
|
|
Instantiating one of [`AutoConfig`], [`AutoModel`], and |
|
[`AutoTokenizer`] will directly create a class of the relevant architecture. For instance |
|
|
|
|
|
```python |
|
model = AutoModel.from_pretrained("bert-base-cased") |
|
``` |
|
|
|
will create a model that is an instance of [`BertModel`]. |
|
|
|
There is one class of `AutoModel` for each task, and for each backend (PyTorch, TensorFlow, or Flax). |
|
|
|
## Extending the Auto Classes |
|
|
|
Each of the auto classes has a method to be extended with your custom classes. For instance, if you have defined a |
|
custom class of model `NewModel`, make sure you have a `NewModelConfig` then you can add those to the auto |
|
classes like this: |
|
|
|
```python |
|
from transformers import AutoConfig, AutoModel |
|
|
|
AutoConfig.register("new-model", NewModelConfig) |
|
AutoModel.register(NewModelConfig, NewModel) |
|
``` |
|
|
|
You will then be able to use the auto classes like you would usually do! |
|
|
|
<Tip warning={true}> |
|
|
|
If your `NewModelConfig` is a subclass of [`~transformer.PretrainedConfig`], make sure its |
|
`model_type` attribute is set to the same key you use when registering the config (here `"new-model"`). |
|
|
|
Likewise, if your `NewModel` is a subclass of [`PreTrainedModel`], make sure its |
|
`config_class` attribute is set to the same class you use when registering the model (here |
|
`NewModelConfig`). |
|
|
|
</Tip> |
|
|
|
## AutoConfig |
|
|
|
[[autodoc]] AutoConfig |
|
|
|
## AutoTokenizer |
|
|
|
[[autodoc]] AutoTokenizer |
|
|
|
## AutoFeatureExtractor |
|
|
|
[[autodoc]] AutoFeatureExtractor |
|
|
|
## AutoImageProcessor |
|
|
|
[[autodoc]] AutoImageProcessor |
|
|
|
## AutoProcessor |
|
|
|
[[autodoc]] AutoProcessor |
|
|
|
## Generic model classes |
|
|
|
The following auto classes are available for instantiating a base model class without a specific head. |
|
|
|
### AutoModel |
|
|
|
[[autodoc]] AutoModel |
|
|
|
### TFAutoModel |
|
|
|
[[autodoc]] TFAutoModel |
|
|
|
### FlaxAutoModel |
|
|
|
[[autodoc]] FlaxAutoModel |
|
|
|
## Generic pretraining classes |
|
|
|
The following auto classes are available for instantiating a model with a pretraining head. |
|
|
|
### AutoModelForPreTraining |
|
|
|
[[autodoc]] AutoModelForPreTraining |
|
|
|
### TFAutoModelForPreTraining |
|
|
|
[[autodoc]] TFAutoModelForPreTraining |
|
|
|
### FlaxAutoModelForPreTraining |
|
|
|
[[autodoc]] FlaxAutoModelForPreTraining |
|
|
|
## Natural Language Processing |
|
|
|
The following auto classes are available for the following natural language processing tasks. |
|
|
|
### AutoModelForCausalLM |
|
|
|
[[autodoc]] AutoModelForCausalLM |
|
|
|
### TFAutoModelForCausalLM |
|
|
|
[[autodoc]] TFAutoModelForCausalLM |
|
|
|
### FlaxAutoModelForCausalLM |
|
|
|
[[autodoc]] FlaxAutoModelForCausalLM |
|
|
|
### AutoModelForMaskedLM |
|
|
|
[[autodoc]] AutoModelForMaskedLM |
|
|
|
### TFAutoModelForMaskedLM |
|
|
|
[[autodoc]] TFAutoModelForMaskedLM |
|
|
|
### FlaxAutoModelForMaskedLM |
|
|
|
[[autodoc]] FlaxAutoModelForMaskedLM |
|
|
|
### AutoModelForSeq2SeqLM |
|
|
|
[[autodoc]] AutoModelForSeq2SeqLM |
|
|
|
### TFAutoModelForSeq2SeqLM |
|
|
|
[[autodoc]] TFAutoModelForSeq2SeqLM |
|
|
|
### FlaxAutoModelForSeq2SeqLM |
|
|
|
[[autodoc]] FlaxAutoModelForSeq2SeqLM |
|
|
|
### AutoModelForSequenceClassification |
|
|
|
[[autodoc]] AutoModelForSequenceClassification |
|
|
|
### TFAutoModelForSequenceClassification |
|
|
|
[[autodoc]] TFAutoModelForSequenceClassification |
|
|
|
### FlaxAutoModelForSequenceClassification |
|
|
|
[[autodoc]] FlaxAutoModelForSequenceClassification |
|
|
|
### AutoModelForMultipleChoice |
|
|
|
[[autodoc]] AutoModelForMultipleChoice |
|
|
|
### TFAutoModelForMultipleChoice |
|
|
|
[[autodoc]] TFAutoModelForMultipleChoice |
|
|
|
### FlaxAutoModelForMultipleChoice |
|
|
|
[[autodoc]] FlaxAutoModelForMultipleChoice |
|
|
|
### AutoModelForNextSentencePrediction |
|
|
|
[[autodoc]] AutoModelForNextSentencePrediction |
|
|
|
### TFAutoModelForNextSentencePrediction |
|
|
|
[[autodoc]] TFAutoModelForNextSentencePrediction |
|
|
|
### FlaxAutoModelForNextSentencePrediction |
|
|
|
[[autodoc]] FlaxAutoModelForNextSentencePrediction |
|
|
|
### AutoModelForTokenClassification |
|
|
|
[[autodoc]] AutoModelForTokenClassification |
|
|
|
### TFAutoModelForTokenClassification |
|
|
|
[[autodoc]] TFAutoModelForTokenClassification |
|
|
|
### FlaxAutoModelForTokenClassification |
|
|
|
[[autodoc]] FlaxAutoModelForTokenClassification |
|
|
|
### AutoModelForQuestionAnswering |
|
|
|
[[autodoc]] AutoModelForQuestionAnswering |
|
|
|
### TFAutoModelForQuestionAnswering |
|
|
|
[[autodoc]] TFAutoModelForQuestionAnswering |
|
|
|
### FlaxAutoModelForQuestionAnswering |
|
|
|
[[autodoc]] FlaxAutoModelForQuestionAnswering |
|
|
|
## Computer vision |
|
|
|
The following auto classes are available for the following computer vision tasks. |
|
|
|
### AutoModelForDepthEstimation |
|
|
|
[[autodoc]] AutoModelForDepthEstimation |
|
|
|
### AutoModelForImageClassification |
|
|
|
[[autodoc]] AutoModelForImageClassification |
|
|
|
### TFAutoModelForImageClassification |
|
|
|
[[autodoc]] TFAutoModelForImageClassification |
|
|
|
### FlaxAutoModelForImageClassification |
|
|
|
[[autodoc]] FlaxAutoModelForImageClassification |
|
|
|
### AutoModelForVideoClassification |
|
|
|
[[autodoc]] AutoModelForVideoClassification |
|
|
|
### AutoModelForMaskedImageModeling |
|
|
|
[[autodoc]] AutoModelForMaskedImageModeling |
|
|
|
### AutoModelForObjectDetection |
|
|
|
[[autodoc]] AutoModelForObjectDetection |
|
|
|
### AutoModelForImageSegmentation |
|
|
|
[[autodoc]] AutoModelForImageSegmentation |
|
|
|
### AutoModelForSemanticSegmentation |
|
|
|
[[autodoc]] AutoModelForSemanticSegmentation |
|
|
|
### TFAutoModelForSemanticSegmentation |
|
|
|
[[autodoc]] TFAutoModelForSemanticSegmentation |
|
|
|
### AutoModelForInstanceSegmentation |
|
|
|
[[autodoc]] AutoModelForInstanceSegmentation |
|
|
|
### AutoModelForUniversalSegmentation |
|
|
|
[[autodoc]] AutoModelForUniversalSegmentation |
|
|
|
### AutoModelForZeroShotImageClassification |
|
|
|
[[autodoc]] AutoModelForZeroShotImageClassification |
|
|
|
### TFAutoModelForZeroShotImageClassification |
|
|
|
[[autodoc]] TFAutoModelForZeroShotImageClassification |
|
|
|
### AutoModelForZeroShotObjectDetection |
|
|
|
[[autodoc]] AutoModelForZeroShotObjectDetection |
|
|
|
## Audio |
|
|
|
The following auto classes are available for the following audio tasks. |
|
|
|
### AutoModelForAudioClassification |
|
|
|
[[autodoc]] AutoModelForAudioClassification |
|
|
|
### AutoModelForAudioFrameClassification |
|
|
|
[[autodoc]] AutoModelForAudioFrameClassification |
|
|
|
### AutoModelForCTC |
|
|
|
[[autodoc]] AutoModelForCTC |
|
|
|
### AutoModelForSpeechSeq2Seq |
|
|
|
[[autodoc]] AutoModelForSpeechSeq2Seq |
|
|
|
### TFAutoModelForSpeechSeq2Seq |
|
|
|
[[autodoc]] TFAutoModelForSpeechSeq2Seq |
|
|
|
### FlaxAutoModelForSpeechSeq2Seq |
|
|
|
[[autodoc]] FlaxAutoModelForSpeechSeq2Seq |
|
|
|
### AutoModelForAudioXVector |
|
|
|
[[autodoc]] AutoModelForAudioXVector |
|
|
|
## Multimodal |
|
|
|
The following auto classes are available for the following multimodal tasks. |
|
|
|
### AutoModelForTableQuestionAnswering |
|
|
|
[[autodoc]] AutoModelForTableQuestionAnswering |
|
|
|
### TFAutoModelForTableQuestionAnswering |
|
|
|
[[autodoc]] TFAutoModelForTableQuestionAnswering |
|
|
|
### AutoModelForDocumentQuestionAnswering |
|
|
|
[[autodoc]] AutoModelForDocumentQuestionAnswering |
|
|
|
### TFAutoModelForDocumentQuestionAnswering |
|
|
|
[[autodoc]] TFAutoModelForDocumentQuestionAnswering |
|
|
|
### AutoModelForVisualQuestionAnswering |
|
|
|
[[autodoc]] AutoModelForVisualQuestionAnswering |
|
|
|
### AutoModelForVision2Seq |
|
|
|
[[autodoc]] AutoModelForVision2Seq |
|
|
|
### TFAutoModelForVision2Seq |
|
|
|
[[autodoc]] TFAutoModelForVision2Seq |
|
|
|
### FlaxAutoModelForVision2Seq |
|
|
|
[[autodoc]] FlaxAutoModelForVision2Seq |
|
|