Scopri come Amazon Pharmacy ha creato il loro chat-bot basato su LLM utilizzando Amazon SageMaker

Scopri come Amazon Pharmacy ha sviluppato il loro chat-bot basato su LLM utilizzando Amazon SageMaker

Amazon Pharmacy è una farmacia a servizio completo su Amazon.com che offre prezzi trasparenti, supporto clinico e assistenza clienti, e consegna gratuita direttamente a casa tua. Gli agenti di assistenza clienti svolgono un ruolo cruciale nel recuperare rapidamente e accuratamente informazioni legate alla farmacia, come chiarificazioni delle prescrizioni e lo stato di trasferimento, i dettagli dell’ordine e della dispensazione, e le informazioni sul profilo del paziente, in tempo reale. Amazon Pharmacy fornisce un’interfaccia di chat in cui i clienti (pazienti e medici) possono parlare online con i rappresentanti di assistenza clienti (agenti). Una sfida che gli agenti affrontano è trovare le informazioni precise quando rispondono alle domande dei clienti, in quanto la diversità, il volume e la complessità dei processi sanitari (come spiegare le autorizzazioni precedenti) possono essere spaventosi. Trovare le informazioni corrette, riassumerle ed esplicarle richiede tempo, rallentando la velocità nel servire i pazienti.

Per affrontare questa sfida, Amazon Pharmacy ha sviluppato un assistente chatbot di domande e risposte (Q&A) basato su intelligenza artificiale generativa per consentire agli agenti di recuperare informazioni con ricerche in linguaggio naturale in tempo reale, preservando l’interazione umana con i clienti. La soluzione è conforme all’HIPAA, garantendo la privacy dei clienti. Inoltre, gli agenti inviano il loro feedback relativo alle risposte generate dalla macchina al team di sviluppo di Amazon Pharmacy, in modo che possa essere utilizzato per migliorare i modelli futuri.

In questo articolo, descriviamo come Amazon Pharmacy abbia implementato la soluzione del suo assistente chatbot per gli agenti di assistenza clienti utilizzando i prodotti di intelligenza artificiale di AWS, compresi i modelli di base in Amazon SageMaker JumpStart per accelerare lo sviluppo. Iniziamo evidenziando l’esperienza complessiva dell’agente di assistenza clienti con l’aggiunta del chatbot basato sul modello di linguaggio esteso (LLM). Poi spieghiamo come la soluzione utilizza il modello di generazione arricchita dalla ricerca (RAG) per la sua implementazione. Infine, descriviamo l’architettura del prodotto. Questo articolo dimostra come l’intelligenza artificiale generativa sia integrata in un’applicazione già funzionante in un settore complesso e altamente regolamentato, migliorando l’esperienza di assistenza clienti per i pazienti di farmacie.

Il chatbot Q&A basato su LLM

Nella figura seguente viene mostrato il flusso di processo di un paziente che contatta l’assistenza clienti di Amazon Pharmacy tramite chat (Passaggio 1). Gli agenti utilizzano un’interfaccia separata interna per porre domande al chatbot Q&A basato su LLM (Passaggio 2). L’interfaccia di assistenza clienti invia quindi la richiesta a un backend di servizio ospitato su AWS Fargate (Passaggio 3), dove le query vengono orchestrare attraverso una combinazione di modelli e processi di recupero dati, collettivamente noti come processo RAG. Questo processo è il cuore della soluzione del chatbot basato su LLM e i suoi dettagli sono spiegati nella sezione successiva. Alla fine di questo processo, la risposta generata dalla macchina viene restituita all’agente, che può esaminare la risposta prima di fornirla al cliente finale (Passaggio 4). Va notato che gli agenti sono formati per esercitare il giudizio e utilizzare la soluzione del chatbot basato su LLM come uno strumento che potenzia il loro lavoro, in modo che possano dedicare il loro tempo alle interazioni personali con il cliente. Gli agenti etichettano anche la risposta generata dalla macchina con il loro feedback (ad esempio, positivo o negativo). Questo feedback viene quindi utilizzato dal team di sviluppo di Amazon Pharmacy per migliorare la soluzione (attraverso il raffinamento o il miglioramento dei dati), formando un ciclo continuo di sviluppo del prodotto con l’utente (Passaggio 5).

