Inferencia con Transformers — Cómo agrupar dos avisos de mantenimiento sin alterar su significado
Ruta de aprendizaje
Configuración y pesos, tokenización, subpalabras, relleno, máscaras e inferencia por lotes.
El curso descompone la inferencia en tokenización, cálculo de puntuaciones y lectura de etiquetas. Para construir un tensor rectangular con secuencias de diferente longitud se rellenan las filas cortas. La máscara de atención distingue el contenido de las posiciones de relleno.
Resolver el caso paso a paso
Usa dos secuencias ficticias que ya incluyen los tokens de límite:
[11, 12, 13]y[21, 22, 23, 24, 25]. En este ejemplo se reserva el cero para el relleno. En un modelo real debes consultar el identificador definido por su tokenizador.Completa ambas filas por la derecha hasta cinco posiciones. La primera necesita dos ceros adicionales. Asigna unos a sus tres posiciones originales y ceros a las dos nuevas. La suma de la máscara debe ser tres para la primera fila y cinco para la segunda.
En un codificador real, carga el modelo y el tokenizador de la misma revisión. Activa el modo de evaluación y pasa al modelo también la máscara. Compara con una tolerancia numérica las puntuaciones del aviso breve, solo y en el lote.
Diagrama original de GuideWit. Cinco identificadores y una máscara que mantiene las tres primeras posiciones.
Ejemplo resuelto
Identificadores | Máscara | Tokens visibles |
|---|---|---|
[11, 12, 13] | [1, 1, 1, 0, 0] | 3 |
[21, 22, 23, 24, 25] | [1, 1, 1, 1, 1] | 5 |
Probar con Python 3
rows = [[11, 12, 13], [21, 22, 23, 24, 25]]
width = max(map(len, rows))
for row in rows:
pad = width - len(row)
ids = row + [0] * pad
mask = [1] * len(row) + [0] * pad
print(ids, mask, sum(mask))Resultado esperado
[11, 12, 13, 0, 0] [1, 1, 1, 0, 0] 3
[21, 22, 23, 24, 25] [1, 1, 1, 1, 1] 5Experimento local de Python de GuideWit. Ambas filas tienen cinco posiciones tras el relleno, pero las máscaras suman tres y cinco.
Si desaparece la avería del final, comprueba el truncamiento. Una máscara correcta no recupera palabras eliminadas antes de la inferencia. Pon la descripción tras un historial largo y decodifica los tokens que se conservaron.
Diagnóstico
Síntoma | Comprobación |
|---|---|
Las cinco posiciones de la fila corta aparecen activas. | Comprueba que las dos posiciones de relleno tengan máscara cero. |
La avería final no figura entre los tokens. | Inspecciona la longitud máxima y la estrategia de truncamiento. |
Preguntas de control
- ¿Cuántas posiciones de relleno necesita este lote?
- ¿Una etiqueta idéntica demuestra que los dos procesos recibieron la misma entrada?
Respuestas
- Dos, ambas en la fila de tres tokens.
- No. Puntuaciones distintas pueden dar la misma clase ganadora. Compara identificadores, máscaras y puntuaciones.
Glosario
Logit — Puntuación de una clase antes de convertir las puntuaciones en una distribución de probabilidades.
Fuentes y unidades
El caso, la prueba en Python y el diagrama son ejemplos propios. Las fuentes del capítulo se indican a continuación.
- Hugging Face LLM Course · 2
- Behind the pipeline
- Models
- Tokenizers
- Handling multiple sequences
- Batching inputs together (PyTorch) · 00:22
- What happens inside the pipeline function? (PyTorch)
- Instantiate a Transformers model (PyTorch)
- Tokenizers overview
- Word-based tokenizers
- Character-based tokenizers
- Subword-based tokenizers
- The tokenization pipeline