Britská dceřiná společnost Google pro umělou inteligenci, DeepMind, oznámila začátkem tohoto měsíce „nový milník v konkurenčním programování“, když představila AlphaCode, systém, o kterém tvrdí, že dokáže psát plnohodnotné počítačové programy, které jsou příznivě srovnatelné s prací lidí. Vývoj softwaru byl dlouho označován jako oblast, kde může mít umělá inteligence významný dopad, a s pokroky, které AlphaCode a další systémy nabízejí, je vyhlídka, že lidské kodéry nahradí stroje, reálná?
Systém AlphaCode společnosti DeepMind porazil v kódovací soutěži 54 % lidských účastníků. (Foto Daniel Acker/Bloomberg přes Getty Images)
DeepMind říká, že AlphaCode je schopen porozumět problému a poté napsat program, který tento problém vyřeší. Tvrdí, že testoval systém proti lidem, kteří se účastnili soutěží v kódování, a zjistil, že jeho výsledky patří mezi 54 % nejlepších lidských účastníků.
„Řešení problémů s konkurenčním programováním je opravdu těžká věc, která vyžaduje jak dobré znalosti kódování, tak kreativitu při řešení problémů u lidí,“ řekl softwarový inženýr společnosti Google Petr Mitrichev, který se účastní soutěží v kódování. "Byl jsem velmi ohromen, že AlphaCode mohl v této oblasti pokročit, a byl jsem nadšený, když jsem viděl, jak model využívá své porozumění příkazům k vytváření kódu a vede jeho náhodné zkoumání k vytváření řešení."
Vzhledem k tomu, že AlphaCode vykazuje tak působivý pokrok, mohli Mitrichev a jeho kolegové odpustit pohled přes rameno.
Související
Umělá inteligence a automatizaceObnova po pandemii poskytuje vysoce rizikovým úlohám „dočasnou úlevu“ od automatizace
Jak významný je AlphaCode společnosti DeepMind?
DeepMind použil kombinaci strojového učení bez dohledu a pod dohledem trénovat modely umělé inteligence, které jsou základem AlphaCode. Nejprve systém absorboval 715 gigabajtů dat z kódovacího úložiště GitHub, než jej tým DeepMind doladil pomocí databáze, kterou vytvořil z problémových prohlášení, testovacích případů a podání – správných i nesprávných – ze soutěží v kódování.
Data, statistiky a analýzy, které vám byly doručenyZobrazit všechny zpravodaje Od týmu Tech MonitorPřihlaste se k odběru našich zpravodajůKdyž se objeví nový problém, AlphaCode prohledá informace, které má, přichází s tisíci nebo v některých případech s miliony řešení a poté je vyfiltruje až na deset nejlepších, které do soutěže odešle. Pokud se některý z nich ukáže jako správný, tým to považuje za úspěch.
Obsah od našich partnerů
Zavedené banky se musí rychle transformovat, jinak jim nebudou chybět výhody otevřeného bankovnictví
Využijte cloud a odborné znalosti k optimalizaci zapojení od registrace až po závěr
Jak se mohou podniky nejlépe připravit na digitalizaci financí
Tento proces odlišuje AlphaCode od ostatních nástrojů pro kódování AI, jako je OpenAI Codex, které jsou schopny na příkaz generovat specifické úryvky kódu. „Je to průlom v tom smyslu, že řeší problémy s programováním mnohem složitější než dřívější systémy,“ říká profesor Ernest Davis z katedry informatiky na New York University.
Ale profesor Davis říká, že to není bez omezení. Protože jeho metoda zahrnuje vymýšlení tolika potenciálních řešení problému (než je odfiltruje, aby se našlo ta nejlepší), množství trénovacích dat potřebných k psaní složitějších programů bude pravděpodobně obrovské. "Je rozumné očekávat, že počet požadovaných vzorků exponenciálně roste s délkou programu," říká profesor Davis. Při získávání přesných řešení se také spoléhá na relevanci svých tréninkových dat, což by lidský programátor mohl obejít, i když o předmětu neměl žádné znalosti.
AlphaCode je užitečný příspěvek k výzkumu umělé inteligence, ale kódování umělé inteligence na úrovni zkušeného člověka je stále vzdálené světelné roky.
Dzmitry Bahdanau, ServiceNow
A ve srovnání s dalšími úspěchy DeepMind v oblasti AI je AlphaCode relativně malým úspěchem, tvrdí Dzmitry Bahdanau, vědecký pracovník u dodavatele softwaru pro workflow ServiceNow, který studoval, jak AlphaCode funguje. „V tuto chvíli je AlphaCode užitečným příspěvkem k výzkumu AI, ale kódování AI na úrovni zkušeného člověka je stále vzdálené světelné roky,“ říká. "Tohle není AlphaGo, pokud jde o bití lidí, a ne AlphaFold, pokud jde o revoluci v celé oblasti vědy."
Nahradí umělá inteligence lidské programátory?
I kdyby umělá inteligence, jako je AlphaCode, dokázala překonat tato omezení, podmínky, ve kterých fungovala při testování, jsou výrazně odlišné od světa profesionálního vývoje softwaru, říká Dr. Peter Schrammel, lektor informatiky na University of Sussex a CTO a spoluzakladatel softwarové společnosti Diffblue. „Problémy s kódováním jsou relativně specifické, protože zadání musí být co nejjednoznačnější, aby bylo možné řešení spravedlivě porovnávat,“ vysvětluje. "Popis je docela dobře strukturovaný a příklady jsou uvedeny konzistentním způsobem."
Vývoj v reálném světě je „jiné zvíře“, tvrdí. „Požadavky jsou vágní a určují se v postupných iteracích,“ říká. „Vývojáři softwaru vyjednávají požadavky v rozhovorech se zúčastněnými stranami, implementují první verzi, poté ji předvedou a diskutují se zúčastněnými stranami, co zlepšit pro další iteraci.“ Zatímco při výzvě kódování „je dokonale známo, jaké jsou požadavky,“ říká Dr Schrammel, „při vývoji softwaru v reálném světě je primární výzvou extrahování požadavků z hlav zainteresovaných stran.“
Bahdanau souhlasí a říká, že nevěří, že mnoho lidí v oboru „vážně považuje [AI nahrazující lidské programátory] jako cíl“. „Lidé chápou širší kontext, skutečný reálný účel toho, proč je potřeba kód napsat,“ říká. „AlphaCode, Codex a další jsou jen velmi pokročilé statistické metody, které obsahují miliardy gigabajtů kódu. To znamená, že umělá inteligence má potenciál pomoci vývojářům lidského softwaru dokončit jejich práci rychleji.“
Jak umělá inteligence pomůže vývoji softwaru?
Ale vzhledem k přetrvávajícímu nedostatku technických dovedností, který hrozí zpomalit tempo digitální transformace, AI hraje významnou roli ve vývoji softwaru , což pomáhá stále více roztaženým IT týmům. Tech Monitor informoval o rostoucí popularitě nízkokódových a nekódovaných systémů, které umožňují netechnickým pracovníkům vytvářet digitální funkce pro usnadnění jejich práce, přičemž se očekává, že nekódování bude představovat 65 % vývoje aplikací do roku 2024, uvádí Gartner.
Pro profesionály budou nástroje jako GitHub CoPilot, který navrhuje řádky kódu nebo funkce napomáhající vývoji, pravděpodobně nejproduktivnějším využitím AI v krátkodobém až střednědobém horizontu, tvrdí Dr. Schrammel. „Samotný vývoj softwaru od svého počátku do značné míry těží z automatizace,“ říká. "Nikdo už ručně nevytváří strojový kód." Automatizované nástroje, jako jsou kompilátory a generátory kódu, transformují formální specifikace aplikace na vysoké úrovni na strojově spustitelný kód.“
Samotný vývoj softwaru do značné míry těží z automatizace od svého počátku.
Dr Peter Schrammel, University of Sussex
Vzestup těchto kompilátorů přinesl automatizaci „únavných úkolů“, ale nevedl to ke snížení počtu lidských vývojářů, dodává Dr Schrammel. „Jedním z důvodů může být to, že mnoho činností souvisejících s vývojem softwaru, jako je inženýrství požadavků, spoléhá na širokou škálu doménových znalostí a musí se potýkat s velkou mírou nejednoznačnosti,“ říká. "Tyto činnosti je mnohem těžší automatizovat než činnosti, které jsou pravidelnější, jako je kódování podle dobře definovaných specifikací a testování."
Další automatizace testovacích systémů bude pravděpodobně další hranicí AI v programování, říká Dr. Schrammel. Jak se automatizace zvyšuje, Bahdanau věří, že stále důležitější úlohou lidských vývojářů bude zajistit, aby bylo pochopeno, jak umělá inteligence generuje kód. „Profesionální vývojáři budou muset porozumět a ověřit algoritmus, který AI navrhuje,“ říká. „Pro občanské vývojáře, kteří používají programovací rozhraní s nízkým nebo žádným kódem, bude laťka důvěryhodnosti AI ještě vyšší a budou potřebovat vývojářskou zkušenost, která vysvětlí logiku, kterou AI navrhuje.“
Témata v tomto článku: Vývojáři softwaru