GitHub uruchomił system uczenia maszynowego Copilot, który generuje kod

GitHub ogłosił zakończenie testów inteligentnego asystenta GitHub Copilot, zdolnego do generowania standardowych konstrukcji podczas pisania kodu. System został opracowany wspólnie z projektem OpenAI i wykorzystuje platformę uczenia maszynowego OpenAI Codex, trenowaną na szerokiej gamie kodów źródłowych hostowanych w publicznych repozytoriach GitHub. Usługa jest bezpłatna dla opiekunów popularnych projektów open source i studentów. W przypadku innych kategorii użytkowników dostęp do GitHub Copilot jest płatny (10 USD miesięcznie lub 100 USD rocznie), ale bezpłatny dostęp próbny jest zapewniany przez 60 dni.

Generowanie kodu jest obsługiwane w językach programowania Python, JavaScript, TypeScript, Ruby, Go, C# i C++ przy użyciu różnych frameworków. Dostępne są moduły umożliwiające integrację GitHub Copilot ze środowiskami programistycznymi Neovim, JetBrains IDE, Visual Studio i Visual Studio Code. Sądząc po telemetrii zebranej podczas testów, usługa pozwala na wygenerowanie kodu o dość wysokiej jakości – przykładowo 26% rekomendacji zaproponowanych w GitHub Copilot zostało zaakceptowanych przez programistów w obecnej postaci.

GitHub Copilot różni się od tradycyjnych systemów uzupełniania kodu możliwością generowania dość skomplikowanych bloków kodu, aż po gotowe funkcje syntetyzowane z uwzględnieniem aktualnego kontekstu. GitHub Copilot dostosowuje się do sposobu, w jaki deweloper pisze kod i uwzględnia API oraz frameworki użyte w programie. Na przykład, jeśli w komentarzu znajduje się przykład struktury JSON, gdy zaczniesz pisać funkcję analizującą tę strukturę, GitHub Copilot zaproponuje gotowy kod, a podczas pisania rutynowych list powtarzających się opisów wygeneruje pozostałą część pozycje.

GitHub uruchomił system uczenia maszynowego Copilot, który generuje kod

Zdolność GitHub Copilot do generowania gotowych bloków kodu wywołała kontrowersje związane z potencjalnymi naruszeniami licencji typu copyleft. Przy tworzeniu modelu uczenia maszynowego wykorzystano prawdziwe teksty źródłowe z repozytoriów projektów open source znajdujących się na GitHubie. Wiele z tych projektów jest udostępnianych na licencjach typu copyleft, takich jak GPL, które wymagają, aby kod dzieł pochodnych był rozpowszechniany na podstawie kompatybilnej licencji. Wstawiając istniejący kod zgodnie z sugestią Copilot, programiści mogą nieświadomie naruszyć licencję projektu, z którego kod został zapożyczony.

Nie jest jeszcze jasne, czy pracę wygenerowaną przez system uczenia maszynowego można uznać za pochodną. Pojawiają się także pytania, czy model uczenia maszynowego podlega prawu autorskiemu, a jeśli tak, to kto jest właścicielem tych praw i jak odnoszą się one do praw do kodu, na którym oparty jest model.

Z jednej strony wygenerowane bloki mogą powtarzać fragmenty tekstu z istniejących projektów, ale z drugiej strony system odtwarza strukturę kodu, a nie kopiuje sam kod. Według badania GitHub tylko w 1% przypadków rekomendacja Copilot może zawierać fragmenty kodu z istniejących projektów dłuższe niż 150 znaków. W większości sytuacji powtórzenia mają miejsce, gdy Copilot nie może poprawnie określić kontekstu lub oferuje standardowe rozwiązania problemu.

Aby zapobiec podmianie istniejącego kodu, do Copilot dodano specjalny filtr, który nie pozwala na skrzyżowania z istniejącymi projektami. Podczas konfiguracji programista może włączyć lub wyłączyć ten filtr według własnego uznania. Wśród innych problemów istnieje możliwość, że w zsyntetyzowanym kodzie mogą się powtarzać błędy i luki obecne w kodzie używanym do uczenia modelu.

Źródło: opennet.ru

Dodaj komentarz