Entenda os tokens
Tokens são palavras, conjuntos de caracteres ou combinações de palavras e pontuação que são gerados por grandes modelos de linguagem (LLMs) quando decompõem texto. A tokenização é o primeiro passo no treinamento. O LLM analisa as relações semânticas entre tokens, como a frequência com que são usados juntos ou se são usados em contextos semelhantes. Após o treinamento, o LLM usa esses padrões e relacionamentos para gerar uma sequência de tokens de saída com base na sequência de entrada.
Transformando texto em tokens
O conjunto de tokens únicos em que um LLM é treinado é conhecido como seu vocabulário.
Por exemplo, considere a seguinte frase:
Ouvi um cão latir alto para um gato
Este texto pode ser tokenizado como:
- I
- ouvidas
- a
- cão
- casca
- Em voz alta
- às
- a
- cat
Por ter um conjunto suficientemente grande de texto de treinamento, a tokenização pode compilar um vocabulário de muitos milhares de tokens.
Métodos comuns de tokenização
O método específico de tokenização varia de acordo com o LLM. Os métodos comuns de tokenização incluem:
- Tokenização de palavras (o texto é dividido em palavras individuais com base em um delimitador)
- Tokenização de caracteres (o texto é dividido em caracteres individuais)
- Tokenização de subpalavras (o texto é dividido em palavras parciais ou conjuntos de caracteres)
Por exemplo, os modelos GPT, desenvolvidos pela OpenAI, usam um tipo de tokenização de subpalavras que é conhecido como Byte-Pair Encoding (BPE). O OpenAI fornece uma ferramenta para visualizar como o texto será tokenizado.
Há benefícios e desvantagens em cada método de tokenização:
Tamanho do token | Prós | Contras |
---|---|---|
Tokens menores (tokenização de caracteres ou subpalavras) | - Permite que o modelo lide com uma gama mais ampla de entradas, como palavras desconhecidas, erros de digitação ou sintaxe complexa. - Pode permitir que o tamanho do vocabulário seja reduzido, exigindo menos recursos de memória. |
- Um determinado texto é dividido em mais tokens, exigindo recursos computacionais adicionais durante o processamento - Dado um limite de token fixo, o tamanho máximo de entrada e saída do modelo é menor |
Tokens maiores (tokenização de palavras) | - Um determinado texto é dividido em menos tokens, exigindo menos recursos computacionais durante o processamento. - Dado o mesmo limite de token, o tamanho máximo de entrada e saída do modelo é maior. |
- Pode causar um aumento do tamanho do vocabulário, exigindo mais recursos de memória. - Pode limitar a capacidade dos modelos de lidar com palavras desconhecidas, erros de digitação ou sintaxe complexa. |
Como os LLMs usam tokens
Depois que o LLM conclui a tokenização, ele atribui uma ID a cada token exclusivo.
Considere a nossa frase de exemplo:
Ouvi um cão latir alto para um gato
Depois que o modelo usa um método de tokenização de palavras, ele pode atribuir IDs de token da seguinte maneira:
- I (1)
- ouvidas (2)
- a (3)
- cão (4)
- casca (5)
- Em voz alta (6)
- em (7)
- a (o token "a" já recebeu um ID de 3)
- gato (8)
Ao atribuir IDs, o texto pode ser representado como uma sequência de IDs de token. A frase de exemplo seria representada como [1, 2, 3, 4, 5, 6, 7, 3, 8]. A frase "ouvi um gato" seria representada como [1, 2, 3, 8].
À medida que o treinamento continua, o modelo adiciona quaisquer novos tokens no texto de treinamento ao seu vocabulário e atribui-lhe um ID. Por exemplo:
- miado (9)
- correr (10)
As relações semânticas entre os tokens podem ser analisadas usando essas sequências de ID de token. Vetores numéricos de vários valores, conhecidos como incorporações, são usados para representar essas relações. Uma incorporação é atribuída a cada token com base na frequência com que é usado em conjunto com, ou em contextos semelhantes aos outros tokens.
Depois de treinado, um modelo pode calcular uma incorporação para texto que contém vários tokens. O modelo tokeniza o texto e, em seguida, calcula um valor geral de incorporações com base nas incorporações aprendidas dos tokens individuais. Essa técnica pode ser usada para pesquisas semânticas de documentos ou para adicionar repositórios vetoriais a uma IA.
Durante a geração de saída, o modelo prevê um valor vetorial para o próximo token na sequência. Em seguida, o modelo seleciona o próximo token a partir de seu vocabulário com base nesse valor vetorial. Na prática, o modelo calcula vários vetores usando vários elementos das incorporações dos tokens anteriores. O modelo então avalia todos os tokens potenciais desses vetores e seleciona o mais provável para continuar a sequência.
A geração de saída é uma operação iterativa. O modelo acrescenta o token previsto à sequência até agora e usa isso como entrada para a próxima iteração, construindo a saída final um token de cada vez.
Limites de token
Os LLMs têm limitações em relação ao número máximo de tokens que podem ser usados como entrada ou gerados como saída. Essa limitação geralmente faz com que os tokens de entrada e saída sejam combinados em uma janela de contexto máxima. Em conjunto, o limite de token e o método de tokenização de um modelo determinam o comprimento máximo do texto que pode ser fornecido como entrada ou gerado como saída.
Por exemplo, considere um modelo que tenha uma janela de contexto máxima de 100 tokens. O modelo processa nossas frases de exemplo como texto de entrada:
Ouvi um cão latir alto para um gato
Usando um método de tokenização baseado em palavras, a entrada é de nove tokens. Isso deixa 91 tokens de palavras disponíveis para a saída.
Usando um método de tokenização baseado em caracteres, a entrada é de 34 tokens (incluindo espaços). Isso deixa apenas 66 tokens de caracteres disponíveis para a saída.
Preço baseado em tokens e limitação de taxas
Os serviços de IA generativa geralmente usam preços baseados em tokens. O custo de cada solicitação depende do número de tokens de entrada e saída. O preço pode diferir entre entrada e saída. Por exemplo, consulte Preços do Serviço OpenAI do Azure.
Os serviços de IA generativa também podem ser limitados em relação ao número máximo de tokens por minuto (TPM). Esses limites de taxa podem variar dependendo da região de serviço e do LLM. Para obter mais informações sobre regiões específicas, consulte Cotas e limites do Serviço OpenAI do Azure.