Costruzione di Microservizi per Backend Multi-Chat Utilizzando Llama e ChatGPT

Costruzione di Microservizi per Backend Multi-Chat con Llama e ChatGPT.

 

L’architettura dei microservizi promuove la creazione di servizi flessibili e indipendenti con confini ben definiti. Questo approccio scalabile consente agli sviluppatori di mantenere ed evolvere i servizi singolarmente senza influire sull’intera applicazione. Tuttavia, per realizzare pienamente il potenziale dell’architettura dei microservizi, in particolare per le applicazioni di chat alimentate da intelligenza artificiale, è necessaria un’integrazione robusta con i più recenti modelli di linguaggio ampio (LLM) come Meta Llama V2 e ChatGPT di OpenAI e altri modelli rilasciati sintonizzati in base al caso d’uso di ciascuna applicazione, al fine di fornire un approccio multi-modello per una soluzione diversificata.

Gli LLM sono modelli su larga scala che generano testo simile a quello umano basandosi sul loro addestramento su dati diversi. Imparando da miliardi di parole presenti in internet, gli LLM comprendono il contesto e generano contenuti sintonizzati in vari domini. Tuttavia, l’integrazione di vari LLM in un’unica applicazione spesso presenta sfide a causa della necessità di interfacce uniche, punti di accesso e payload specifici per ciascun modello. Pertanto, avere un singolo servizio di integrazione in grado di gestire una varietà di modelli migliora la progettazione dell’architettura e potenzia la scalabilità dei servizi indipendenti.

Questo tutorial ti introdurrà alle integrazioni di IntelliNode per ChatGPT e LLaMA V2 in un’architettura a microservizi utilizzando Node.js ed Express.

 

Opzioni di integrazione del chatbot

 

Ecco alcune opzioni di integrazione della chat fornite da IntelliNode:

  1. LLaMA V2: È possibile integrare il modello LLaMA V2 tramite l’API di Replicate per un processo semplice o tramite l’host AWS SageMaker per un controllo aggiuntivo.

LLaMA V2 è un potente modello di linguaggio ampio (LLM) open source che è stato preaddestrato e sintonizzato con fino a 70 miliardi di parametri. Eccelle in compiti di ragionamento complessi in vari ambiti, tra cui campi specializzati come la programmazione e la scrittura creativa. La sua metodologia di addestramento prevede dati auto-supervisionati e allineamento con le preferenze umane attraverso l’apprendimento per rinforzo con feedback umano (RLHF). LLaMA V2 supera i modelli open source esistenti ed è paragonabile a modelli proprietari come ChatGPT e BARD in termini di usabilità e sicurezza.

  1. ChatGPT: Basta fornire la propria chiave API di OpenAI e il modulo IntelliNode permette l’integrazione con il modello in un’interfaccia di chat semplice. È possibile accedere a ChatGPT tramite i modelli GPT 3.5 o GPT 4. Questi modelli sono stati addestrati su una vasta quantità di dati e sintonizzati per fornire risposte altamente contestuali e accurate.

 

Integrazione passo-passo

 

Iniziamo inizializzando un nuovo progetto Node.js. Apri il tuo terminale, vai alla directory del tuo progetto e esegui il seguente comando:

npm init -y

 

Questo comando creerà un nuovo file `package.json` per la tua applicazione.

Successivamente, installa Express.js, che verrà utilizzato per gestire le richieste e le risposte HTTP, e intellinode per la connessione ai modelli LLM:

npm install express

npm install intellinode

 

Una volta completata l’installazione, crea un nuovo file chiamato `app.js` nella directory principale del tuo progetto. Quindi, aggiungi il codice di inizializzazione di Express in `app.js`.

Codice di autore

 

Integrazione di Llama V2 tramite l’API di Replicate

 

Replicate offre un percorso di integrazione rapido con Llama V2 tramite chiave API, e IntelliNode fornisce l’interfaccia del chatbot per separare la logica aziendale dal backend di Replicate, consentendoti di passare tra diversi modelli di chat.

Iniziamo integrandoci con Llama ospitato nel backend di Replica:

Codice di autore

Ottieni la tua chiave di prova su replicate.com per attivare l’integrazione.

 

