Immagine AI

Andrew Ng ha approfondito la sua AI Engineering Skills Map individuando sei aree tecniche necessarie per costruire e distribuire applicazioni di intelligenza artificiale affidabili: fondamenti degli LLM, grounding dei modelli tramite dati, sviluppo di sistemi agentici, sviluppo guidato dalla valutazione, gestione dei sistemi in produzione e fondamenti di machine learning. La mappa deriva dall’analisi di oltre 10.000 offerte di lavoro, decine di interviste strutturate con esperti di AI, responsabili delle assunzioni e recruiter, oltre a sondaggi e altre fonti di dati. Il punto di partenza è la differenza strutturale tra il software tradizionale e le applicazioni basate sull’intelligenza artificiale: mentre un programma convenzionale tende a produrre risultati prevedibili a parità di input, un LLM o un altro modello di machine learning può restituire output differenti nelle stesse condizioni, rendendo necessario un processo di sviluppo molto più iterativo.

Per Ng, costruire sistemi AI significa quindi lavorare con componenti intrinsecamente meno prevedibili e riuscire comunque a ottenere un’applicazione complessivamente affidabile. Lo sviluppo richiede cicli continui nei quali il sistema viene costruito, testato, osservato e modificato sulla base dei risultati intermedi, invece di seguire esclusivamente una sequenza deterministica di implementazione. Le competenze di AI engineering non riguardano quindi soltanto l’utilizzo dei modelli, ma anche la capacità di selezionare architetture, dati, strumenti di valutazione e infrastrutture in grado di contenere l’incertezza dell’output.

La prima area riguarda i fondamenti degli LLM. Un ingegnere deve comprendere tokenizzazione, generazione dell’output, finestre di contesto, knowledge cutoff, impostazioni di campionamento, modalità di reasoning e chiamate agli strumenti, oltre a saper scegliere il modello più adatto a un determinato compito o combinare più modelli all’interno dello stesso sistema. A seconda delle esigenze, devono inoltre essere valutate tecniche come fine-tuning e self-hosting, evitando di considerare il singolo modello come un componente intercambiabile senza conseguenze sull’architettura complessiva.

La seconda competenza riguarda il grounding dei modelli tramite dati. La Retrieval-Augmented Generation rappresenta soltanto una delle possibilità: in funzione della struttura delle informazioni possono essere utilizzati sistemi di ricerca differenti, knowledge graph o semantic layer per dati strutturati. Diventa quindi necessario costruire pipeline capaci di trasformare documenti, PDF, pagine HTML, immagini e altre sorgenti in formati utilizzabili dal sistema AI, scegliendo modalità di retrieval adeguate alle caratteristiche dei dati invece di applicare indiscriminatamente la sola ricerca vettoriale.

Un’altra area riguarda la progettazione dei sistemi agentici. Le architetture possono andare da workflow nei quali le chiamate agli LLM avvengono secondo una sequenza prestabilita fino ad agenti nei quali il modello decide autonomamente quale azione eseguire successivamente. In questo contesto diventano rilevanti tool calling, Model Context Protocol, interfacce a riga di comando, ambienti sandbox, gestione della memoria, mantenimento del contesto su periodi più lunghi e coordinamento di sistemi multi-agente. A queste capacità devono essere affiancati meccanismi di sicurezza e governance, perché un agente capace di accedere a strumenti e sistemi esterni introduce una superficie operativa più ampia rispetto a una normale interazione con un chatbot.

Ng attribuisce particolare importanza allo sviluppo guidato dalla valutazione. Invece di effettuare test soltanto alla conclusione del processo, gli ingegneri devono analizzare continuamente output, log ed errori per identificare cosa misurare e dove intervenire. Le valutazioni possono essere deterministiche e basate sul codice, affidate a un altro LLM utilizzato come giudice oppure effettuate da persone, con combinazioni differenti in funzione del tipo di risultato da controllare. La capacità di costruire questi cicli di valutazione e analisi degli errori diventa uno degli elementi che distinguono un prototipo funzionante da un sistema AI sufficientemente affidabile per essere utilizzato in produzione.

La gestione in produzione introduce ulteriori requisiti. Oltre all’incertezza dei risultati, è necessario considerare costi, latenza, monitoraggio e sicurezza, osservando il comportamento effettivo dell’applicazione dopo il deployment. Il sistema deve essere in grado di individuare degrado delle prestazioni, comportamenti anomali, problemi di sicurezza e tentativi di prompt injection. All’aumentare degli utenti diventano inoltre importanti l’ottimizzazione dei costi e dei tempi di risposta, che può essere ottenuta attraverso la selezione di modelli differenti, distillazione, fine-tuning e semplificazione dei workflow agentici.

L’ultima area riguarda i fondamenti del machine learning e del deep learning. Anche nello sviluppo di applicazioni basate su modelli già disponibili rimane necessario comprendere concetti come apprendimento supervisionato e reinforcement learning e saper valutare compromessi tra accuratezza, velocità di addestramento, velocità di inferenza e altre caratteristiche operative. Ng sottolinea inoltre che queste competenze non sostituiscono quelle tradizionali di software engineering: la capacità di costruire sistemi AI deve essere affiancata alle normali pratiche di progettazione e sviluppo del software, perché l’obiettivo rimane trasformare componenti probabilistiche e difficili da prevedere in applicazioni utilizzabili e affidabili.

Questo articolo è stato redatto con il supporto di strumenti di intelligenza artificiale (AI)

Di Fantasy