Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Tokenización, embeddings y vectores, Unidad 3 — Tokenización moderna, 3.2 — Tokenización en modelos reales ·

Longitud de secuencia

Longitud de secuencia

Introducción

La longitud de secuencia es un aspecto crítico en la tokenización moderna y en el procesamiento de lenguaje natural (NLP). En modelos de NLP, la longitud de secuencia determina cuántas palabras o tokens se pueden procesar simultáneamente. Es fundamental entender cómo afecta a la eficiencia, al rendimiento y a las capacidades del modelo. En este artículo, exploraremos por qué la longitud de secuencia es importante en modelos de NLP, cómo se maneja en diferentes aplicaciones y cómo evitar errores comunes al trabajar con ella.

Explicación principal

En los modelos de NLP modernos, como BERT o GPT, cada palabra del texto se tokeniza y se convierte en un vector. Estos vectores se agrupan en secuencias, y es la longitud de estas secuencias (la secuencia de entrada) lo que determina la longitud de secuencia. Por ejemplo, BERT limita comúnmente su entrada a 512 tokens.

Conceptos clave

  • Tokens: La unidad básica del texto tokenizado.
  • Longitud máxima: El límite superior para el número de tokens en una sola secuencia de entrada.
  • Padding (relleno): Cuando la longitud de la secuencia es menor que el máximo permitido, se añade padding para completarla hasta ese tamaño.

Ejemplo práctico

Supongamos que trabajamos con un modelo que admite secuencias de hasta 1024 tokens. Si tenemos una frase como "Hoy es un día soleado en la ciudad", podríamos tokenizarla y obtener algo así:

# Ejemplo de tokenización simple
frase = "Hoy es un día soleado en la ciudad"
tokens = ["Hoy", "es", "un", "día", "soleado", "en", "la", "ciudad"]

Para usar esta frase con nuestro modelo, necesitamos asegurarnos de que se ajuste a la longitud máxima permitida. En este caso, nuestra frase tiene 8 tokens y es menor que el límite.

Manejando la longitud de secuencia

La forma en que se maneja la longitud de secuencia puede variar según la aplicación:

  • Truncamiento: Si la entrada excede la longitud máxima, se eliminan tokens al principio o al final para ajustarse.
  • Padding (relleno): Si la entrada es menor a la longitud máxima, se añaden tokens especiales para rellenar hasta alcanzarla.

Bloque de código

A continuación, un ejemplo en Python utilizando transformers de Hugging Face:

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")

# Ejemplo de texto
input_text = "Hoy es un día soleado en la ciudad."

# Tokenización y ajuste a la longitud máxima
tokens = tokenizer(input_text, padding="max_length", max_length=1024, truncation=True)
print(tokens["input_ids"])

En este ejemplo, el modelo bert-base-uncased tiene una longitud máxima de 512 tokens. Si nuestra entrada es más corta, se añadirá padding para alcanzar ese límite.

Errores típicos / trampas

1. Ignorar la longitud máxima

Una de las trampas más comunes es ignorar la restricción de longitud máxima y permitir secuencias mucho más largas que lo que el modelo puede manejar, lo que resulta en errores durante la inferencia.

2. No usar padding correctamente

Otro error común es no aplicar el padding adecuadamente. Si no se ajusta al límite máximo, algunas implementaciones pueden fallar o generar resultados incorrectos.

3. Truncamiento inadecuado

El truncamiento debe hacerse de manera cuidadosa para preservar la información más relevante del texto. No es aconsejable eliminar arbitrariamente el principio o final de la frase sin considerar su contenido y significado.

Checklist accionable

  1. Verifica siempre la longitud máxima: Antes de procesar cualquier texto, asegúrate de que no excede la longitud máxima permitida.
  2. Usa padding adecuadamente: Asegúrate de usar el padding para completar secuencias más cortas hasta alcanzar la longitud máxima.
  3. Truncar con cuidado: Si es necesario truncar, prioriza preservar información clave en la parte final del texto si es posible.
  4. Revisa el modelo y tokenizador utilizados: Verifica que estés utilizando los parámetros correctos para la longitud de secuencia.
  5. Testea con datos reales: Prueba tu implementación con diferentes longitudes de texto para asegurarte de que funciona correctamente en todos los casos.

Siguientes pasos

  • Aprende más sobre modelos Transformer: Estudia cómo se maneja la secuencia de entrada en arquitecturas como BERT y GPT.
  • Practica con diferentes longitudes: Trabaja con textos de distintas longitudes para mejorar tu comprensión del impacto que tiene la longitud de secuencia.
  • Implementa soluciones más avanzadas: Explora métodos como el padding dinámico o técnicas de segmentación para manejar secuencias muy largas.

La longitud de secuencia es un aspecto crucial en el procesamiento de lenguaje natural y afecta directamente al rendimiento y eficiencia del modelo. Al comprender bien cómo se maneja la longitud de secuencia, puedes optimizar tus soluciones NLP para obtener mejores resultados y evitar errores comunes.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).