Pular para o conteúdo principal
InicioTutoriaisInteligência Artificial (IA)

Tiktoken Tutorial: Biblioteca Python da OpenAI para tokenização de texto

O Tiktoken é um tokenizador BPE rápido desenvolvido pela OpenAI, usado principalmente para contar tokens para seus grandes modelos de linguagem e garantir um processamento de texto eficiente dentro dos limites especificados.
Actualizado ago. de 2024  · 5 min leer

Tokenização é uma tarefa fundamental quando você trabalha em tarefas de NLP. Ela envolve a divisão do texto em unidades menores, conhecidas como tokens, que podem ser palavras, subpalavras ou caracteres.

A tokenização eficiente é fundamental para o desempenho dos modelos de linguagem, tornando-a uma etapa essencial em várias tarefas de PLN, como geração de texto, tradução e resumo.

O Tiktoken é uma biblioteca de tokenização rápida e eficiente desenvolvida pela OpenAI. Ele oferece uma solução robusta para a conversão de texto em tokens e vice-versa. Sua velocidade e eficiência fazem dele uma excelente opção para desenvolvedores e cientistas de dados que trabalham com grandes conjuntos de dados e modelos complexos.

Este guia foi criado para desenvolvedores, cientistas de dados e qualquer pessoa que planeje usar o Tiktoken e precise de um guia prático com exemplos.

Como começar a usar o Tiktoken

Para começar a usar o Tiktoken, precisamos instalá-lo em nosso ambiente Python (o Tiktoken também está disponível para outras linguagens de programação). Isso pode ser feito com o seguinte comando:

pip install tiktoken

Você pode conferir o código da versão Python de código aberto do Tiktoken no seguinte repositório do GitHub.

Para importar a biblioteca, executamos:

import tiktoken

Modelos de codificação

Os modelos de codificação no Tiktoken determinam as regras para dividir o texto em tokens. Esses modelos são essenciais, pois definem como o texto é dividido e codificado, afetando a eficiência e a precisão das tarefas de processamento de linguagem. Diferentes modelos de OpenAI usam codificações diferentes.

O Tiktoken oferece três modelos de codificação otimizados para diferentes casos de uso:

  • o200k_base: Codificação para o mais novo modelo GPT-4o-Mini.
  • cl100k_base: Modelo de codificação para modelos OpenAI mais recentes, como GPT-4 e GPT-3.5-Turbo.
  • p50k_base: Codificação para modelos Codex, esses modelos são usados para aplicativos de código.
  • r50k_base: Codificação mais antiga para diferentes versões do GPT-3.

Todos esses modelos estão disponíveis com a API da OpenAI. Observe que a API dá acesso a muito mais modelos do que os listados aqui. Felizmente, a biblioteca Tiktoken oferece uma maneira fácil de verificar qual codificação deve ser usada com qual modelo.

Por exemplo, se eu precisar saber qual modelo de codificação o text-embedding-3-small posso executar o seguinte comando e obter a resposta como saída:

print(tiktoken.encoding_for_model('text-embedding-3-small'))

Você recebe <Encoding 'cl100k_base'> como saída. Antes de começarmos a trabalhar diretamente com o Tiktoken, quero mencionar que a OpenAI tem um aplicativo da Web de tokenização no qual você pode ver como diferentes cadeias de caracteres são tokenizadas - você pode acessá-lo aqui. Há também um tokenizador on-line de terceiros, Tiktokenizerque oferece suporte a modelos que não são da OpenAI.

Codificação de texto em tokens

Para codificar texto em tokens usando o Tiktoken, primeiro você precisa obter um objeto de codificação. Há duas maneiras de inicializá-la. Primeiro, você pode fazer isso com o nome do tokenizador:

encoding = tiktoken.get_encoding("[name of the tokenizer]")

Ou você pode executar a função encoding_for_model mencionada anteriormente para obter o codificador de um modelo específico:

encoding = tiktoken.encoding_for_model("[name of the model]")

Agora, podemos executar o método encode do nosso objeto encoding para codificar uma string. Por exemplo, podemos codificar a string "I love DataCamp" da seguinte forma - aqui eu uso o codificador cl100k_base:

print(encoding.encode("I love DataCamp"))

