În ultima perioadă se vorbește tot mai mult despre Inteligența Artificială. Zilnic auzim despre noi performanțe pe care le atinge și de noi recorduri doborâte. Mai mult, auzim zilnic despre locurile de muncă aflate în pericol și despre mii și mii de concedieri pe care marii giganți ai industriei IT le anunță. În aceste condiții, probabil că mulți studenți și mulți părinți își pun, pe bună dreptate, întrebarea: mai are rost să învățăm despre Calculatoare? Din poziția mea de profesor în domeniul respectiv nu am pretenția să ofer un răspuns obiectiv. În schimb, vă voi mărturisi un adevăr pe care nu mi-e ușor, acum, să îl admit: și eu, când am fost student, am pus întrebarea: La ce îmi folosește să învăț asta? Acum, când AI este peste tot, probabil că mulți vor pune aceeași întrebare: La ce îmi folosește să știu algoritmi, tehnici de programare, arhitectura calculatoarelor etc. etc. …? De ce nu învățăm doar despre AI?
Prima dată voi răspunde propriilor mele întrebări, pe care mi le-am pus când eram student. În anul 2001 am avut norocul să fiu primit în grupul de cercetare fondat de domnul profesor Sergiu Nedevschi, în același an în care grupul a primit un proiect finanțat de o companie importantă din domeniul industriei auto. Contractul a fost semnat pe un an de zile, pe o sumă care acum ar părea derizorie, dar care atunci, pentru țara noastră, era fantastică. Scopul proiectului: detecția obiectelor din fața autoturismului, folosind stereo-viziunea. Pentru noi, majoritatea fiind studenți în anul patru, având ca palmares relevant doar însușirea materiei și promovarea cu succes a examenului la disciplina Procesarea Imaginilor, obiectivele proiectului păreau să facă parte din domeniul magiei, nu al tehnologiei. Domnul profesor Nedevschi a fost însă pregătit. În ciuda vitezei reduse a conexiunilor la Internet și a lipsei subscripțiilor la cele mai relevante publicații din domeniu, domnul profesor ne-a pus în brațe un teanc de articole, ordonate pe categorii, și ne-a îndrumat în direcțiile pe care le-a considerat că au cea mai mare probabilitate de a da rezultatele așteptate. Nu am beneficiat de biblioteci făcute de alții, nu am avut nici măcar imagini achiziționate cu două camere sincronizate, și puterea de calcul disponibilă a fost un Pentium 3 la 1 GHz. Fără să dau prea multe detalii, după un an obiectivele proiectului au fost îndeplinite, rezultând un sistem capabil să captureze imagini perfect sincronizate de la cele două camere, să calculeze informația 3D, generând un nor de puncte de densitate redusă, dar suficientă încât să identifice cele mai importante obiecte și să măsoare poziția, dimensiunea și viteza acestora, totul cu o viteză de 10 cadre pe secundă. Proiectul de un an a fost continuat cu alt proiect, apoi cu altul, apoi cu proiecte mari finanțate de Uniunea Europeană, colaborarea cu marea companie din domeniul producției de automobile continuând pentru mai mult de 15 ani. Care a fost secretul? Doi factori esențiali. Primul, obiectivul intern trasat de domnul profesor Nedevschi: la fiecare termen de raportare trebuia să depășim așteptările finanțatorului, astfel încât acesta să își dorească mai mult, iar dorința să se materializeze într-un nou contract. Al doilea factor a fost pregătirea multidisciplinară din domeniul Calculatoare, în cadrul facultății Automatică și Calculatoare a UTCN. În afară de cunoștințele de procesare de imagini, am avut nevoie de cunoștințe despre algoritmi fundamentali și paraleli, de programarea în limbaj de asamblare pentru a valorifica la maxim resursele limitate ale procesorului. De asemenea, am apelat la disciplinele de hardware pentru a înțelege și a adapta interfețele pentru sincronizarea camerelor, pentru a comunica cu magistrala de control a autovehiculului, și pentru a interpreta datele de la senzorii suplimentari. Bineînțeles că a trebuit să aplicăm tehnici de programare orientate pe obiect și de inginerie software pentru a proiecta și menține o aplicație de o complexitate în continuă creștere. Menționăm că am valorificat noțiuni despre sisteme de operare pentru a paraleliza execuția și a sincroniza firele de execuție de achiziție de date, de procesare a datelor, și de comunicare cu autovehiculul, de cunoștințe despre grafica pe calculator pentru a realiza interfața de vizualizare a rezultatelor 3D. Pe lângă aceste discipline de specialitate, a fost nevoie de cunoștințele matematice: noțiuni precum gradient, Jacobian, interpolare polinomială, densitate de probabilitate, operații cu matrici și vectori, toate acestea, și mai multe au fost esențiale pentru calibrarea camerelor, pentru corelarea stereo cu eroare de mai puțin de un punct de imagine, pentru urmărirea probabilistică a obiectelor sau pentru manipularea informației 3D.
Pe măsură ce timpul a trecut, activitatea echipei s-a diversificat. Pe lângă aplicațiile legate de conducerea autovehiculelor au fost abordate teme precum procesarea imaginilor medicale, procesarea secvențelor de imagini pentru identificarea deșeurilor spațiale orbitale sau procesarea imaginilor preluate din drone. Treptat, între uneltele folosite s-a strecurat și Inteligența Artificială. La început sub formă de clasificatori cu cerințe de calcul reduse, care foloseau vectori de trăsături calculate prin procesarea clasică a imaginilor, apoi rețele neuronale convoluționale pentru segmentare semantică, segmentare de instanță sau segmentare panoptică, arhitecturi de tip transformer pentru segmentare de imagini sau de secvențe video, sau chiar arhitecturi care combină analiza imaginilor cu modelele de limbaj (LLM). Unele modele au fost antrenate pe seturi de date publice sau pe date generate și adnotate de grupul nostru de cercetare. Alte modele folosite au fost deja pre-antrenate. Complexitatea sistemelor a crescut, la fel și necesarul de putere de calcul. Totuși, indiferent de uneltele folosite, a existat o permanentă preocupare pentru relația cu lumea reală și cu problema reală care trebuie rezolvată. Pentru noi, imaginile nu sunt simple imagini, iar secvențele video nu sunt simple secvențe video. Ele sunt o reprezentare limitată a realității, iar realitatea se supune unor legi matematice și fizice. Pentru a percepe această realitate, trebuie să înțelegem aceste legi. Trebuie să înțelegem constrângerile mecanice ale unui automobil în mișcare, sau ale evoluției unui satelit pe orbită. Trebuie să înțelegem anatomia unui organ a cărui imagine ecografică o analizăm. De asemenea, trebuie să înțelegem erorile unui senzor sau faptul că, dacă un obiect nu este detectat, nu înseamnă că obiectul nu este acolo.
Poate Inteligența Artificială să furnizeze toate aceste cunoștințe? Poate că da. Dar cum vom ști că răspunsurile date sunt corecte, fără o bază de cunoștințe fundamentale? În ultima vreme, în discursul public despre educație se vorbește tot mai mult despre învățarea gândirii critice. Dar pe ce se bazează gândirea critică? Cum putem să decidem că o afirmație este credibilă sau nu, dacă nu avem pe ce să ne bazăm raționamentul?
Cum poate să ne ajute pregătirea fundamentală, în epoca Inteligenței Artificiale? În primul rând ne poate ajuta să înțelegem problema reală care se cere a fi rezolvată. Înainte să scriem cod sau să desenăm diagrame de clase trebuie să analizăm, în mod detaliat și critic, care sunt aspectele realității care sunt implicate în problemă. În al doilea rând, pregătirea fundamentală ne poate ajuta să selectăm, dintre soluțiile propuse de AI, pe cele credibile sau cele care se pretează pentru resursele pe care le avem la dispoziție. În al treilea rând, ne poate ajuta să justificăm soluția și să putem garanta rezultatul corect. În orice domeniu ingineresc există responsabilitatea proiectantului asupra soluției, iar această responsabilitate nu poate fi asumată de un inginer în Calculatoare fără o bază serioasă de cunoștințe fundamentale.
Probabil că argumentul cel mai puternic împotriva educației în domeniul Calculatoare sau, cel puțin, în favoarea unei schimbări radicale a programei este situația pieței muncii. Acest argument este fals, deoarece în continuare societatea va fi dependentă de servicii IT, iar proiectarea și întreținerea unor astfel de servicii nu va putea fi lăsată doar în seama Inteligenței Artificiale. Orice domeniu are perioade de creștere și de descreștere, și trebuie să ținem seama că formarea unui specialist durează ani de zile. Ce este valabil astăzi poate nu mai este valabil peste patru ani. Trebuie să adaptăm curricula noilor avansuri tehnologice? Cu siguranță. Trebuie să înlocuim totul cu studiul uneltelor de Inteligență Artificială? Cu siguranță nu. Miopia, chiar și când este cauzată de progrese remarcabile în domeniul tehnologiei nu este bună. Și cine știe, poate că cineva, având cunoștințe remarcabile din domeniul AI, dar și cunoștințe fundamentale ale Științei Calculatoarelor va găsi noi direcții de progres, la care nimeni nu s-a gândit.
Acest articol nu a folosit deloc instrumente de Inteligență Artificială, ci se bazează strict pe amintirile (imperfecte) ale autorului și pe părerile (la fel de imperfecte) ale acestuia.