Um modelo mental útil

Pense nos tokens de saída como partes da resposta e também como etapas para produzi-la.

Um modelo de texto não escreve uma resposta completa nos bastidores para depois dividi-la em tokens. Ele constrói a resposta um token por vez. Depois de cada token, a sequência crescente passa a fazer parte das informações usadas para escolher o próximo.

Essa diferença explica por que uma resposta longa demora mais para ser gerada do que uma resposta curta. Cada token de saída adicional exige outra etapa de geração.

Como os tokens de saída são gerados

Depois de processar a entrada, o modelo atribui uma pontuação a cada token que poderia vir em seguida. As configurações de geração determinam como uma dessas possibilidades é escolhida. O token selecionado é acrescentado à sequência, e o modelo repete o processo.

process the input
        |
        v
score possible next tokens
        |
        v
choose one output token ----+
        |                   |
        v                   |
append it to the sequence --+
        |
        v
stop when a stopping condition is met

O ciclo pode terminar porque:

  • o modelo chega a um fim natural;
  • ele gera uma sequência de parada configurada;
  • ele atinge um limite de tokens de saída;
  • ele muda para uma ação, como uma chamada de ferramenta; ou
  • o serviço aplica outra condição de parada específica do modelo ou da política.

A contagem exata de tokens depende do tokenizador do modelo. Uma palavra curta pode ter um token. Uma palavra mais longa ou menos familiar pode ter vários. Espaços, pontuação, código e texto em outros idiomas também podem ser divididos de maneiras diferentes. Por isso, a contagem de caracteres e de palavras pode estimar o tamanho da saída, mas não determiná-lo com exatidão.

O que conta como token de saída

Em uma resposta de texto comum, a resposta visível é formada por tokens de saída gerados. JSON gerado e argumentos de chamadas de ferramentas também são saídas do modelo, mesmo quando uma aplicação os renderiza como uma ação da interface em vez de mostrar o texto bruto.

As categorias de uso do provedor acrescentam uma segunda camada. “Tokens de saída” pode se referir tanto à sequência gerada visível quanto a um total contabilizado. Esses totais não são padronizados:

  • Algumas APIs chamam os tokens gerados de tokens de conclusão.
  • Algumas incluem o raciocínio oculto no total de saída e fornecem uma discriminação separada.
  • Algumas informam os tokens visíveis da resposta e os tokens de pensamento em campos separados.
  • Tipos especiais de saída podem ter detalhes ou regras de cobrança próprias.

A fonte confiável para uma solicitação são os dados de uso retornados pelo provedor e pelo endpoint. Não infira a saída cobrada apenas copiando a resposta visível para um tokenizador. A documentação atual da OpenAI, da Anthropic e do Google ilustra o motivo: os rótulos e as discriminações diferem.

Um exemplo prático

Imagine uma solicitação de API com um máximo de 100 tokens de saída.

O modelo gera uma resposta completa e para após 24 tokens. Os dados de uso informam:

{
  "input_tokens": 18,
  "output_tokens": 24,
  "total_tokens": 42
}

A contagem de tokens de saída é 24. A configuração de 100 tokens era apenas um limite. Ela não obrigou o modelo a produzir 100 tokens e, por si só, não significa que 100 tokens foram cobrados.

Agora suponha que o modelo continue até atingir o limite de 100 tokens. A solicitação ainda pode retornar uma resposta de API tecnicamente bem-sucedida, mas a resposta pode terminar no meio de uma frase ou de uma estrutura. Uma aplicação em produção deve verificar o motivo da parada da resposta, em vez de presumir que o texto retornado está completo.

Há ainda outra complicação. Um modelo de raciocínio pode gerar raciocínio interno antes da resposta visível. Dependendo do provedor, o uso pode incluir esses tokens ocultos em output_tokens ou informá-los em um campo separado de pensamento. Portanto, a resposta visível e a saída contabilizada podem ter contagens de tokens diferentes.

Por que os tokens de saída são importantes

Custo

Serviços cujo preço é baseado em tokens geralmente contabilizam entrada e saída separadamente, e suas tarifas podem ser diferentes. Portanto, o uso efetivo da saída, e não apenas o limite solicitado, faz parte do custo de cada solicitação. Sistemas de cota específicos do provedor podem reservar capacidade temporariamente com base no limite, mesmo quando a cobrança usa a geração efetiva.

Tempo de resposta

Os tokens de saída são gerados sequencialmente. Mais saída geralmente significa mais etapas de geração e uma espera maior pela resposta completa. O streaming pode mostrar a saída parcial mais cedo, mas não elimina o trabalho necessário para gerar os tokens restantes.

Completude

Um limite de saída ajuda a controlar o tamanho, mas um limite baixo demais pode interromper prosa, código, JSON ou argumentos de ferramentas. Verifique o motivo da parada sempre que a completude for importante.

Contexto disponível

A entrada e a saída ocupam espaço na janela de contexto do modelo. Uma solicitação que usa grande parte do espaço disponível para a entrada pode deixar menos espaço para a geração, conforme os limites e as regras de contabilização do modelo e do endpoint.

Equívocos comuns

“Tokens de saída são iguais a palavras”

Não são. Tokens podem ser palavras inteiras, partes de palavras, pontuação, espaços ou outras unidades. A mesma frase pode ter contagens de tokens diferentes em tokenizadores diferentes.

“A configuração máxima de saída é a saída esperada”

Ela é um limite superior. O modelo pode parar antes de alcançá-lo. Os provedores também podem aplicar um limite inferior do modelo ou um orçamento compartilhado que inclua o raciocínio interno.

“Se a API retornou texto, a resposta está completa”

Não necessariamente. Atingir o limite de saída pode retornar texto parcial com um motivo de parada relacionado ao comprimento. Isso é especialmente importante para código e dados estruturados, nos quais a ausência de um único caractere de fechamento pode tornar o resultado inutilizável.

“A resposta visível é igual à saída cobrada”

Frequentemente, mas não sempre. Raciocínio oculto, vários candidatos gerados ou a contabilização específica do endpoint podem fazer com que o uso seja maior do que o texto que você vê. Considere os campos de uso retornados como a fonte de autoridade desse serviço.

“O tamanho da saída é fixado pelo prompt”

O prompt influencia o tamanho, mas a geração continua sendo condicional. O comportamento do modelo, as configurações de amostragem, as sequências de parada, o uso de ferramentas e o comportamento de segurança podem alterar o ponto em que a saída termina.

Como os tokens de saída se encaixam em uma solicitação ao modelo

Uma solicitação começa com tokens de entrada. Em seguida, o modelo gera tokens de saída. Modelos de raciocínio também podem usar tokens de raciocínio, cujo tratamento para fins de relatório e cobrança varia conforme o provedor.

A distinção é mais fácil de ver lado a lado em Tokens de entrada vs. tokens de saída vs. tokens de raciocínio. Se você estiver medindo o comportamento do serviço, a geração de saída também se relaciona diretamente a tokens por segundo e à latência de inferência.

A regra prática é simples: defina um limite de saída adequado, leia o uso efetivo e verifique o motivo da parada antes de considerar a resposta completa.