Construyendo microservicios para backends de multi-chat usando Llama y ChatGPT

Construyendo microservicios para backends de multi-chat con Llama y ChatGPT.

 

La arquitectura de microservicios promueve la creación de servicios flexibles e independientes con límites bien definidos. Este enfoque escalable permite a los desarrolladores mantener y evolucionar los servicios de forma individual sin afectar a toda la aplicación. Sin embargo, para aprovechar al máximo la arquitectura de microservicios, especialmente para aplicaciones de chat con inteligencia artificial, se requiere una integración sólida con los últimos Modelos de Lenguaje Grande (LLMs, por sus siglas en inglés) como Meta Llama V2 y ChatGPT de OpenAI, y otros modelos ajustados lanzados en función de cada caso de uso de la aplicación para proporcionar un enfoque de múltiples modelos para una solución diversificada.

Los LLMs son modelos a gran escala que generan texto similar al humano en función de su entrenamiento en datos diversos. Al aprender de miles de millones de palabras en Internet, los LLMs comprenden el contexto y generan contenido ajustado en varios dominios. Sin embargo, la integración de varios LLMs en una sola aplicación a menudo plantea desafíos debido a la necesidad de interfaces únicas, puntos de acceso de acceso y cargas específicas para cada modelo. Por lo tanto, tener un solo servicio de integración que pueda manejar una variedad de modelos mejora el diseño de la arquitectura y potencia la escala de los servicios independientes.

Este tutorial le presentará las integraciones de IntelliNode para ChatGPT y LLaMA V2 en una arquitectura de microservicio utilizando Node.js y Express.

 

Opciones de integración de chatbot

 

Aquí hay algunas opciones de integración de chat proporcionadas por IntelliNode:

  1. LLaMA V2: Puede integrar el modelo LLaMA V2 a través de la API de Replicate para un proceso sencillo o a través de su host de AWS SageMaker para un control adicional.

LLaMA V2 es un poderoso Modelo de Lenguaje Grande (LLM) de código abierto que ha sido pre-entrenado y ajustado con hasta 70 mil millones de parámetros. Sobresale en tareas de razonamiento complejas en diversos dominios, incluyendo campos especializados como la programación y la escritura creativa. Su metodología de entrenamiento involucra datos auto-supervisados y alineación con las preferencias humanas a través del Aprendizaje por Reforzamiento con Retroalimentación Humana (RLHF, por sus siglas en inglés). LLaMA V2 supera a los modelos de código abierto existentes y es comparable a modelos de código cerrado como ChatGPT y BARD en usabilidad y seguridad.

  1. ChatGPT: Simplemente proporcionando su clave de API de OpenAI, el módulo IntelliNode permite la integración con el modelo en una interfaz de chat simple. Puede acceder a ChatGPT a través de los modelos GPT 3.5 o GPT 4. Estos modelos han sido entrenados con vastas cantidades de datos y ajustados para proporcionar respuestas altamente contextuales y precisas.

 

Integración paso a paso

 

Comencemos inicializando un nuevo proyecto de Node.js. Abra su terminal, navegue hasta el directorio de su proyecto y ejecute el siguiente comando:

npm init -y

 

Este comando creará un nuevo archivo `package.json` para su aplicación.

A continuación, instale Express.js, que se utilizará para manejar las solicitudes y respuestas HTTP, e intellinode para la conexión con los modelos de LLM:

npm install express

npm install intellinode

 

Una vez finalizada la instalación, cree un nuevo archivo llamado `app.js` en el directorio raíz de su proyecto y luego agregue el código de inicialización de Express en `app.js`.

Código por el autor

 

Integración de Llama V2 utilizando la API de Replicate

 

Replicate ofrece una vía rápida de integración con Llama V2 a través de una clave de API, e IntelliNode proporciona la interfaz de chatbot para separar la lógica empresarial de la parte posterior de Replicate, lo que le permite cambiar entre diferentes modelos de chat.

Comencemos integrándonos con Llama alojado en el backend de Replica:

Código por el autor

Obtenga su clave de prueba en replicate.com para activar la integración.

 

Integración de Llama V2 utilizando AWS SageMaker

 

