Cómo crear un chatbot con modelos generativos como GPT-4, ChatGPT, LLaMA 3 y Mixtral 8x7b

A medida que crece la demanda de IA conversacional, también lo hace la necesidad de tecnologías avanzadas de chatbot que puedan ofrecer interacciones personalizadas y similares a las humanas. En los últimos años, modelos generativos como GPT-4 y ChatGPT, y alternativas de código abierto como LLaMA 3 y Mixtral 8x7b han surgido como herramientas prometedoras para crear chatbots capaces de comprender y responder a entradas de lenguaje natural con una precisión y sofisticación sin precedentes.

En este artículo, exploraremos los conceptos básicos de los modelos generativos y cómo pueden utilizarse para crear chatbots.

Chatbot e IA conversacional

LLaMA 3 y Mixtral 8x7b: alternativas de código abierto a ChatGPT y GPT-4

ChatGPT y GPT-4 son dos modelos lingüísticos avanzados desarrollados por OpenAI. ChatGPT, abreviatura de "Chat Generative Pre-training Transformer", es un gran modelo lingüístico capaz de generar texto similar al humano a partir de sus datos de entrenamiento. Se presentó en noviembre de 2022 y rápidamente se hizo popular por su capacidad para interactuar con los usuarios de forma conversacional, respondiendo a preguntas, proporcionando información y participando en diversas tareas.

GPT-4, o "Generative Pre-training Transformer 4", es el sucesor de GPT-3 y fue anunciado por OpenAI en marzo de 2023. Representa un salto significativo en el campo de los modelos lingüísticos de IA, ya que cuenta con un tamaño aún mayor y capacidades mejoradas en comparación con sus predecesores. GPT-4 es capaz de generar textos muy detallados y precisos en una amplia gama de ámbitos, como el procesamiento del lenguaje natural, la programación informática y la escritura creativa.

Tanto ChatGPT como GPT-4 se entrenan con grandes cantidades de datos mediante aprendizaje no supervisado, lo que les permite comprender y generar lenguaje humano con notable precisión y fluidez. Estos modelos han abierto nuevas posibilidades para el desarrollo de la IA conversacional, la generación de contenidos y otras aplicaciones diversas en sectores como la atención al cliente, la educación y el entretenimiento.

Poco después, Meta lanzó LLaMA 3 y la empresa francesa de IA Mistral AI lanzó Mixtral 8x7b. Estos modelos generativos son alternativas de código abierto a ChatGPT y GPT-4. Son muy buenos candidatos si quieres construir un chatbot avanzado. Son muy buenos candidatos si quieres construir un chatbot avanzado. Puede implementar LLaMA 3 y Mixtral en sus propios servidores o utilizarlos fácilmente a través de la API NLP Cloud.

Sin embargo, todos estos LLM de IA generativa requieren un poco de práctica. En primer lugar, porque hay que dar a estos modelos las indicaciones adecuadas para que se comporten como se espera de ellos. Y también porque son "apátridas", es decir, no guardan un historial de tus conversaciones.

Utilizar el indicador adecuado para su chatbot

Si ingenuamente envías peticiones a estos modelos sin un poco de contexto y formato, te decepcionarán las respuestas. Esto se debe a que estos modelos son muy versátiles. No sólo pueden ayudar a crear chatbots, sino también muchas otras aplicaciones como la respuesta a preguntas, el resumen, la paráfrasis, la clasificación, la extracción de entidades, la generación de descripciones de productos y mucho más. Así que lo primero que tienes que hacer es decirle al modelo qué "modo" debe adoptar.

He aquí un ejemplo de solicitud que podría enviar:

This is a discussion between a [human] and an [ai]. 
The [ai] is very nice and empathetic.

[human]: I broke up with my girlfriend...
[robot]:
            

En este ejemplo, se pueden observar 2 cosas.

En primer lugar, añadimos un formato sencillo para que el modelo entienda que está en modo conversacional: ([human], [ai], ...).

En segundo lugar, hemos añadido algo de contexto en la parte superior para ayudar al modelo a entender lo que está haciendo y el tono que debe utilizar.:

Para simplificar este proceso, tanto OpenAI como NLP Cloud proponen puntos finales de API de chatbot dedicados, que se encargan de este formateo por usted.

