Estrarre dati da SAP in modo semplice con Amazon AppFlow
04 Dicembre 2024 - 2 min. read
Mehmed Dourmouch
DevOps Engineer
Il biennio ‘22 - ’23 ha visto un'esplosione dell'interesse nei confronti dell’Artificial Intelligence (AI) in tutte le sue declinazioni.
Strumenti come ChatGPT, Bard, Claude e Bing AI hanno reso questa tecnologia accessibile ad un vastissimo pubblico e ne hanno messo in luce le innumerevoli potenzialità, in particolar modo riguardo alla Generative AI.
Moltissime aziende si sono già spinte in applicazioni commerciali: dalla personalizzazione di contenuti aziendali e non, alla generazione di materiali promozionali estremamente mirati e personalizzati, dalla produzione di documentazione tecnica, alla traduzione real-time di testi, fino addirittura al miglioramento di sistemi di Help Desk e assistenza clienti.
L'entusiasmo suscitato, tuttavia, sembra aver innescato una vera e propria “corsa alla GenAI” portando a un'inversione del processo decisionale: spinti dalla paura di perdere l’opportunità (FOMO), si tende a cercare di adattare la Generative AI ai problemi aziendali più disparati invertendo causa - effetto e rischiando di cadere in investimenti ingenti fini a loro stessi. Nonostante le straordinarie possibilità offerte, dunque, è importante sottolineare che la Generative AI non è sempre la soluzione a tutte le sfide di business: occorre valutare secondo molteplici punti di vista se questa possa realmente offrire un vantaggio competitivo tangibile e giustificare così effort e investimento, ad oggi ancora molto alti.
Concentriamoci su un caso concreto.
In questo articolo partiremo dal perché abbiamo ritenuto che in questo caso la Generative AI fosse lo strumento migliore per massimizzare il risultato, soffermandoci su cosa abbiamo imparato da questa esperienza.
Per un cliente in ambito food, ci siamo occupati della realizzazione di un sistema di pianificazione e raccomandazione. Dato un input contenente criteri personalizzati, la soluzione è in grado di comporre in autonomia un menu su base giornaliera e/o settimanale, pianificando i pasti scegliendo i piatti in base a preferenze, limiti di crediti disponibili sulla piattaforma e necessità alimentari date dell’utente.
Le sfide principali erano:
L'obiettivo era quindi duplice: da un lato, aumentare retention e fidelizzazione del cliente, riducendo al contempo la friction; dall'altro, minimizzare il rischio di mancato guadagno per l’azienda.
Da sempre esistono algoritmi noti di Natural Language Processing (NLP), ovvero algoritmi di AI in grado di elaborare il linguaggio naturale e di interpretarlo per fornire output coerenti con criteri decisionali specifici. Mettendo insieme algoritmi di NLP, Reccomandation e tecniche di best fit, dunque, avremmo potuto raggiungere il medesimo obiettivo ottenuto con l’utilizzo della Generative AI.
La Gen AI, tuttavia, ci avvicinava decisamente di più agli obiettivi di partenza per una serie di motivi:
Vediamo ora quali sono stati i principali takeaway che abbiamo fatto nostri durante l’implementazione della soluzione e che saranno fondamentali per il successo di tutti i progetti futuri che prevederanno l'utilizzo della Generative AI.
Utilizzare i LLM facilita enormemente la vita in tutti quei contesti dove un certo grado di imprecisione non è una criticità e dove fornire un nuovo servizio all’utente è già di per sè un vantaggio competitivo.
Questo perchè non bisogna investire tempo e risorse nell’individuazione di un modello specifico per risolvere un determinato problema, ma soprattutto non bisogna investire per trainarlo. L’addestramento dei modelli resta infatti una delle pratiche più costose in assoluto in ambito AI.
Grazie a un training già sufficientemente ampio da non richiedere aggiustamenti avanzati, infatti, i LLM ci permettono di arrivare ad un risultato soddisfacente in tempi relativamente brevi rispetto all’utilizzo di algoritmi classici.
Il rovescio della medaglia sta nel fatto che, per quanto buono, il risultato che andremo ad ottenere non sarà il miglior risultato ottenibile in assoluto. In un’ottica di miglioramento incrementale, tuttavia, si possono ottimizzare i tempi di go-to-market servendosi di LLM per poi agire a posteriori con con algoritmi noti con cui effettuare best match.
Non ci sono limiti alla perfezione!
Quando si parla di user experience, spesso i benefici per l’utente finale sono intangibili. In questo caso il planner ha un impatto concreto su due dimensioni: tempo e denaro.
Il tempo che l’utente passa a pianificare i pasti per la settimana successiva varia tra i 5 e 15 minuti (a seconda delle esigenze, della scelta dei piatti e del confronto di specifici valori nutizionali).
Già con il primo test, il modello impiega 38 secondi a presentare all’utente una pianificazione. Come ci siamo detti, ci sono diversi aspetti perfettibili sia per ridurre i tempi, sia per migliorare l’output. Tuttavia, in meno di 2 minuti l’utente è in grado di aggiustare la pianificazione proposta e ritrovarsi con un menù completo.
Questo si traduce in un risparmio di tempo pari al 60%-86%.
Si supera inoltre in automatico il problema dell’utente che si dimentica di ordinare da una settimana con l’altra, trovandosi così costretto a dover uscire o ordinare tramite servizi di consegna a domicilio. Se il disagio di arrivare un giorno in ufficio e non trovare il proprio pasto non è quantificabile, si può misurare che mediamente pranzare fuori ha un costo superiore del 30%-45% (a parità di cibo consumato). Indirettamente quindi non c’è solo un fattore di user experience migliorata, ma anche di risparmio dei costi.
Dal punto di vista dell’azienda il planner crea un rapporto diretto tra soddisfazione del cliente e guadagno. Ogni volta che un utente si dimentica di ordinare si crea uno scenario lose-lose: l’utente vive un disagio e l’azienda ha un mancato guadagno.
Con il planner l’azienda non solo si assicura che ogni giorno ci sarà un guadagno, ma anche che questo venga massimizzato, dal momento che il modello cercherà di utilizzare il massimo numero di crediti possibili nel pianificare i pasti.
I consumi della Gen AI relativamente ad aspetti economici, energetici, di potenza di calcolo e CPU sono notevoli.
Va tenuto a mente che stiamo utilizzando uno strumento estremamente potente per risolvere problemi molto specifici e circoscritti, spesso potenzialmente risolvibili con l’impiego di molte meno risorse… se pur con uno sforzo implementativo maggiore.
Per utilizzare una metafora, “sparando alla formica col bazooka", si ottiene sicuramente il risultato di eliminarla, ma con tutti gli effetti collaterali dell’aver utilizzato un’arma così potente per un obiettivo così circoscritto.
Questo solleva un tema importante, la sostenibilità, su cui la Generative AI ha un impatto significativo da diversi punti di vista:
In conclusione, allocare un budget sostenibile e pianificare a lungo termine è essenziale per garantire la sostenibilità economica dell'utilizzo della Generative AI, insieme alla sensibilizzazione degli utenti riguardo al pagamento di piani premium.
Utilizzando la Generative AI, il contesto del workload può giocare a nostro favore o a nostro sfavore (o, come vedremo, addirittura entrambe le cose), rendendo la previsione dei costi un’incognita.
Da un punto di vista puramente informatico e di programmazione, l'utilizzo dei LLM è relativamente semplice, poiché l'elaborazione del dato che genera l'output avviene in gran parte in modo automatico, come in una black box.
Non essendo richieste elaborazioni avanzate (almeno in una prima fase), il grande sforzo, nonché l’ago della bilancia sul controllo dei costi, si sposta sulla system integration e sulla comprensione logica del contesto in cui il LLM opera.
Nell’utilizzo dei LLM, il costo dipende dal numero di token (unità di misura assimilabili alle sillabe testuali) in ingresso nel prompt e in uscita dal risultato generato. Per evitare spese eccessive e fuori controllo, è utile limitare l'incertezza nell'uso del prompt, quando possibile.
Torniamo al nostro planner: come menzionato in precedenza, ciascun input testuale, ha un costo per nulla trascurabile per l’azienda. Il costo elevato è dovuto al fatto che, affinché la soluzione funzioni, ogni prompt deve includere non solo le richieste dell'utente, ma anche altre informazioni "nascoste", come l'intero menu (meta-prompt). Poiché la lunghezza e la variabilità del prompt sono difficili da ottimizzare, il costo non può essere previsto con certezza.
Siamo comunque riusciti a evitare l’esplosione incontrollata dei costi con un paio di accortezze. Una dettata da noi, ovvero un limite forzato di 200 caratteri (quindi un numero di token in ingresso più o meno stabile) per esprimere i propri criteri di scelta, e una data dalla piattaforma stessa (quindi dal contesto): attraverso l’utilizzo del meta-prompt, ovvero della parte di informazioni non visibili all’utente, siamo stati in grado di passare il numero totale di crediti disponibili per pasto (80 nel nostro caso, corrispondenti a una spesa di 8€) da cui viene man mano sottratto il costo di ciascun piatto scelto dal LLM. Nonostante notoriamente i LLM non eccellano nei calcoli matematici, il risultato ottenuto è stato buono, in quanto il sistema stesso si occupa di non mostrare eventuali piatti che eccederebbero il residuo dei crediti.
Sebbene in modo approssimativo, siamo riusciti a ottenere un risultato per l'utente all'interno dei limiti dei punti disponibili e a limitare la spesa grazie a una gestione per l’azienda prevedibile del numero di token in output.
Uno degli aspetti che abbiamo sottovalutato nell'utilizzo dei LLM è senz'altro il concetto di “linguaggio”. È importante sottolineare che i LLM non si limitano ad accettare e generare testo in linguaggio naturale umano. In realtà, possono accettare input in qualsiasi linguaggio formale dotato di una grammatica e produrre un output nella stessa forma.
I linguaggi di programmazione sono ovviamente compresi in questa definizione più ampia: il JSON, ad esempio, essendo un formato di interscambio, è a tutti gli effetti un linguaggio strutturato e può quindi essere utilizzato sia come input in un prompt, sia come output richiesto. È infatti possibile chiedere al LLM di produrre il risultato in un linguaggio diverso da quello naturale, ad esempio, di rappresentare il menù proposto usando un JSON. Ci si può spingere - ed è bene - ad indicare l’esatta forma del JSON che ci si aspetta in output. In questo modo, il modello fornirà un output direttamente utilizzabile dal sistema del cliente per portare il valore all’interno delle applicazioni e restituire agli utilizzatori finali una risposta integrata nell’esperienza utente attesa. Nel caso specifico, il risultato viene utilizzato dal sistema per comporre il menù nella medesima interfaccia che userebbe l’utente.
In generale la possibilità di usare linguaggi vicini alla macchina rende possibile sfruttare gli LLM per avvicinare le richieste utente a sistemi tradizionali, unificando e migliorando la UX.
Le potenzialità della Generative AI sono oggi sotto gli occhi di tutti. A beneficiarne maggiormente sono sicuramente gli utenti finali grazie alle innumerevoli opportunità di toccare con mano i risultati di strumenti ormai di uso comune.
Tuttavia, per coloro che, come noi, operano nel settore, l'hype che circonda questa tecnologia solleva domande e incertezze. Se da un lato la possibilità di evitare le complessità tipiche di un più tradizionale utilizzo dell’AI è un grosso vantaggio, dall'altro ci si chiede se il gioco possa veramente valere la candela.
A fronte di interessi e investimenti sempre crescenti nel settore, le aziende, anche le più grandi, stanno ancora cercando di capire come monetizzare appieno le tecnologie basate su AI.
In conclusione, nonostante la popolarità tra gli utenti, sembra che il percorso verso una completa integrazione e un utilizzo sostenibile sia ancora piuttosto lungo e incerto. È essenziale mantenere un approccio critico e bilanciato, valutando attentamente i benefici e i rischi associati a queste tecnologie emergenti.
Voi cosa ne pensate?
Avete già realizzato soluzione Gen AI-based?
Fatecelo sapere nei commenti!
Proud2beCloud è il blog di beSharp, APN Premier Consulting Partner italiano esperto nella progettazione, implementazione e gestione di infrastrutture Cloud complesse e servizi AWS avanzati. Prima di essere scrittori, siamo Solutions Architect che, dal 2007, lavorano quotidianamente con i servizi AWS. Siamo innovatori alla costante ricerca della soluzione più all'avanguardia per noi e per i nostri clienti. Su Proud2beCloud condividiamo regolarmente i nostri migliori spunti con chi come noi, per lavoro o per passione, lavora con il Cloud di AWS. Partecipa alla discussione!