Ahora, cubriremos la integración de Llama V2 a través de AWS SageMaker, proporcionando privacidad y una capa adicional de control.

La integración requiere generar un punto de acceso de API desde su cuenta de AWS, primero configuraremos el código de integración en nuestra aplicación de microservicio:

Código por Autor

Los siguientes pasos son para crear un punto de conexión Llama en tu cuenta, una vez que configures la API gateway, copia la URL para usarla al ejecutar el servicio ‘/llama/aws’.

Para configurar un punto de conexión Llama V2 en tu cuenta de AWS:

1- Servicio SageMaker: selecciona el servicio SageMaker de tu cuenta de AWS y haz clic en dominios.

   

2- Crear un Dominio SageMaker: comienza creando un nuevo dominio en tu SageMaker de AWS. Este paso establece un espacio controlado para tus operaciones de SageMaker.

   

3- Desplegar el Modelo Llama: utiliza SageMaker JumpStart para desplegar el modelo Llama que planeas integrar. Se recomienda comenzar con el modelo 2B debido al mayor costo mensual de ejecución del modelo 70B.

   

4- Copiar el Nombre del Punto de Conexión: una vez que hayas desplegado un modelo, asegúrate de tomar nota del nombre del punto de conexión, que es crucial para los pasos futuros.

   

5- Crear una Función Lambda: AWS Lambda permite ejecutar el código de backend sin administrar servidores. Crea una función lambda de Node.js para usar en la integración del modelo desplegado.

6- Configurar Variable de Entorno: crea una variable de entorno dentro de tu lambda llamada ‘llama_endpoint’ con el valor del punto de conexión de SageMaker.

   

7- Importar Lambda Intellinode: debes importar el archivo zip preparado de Lambda que establece una conexión con tu despliegue de SageMaker Llama. Esta exportación es un archivo zip y se puede encontrar en el directorio ‘lambda_llama_sagemaker’.

   

8- Configuración de API Gateway: haz clic en la opción “Agregar disparador” en la página de la función Lambda y selecciona “API Gateway” de la lista de disparadores disponibles.

  cuenta de AWS- disparador de lambda

  cuenta de AWS-disparador de API Gateway  

9- Configuración de la Función Lambda: actualiza el rol de lambda para otorgar los permisos necesarios para acceder a los puntos de conexión de SageMaker. Además, el período de tiempo de espera de la función debe extenderse para adaptarse al tiempo de procesamiento. Realiza estos ajustes en la pestaña “Configuración” de tu función Lambda.

Haz clic en el nombre del rol para actualizar los permisos y proporciona el permiso para acceder a sagemaker:

  cuenta de AWS – rol de lambda

 

Integración de ChatGPT

 

Por último, ilustraremos los pasos para integrar Openai ChatGPT como otra opción en la arquitectura de microservicios:

Código por Autor

Obtén tu clave de prueba en platform.openai.com.

 

Experimento de Ejecución

 

Primero exporta la clave de API en tu terminal de la siguiente manera:

Código por Autor

A continuación, ejecuta la aplicación node:

node app.js

 

Escribe la siguiente URL en el navegador para probar el servicio de chatGPT:

http://localhost:3000/chatgpt?message=hello

 

Hemos creado un microservicio potenciado por las capacidades de grandes modelos de lenguaje como Llama V2 y ChatGPT de OpenAI. Esta integración abre la puerta para aprovechar infinitos escenarios empresariales impulsados por la inteligencia artificial avanzada.

Al traducir tus requisitos de aprendizaje automático en microservicios desacoplados, tu aplicación puede obtener los beneficios de flexibilidad y escalabilidad. En lugar de configurar tus operaciones para adaptarse a las limitaciones de un modelo monolítico, ahora se puede gestionar y desarrollar la función de los modelos de lenguaje de forma individual. Esto promete una mayor eficiencia y una solución más sencilla de problemas y gestión de actualizaciones.

 

Referencias

 

  • API de ChatGPT: enlace.
  • API de Replica: enlace.
  • SageMaker Llama Jump Start: enlace
  • IntelliNode Get Started: enlace
  • Repositorio completo de código en GitHub: enlace

    Ahmad Albarqawi es un ingeniero y máster en ciencia de datos en Illinois Urbana-Champaign.