Claves para comprender cómo ChatGPT maneja las indicaciones a través de Tokens

Introducción

Básicamente, cuando el ser humano comienza a interactuar con ChatGPT se inicia un proceso de entrada en el que se generan fragmentos de palabras, y éstos son los tokens. Para los modelos de inteligencia generativa del tipo conversacional, un token es una unidad básica que utilizan para calcular la longitud de un texto. Estos modelos entienden de manera distinta la cantidad de tokens que la cantidad de palabras. Por tal motivo es tan importante aprender la manera de interactuar para obtener el resultado que necesitamos.

En este artículo te comparto algunos primeros conceptos para que puedas ir teniendo más claridad en estos temas y así ayudarte a que tengas un «buen copiloto» a tu lado y te ayude en tus tareas diarias, y recuerda siempre de tener ‘ojo crítico’ sobre la devolución que te ofrezca la IA.

Inteligencia Artificial Generativa

Algo no menor es entender lo básico: Una Inteligencia Artificial Generativa conceptualmente representa una herramienta que se pueden utilizar para crear nuevos contenidos, como artículos o imágenes ó videos, tal y como lo hace cualquier ser humano, con ciertas ventajas y beneficios para aquellos que no tienen un conocimiento técnico profundo.

Profundizando un poco en el concepto de Token

Un token es la unidad básica más pequeña de un texto que un programa NLP (procesamiento de lenguaje natural) utiliza para analizar, procesar y comprender el texto. Un token puede ser más que una palabra, puede representar partes de una palabra, un carácter, un signo de puntuación o incluso una unidad más grande en el texto, dependiendo de cómo se defina el tokenizador.

También podemos entender el concepto de esta forma: Imaginate que estás leyendo un libro y queres contar cuántas palabras hay en una página. En lugar de contar palabra por palabra, decidis usar un marcador especial que te ayuda a identificar cada fragmento separado, por ejemplo una palabra completa, una parte de una palabra, un signo de puntuación o incluso un espacio en blanco. Cada uno de estos fragmentos representaría un «token». El token ayuda a los programas de NLP a entender y procesar el texto de la misma manera en la que un ser humano aplica comprensión de texto, salvando por supuesto las distancias que hoy por hoy siguen siendo los grandes desafíos que se están investigando y mejorando.

Por ejemplo, 100 tokens en un modelo de lenguaje como GPT-3 generalmente pueden representar alrededor de 150 a 200 palabras en inglés. Sin embargo, la cantidad de palabras que 100 tokens pueden representar puede variar según el idioma y la complejidad de las palabras utilizadas en el texto. Es importante tener en cuenta que en español, un token puede ser más largo que en inglés, lo que podría reducir la cantidad de palabras que se pueden representar con 100 tokens.

En español, un token puede representar una o varias letras, dependiendo de la longitud de la palabra o del carácter. En promedio, un token en modelos de lenguaje como GPT-3 puede representar alrededor de 5 caracteres en español, pero esto puede variar. Palabras más cortas pueden ocupar un token completo, mientras que palabras más largas pueden requerir varios tokens.

En inglés, un token generalmente representa una letra, pero también puede representar un espacio, un signo de puntuación o incluso una parte de una palabra en algunos casos. En promedio, un token en modelos de lenguaje como GPT-3 suele corresponder a una letra o carácter en inglés. El límite del modelo ChatGPT-3.5 es de 4.096 tokens o alrededor de 8.000 palabras (dependiendo de varios factores antes mencionados).

Lo bueno si es breve, dos veces bueno.

¿Será entonces que cuando definimos la manera de interactuar con este tipo de modelos, debemos pensar muy bien cómo armar el mensaje para mejorar el procesamiento de la entrada por parte de los mismos? La respuesta es si.

Cuando nos ponemos a interactuar con estos modelos mediante el chat, debemos necesariamente pensar muy bien qué ingresar ya que de lo contrario si supera el límite, no nos dará una devolución completa como la estamos esperando. Es por eso que una manera de interactuar es ofreciendo varias interacciones relacionadas para lograr la respuesta completa, es decir, dividir el texto pensado en varios para ir componiendo una conversación que tenga una lógica y así evitar el «olvido» y/o las «alucinaciones» por parte de estos modelos.

Por lo tanto, hay dos caminos posibles a recorrer:

  • ir adquiriendo experiencia en la forma de interactuar con estos modelos por medio de prueba y error.
  • investigar y aprender mejores prácticas definidas para interactuar con estos modelos a través de instrucciones, preguntas o comandos específicos (prompting).

Acerca de las herramientas

Hay herramientas que podemos usar para analizar textos y gestionar de diversar maneras el manejo de los tokens con el objeto de aprovechar recursos y mejorar por ejemplo las instrucciones a formular.

  • Google Docs: Algo básico y simple por medio de su ‘contador de palabras’.
  • Prueba y Error: A través de pruebas prácticas definiendo los «prompts» más adecuados e ir obteniendo resultados parciales.
  • NLTK en Python: Ofrece funciones que permiten dividir un texto en tokens y así estimar mejor la cantidad de tokens que debe tener tu instrucción para que no supere el límite. Este tipo de bibliotecas se apoya en NLP (Procesamiento de Lenguaje Natural) aplicando el concepto de tokenización.
  • Averiguar la documentación del modelo a usar: Este tipo de modelos cuenta con documentación mediante la cual se puede conocer el límite de tokens admitidos y cómo calcularlo.
  • Tokenizadores personalizados: Son herramientas desarrolladas específicamente para dividir textos en tokens. La creación de un tokenizador personalizado implica definir reglas específicas para dividir textos en tokens, debiendo tener conocimiento previo en NLP y programación.

Conclusión

Por lo tanto, si definimos un prompt correcto (instrucción, pregunta, fragmentos de código) tendremos la salida deseada y así obtener ciertos beneficios:

  • Generar respuestas precisas, exactas y útiles.
  • Mejorar nuestro rendimiento.
  • Mejorar nuestra experiencia de usuario.

Comentario final

¿Te ha sido útil el contenido? Me ayudarías y mucho si consideras que vale compartir este artículo entre tus amigos y  poder así enterarte cuando publique contenidos relacionados con las certificaciones, con las buenas prácticas, con herramientas y con testing aplicado en inteligencia artificial.

Buscame y seguime en LinkedIn para conocer las opiniones de colegas respecto de los contenidos que publico y por supuesto me ayudarías y mucho si consideras que vale dejar un like, dejar comentarios, compartirlo con tus amigos.

Muchas gracias

Gus Terrera

Apasionado por el agile testing y la ia.