CHANGE.WORLD: Programele care scriu programe

Autorii de science-fiction au fost și de această dată primii care și-au imaginat scenariile posibile în lumile viitoare posibile. ‘Real Humans’ (‘Oameni adevărați’; în suedeză: ‘Äkta människor’) este un serial suedez lansat în 2012, care se petrece într-o versiune alternativă a viitorului apropiat al Suediei, în care oamenii sunt serviți de roboți umanoizi dotați cu sentimente și inteligență, până la a fi capabili să-și scrie și să-și rescrie propriul software. Sunt aduse în discuție frontierele dintre umanitate și lumea mașinilor inteligente și posibilitatea conflictului dintre ele. Scenariu de anticipație? Deocamdată da, însă realizări recente ale industriei de software indică faptul că momentul în care aceste situații vor fi posibile nu este departe.

(sursa imaginii: dn.se/kultur-noje/film-tv/ny-morkare-sasong-av-akta-manniskor/)

Industria Inteligenței Artificiale (AI) este dominată de două companii puternice și influente, alături de un număr impresionant de firme start-up sau de departamente de cercetare și proiectare ale unor firme din domenii diverse: DeepMind, fondată în 2010, cu sediul la Londra, este un subsidiar al lui Alphabet, compania-umbrela a lui Google; OpenAI fondat în 2015 la San Francisco, printre alții de Elon Musk, este un laborator de cercetare și proiectare, având o parte din activitate non-profit. Unul dintre rezultatele cele mai semnificative ale activității lui OpenAI este GPT (prescurtare pentru Generative Pre-training Transformer) care este un model generativ de limbaj, capabil să acumuleze cunoștințe din citirea unei cantități imense de text. Cu alte cuvinte, programele bazate pe GPT citesc cu nesaț biblioteci întregi care pot fi compuse din texte din cărți, ziare, postări pe Internet sau… cod de calculator și, pe baza lor, pot genera variante de text consistent în limbile respective. Desigur, o mare parte dintre variantele create vor fi ininteligibile, lipsite de sens sau de utilitate. Capacitatea imensă de generare de text/cod și de filtrare a calculatoarelor moderne face ca printre rezultate să se afle și produse utile. Printre altele, se află poezie și proză scrise de mașini, și de-a lungul timpului am trecut în revistă câteva exemple și în rubrica CHANGE.WORLD. Artele vizuale sunt un alt domeniu de explorare în care există rezultate.

(sursa imaginii: venturebeat.com/2019/03/11/openai-launches-new-company-for-funding-safe-artificial-general-intelligence/)

Seria de modele produse de OpenAI a ajuns la versiunea a treia, Generative – Pre-trained Transformer – 3 (GPT-3), lansată în mai 2020. GPT-3 este o rețea neuronală artificială enormă, antrenată pe cantități uriașe de text extrase de pe web. Chiar dacă nu ‘înțelege’ semnificația textelor respective, el poate capta tiparele de limbaj suficient de bine pentru a genera articole pe un anumit subiect, a rezuma succint un text sau a răspunde la întrebări despre conținutul documentelor. Accesul este controlat, deoarece o parte dintre aplicații fac posibile acțiuni nocive, cum sunt, de exemplu, generarea automată de ‘fake news’,. Este unul dintre motivele pentru care în septembrie 2020 Microsoft a primit o licență exclusivă pentru GPT-3. Printre funcțiile introduse sau extinse de această versiune se află auto-învățarea, iar unul dintre exemplele de utilizare eficientă a acestor funcții menționată în literatura este un program de traducere automată din limba engleză în limba română (și germană) și invers. Acest software a avut ca punct de plecare o bibliotecă de texte și echivalentele lor în cele trei limbi. Pornind de aici, mașinile au creat software-ul automat de traducere.

(sursa imaginii: thoughtco.com/what-is-programming-958331)

GPT-3 (pentru cei care au acces la licență) și GPT-2 (care este accesibil public) pot fi folosite de firmele care concep programe software bazate pe principiul AI-completion (completare AI). Despre ce este vorba? Limbajele de programare se bazează pe repetitivitate și reutilizarea unor tipare, chiar în măsură mai mare decât limbajele naturale. Parcurgând un număr imens de biblioteci de cod, programele AI-completion sunt capabile să prezică ce linii de cod urmează chiar în timpul scrierii programelor. Pe acest principiu se bazează TabNine, un software de programare inventat de compania israeliană cu același nume, fondată de Eran Yahav și Dror Weiss. Programul, bazat pe GPT-2, este capabil să înțeleagă modul de a funcționa, de exemplu, al unui departament de achiziții și să genereze programul care scrie ordinele de aprovizionare. Microsoft a incorporat completarea AI în versiunile recente ale programelor sale Visual Studio. Funcții similare sunt oferite de Kite, o firmă de software din San Francisco, și JetBrains, companie ceho-rusească, firme care oferă extinderi automate bazate pe AI, folosite în procesul de scriere a programelor de soft. Creșterile de eficiență raportate de aceștia se situează între 10% și aproape 50%.

