💾 Archived View for gemini.abiscuola.com › gemlog › di-llm-nel-mio-lavoro.gmi captured on 2024-09-29 at 00:33:48. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

Di LLM nel mio lavoro

Il cervello di domani.

Ho gia' espresso opinioni, in passato, riguardo quello che, credo, succedera' quando gli LLM diverranno davvero mainstream.

Dato che lavoro per un'azienda di consulenza tecnologica, parte del mio lavoro consiste anche nel valutare le tecnologie figlie dell'hype da un punto di vista squisitamente tecnico. Devo essere in grado di capire, in parole povere, se grazie agli LLM la mia azienda potra' continuare ad essere lautamente pagata per vendere, a clienti vogliosi di separarsi dai propri soldi, i miei servigi.

Essendo anche che, da questo, dipendera' in parte il mio continuare a ricevere un buon salario, ho deciso che il momento di affrontare alcuni corsi per capire quanto, in futuro, gli LLM potranno essere utili nel mio lavoro e' arrivato. La conseguenza dell'aver approfondito la cosa nel mio ambito professionale, mi ha portato a farmi parecchie domande. Cerchero' di andare con ordine.

Partiamo da un presupposto: io lavoro, perlopiu', come "Systems Engineer". Dico "perlopiu'", perche' avendo anche esperienza in architettura di sistemi, sono stato sovente impiegato come "Architect". Facendola semplice, mi occupo sia della progettazione di architetture IT piu' o meno complesse, che anche di fare automazione di processo quando richiesto (o automazione in generale). Essendo io anche un programmatore, non e' strano che i miei "consigli" vengano richiesti anche in quell'ambito. Parliamo quindi di una figura esperta, con esperienza di livello "orizzontale", con una certa capacita' di comprendere praticamente tutte le aree di un sistema informativo (in modo piu' o meno approfondito).

Intanto. Che cosa mi e' piaciuto, dello sfruttare un LLM per il mio lavoro? Per prima cosa, l'interfaccia naturale. A mio modo di vedere, il fatto di poter utilizzare agevolmente il linguaggio naturale. Essendo un LLM in grado di girare intorno anche a molti strafalcioni, e', a mio modo di vedere, un passo in avanti enorme, rispetto a qualsiasi altra interfaccia piu' o meno interattiva. Aggiungiamoci anche che un LLM sa scrivere molto, molto meglio, di quasi tutti i rottami umani che chiamiamo "colleghi" e il cambio di paradigma e' evidente.

Non dover elemosinare lettere da un programmatore scorbutico, da gente che tenta inutilmente di proteggere il proprio orticello o da qualsiasi altro elemento piu' o meno umano il cui scopo principale e' far salire il mio livello di bile, vale quasi gia' da solo la spesa per addestrare un modello in modo decente.

Un LLM e' veloce, efficente, non si lamenta, non mi insulta, non lesina spiegazioni, scrive in modo ben strutturato e non caga sul tappeto. Questo e' un win-win, rispetto all'aver a che fare con umani frustrati che vorrebbero stare ovunque tranne che davanti ad un computer.

Mi e' piaciuto sfruttare un LLM come un assistente, dove io ero la mente pensante che svolgeva il lavoro, mentre il modello faceva "review". L'aumento di produttivita', in questo caso, non e' stato dato tanto dal fatto che io abbia risparmiato tempo, ma dal fatto che, per quasi tutto, non ho avuto bisogno di sprecare il tempo di qualcun altro. Se in futuro un LLM, magari un filo specialistico, sara' in grado di sostituire la fase di "code review" data dal dover caricare di lavoro altri esseri umani, a parte casi eccezionali, sara' gia' un enorme risparmio di risorse. Essendo che il mio lavoro non e' scrivere codice tutto il giorno, tutti i giorni, questo modo di usare un LLM e' parso essere il piu' adatto a me.

In alcune demo, programmatori che io definisco "disposable", si sono fatti venire le mutande croccanti di fronte al fatto che una certa IA, era in grado di:

Tutti emozionati, esclamavano che "il nostro lavoro cambiera'. Noi agiremo come supervisori, dovendo solo verificare il lavoro del modello". Qui e' sorta spontanea la mia domanda: sei un programmatore java, che passa le giornate a scrivere REST API con Hibernate e Spring. Se un LLM sara' in grado di fare il tuo lavoro (generare API, con tanto di unit test), per quale motivo un cliente dovrebbe continuare a pagare un rate premium per avere te come contractor, invece di assumere qualche junior che, nel giro di poco, sara' in grado di fare lo stesso lavoro di supervisione? Dove stara' il valore aggiunto che tu dovresti fornire, in cambio di quei sonanti quattrini?

