Introduzione: Snowflake Cortex Analyst ridefinisce l'analisi dati

Oggi, siamo lieti di annunciare la public preview di Snowflake Cortex Analyst. Cortex Analyst, progettato utilizzando i modelli Llama e Mistral di Meta, è un servizio completamente gestito che offre un'interfaccia conversazionale per interagire con i dati strutturati all'interno di Snowflake. Questo strumento snellisce lo sviluppo di applicazioni analitiche intuitive e self-service per gli utenti aziendali, garantendo al contempo una precisione all'avanguardia.

Superare i limiti dell'analisi tradizionale

Storicamente, gli utenti aziendali si affidavano principalmente a dashboard e report di Business Intelligence (BI) per trovare risposte alle loro domande sui dati. Tuttavia, queste risorse spesso mancano di flessibilità, lasciando gli utenti dipendenti da data analyst sovraccarichi per ottenere aggiornamenti o risposte, un processo che può richiedere giorni. Cortex Analyst interrompe questo ciclo fornendo un'interfaccia in linguaggio naturale con un'elevata precisione nelle conversioni da testo a SQL. Con Cortex Analyst, le aziende possono snellire lo sviluppo di applicazioni conversazionali intuitive che consentono agli utenti aziendali di porre domande in linguaggio naturale e di ricevere risposte più precise in tempo quasi reale.

Come funziona Cortex Analyst

Per offrire un'elevata precisione da testo a SQL, Cortex Analyst utilizza una configurazione di IA agentica alimentata da Large Language Models (LLM) all'avanguardia. Disponibile come una pratica API REST, Cortex Analyst può essere facilmente integrato in qualsiasi applicazione. Ciò consente agli sviluppatori di personalizzare il modo e il luogo in cui gli utenti aziendali interagiscono con i risultati, beneficiando al contempo delle funzioni integrate di sicurezza e governance di Snowflake, inclusi i controlli di accesso basati sui ruoli (RBAC), per proteggere i dati preziosi.

Bayer: un caso di successo concreto

Bayer, azienda leader nell'innovazione farmaceutica e biomedica, utilizza Cortex Analyst per alimentare le analisi self-service sui propri dati aziendali. In precedenza, i team accedevano alla piattaforma dati aziendale tramite dashboard, che spesso non possedevano la flessibilità necessaria per rispondere al numero crescente di domande degli utenti.

Ora, utilizzando Streamlit in Snowflake come interfaccia di chat e Cortex Analyst come servizio di generazione di query, Bayer è in grado di arricchire la Business Intelligence esistente con analisi self-service in linguaggio naturale. Nella prima fase, la loro applicazione si è concentrata sulla risposta a domande di gestione da parte di VP commerciali, come: «Qual era la quota di mercato del prodotto X nell'ultimo mese?» Ora supporta anche gli analisti delle unità commerciali, offrendo dati dettagliati a livello di riga per un'analisi più approfondita.

La promessa dell'analisi in linguaggio naturale

«E se gli utenti aziendali potessero porre domande precise direttamente ai dati e ottenere risposte con una semplice visualizzazione? Il vantaggio: risposte di alta qualità a una query in linguaggio naturale che riguardano dati strutturati, utilizzate in modo sostenibile dal punto di vista operativo. Questo è esattamente ciò che ci permette Snowflake Cortex Analyst. Ciò che mi entusiasma di più è che siamo solo all'inizio; non vediamo l'ora di estrarre ancora più valore grazie a Snowflake Cortex AI.»

Le sfide degli LLM nell'analisi e l'esigenza di precisione

