Come costruire un chatbot con modelli generativi come GPT-4, ChatGPT, LLaMA 3 e Mixtral 8x7b

Con la continua crescita della domanda di IA conversazionale, cresce anche la necessità di tecnologie avanzate per chatbot in grado di fornire interazioni personalizzate e simili a quelle umane. Negli ultimi anni, modelli generativi come GPT-4 e ChatGPT e alternative open-source come LLaMA 3 e Mixtral 8x7b sono emersi come strumenti promettenti per la costruzione di chatbot in grado di comprendere e rispondere a input in linguaggio naturale con una precisione e una raffinatezza senza precedenti.

In questo articolo esploreremo le basi dei modelli generativi e come possono essere utilizzati per costruire chatbot.

Chatbot e IA conversazionale

LLaMA 3 e Mixtral 8x7b: alternative open-source a ChatGPT e GPT-4

ChatGPT e GPT-4 sono due modelli linguistici avanzati sviluppati da OpenAI. ChatGPT, acronimo di "Chat Generative Pre-training Transformer", è un modello linguistico di grandi dimensioni in grado di generare testo simile a quello umano sulla base dei dati di addestramento. È stato introdotto nel novembre del 2022 e si è rapidamente imposto all'attenzione per la sua capacità di interagire con gli utenti in modo colloquiale, rispondendo a domande, fornendo informazioni e impegnandosi in vari compiti.

GPT-4, o "Generative Pre-training Transformer 4", è il successore di GPT-3 ed è stato annunciato da OpenAI nel marzo 2023. Rappresenta un salto significativo nel campo dei modelli linguistici di IA, vantando dimensioni ancora maggiori e capacità migliorate rispetto ai suoi predecessori. Il GPT-4 è in grado di generare testi altamente dettagliati e accurati in un'ampia gamma di settori, tra cui l'elaborazione del linguaggio naturale, la programmazione informatica e la scrittura creativa.

Sia ChatGPT che GPT-4 sono stati addestrati su grandi quantità di dati utilizzando l'apprendimento non supervisionato, consentendo loro di comprendere e generare il linguaggio umano con notevole precisione e fluidità. Questi modelli hanno aperto nuove possibilità per lo sviluppo dell'intelligenza artificiale conversazionale, della generazione di contenuti e di varie altre applicazioni in settori quali il servizio clienti, l'istruzione e l'intrattenimento.

Poco dopo, Meta ha rilasciato LLaMA 3 e la startup francese Mistral AI ha rilasciato Mixtral 8x7b. Questi modelli generativi sono alternative open source a ChatGPT e GPT-4. Sono ottimi candidati se si vuole costruire un chatbot avanzato. Sono ottimi candidati se si vuole costruire un chatbot avanzato. È possibile implementare LLaMA 3 e Mixtral sui propri server o utilizzarli facilmente attraverso l'API NLP Cloud.

Tutti questi LLM generativi richiedono però un po' di pratica. Innanzitutto perché questi modelli devono ricevere i giusti suggerimenti per comportarsi come ci si aspetta. E poi perché sono "senza stato", cioè non tengono una cronologia delle conversazioni.

Utilizzare il prompt giusto per il Chatbot

Se si inviano ingenuamente richieste a questi modelli senza un po' di contesto e di formattazione, si rimarrà delusi dalle risposte. Questo perché questi modelli sono molto versatili. Non solo possono aiutare a creare chatbot, ma anche molte altre applicazioni come la risposta alle domande, il riassunto, la parafrasi, la classificazione, l'estrazione di entità, la generazione di descrizioni di prodotti e molto altro. Quindi la prima cosa da fare è indicare al modello quale "modalità" deve adottare.

Ecco un esempio di richiesta che potreste inviare:

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]:
            

In questo esempio, si possono notare due cose.

Per prima cosa, abbiamo aggiunto una semplice formattazione per far capire al modello che è in modalità di conversazione: ([human], [ai], ...).

In secondo luogo, abbiamo aggiunto un contesto nella parte superiore per aiutare il modello a capire cosa sta facendo e il tono che deve usare.:

Per semplificare questo processo, sia OpenAI che NLP Cloud propongono endpoint API dedicati ai chatbot, che si occupano di questa formattazione.

A volte un contesto non è sufficiente. Ad esempio, immaginate di voler creare un chatbot con un tono e un carattere molto specifici. In questo caso, dovrete mettere a punto il vostro modello generativo. Potete mettere a punto il vostro chatbot basato sull'IA generativa su OpenAI e su NLP Cloud.

Un altro scenario è quello in cui si vuole creare un chatbot che risponda a domande su conoscenze specifiche del dominio. In questo caso, il fine-tuning non è la soluzione. È necessario creare un sistema di retrieval augmented generation (RAG) basato sulla ricerca semantica. Consultate il nostro articolo dedicato a RAG e alla ricerca semantica qui.

Mantenere la cronologia delle conversazioni per il Chatbot

I modelli di intelligenza artificiale generativa sono modelli "senza stato", il che significa che ogni richiesta fatta è nuova e l'intelligenza artificiale non ricorda nulla delle richieste precedenti.

Per molti casi d'uso non è un problema (riassunto, classificazione, parafrasi...), ma per quanto riguarda i chatbot è sicuramente un problema perché vogliamo che il nostro chatbot memorizzi la cronologia delle discussioni per dare risposte più pertinenti.

Ad esempio, se dite all'IA che siete un programmatore, volete che lo tenga in memoria perché avrà un impatto sulle risposte successive che darà.

Il modo migliore per ottenere questo risultato è quello di memorizzare ogni risposta dell'intelligenza artificiale in un database locale. Ad esempio, il database PostgreSQL supporta la memorizzazione di testi lunghi, con un'ottima efficienza.

Quindi, ogni volta che si fa una nuova richiesta al chatbot, si dovrebbe fare quanto segue:

Si tratta di un sistema versatile e robusto che richiede poco sforzo e che sfrutta perfettamente la potenza di modelli generativi come GPT-4, ChatGPT, LLaMA 3 e Mixtral.

È importante notare che ogni modello ha una propria dimensione di contesto che determina la quantità di testo che è possibile passare alla cronologia. Ad esempio, la dimensione attuale del contesto per GPT-4 è di 8k token (cioè più o meno 7k parole) e la dimensione attuale del contesto di Mixtral 8x7b è di 16k token su NLP Cloud (cioè più o meno 14k parole). Quindi, se la cronologia delle conversazioni supera questo valore, si consiglia di troncare la parte più vecchia della cronologia o di conservare solo le parti più importanti delle discussioni.

Limitazioni dei contenuti per un chatbot

OpenAI ha implementato restrizioni sui contenuti di ChatGPT e GPT-4 per garantire che il testo generato dall'IA aderisca alle sue linee guida. Monitorando e regolando i contenuti generati dai chatbot, OpenAI mira a creare un'esperienza utente più positiva e affidabile. Ciò include il blocco delle richieste di informazioni su determinati argomenti o la fornitura di sole informazioni pre-verificate e affidabili.

Alcuni preferiscono usare modelli generativi che non prevedono tali restrizioni e trovano la qualità delle risposte più varia e accurata. LLaMA 3 e Mixtral 8x7b non prevedono tali restrizioni. Quando si utilizzano questi modelli di IA, è responsabilità dello sviluppatore utilizzare l'IA in modo responsabile. Se necessario, le limitazioni possono essere implementate creando il prompt giusto per il chatbot, mettendo a punto il proprio chatbot o filtrando le richieste degli utenti prima che raggiungano il modello di IA.

Conclusione

Modelli di IA generativa come GPT-4, ChatGPT, LLaMA 3 e Mixtral 8x7b hanno portato i chatbot e l'IA conversazionale a un livello superiore. Questi modelli avanzati sono molto bravi a capire il contesto e ad adattarsi ad esso. Nella maggior parte dei casi, è sufficiente impostare il contesto giusto, ma per i casi d'uso avanzati la soluzione migliore è quella di addestrare/mettere a punto il proprio modello di IA (cosa abbastanza facile, dato che questi modelli richiedono set di dati molto piccoli).

Su NLP Cloud potete facilmente provare LLaMA 3 e Mixtral 8x7b, oltre ad altri modelli. Potete anche metterli a punto e distribuire i vostri modelli di intelligenza artificiale generativa in un solo clic. Se non l'avete ancora fatto, provate NLP Cloud gratuitamente.

Se avete domande su come implementare il vostro chatbot, non esitate a contattarci!

François
Ingegnere full-stack presso NLP Cloud