Saltar al contenido principal

Tutorial de Tiktoken: Biblioteca Python de OpenAI para tokenizar texto

Tiktoken es un rápido tokenizador BPE desarrollado por OpenAI, utilizado principalmente para contar tokens para sus grandes modelos lingüísticos y garantizar un procesamiento eficaz del texto dentro de unos límites especificados.
Actualizado 8 ago 2024  · 5 min de lectura

Tokenización es una tarea fundamental cuando se trabaja en tareas de PNL. Consiste en descomponer el texto en unidades más pequeñas, conocidas como tokens, que pueden ser palabras, subpalabras o caracteres.

La tokenización eficiente es crucial para el rendimiento de los modelos lingüísticos, por lo que es un paso esencial en diversas tareas de PNL, como la generación de textos, la traducción y el resumen.

Tiktoken es una biblioteca de tokenización rápida y eficiente desarrollada por OpenAI. Proporciona una solución robusta para convertir texto en tokens y viceversa. Su velocidad y eficacia lo convierten en una opción excelente para desarrolladores y científicos de datos que trabajan con grandes conjuntos de datos y modelos complejos.

Esta guía está pensada para desarrolladores, científicos de datos y cualquiera que esté planeando utilizar Tiktoken y necesite una guía práctica con ejemplos.

Primeros pasos con Tiktoken

Para empezar a utilizar Tiktoken, necesitamos instalarlo en nuestro entorno Python (Tiktoken también está disponible para otros lenguajes de programación). Esto se puede hacer con el siguiente comando:

pip install tiktoken

Puedes consultar el código de la versión Python de código abierto de Tiktoken en el siguiente repositorio de GitHub.

Para importar la biblioteca, ejecutamos

import tiktoken

Modelos de codificación

Los modelos de codificación en Tiktoken determinan las reglas para descomponer el texto en tokens. Estos modelos son cruciales, ya que definen cómo se divide y codifica el texto, lo que influye en la eficacia y precisión de las tareas de procesamiento lingüístico. Los distintos modelos de OpenAI utilizan codificaciones diferentes.

Tiktoken proporciona tres modelos de codificación optimizados para diferentes casos de uso:

  • o200k_base: Codificación para el nuevo modelo GPT-4o-Mini.
  • cl100k_base: Modelo de codificación para los modelos más recientes de OpenAI, como GPT-4 y GPT-3.5-Turbo.
  • p50k_base: Codificación para modelos Codex, estos modelos se utilizan para aplicaciones de código.
  • r50k_base: Codificación antigua para diferentes versiones de GPT-3.

Todos estos modelos están disponibles con API de OpenAI. Observa que la API da acceso a muchos más modelos de los que he enumerado aquí. Afortunadamente, la biblioteca Tiktoken proporciona una forma sencilla de comprobar qué codificación debe utilizarse con cada modelo.

Por ejemplo, si necesito saber qué modelo de codificación tiene el texto-incrustado-3-pequeño puedo ejecutar el siguiente comando y obtener la respuesta:

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

Obtenemos <Encoding 'cl100k_base'> como salida. Antes de que empecemos a trabajar directamente con Tiktoken, quiero mencionar que OpenAI tiene una aplicación web de tokenización en la que puedes ver cómo se tokenizan diferentes cadenas; puedes acceder a ella aquí. También existe un tokenizador online de terceros, Tiktokenizerque admite modelos que no son de OpenAI.

Codificar texto en tokens

Para codificar texto en tokens utilizando Tiktoken, primero necesitas obtener un objeto de codificación. Hay dos formas de inicializarlo. Primero, puedes hacerlo con el nombre del tokenizador:

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

O puedes ejecutar la función encoding_for_model mencionada anteriormente para obtener el codificador de un modelo concreto:

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

Ahora, podemos ejecutar el método encode de nuestro objeto encoding para codificar una cadena. Por ejemplo, podemos codificar la cadena "Me encanta DataCamp" de la siguiente manera: aquí utilizo el codificador cl100k_base:

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