Il tuo lavoro, potenzialmente, potrebbe essere gia' in parte rimpiazzato da una banale code generator. A cosa servirai tu, a quel punto? Quale sara' la tua utilita'? Quale esperienza porteresti sul campo, rispetto a qualcuno meno esperto, quando quest'ultimo potra' fare qualche banale domanda al suo LLM riguardo il lavoro che ha generato? Attualmente, non siamo ancora a questo punto. La qualita' del codice che un LLM genera e' "meh". Tuttavia, la smania di questi programmatori di non voler piu' essere al centro del loro lavoro, mi ha lasciato un filo perplesso. Potrei benissimo sbagliare e questa gente continuera' ad essere altrettanto importante come ora per motivi che mi sfuggono (o che non erano prevedibili), ma tant'e'. Inoltre, conoscendo come si comportano la gran parte di questi personaggi, ho idea che smetterebbero di "imparare", dato che il know-how non lo costruirebbero loro, con il proprio cervello, ma verrebbe costruito da un LLM, sul quale sta gente farebbe offloading delle proprie capacita' cognitive. Sicuri sicuri di voler intraprendere questa strada?

Tornando al punto precedente. Un LLM farebbe parte continuamente della mia giornata lavorativa? Ho avuto l'impressione che no, non lo sfrutterei continuamente ed il motivo e' presto detto.

Dato che il mio lavoro non e' scrivere codice il piu' velocemente possibile, ma e', per la maggior parte, fare automazione, userei un LLM per assistermi in un compito nuovo, probabilmente. Dato pero' che l'automazione e' quello che e', il risultato finale si trasformerebbe immediatamente in un template oppure, come spesso accade, andrei a ravanare nella mia "bin" alla ricerca di qualche script o programma, che gia' fa qualcosa di simile a quello che mi serve in un dato momento, modificandolo di conseguenza. Se siete gente di esperienza, saprete gia' che non si buttano mai gli script, oppure i programmi, anche se dovevano svolgere un solo compito specifico. Non saprete mai quando potranno tornarvi utili, in un modo o nell'altro.

Certo, potrei chiedere al modello stesso di fare le modifiche al posto mio. Tuttavia, perderei forse piu' tempo a capire che cosa il modello ha fatto, invece che concludere il lavoro da me, sottoponendolo al modello per una piccola review.

Le altre cose, in ordine sparso: le aziende, almeno quelle serie, finche' la materia legale riguardo al copyright dei dataset dei vari LLM "SaaS" (OpenAI & Co.) non sara' completamente chiarita, non permetteranno mai di poter usare un LLM commerciale per lavorare sulle loro codebase interne. Il rischio legale e' ancora troppo grosso e infatti, quasi tutti i nostri clienti hanno approntato laboratori appositi per fare training di LLM internamente (a costi stratosferici, si intende).

Altro punto, che rende un LLM meno utile: OpenAI e gli altri, usano dataset vetusti (ChatGPT 4, per dire, si ferma a Settembre 2021). Potrebbe essere un problema, se si volesse usare un LLM commerciale. Magari non conosce le ultime best practices rispetto al linguaggio/framework/design che volete sfruttare e in ogni caso, non vi dovreste fidare delle informazioni che vi fornisce. Molta gente si fara' del male, per questo.

Gli LLM attuali, hanno modelli di training statici. Non sono in grado di assimilare nuovi contenuti nel modello corrente. Il loro training va rifatto dall'inizio. Con la quantita' di dati che le aziende vorrebbero dargli in pasto e con la quantita' di dati che generano ogni giorno (basti pensare ad una grande banca), questo modello non potra' scalare. Quindi, non andranno bene per "interrogare" basi di dati interne di una grande azienda. Rifare il training del vostro modello spesso, diventerebbe un costo insostenibile e brucerebbe qualsiasi guadagno in termini di produttivita' ottenuto per i vostri dipendenti. Quando i modelli potranno davvero apprendere da dati in cambiamento continuo e da nuove sorgenti di dati, allora potremo parlarne. Quale sarebbe il costo in termini computazionali, non lo posso dire (non e' la mia area di expertise).

La mia conclusione? E' presto, seguiro' l'evoluzione di questo mondo come ho fatto con tutte le altre tecnologie. Dovro' sparare qualche buzzword per portare a casa la pagnotta, purtroppo, ma attendero' che la tecnologia diventi davvero utile, per un qualsiasi compito nella mia vita di ogni giorno (anche solo il ricercare informazioni in modo un filo utile). Sicuramente, non vorro' fare la fine di programmatori "disposable", dove ad un certo punto, si produrra' software di plastica, tanto tutte le aziende di consulenza diventeranno uguali, se seguiranno l'hype come ho visto fare.

Dal canto mio? Dicono che COBOL paghi bene, di questi tempi. ;-)