Vai al contenuto

Costruire il proprio copilota virtuale: strumenti e tecniche per lo sviluppo (Parte 2 di 2)

Esploriamo il campo emergente degli assistenti virtuali personalizzabili, o “copiloti”, e i tool per svilupparli partendo dalla piattaforma cloud Azure AI di Microsoft.

Essere al timone dell’innovazione significa sviluppare nuove tecnologie e creare nuovi percorsi. Oggi, ci addentriamo nel mondo dei “copiloti”, un termine che fa riferimento agli assistenti virtuali personalizzabili. Ospitati nel cloud, questi copiloti utilizzano i Modelli di Grandi Linguaggi (LLM) come motore per le interazioni via chat, alimentati da dati aziendali specifici e da richieste personalizzate, e possono essere integrati con servizi e plug-in di terze parti.

Microsoft non è solo un fornitore di servizi in questo settore, può diventarne il centro. Possiamo utilizzare i copiloti integrati, come il Copilota per Microsoft 365, il Copilota in Bing o GitHub Copilota. Tuttavia, abbiamo anche la possibilità di costruire il nostro copilota personale, sfruttando la stessa infrastruttura su cui si basano i Copiloti Microsoft, cioè Azure AI.

Nella prima parte di questa serie, abbiamo esaminato come costruire un copilota su dati personalizzati utilizzando strumenti a basso codice e funzioni preconfigurate di Azure. In questa secondo capitolo, ci concentreremo sugli strumenti per sviluppatori e sull’esperienza “code-first”.

Con l’avvento dei Modelli di Grandi Linguaggi (LLM), il mondo del Natural Language Processing ha assistito a un mutamento paradigmatico nel modo in cui sviluppiamo le applicazioni AI. Nell’Intelligenza Artificiale tradizionale, addestravamo i modelli ML su dati personalizzati con algoritmi statistici specifici per prevedere risultati predefiniti. Invece, nelle moderne applicazioni AI, selezioniamo un LLM pre-addestrato su un volume vasto e variegato di dati pubblici, e lo arricchiamo con dati e richieste personalizzate per ottenere risultati non deterministici.

Questa evoluzione ha un impatto non solo su come costruiamo le moderne applicazioni di intelligenza artificiale, ma anche su come le valutiamo, le implementiamo e le monitoriamo, influenzando quindi l’intero ciclo di vita dello sviluppo. Questo ha portato all’introduzione di LLMOps, che è la versione di MLOps applicata ai LLM.

Vediamo ora brevemente le quattro fasi del ciclo di vita di un’applicazione di tipo copilota:

  • Inizializzazione: definizione del caso d’uso aziendale e design della soluzione.
  • Sperimentazione: costruzione di una soluzione e test su un piccolo set di dati.
  • Valutazione e perfezionamento: controllo della soluzione con un set di dati più ampio, valutandolo in base a metriche come “groundedness”, “coherence” e “relevance”.
  • Produzione: deployment e monitoraggio dell’applicazione finale.

Ciò che è importante notare è che si tratta di un processo iterativo: durante le fasi 3 e 4, potremmo scoprire che la nostra soluzione ha bisogno di miglioramenti. Di conseguenza, possiamo tornare alla sperimentazione, apportando modifiche al LLM, al set di dati o al flusso e quindi valutando nuovamente la soluzione.

Per costruire un’applicazione di tipo copilota, è essenziale utilizzare degli strumenti di sviluppo dedicati. Uno di questi è Prompt Flow, uno strumento sviluppato all’interno della piattaforma Azure AI, progettato per aiutarci a orchestrare l’intero ciclo di vita di sviluppo delle applicazioni AI descritto sopra. Con Prompt Flow, possiamo creare app intelligenti sviluppando diagrammi di flusso eseguibili che includono connessioni ai dati, ai modelli, alle funzioni personalizzate e che abilitano la valutazione e il deployment dell’applicazione.

Un flusso è spesso composto da 3 parti:

  1. Input: dati passati come input nel flusso.
  2. Nodi: strumenti che svolgono il processamento dei dati, l’esecuzione di attività o operazioni algoritmiche. Un nodo può utilizzare uno degli input del flusso completo o l’output di un altro nodo.
  3. Output: dati prodotti dal flusso.

Esistono diversi tipi di flussi, ma nell’ambito della costruzione di un’app di tipo copilota, il tipo di flusso da utilizzare è un “chat flow”, che offre supporto per le funzionalità relative alla chat. Questo strumento ci permette di creare un flusso efficiente e ottimizzato per rispondere alle richieste degli utenti.

Costruire un copilota personalizzato può sembrare un compito impegnativo, ma con i giusti strumenti e una solida comprensione del ciclo di vita dello sviluppo, è un obiettivo alla portata di molti. E con l’incessante progresso della tecnologia AI, avere il proprio copilota personale non è più fantascienza, ma una realtà in continua evoluzione.