Integrazione di Llama V2 tramite AWS SageMaker

 

Ora, copriamo l’integrazione di Llama V2 tramite AWS SageMaker, fornendo privacy e un ulteriore livello di controllo.

L’integrazione richiede di generare un punto di accesso API dal tuo account AWS, prima configureremo il codice di integrazione nella nostra app a microservizi:

Codice dell’autore

I seguenti passaggi servono per creare un endpoint Llama nel tuo account. Una volta impostato il gateway API, copia l’URL da utilizzare per eseguire il servizio ‘/llama/aws’.

Per impostare un endpoint Llama V2 nel tuo account AWS:

1- Servizio SageMaker: seleziona il servizio SageMaker dal tuo account AWS e clicca su domini.

2- Crea un dominio SageMaker: Inizia creando un nuovo dominio su AWS SageMaker. Questo passaggio stabilisce uno spazio controllato per le tue operazioni su SageMaker.

3- Deploy del modello Llama: Utilizza SageMaker JumpStart per deployare il modello Llama che hai intenzione di integrare. Si consiglia di iniziare con il modello 2B a causa del costo mensile più elevato per l’esecuzione del modello 70B.

4- Copia il nome dell’endpoint: Una volta che hai un modello deployato, assicurati di annotare il nome dell’endpoint, che è cruciale per i passaggi futuri.

5- Crea una funzione Lambda: AWS Lambda consente di eseguire il codice di back-end senza gestire i server. Crea una funzione lambda Node.js da utilizzare per integrare il modello deployato.

6- Imposta una variabile d’ambiente: Crea una variabile d’ambiente dentro la tua lambda chiamata llama_endpoint con il valore dell’endpoint di SageMaker.

7- Importa Lambda Intellinode: È necessario importare il file zip Lambda preparato che stabilisce una connessione al tuo deployment Llama di SageMaker. Questa esportazione è un file zip e può essere trovata nella directory lambda_llama_sagemaker.

8- Configurazione del Gateway API: Clicca sull’opzione “Aggiungi trigger” nella pagina della funzione Lambda e seleziona “API Gateway” dalla lista dei trigger disponibili.

aws account-lambda trigger

aws account-api gateway trigger

9- Impostazioni della funzione Lambda: Aggiorna il ruolo della lambda per concedere le autorizzazioni necessarie per accedere agli endpoint di SageMaker. Inoltre, il periodo di timeout della funzione dovrebbe essere esteso per consentire il tempo di elaborazione. Effettua queste modifiche nella scheda “Configurazione” della tua funzione Lambda.

Clicca sul nome del ruolo per aggiornare le autorizzazioni e fornire l’autorizzazione di accesso a SageMaker:

aws account-lambda role

Integrazione ChatGPT

Infine, illustreremo i passaggi per integrare Openai ChatGPT come altra opzione nell’architettura del microservizio:

Codice dell’autore

Ottieni la tua chiave di prova da platform.openai.com.

Esecuzione dell’esperimento

Prima di tutto, esporta la chiave API nel tuo terminale come segue:

Codice dell’autore

Successivamente esegui l’applicazione node:

node app.js

 

Digita l’URL seguente nel browser per testare il servizio chatGPT:

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

 

Abbiamo costruito un microservizio potenziato dalle capacità dei modelli di linguaggio avanzati come Llama V2 e ChatGPT di OpenAI. Questa integrazione apre la porta a sfruttare infiniti scenari aziendali potenziati dall’IA avanzata.

Trasformando i requisiti di apprendimento automatico in microservizi disaccoppiati, la tua applicazione può beneficiare di flessibilità e scalabilità. Invece di configurare le operazioni per adattarsi ai vincoli di un modello monolitico, la funzione dei modelli di linguaggio può ora essere gestita e sviluppata individualmente; questo promette una maggiore efficienza e una gestione più semplice del risoluzione dei problemi e degli aggiornamenti.

 

Riferimenti

 

  • API di ChatGPT: link.
  • API di Replica: link.
  • SageMaker Llama Jump Start: link
  • IntelliNode Inizia: link
  • Repository GitHub con il codice completo: link

    Ahmad Albarqawi è un ingegnere e un master in scienze dei dati presso l’Università di Illinois Urbana-Champaign.