GitHub udostępnił prace nad zastosowaniem uczenia maszynowego do wyszukiwania i analizy kodu

GitHub przedstawił projekt CodeSearchNet, w ramach którego przygotowano modele uczenia maszynowego oraz zbiory danych, niezbędne do analizy, klasyfikacji i rozpoznawania kodu w różnych językach programowania. CodeSearchNet, podobnie jak ImageNet, zawiera dużą kolekcję fragmentów kodu, wzbogaconych adnotacjami formułującymi działania wykonywane przez ten kod. Składniki do szkolenia modeli i przykłady użycia CodeSearchNet zostały napisane w języku Python z wykorzystaniem frameworka Tensorflow oraz rozpowszechniany na licencji MIT.

Podczas tworzenia CodeSearchNet zastosowano technologie analizy tekstu w naturalnym języku, które umożliwiają systemom uczenia maszynowego uwzględnienie nie tylko syntaktycznych aspektów, ale także znaczenia działań wykonywanych przez kod. W GitHub system jest stosowane w eksperymentach dotyczących organizacji semantycznego wyszukiwania kodu przy użyciu zapytań w języku naturalnym (na przykład, przy zapytaniu „sortowanie listy stringów” wyświetlany jest kod implementujący odpowiednie algorytmy).

Proponowany zestaw danych obejmuje ponad 2 miliony powiązań „kod-komentarz”, przygotowanych na podstawie istniejących otwartych bibliotek. Kod obejmuje pełny tekst źródłowy poszczególnych funkcji lub metod, a komentarz opisuje działania wykonywane przez funkcję (zawiera szczegółową dokumentację). Obecnie zestawy danych zostały przygotowane dla języków Python, JavaScript, Ruby, Go, Java i PHP. Dostarczono przykłady wykorzystania proponowanych zestawów danych do uczenia różnych typów sieci neuronowych, w tym Neural-Bag-Of-Words, RNN, Self-Attention (BERT) oraz 1D-CNN+Self-Attention Hybrid.

Aby rozwijać mechanizmy wyszukiwania w naturalnym języku, dodatkowo przygotowano zbiór CodeSearchNet Challenge, który zawiera
99 typowych zapytaniach z około 4 tysiącami ekspertowych adnotacji, opisujących najbardziej prawdopodobne powiązania z kodem w zbiorze danych CodeSearchNet Corpus, obejmującym około 6 milionów metod i funkcji (rozmiar zbioru około 20 GB). CodeSearchNet Challenge może służyć jako punkt odniesienia do oceny skuteczności różnych metod wyszukiwania kodu w naturalnym języku. Przy użyciu narzędzi Kubeflow przygotowano
przykład silnika do wyszukiwania kodu.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster