GitHub hat Arbeiten zur Anwendung von maschinellem Lernen zur Suche und Analyse von Code veröffentlicht.

GitHub vor Projekt CodeSearchNet, im Rahmen dessen Modelle des maschinellen Lernens und Datensätze erstellt wurden, die erforderlich sind, um Code in verschiedenen Programmiersprachen zu verstehen, zu klassifizieren und zu analysieren. CodeSearchNet, ähnlich wie ImageNet, umfasst eine große Sammlung von Codeausschnitten, die mit Annotationen versehen sind, die die durch den Code ausgeführten Aktionen formal beschreiben. Die Komponenten zum Trainieren von Modellen und Beispiele für die Nutzung von CodeSearchNet sind in Python unter Verwendung des Tensorflow-Frameworks geschrieben, und wird verbreitet unterliegt der MIT-Lizenz.

Bei der Erstellung von CodeSearchNet wurden Technologien zur Verarbeitung natürlicher Sprache genutzt, die es Machine-Learning-Systemen ermöglichen, nicht nur syntaktische Merkmale, sondern auch die Bedeutung der durch den Code ausgeführten Aktionen zu berücksichtigen. Auf GitHub hat das System angewendet in Experimenten zum Aufbau einer semantischen Codesuche unter Verwendung von Anfragen in natürlicher Sprache (zum Beispiel wird bei der Anfrage „Sortierung einer Liste von Zeichenfolgen“ der Code ausgegeben, der die entsprechenden Algorithmen implementiert).

Der angebotene Datensatz enthält über 2 Millionen „Code-Kommentar“-Paare, die auf den Quelltexten bestehender Open-Source-Bibliotheken basieren. Der Code umfasst den vollständigen Quelltext einzelner Funktionen oder Methoden, während der Kommentar die durch die Funktion ausgeführten Aktionen beschreibt (eine detaillierte Dokumentation wird bereitgestellt). Derzeit sind Datensätze für die Sprachen Python, JavaScript, Ruby, Go, Java und PHP verfügbar. Beispiele für die Nutzung der angebotenen Datensätze zum Training verschiedener Arten von neuronalen Netzwerken werden bereitgestellt, einschließlich Neural-Bag-Of-Words, RNN, Self-Attention (BERT) und 1D-CNN+Self-Attention Hybrid.

Um die Mechanismen der Suche in natürlicher Sprache weiterzuentwickeln, wurde zusätzlich der CodeSearchNet Challenge-Datensatz vorbereitet, der
99 Typanfragen mit rund 4.000 Expertenannotations, die die wahrscheinlichsten Zuordnungen zu Code im CodeSearchNet-Korpus beschreiben, der etwa 6 Millionen Methoden und Funktionen umfasst (die Größe des Datensatzes beträgt etwa 20 GB). Der CodeSearchNet Challenge kann als Referenz zur Bewertung der Effektivität verschiedener Methoden zur Codesuche in natürlicher Sprache dienen. Unter Verwendung des Werkzeugs Kubeflow vorbereitet
Beispiel eine Engine zur Codesuche.

Quelle: opennet.ru

60GB SSD 8Gb DDR4