GitHub projekt , 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 , 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 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 w eksperymentach dotyczących organizacji semantycznego wyszukiwania kodu przy użyciu zapytań w (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 , , (BERT) oraz .
Aby rozwijać mechanizmy wyszukiwania w naturalnym języku, dodatkowo przygotowano zbiór CodeSearchNet Challenge, który zawiera
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 ( 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 przygotowano
silnika do wyszukiwania kodu.
Źródło: opennet.ru
