Obecnie obserwujemy wzrost liczby różnych rozwiązań oferowanych w zakresie generowania kodu przy użyciu sztucznej inteligencji (AI), a dziedzina przetwarzania języka naturalnego (NLP) utorowała drogę dla szeregu AI generujących kod w różnych językach programowania.
Wśród nich możemy wyróżnić GitHub Copilot, AlphaCode i Codex, a teraz możemy dodać nowe rozwiązanie opracowane przez badaczy z Carnegie Mellon University , którzy niedawno zaprezentowali „PolyCoder” – generator kodu bazujący na modelu języka GPT-2 firmy OpenAI, który został wytrenowany na bazie kodu o rozmiarze 249 GB w 12 językach programowania.
O PolyCoderze
Autorzy PolyCodera twierdzą, że jest on w stanie pisać w języku C z większą dokładnością niż jakikolwiek znany model, w tym Codex.
Sztuczna inteligencja generująca kod, potrafiąca pisać kod źródłowy w różnych językach programowania z poziomu monitu, obiecuje obniżenie kosztów tworzenia oprogramowania, pozwalając jednocześnie programistom skupić się na kreatywnych i mniej powtarzalnych zadaniach.
PolyCoder został przeszkolony z wykorzystaniem danych pochodzących z kilku repozytoriów GitHub, obejmujących 12 popularnych języków programowania: C, C#, C++, Go, Java, JavaScript, PHP, Python, Ruby, Rust, Scala i TypeScript.
Niefiltrowany zbiór danych obejmował łącznie 631 GB danych i 38,9 miliona plików. Zespół poinformował, że zdecydował się na trenowanie PolyCodera z wykorzystaniem GPT-2 ze względu na ograniczenia budżetowe. PolyCoder jest dostępny jako oprogramowanie open source, a naukowcy mają nadzieję, że może on zdemokratyzować badania w dziedzinie generowania kodu AI, która do tej pory była zdominowana przez dobrze finansowane firmy.
Naukowcy uważają, że PolyCoder radzi sobie lepiej niż inne modele w generowaniu kodu w języku C. Jednak Codex konsekwentnie przewyższa go w innych językach. „PolyCoder znacząco przewyższa Codex i wszystkie inne modele w języku C”.
„Kiedy Copilot pojawił się na GitHub zeszłego lata, stało się jasne, że te bardzo duże modele kodu językowego mogą być bardzo przydatne w pomaganiu programistom i zwiększaniu ich produktywności. Ale żaden model nawet zbliżony do tej skali nie był publicznie dostępny” – powiedzieli naukowcy VentureBeat pocztą elektroniczną. „Więc [PolyCoder] zaczął od Vincenta, który próbował ustalić, jaki był największy model, który można było wytrenować na naszym serwerze laboratoryjnym, który ostatecznie zawierał 2700 miliarda parametrów… i ten model wyprzedził o ligę inne modele zorientowane na kod, które mieliśmy były publicznie dostępne w tamtym czasie”.
„ Porównując wyłącznie modele open source, PolyCoder przewyższa model GPT-Neo 2.7B o podobnej wielkości w językach C, JavaScript, Rust, Scala i TypeScript” – zauważają. „W pozostałych 11 językach, wszystkie inne modele open source, w tym nasz, wypadają znacznie gorzej (większa złożoność) niż Codex” – dodali badacze z CMU.
Dzięki temu PolyCoder jest pozycjonowany jako bardzo interesujące rozwiązanie, ponieważ podczas gdy laboratoria badawcze, takie jak OpenAI Elona Muska i DeepMind firmy Alphabet, opracowały potężną sztuczną inteligencję do generowania kodu, wiele z najbardziej udanych systemów nie jest dostępnych w otwartym kodzie źródłowym. Firmy o niskich dochodach nie mają do niego dostępu, a sytuacja ta ogranicza ich badania w tej dziedzinie.
Na przykład dane treningowe z OpenAI Codex, które zasilają funkcję Copilot w GitHub, nie zostały upublicznione, co uniemożliwia naukowcom dopracowanie modelu AI lub zbadanie pewnych jego aspektów, takich jak interoperacyjność.
„Duże firmy technologiczne nie udostępniają publicznie swoich modeli, co naprawdę wstrzymuje badania naukowe i demokratyzację tak dużych modeli kodu językowego” – powiedzieli naukowcy. „Do pewnego stopnia mamy nadzieję, że nasze wysiłki na rzecz otwartego oprogramowania przekonają innych do tego samego. Ale ogólny obraz jest taki, że społeczność powinna być w stanie samodzielnie szkolić te modele. Nasz model przesunął granice tego, co można trenować na jednym serwerze — wszystko, co większe, wymaga puli serwerów, co dramatycznie zwiększa koszty”.
Na koniec, jeśli chcesz dowiedzieć się więcej na ten temat , możesz znaleźć szczegóły pod poniższym linkiem.