autoclass_tutorial.md 6.12 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
<!--Copyright 2022 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.
11
12
13
14

鈿狅笍 Note that this file is in Markdown but contain specific syntax for our doc-builder (similar to MDX) that may not be
rendered properly in your Markdown viewer.

15
16
17
18
19
20
21
22
-->

# Carga instancias preentrenadas con un AutoClass

Con tantas arquitecturas diferentes de Transformer puede ser retador crear una para tu checkpoint. Como parte de la filosof铆a central de 馃 Transformers para hacer que la biblioteca sea f谩cil, simple y flexible de usar; una `AutoClass` autom谩ticamente infiere y carga la arquitectura correcta desde un checkpoint dado. El m茅todo `from_pretrained` te permite cargar r谩pidamente un modelo preentrenado para cualquier arquitectura, por lo que no tendr谩s que dedicar tiempo y recursos para entrenar uno desde cero. Producir este tipo de c贸digo con checkpoint implica que si funciona con uno, funcionar谩 tambi茅n con otro (siempre que haya sido entrenado para una tarea similar) incluso si la arquitectura es distinta.

<Tip>

23
Recuerda, la arquitectura se refiere al esqueleto del modelo y los checkpoints son los pesos para una arquitectura dada. Por ejemplo, [BERT](https://huggingface.co/google-bert/bert-base-uncased) es una arquitectura, mientras que `google-bert/bert-base-uncased` es un checkpoint. Modelo es un t茅rmino general que puede significar una arquitectura o un checkpoint.
24
25
26

</Tip>

Omar U. Espejel's avatar
Omar U. Espejel committed
27
En este tutorial, aprender谩s a:
28

Omar U. Espejel's avatar
Omar U. Espejel committed
29
30
31
32
* Cargar un tokenizador pre-entrenado.
* Cargar un extractor de caracter铆sticas (feature extractor en ingl茅s) pre-entrenado.
* Cargar un procesador pre-entrenado.
* Cargar un modelo pre-entrenado.
33
34
35

## AutoTokenizer

Omar U. Espejel's avatar
Omar U. Espejel committed
36
Casi cualquier tarea de Procesamiento de Lenguaje Natural comienza con un tokenizador. Un tokenizador convierte tu input a un formato que puede ser procesado por el modelo.
37
38
39
40
41
42

Carga un tokenizador con [`AutoTokenizer.from_pretrained`]:

```py
>>> from transformers import AutoTokenizer

43
>>> tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-uncased")
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
```

Luego tokeniza tu input como lo mostrado a continuaci贸n:

```py
>>> sequence = "In a hole in the ground there lived a hobbit."
>>> print(tokenizer(sequence))
{'input_ids': [101, 1999, 1037, 4920, 1999, 1996, 2598, 2045, 2973, 1037, 7570, 10322, 4183, 1012, 102], 
 'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
 'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}
```

## AutoFeatureExtractor

Para tareas de audio y visi贸n, un extractor de caracter铆sticas procesa la se帽al de audio o imagen al formato de input correcto.

Carga un extractor de caracter铆sticas con [`AutoFeatureExtractor.from_pretrained`]:

```py
>>> from transformers import AutoFeatureExtractor

>>> feature_extractor = AutoFeatureExtractor.from_pretrained(
...     "ehcalabres/wav2vec2-lg-xlsr-en-speech-emotion-recognition"
... )
```

## AutoProcessor

Las tareas multimodales requieren un procesador que combine dos tipos de herramientas de preprocesamiento. Por ejemplo, el modelo [LayoutLMV2](model_doc/layoutlmv2) requiere que un extractor de caracter铆sticas maneje las im谩genes y que un tokenizador maneje el texto; un procesador combina ambas.

Carga un procesador con [`AutoProcessor.from_pretrained`]:

```py
>>> from transformers import AutoProcessor

>>> processor = AutoProcessor.from_pretrained("microsoft/layoutlmv2-base-uncased")
```

## AutoModel

<frameworkcontent>
<pt>
Finalmente, las clases `AutoModelFor` te permiten cargar un modelo preentrenado para una tarea dada (revisa [aqu铆](model_doc/auto) para conocer la lista completa de tareas disponibles). Por ejemplo, cargue un modelo para clasificaci贸n de secuencias con [`AutoModelForSequenceClassification.from_pretrained`]:

```py
>>> from transformers import AutoModelForSequenceClassification

91
>>> model = AutoModelForSequenceClassification.from_pretrained("distilbert/distilbert-base-uncased")
92
93
```

Omar U. Espejel's avatar
Omar U. Espejel committed
94
Reutiliza f谩cilmente el mismo checkpoint para cargar una aquitectura para alguna tarea diferente:
95
96
97
98

```py
>>> from transformers import AutoModelForTokenClassification

99
>>> model = AutoModelForTokenClassification.from_pretrained("distilbert/distilbert-base-uncased")
100
101
```

Omar U. Espejel's avatar
Omar U. Espejel committed
102
Generalmente recomendamos utilizar las clases `AutoTokenizer` y `AutoModelFor` para cargar instancias pre-entrenadas de modelos. 脡sto asegurar谩 que cargues la arquitectura correcta en cada ocasi贸n. En el siguiente [tutorial](preprocessing), aprende a usar tu tokenizador reci茅n cargado, el extractor de caracter铆sticas y el procesador para preprocesar un dataset para fine-tuning.
103
104
</pt>
<tf>
Omar U. Espejel's avatar
Omar U. Espejel committed
105
Finalmente, la clase `TFAutoModelFor` te permite cargar tu modelo pre-entrenado para una tarea dada (revisa [aqu铆](model_doc/auto) para conocer la lista completa de tareas disponibles). Por ejemplo, carga un modelo para clasificaci贸n de secuencias con [`TFAutoModelForSequenceClassification.from_pretrained`]:
106
107
108
109

```py
>>> from transformers import TFAutoModelForSequenceClassification

110
>>> model = TFAutoModelForSequenceClassification.from_pretrained("distilbert/distilbert-base-uncased")
111
112
```

Omar U. Espejel's avatar
Omar U. Espejel committed
113
Reutiliza f谩cilmente el mismo checkpoint para cargar una aquitectura para alguna tarea diferente:
114
115
116
117

```py
>>> from transformers import TFAutoModelForTokenClassification

118
>>> model = TFAutoModelForTokenClassification.from_pretrained("distilbert/distilbert-base-uncased")
119
120
```

Omar U. Espejel's avatar
Omar U. Espejel committed
121
Generalmente recomendamos utilizar las clases `AutoTokenizer` y `TFAutoModelFor` para cargar instancias de modelos pre-entrenados. 脡sto asegurar谩 que cargues la arquitectura correcta cada vez. En el siguiente [tutorial](preprocessing), aprende a usar tu tokenizador reci茅n cargado, el extractor de caracter铆sticas y el procesador para preprocesar un dataset para fine-tuning.
122
123
</tf>
</frameworkcontent>