Extinderea capacității de programare nu este singurul beneficiu posibil al introducerii metodelor AI. Odată scrise, testate și trimise în exploatare, programele trebuie întreținute și, după cum știu toți inginerii de software, una dintre activitățile cele mai laborioase și mai solicitante ca resurse este depanarea (‘debugging’) programelor în exploatare. Două proiecte, aflate în plină dezvoltare la Universitatea New York (NYU) și la Massachusetts Institute of Technology (MIT), vizează detectarea secvențelor eronate de cod prin inspectarea programelor și izolarea anomaliilor. Același principiu poate fi folosit și în scopuri de securitate IT, pentru detectarea fragmentelor de cod ostile injectate intenționat în programele utilizatorilor.

(sursa imaginii: techidology.com/best-programming-languages-for-ai/)

Modelele de explorare și programele descrise până acum aparțin unei lumi în care deciziile de generare a unor noi programe, ca și sarcina proiectării arhitecturii și a scrierii software-ului de bază sunt activități umane. Se va întâmpla însă asta totdeauna în viitor? Nu este deloc sigur. Pentru a explora acest teritoriu necunoscut să analizăm cum ia naștere un nou program de soft. El pleacă de la o necesitate socială, economică, de divertisment, tradusă într-un set de funcții exprimate în limbaj natural și scrise de obicei într-o specificație sau un caiet de sarcini. Pot fi acestea înțelese și traduse în limba mașinilor, deci în cod executabil? Cel puțin o parte dintre ele, da. Este ceea ce propune produsul firmei franceze SourceAI, un generator de cod, dotat cu capabilități AI, capabil să înțeleagă limbajul natural și să genereze cod în orice limbaj de programare. Problemele, deocamdată de complexitate redusă, pot fi exprimate în text în limbile engleză, franceză, germană sau spaniolă și rezultatele calculate de generatorul de cod bazat pe GPT-3 încep să fie furnizate în câteva secunde. Cei care au examinat codul generat au constatat că, din punctul de vedere al calității și securității, acesta este superior celui scris de programatori umani.

Există și pericole. Într-o lucrare postată online în martie, cercetătorii de la MIT au arătat că un program AI instruit pentru a verifica dacă codul vă rula în siguranță poate fi ‘păcălit’ făcând câteva modificări atente, precum înlocuirea anumitor variabile, pentru a crea un program dăunător. Dr. Dolan-Gavitt, profesor la NYU, spune că natura modelelor lingvistice utilizate pentru a genera instrumente de scris software pune, de asemenea, probleme. Bazându-se pe biblioteci de programe scrise de oameni, care, inerent, conțin greșeli, programele extinse de AI pot genera greșeli similare în cantitate mare.

(sursa imaginii: alliedmarketresearch.com/humanoid-robot-market-A08021)

Limitările actuale sunt surmontabile. Perfecționarea capacității de înțelegere a limbajelor naturale și traducerea acestora în cod sunt tehnologii perfectibile, și în momentul în care exista blocurile de bază, dezvoltarea este incrementală. Capacitatea de auto-învățare combinată cu noile generații de modele lingvistice au demonstrat că mașinile acționate de software sunt capabile să genereze software. Pe de altă parte, așa cum am văzut în articole precedente, roboții avansați acționând mașini de printare 3D pot multiplica și ei carcasele fizice ale mașinilor gânditoare. Roboții care fabrică roboți acționați de programe care scriu programe sunt deci perfect realizabili astăzi. Cu precauțiile necesare oricărei predicții, pot aprecia că tehnologia necesară apariției unei rase de roboti umanoizi capabili de auto-multiplicare nu este mai îndepărtată decât 2-3 decenii. Chimia sintezei organice și ingineria genetică adaugă promisiuni și perspective care sunt încă puțin explorate. Viitorul se aproprie cu viteză accelerată.

NOTA 1: Acest articol a fost scris de un software bazat pe Inteligență Artificială (AI), specializat în scrierea de articole pentru rubrica CHANGE.WORLD a revistei ‘Literatura de Azi’.

NOTA 2: NOTA 1 este numai în parte o glumă.

(Articolul a apărut iniţial în revista culturală ‘Literatura de Azi’ – http://literaturadeazi.ro/)

This entry was posted in change.world and tagged . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *