Passa al contenuto principale
Energia

Xcel Energy: Sviluppo di un chatbot basato su RAG su Databricks

Generazione di risposte accurate e sensibili al contesto utilizzando gli LLM

di Aradhya Chouhan, Uttaran Banerjee, Blake Kleinhans (Xcel Energy) e Hari Purnapatre (Xcel Energy)

Questo blog descrive come Xcel Energy ha utilizzato Databricks per creare un chatbot basato su un'architettura Retrieval-Augmented Generation (RAG), progettato per semplificare processi come la revisione delle pratiche tariffarie e dei contratti legali. La Databricks Data Intelligence Platform è stata fondamentale in tutte le fasi di sviluppo, dalla governance dei dati al deployment. Le funzionalità della piattaforma, tra cui Unity Catalog, Foundation Model API, AI Search, MLflow e Model Serving, hanno consentito al team di concentrarsi sul perfezionamento dell'architettura RAG e sul miglioramento delle prestazioni del chatbot. Il progetto ha ridotto significativamente i tempi di revisione delle pratiche tariffarie, migliorando l'accesso ai dati e gli insight.

Xcel Energy è una principale azienda di energia elettrica e gas naturale che serve 3,4 milioni di clienti elettrici e 1,9 milioni di clienti di gas naturale in otto stati: Colorado, Michigan, Minnesota, New Mexico, North Dakota, South Dakota, Texas e Wisconsin. Xcel Energy voleva creare un chatbot basato su un'architettura Retrieval-Augmented Generation (RAG) sfruttando Databricks per ottimizzare le operazioni e servire meglio i propri clienti. I data scientist di Xcel Energy hanno individuato diversi casi d'uso ad alto valore da testare, tra cui la revisione delle tariffe, l'analisi dei contratti legali e l'analisi dei report sulle chiamate relative agli utili. Ad esempio, con il variare del costo dell'energia, Xcel Energy deve ricalibrare le proprie tariffe per allinearle ai fattori di mercato, un processo che potrebbe richiedere diversi mesi. Nel frattempo, la dirigenza di Xcel Energy desiderava ottenere informazioni utili dai report sulle chiamate relative agli utili senza dover scorrere centinaia di pagine di PDF, e il team legale voleva accedere rapidamente ai dettagli dei contratti con i clienti.

L'obiettivo del team dei dati era implementare un sistema di IA generativa scalabile ed efficiente in grado di recuperare dati rilevanti da un ampio corpus di documenti e generare risposte accurate e sensibili al contesto utilizzando modelli linguistici di grandi dimensioni (LLM). Le funzionalità della Databricks Data Intelligence Platform hanno semplificato ogni fase dello sviluppo, dalla data governance e integrazione dei modelli fino al monitoraggio e alla distribuzione. Ora, le pratiche tariffarie basate sulla revisione di documentazione complessa, inclusi i report sui prezzi dell'energia e le normative governative, richiedono 2 settimane invece di un massimo di 6 mesi.

Databricks ha consentito lo sviluppo e la distribuzione rapidi dei nostri chatbot basati su RAG, migliorando significativamente il nostro time-to-value. La piattaforma si è integrata perfettamente con le nostre fonti di dati interne e con gli strumenti di dashboard esistenti, consentendo al nostro team di concentrarsi sul miglioramento della qualità anziché sulla configurazione dell'infrastruttura da zero. Inoltre, Databricks ci ha permesso di sperimentare facilmente diversi embedding e modelli linguistici per ottenere le migliori prestazioni possibili.—Blake Kleinhans, Senior Data Scientist, Xcel Energy

Gestione e preparazione dei dati

Un primo passo fondamentale nel progetto è stato stabilire metodi efficaci per la governance e la gestione dei dati. In quanto fornitore di servizi di pubblica utilità, Xcel Energy doveva garantire una sicurezza e una governance rigorose per evitare qualsiasi rischio di fuga di dati sensibili o proprietari. Ogni caso d'uso richiedeva una varietà di documenti, alcuni pubblici (report sugli utili) e altri sensibili (contratti legali). Unity Catalog di Databricks ha abilitato la gestione centralizzata dei dati sia strutturati che non strutturati, incluso il corpus di documenti per la knowledge base del chatbot. Ha fornito controlli di accesso granulari che hanno garantito che tutti i dati rimanessero sicuri e conformi, un vantaggio significativo per i progetti che coinvolgono dati sensibili o proprietari.