A veces no basta con un contexto. Por ejemplo, imagine que quiere crear un chatbot con un tono y un carácter muy específicos. En ese caso, querrá afinar su propio modelo generativo. Puede afinar su propio chatbot basado en IA generativa en OpenAI y en NLP Cloud.

Otro escenario es cuando se quiere crear un chatbot que responda a preguntas sobre conocimientos específicos del dominio. En ese caso, el ajuste fino no es la solución. En su lugar, querrá crear su propio sistema de generación aumentada de recuperación (RAG) basado en la búsqueda semántica. Consulte nuestro artículo dedicado a la RAG y la búsqueda semántica aquí.

Mantener un historial de conversaciones para su Chatbot

Los modelos de IA generativa son modelos "sin estado", lo que significa que cada petición que hagas es nueva y la IA no va a recordar nada de las peticiones anteriores que hayas hecho.

Para muchos casos de uso no es un problema (resumen, clasificación, paráfrasis...), pero en lo que respecta a los chatbots es definitivamente un problema porque queremos que nuestro chatbot memorice el historial de discusiones para poder dar respuestas más relevantes.

Por ejemplo, si le dices a la IA que eres programador, quieres que lo guarde en la memoria porque repercutirá en las siguientes respuestas que dará.

La mejor forma de conseguirlo es almacenar cada respuesta de la IA en una base de datos local. Por ejemplo, la base de datos PostgreSQL admite el almacenamiento de textos largos, con una eficiencia muy buena.

A continuación, cada vez que realices una nueva solicitud al chatbot, deberás hacer lo siguiente:

Se trata de un sistema versátil y robusto que requiere poco esfuerzo y que aprovecha a la perfección la potencia de modelos generativos como GPT-4, ChatGPT, LLaMA 3 y Mixtral.

Es importante tener en cuenta que cada modelo tiene su propio tamaño de contexto que determinará la cantidad de texto que puede pasar al historial. Por ejemplo, el tamaño de contexto actual para GPT-4 es de 8k tokens (es decir, más o menos 7k palabras) y el tamaño de contexto actual de Mixtral 8x7b es de 16k tokens en NLP Cloud (es decir, más o menos 14k palabras). Por lo tanto, si su historial de conversaciones supera esta cifra, es posible que desee truncar la parte más antigua del historial o conservar únicamente las partes más importantes de las conversaciones.

Restricciones de contenido para un chatbot

OpenAI ha implementado restricciones de contenido en ChatGPT y GPT-4 para garantizar que el texto generado por la IA se adhiere a sus directrices. Al supervisar y regular el contenido generado por los chatbots, OpenAI pretende crear una experiencia de usuario más positiva y fiable. Esto incluye bloquear las solicitudes de información sobre determinados temas o proporcionar únicamente información previamente verificada y fiable.

Sin embargo, hay quien prefiere utilizar modelos generativos que no tienen esas restricciones y considera que la calidad de las respuestas es más diversa y precisa. LLaMA 3 y Mixtral 8x7b no tienen tales restricciones. Cuando se utilizan estos modelos de IA, es responsabilidad del desarrollador hacer un uso responsable de la IA. Si es necesario, todavía se pueden implementar limitaciones creando el prompt adecuado para el chatbot, afinando su propio chatbot o filtrando las peticiones de los usuarios antes de que lleguen al modelo de IA.

Conclusión

Los modelos de IA generativa como GPT-4, ChatGPT, LLaMA 3 y Mixtral 8x7b, realmente llevaron a los chatbots y a la IA conversacional al siguiente nivel. Estos modelos avanzados son muy buenos entendiendo el contexto y adaptándose a él. En la mayoría de los casos, basta con establecer el contexto adecuado, pero para casos de uso avanzados la mejor solución es entrenar/ajustar tu propio modelo de IA (lo cual es bastante fácil, ya que estos modelos requieren conjuntos de datos muy pequeños).

En NLP Cloud puede probar fácilmente LLaMA 3 y Mixtral 8x7b entre otros modelos. También puede ajustarlos y desplegar sus propios modelos de IA generativa privados con un solo clic. Si aún no lo has hecho, prueba NLP Cloud gratis.

Si tiene preguntas sobre cómo implementar su propio chatbot, ¡no dude en ponerse en contacto con nosotros!

François
Ingeniero Full-Stack en NLP Cloud