Enumera y cuenta tokens

El SDK de Vertex AI para Python (1.60.0 y posteriores) incluye un tokenizador integrado, que te permite enumerar y contar los tokens de una instrucción de forma local sin tener que realizar llamadas a la API. En esta página, se muestra cómo enumerar los tokens y sus IDs de tokens de una instrucción y cómo obtener un recuento total de tokens de una instrucción con el SDK de Vertex AI para Python.

Tokens y la importancia de enumerar y contar tokens

Los modelos de IA generativa dividen el texto y otros datos de una instrucción en unidades llamadas tokens para su procesamiento. La forma en que los datos de texto se convierten en tokens depende del tokenizador que se usa. Un token pueden ser caracteres, palabras o frases.

Cada modelo tiene una cantidad máxima de tokens que puede manejar en una instrucción y una respuesta. Conocer el recuento de tokens de tu instrucción te permite saber si superaste este límite o no. Además, el recuento de tokens también muestra los caracteres facturables de la instrucción, lo que te ayuda a estimar el costo.

Enumerar tokens muestra una lista de los tokens en los que se desglosa tu instrucción. Cada token de la lista está asociado con un ID de token, que te ayuda a solucionar problemas y analizar el comportamiento del modelo.

Modelos compatibles

En la siguiente tabla, se muestran los modelos que admiten la lista de tokens y el recuento de tokens:

Enumera tokens Cuenta tokens
gemini-1.5-flash-002 gemini-1.5-flash-002
gemini-1.5-pro-002 gemini-1.5-pro-002
gemini-1.0-pro-002
gemini-1.0-pro-vision-001

Obtén una lista de tokens e IDs de token para un prompt

En la siguiente muestra de código, se indica cómo obtener una lista de tokens e IDs de token para una instrucción. El mensaje solo debe contener texto. No se admiten los mensajes multimodales.

Python

Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.

from vertexai.preview.tokenization import get_tokenizer_for_model

# init local tokenzier
tokenizer = get_tokenizer_for_model("gemini-1.5-flash-001")

# Count Tokens
prompt = "why is the sky blue?"
response = tokenizer.count_tokens(prompt)
print(f"Tokens count: {response.total_tokens}")
# Example response:
#       Tokens count: 6

# Compute Tokens
response = tokenizer.compute_tokens(prompt)
print(f"Tokens list: {response.tokens_info}")
# Example response:
#     Tokens list: [TokensInfo(token_ids=[18177, 603, 573, 8203, 3868, 235336],
#          tokens=[b'why', b' is', b' the', b' sky', b' blue', b'?'], role='user')]

Obtén el recuento de tokens y los caracteres facturables de una instrucción

En la siguiente muestra de código, se indica cómo obtener el recuento de tokens y la cantidad de caracteres facturables de una instrucción. Se admiten los mensajes multimodales y solo de texto.

Python

Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Si deseas obtener más información, consulta la documentación de referencia de la API de Python.

from vertexai.preview.tokenization import get_tokenizer_for_model

# Using local tokenzier
tokenizer = get_tokenizer_for_model("gemini-1.5-flash-002")

prompt = "hello world"
response = tokenizer.count_tokens(prompt)
print(f"Prompt Token Count: {response.total_tokens}")
# Example response:
# Prompt Token Count: 2

prompt = ["hello world", "what's the weather today"]
response = tokenizer.count_tokens(prompt)
print(f"Prompt Token Count: {response.total_tokens}")
# Example response:
# Prompt Token Count: 8