logo de open sistemas en blanco

Transforma fácilmente tu GPU de gaming en un chat con IA: ¡Crea un chatbot privado de manera sencilla!

¡Hola!👋Soy Henry Navarro Hernández

Matemático, apasionado de los datos y la IA

Tabla de contenidos

En una era donde la IA conversacional está revolucionando la forma en que interactuamos con la tecnología. Construir tu propio chatbot personalizable ya no es una idea descabellada y este artículo presenta un enfoque innovador utilizando lo modelos de los modelos conversacionales de IA de Hugging Face y el poder computacional de una GPU de gaming estándar, como RTX con 8GB de VRAM o superior (¡Incluso hay un modelo que puede funcionar con solo 4GB de VRAM 😉!).

Nuestro viaje comienza con una herramienta sencilla pero poderosa: una interfaz de chat Gradio que se integra sin problemas con varios modelos del Hub de Hugging Face. Ya seas un aficionado, un desarrollador o simplemente alguien fascinado por las posibilidades infinitas de la IA, esta guía está diseñada para ti y tu GPU. Aquí te llevaremos paso a paso para que configures tu propio chatbot, lo personalices a tu gusto y lo  ejecutes de manera eficiente en tu hardware que ya tienes. 

Desde el robusto Llama-2–7b hasta el versátil Openchat 3.5, y más allá, el abanico de opciones es limitado. Únete a nosotros mientras exploramos el mundo de las interfaces de chat impulsadas por la IA privada, donde la GPU de tu ordenador será la clave para desbloquear un nuevo reino de comunicación digital.

Ahora vamos aprovechar el poder de los modelos de hugging Face y un GPU de gaming estándar para construir tu propia Interfaz de Chat Personal

Innovaciones pioneras de IA en interfaces conversacionales 

En OpenSistemas, llevamos años impulsando el poder de los datos y el machine learning, liderando las innovaciones de inteligencia artificial, particularmente en el desarrollo de interfaces conversacionales. 

Nuestra dedicación se ejemplifica a través de nuestra solución, SofIA, una plataforma de IA diseñada especialmente para empresas. SofIA no es solo un asistente de IA; es una plataforma integral que aborda desafíos empresariales de forma única. Puede integrar el conocimiento público disponible de GPT-4 con la información interna de tu empresa y sistemas como Drive, ERP, CRM y Data Lake, lo mejor de todo funciona 100% en privado cambiando el modelo de LLM utilizado y aprovechando al máximo el rendimiento de tu GPU.

Aquí te revelaremos solo una parte del asombroso mundo de SofIA. Nuestro enfoque se centra en superar desafíos como preocupaciones de seguridad, baja productividad en tareas diarias, estandarización de procesos y democratización de la información dentro de la empresa​​. SofIA te brinda inmediatez, otorgando a los empleados acceso completo a la experiencia empresarial en minutos.​​ ¡Prepárate para redescubrir tus recursos y liberar a tus empleados para enfrentar nuevos desafíos!​​

gpu sofia
Ejemplo de SofIA integrada en la aplicación Google Chat.

Descubre las ventajas exclusivas de un servicio privado al estilo de ChatGPT

En un momento donde la comunicación digital y la IA están entrelazadas, la importancia de tener un servicio tipo ChatGPT privado es indiscutible. Aquí te explico algunas de las ventajas:

  1. Privacidad y Seguridad de Datos: En una configuración privada, cada interacción permanece dentro del entorno controlado del sistema del usuario, disminuyendo notablemente el riesgo de brechas de datos y acceso no autorizado a información sensible.
  2. Menor Dependencia de la Conectividad a Internet: Al tener tu chatbot alojado en una GPU local, te liberas de la dependencia constante de la conectividad a internet. Imagina la comodidad de acceder al servicio incluso en lugares sin conexión.
  3. Costo-Efectividad: Desplegar tu chatbot en una GPU de gaming como el RTX con 8GB de VRAM  no solo potencia tu experiencia sino que puede ser una solución rentable en comparación con los servicios basados en la nube, que a menudo conllevan costos recurrentes

