auto.mdx 7.69 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!--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://www.apache.org/licenses/LICENSE-2.0

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
Sylvain Gugger's avatar
Style  
Sylvain Gugger committed
24
model = AutoModel.from_pretrained("bert-base-cased")
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
```

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

amyeroberts's avatar
amyeroberts committed
69
70
71
72
## AutoImageProcessor

[[autodoc]] AutoImageProcessor

73
74
75
76
## AutoProcessor

[[autodoc]] AutoProcessor

77
78
79
80
81
## Generic model classes

The following auto classes are available for instantiating a base model class without a specific head.

### AutoModel
82
83
84

[[autodoc]] AutoModel

85
86
87
88
89
90
91
92
93
94
95
96
97
### TFAutoModel

[[autodoc]] TFAutoModel

### FlaxAutoModel

[[autodoc]] FlaxAutoModel

## Generic pretraining classes

The following auto classes are available for instantiating a model with a pretraining head.

### AutoModelForPreTraining
98
99
100

[[autodoc]] AutoModelForPreTraining

101
### TFAutoModelForPreTraining
102

103
[[autodoc]] TFAutoModelForPreTraining
104

105
### FlaxAutoModelForPreTraining
106

107
[[autodoc]] FlaxAutoModelForPreTraining
108

109
## Natural Language Processing
110

111
The following auto classes are available for the following natural language processing tasks.
112

113
### AutoModelForCausalLM
114

115
[[autodoc]] AutoModelForCausalLM
116

117
### TFAutoModelForCausalLM
118

119
[[autodoc]] TFAutoModelForCausalLM
120

121
### FlaxAutoModelForCausalLM
122

123
[[autodoc]] FlaxAutoModelForCausalLM
124

125
### AutoModelForMaskedLM
126

127
[[autodoc]] AutoModelForMaskedLM
128

129
### TFAutoModelForMaskedLM
130

131
[[autodoc]] TFAutoModelForMaskedLM
132

133
### FlaxAutoModelForMaskedLM
134

135
[[autodoc]] FlaxAutoModelForMaskedLM
136

137
138
139
140
### AutoModelForMaskGeneration

[[autodoc]] AutoModelForMaskGeneration

141
### AutoModelForSeq2SeqLM
142

143
[[autodoc]] AutoModelForSeq2SeqLM
144

145
### TFAutoModelForSeq2SeqLM
146

147
[[autodoc]] TFAutoModelForSeq2SeqLM
148

149
### FlaxAutoModelForSeq2SeqLM
150

151
[[autodoc]] FlaxAutoModelForSeq2SeqLM
152

153
### AutoModelForSequenceClassification
NielsRogge's avatar
NielsRogge committed
154

155
[[autodoc]] AutoModelForSequenceClassification
NielsRogge's avatar
NielsRogge committed
156

157
### TFAutoModelForSequenceClassification
158

159
[[autodoc]] TFAutoModelForSequenceClassification
160

161
### FlaxAutoModelForSequenceClassification
162

163
[[autodoc]] FlaxAutoModelForSequenceClassification
164

165
### AutoModelForMultipleChoice
166

167
[[autodoc]] AutoModelForMultipleChoice
168

169
### TFAutoModelForMultipleChoice
170

171
[[autodoc]] TFAutoModelForMultipleChoice
172

173
### FlaxAutoModelForMultipleChoice
174

175
[[autodoc]] FlaxAutoModelForMultipleChoice
176

177
### AutoModelForNextSentencePrediction
178

179
[[autodoc]] AutoModelForNextSentencePrediction
180

181
### TFAutoModelForNextSentencePrediction
182

183
[[autodoc]] TFAutoModelForNextSentencePrediction
184

185
### FlaxAutoModelForNextSentencePrediction
NielsRogge's avatar
NielsRogge committed
186

187
[[autodoc]] FlaxAutoModelForNextSentencePrediction
NielsRogge's avatar
NielsRogge committed
188

189
### AutoModelForTokenClassification
190

191
[[autodoc]] AutoModelForTokenClassification
192

193
### TFAutoModelForTokenClassification
194

195
[[autodoc]] TFAutoModelForTokenClassification
196

197
### FlaxAutoModelForTokenClassification
198

199
[[autodoc]] FlaxAutoModelForTokenClassification
200

201
### AutoModelForQuestionAnswering
202

203
[[autodoc]] AutoModelForQuestionAnswering
204

205
### TFAutoModelForQuestionAnswering
206

207
[[autodoc]] TFAutoModelForQuestionAnswering
208

209
### FlaxAutoModelForQuestionAnswering
210

211
[[autodoc]] FlaxAutoModelForQuestionAnswering
212

213
## Computer vision
214

215
The following auto classes are available for the following computer vision tasks.
216

217
### AutoModelForDepthEstimation
218

219
[[autodoc]] AutoModelForDepthEstimation
220

221
222
223
224
225
### AutoModelForImageClassification

[[autodoc]] AutoModelForImageClassification

### TFAutoModelForImageClassification
226
227
228

[[autodoc]] TFAutoModelForImageClassification

229
### FlaxAutoModelForImageClassification
230

231
[[autodoc]] FlaxAutoModelForImageClassification
232

233
### AutoModelForVideoClassification
234

235
[[autodoc]] AutoModelForVideoClassification
236

237
### AutoModelForMaskedImageModeling
238

239
[[autodoc]] AutoModelForMaskedImageModeling
240

241
### AutoModelForObjectDetection
242

243
[[autodoc]] AutoModelForObjectDetection
244

245
### AutoModelForImageSegmentation
246

247
[[autodoc]] AutoModelForImageSegmentation
248

249
### AutoModelForSemanticSegmentation
250

251
[[autodoc]] AutoModelForSemanticSegmentation
252

253
### TFAutoModelForSemanticSegmentation
254

255
[[autodoc]] TFAutoModelForSemanticSegmentation
256

257
### AutoModelForInstanceSegmentation
258

259
[[autodoc]] AutoModelForInstanceSegmentation
260

261
262
263
264
### AutoModelForUniversalSegmentation

[[autodoc]] AutoModelForUniversalSegmentation

265
266
267
268
269
270
271
272
### AutoModelForZeroShotImageClassification

[[autodoc]] AutoModelForZeroShotImageClassification

### TFAutoModelForZeroShotImageClassification

[[autodoc]] TFAutoModelForZeroShotImageClassification

273
### AutoModelForZeroShotObjectDetection
274

275
[[autodoc]] AutoModelForZeroShotObjectDetection
276

277
## Audio
278

279
The following auto classes are available for the following audio tasks.
280

281
### AutoModelForAudioClassification
282

283
[[autodoc]] AutoModelForAudioClassification
284

285
### AutoModelForAudioFrameClassification
Joao Gante's avatar
Joao Gante committed
286

287
[[autodoc]] AutoModelForAudioFrameClassification
Joao Gante's avatar
Joao Gante committed
288

289
### AutoModelForCTC
290

291
[[autodoc]] AutoModelForCTC
292

293
### AutoModelForSpeechSeq2Seq
294

295
[[autodoc]] AutoModelForSpeechSeq2Seq
296

297
### TFAutoModelForSpeechSeq2Seq
298

299
[[autodoc]] TFAutoModelForSpeechSeq2Seq
300

301
302
303
304
### FlaxAutoModelForSpeechSeq2Seq

[[autodoc]] FlaxAutoModelForSpeechSeq2Seq

305
### AutoModelForAudioXVector
306

307
[[autodoc]] AutoModelForAudioXVector
308

309
## Multimodal
310

311
The following auto classes are available for the following multimodal tasks.
312

313
### AutoModelForTableQuestionAnswering
314

315
[[autodoc]] AutoModelForTableQuestionAnswering
316

317
### TFAutoModelForTableQuestionAnswering
318

319
[[autodoc]] TFAutoModelForTableQuestionAnswering
320

321
### AutoModelForDocumentQuestionAnswering
322

323
[[autodoc]] AutoModelForDocumentQuestionAnswering
324

325
### TFAutoModelForDocumentQuestionAnswering
326

327
[[autodoc]] TFAutoModelForDocumentQuestionAnswering
328

329
### AutoModelForVisualQuestionAnswering
330

331
[[autodoc]] AutoModelForVisualQuestionAnswering
332

333
### AutoModelForVision2Seq
334

335
336
337
338
339
[[autodoc]] AutoModelForVision2Seq

### TFAutoModelForVision2Seq

[[autodoc]] TFAutoModelForVision2Seq
340

341
### FlaxAutoModelForVision2Seq
342
343

[[autodoc]] FlaxAutoModelForVision2Seq