GitHub hat Entwicklungen beim Einsatz von maschinellem Lernen für die Codesuche und -analyse eröffnet

GitHub eingeführt Projekt CodeSearchNet, das Modelle und Datensätze für maschinelles Lernen vorbereitet hat, die zum Parsen, Klassifizieren und Analysieren von Code in verschiedenen Programmiersprachen erforderlich sind. CodeSearchNet, ähnlich IMAGEnet, enthält eine große Sammlung von Codeausschnitten mit Anmerkungen, die formalisieren, was der Code tut. Komponenten zum Trainieren von Modellen und Beispiele für die Verwendung von CodeSearchNet werden in Python unter Verwendung des Tensorflow-Frameworks geschrieben vertrieben von unter der MIT-Lizenz.

Bei der Erstellung von CodeSearchNet wurden Technologien zur Textanalyse natürlicher Sprache verwendet, die es maschinellen Lernsystemen ermöglichen, nicht nur syntaktische Merkmale, sondern auch die Bedeutung der vom Code ausgeführten Aktionen zu berücksichtigen. Das GitHub-System gilt in Experimenten zur Organisation der semantischen Codesuche mithilfe von Abfragen Natürliche Sprache (Wenn Sie beispielsweise „Liste von Zeichenfolgen sortieren“ anfordern, wird Code mit der Implementierung der entsprechenden Algorithmen angezeigt.)

Der vorgeschlagene Datensatz umfasst mehr als 2 Millionen Code-Kommentar-Links, die auf der Grundlage der Quelltexte bestehender offener Bibliotheken erstellt wurden. Der Code deckt den vollständigen Quelltext einzelner Funktionen oder Methoden ab und der Kommentar beschreibt die von der Funktion ausgeführten Aktionen (eine ausführliche Dokumentation wird bereitgestellt). Derzeit werden Datensätze für Python, JavaScript, Ruby, Go, Java und PHP vorbereitet. Es werden Beispiele für die Verwendung der vorgeschlagenen Datensätze zum Training verschiedener Arten neuronaler Netze bereitgestellt, darunter Neural-Bag-of-Words, RNN, Selbstaufmerksamkeit (BERT) und 1D-CNN+Selbstaufmerksamkeits-Hybrid.

Um Suchmechanismen in natürlicher Sprache zu entwickeln, wurde zusätzlich eine Reihe von CodeSearchNet Challenges vorbereitet, darunter
99 typisch Abfragen mit etwa 4 Expertenanmerkungen, die die wahrscheinlichsten Codebindungen im CodeSearchNet Corpus-Datensatz beschreiben und etwa 6 Millionen Methoden und Funktionen abdecken (Größe einstellen ca. 20 GB). Die CodeSearchNet Challenge kann als Maßstab für die Bewertung der Wirksamkeit bestimmter Methoden zur Suche nach Code in natürlicher Sprache dienen. Verwendung von Werkzeugen Kubeflow bereit
Beispiel Code-Suchmaschine.

Source: opennet.ru

Kommentar hinzufügen