Mensajes y tokens: ¿cómo funcionan los Agentes de Inteligencia Artificial?
La inteligencia artificial ha avanzado significativamente en las últimas décadas, y una de las manifestaciones más notables de este progreso es el desarrollo de modelos de lenguaje de gran tamaño (LLMs). Hoy en nuestro blog vamos a desglosar un aspecto fundamental en la interacción entre usuarios y estos modelos: los mensajes y los tokens especiales. Te explicaremos cómo se estructuran las conversaciones y cómo cada modelo entiende los mensajes que recibe.
Estructura de Conversaciones en Modelos de Lenguaje
Cuando interactuamos con modelos de lenguaje como ChatGPT o HuggingChat, lo que en realidad estamos haciendo es mantener una conversación a través de mensajes. Sin embargo, lo que muchos usuarios no ven es que, detrás de la interfaz de usuario, todos esos mensajes se combinan en un solo "prompt" que el modelo puede entender. Esto significa que el modelo no "recuerda" el contexto de la conversación, sino que lo lee en su totalidad cada vez.
La clave para facilitar esta interacción es el uso de plantillas de chat . Estas plantillas actúan como un puente que conecta los mensajes de la conversación del usuario y el asistente con los requisitos específicos de formato del modelo de lenguaje seleccionado. Cada modelo tiene sus propios tokens especiales que delimitan el inicio y el final de los mensajes. Por ejemplo, al final de cada secuencia de mensajes, se utiliza un token específico llamado "EOS" (End Of Sequence).
Mensajes del Sistema y Normas de Estilo
Un elemento crucial en el manejo de las conversaciones es el mensaje del sistema , que define cómo debe comportarse el modelo. Este mensaje se mantiene constante a lo largo de la interacción, proporcionando directrices sobre el tono y el estilo de las respuestas. Por ejemplo, un mensaje del sistema podría instruir al modelo a actuar como un agente de servicio al cliente, mientras que otro podría indicarle que sea más rebelde y tratar de romper las normas.
Además, cada conversación entre el usuario y el asistente se compone de una serie de mensajes alternantes. Aquí es donde las plantillas de chat ayudan a mantener el contexto al conservar el historial de conversación, lo que lleva a intercambios más coherentes.
Cómo Se Formatean los Mensajes
Las plantillas de chat son esenciales para estructurar las conversaciones con los modelos de inteligencia artificial. Antes de enviar un mensaje, debes asegurarte de que esté formateado apropiadamente, de modo que el modelo pueda interpretarlo correctamente. Esto es especialmente importante si estás usando un modelo base, que necesita un formato específico para funcionar como un modelo de instrucciones.
Cada plantilla de chat tiene una estructura clara que indica cómo se deben organizar los mensajes. Por ejemplo, si tienes una conversación simple, esta plantilla podría transformar la conversación en un formato que el modelo pueda entender:
- Se define el rol de los participantes (sistema, usuario, asistente).
- Se compilan los mensajes en un formato legible para el modelo.
Una plantilla simplificada podría verse así:
<|im_start|>system Eres un asistente AI útil.<|im_end|>
<|im_start|>user ¿Qué es una plantilla de chat?<|im_end|>
<|im_start|>assistant Una plantilla de chat organiza las conversaciones entre los usuarios y los modelos de IA...<|im_end|>
Beneficios de las Plantillas de Chat
Las plantillas de chat no solo hacen que la interacción sea más fluida, sino que también permiten que los modelos manejen conversaciones complejas. Al estructurar las conversaciones correctamente, aseguras que el modelo responda de manera apropiada a diferentes tipo de entradas, lo que mejora la experiencia de usuario en general.
Cómo Usar Plantillas en la Práctica
Cuando desees que tu modelo reciba un formato de conversación correctamente estructurado, puedes usar una función específica para aplicar la plantilla de chat de su tokenizador. Al cargar el tokenizador de tu modelo, puedes convertir la conversación en un "prompt" listo para usar.
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("HuggingFaceTB/SmolLM2-1.7B-Instruct")
rendered_prompt = tokenizer.apply_chat_template(mensajes, tokenize=False, add_generation_prompt=True)
Este proceso de aplicación de la plantilla se realiza automáticamente en el backend cuando interactúas con la API.
Conclusión
En resumen, comprender cómo los mensajes y tokens especiales operan en los modelos de lenguaje es fundamental para interactuar de manera efectiva con estos sistemas avanzados. Al usar plantillas de chat, no solo optimizas la calidad de las respuestas, sino que también te aseguras de que el modelo interprete correctamente cada instrucción. A medida que continuamos explorando el fascinante mundo de la inteligencia artificial, estamos viendo cómo estas tecnologías están diseñadas para mejorar nuestras interacciones diarias.