Obtenemos [40, 3021, 2956, 34955] como salida.

Decodificar fichas en texto

Para descodificar los tokens de nuevo en texto, podemos utilizar el método .decode() en el objeto encoding.

Descodifiquemos las siguientes fichas [40, 4048, 264, 2763, 505, 2956, 34955]:

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

Los tokens se decodifican en "Aprendo mucho en el DataCamp".

Casos prácticos y consejos

Aparte de la codificación y descodificación, se me ocurren otros dos casos de uso.

Estimación y gestión de costes

Conocer el recuento de tokens antes de enviar una solicitud a la API de OpenAI puede ayudarte a gestionar los costes con eficacia. Dado que la facturación de OpenAI se basa en el número de tokens procesados, pretokenizar tu texto te permite estimar el coste de tu uso de la API. He aquí cómo puedes contar los tokens de tu texto utilizando Tiktoken:

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

Simplemente vemos cuántas fichas tenemos comprobando la longitud de la matriz. Conociendo de antemano el número de fichas, puedes decidir si acortar el texto o ajustar su uso para mantenerte dentro del presupuesto.

Puedes leer más sobre este enfoque en este tutorial sobre Estimar el coste de GPT utilizando la biblioteca tiktoken en Python.

Validación de la longitud de la entrada

Cuando utilizas modelos de OpenAI desde la API, estás limitado por el número máximo de tokens para entradas y salidas. Superar estos límites puede provocar errores o salidas truncadas. Utilizando Tiktoken, puedes validar la longitud de la entrada y asegurarte de que cumple los límites del token.

Conclusión

Tiktoken es una biblioteca de tokenización de código abierto que ofrece velocidad y eficacia adaptadas a los modelos lingüísticos de OpenAI.

Comprender cómo codificar y descodificar texto utilizando Tiktoken, junto con sus diversos modelos de codificación, puede mejorar enormemente tu trabajo con grandes modelos lingüísticos.

Temas

Aprende IA con estos cursos

curso

Introduction to Embeddings with the OpenAI API

3 hr
4.5K
Unlock more advanced AI applications, like semantic search and recommendation engines, using OpenAI's embedding model!
Ver detallesRight Arrow
Comienza El Curso
Ver másRight Arrow
Relacionado

tutorial

Tutorial de análisis NLTK del sentimiento para principiantes

Tutorial de análisis del sentimiento NLTK (natural language toolkit) de Python. Aprende a crear y desarrollar análisis del sentimiento utilizando Python. Sigue pasos específicos para extraer y analizar texto para el procesamiento del lenguaje natural.
Moez Ali's photo

Moez Ali

13 min

tutorial

Stemming y lematización en Python

En este tutorial se abordan de forma práctica las funciones de stemming y lematización mediante el paquete Python Natural Language ToolKit (NLTK).
Kurtis Pykes 's photo

Kurtis Pykes

12 min

tutorial

Cómo utilizar la API de conversión de texto a voz de OpenAI

La API TTS de OpenAI es un punto final que permite a los usuarios interactuar con su modelo de inteligencia artificial TTS, que convierte el texto en lenguaje hablado con sonido natural.
Kurtis Pykes 's photo

Kurtis Pykes

12 min

tutorial

Guía para principiantes de la API de OpenAI: Tutorial práctico y prácticas recomendadas

Este tutorial te presenta la API de OpenAI, sus casos de uso, un enfoque práctico para utilizar la API y todas las prácticas recomendadas que debes seguir.
Arunn Thevapalan's photo

Arunn Thevapalan

13 min

tutorial

Ajuste fino de GPT-3 mediante la API OpenAI y Python

Libere todo el potencial de GPT-3 mediante el ajuste fino. Aprenda a utilizar la API de OpenAI y Python para mejorar este modelo de red neuronal avanzado para su caso de uso específico.
Zoumana Keita 's photo

Zoumana Keita

12 min

See MoreSee More