Listar e contar tokens

O SDK da Vertex AI para Python (1.60.0 e mais recentes) inclui um tokenizer integrado, que permite listar e contar os tokens de um comando localmente sem precisar fazer chamadas de API. Esta página mostra como listar os tokens e os IDs deles de um comando e como conferir uma contagem total de tokens de um comando usando o SDK da Vertex AI para Python.

Tokens e a importância da listagem e contagem de tokens

Os modelos de IA generativa dividem o texto e outros dados em um comando em unidades chamadas tokens para processamento. A maneira como os dados são convertidos em tokens depende do tokenizador usado. Um token pode ser composto por caracteres, palavras ou frases.

Cada modelo tem um número máximo de tokens que pode ser processado em um comando e uma resposta. Saber a contagem de tokens da solicitação permite saber se você excedeu esse limite ou não. Além disso, a contagem de tokens também retorna os caracteres facturáveis do comando, o que ajuda a estimar o custo.

O comando "List tokens" retorna uma lista dos tokens em que o comando é dividido. Cada token listado está associado a um ID de token, que ajuda você a realizar solucionar problemas e analisar o comportamento do modelo.

Modelos compatíveis

A tabela a seguir mostra os modelos compatíveis com a listagem e a contagem de tokens:

Listar tokens Contar 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

Receber uma lista de tokens e IDs de token de um comando

O exemplo de código abaixo mostra como receber uma lista de tokens e IDs de token para um comando. A solicitação precisa conter apenas texto. Não há suporte para comandos multimodais.

Python

Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API 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')]

Receber a contagem de tokens e os caracteres faturáveis de um comando

O exemplo de código abaixo mostra como conferir a contagem de tokens e o número de caracteres faturáveis de um comando. Tanto os comandos somente de texto quanto os multimodais suporte.

Python

Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API 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