Per mantenere aggiornata la piattaforma di IA generativa, i dati rilevanti dovevano essere resi disponibili nel chatbot basato su RAG non appena venivano inseriti. Per la preparazione dei dati, sono stati utilizzati i Databricks Notebooks e Apache Spark™ per elaborare grandi set di dati provenienti da fonti diverse, tra cui siti web governativi, documenti legali e fatture interne. Le funzionalità di calcolo distribuito di Spark hanno consentito al team di importare e pre-elaborare rapidamente i documenti nel proprio data lake, permettendo a Xcel Energy di trasferire flussi di lavoro di dati di grandi dimensioni in un Vector Store in tempi minimi.

Generazione e archiviazione degli embedding

Gli embedding erano fondamentali per il meccanismo di recupero dell'architettura RAG. Il team ha utilizzato le Databricks Foundation Model APIs per accedere a modelli di embedding all'avanguardia come databricks-bge-large-en e databricks-gte-large-en, che hanno fornito rappresentazioni vettoriali di alta qualità del corpus di documenti. Questi embedding hanno eliminato la necessità di distribuire o gestire manualmente l'infrastruttura dei modelli, semplificando il processo di generazione degli embedding.

Gli embedding sono stati poi archiviati in Databricks AI Search, un database vettoriale serverless e altamente scalabile integrato all'interno dell'ambiente Databricks. Ciò ha garantito una ricerca di similarità efficiente, che ha costituito la spina dorsale del componente di recupero del chatbot. L'integrazione perfetta di AI Search all'interno dell'ecosistema Databricks ha ridotto significativamente la complessità dell'infrastruttura.

Integrazione LLM e implementazione RAG

Xcel è stata in grado di testare diversi LLM utilizzando le Databricks Foundation Model APIs. Queste API forniscono l'accesso a modelli pre-addestrati e all'avanguardia senza l'onere di gestire la distribuzione o le risorse di calcolo. Ciò ha garantito che gli LLM potessero essere facilmente incorporati nel chatbot, fornendo una generazione linguistica robusta con una gestione minima dell'infrastruttura.

La loro distribuzione iniziale è stata con Mixtral 8x7b-instruct con una lunghezza del token di 32k, dopo aver provato i modelli Llama 2 e DBRX. Mixtral, un modello SMoE (sparse mixture of experts), ha eguagliato o superato Llama 2 70B e GPT 3.5 nella maggior parte dei benchmark, risultando quattro volte più veloce di Llama 70B nell'inferenza. Xcel Energy ha dato priorità alla qualità dei risultati e ha utilizzato Mixtral fino al passaggio a Claude Sonnet 3.5 di Anthropic in AWS Bedrock, a cui si accede in Databricks tramite Agent Bricks AI Gateway e AI Search per RAG.


La pipeline RAG è stata creata utilizzando LangChain, un potente framework che si integra perfettamente con i componenti di Databricks. Utilizzando Databricks AI Search per la ricerca di similarità e combinandolo con la generazione di query LLM, il team ha creato un sistema efficiente basato su RAG in grado di fornire risposte sensibili al contesto alle query degli utenti. La combinazione di LangChain e Databricks ha semplificato il processo di sviluppo e migliorato le prestazioni del sistema.

Tracciamento degli esperimenti e gestione dei modelli con MLflow

Il progetto ha utilizzato appieno MLflow, una piattaforma open source ampiamente adottata per il tracciamento degli esperimenti e la gestione dei modelli. Utilizzando l'integrazione LangChain di MLflow, il team è stato in grado di registrare varie configurazioni e parametri del modello RAG durante il processo di sviluppo. Ciò ha consentito il controllo delle versioni e semplificato la distribuzione delle applicazioni LLM, fornendo un percorso chiaro dalla sperimentazione alla produzione.

