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

O que são tokens e como contá-los?

Atualizado: 8 days ago

O que são tokens?

Os tokens são os elementos básicos do texto que os modelos da OpenAI processam. Podem ser tão curtos como um único carácter ou tão longos como uma palavra completa, consoante a língua e o contexto. Espaços, pontuação e palavras parciais contribuem todos para a contagem de tokens. É assim que a API segmenta internamente o seu texto antes de gerar uma resposta.

Regras práticas úteis para inglês:

  • 1 token ≈ 4 caracteres

  • 1 token ≈ ¾ de uma palavra

  • 100 tokens ≈ 75 palavras

  • 1–2 frases ≈ 30 tokens

  • 1 parágrafo ≈ 100 tokens

  • ~1.500 palavras ≈ 2.048 tokens

A tokenização varia consoante o modelo e a codificação. Use a ferramenta Tokenizer ou tiktoken.encoding_for_model(model) para obter a contagem exata para o seu modelo de destino.

Exemplos

Eis alguns exemplos de texto do mundo real com as respetivas contagens aproximadas de tokens:

  • Citação de Wayne Gretzky “Falha 100% dos remates que não faz” = 11 tokens

  • Carta da OpenAI = 476 tokens

  • Declaração de Independência dos EUA = 1.695 tokens

Como são calculadas as contagens de tokens

Quando envia texto para a API:

  1. O texto é dividido em tokens.

  2. O modelo processa estes tokens.

  3. A resposta é gerada como uma sequência de tokens e depois convertida novamente em texto.

A utilização de tokens é acompanhada em várias categorias:

  • Tokens de entrada – tokens no seu pedido.

  • Tokens de saída – tokens gerados na resposta.

  • Tokens em cache – tokens reutilizados no histórico de conversação (muitas vezes faturados a uma tarifa reduzida).

  • Tokens de raciocínio – em alguns modelos avançados, são incluídos internamente passos de “pensamento” adicionais antes de produzir a saída final.

Estas contagens aparecem nos metadados da sua resposta da API e são usadas para faturação e acompanhamento da utilização.

Para explorar mais a tokenização, pode usar a nossa ferramenta Tokenizer interativa, que lhe permite calcular o número de tokens e ver como o texto é dividido em tokens.

Em alternativa, se quiser tokenizar texto programaticamente, use Tiktoken como um tokenizador BPE rápido usado especificamente para modelos da OpenAI.

Limites de tokens

Cada modelo tem um limite máximo combinado de tokens (entrada + saída). Os modelos atuais de elevada capacidade suportam até centenas de milhares de tokens em contexto, embora os limites práticos possam variar consoante a versão do modelo e o seu nível de utilização.

Se exceder o limite, pode:

  • Encurtar ou reformular prompts.

  • Dividir texto extenso em blocos mais pequenos.

  • Resumir ou pré-processar entradas antes de as enviar.

Preços dos tokens

A utilização da API é cobrada por token, variando consoante o modelo e se os tokens são de entrada, de saída ou em cache. Consulte a página de preços da OpenAI para ver as tarifas atuais. Alguns modelos de raciocínio podem usar mais tokens internamente, mas procuram melhorar a eficiência reduzindo o número de tokens necessários por tarefa concluída.

Explorar tokens

A API trata as palavras de acordo com o respetivo contexto nos dados do corpus. Os modelos recebem o prompt, convertem a entrada numa lista de tokens, processam o prompt e convertem os tokens previstos novamente nas palavras que vemos na resposta.

O que nos pode parecer duas palavras idênticas pode ser gerado como tokens diferentes, consoante a forma como estão estruturadas no texto. Considere como a API gera valores de token para a palavra ‘red’ com base no seu contexto no texto:

Sentence split into color-coded tokens with Text selected over Token IDs
Token ID output as a list of integers with the Token IDs tab selected

No primeiro exemplo acima, o token “2266” para ‘ red’ inclui um espaço final (Nota: estes são ID's de token de exemplo para fins de demonstração).

Sentence split into color-coded token blocks: My favorite color is Red.
Tokenizer output with Token IDs selected and a list of numeric token IDs

O token “2296” para ‘ Red’ (com um espaço inicial e começando por uma letra maiúscula) é diferente do token “2266” para ‘ red’ com uma letra minúscula.

Tokenizer example splitting “Red is my favorite color.” into color-coded tokens
Tokenizer output with Token IDs selected and a list of token ID numbers

Quando ‘Red’ é usado no início de uma frase, o token gerado não inclui um espaço inicial. O token “7738” é diferente dos dois exemplos anteriores da palavra.

Observações:

Quanto mais provável/frequente for um token, menor é o número de token que lhe é atribuído:

  • O token gerado para o ponto final é o mesmo (“13”) nas 3 frases. Isto acontece porque, contextualmente, o ponto final é usado de forma bastante semelhante em todos os dados do corpus.

  • O token gerado para ‘red’ varia consoante a sua posição na frase:

    • Minúscula no meio de uma frase: ‘ red’ - (token: “2266”)

    • Maiúscula no meio de uma frase: ‘ Red’ - (token: “2297”)

    • Maiúscula no início de uma frase: ‘Red’ - (token: “7738”)

Este artigo foi útil?