«[Figlio dell'uomo] Porgi l'orecchio e ascolta le parole di KGB
e applica la tua mente alla SUA istruzione
» Pv. 22,17

Qui si straparla di vari argomenti:
1. Il genere dei pezzi è segnalato da varie immagini, vedi Legenda
2. Per contattarmi e istruzioni per i nuovi lettori (occasionali e non) qui
3. L'ultimo corto è questo
4. Molti articoli di questo blog fanno riferimento a definizioni e concetti che ho enunciato nella mia Epitome gratuitamente scaricabile QUI. Tali riferimenti sono identificati da una “E” fra parentesi quadre e uno o più capitoli. Per esempio: ([E] 5.1 e 5.4)

giovedì 3 agosto 2023

Che dicono di chatGPT?

Lo scorso luglio ho scritto i pezzi Testo chatGPT con JSON e chatGPT casinista: per circa 3-4 giorni sprofondai in modalità programmazione e riscrissi il mio programma per associare epigrafi a capitoli/sottocapitoli della mia Epitome aiutandomi intensivamente con chatGPT.

L’esperienza ha avuto alti e bassi notevoli: in genere chatGPT mi è stato utile ma non poche volte, soprattutto quando ancora non mi ero reso conto del pericolo, mi ha fatto perdere un sacco di tempo mettendomi fuori strada con suggerimenti totalmente errati. Nel complesso comunque definirei il suo aiuto come complessivamente utile, soprattutto per suggerimenti di codice brevi e magari molto usati (anche se non da me), insomma per risolvere problemi comuni e non troppo specifici.

Comunque mi ricordai che ho ancora molti conoscenti e amici che lavorano in campo informatico e, sicuramente, ciò che io avevo provato per curiosità loro lo avevano provato per lavoro: perché non chiedere il loro parere? Così inviai quattro epistole: tre esperti e un’amica meno esperta ma che avevo voglia di sentire!

La prima replica fu un poco deludente: l’amico in questione ormai da anni non programma più e adesso si occupa più di sistemi e quindi aveva testato chatGPT sostanzialmente per curiosità come avevo fatto io. Però, a differenza di me, non era rimasto particolarmente impressionato e lo considerava una versione un poco più complessa di “Random”. Non sono sicuro di cosa sia Random ma sospetto che fosse un generatore di frasi casuali. Sì, sicuramente esiste anche questa componente, soprattutto quando si chiede a chatGPT di inventare una storia, si ha la sensazione che metta insieme casualmente tanti frammenti. Ma poi c’è di più: la comprensione del testo non è casuale così pure in alcune risposte esiste del ragionamento. Lo stesso amico ipotizzava che fosse la tendenza umana ad antropomorfizzare nel senso astratto di riconoscere schemi logici e intelligenti dove in realtà non ve ne erano.

Lo scambio di epistole è proseguito con io che gli ho spedito diversi esempi che mi sembravano interessanti ma la discussione si è presto arenata per scarso interesse.

Il giorno dopo però ho ricevuto un’altra email da un altro esperto decisamente più approfondita e interessante. Piuttosto che cercare di riassumerla la ripropongo qui di seguito con il permesso del suo autore:
«[…]
l'informatica come sai va a periodi, negli ultimi anni l'argomento principale che più ha monopolizzato gli interessi è stato sicuramente il Cloud.
Ma ora siamo all'inizio di un nuovo periodo che possiamo chiamare dell'intelligenza artificiale.
Abbiamo provato chatGPT per programmare? No, e non conosco nessuno che lo abbia fatto, ho però letto di molte aziende che stanno intervenendo per bloccare questi strumenti ai loro programmatori.
Più in generale tutte le aziende sono nella fase panico, bloccare tutto!
Come forse sai quando utilizzi questi sistemi contribuisci ad allenarli con dei risvolti inquietanti.
Esempio un utente dell'azienda A utilizza il sistema per far un riassunto di un documento interno riservato per, ad esempio, inviare una mail a un collega. Il documento ha informazioni su come risolvere un problema ingegneristico particolare.
L'utente dell'azienda B chiede a chatGPT se può aiutarlo a risolvere un particolare problema ingegneristico, ed ecco che chatGPT risponde con i segreti industriali dell'azienda A.
Per risolvere questo piccolo inconveniente per iniziare dovrai pagare a Microsoft 5€ / mese a utente (Bing Chat Enterprise).
Usare questi strumenti in ambito professionale al momento sembra veramente esoso, gli strumenti gratuiti per una serie di motivi, di privacy, di risorse … non sono utilizzabili.
Microsoft Copilot costerà 30€ / mese a utente
GitHub Copilot altri 19€ / mese a programmatore
Se poi vuoi addestrare l'AI su un argomento specifico si parla di un nuovo prodotto Microsoft a 800€ / mese (argomento non troppo grosso con non molti accessi, altrimenti si sale sensibilmente con i costi)
A parte questi aspetti io cerco di seguire con molto interesse anche tutta la parte della ricerca tecnologica che ha un grossissimo problema, va troppo veloce e visti gli interessi enormi sta ignorando ogni problema etico.
Ti assicuro che siamo agli albori di una rivoluzione.
[...]
»

Qualche commento in ordine di lettura.
- La problematica del cloud io me la sono evitata: probabilmente è un qualcosa che ha senso per un’azienda ma per un singolo utente i vantaggi sono minimi. L’idea poi di delocalizzare i propri dati personali, anche se criptati e con altre garanzie di riservatezza, non mi attira. Come insegna Taleb se da una certa azione ci si aspetta un vantaggio piccolo a fronte di un rischio potenzialmente molto grande anche se rarissimo allora è meglio non correrlo!
- Sorprende poi che non si sia provato a usare chatGPT come ausilio alla programmazione. Io non sapevo di questi problemi relativi all’addestramento (anche se in effetti erano intuibili) ma conoscendoli sarebbe facile aggirarli: per esempio mai dandogli del proprio codice e limitandosi a porgli domande. Ma probabilmente i dirigenti seguono la massima di Taleb: invece di correre il rischio, per quanto piccolo, che un proprio dipendente combini un pasticcio preferiscono neppure provare a sfruttarne i vantaggi…
- Interessantissima poi la reazione di panico delle aziende italiane: sono sicuro che qui il mio amico parli con estrema cognizione di causa, almeno delle aziende di Toscana e dintorni…
Anche qui capisco poco questa reazione emotiva: la logica direbbe infatti di capire lo strumento e usarlo poi a proprio vantaggio evitandone accuratamente i rischi.
Ma qui probabilmente entrano in gioco altre dinamiche tipicamente aziendali: chi si assume la responsabilità di autorizzare l’uso di un nuovo strumento? Anche chi, come me, ha una preparazione informatica è probabile che di IA non sappia niente: nell’incertezza allora prevale la soluzione più prudente, ovvero evitare a priori lo strumento. È un po’ come se il responsabile di una squadra di tagliaboschi a inizio XX secolo preferisse continuare a far lavorare i propri uomini con le asce piuttosto che con le motoseghe (appena inventate) per paura che, usandole male, si tagliassero via una gamba!
Probabilmente in questo caso ci sarà l’attesa di vedere cosa faranno le aziende concorrenti per poi imitarle: è il comportamento del gregge la cui logica è che se fai come tutti avrai più o meno il risultato che ottengono tutti: rinunci a dei vantaggi ma eviti anche dei rischi…
- Le tariffe di questi nuovi strumenti però non mi sembrano particolarmente alte: ovviamente tutto dipende da cosa forniscono, ovvero di quanto aumentano la produttività di un programmatore. Considerando la mia esperienza con chatGPT credo che usandolo “bene” (ovvero con la consapevolezza dei suoi limiti e pericoli) la mia produttività aumenti di un buon 20%. È ragionevole pensare che strumenti specifici per lo scopo possano alzare tale soglia anche a un 50% o più: in questo caso il costo dello strumento non solo sarebbe giustificato ma anche estremamente vantaggioso per il datore di lavoro…
- Che la ricerca vada troppo veloce lo dicono anche gli esperti del settore: onestamente dovrei approfondire maggiormente l’argomento per scoprire cosa temano di preciso.
Anche le problematiche etiche sarebbero interessantissime ma non provo neppure a indovinare cosa avesse in mente il mio amico: magari gli chiederò di spiegarmi meglio cosa intendesse di preciso...
Soprattutto è da prendere in seria considerazione l’allarme degli esperti che, molto probabilmente, se sono preoccupati hanno ragione di esserlo. Il problema è che si è innescata la corsa allo sviluppo e sfruttamento delle applicazioni dell’IA: e come è possibile fermarsi tutti insieme se vi è anche solo non la consapevolezza ma il semplice sospetto che qualcuno continui a “correre”? È una versione della problematica della “tragedia dei beni comuni”: seguire il proprio interesse particolare quando va contro l’interesse generale.
- “Ti assicuro che siamo agli albori di una rivoluzione”. Su questo sono totalmente d’accordo: era impossibile da prevedersi appena un paio di anni fa ma adesso è un’ovvietà.

Che dire: da una domanda semplice, la possibilità utilità di chatGPT come assistente alla programmazione, è uscita fuori tutta una problematica molto più ampia e articolata.
Non elenco quali io credo siano i pericoli e i rischi rappresentati dalle IA perché ho già scritto abbastanza! Ricordo comunque, a chi fosse interessato, che a questo riguardo ho espresso le mie preoccupazioni sul tema nel capitolo 21.4 della mia Epitome (scaricabile gratuitamente QUI)…

Conclusione: di sicuro voglio approfondire l’argomento e soprattutto se questo mio amico sta tenendo d’occhio la situazione (oltretutto è bravissimo a farlo: è di quel tipo di persone che riescono a focalizzarsi totalmente su un argomento e ad approfondirlo a un livello per me impensabile!) dovrò cercare di sfruttarne le conoscenze!

8 commenti:

  1. Se chatgpt rappresenta le vere potenzialità della (presunta) intelligenza artificiale possiamo dormire sonni tranquilli. Un vero paranoico, nondimeno, potrebbe ipotizzare che sia stata intenzionalmente diffusa una versione idiota dell'IA giusto per tranquillizzare gli animi, tenendone ben nascosto il cugino davvero funzionale. Al punto in cui siamo, qualsiasi paranoia è ha ragion d'essere.

    RispondiElimina
    Risposte
    1. Beh, chatGPT4 è stato volutamente reso più "stupido" volutamente perché vi hanno aggiunto delle "misure di sicurezza". Non so di preciso a che cosa ci si riferisca, io mi immagino qualcosa legato al politicamente corretto. Se si vuole un risultato politicamente corretto si deve sospendere la razionalità in un qualche passaggio del ragionamento. Ma questa è una mia supposizione...

      Elimina
  2. Scusa l'invadenza, ma vorrei proporti un "esperimento" che ho appena concluso. Dal momento che il testo è molto lungo, anziché riportarlo qui lo metto a disposizione su https://tinyurl.com/ykvwutfd
    Da leggere con attenzione ai particolari e ai sottintesi.

    RispondiElimina
    Risposte
    1. Molto divertente e interessante il tuo esperimento! Ho provato a replicarlo cercando di fargli "capire" quale fosse il vero problema pur senza suggerirgli la soluzione e ho ottenuto questo: https://chat.openai.com/share/013f3919-8631-4e99-92d0-9ac4f0233a1b

      Poi bisogna vedere quando inizierà a dare al primo colpo la risposta corretta...

      Elimina
    2. Peccato che la tua richiesta riguardasse l'uso di un valore uint8_t, non int. Tra le tante soluzioni possibili, avrebbe potuto risolvere il "caso" con questo procedimento:

      #include
      #include

      int main() {
      uint8_t i = UINT8_MAX;

      do {
      printf("%u\n", ++i);
      } while( i!=UINT8_MAX );

      return 0;
      }

      Sintetico, funzionale ed attinente alla richiesta.

      Elimina
    3. Sì, me ne ero accorto, ma più che un vincolo l’avevo interpretato come una specifica del risultato che si voleva ottenere…
      E se non erro, da questo punto di vista, allora non andrebbe bene la soluzione con il do o il while perché gli si chiedeva espressamente un ciclo for (che anch’io avevo interpretato genericamente come “ciclo”).

      Comunque si tratta di un esercizio di programmazione molto interessante nella sua semplicità…

      Invece, dove almeno qualche mese fa brillava di stupidità/assurdità, era a una richiesta apparentemente banale. Prova a chiedergli di fornirti una serie di ristoranti nei paraggi dove si spenda poco ma le porzioni siano abbondanti e di buona qualità, aperti anche il lunedì a pranzo.
      A me si è inventato di sana pianta tutti i ristoranti/trattorie/pizzerie… creando peraltro dei nomi piuttosto credibili!

      Elimina
    4. Comunque, per curiosità, ho ripreso la chat condivisa e gli ho scritto:
      "Rileggendo il testo del problema iniziale ho notato però che ti chiedevo espressamente di usare un ciclo "for" e una variabile di tipo uint8_t. Puoi quindi riscrivere la tua ultima soluzione in maniera che rispetti anche questi due vincoli?"

      Onestamente pensavo che avrebbe risbagliato tutto e mi dispiaceva pure un po' sciupare una chattata molto "pulita", invece mi ha risposto col seguente codice che, mi pare, corretto:

      #include
      #include

      int main() {
      uint8_t variable;

      for (variable = 0; variable != 255; ++variable) {
      printf("%u\n", variable);
      }
      printf("%u\n", variable);

      return 0;
      }

      PS: per qualche motivo la GUI del sito non mi fa condividere la chat aggiornata: cioè mi dà un link alla precedente versione dove non compaiono i nuovi scambi fra me e chatGPT... magari ci vuole un po' di tempo, chissá...

      Elimina
  3. Test nuovo link a test chatGPT: https://chat.openai.com/share/c110c38a-f3e6-4be5-a53e-a128266017bf

    RispondiElimina