OpenAI
Esta página se tradujo automáticamente. Ver el artículo original en inglés.

Entender y contar tokens

Descubre cómo los tokens de entrada, salida, caché y razonamiento afectan al uso de la API, los límites de los modelos y los costes.

Actualización: 11 days ago

Descripción general

Los tokens son las unidades que utilizan los modelos de OpenAI para procesar texto. Un token puede representar un carácter, parte de una palabra, una palabra completa o un signo de puntuación. Los espacios también afectan a la forma en que el texto se divide en tokens.

El recuento de tokens no es lo mismo que el recuento de palabras. Un mismo texto puede producir distintos recuentos de tokens según el modelo, su codificación y el idioma.

Entender cómo el texto se convierte en tokens

Cuando envías texto a un modelo:

  1. El texto se divide en tokens.

  2. El modelo procesa esos tokens.

  3. El modelo genera tokens de salida. Estos pueden incluir el texto que recibes y, en los modelos de razonamiento, tokens de razonamiento internos que no se muestran como texto de la respuesta.

Usar estimaciones aproximadas para textos en inglés

Estas estimaciones pueden ayudarte a calcular el tamaño de un texto en inglés:

  • 1 token equivale aproximadamente a 4 caracteres.

  • 1 token equivale aproximadamente a tres cuartas partes de una palabra.

  • 100 tokens equivalen aproximadamente a 75 palabras.

Son estimaciones, no recuentos exactos. La longitud de las frases y los párrafos varía, y otros idiomas pueden presentar relaciones distintas entre caracteres, palabras y tokens.

Tener en cuenta los espacios y las mayúsculas

Una palabra puede dividirse en distintos tokens según su ortografía, el uso de mayúsculas y el texto que la rodea.

Por ejemplo, red, Red y red no contienen un texto idéntico: el último ejemplo incluye un espacio inicial. Una codificación puede representarlos de forma distinta.

Los identificadores de token también dependen de la codificación. No des por hecho que un identificador de token de ejemplo sea válido para todos los modelos.

Distinguir los tokens de entrada y salida

CategoríaQué describe
Tokens de entradaTokens proporcionados al modelo en una solicitud. También se denominan tokens de prompt.
Tokens de salidaTokens generados por el modelo. Chat Completions los denomina tokens de completación.
Tokens de entrada en cachéTokens de entrada reutilizados mediante el almacenamiento en caché de prompts. Su precio puede ser distinto al de los tokens de entrada que no están en caché.
Tokens de razonamientoTokens que un modelo de razonamiento utiliza internamente antes de generar su respuesta visible.

Los tokens de razonamiento no son visibles como texto de la respuesta, pero cuentan para el uso de salida y se facturan como tokens de salida.

Por tanto, una respuesta visible breve puede consumir más tokens de los que sugiere el texto mostrado.

Contar tokens antes de enviar una solicitud

Contar tokens en texto sin formato

Usa el tokenizador para ver cómo se divide el texto en tokens.

Para tokenizar texto sin formato mediante programación, usa tiktoken. Selecciona la codificación del modelo de destino, por ejemplo, con tiktoken.encoding_for_model(model).

El recuento de tokens de un texto sin formato no incluye necesariamente todos los tokens de una solicitud a la API. La estructura de los mensajes, las herramientas, los esquemas, las imágenes y los archivos pueden afectar al recuento total de entrada.

Contar los tokens de una entrada completa de Responses

Para una entrada completa de la API Responses, usa la API de recuento de tokens de entrada.

Admite los formatos de entrada de Responses, como mensajes, imágenes, archivos, herramientas y conversaciones. Su recuento incluye los tokens de formato utilizados para estructurar la solicitud, como los roles y los límites de los mensajes.

El recuento de entrada no permite predecir cuántos tokens de salida generará el modelo.

Consultar el uso real de tokens

Después de una solicitud, consulta su información de uso. Los nombres de los campos varían según el punto de acceso:

  • Chat Completions indica prompt_tokens, completion_tokens y total_tokens.

  • Responses indica input_tokens, output_tokens y total_tokens.

También puedes consultar la actividad a lo largo del tiempo en el panel de uso. Para ver instrucciones, incluido el uso con streaming, consulta Revisar el uso y los costes de la API.

Respetar los límites del modelo

Consulta en la documentación de tu modelo su ventana de contexto y la salida máxima. Estos límites pueden variar entre modelos.

La ventana de contexto limita los tokens con los que un modelo puede trabajar en una solicitud. Los modelos también tienen un límite de salida. En los modelos de razonamiento, reserva espacio tanto para los tokens de razonamiento como para la respuesta visible.

Si tu entrada es demasiado grande, puedes:

  • Acortar o reformular el prompt.

  • Eliminar el contexto innecesario o repetido.

  • Dividir las entradas grandes en partes más pequeñas.

  • Resumir o preprocesar el texto antes de enviarlo.

Usa el ajuste de tokens de salida compatible con tu punto de acceso y modelo. Chat Completions usa max_completion_tokens; Responses usa max_output_tokens.

Estos límites de tamaño de las solicitudes son independientes de los límites de frecuencia de la API y de los límites mensuales de uso o gasto. Consulta la documentación del modelo que utilizas.

Entender el precio de los tokens

En las tarifas de la API basadas en tokens, el precio depende del modelo y de la categoría del token. Los tokens de entrada, entrada en caché y salida pueden tener precios distintos. Otras funciones de la API pueden utilizar unidades de facturación diferentes.

Consulta las tarifas actuales en la página de precios de la API.

Al comparar modelos, ten en cuenta el total de tokens y el coste necesarios para completar tu tarea. Un precio inferior por millón de tokens no implica necesariamente un coste total menor: los modelos pueden tokenizar el mismo texto de forma distinta y generar cantidades diferentes de salida o razonamiento.

Prueba tareas representativas en lugar de comparar solo la longitud de la respuesta visible.

Tener en cuenta varias completaciones

Cuando un punto de acceso y un modelo permiten generar varias completaciones, esas completaciones adicionales también consumen tokens.

En Chat Completions, establecer n en un valor superior a 1 genera varias opciones. Se te cobran los tokens generados en todas esas opciones.

En la API Completions antigua, best_of puede generar candidatos que no se devuelven en su totalidad. Por ejemplo, best_of = 3 puede generar hasta 3 × max_tokens tokens de completación entre todos los candidatos.

Estos parámetros son específicos de cada punto de acceso. No des por hecho que otra API u otro modelo sean compatibles con n o best_of.

¿Te ha resultado útil este artículo?