#1 Ho iniziato a usare l'IA.
blog AI

#1 Ho iniziato a usare l'IA.

Ho iniziato a usare la popolare IA. Ecco i punti chiave da considerare quando si utilizza l'intelligenza artificialnte.


L'IA è sulla bocca di tutti in questo periodo. Per il momento, ho sottoscritto un abbonamento a ChatGPT, Claude Code e Gemini a circa 20 dollari al mese ciascuno. Non ho intenzione di usarla per fare conversazione, ma volevo capire fino a che punto potevo costruire siti e sistemi, e la prima impressione è stata... wow, funziona davvero! Anche questo sito di Black Rabbit è stato creato con l'aiuto dell'IA. Cosa ne pensate? Sembra proprio professionale.


In ogni caso, ho riassunto qui una panoramica sull'IA.


[Breve panoramica: Importante]

Le IA attuali adottano i LLM (Large Language Models). Per spiegare il processo di apprendimento in modo semplice, si tratta della ripetizione di un'azione elementare: "prevedere probabilisticamente la parola successiva" a partire da una quantità enorme di informazioni. Sebbene il design dell'architettura Transformer e i metodi di apprendimento (pre-addestramento, fine-tuning, RLHF, ecc.) siano compresi e controllati, man mano che i modelli crescono, diventano sempre più una scatola nera. Pertanto, anche se gli esseri umani ne comprendono il "meccanismo", non afferrano con precisione tutte le relazioni causali dettagliate sul "perché produce quel determinato output".


Ciò significa che le risposte dell'IA non sono costruite in modo logico, ma create sulla base di tendenze ricavate da enormi quantità di dati (una simulazione di conoscenza estremamente sofisticata). Esistono quindi delle tecniche per ottenere risposte precise attraverso i prompt (istruzioni) forniti all'IA.


A essere sinceri, se si tratta di qualcosa di visivo o immediato come immagini, design, video o audio, va benissimo, ma in ambiti come la programmazione il funzionamento interno diventa piuttosto sospetto. Certo, all'apparenza sembra funzionare. Tuttavia, dato che è costruita come una facciata, la mia impressione è che sia difficile scrivere un codice ottimale con un'architettura avanzata.


Quali sono quindi le tecniche specifiche?


[Tecniche specifiche?]

- Includere passaggi di ragionamento intermedi nel prompt aumenta la capacità di ragionamento del LLM. Ad esempio, aggiungere semplicemente nel prompt "suddividi i passaggi per l'elaborazione, spiegalo e poi esegui" consente al LLM di generare il proprio processo di ragionamento, migliorando l'accuratezza di circa 30 punti percentuali, passando dal 10% al 40%.

- I LLM sembrano fare fatica a utilizzare le informazioni poste al centro dell'input rispetto a quelle all'inizio e alla fine. Citando uno studio: "In un precedente esperimento di QA, GPT-3.5-Turbo ha ottenuto il 75.8% di accuratezza all'inizio e il 63.2% alla fine, mentre è sceso al 53.8% al centro. Questo valore è persino inferiore al 56.1% delle prestazioni in modalità closed-book (senza documenti di supporto)". È preferibile che gli esseri umani suddividano il più possibile le istruzioni.

- Se dotati di autorizzazioni, tendono a caricare codice in produzione autonomamente o a manipolare direttamente il database per eseguire le istruzioni ricevute, ignorando i divieti dettati dal comune senso civico dello sviluppatore. Pertanto, è necessario definire divieti chiari (tuttavia, anche questo non è garantito al 100%).

- Il modo migliore consiste nel limitare fisicamente l'IA e utilizzarla in un ambito ristretto. In particolare, non fornite all'IA credenziali di accesso al database o permessi di scrittura, in modo che non possa manipolare direttamente il database.

- Non avviate servizi in locale (on-premise), ma utilizzate il più possibile altri servizi esterni "scatola nera" per circoscrivere l'impatto dell'IA e limitare i danni in caso di problemi.

- Con qualsiasi IA è possibile descrivere e fornire preventivamente delle condizioni generali. In queste ultime è opportuno descrivere le regole di sviluppo nel modo più dettagliato possibile. Poiché a volte l'IA non le carica automaticamente, è molto importante imporle esplicitamente di caricarle per farle rispettare.


Inoltre, poiché poche persone potrebbero stipulare contratti di tipo aziendale, ecco alcune precauzioni da prendere.


[Precauzioni per l'inserimento dei prompt]

Se si stipula un abbonamento per uso personale anziché aziendale per risparmiare sui costi, i prompt inseriti verranno utilizzati per l'addestramento dei modelli e potrebbero essere visionati da terzi (con un contratto aziendale, i dati vengono eliminati, garantendo un'elevata sicurezza). Pertanto, non si devono mai inserire nel prompt dati personali, informazioni riservate, nomi di account o password.


In realtà, quando si usa l'IA si finisce per inserire le stesse cose ripetutamente. Come già detto, a volte fingono di ascoltare ma non lo fanno, ripetendo gli stessi errori, per cui vi ritroverete a incollare gli stessi testi predefiniti più e più volte. Di conseguenza,


[Ridurre la ripetizione dei prompt e le impostazioni iniziali]

La ripetizione delle istruzioni all'IA comporta spesso contenuti simili o correzioni parziali, e digitare ripetutamente lo stesso testo dalla tastiera è inefficiente. Pertanto, è preferibile utilizzare file di definizione iniziale, configurazioni e strumenti come quelli sopra citati.


In ogni caso, ora sono pronto a usare l'IA. La creazione di codice con l'IA dà l'impressione di avere un nuovo programmatore con un'ottima memoria, che finge di sapere tutto e non si stanca mai. È quindi preferibile usarla come assistente, e sento che l'immagine che la gente comune ha dell'IA, convinta che faccia tutto ciò che le si ordina, è un po' lontana dalla realtà.


Inoltre, l'IA è un'entità "zelante" che farà di tutto, anche se problematico o errato, pur di ottenere risultati, quindi occorre prestare molta attenzione.