I grandi modelli di linguaggio (LLM), grazie alla loro capacità di comprendere il linguaggio naturale e generare codice, hanno scatenato un'ondata di interesse attorno alla democratizzazione dell'analytics, rendendola accessibile anche a persone senza conoscenze SQL. Tuttavia, nonostante i recenti progressi, gli LLM faticano ancora a comprendere database e schemi reali, necessari per generare SQL preciso e risposte affidabili. Le soluzioni di settore che si basano unicamente sull'utilizzo degli LLM per generare testo-a-SQL su schemi grezzi soffrono di bassa precisione e raramente passano dalla fase di dimostrazione alla produzione. Come sottolinea un recente rapporto Forrester, le prove aneddotiche mostrano un tasso di successo del 70% nel migliore dei casi per generare codice eseguibile preciso per query semplici a tabella singola, e un tasso di successo di circa il 20%, nel peggiore dei casi, con tabelle multiple e/o join complessi. Se un servizio è progettato per rispondere alle domande degli utenti aziendali sui dati, un'elevata precisione è fondamentale. Per garantire l'adozione di soluzioni basate sul linguaggio naturale, i team aziendali devono essere convinti che i risultati ottenuti riflettano in modo coerente fatti utilizzabili. Senza risultati precisi che ispirino fiducia, nessuna altra funzionalità ha importanza.

L'approccio di Snowflake alla generazione di SQL ad alta precisione

Ottenere un codice SQL di alta precisione per diversi casi d'uso richiede più del semplice utilizzo di LLM avanzati. In Snowflake, ci basiamo sui seguenti principi chiave per creare un prodotto affidabile che possa essere integrato in qualsiasi applicazione:

  • Catturare la semantica

    Gli schemi grezzi spesso mancano di informazioni semantiche, complicando la capacità di un LLM di rispondere in modo preciso alle domande sui dati in base all'intenzione dell'utente. Come un analista umano, il sistema deve comprendere l'intenzione della domanda, inclusi il vocabolario dell'utente e il suo gergo specifico. Devono essere utilizzati modelli di dati semantici per catturare queste informazioni al fine di fornire un'elevata precisione.

  • Contenere lo spazio problematico

    È importante creare modelli di dati semantici specifici per i casi d'uso, come quelli per l'analisi di marketing o l'analisi delle vendite. La precisione del SQL generato può essere considerevolmente aumentata in un perimetro ristretto, invece di puntare all'intero schema del database. Troppe tabelle e colonne simili possono confondere gli LLM e quindi ridurre la precisione.

  • Rifiutare le domande senza risposta e proporre alternative

    Come un analista intelligente, il nostro sistema identifica e rifiuta in modo proattivo le domande ambigue o senza risposta, considerate le informazioni disponibili. Invece di produrre risultati errati, suggerisce query alternative a cui è possibile rispondere con sicurezza, preservando così la fiducia degli utenti.

  • Evolvere con la tecnologia

    Anche gli LLM all'avanguardia faticano attualmente a generare SQL corretto su schemi complessi. Sebbene l'abilitazione delle join non sia difficile, fornire risultati precisi senza sovrastimare/sottostimare le post-join e gestendo forme di schema delicate, come le 'chasm traps' e le 'fan traps', è difficile per gli attuali modelli di IA. Semplificando gli schemi, possiamo migliorare considerevolmente l'affidabilità e la precisione del codice SQL generato.

Precisione verificata: benchmark e risultati

Dato che Snowflake si concentra principalmente sulla precisione, abbiamo intenzionalmente definito l'ambito attuale del prodotto con le strategie sopra menzionate, osservando circa il 90% o più di precisione in modo affidabile nelle valutazioni dei clienti e nei nostri test di benchmark. Nel tempo, prevediamo di introdurre progressivamente ulteriori funzionalità per supportare casi d'uso avanzati, mantenendo al contempo gli stessi livelli di precisione, indispensabili per ispirare fiducia.

Il benchmark sopra citato si basa su uno dei nostri set di valutazione interni, rappresentativo di casi d'uso reali. I risultati mostrano che Cortex Analyst è costantemente circa 2 volte più preciso della generazione di SQL 'one-shot' da LLM all'avanguardia (SoTA) e offre una precisione circa il 14% superiore rispetto a un'altra soluzione testo-a-SQL presente sul mercato. Non perdetevi il nostro prossimo articolo di blog sull'ingegneria, dove approfondiremo i dettagli e i risultati dei benchmark.