Lumea este acum în zorii unei noi ere, scrie lectorul universitar de la Universitatea Politehnica Timișoara, Teodor Petrița. Acesta îl trece pe profesorul român, avid după cunoaștere și mereu updatat, prin revoluția inteligenței artificiale, pe care o cuprinde pe înțelesul cât mai multora în cele 30 de minute de text care urmează.
„Pentru prima dată inteligența artificială pare că își merită numele: a apărut ceva (sau cineva) care, deși arată ca un calculator care rulează un model matematic, răspunde ca un om. Unul inteligent și cu lecturile la zi, dar care (încă) poate fi scos din priză. La propriu.
Primul milion
E greu de crezut că nu ați auzit despre noul hype, ChatGPT. A beneficiat de multă hărmălaie media și a avut o ascensiune fulminantă (o adaptare în română a locuțiunii took the world by storm). Pe cifre, asta înseamnă că a atins milionul de utilizatori în 5 zile – în data de 12 septembrie 2022. Prin comparație, Instagram a ajuns în același punct în 75 de zile de la lansare, Facebook în 300, Twitter în peste 700. La 40 de zile de la lansare, erau 10 milioane de utilizatori înregistrați și multe blocări ale serviciului cauzate de supraîncărcare. Cândva în ianuarie 2023, a ajuns la 100 de milioane. Ascensiunea rapidă a fenomenului a stârnit și primele îngrijorări, al căror spectru se întinde de la pierderea locurilor de muncă până la profeții ale apocalipsei AI: toate acestea merită o discuție.
You will find more infographics at StatistaLa adresa web chat.openai.com, după o înregistrare rapidă cu o adresă de e-mail, poți adresa întrebări despre orice, scriind fraze în limbaj conversațional și primești răspunsuri la obiect, articulate, documentate și inteligente, care nu sunt copiate de undeva, ci sintetizate de un calculator pe baza unor algoritmi. Cât de inteligente? Dacă nu ești avizat, ai paria că primești răspunsurile de la o persoană reală, expert în problemă.
Cum s-a ajuns aici? De mai bine de 20 de ani, inteligența artificială (AI) a fost terenul de joacă al unor tocilari neînțeleși care căutau scurtături pentru a rezolva probleme dificile, probleme care scăpau metodelor matematice analitice sau erau prea complexe și consumatoare de resurse. Ca urmare, prima jucărie s-a numit rețea neuronală și putea fi “învățată” să facă diverse lucruri.
La primele cursuri de programare, s-a auzit de multe ori afirmația „calculatorul este idiotul perfect”. După șocul inițial, vine explicația: calculatorul face doar „ce i se spune” să facă, nimic altceva. Adică urmează o listă de instrucțiuni, incredibil de complicată și de lungă, dar o listă de instrucțiuni. Aparent, apariția AI a zdruncinat această „perfecțiune”: rezultatele nu mai sunt predictibile.
Curs rapid de AI
Un exemplu simplu despre cum automatizarea eludează matematica este bucla for: dacă ai nevoie să știi suma, produsul sau suma pătratelor primelor 1.000 de numere și nu știi formula sau ți se pare greu de aplicat, pui un calculator să facă „munca de jos“ și să adune (sau înmulțească, după caz) numerele de care ai nevoie, chestiune care se rezolvă cu o buclă for (pentru): pentru numerele de la 1 la 1.000, fă adunarea și dă-mi rezultatul la sfârșit. Aici bucla înlocuiește un număr mare de calcule cunoscute și rezolvă o problemă de matematică prin forță (de calcul) brută.
Rețelele neuronale sunt modele matematice care încearcă imitarea unor modele necunoscute sau cvasiimposibil de exprimat analitic, pornind de la un număr de corespondențe între intrare și ieșire. De exemplu, dacă vrem să recunoaștem un câine într-o fotografie, va trebui să furnizăm la „intrarea“ rețelei un set de fotografii, iar la ieșirea rețelei un verdict: avem sau nu avem un câine în poză, sau o probabilitate: cu probabilitate de 90% în poză este un câine. Ca urmare, întrucât rețeaua va trebui să „analizeze“ fotografia de la intrare, numărul de intrări în rețea va trebui să fie egal cu numărul de pixeli ai fotografiilor din eșantionul cu fotografii cu câini. Va trebui să avem și fotografii în care nu este reprezentat un câine, iar toate aceste fotografii cu care vom „antrena“ rețeaua se numesc mulțime de antrenament.
Bucla for (sau while – do sau repeat – until) parcurge aici mulțimea de antrenament for de câte ori e nevoie pentru ca la sfârșit precizia cu care „ghicește“ rețeaua conținutul pozei să fie rezonabilă, iar după fiecare parcurgere ajustează ponderile algoritmului matematic în așa fel încât precizia să se îmbunătățească. Metoda e un pic mai veche de atât, algoritmul „încercare și eroare“ sau „mecanismul de feedback“ stă practic la baza vieții pe Terra. După antrenare, un număr de fotografii puse deoparte vor servi ca mulțime de verificare, adică vom testa cum se comportă rețeaua la stimuli noi, care nu au fost aplicați anterior. Putem obține o precizie de 100% pe mulțimea de antrenament, dar de regulă asta nu e o garanție că rețeaua va răspunde corect la stimuli; din contră, de regulă precizia absolută duce la o rețea supraantrenată, care va rata deplorabil în afara mulțimii de antrenament.
Concluzia necesară de aici este că AI este ca și omul, supusă greșelii: rezultatele vor avea întotdeauna un grad de imprecizie, chestiune de care trebuie să ținem seama atunci când apelăm la astfel de mijloace.
Rețele neuronale
Elementul constitutiv al rețelei neuronale este, evident, neuronul, care are un număr de intrări pe care le adună ponderat (adică le ia în seamă mai mult sau mai puțin) și le trece printr-o funcție de activare, care poate fi o funcție prag, mai mult sau mai puțin abruptă: dacă suma este mai mare decât pragul, ieșirea este „pe 1”.
Neuronii pot fi grupați pe mai multe straturi – cele din adâncime dau facilitatea de „deep learning“, iar antrenarea rețelelor înseamnă găsirea ponderilor care aproximează optim pe mulțimea de antrenament răspunsul așteptat. Ca urmare, „cunoștințele“ unui model AI sunt încapsulate în acei coeficienți de ponderare a sinapselor și nu sunt interpretabile direct prin simpla vizualizare. O rețea neuronală este deci, în sens larg, un tabel mare cu numere – sau parametri, dacă vreți, și un algoritm de programare care ia niște date de intrare – care pot fi imagini, text, valori numerice cu semnificație pentru noi sau o combinație a acestora și scot la ieșire imagini, text, valori numerice sau verdicte, folosind acele numere.
GPT = Generative Pre-trained Transformer
Evoluția acestor modele a însemnat modificări ale topologiei rețelelor, ale metodelor de antrenare și de validare, ajungând la structuri și modele destul de diferite față de modelul inițial de rețea neuronală, care încerca să imite un conglomerat uniform de celule din creierul uman. GPT înseamnă Generative Pre-trained Transformer, ceea ce desemnează și modelul utilizat. Rețelele neuronale de tip transformator sunt specializate în procesarea textelor, introduc conceptul de atenție în AI și ierarhizează topica.
Primul model de transformator a fost creat de un colectiv de la Google, iar prima lucrare publicată de acesta poate fi consultată aici. Actualmente se găsesc online câteva zeci de modele de rețele neuronale transformator, niciuna de complexitatea ChatGPT, unele fiind chiar modele reduse ale acestuia.
Antrenarea ChatGPT
În funcție de complexitatea sarcinii, antrenamentul poate dura extrem de mult și poate solicita putere de calcul foarte mare; antrenarea ChatGPT a durat luni de zile pe supercalculatoare. După ce algoritmul și setul de coeficienți au fost definitivate, folosirea este mult mai rapidă: un model AI „învățat“ dă răspunsurile repede. Pentru comparație, învățarea poate însemna parcurgerea algoritmului și evaluarea calității rezultatului obținut și de miliarde de ori, pe când un răspuns la un stimul înseamnă parcurgerea algoritmului o singură dată; în limbaj de specialitate răspunsul modelului AI la un stimul se numește inferență. Dacă modelul AI este complex, chiar și o singură inferență necesită multă putere de calcul; din acest motiv chiar și telefoanele actuale care folosesc modele AI mai complexe pot avea pe placa de bază un coprocesor specializat (Google Tensor sau Apple Neural Engine de exemplu).
AI înainte de ChatGPT
Chiar dacă AI a cucerit publicul larg odată cu ChatGPT, erau disponibile dinainte de era noastră aplicații de AI, accesibile oricărui curios. Simpla accesare a lui thispersondoesnotexist.com generează un chip uman realist, care nu este al nici unei persoane reale; o duzină de alte site-uri fac asta. O sumedenie de site-uri generează mai bine sau mai rău imagini utopice, realiste sau caricaturale pornind de la un text care descrie conținutul, cu algoritmul de difuzie stabilă (stable diffusion) sau similare.
Subtitrarea generată automat pe Youtube din canalul audio al videoclipului și traducerea ulterioară în orice limbă a planetei, serviciul Google Translate care e cu noi de ceva vreme, aplicațiile de mobil care preiau chipul și îl transformă în avatar… Da, toate (sau aproape toate: serviciul Shazam folosește de fapt „doar“ algoritmul transformatei Fourier rapide, care datează din vremea războiului rece – și o comparație cu o bază de date).
Sunt pagini de internet care, pornind de la un scenariu, o poveste – care poate fi generat(ă) fără probleme de ChatGPT(!), fac un videoclip complet, fără a trebui să filmezi nimic! E posibil de exemplu pe veed.io, iar tutoriale se găsesc pe YouTube. Unele făcute cu veed.io.
O consultare a Futurepedia ne dezvăluie peste 1.000 de servicii de AI, din care câteva adăugate chiar în ziua accesării. Nu toate serviciile de AI adăugate sunt de aceeași putere ca și ChatGPT, iar unele se bazează chiar pe acesta. Modele emergente răsar ca ciupercile, într-un ritm care nu poate decât să crească pe viitor; o listă de modele AI de transformatoare – adică genul de topologie care e și în spatele ChatGPT – se găsește pe Huggingface.
OpenAI, Elon Musk, Microsoft și investiții de miliarde de dolari
ChatGPT este un model de AI deținut și antrenat de laboratorul de cercetări OpenAI, cu sediul în San Francisco, fondat în 2015 de un număr de personalități din care majoritatea nu ar avea mare rezonanță pe aici. Totuși, am putea aminti că un oarecare Elon Musk a demisionat din consiliul de administrație în 2018, rămânând însă finanțator, iar o companie pe nume Microsoft după ce a investit 1 miliard de dolari în 2019 în acest laborator urmează să mai investească încă 10, începând din acest an, asigurând și resursele de cloud computing necesare pentru antrenare și inferență. Cu o echipă de întreprinzători cu dare de mână și una de programatori de înalt nivel, printre care și niște „transferuri“ de la Google, OpenAI mai deține și alte aplicații, printre care o altă celebritate: DALL-E, generator de imagini AI pornind de la o descriere text .
N-a ieșit prea bine, dar i-am dat ca temă să creeze o imagine realistă a unui pirat cu un radio în București:
Dacă ați descrie imaginea în cuvinte, descrierea ar fi similară cu ceea ce a primit motorul AI ca intrare, presupunând că ați putut identifica clădirea din fundal ca fiind din București.
Și totuși, ce face mai exact ChatGPT?
Răspunde la întrebări, într-un mod spectaculos, creativ și uneori neașteptat. Nu la toate, nu tot timpul bine. Poate să facă un referat despre Mihai Eminescu sau un comentariu literar la o operă cunoscută, poate să explice teorii științifice și poate să livreze cod de programare. Știe bine sau foarte bine Python, C++, Java, Matlab – se descurcă în majoritatea limbajelor actuale, dar cu puțină insistență poți obține bucăți de cod funcționale pentru ZX Spectrum sau Commodore 64 – pentru cei mai tineri, calculatoare care erau în vogă acum câteva decenii.
Dacă îi vorbești frumos, îți face un site întreg în câteva minute, la care mai ai puțin de finisat ca să devină folosibil. Sugerează strategii de marketing, idei de afaceri, tematici de petreceri, scenarii de documentare, cam orice ți-ar putea trece prin cap; compune muzică și versuri; orice l-ai întreba a citit mai mult ca tine.
Ce nu face? Nu desenează, nu livrează conținut video. Toate ieșirile lui sunt în format text, dar calitatea textului, cel puțin la prima lectură, îți taie răsuflarea: răspunsurile sunt structurate și au succesiune narativă logică și fluentă.
În ce limbă? În majoritatea limbilor cunoscute, româna inclusă.
Cum face asta? E un model antrenat (multe) luni de zile, pe informație publică disponibilă online.
Nu știe nimic după 2021, deci putem presupune că antrenarea s-a desfășurat pe seturi de date disponibile până atunci. Succedă două generații anterioare – suntem la GPT-3 și are mai multe variante, unele publice și gratuite: le găsiți pe github!
E programat în Python și se bazează pe biblioteca PyTorch, pentru cunoscători. Versiunea vedetă are 175 miliarde (adică 175 și 9 de zero) de parametri care au trebuit configurați prin antrenare, împărțiți pe 128 de straturi, parametri care ocupă ceva mai puțin de 1TB de stocare. Totuși, pentru că are un răspuns pentru orice, veți vedea că 1TB nu e chiar mult: până la urmă e capacitatea de stocare a celui mai scump terminal iPhone sau Samsung disponibil în ofertele actuale. Teoretic, cu 16GB de RAM și cu un coprocesor neuronal corespunzător, ar putea rula într-o manieră absolut rezonabilă modelul GPT-2, predecesorul actualului model. Pentru GPT-3, resursele necesare sunt mult mai mari, deci încă nu poate rula pe un terminal telefonic în mod autonom nici în cea mai optimistă estimare și datorită puterii de calcul necesare pentru a face inferența cu sute de miliarde de parametri.
Poate este bine de știut că unele răspunsuri sunt nu doar mult prea… aproximative (sic!), ci de-a dreptul false: uneori pur și simplu inventează. Inventează nume de persoane, titluri de cărți, evenimente care nu s-au întâmplat; în limbaj de specialitate se spune că halucinează. Fără o verificare, ele par corecte și din punct de vedere al alcătuirii textului ele sunt absolut corecte, deși lucrurile prezentate nu există; acest comportament de a răspunde incorect cu texte statistic corecte i-a atras porecla răutăcioasă de „papagal stohastic”, adică ceva care reproduce lucruri fără a le înțelege, ceea ce s-ar putea să nu fie 100% adevărat în cazul papagalilor.
Să-l punem la treabă, deci
Eu: Bună
CG: Bună! Cum pot să vă ajut astăzi?
Foarte amabil și încurajator. Să nu pierdem timpul:
Eu: Fă-mi un plan de lecție pentru bucla for în Python, pentru clasa a V-a
CG: Sigur, iată un plan de lecție pentru bucla „for“ în Python, adaptat pentru clasa a V-a:
- Introducere (5 minute): salută clasa și explică obiectivele lecției / Recapitulează ce este o buclă și de ce sunt importante în programare / Explică că bucla „for“ este utilizată pentru a itera (a parcurge) prin >elementele unei liste, unui șir de caractere sau a unui alt tip de colecție de >date
- Demonstrarea (10 minute):
- în acest moment, este important să arăți elevilor cum funcționează o buclă >„for“ în Python, astfel încât să poată înțelege conceptul.
- Poți utiliza următorul > exemplu: for num in range(1, 6): print(num)
- Explică ce face această buclă: va itera prin numerele de la 1 la 5 și va afișa >fiecare număr / Întreabă clasa dacă există întrebări sau nelămuriri
- Activitate practică (25 minute): Împarte clasa în grupuri de câte 2-3 elevi
- Alegeți un set de probleme simple, pe care elevii să le rezolve folosind o >buclă „for“. Aceste probleme ar putea include:
- Să afișeze numerele de la 1 la 10 / Să afișeze toate numerele pare de la 2 la 20 /Să creeze un program care solicită utilizatorului să introducă un șir de >caractere, apoi să afișeze fiecare caracter din șirul respectiv
- Acordați-le elevilor timp să lucreze la problemele lor
- Asigură-te că monitorizezi fiecare grup și că oferi ajutor și feedback acolo >unde este necesar
- Alegeți un set de probleme simple, pe care elevii să le rezolve folosind o >buclă „for“. Aceste probleme ar putea include:
- Închiderea (5 minute)
- Recapitulează principalele idei ale lecției și asigură-te că elevii au înțeles >conceptul de bază al buclei “for”
- Încurajează-i să practice mai mult acasă și să creeze propriile programe >folosind bucla “for”
- Întreabă clasa dacă există întrebări sau nelămuriri
Sper că acest plan de lecție te va ajuta să predai bucla “for” în Python cu >succes la clasa a V-a!
Ei bine, „speranțele“ lui ChatGPT au toate șansele de împlinire! Vrem mai mult, să muncească robotul:
Eu: Pentru această lecție, fă-mi te rog un set de 8 probleme pentru >activitatea practică de la bucla „for“
CG: Sigur, iată câteva probleme practice pentru activitatea de la bucla “for”:
- Scrie un program care afișează toate numerele de la 1 la 20, folosind o buclă “for”.
- Scrie un program care afișează toate numerele pare de la 2 la 20, folosind o buclă “for”.
- Scrie un program care afișează toate numerele impare de la 1 la 15, folosind o buclă “for”.
- Scrie un program care afișează toate literele dintr-un șir de caractere dat de utilizator, folosind o buclă “for”.
- Scrie un program care afișează toate elementele dintr-o listă dată de utilizator, folosind o buclă “for”.
- Scrie un program care afișează tabla înmulțirii pentru numărul dat de >utilizator, folosind o buclă “for”.
- Scrie un program care determină suma numerelor dintr-o listă dată de utilizator, folosind o buclă “for”.
- Scrie un program care afișează numerele prime de la 2 la 30, folosind o buclă “for”.
Aceste probleme ar trebui să fie suficient de ușoare pentru clasa a V-a, dar >destul de provocatoare pentru a-i ajuta să înțeleagă mai bine conceptul de >bază al buclei “for”.
Ar trebui, chiar că ar trebui! Escaladăm și vrem să ne facă și rezolvarea:
Eu: Scrie un specimen de rezolvare pentru problema 6 și presupune că utilizatorul a introdus numărul 7
CG: Sigur, iată un specimen de rezolvare pentru problema 6, unde utilizatorul a introdus numărul 7:
# Programul calculează tabla înmulțirii pentru numărul dat de utilizator
# cerem utilizatorului să introducă un număr
număr = int(input(“Introduceți un număr întreg pozitiv: “))
# afișăm tabla înmulțirii pentru numărul introdus
print(“Tabla înmulțirii pentru numărul”, numar, “este:”)
for i in range(1, 11):
print(numar, “x”, i, “=”, numar*i)
Dacă utilizatorul introduce numărul 7, programul va afișa următorul rezultat:
Introduceți un număr întreg pozitiv: 7
Tabla înmulțirii pentru numărul 7 este:
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
7 x 10 = 70
În acest exemplu, programul utilizează o buclă for pentru a itera prin numerele de la 1 la 10 și pentru a afișa tabla înmulțirii pentru numărul introdus de utilizator. Astfel, elevii vor învăța cum să utilizeze o buclă “for” în Python pentru a crea o funcționalitate practică.
Le dăm și o teza?
Eu: Propune te rog o teză pentru un prim trimestru de Python. Scrie cerințele tezei sub formă de subiect de examen, care să fie rezolvat de către elev.
CG: Sigur, iată câteva cerințe pe care un elev ar putea să le rezolve în cadrul unei teze de examen despre Python:
- Să explicați diferența dintre tipurile de date întregi și numere reale în Python și să scrieți un program care primește două numere întregi și returnează suma lor.
- Să scrieți un program care primește un șir de caractere și afișează fiecare caracter din șir pe o linie nouă, folosind o buclă for.
- Să scrieți o funcție care primește o listă de numere și le sortează în ordine descrescătoare, și să apelați funcția într-un program care primește de la utilizator o listă de numere și o sortează.
- Să explicați diferența dintre bucla for și bucla while în Python și să scrieți un program care primește un număr de la tastatură și afișează toate numerele de la 1 la acel număr, folosind o buclă while.
- Să scrieți o funcție care primește un șir de caractere și îl sortează în ordine alfabetică, și să apelați funcția într-un program care primește de la utilizator un șir de caractere și îl sortează.
- Să scrieți un program care primește un număr de la tastatură și afișează tabelul de înmulțire pentru acel număr, folosind o buclă for.
- Să scrieți o funcție care primește o listă de cuvinte și le sortează în ordine alfabetică inversă, și să apelați funcția într-un program care primește de la utilizator o listă de cuvinte și le sortează.
- Să scrieți o funcție care primește un număr și returnează adevărat dacă acel număr este prim, sau fals în caz contrar, și să apelați funcția într-un program care primește un număr de la utilizator și afișează dacă acel număr este prim sau nu.
Avem teza, trebuie s-o corectăm: avem nevoie de un barem.
Eu: Propune un barem de corectare pentru aceste subiecte
CG: Sigur, iată un posibil barem de corectare pentru cele opt subiecte:
- 2 puncte pentru explicația diferenței dintre tipurile de date întregi și numere reale în Python și 3 puncte pentru implementarea programului corect care primește două numere întregi și returnează suma lor. Total: 5 puncte.
- 2 puncte pentru explicația funcționării buclei for în Python și 3 puncte pentru implementarea programului corect care primește un șir de caractere și afișează fiecare caracter pe o linie nouă. Total: 5 puncte.
- 2 puncte pentru implementarea corectă a funcției de sortare în ordine descrescătoare și 3 puncte pentru apelarea corectă a funcției într-un program care primește de la utilizator o listă de numere și le sortează. Total: 5 puncte.
- 2 puncte pentru explicația diferenței dintre bucla for și bucla while în Python și 3 puncte pentru implementarea programului corect care primește un număr de la tastatură și afișează toate numerele de la 1 la acel număr folosind o buclă while. Total: 5 puncte.
- 2 puncte pentru implementarea corectă a funcției de sortare în ordine alfabetică și 3 puncte pentru apelarea corectă a funcției într-un program care primește de la utilizator un șir de caractere și îl sortează. Total: 5 puncte.
- 2 puncte pentru implementarea programului corect care primește un număr de la tastatură și afișează tabelul de înmulțire pentru acel număr folosind o buclă for. Total: 2 puncte.
- 2 puncte pentru implementarea corectă a funcției de sortare în ordine alfabetică inversă și 3 puncte pentru apelarea corectă a funcției într-un program care primește de la utilizator o listă de cuvinte și le sortează. Total: 5 puncte.
- 2 puncte pentru implementarea corectă a funcției care determină dacă un număr este prim sau nu și 3 puncte pentru apelarea corectă a funcției într-un program care primește un număr de la utilizator și afișează dacă acel număr este prim sau nu. Total: 5 puncte.
Punctajul total pentru toate cele opt subiecte este de 32 puncte.
Putem presupune că lui ChatGPT „îi plac“ puterile lui 2 la punctaje, dar răspunsul este remarcabil. Deși mai e până acest document ajunge barem, totuși ChatGPT poate scuti multă muncă dacă e folosit corect. Vrem să mergem un pic mai departe de atât și încercăm să vedem dacă ne poate spune o programă școlară:
Eu: Sugerează o programă școlară pentru primul curs de limbaj Python, pentru clasa a V-a, pe o durata de 36 de săptămâni, având 2 ore pe săptămână.
CG: Iată o posibilă programă școlară pentru primul curs de limbaj Python, pentru clasa a V-a, pe o durată de 36 de săptămâni, având 2 ore pe săptămână
Săptămânile 1-3: Introducere în Python
- Ce este Python și cum funcționează
- Instalarea și setarea mediului de lucru
- Variabile, tipuri de date și operații matematice elementare
Săptămânile 4-6: Bucle iterative
- Buclele for și while
- Instrucțiuni break și continue
- Utilizarea buclelor în programare
Săptămânile 7-9: Funcții
- Definirea funcțiilor
- Argumente și valori de returnare
- Funcții recursive
Săptămânile 10-12: Șiruri de caractere și listele
- Crearea și utilizarea șirurilor de caractere
- Crearea și utilizarea listelor
- Metode pentru lucrul cu șiruri și liste
Săptămânile 13-15: Controlul fluxului de program
- Instrucțiunea if și operatori de comparație
- Instrucțiunea else și elif
- Utilizarea controlului fluxului în programe
Săptămânile 16-18: Fișiere
- Deschiderea și citirea fișierelor
- Scrierea în fișiere
- Manipularea fișierelor
Săptămânile 19-21: Dicționare și tuple
- Crearea și utilizarea dicționarelor
- Crearea și utilizarea tuplurilor
- Metode pentru lucrul cu dicționare și tuple
Săptămânile 22-24: Matematica in Python
- Lucrul cu numere complexe
- Crearea si utilizarea matricelor
- Metode pentru lucrul cu matrici
Săptămânile 25-27: Algoritmii de sortare
- Sortarea numerelor
- Sortarea șirurilor de caractere
- Sortarea listelor și dicționarelor
Săptămânile 28-30: Introducerea de numere de la tastatură
- Citirea și utilizarea numerelor de la tastatură
- Crearea unui program interactiv
- Validarea și prelucrarea datelor introduse de utilizator
Săptămânile 31-33: Lucrul cu modulul time
- Utilizarea funcțiilor din modulul time
- Măsurarea timpului de execuție
- Crearea și utilizarea temporizatoarelor
Săptămânile 34-36: Proiect final
- Crearea unui program util folosind cunoștințele dobândite
- Prezentarea programului și discutarea ideilor cu colegii
Această programă ar putea fi adaptată în funcție de nevoile și ritmul elevilor și ar putea include și alte subiecte sau activități, cum ar fi programarea orientată pe obiecte, biblioteci specifice Python, dezvoltarea de jocuri sau alte proiecte practice.
Nu predau Python, în nici un caz la clasa a V-a, și în mod evident programa este prea complicată pentru acest nivel; cel puțin din amintirile mele matricele sunt materie de liceu. A fost a 4-a iterație, întrucât ChatGPT s-a blocat în mod repetat, probabil datorită încărcării excesive la ora la care am făcut testele. Dacă „știe“ să facă programe, știe să facă și regulamente de exemplu?
Eu: Sugerează un regulament de ordine interioară pentru școala generală numărul 99 din Lugoj.
CG: Regulamentul de ordine interioară pentru școala generală numărul 99 din Lugoj va avea următoarele prevederi:
- Respectul și politețea sunt obligatorii între toți elevii, profesori și personalul școlii.
- Toți elevii trebuie să respecte programul școlar și să fie prezenți la ore la timp.
- Este interzisă folosirea telefoanelor mobile în timpul orelor de curs sau în sălile de clasă.
- Este interzisă fumatul, consumul de alcool și droguri în incinta școlii.
- Este interzisă violența și orice formă de hărțuire fizică sau verbală între elevi sau față de profesori și personalul școlii.
- Este interzisă deteriorarea sau distrugerea bunurilor școlii sau a proprietății altor elevi.
- Este obligatorie curățarea sălii de clasă și a băncilor după fiecare oră de curs.
- Este interzisă absența nejustificată sau părăsirea școlii fără permisiunea profesorilor.
- Toți elevii trebuie să poarte uniforma școlară și să aibă un aspect îngrijit.
- Este interzisă organizarea de activități care pot deranja cursurile sau care pot afecta bunul mers al școlii.
- Orice încălcare a regulilor poate duce la sancțiuni disciplinare, care pot fi de la avertisment până la exmatriculare, în funcție de gravitatea faptei.
- Elevii și părinții trebuie să semneze un angajament de respectare a regulamentului de ordine interioară în momentul înscrierii la școală.
Am tranzitat de multe ori Lugojul, deci sunt destul de sigur că școala generală nr.99 nu există. Escaladăm și îl rugăm să ne facă o propunere legislativă:
Eu: Fă o propunere legislativă de ordin al Ministrului Educației care propune măsuri pentru îmbunătățirea performanțelor educației STEM. Începe cu o expunere de motive.
CG: Expunere de motive:
Studiile arată că domeniile STEM (științe, tehnologie, inginerie și matematică) au o importanță crucială în economia globală a secolului 21. Totuși, există o preocupare crescândă cu privire la capacitatea sistemului educațional de a produce absolvenți calificați în aceste domenii. În acest sens, Ministerul Educației trebuie să acționeze pentru a îmbunătăți performanțele educației STEM și pentru a-i pregăti pe elevi pentru provocările viitoare.
Propunere legislativă:
Articolul 1 – Obiective (1) Această propunere legislativă își propune să îmbunătățească performanțele educației STEM prin: a) dezvoltarea de programe de studiu actualizate și adecvate pentru fiecare nivel de învățământ; b) facilitarea accesului la echipamente și tehnologie moderne; c) sprijinirea formării continue a profesorilor în domeniul STEM; d) creșterea participării elevilor la competițiile STEM la nivel național și internațional.
Articolul 2 – Programe de studiu (1) Ministerul Educației va elabora programe de studiu actualizate și adecvate pentru fiecare nivel de învățământ în domeniul STEM. (2) Programele de studiu vor fi adaptate la nevoile specifice ale fiecărei categorii de elevi, astfel încât să se asigure o pregătire adecvată pentru fiecare nivel de competență.
Articolul 3 – Echipamente și tehnologie (1) Ministerul Educației va facilita accesul la echipamente și tehnologie moderne în școli. (2) Vor fi alocate resurse financiare adecvate pentru achiziționarea și întreținerea echipamentelor și a tehnologiei necesare pentru desfășurarea activităților STEM.
Articolul 4 – Formarea continuă a profesorilor (1) Ministerul Educației va sprijini formarea continuă a profesorilor în domeniul STEM prin organizarea de programe de formare și de actualizare a competențelor profesionale. (2) Profesorii vor fi încurajați să participe la programele de formare și vor fi susținuți prin acordarea de resurse și de recunoașterea eforturilor lor în acest domeniu.
Articolul 5 – Competiții STEM (1) Ministerul Educației va sprijini creșterea participării elevilor la competițiile STEM la nivel național și internațional. (2) Vor fi organizate programe de pregătire și de susținere a elevilor pentru participarea la astfel de competiții, iar performanțele lor vor fi recunoscute și valorificate în cadrul sistemului educațional.
Articolul 6 – Dispoziții finale (1) Prez
Aici s-a oprit. ChatGPT are limitări la numărul de caractere al răspunsului, care de cele mai multe ori are o lungime rezonabilă, dar nu scrie romane. Limitările depind de stimul, de context și putem specula că și de alți factori, dar textul generat are dimensiunea a mii de caractere. Am solicitat în continuare:
Eu: Finalizează propunerea începută
CG:
Articolul 1. Definirea obiectivelor educației STEM
(1) Educația STEM urmărește dezvoltarea competențelor de știință, tehnologie, inginerie și matematică la elevi, cu scopul de a-i pregăti pentru o lume aflată în continuă schimbare.
(2) Obiectivele educației STEM sunt următoarele:
a) Dezvoltarea competențelor tehnice și de gândire critică la elevi;
b) Încurajarea creativității și inovației prin integrarea educației STEM în programele școlare;
c) Promovarea egalității de gen și diversității în educația STEM;
d) Dezvoltarea abilităților necesare pentru rezolvarea problemelor complexe și pentru luarea deciziilor informate.
Articolul 2. Integrarea educației STEM în programele școlare
(1) Ministerul Educației va sprijini școlile în integrarea educației STEM în programele școlare.
(2) Pentru a asigura o integrare efectivă, Ministerul Educației va oferi resurse suplimentare și instruire profesorilor pentru a-i ajuta să integreze educația STEM în programele școlare.
Articolul 3. Programul de burse STEM
(1) Ministerul Educației va institui un program de burse STEM pentru elevii din ciclul gimnazial și liceal care demonstrează aptitudini și interes pentru educația STEM.
(2) Programul va oferi burse pentru studii și proiecte în domeniul STEM, în țară și în străinătate.
Articolul 4. Participarea la competiții STEM
(1) Ministerul Educației va încuraja și sprijini participarea elevilor la competiții STEM, atât la nivel național, cât și internațional.
(2) Ministerul Educației va acorda sprijin financiar și logistic pentru participarea elevilor la competiții STEM, precum și pentru organizarea de competiții la nivel național.
Articolul 5. Evaluarea educației STEM
(1) Ministerul Educației va dezvolta un sistem de evaluare a performanțelor educației STEM.
(2) Sistemul de evaluare va urmări dezvoltarea competențelor de știință, tehnologie, inginerie și matematică la elevi.
(3) Rezultatele evaluării vor fi utilizate pentru a îmbunătăți programele de educație STEM și pentru a oferi feedback elevilor, părinților și profesorilor.
Articolul 6. Dispoziții finale
(1) Prevederile prezentei ordonanțe de urgență se aplică începând cu anul școlar 2023-2024.
(2) Ministerul Educației va asigura punerea în aplicare a prevederilor prezentei
Dacă “știe” să scrie și legislație, să îl consultăm pe o temă de strategie:
Eu: Cum ar putea fi îmbunătățite rezultatele elevilor români la testele PISA?
CG: Testele PISA (Programme for International Student Assessment) sunt un instrument important pentru evaluarea performanțelor elevilor în domeniile matematicii, științelor și citirii. Pentru a îmbunătăți rezultatele elevilor români la aceste teste, sunt necesare măsuri pe termen lung, care să includă atât îmbunătățirea procesului de predare și învățare, cât și implicarea părinților și a comunității în educație.
Iată câteva sugestii concrete:
- Îmbunătățirea pregătirii profesorilor în domeniul STEM: Este important ca profesorii să aibă o pregătire adecvată în domeniul STEM și să fie actualizați în permanență cu privire la noile tehnologii și metodologii de predare. Acest lucru ar putea fi realizat prin organizarea de cursuri de formare continuă și prin sprijinirea participării profesorilor la conferințe și workshop-uri în domeniul STEM.
- Încurajarea elevilor să ia parte la activități extracurriculare în domeniul STEM: Elevii ar trebui încurajați să participe la activități extracurriculare care să îi ajute să își dezvolte interesul și abilitățile în domeniul STEM. Aceste activități pot fi organizate de către școli, dar și de către organizații non-guvernamentale și companii din domeniu.
- Utilizarea tehnologiilor moderne în procesul de predare și învățare: Este important ca elevii să fie familiarizați cu tehnologiile moderne și să înțeleagă cum acestea pot fi folosite în domeniul STEM. Școlile ar trebui să fie echipate cu echipamente și software adecvat pentru predarea materiilor STEM și să încurajeze utilizarea lor în cadrul orelor de curs.
- Implicarea părinților și a comunității în educație: Părinții și comunitatea ar trebui să fie implicați în educația elevilor prin participarea la activități educative și prin sprijinirea școlii în procesul de învățare. În plus, ar putea fi organizate campanii de conștientizare pentru a încuraja implicarea părinților în educația copiilor lor.
- Dezvoltarea abilităților de gândire critică și creativă: Este important ca elevii să învețe nu doar teoria, ci și să dezvolte abilități practice în domeniul STEM. Astfel, ar trebui să fie încurajate activitățile care să îi ajute să își dezvolte abilitățile de gândire critică și creativă, cum ar fi rezolvarea de probleme și experimentarea practică.
Acestea sunt doar câteva dintre sugestiile care ar putea contribui la îmbunătățirea performanței elevilor români la testele PISA.
… și n-a mai terminat, dar ați înțeles ideea. Un alt stimul pe care l-ați putea găsi de interes:
EU: Schițează o propunere de proiect cu finanțare europeană pentru dotarea unui laborator de fizică de liceu cu truse complete de electricitate și optică.
CG: Titlul proiectului: “Dotarea unui laborator de fizică de liceu cu truse complete de electricitate și optică”
Obiectivele proiectului:
- Dotarea laboratorului de fizică al liceului cu truse complete de electricitate și optică pentru a crește calitatea învățământului și pentru a spori interesul elevilor pentru domeniul fizicii.
- Formarea cadrelor didactice în utilizarea noilor echipamente și în dezvoltarea de noi metode de predare.
- Dezvoltarea de materiale didactice inovative, cum ar fi experimente și demonstrații care să atragă interesul elevilor pentru fizică.
Descrierea proiectului: Proiectul urmărește dotarea laboratorului de fizică al liceului cu truse complete de electricitate și optică, astfel încât să se poată face experimente și demonstrații la nivel avansat. Aceste truse vor fi achiziționate de la furnizori specializați și vor include echipamente moderne și inovative pentru experimente de electricitate și optică.
De asemenea, proiectul va include și formarea cadrelor didactice în utilizarea noilor echipamente și dezvoltarea de noi metode de predare, astfel încât acestea să poată crea experiențe educaționale inovatoare pentru elevi. Vor fi organizate sesiuni de instruire pentru profesori, unde vor fi prezentate noile echipamente și vor fi discutate metodele de utilizare eficientă a acestora.
În cadrul proiectului se va dezvolta și un set de materiale didactice inovatoare, care va include experimente și demonstrații care să atragă interesul elevilor pentru fizică. Aceste materiale vor fi disponibile online, iar profesorii le vor putea utiliza în activitățile lor didactice.
Bugetul proiectului:
- Achiziționarea truselor complete de electricitate și optică: 150.000 EUR
- Formarea cadrelor didactice: 30.000 EUR
- Dezvoltarea materialelor didactice inovative: 20.000 EUR
- Costuri administrative: 10.000 EUR
Total buget: 210.000 EUR
Sursa de finanțare: Programul de finanțare europeană pentru modernizarea infrastructurii educaționale.
Nu i-am indicat nici un program european și nici o sugestie de buget; nu știu dacă denumirea invocată e a unui program real. ChatGPT nu are o problemă să halucineze și ca urmare poate inventa nume de instituții, persoane sau programe care nu există.
În sfârșit, dacă aveți un minim de cunoștințe de Python, veți găsi și următorul stimul foarte interesant:
Eu: Fă-mi un program in Python care ia dintr-un tabel Excel cu 5 coloane (nr.crt., Nume, Prenume, e-mail, notă) nota pentru fiecare elev și trimite tuturor un mail cu nota obținută a fiecăruia, adresându-i-se personal cu un mic text adecvat acestei comunicări.
CG: Pentru a realiza această sarcină, avem nevoie de două module Python: pandas și smtplib. Modulele pot fi instalate prin intermediul pip, rulând în terminal următoarele comenzi:
pip install pandas
pip install secure-smtplib
De asemenea, pentru a putea trimite e-mail-uri, trebuie să aveți acces la un server SMTP și să furnizați credențiale valide pentru autentificare. În continuare este un exemplu de cod care îndeplinește această sarcină, dar trebuie să fie personalizat pentru serverul și credențialele dvs.
import pandas as pd
import smtplib
# setează detaliile serverului SMTP
SMTP_SERVER = ‘smtp.gmail.com’
SMTP_PORT = 587
SMTP_USERNAME = ‘adresa_tale_de_email@gmail.com’
SMTP_PASSWORD = ‘parola_tale_de_email’
# citește tabelul Excel într-un DataFrame pandas
df = pd.read_excel(‘nume_fisier.xlsx’)
# parcurge fiecare linie din DataFrame
for index, row in df.iterrows():
# extrage detaliile elevului
nume = row[‘Nume’]
prenume = row[‘Prenume’]
email = row[‘e-mail’]
nota = row[‘notă’]
# construiește subiectul și corpul mesajului
subject = ‘Nota ta la testul nostru’
body = f’Bună {prenume}, \n\nFelicitări pentru nota ta de {nota} la testul nostru!’
# construiește mesajul
message = f’Subject: {subject}\n\n{body}’
# trimite mesajul prin e-mail
with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as smtp:
smtp.starttls()
smtp.login(SMTP_USERNAME, SMTP_PASSWORD)
smtp.sendmail(SMTP_USERNAME, email, message)
print(f’E-mail trimis către {nume} {prenume} ({email}) cu nota {nota}.’)
Asigurați-vă că schimbați valorile pentru SMTP_SERVER, SMTP_USERNAME și SMTP_PASSWORD pentru a reflecta detaliile dvs. de server SMTP și autentificare. De asemenea, schimbați nume_fisier.xlsx cu numele fișierului dvs. Excel care conține datele elevului.
Nu am testat acest script, dar lucrurile par absolut corecte la prima vedere. Din experiență, bucățile de cod generate necesită un pic de depanare, nu nimerește totul din prima încercare. Poate face inclusiv depanare – i se dă codul de eroare din Python și rescrie codul, dar de multe ori corecțiile se repetă în buclă. Remarcați comentariile care explicitează codul, dar și indicațiile de configurare.
Nu doar ChatGPT
OpenAI nu e singura entitate care dezvoltă și operează sisteme AI, dar e singura care poate în acest moment să concureze cu elefantul din încăpere: Google. Asta pentru că în loc de o listă de linkuri unde am putea găsi eventual ceea ce căutăm, ChatGPT răspunde la întrebare: direct, relevant și structurat. În loc să cauți pe Google, ai de-acum și varianta „întreabă un prieten”.
Pentru Google, care acum are 90% din piața căutărilor pe web, acest mod de acțiune a fost un semnal de alarmă, suficient de mare încât a dus la un răspuns de criză: Google s-a grăbit să ni-l prezinte pe Bard, rivalul lui ChatGPT. La o lansare festivă, Bard a răspuns greșit la o întrebare. Atât de greșit, încât în 24 de ore a scăzut peste 100 de milioane de dolari din valoarea acțiunilor Alphabet, compania care deține motorul de căutare, acțiunile pierzând 9% într-o săptămână. Lansarea din 6 februarie nu înseamnă că Bard a devenit disponibil peste noapte, Google anunțând că acesta va deveni disponibil pentru public în următoarele săptămâni. A fost lansat de câteva zile, nu am apucat să îl testez, dar pot să vă spun că față de ChatGPT, ale cărui cunoștiințe se “termină” în 2021, Google Bard poate extrage informații actuale de pe web. Cei care au făcut-o susțin că textele livrate de ChatGPT sunt mai bune, chiar și în absența informațiilor la zi.
Problemele Google nu vin doar de la ChatGPT, care va fi disponibil și în suitele Microsoft Office 365, ci și de la rivalul chinez Baidu, care are în plan lansarea unui chatbot AI similar în decursul acestui an. China a devenit discret o putere AI și ca urmare nu știm încă ce surprize ne rezervă viitorul. Deocamdată știm că chatbotul Baidu se numește “Wenxin Yiyan” sau în engleză “ERNIE Bot”. ERNIE adică “˙Enhanced Representation through Knowledge Integration˙’ și care va putea genera și imagini.
Câteva mici probleme de etică…
În afară de răspunsuri halucinante, dar îmbrăcate în exprimări ca la carte, răspunsurile AI pot să fie folosite în nume propriu. Acest lucru poate fi – și a devenit o problemă în mediul academic, unde AI răspunde la întrebări mai bine ca unii studenți; suficient de bine încât a trecut diverse teste complicate, inclusiv examene de rezidențiat în medicină sau examene la facultăți de drept, economie sau inginerie, în teste la vedere. Putem bănui că există deja și un palmares ascuns de reușite… Chiar dacă la examenele mai complexe nu se descurcă grozav – e un “student mediocru”, anticipăm sosirea unui geniu șlefuit în nu foarte multă vreme.
Răspunsurile generate nu sunt documente, nu au titlu și apar ca urmare al unui stimul al utilizatorului și ca urmare utilizatorul e practic co-autor. Citarea lui ChatGPT, se face la indicațiile acestuia cu sintagma “Informații furnizate de modelul lingvistic OpenAI (2023), dezvoltat de OpenAI.” Generarea de texte cu sens și valoare adăugată poate fi folosită ca sursă ilegitimă sau măcar imorală de putere și influență și poate genera fake news, știri și texte manipulative, programe malware sau și mai rău, poate asista proiectarea unor subansamble de armament. ChatGPT are niște mecanisme de limitare ale acestor folosiri, dar încă incipiente; au existat numeroase încercări prin care s-a reușit generarea de malware. Textele generate de AI sunt încă detectabile ca atare la această generație…
Lăsată să funcționeze autonom, AI se poate descurca onorabil în situații tot mai diverse și cu erori tot mai rare și mai mici; ca urmare va ajunge să gestioneze procese automate. Sunt deja accidente cu mașini care se conduc singure, majoritatea aflate mai degrabă în stadii de testare decât de utilizare efectivă, dar evoluția aici este clară: AI va ajunge în timpul vieții noastre acel șofer care nu va consuma niciodată alcool. Ceea ce nu înseamnă că nu e supusă greșelii …
Previziuni a tot felul de organizații și organisme conduc convergent către concluzia că impactul AI asupra pieței muncii va fi important, unele mergând până la scenarii catastrofale: multe posturi vor putea fi înlocuite cu minimă supraveghere de AI, de unde unii analiști văd o ascensiune fulminantă a șomajului. Dacă ne-am obișnuit cu chatboții în relațiile cu clienții, mai multe state și organizații (dintre care notabil Estonia și UNESCO) cochetează cu ideea de justiție AI, cel puțin pentru cauzele mărunte. Probabil vom ajunge într-o zi să contemplăm o scenă suprarealistă, în care doi chatboți avocat vor pleda în fața unui chatbot judecător.
Prin concentrarea puterii economice în mâinile deținătorilor de mașini AI s-ar putea mări decalajul între țările dezvoltate și cele sărace, punând o resursă cu potențial enorm în controlul unui grup restrâns. Alte predicții și extrapolări ale efectelor AI sunt dispariția completă a intimității, noi tipuri de fraude sofisticate și robotizate, preluarea controlului asupra rețelelor de comunicații și de distribuție a energiei de către AI în nume propriu sau controlat de un grup de persoane și enumerarea ar putea continua. În timp ce Bill Gates spune că apariția ChatGPT va avea un impact mai mare decât apariția Internetului, Elon Musk ne spune, apăsat, că AI este unul din cele mai mari riscuri la adresa civilizației și cere o reglementare. Se folosește noțiunea de „singularitate”, termen împrumutat de futurologie din matematică și care denotă un moment în timp din care direcția unei schimbări devine absolut impredictibilă, iar magnitudinea ei imensă: se va schimba tot absolut radical, dar nu putem ști în ce direcție. Ray Kurzweil spune că în 2030 AI va trece de testul Turing – adică nu va mai putea fi deosebit de o inteligență naturală, cam odată cu ce prezice el a fi atingerea dezideratului nemuririi, urmând ca prin 2045 să atingem punctul de singularitate. Dacă numele vi se pare cunoscut, e pentru că l-ați mai văzut pe sintetizatoarele de sunet din videoclipurile muzicale ale anilor 90 și după, da, e același Ray Kurzweil care a fabricat instrumentele muzicale electronice Kurzweil – mai are și alte realizări inginerești majore, iar în timpul liber e filozof transhumanist. Deocamdată nu are prea mult timp liber, fiind recrutat de prin 2012 de unul din fondatorii Google – Larry Page, pentru proiecte legate de AI.
… și reglementare
Nevoia de reglementare este deci evidentă. Procesul de reglementare nu poate fi nici simplu, nici scurt, dată fiind noutatea situației, lipsa mijloacelor dovedite de verificare și control și puterea mare de fascinație a tehnologiei. Problema este în atenția autorităților de ceva vreme, fiind de exemplu subiectul rezoluției 214 din actul final al conferinței ITU PP22, prin care ITU se reafirmă ca factor de promovare, coagulare și dezvoltarea al AI, în special în relație cu rețelele de telecomunicații. Rezoluția este catalogată ca istorică, fiind prima din istoria ITU pe acest subiect.
Uniunea europeană are o propunere închegată de regulament al inteligenței artificiale, care a parcurs etapele de consultare publică, existând și o poziție comună a țărilor europene la adresa acestuia. O căutare web a “Artificial Intelligence Act” duce imediat la acesta.
Comitetul Român pentru Inteligența Artificială este în perioada de inițiere, dar are pagina lui de web la ai.gov.ro, în care prezintă deja o organigramă complexă. Autoritatea pentru Digitalizarea României are consultări publice multiple pentru viitoarea strategie de Inteligență Artificială a României.
Un prieten îmi spunea că la nivelul unuia din grupurile administrative de colaborare al Uniunii Europene, respectiv cel de pe Directiva de Echipamente Radio, s-a ajuns la discuția de a impune obligații suplimentare produselor cu AI, întrucât funcții AI atașate unui echipament radio au potențialul de a prezenta riscuri de neconformitate și chiar de securitate. Discuțiile relevante de la acest moment pe tema reglementării AI sunt greu de sumarizat pentru că sunt foarte multe, dar e de așteptat ca într-un timp rezonabil să apară o convergență a reglementărilor care să creeze cel puțin pentru Uniunea Europeană un cadru comun.
AI după ChatGPT
Până la apariția acestui serviciu, AI s-a strecurat în viața noastră pe nesimțite, la început ca o distracție iar apoi ca servicii serioase și utile, ca subtitrarea și traducerea automată. Apoi brusc, a apărut acest calculator vorbitor care are acces aproape instantaneu la rafturi întregi de bibliotecă și știe și programare și inteligența artificială a intrat în conștiința noastră ca specie aparte.
A propos de conștiință, un breaking news precedând lansarea ChatGPT cu 3 luni ne spunea că un inginer de la Google că LaMDA, un program de inteligență artificială din cadrul companiei, are conștiință. Oarecum amuzant, în condițiile în care nu suntem foarte siguri ce este exact conștiința ca să știm unde sunt granițele acesteia. Totuși, petrecând ceva timp cu ChatGPT constatăm că momentul în care va trebui să ne decidem asupra unei definiții cât mai metrologice a conștiinței e aproape. Până atunci, împătimiții de mașini care le vorbesc ca unei persoane dragi și se angajează în monologuri cu acestea nu vor avea probleme deosebite în a accepta ideea, dar cei care nu au viziuni animiste au nevoie de mai mult pentru a atribui conștiință unui AI.
Totuși, putem fi siguri că această tehnologie este una din acelea care va schimba esențial lumea în care trăim și că în viitor vom împărți timpul și în funcție de momentul în care ChatGPT – și ulterior replicile sale – au luat cu asalt lumea, cu sau fără conștiință. Pe termen scurt, acest lucru înseamnă schimbarea modelului de căutare a informațiilor pe web: în loc de o listă de site-uri care să conțină cuvinte cheie, vom primi direct răspunsul la o întrebare, sub forma unui mic articol despre tematică: în loc de o listă de lecturi pe care să le consultăm pentru a ne extrage informația, vom primi direct consultația.
Deși tehnologia este interesantă și are deja mai multe aplicații decât ne dăm seama, saltul uriaș spre ceva greu de imaginat se va întâmpla atunci când rețelele neuronale vor putea fi antrenate pe calculatoare cuantice. Atunci, cuvinte ca “singularitate” sau “conștiință” vor avea altă rezonanță, pentru că nivelul de imitație al inteligenței atins de acele structuri AI va rivaliza cu ceea ce ne-am putea imagina că ar fi o zeitate. Care a absolvit toate facultățile din lume, a făcut toate cursurile posibile și știe pe de rost tot internetul. Până la grozăvii nemaivăzute, e clar că AI va crește accelerat și își va face loc în viețile noastre, de multe ori fără să fim conștienți de asta, așa cum consumăm și acum servicii asigurate de AI fără să fim conștienți de asta.
GPT-4
S-a lansat de curând GPT-4, care e „multimodal”, adică nu doar text: imagini, video, sunet, în paralel cu răspunsurile precipitate ale concurenței, luate prin surprindere de valul ChatGPT. Disponibil deocamdată în versiune online doar pe abonament, iar în versiune API pe listă de așteptare (Vinovat. M-am înscris…). Cei care l-au folosit spun că diferența între versiunea 3 și 4 e ca între răspunsurile unui elev de liceu și unu student în an terminal, orice ar însemna asta. Totuși, printre exemplele pe care le-am citit, cel mai impresionant mi se pare următorul: pornind de la o poză a conținutului propriului frigider, motorul GPT4 poate sugera o listă de rețete care se pot găti cu ingredientele disponibile…
În afară de efectele catastrofale ale apariției de motoare AI de genul ChatGPT previzionate de diverși vizionari apocaliptici, e relativ previzibil că va fi o nouă criză a semiconductorilor și în special a plăcilor video, pentru că coprocesoarele grafice sunt motoare de inferență excelente și ca urmare antrenarea și rularea rețelelor neuronale este mult mai eficientă pe plăci grafice. Motorul ChatGPT are nevoie de zeci de plăci grafice echipate cu memorie de 48GB sau mai mare (încep în România de la 25.000 lei bucata la prețul zilei), pe platforma cloud Microsoft Azure unde rulează acesta fiind folosite cantități impresionante de plăci specializate Nvidia A100 (peste 60.000 de lei în varianta cea mai mică, cu 40GB RAM) sau mai noua Nvidia H100 (n-am găsit-o de vânzare în România, dar e de cca 3 ori mai scumpă). La ora actuală Nvidia are implementarea AI cea mai matură, care merge bine cu librăriile existente dar e de așteptat că și ceilalți concurenți – adică tradiționalul ATI și mai noul și improbabilul Intel să ia cu asalt piața de hardware AI, în tandem cu diverși fabricanți de ASIC (circuite integrate specializate pe aplicații) care probabil vor da pasiunea pentru “minat” criptomonede la schimb cu motoarele de inferență. Apropo de vremurile pe care le trăim, guvernul SUA a interzis vânzarea acestor componentelor Ai de înaltă performanță către China și Rusia.
Concurentul de la Facebook, Llama poate rula în versiuni mai mici și pe o singură placă video de acest gen în versiunile mai mici, adică cele cu 8 și cu 13 miliarde de parametrii. Facebook susține că modelul Llama 13B depășește GPT-3 în testele sintetice, deși este cu un mai bine de un ordin de mărime mai mic. Personal am îndoieli, dar le-am descărcat pe ambele (8B și 13B) și acum sunt în căutarea unei plăci video…
*Disclaimer: Nici un motor de inteligență artificială nu a fost rănit la scrierea acestui articol. Nici măcar în orgoliu.
Despre autor – Teodor Petrița: Inginer vechi (20+, cu fir și mai ales fără fir), om și mai vechi (ediția ’74), lector ceva mai nou (câțiva anișori la Universitatea Politehnica Timișoara, ceva mai mulți la Universitatea de Vest, dar asistent de multă vreme), cu chemarea pedagogică în sânge, simplificator de ocazie, programator tot de ocazie.
Foto: © Siarhei Yurchanka | Dreamstime.com / Dreamstime.com sprijină educaţia din România şi oferă gratuit imagini stock prin care Edupedu.ro îşi poate ilustra articolele cât mai relevant posibil / Campania Back to school oferă posibilitatea oricărei școli, profesor sau elev să descarce imagini de calitate cu 50% discount.
9 comments
Scurt, concis si la obiect.
Multumim pentru articol si toate informatiile din el.
Oare sunt prea optimist daca sper ca este doar primul dintr-o serie despre AI ?
Perfect articol, profesor Teo!! 🙂
Bravo domn profesor, sunt mândru de tine !
Bun articol, l-am salvat.
Tot așa și la mai mare, succes îți doresc.
O lecție pe repede înainte cu exemple wow: n-am simțit că articolul e lung. Mă tot gândesc că în secunda în care AI o să vină la serviciu o să vrea să fie șef, nu subaltern, deci poate scap înlocuit mai la urmă.
Felicitari pentru articol. Foarte cuprinzator si bine scris. Un articol de referinta pentru situatia actuala a evolutiei AI.
citesc articolul si ma minunez, matrici, numere complexe, la clasa a 5-a, alea se fac la liceu din cate stiu, ajungem doctori toti cu chatgpi, apropo pe copii nu-i intereseaza nimic, nici fizica nici matematica, vor doar note mari ca asa vor parintii, toti stau lipiti de telefoane pe tiktok sau se joaca.
Biblioteci, nu librării!
Cu respect,
Mulțumim!(eu și toți cărora le-am distribuit!)
Apreciem calitatea interpretării informațiilor!
Fascinant, înfricoșător, cu speranță, cu respect față de munca in echipă a inginerilor, a programatorilor…Evident, lumea noastră e intr-un punct de inflexiune!
Ce parere aveti de pozitia Italiei referitor la subiect?