Explora un nuevo nivel de comunicación con nuestros servicio tipo chat GPT privado. No es solo una herramienta, es tu plataforma versátil para una experiencia única con el respaldo potente de una GPU. Más privacidad, personalización a tu medida, independencia sin límites, ahorro de costos, conocimiento en constante crecimiento y un terreno fértil para la innovación. Sumérgete en los detalles técnicos de configurar tu servicio con una GPU de gaming, donde cada aspecto se traduce en beneficios palpables para ti.

La importancia de apply_chat_template en la biblioteca transformers

La función apply_chat_template en la biblioteca transformers es crucial para la aplicación que estamos explicando. A diferencia de los modelos de lenguaje estándar que continúan una sola cadena de texto, los LLMs en un contexto de chat sodiln otra historia. Tienen la tarea de manejar conversaciones completas, con mensajes que desempeñan roles como “usuario” o “asistente”. Estamos a punto de revelarte como esta función marca la diferencia.

Optimizando la generación del modelo con apply_chat_template

Abordando este desafío, apply_chat_template  resuelve este dilema convirtiendo todas estas conversaciones en una única cadena de texto tokenizable y con el formato exacto que el modelo espera. Básicamente, esta función trabaja convirtiendo el chat completo en una sola cadena. Cuando activas la configuración tokenize=True, lo que ocurre es que esta función también se encarga de tokenizar esta cadena. Esta característica simplifica el proceso de integrar varios modelos en aplicaciones de chat, asegurando que las respuestas generadas sean coherentes y contextualmente relevantes.

Esta función es bastante amigable para los desarrolladores: simplemente construyes una lista de mensajes con claves de role y content, y luego la pasas el método apply_chat_template( ). El resultado generado está listo para la generación del modelo. Para mejorar aún más la generación del modelo, te recomiendo usar el parámetro add_generation_prompt=True. Esto añade tokens que indican el inicio de una respuesta del bot, guiando al modelo para generar una respuesta del bot en lugar de continuar el mensaje del usuario. Este control es crucial porque los modelos de chat, en su esencia, son modelos de lenguaje entrenados para continuar el texto.

La clave del código y cómo integrar tu propio LLM

En nuestro repositorio, encontrarás la carpeta utils que contiene un archivo llamado chat_utils.py, que incluye la función format_message, una función que formatea hábilmente las interacciones del chat como se muestra a continuación:

formatted_message = [
    {"role": "system", "content": "Eres un bot útil creado por el equipo de IA de OpenSistemas, una empresa innovadora en el área de IA y Datos. Tus respuestas deben ser claras, concisas y debes responder en el mismo idioma en que el usuario te preguntó."},
    {"role": "user", "content": "¿Quién te creó?"},
    {"role": "assistant", "content": "Fui creado por el equipo de IA de OpenSistemas, una empresa líder en IA y Datos."},
    {"role": "user", "content": "¡Genial! ¿Y qué puedes hacer por mí?"}
]

Luego, este formato se emplea en la función apply_chat_template(). Esta configuración es compatible con cualquier modelo que tenga una plantilla definida en tokenizer_config.json, como se muestra aquí. Y transformado (OpenChat 3.5) en esto:

tokenizer.apply_chat_template(formatted_message, add_generation_prompt=True, tokenize=False)
'<s>GPT4 Correct System: Eres un bot útil creado por el equipo de IA de OpenSistemas, una empresa innovadora en el área de IA y Datos. Tus respuestas deben ser claras, concisas y debes responder en el mismo idioma en que el usuario te preguntó.<|end_of_turn|>GPT4 Correct User: ¿Quién te creó?<|end_of_turn|>GPT4 Correct Assistant: Fui creado por el equipo de IA de OpenSistemas, una empresa líder en IA y Datos.<|end_of_turn|>GPT4 Correct User: ¡Genial! ¿Y qué puedes hacer por mí?<|end_of_turn|>GPT4 Correct Assistant:'