Stiamo approfondendo le funzionalità di tracciamento di MLflow. Questa funzionalità sarà fondamentale per diagnosticare i problemi di prestazioni e migliorare la qualità delle risposte del nostro chatbot di assistenza clienti telefonica.—Blake Kleinhans, Senior Data Scientist, Xcel Energy

Inoltre, AI Gateway ha consentito al team di gestire centralmente le credenziali e l'accesso ai modelli, abilitando un passaggio efficiente tra i vari LLM e controllando i costi tramite rate limiting e caching.

Model Serving e distribuzione

La distribuzione del chatbot è stata semplificata utilizzando Databricks Model Serving. Questa opzione di calcolo serverless ha fornito una soluzione scalabile e conveniente per l'hosting del chatbot basato su RAG. Ha consentito di esporre il modello come endpoint API REST con una configurazione minima. L'endpoint poteva quindi essere facilmente integrato nelle applicazioni front-end, semplificando il passaggio dallo sviluppo alla produzione.

Model Serving ha inoltre abilitato la scalabilità basata su GPU, riducendo la latenza e i costi operativi. Questa scalabilità è stata fondamentale con l'espansione del progetto, consentendo al chatbot di gestire carichi di utenti crescenti senza modifiche architetturali significative.

Monitoraggio e miglioramento continuo

Dopo la distribuzione, è stato utilizzato Databricks SQL per implementare soluzioni di monitoraggio. Il team ha creato dashboard che tracciavano metriche essenziali come i tempi di risposta, i volumi delle query e i punteggi di soddisfazione degli utenti. Queste informazioni sono state fondamentali per migliorare continuamente le prestazioni del chatbot e garantire l'affidabilità a lungo termine.

Integrando il monitoraggio nel flusso di lavoro complessivo, il team è stato in grado di affrontare in modo proattivo i potenziali problemi e ottimizzare le prestazioni del sistema in base al feedback in tempo reale.

Conclusione: vantaggi di Databricks per le applicazioni GenAI

La Databricks Data Intelligence Platform ha consentito lo sviluppo e la distribuzione rapidi del chatbot basato su RAG, riducendo significativamente le complessità tipicamente associate alla gestione di progetti AI su larga scala. L'integrazione di strumenti come Unity Catalog, Foundation Model API, AI Search, MLflow e Model Serving ha fornito un AI Agent System end-to-end e coeso per la creazione di applicazioni GenAI.

Il nostro obiettivo è anche quello di rendere gli LLM più accessibili in tutta Xcel, consentendo ai team di utilizzarli per attività come il tagging, la sentiment analysis e qualsiasi altra applicazione di cui possano avere bisogno.—Blake Kleinhans, Senior Data Scientist, Xcel Energy

Concentrandosi su scalabilità, semplicità dell'infrastruttura e governance dei modelli, la piattaforma ha consentito al team di concentrarsi sul perfezionamento dell'architettura RAG e di migliorare facilmente le prestazioni del chatbot. Le solide funzionalità della piattaforma hanno garantito che il progetto potesse scalare in modo efficiente con l'aumento della domanda da parte degli utenti, rendendo Databricks la scelta ideale per lo sviluppo e la distribuzione di applicazioni GenAI avanzate. Il team di data science di Xcel Energy ha apprezzato la libertà di passare facilmente a LLM più avanzati non appena disponibili, senza interrompere l'intera architettura.

In prospettiva futura, Xcel Energy prevede di poter estendere ulteriormente l'uso degli strumenti di GenAI in tutta l'azienda, democratizzando l'accesso a dati e insight.

Questo post del blog è stato scritto in collaborazione da Blake Kleinhans (Xcel Energy), Hari Purnapatre (Xcel Energy), Aradhya Chouhan (Databricks) e Uttaran Banerjee (Databricks).

(Questo post sul blog è stato tradotto utilizzando strumenti basati sull'intelligenza artificiale) Post originale

Ricevi gli ultimi articoli nella tua casella di posta

Iscriviti al nostro blog e ricevi gli ultimi articoli direttamente nella tua casella di posta.