Você recebe [40, 3021, 2956, 34955] como saída.

Decodificação de tokens para texto

Para decodificar os tokens de volta para o texto, podemos usar o método .decode() no objeto encoding.

Vamos decodificar os seguintes tokens [40, 4048, 264, 2763, 505, 2956, 34955]:

print(encoding.decode([40, 4048, 264, 2763, 505, 2956, 34955]))

Os tokens decodificam para "Eu aprendo muito com a DataCamp".

Dicas e casos de uso práticos

Além da codificação e da decodificação, há dois outros casos de uso que posso imaginar.

Estimativa e gerenciamento de custos

Saber a contagem de tokens antes de enviar uma solicitação à API da OpenAI pode ajudar você a gerenciar os custos com eficiência. Como o faturamento da OpenAI é baseado no número de tokens processados, a pré-tokenização do texto permite que você estime o custo do uso da API. Veja como você pode contar os tokens em seu texto usando o Tiktoken:

tokens = encoding.encode(text)
print(len(tokens))

Simplesmente vemos quantos tokens obtivemos verificando o comprimento da matriz. Ao saber o número de tokens com antecedência, você pode decidir se deve encurtar o texto ou ajustar o uso para ficar dentro do orçamento.

Você pode ler mais sobre essa abordagem neste tutorial sobre Estimando o custo da GPT usando a biblioteca tiktoken em Python.

Validação do comprimento da entrada

Ao usar modelos OpenAI da API, você está limitado pelo número máximo de tokens para entradas e saídas. Exceder esses limites pode resultar em erros ou saídas truncadas. Usando o Tiktoken, você pode validar o tamanho da entrada e garantir que ela esteja em conformidade com os limites do token.

Conclusão

O Tiktoken é uma biblioteca de tokenização de código aberto que oferece velocidade e eficiência adaptadas aos modelos de linguagem da OpenAI.

Entender como codificar e decodificar texto usando o Tiktoken, juntamente com seus vários modelos de codificação, pode melhorar muito o trabalho que você faz com grandes modelos de linguagem.

Temas

Aprenda IA com estes cursos!

Course

Introduction to Embeddings with the OpenAI API

3 hr
4.1K
Unlock more advanced AI applications, like semantic search and recommendation engines, using OpenAI's embedding model!
See DetailsRight Arrow
Start Course
Ver maisRight Arrow
Relacionado

blog

O que é tokenização?

A tokenização divide o texto em partes menores para facilitar a análise da máquina, ajudando as máquinas a entender a linguagem humana.
Abid Ali Awan's photo

Abid Ali Awan

9 min

tutorial

Tutorial de análise de sentimentos com NLTK para iniciantes

Tutorial de análise de sentimentos com NLTK (Natural Language Toolkit) em Python. Aprenda a criar e desenvolver análises de sentimentos usando Python. Siga etapas específicas para realizar a mineração e análise de textos e fazer o processamento de linguagem natural.
Moez Ali's photo

Moez Ali

13 min

tutorial

Como usar a API de conversão de texto em fala da OpenAI

A API TTS da OpenAI é um ponto de extremidade que permite que os usuários interajam com seu modelo de IA TTS que converte texto em linguagem falada com som natural.
Kurtis Pykes 's photo

Kurtis Pykes

12 min

tutorial

Stemming e lematização em Python

Este tutorial aborda o stemming e a lematização de um ponto de vista prático usando o pacote Python Natural Language ToolKit (NLTK).
Kurtis Pykes 's photo

Kurtis Pykes

12 min

tutorial

Introdução ao Text Embeddings com a API OpenAI

Explore nosso guia sobre como usar a API OpenAI para criar incorporações de texto. Descubra suas aplicações na classificação de textos, recuperação de informações e detecção de similaridade semântica.
Zoumana Keita 's photo

Zoumana Keita

7 min

tutorial

Entendendo a classificação de textos em Python

Descubra o que é a classificação de texto, como ela funciona e os casos de uso bem-sucedidos. Explore exemplos de ponta a ponta de como criar um pipeline de pré-processamento de texto seguido de um modelo de classificação de texto em Python.
Moez Ali's photo

Moez Ali

12 min

See MoreSee More