Approccio all'Intelligenza Artificiale Generativa: Raccomandazioni e Lezioni Apprese da AgPal Chat – Statistique Canada
Di Andy Fan, Rafael Moraes; Agriculture and Agri-Food Canada
Introduzione
Nato come risultato del progetto vincitore della prima Canadian Public Service Data Challenge, abbiamo avuto l'incredibile opportunità di costruire AgPal Chat, uno strumento di ricerca basato sull'Intelligenza Artificiale (IA) generativa che fornisce utili informazioni agricole federali, provinciali e territoriali ai canadesi in modo conversazionale. È disponibile sul sito web AgPal.ca come un nuovo modo complementare per connettere gli utenti con informazioni agricole canadesi pertinenti. È il risultato di uno straordinario sforzo interfunzionale tra industria, mondo accademico e altri dipartimenti governativi per migliorare la fornitura di servizi ai canadesi.
In questo articolo, ci concentriamo sulla condivisione delle nostre lezioni apprese sugli aspetti tecnici e politici dell'implementazione di AgPal Chat. Alcuni dei nostri principali risultati e raccomandazioni includono: l'uso della Generazione Aumentata dal Recupero (RAG) per migliorare l'accuratezza dell'IA, la necessità di barriere di sicurezza (guardrail) per garantire interazioni AI etiche e sicure, e il ruolo di una forte governance dei dati e della conformità alle politiche nella creazione di sistemi AI responsabili.
Ingegneria dei Prompt
L'ingegneria dei prompt è un campo affascinante e complesso all'intersezione dell'esperienza umana e dell'IA. Il suo obiettivo centrale è mettere a punto le interrogazioni in modo tale da ottenere le risposte più accurate, imparziali e pertinenti dai sistemi di IA, specialmente quelli basati su modelli linguistici. Questa pratica è della massima importanza perché, a differenza delle interfacce software tradizionali, i sistemi di linguaggio naturale si basano fortemente sulle sottigliezze del linguaggio umano con tutte le sue sfumature e complessità. Pertanto, progettare prompt efficaci è sia un'arte che una scienza, che richiede una profonda comprensione della tecnologia IA sottostante, così come delle particolarità del linguaggio e della cognizione umana.
È anche un processo continuo e iterativo che implica il test e la raffinazione dei prompt per garantire che i sistemi di IA generino risposte accurate, imparziali e pertinenti. Questo aggiustamento continuo è cruciale per evitare di introdurre bias non intenzionali, poiché anche piccoli cambiamenti nella formulazione possono influenzare significativamente il comportamento dell'IA. Una valutazione regolare e un attento bilanciamento degli elementi tecnici e linguistici aiutano a mantenere l'affidabilità e l'imparzialità degli output dell'IA.
È importante riconoscere che ogni modello linguistico di grandi dimensioni (LLM) avrà il proprio prompt ottimale che produce le migliori prestazioni, poiché modelli diversi possono rispondere in modo diverso allo stesso prompt a causa delle variazioni nella loro architettura e nei dati di addestramento. Tuttavia, il processo per scoprire questo prompt ottimale rimane coerente tra i modelli. Implica lo stesso ciclo iterativo di sperimentazione, valutazione e raffinamento per garantire che i prompt guidino l'IA nella produzione di output accurati e imparziali.
Tecnica di Generazione Aumentata dal Recupero (RAG)
"Generazione Aumentata dal Recupero" o RAG è un framework che combina il recupero di informazioni da una fonte di conoscenza (come un database o una raccolta di documenti) con le capacità generative di un modello linguistico. Senza di esso, c'è una maggiore probabilità che anche gli LLM finemente sintonizzati producano "allucinazioni" quando vengono interrogati su argomenti che non hanno visto in modo estensivo nel loro set di addestramento. Per garantire che un'IA fornisca informazioni più precise, il RAG deve essere implementato all'interno del processo di costruzione del prompt. La Figura 1 seguente mostra un esempio del processo RAG. Librerie open-source come Langchain o Llama Index, così come soluzioni proprietarie (come Azure Cognitive Search) possono essere impiegate se si desidera utilizzare RAG senza costruirlo da zero. Nel caso di AgPal Chat, abbiamo deciso di costruire noi stessi il pattern RAG. Ciò ha portato a una soluzione più flessibile che si adatta alle nostre esigenze specifiche.
Figura 1: Esempio di processo di Generazione Aumentata dal Recupero (RAG)
Questa è un'immagine che illustra il processo di Generazione Aumentata dal Recupero (RAG) da freecodecamp. Il diagramma è composto da diversi componenti interconnessi:
- Input (Query): Una domanda dall'utente, come "Come valuti il fatto che il CEO di OpenAI, Sam Altman, sia stato improvvisamente licenziato dal consiglio in soli tre giorni, e poi sia stato riassunto dall'azienda, assomigliando a una versione reale di 'Game of Thrones' in termini di dinamiche di potere?"
- Indicizzazione: Il sistema indicizza i documenti in blocchi/vettori utilizzando gli embedding.
- Recupero: I documenti pertinenti vengono recuperati in base alla query. Ad esempio:
- Blocco 1: "Sam Altman torna a OpenAI come CEO, il dramma della Silicon Valley assomiglia alla commedia 'Zhen Huan'."
- Blocco 2: "Il dramma si conclude? Sam Altman tornerà come CEO di OpenAI, il consiglio subirà una ristrutturazione."
- Blocco 3: "Il tumulto del personale di OpenAI giunge al termine: chi ha vinto e chi ha perso?"
- Generazione:
- Senza RAG: Il sistema fornisce una risposta generica senza dettagli specifici, come "Non sono in grado di fornire commenti su eventi futuri. Attualmente, non ho alcuna informazione riguardo al licenziamento e alla riassunzione del CEO di OpenAI..."
- Con RAG: Il sistema combina il contesto dai documenti recuperati e dai prompt per generare una risposta più dettagliata e pertinente, come "...Ciò suggerisce significativi disaccordi interni all'interno di OpenAI riguardo alla direzione futura dell'azienda e alle decisioni strategiche. Tutti questi colpi di scena riflettono lotte di potere e problemi di governance aziendale all'interno di OpenAI..."
- Output: La risposta finale viene generata in base al metodo di recupero selezionato (con o senza RAG), mostrando la differenza in dettaglio e accuratezza.
Ecco come funziona generalmente la tecnica RAG:
- Fase di Recupero: Data una cronologia di chat, il sistema RAG recupera prima documenti o pezzi di informazione pertinenti da un database o un corpus. Questo viene solitamente fatto utilizzando un modello di recupero o un algoritmo di ricerca ottimizzato per trovare rapidamente il contenuto più rilevante da grandi raccolte di informazioni.
- Aumento: I documenti recuperati vengono quindi utilizzati per aumentare l'input al modello generativo. Ciò significa che il modello linguistico riceve sia la cronologia di chat che il contenuto dei documenti recuperati come contesto.
- Fase di Generazione: Un modello linguistico generativo genera quindi una risposta basata su questo input aumentato. Il modello utilizza le informazioni aggiuntive per produrre risposte più accurate, dettagliate e contestualmente rilevanti.
I framework RAG sono particolarmente utili per attività in cui un modello linguistico necessita di accedere a informazioni esterne o deve rispondere a domande basate su dati fattuali che potrebbero non essere archiviati all'interno dei suoi parametri. Esempi di tali attività includono la risposta a domande a dominio aperto e la verifica dei fatti. La fase di recupero consente al sistema di recuperare informazioni aggiornate o specifiche a cui il solo modello linguistico non avrebbe accesso, basandosi sui suoi dati di addestramento.
Guardrail
I Guardrail sono regole o vincoli predefiniti che vengono messi in atto per impedire a un sistema di IA di generare contenuti inappropriati, distorti o sbilanciati. Funzionano guidando il processo di generazione lontano da determinati argomenti o frasi e post-elaborando l'output dell'IA per rimuovere o rivedere il contenuto problematico. Questi guardrail sono cruciali per diverse ragioni:
- Controllo dei Contenuti: Prevengono la generazione di contenuti inappropriati, offensivi o dannosi. Questo include discorsi d'odio, materiale sessualmente esplicito e altri tipi di contenuto che potrebbero non essere adatti a tutti i pubblici.
- Linee Guida Etiche: I guardrail aiutano a garantire che gli LLM e i chatbot rispettino le linee guida etiche. Possono prevenire l'approvazione di attività illegali o che potrebbero causare danni agli utenti o a terze parti.
- Mitigazione dei Bias: Nonostante i migliori sforzi, gli LLM possono a volte perpetuare o addirittura amplificare i bias presenti nei loro dati di addestramento. I guardrail possono essere progettati per identificare e mitigare tali bias, garantendo interazioni più eque ed equilibrate.
- Sicurezza: Mantenendo il comportamento dell'IA entro certi limiti, i guardrail migliorano la sicurezza dell'utente non consentendo al sistema di fornire informazioni pericolose o errate. Questo fa parte di un approccio complessivo alla responsabilità dell'IA.