DeepMind stworzył system sztucznej inteligencji o nazwie AlphaCode, który, jak mówi, „pisze programy komputerowe na konkurencyjnym poziomie”. System został przetestowany pod kątem wyzwań związanych z kodowaniem stosowanych w konkurencji międzyludzkiej i znalazł się wśród 54% najlepszych w programie.
Według DeepMind jest to znaczący krok naprzód w zakresie kodowania offline, chociaż umiejętności AlphaCode niekoniecznie są reprezentatywne dla zadań programistycznych, przed którymi stoi przeciętny koder.
Oriol Vinyals, główny naukowiec w DeepMind, zauważa, że badania są wciąż na wczesnym etapie, ale ich odkrycia przybliżyły firmę do budowania elastycznej sztucznej inteligencji w celu rozwiązywania złożonych problemów z kodowaniem. „Cieszymy się, że AlphaCode może pomóc programistom i nie-programistom w pisaniu kodu, zwiększaniu produktywności lub tworzeniu nowych sposobów tworzenia oprogramowania” — powiedział Vinyals.
W jednym z przykładowych problemów, w których testowano AlphaCode, uczestników poproszono o znalezienie sposobu na przekonwertowanie pojedynczego ciągu losowo powtarzających się liter s i t przy użyciu ograniczonego zestawu danych wejściowych:
„Otrzymujesz dwa ciągi s i t, z których każdy składa się z małych liter łacińskich. Zamierzasz wydrukować łańcuch znaku, zaczynając od pierwszego znaku i kończąc na ostatnim.
Kiedy masz zamiar wpisać znak, zamiast naciskać przycisk, który drukuje ten znak, możesz nacisnąć przycisk "Backspace". Naciśnięcie tego przycisku usuwa ostatni wpisany znak, który nie został jeszcze usunięty (lub nic nie robi, jeśli wszystkie już wydrukowane znaki zostały usunięte lub nie wpisałeś jeszcze żadnego znaku). Na przykład, jeśli ciąg s to „abcbd” i naciśniesz przycisk Backspace zamiast drukowania pierwszego i czwartego znaku, wynikiem będzie ciąg „bd” (pierwsze naciśnięcie klawisza Backspace nie usunie żadnych znaków, a drugie naciśnięcie tego przycisku spowoduje usunięcie znaku „c” ). Inny przykład: jeśli s to „abcaa” i naciśniesz Backspace zamiast dwóch ostatnich liter, to będzie to „a”.
Musisz określić, czy możesz uzyskać ciąg t, jeśli spróbujesz wpisać ciąg s, naciskając klawisz Backspace zamiast naciskania przycisków odpowiadających niektórym (prawdopodobnie żadnej) literom w ciągu s."
AlphaCode wygenerował więcej możliwych odpowiedzi i odrzucił je, uruchamiając kod i sprawdzając dane wyjściowe, tak jak zrobiłby to człowiek.
System został przetestowany na 10 problemach, które na stronie Codeforces rozwiązało 5000 użytkowników. Średnio plasuje się w czołówce 54,3% odpowiedzi.
DeepMind zauważa, że obecny zestaw umiejętności AlphaCode ma obecnie zastosowanie tylko w dziedzinie programowania konkurencyjnego, ale jego możliwości otwierają drzwi do tworzenia przyszłych narzędzi, które uczynią programowanie bardziej dostępnym.
Wiele innych firm pracuje nad podobnymi aplikacjami. Na przykład w sierpniu 2021 r. OpenAI wydał Codex, nowy system, który automatycznie konwertuje proste angielskie frazy na kod. Kodeks oparty jest na GPT-3.
Jak dotąd jednak systemy dalekie są od przejmowania pracy ludzkich programistów. Tworzony przez nich kod jest często błędny, a ponieważ algorytmy są zwykle szkolone na publicznych bibliotekach kodu, czasami odtwarzają materiał chroniony prawem autorskim.
Tak więc w czerwcu 2021 r. Microsoft i GitHub wprowadzili asystenta programisty Copilot opartego na sieci neuronowej Codex od Open AI. System jest przeszkolony do pracy z różnymi frameworkami i językami programowania. W sierpniu wydano ulepszoną wersję Kodeksu, który tłumaczy angielskie zwroty na kod programu.
Twórcy zauważyli, że asystent sieci neuronowej generuje linie z projektów open source, nie przestrzegając oryginalnej licencji. Skarżyli się również, że Copilot wygenerował dziesiątki linii cytatów i komentarzy z projektów open source zamiast zaledwie kilku linii kodu. GitHub wyjaśnił, że Copilot zazwyczaj nie odtwarza dokładnych fragmentów kodu, ale tworzy prace pochodne z wcześniej otrzymanych danych wejściowych. Firma twierdzi, że zdarza się to tylko w 0,1% przypadków.
GitHub przyznał następnie, że podczas szkolenia Copilota programiści wykorzystali cały publiczny kod dostępny w repozytoriach usługi, niezależnie od rodzaju licencji.
Okazało się również, że około 40% kodu produkowanego przez Copilot zawiera błędy i luki.
bbabo.Net