¿Qué son los tokens y cómo contarlos?

¿Qué son los tokens?

Los tokens pueden considerarse como fragmentos de palabras. Antes de que la API procese la solicitud, la entrada se divide en tokens. Estos tokens no se cortan exactamente donde comienzan o terminan las palabras; los tokens pueden incluir espacios finales e incluso subpalabras. A continuación, se ofrecen algunas reglas prácticas útiles para comprender los tokens en términos de longitud:

  • 1 token ~= 4 caracteres en inglés
  • 1 token ~= ¾ palabras
  • 100 tokens ~= 75 palabras

O

  • 1-2 oraciones ~= 30 tokens
  • 1 párrafo ~= 100 tokens
  • 1500 palabras ~= 2048 tokens

Para obtener contexto adicional sobre cómo se acumulan los tokens, consideraremos lo siguiente:

  • La cita de Wayne Gretzky «Pierdes el 100% de los tiros que no realizas» contiene 15 tokens.
  • La carta de OpenAI contiene 476 tokens.
  • La transcripción de la Declaración de Independencia de los Estados Unidos contiene 1.695 tokens.

La forma en que se dividen las palabras en tokens también depende del idioma. Por ejemplo, «Cómo estás» contiene 3 tokens (para 10 caracteres). La mayor proporción de tokens por carácter puede hacer que sea más costoso implementar la API para idiomas distintos del inglés.

Para explorar más a fondo la tokenización, puedes usar nuestra herramienta interactiva Tokenizer, que te permite calcular la cantidad de tokens y ver cómo se divide el texto en tokens. Ten en cuenta que el proceso exacto de tokenización varía entre los modelos. Los modelos más nuevos, como GPT-3.5 y GPT-4, usan un tokenizador diferente al de los modelos anteriores y producirán tokens diferentes para el mismo texto de entrada.

Como alternativa, si deseas tokenizar texto de manera programática, usa Tiktoken como un tokenizador BPE rápido que se usa específicamente para los modelos OpenAI.

Límites de tokens

Según el modelo utilizado, las solicitudes pueden utilizar hasta 128 000 tokens compartidos entre el mensaje y la finalización. Algunos modelos, como GPT-4 Turbo, tienen límites diferentes en los tokens de entrada y salida.

A menudo hay formas creativas de resolver problemas dentro de los límites, por ejemplo, condensar el mensaje, dividir el texto en partes más pequeñas, etc.

Precios de los tokens

La API ofrece múltiples tipos de modelos a diferentes precios. Las solicitudes a diferentes modelos tienen precios diferentes. Puedes encontrar detalles sobre los precios de los tokens aquí .

Explorando tokens

La API trata las palabras según su contexto en los datos del corpus. Los modelos toman la solicitud, convierten la entrada en una lista de tokens, procesan la solicitud y convierten los tokens predichos nuevamente en las palabras que vemos en la respuesta.

Lo que para nosotros pueden parecer dos palabras idénticas pueden generarse en tokens diferentes según cómo estén estructuradas dentro del texto. Consideremos cómo la API genera valores de token para la palabra «red» en función de su contexto dentro del texto:

En el primer ejemplo anterior, el token “2266” para “red” incluye un espacio final:

El token “2296” para “Rojo” (con un espacio inicial y comenzando con una letra mayúscula) es diferente del token “2266” para “rojo” con una letra minúscula.

Cuando se utiliza «Red» al principio de una oración, el token generado no incluye un espacio inicial. El token «7738» es diferente de los dos ejemplos anteriores de la palabra.

Notas:

Cuanto más probable/frecuente sea un token, menor será el número de token que se le asigne:

  • El token generado para el período es el mismo (“13”) en las tres oraciones. Esto se debe a que, contextualmente, el período se utiliza de manera bastante similar en todo el corpus de datos.
  • El token generado para ‘rojo’ varía según su ubicación dentro de la oración:
    • Minúscula en medio de una oración: ‘red’ – (token: “2266”)
    • Mayúscula en medio de una oración: ‘Red’ – (token: “2297”)
    • Mayúsculas al principio de una oración: ‘Red’ – (token: “7738”)

Fuente: Open AI