piatok 17. marca 2023

Trend: Kódovací asistenti s umelou inteligenciou

Inteligentný chatbot ChatGPT podnietil našu predstavivosť a hľadanie odpovede, akú úlohu bude mať umelá inteligencia (AI) v budúcnosti. Spoločnosť OpenAI vyvíja tiež nástroj Codex, ktorý by mohol úplne zmeniť spôsob práce vývojárov. Na základe dát zhromaždených z celého webu dokáže ChatGPT odpovedať na takmer akúkoľvek otázku, aj keď nie vždy presne, a to tak, že odpoveď vyzerá, akoby ju napísal človek. Codex  namiesto viet píše softvérový kód. Zadáte mu, aký typ softvérového problému sa snažíte vyriešiť a Codex vám navrhne riešenie pomocou kódu.
Ak už teraz môže nástroj AI písať kód za vývojárov, vyvstáva otázka, ako to ovplyvní študentov informatiky a či nezmiznú vysoko platené pracovné miesta softvérových inžinierov. 
 
OpenAI Codex alebo aj Tabnine, CodeT5, Polycoder a Cogram sú kódovací asistenti s AI. Boli vyvinutí s cieľom pomôcť programátorom písať kód rýchlejšie as menším počtom chýb, čo z nich robí skvelých pomocníkov. Pokiaľ ide o rozhodovanie, ktorý z nich je najlepší, záleží na individuálnych potrebách a cieľoch daného programátora. Kódovací asistenti sa medzi sebou líšia typmi podporovaných jazykov, možnosťami integrácií a tým, či sú open source, prípadne koľko stoja. Codex aj Polycoder majú širokú škálu podporovaných jazykov a ponúkajú užitočné odporúčania pre mnoho typov kódu. Každý model však využíva iný set trénovacích dát. Polycoder Codex dlho prekonával napríklad v jazyku C. Tabnine je zase obľúbenou voľbou vďaka svojmu užívateľsky prívetivému rozhraniu a jednoduchej integrácii s textovými editormi. Cogram a CodeT5 sa profilujú viac do správy projektov a zefektívňovania procesov, ktoré sú repetitívne a užívateľom len zbytočne zaberajú čas. CodeT5 je vyvinutý Salesforce, preto je logickým výberom pre Apex vývojárov. Cogram našiel využitie v data science pre lepšie pochopenie veľkých dát.

OpenAI Codex je model AI, ktorý procesuje prirodzenú reč a tvorí z nej kód. Inými slovami môžete vlastnými slovami popísať čo chcete, aby daný kus kódu robil napríklad v JavaScripte a Codex za vás kód napíše. Codex odpovede ponúka na základe svojich trénovacích dát, čím čím bežnejší problém popisujete, tým lepšiu odpoveď dostanete. To z neho robí skvelého pomocníka pri porovnávaní možností medzi jednotlivými programovacími jazykmi. Slúži aj ako užitočná nápoveda či inšpirácia pre riešenie problému, na ktorom daný programátor pracuje. Codex môže začínajúcim programátorom pomôcť, rovnako ako ChatGTP. Keď si nie ste istí správnosťou daného postupu, prípadne neviete, ako nejaký kus kódu napísať, tieto nástroje vám môžu pomôcť. Je však potrebné vedieť, ktorým smerom sa chcete uberať a prečo, inak slepo kopírujete kód. A namiesto toho, aby ste sa učili, tak skôr stagnujete. Avšak pre verifikáciu, pomocníka alebo na rozšírenie znalostí o ďalšie programovacie jazyky a technológie, môžu byť tieto nástroje užitočné. Relevantnosť výsledkov generovaných modelom ChatGPT závisí od mnohých faktorov, akými sú špecifikácia dotazu, kontext, aktuálne výcvikové dáta a ďalšie. Model ChatGPT je trénovaný na veľkom množstve textových dát a je schopný generovať odpovede s dobrou mierou relevancie na dostatočne špecificky položené otázky. Je ale rolou daného programátora si výsledky overiť. Všetky modely sú len algoritmy, ktoré boli trénované na veľkom množstve dát, aby dokázali odpovedať na špecifické otázky a generovať výstupy. Tieto modely nemajú schopnosť vlastného uvažovania ani rozhodovania, teda nemajú možnosť ani ďalšie umelé inteligencie vytvoriť.

A čo autorské práva? Na konci minulého roka bola na jeden z AI nástrojov na písanie kódu, GitHub Copilot, podaná v Amerike žaloba. Podľa žaloby Microsoft a OpenAI porušujú autorské práva všetkých vývojárov, ktorí publikovali svoju prácu na Githube pod open-source licenciou, pretože tieto dáta boli využité ako trénovacie. „Všeobecným pravidlom ohľadom autorských práv je, že pokiaľ si nie ste jednoznačne istí tým, že kód môžete voľne využiť, typicky preto, že je to vyslovene uvedené, tak by ste ho využívať nemali,“ vysvetľuje Jana Večerková .