Flusso di processo e architettura a livello elevato

Nella figura seguente viene mostrato un esempio di interazione tra un chatbot Q&A e un agente. Qui, l’agente stava chiedendo un codice di rifiuto di una richiesta. Il chatbot Q&A (Assistente AI per agenti) risponde alla domanda con una chiara descrizione del codice di rifiuto. Fornisce anche il link alla documentazione originale affinché gli agenti possano fare ulteriori ricerche se necessario.

Screenshot di esempio dal chatbot Q&A

Accelerare lo sviluppo del modello di ML

Nella figura precedente che rappresenta il workflow del chatbot, abbiamo tralasciato i dettagli su come addestrare la versione iniziale dei modelli del chatbot Q&A. Per fare ciò, il team di sviluppo di Amazon Pharmacy ha beneficiato dell’utilizzo di SageMaker JumpStart. SageMaker JumpStart ha permesso al team di sperimentare rapidamente con modelli diversi, eseguendo diversi benchmark e test, fallendo rapidamente se necessario. Fallire rapidamente è un concetto praticato dagli scienziati e dagli sviluppatori per costruire rapidamente soluzioni il più realistiche possibile e imparare dai propri sforzi per migliorarle nella successiva iterazione. Dopo che il team ha deciso il modello e ha eseguito eventuali aggiustamenti o personalizzazioni necessarie, hanno utilizzato SageMaker hosting per distribuire la soluzione. Il riutilizzo dei modelli di base in SageMaker JumpStart ha permesso al team di sviluppo di risparmiare mesi di lavoro che altrimenti sarebbero stati necessari per addestrare i modelli da zero.

Il modello di progettazione RAG

Una parte fondamentale della soluzione è l’utilizzo del modello di progettazione Retrieval Augmented Generation (RAG) per implementare soluzioni Q&A. Il primo passo in questo modello consiste nell’identificare un insieme di coppie di domande e risposte note, che rappresentano l’insieme di verità iniziale per la soluzione. Il passo successivo consiste nel convertire le domande in una rappresentazione migliore ai fini della similarità e della ricerca, detta embedding (inseriamo un oggetto in una superficie iperpiana con meno dimensioni). Ciò viene fatto mediante un modello di base specifico per l’embedding. Questi embedding vengono utilizzati come indici per le risposte, proprio come un indice di un database mappa una chiave primaria a una riga. Ora siamo pronti per supportare nuove query provenienti dai clienti. Come spiegato in precedenza, l’esperienza è che i clienti inviano le loro richieste agli agenti, che poi interagiscono con il chatbot basato su LLM. Nel chatbot Q&A, la query viene convertita in un embedding e quindi utilizzata come chiave di ricerca per un indice corrispondente (dal passaggio precedente). I criteri di corrispondenza si basano su un modello di similarità, come ad esempio FAISS o Amazon Open Search Service (per ulteriori dettagli, fare riferimento a Amazon OpenSearch Service’s vector database capabilities explained). Quando ci sono corrispondenze, le prime risposte vengono recuperate e utilizzate come contesto di input per il modello generativo. Questo corrisponde al secondo passo nel modello RAG – il passo generativo. In questo passo, la richiesta viene inviata all’LLM (modalità di base generatrice), che compone la risposta finale generata automaticamente alla domanda originale. Questa risposta viene fornita attraverso l’interfaccia utente dell’assistenza clienti all’agente, che convalida la risposta, la modifica se necessario e la invia al paziente. Il diagramma seguente illustra questo processo.

Flusso Rag

Gestione della base di conoscenza

Come abbiamo appreso con il modello RAG, il primo passo per eseguire Q&A consiste nel recuperare i dati (le coppie di domande e risposte) da utilizzare come contesto per l’input del LLM. Questi dati sono indicati come base di conoscenza del chatbot. Esempi di questi dati sono le procedure standard operative interne di Amazon Pharmacy (SOP) e le informazioni disponibili nel Centro assistenza Amazon Pharmacy. Per agevolare l’indicizzazione e il processo di recupero (come descritto in precedenza), è spesso utile raccogliere tutte queste informazioni, che possono essere ospitate su diverse soluzioni come wiki, file e database, in un unico repository. Nel caso specifico del chatbot di Amazon Pharmacy, utilizziamo Amazon Simple Storage Service (Amazon S3) a tal scopo per la sua semplicità e flessibilità.

Panoramica della soluzione

La seguente figura mostra l’architettura della soluzione. L’applicazione di assistenza al cliente e il chatbot per domande e risposte basato su LLM sono distribuiti nella propria VPC per l’isolamento di rete. Il collegamento tra i punti finali VPC è realizzato tramite AWS PrivateLink, garantendo la loro privacy. Il chatbot per domande e risposte ha anche il proprio account AWS per la separazione dei ruoli, l’isolamento e la facilità di monitoraggio per motivi di sicurezza, costo e conformità. La logica di orchestrare il chatbot per domande e risposte è ospitata in Fargate con Amazon Elastic Container Service (Amazon ECS). Per configurare PrivateLink, un Network Load Balancer indirizza le richieste a un Application Load Balancer, che interrompe la connessione TLS del cliente finale e trasmette le richieste a Fargate. Il servizio di storage principale è Amazon S3. Come accennato in precedenza, i dati di input correlati vengono importati nel formato desiderato all’interno dell’account del chatbot per domande e risposte e vengono conservati in bucket S3.

Architettura della soluzione

Per quanto riguarda l’infrastruttura di machine learning (ML), Amazon SageMaker è al centro dell’architettura. Come spiegato nelle sezioni precedenti, vengono utilizzati due modelli, il modello di embedding e il modello LLM, e questi sono ospitati in due punti di accesso SageMaker separati. Utilizzando la funzionalità di registrazione dati di SageMaker, possiamo registrare tutte le richieste di inferenza e le relative risposte per scopi di troubleshooting, con le necessarie restrizioni di privacy e sicurezza. Successivamente, i feedback ricevuti dagli agenti vengono memorizzati in un bucket S3 separato.

Il chatbot per domande e risposte è progettato per essere una soluzione multi-tenant e supportare ulteriori prodotti sanitari di Amazon Health Services, come Amazon Clinic. Ad esempio, la soluzione viene distribuita con modelli di AWS CloudFormation per l’infrastruttura come codice (IaC), consentendo l’utilizzo di basi di conoscenza diverse.

Conclusioni

In questo post è stata presentata la soluzione tecnica per il miglioramento dell’assistenza al cliente AI generativa di Amazon Pharmacy. La soluzione consiste in un chatbot per domande e risposte che implementa il pattern di progettazione RAG su SageMaker e modelli di base in SageMaker JumpStart. Con questa soluzione, gli agenti dell’assistenza al cliente possono assistere i pazienti in modo più rapido, fornendo risposte precise, informative e concise.

L’architettura utilizza microservizi modulari con componenti separati per la preparazione e il caricamento della base di conoscenza, la logica del chatbot (istruzione), l’indicizzazione e il recupero dell’embedding, la generazione del contenuto LLM e la supervisione dei feedback. Quest’ultima è particolarmente importante per il miglioramento continuo del modello. I modelli di base in SageMaker JumpStart vengono utilizzati per sperimentazioni rapide, con il servizio dei modelli che viene eseguito tramite i punti di accesso SageMaker. Infine, il server del chatbot conforme a HIPAA è ospitato su Fargate.

In sintesi, abbiamo visto come Amazon Pharmacy utilizzi l’IA generativa e AWS per migliorare l’assistenza al cliente, privilegiando principi e pratiche di AI responsabile.

Puoi iniziare a sperimentare con i modelli di base in SageMaker JumpStart oggi stesso per trovare i modelli di base adatti al tuo caso d’uso e iniziare a costruire la tua applicazione di AI generativa su SageMaker.