En situaciones donde la configuración del tokenizer no incluya un parámetro chat_template, los usuarios tienen la flexibilidad de crear su propia plantilla utilizando el formato Jinja y asignándole al tokenizer. Para más detalles y ejemplos, te recomiendo revisar la documentación de Hugging Face y explora la carpeta chat_template en nuestro repositorio para implementaciones prácticas.

Ejecutando nuestra aplicación tipo chatGPT con solo una línea de código.

Configurar y ejecutar un chatbot privado y potente usando los recursos desarrollados por nosotros es sorprendentemente sencillo, todo gracias a la configuración optimizada en nuestra interfaz de chat Gradio. Nuestra aplicación, diseñada para interactuar con varios modelos del Hub de Hugging Face, se encuentra encapsulada en un script de Python 🐍 llamado app.py.

Ejecutar la aplicación del chatbot es tan simple como ejecutar una sola línea de comando en tu terminal. El script está configurado para aceptar varios argumentos,brindándote la posibilidad  de personalizar el chatbot según tus preferencias. Por ejemplo, puedes seleccionar el modelo del Hub de Hugging Face que deseas implementar, como meta-llama/Llama-2-7b-chat-hf, openchat/openchat_3.5, o stabilityai/stablelm-zephyr-3b, entre otros.

Simplemente ejecuta lo siguiente:

git clone https://github.com/opensistemas-hub/LLM_chatapp.git
cd LLM_chatapp
pip install -r requirements.txt
python app.py --model-name “MODEL_NAME” # OpenChat3.5 by default

¡Y listo! Ahora tienes tu propia aplicación tipo ChatGPT funcionando de manera privada en tu propia GPU de gaming.

Gpu
Ejemplo de aplicación tipo chatGPT utilizando Gradio.

Solo tengo una GPU con 4GB de VRAM, ¿Qué puedo hacer? 

¡No te preocupes! Este repositorio admite un modelo de lenguaje… ¿pequeño? creado por Stability AI llamado stabilityai/stablelm-zephyr-3b, el cual se puede descargar fácilmente aquí y se puede funcionar en una VRAM de 4GB sin ningún problema con solo la siguiente línea de código:

python app.py --model-name stabilityai/stablelm-zephyr-3b

Y sí, esta es la misma empresa japonesa detrás de la creación de la red neuronal para generación de imágenes Stable Diffusion, reconocida por generar imágenes sorprendentes.

Stable Diff
Ejemplo de imágenes generadas por Stable Diffusion.

Reflexión

Al llegar al final de este artículo, es evidente que la combinación de modelos de  Hugging Face y GPUs de gaming nos lleva hacia una nueva frontera en la comunicación con la inteligencia artificial. El compromiso que nosotros tenemos con la innovación,claramente ilustra a través de nuestro proyecto y la plataforma multifacética SofIA, está allanando el camino para democratizar la tecnología de IA. Ya sea que tengas un GPU de alta gama o una configuración más modesta con 4GB de VRAM, nuestro enfoque garantiza que todos puedan aprovechar el poder de un servicio similar a ChatGPT. ¿No es emocionante ser parte de este avance tecnológico?

Este proceso de construir tu propio chatbot privado con inteligencia artificial no solo representa un avance técnico, sino un paso significativo hacia el empoderamiento individual en el entorno digital. Proporcionamos las herramientas y el conocimiento necesarios para que ejecutes tu interfaz de chat.

Contempla un futuro donde cada GPU de gaming se convierte en un portal hacia un sinfín de posibilidades en el ámbito de la inteligencia artificial. Este es el momento de unirte a la revolución, donde cada usuario se transforma en un auténtico experto de la IA. Te alentamos a seguir pasos y explorar el potencial ilimitado que tu GPU puede desatar en el fascinante universo de la inteligencia artificial.

contacta

Desarrolla tu siguiente proyecto de Data, IA, Cloud o Transformación Digital con nosotros. Empieza hablando con nuestro equipo comercial.

Tech Matters

La Newsletter mensual para conocer los proyectos de tecnología e inteligencia artificial que están teniendo un impacto positivo en el mundo.

Plazas limitadas

Próximo evento
Lead&Inspire: Aplicación de IA en entornos de desarrollo de software