OpenAI
Esta página foi traduzida automaticamente. Veja o artigo original em inglês.

Como entender e contar tokens

Saiba como tokens de entrada, saída, em cache e de raciocínio afetam o uso da API, os limites dos modelos e os custos.

Atualizado: 14 days ago

Visão geral

Tokens são as unidades usadas pelos modelos da OpenAI para processar texto. Um token pode representar um caractere, parte de uma palavra, uma palavra inteira ou um sinal de pontuação. Os espaços também afetam a divisão do texto em tokens.

A contagem de tokens não é igual à contagem de palavras. O mesmo texto pode gerar contagens de tokens diferentes dependendo do modelo, de sua codificação e do idioma.

Entenda como o texto se transforma em tokens

Quando você envia texto a um modelo:

  1. O texto é dividido em tokens.

  2. O modelo processa esses tokens.

  3. O modelo gera tokens de saída. Eles podem incluir o texto recebido e, nos modelos de raciocínio, tokens de raciocínio interno que não aparecem no texto da resposta.

Use estimativas aproximadas para textos em inglês

Estas estimativas podem ajudar a avaliar o tamanho de um texto em inglês:

  • 1 token corresponde a aproximadamente 4 caracteres.

  • 1 token corresponde a aproximadamente três quartos de uma palavra.

  • 100 tokens correspondem a aproximadamente 75 palavras.

Esses valores são estimativas, não contagens exatas. O tamanho de frases e parágrafos varia, e outros idiomas podem apresentar relações diferentes entre caracteres, palavras e tokens.

Considere os espaços e o uso de maiúsculas

Uma palavra pode ser dividida em tokens diferentes dependendo da grafia, do uso de maiúsculas e do texto ao redor.

Por exemplo, red, Red e red não contêm textos idênticos: o último exemplo inclui um espaço no início. Uma codificação pode representá-los de maneiras diferentes.

Os IDs dos tokens também dependem da codificação. Não presuma que um exemplo de ID de token se aplique a todos os modelos.

Diferencie tokens de entrada e de saída

CategoriaO que descreve
Tokens de entradaTokens fornecidos ao modelo em uma solicitação. Eles também são chamados de tokens de prompt.
Tokens de saídaTokens gerados pelo modelo. A API Chat Completions os chama de tokens de conclusão.
Tokens de entrada em cacheTokens de entrada reutilizados por meio do cache de prompts. O preço deles pode ser diferente do preço dos tokens de entrada que não estão em cache.
Tokens de raciocínioTokens que um modelo de raciocínio usa internamente antes de produzir a resposta visível.

Os tokens de raciocínio não aparecem no texto da resposta, mas contam para o uso de saída e são cobrados como tokens de saída.

Portanto, uma resposta visível curta pode usar mais tokens do que o texto exibido sugere.

Conte os tokens antes de enviar uma solicitação

Conte tokens de texto simples

Use o Tokenizador para ver como o texto é dividido em tokens.

Para tokenizar texto simples por meio de código, use o tiktoken. Selecione a codificação do modelo de destino, por exemplo, com tiktoken.encoding_for_model(model).

A contagem de tokens de texto simples não inclui necessariamente todos os tokens de uma solicitação à API. A estrutura das mensagens, as ferramentas, os esquemas, as imagens e os arquivos podem afetar a contagem total da entrada.

Conte uma entrada completa da API Responses

Para uma entrada completa da API Responses, use a API de contagem de tokens de entrada.

Ela aceita os formatos de entrada da API Responses, incluindo mensagens, imagens, arquivos, ferramentas e conversas. A contagem inclui tokens de formatação usados na estrutura da solicitação, como funções e limites das mensagens.

A contagem da entrada não prevê quantos tokens de saída o modelo gerará.

Verifique o uso real de tokens

Após uma solicitação, consulte as informações de uso. Os nomes dos campos variam de acordo com o endpoint:

  • A API Chat Completions informa prompt_tokens, completion_tokens e total_tokens.

  • A API Responses informa input_tokens, output_tokens e total_tokens.

Você também pode consultar a atividade ao longo do tempo no Painel de uso. Para ver instruções, inclusive sobre o uso com streaming, consulte: Como consultar o uso e os custos da API.

Respeite os limites do modelo

Consulte a documentação do modelo para verificar a janela de contexto e a saída máxima. Esses limites podem variar entre os modelos.

A janela de contexto limita os tokens que um modelo pode processar em uma solicitação. Os modelos também têm um limite de saída. Para modelos de raciocínio, reserve espaço tanto para os tokens de raciocínio quanto para a resposta visível.

Se a entrada for grande demais, você poderá:

  • Encurtar ou reformular o prompt.

  • Remover contexto desnecessário ou repetido.

  • Dividir entradas grandes em partes menores.

  • Resumir ou pré-processar o texto antes do envio.

Use a configuração de tokens de saída compatível com seu endpoint e modelo. A API Chat Completions usa max_completion_tokens; a API Responses usa max_output_tokens.

Esses limites de tamanho das solicitações são distintos dos limites de taxa da API e dos limites mensais de uso ou gastos. Consulte a documentação do modelo que você usa.

Entenda a cobrança por tokens

Na cobrança da API com base em tokens, a tarifa depende do modelo e da categoria de token. Tokens de entrada, de entrada em cache e de saída podem ter preços diferentes. Outros recursos da API podem usar unidades de cobrança diferentes.

Consulte as tarifas atuais na página de preços da API.

Ao comparar modelos, considere o total de tokens e o custo necessários para concluir sua tarefa. Um preço menor por milhão de tokens não resulta necessariamente em um custo total menor: os modelos podem tokenizar o mesmo texto de maneiras diferentes e gerar quantidades distintas de saída ou raciocínio.

Teste tarefas representativas em vez de comparar apenas o tamanho da resposta visível.

Considere várias conclusões

Quando um endpoint e um modelo permitem gerar várias conclusões, essas conclusões adicionais também usam tokens.

Na API Chat Completions, definir n acima de 1 gera várias opções. A cobrança inclui os tokens gerados em todas essas opções.

Na API Completions legada, best_of pode gerar candidatos que não são todos retornados. Por exemplo, best_of = 3 pode gerar até 3 × max_tokens tokens de conclusão entre os candidatos.

Esses parâmetros são específicos de cada endpoint. Não presuma que outra API ou modelo seja compatível com n ou best_of.

Este artigo foi útil?