GitHub ha aperto ricerche sull'applicazione dell'apprendimento automatico per la ricerca e l'analisi del codice

GitHub ha presentato progetto CodeSearchNet, nel cui ambito sono stati sviluppati modelli di apprendimento automatico e set di dati necessari per l'analisi, la classificazione e l'analisi del codice in diversi linguaggi di programmazione. CodeSearchNet, per analogia con ImageNet, include una grande collezione di frammenti di codice accompagnati da annotazioni che formalizzano le azioni eseguite dal codice. I componenti per l'addestramento dei modelli e gli esempi di utilizzo di CodeSearchNet sono scritti in Python utilizzando il framework Tensorflow e è distribuito sotto licenza MIT.

Nella creazione di CodeSearchNet sono state utilizzate tecnologie di elaborazione del linguaggio naturale che consentono ai sistemi di apprendimento automatico di considerare non solo le peculiarità sintattiche, ma anche il significato delle azioni eseguite dal codice. Su GitHub, il sistema applicato è stato utilizzato in esperimenti per l'organizzazione di una ricerca semantica del codice utilizzando query in linguaggio naturale (ad esempio, cercando "ordinamento di una lista di stringhe", viene restituito il codice con l'implementazione degli algoritmi corrispondenti).

Il set di dati proposto comprende oltre 2 milioni di coppie "codice-commento", preparate sulla base di testi sorgente di librerie open source esistenti. Il codice copre il testo sorgente completo di singole funzioni o metodi, e il commento descrive le azioni eseguite dalla funzione (viene fornita documentazione dettagliata). Attualmente i set di dati sono stati preparati per i linguaggi Python, JavaScript, Ruby, Go, Java e PHP. Sono forniti esempi di utilizzo dei set di dati proposti per l'addestramento di vari tipi di reti neurali, inclusi Neural-Bag-Of-Words, RNN, Self-Attention (BERT) e 1D-CNN+Self-Attention Hybrid.

Per sviluppare meccanismi di ricerca in linguaggio naturale, è stato ulteriormente preparato un set di dati chiamato CodeSearchNet Challenge, che include
99 query standard con circa 4.000 annotazioni di esperti che descrivono i collegamenti più probabili con il codice nel set di dati CodeSearchNet Corpus, che comprende circa 6 milioni di metodi e funzioni (dimensione del set circa 20 Gb). CodeSearchNet Challenge può fungere da benchmark per valutare l'efficacia di diversi metodi di ricerca del codice in linguaggio naturale. Utilizzando gli strumenti Kubeflow è preparato
un esempio motore per la ricerca di codice.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster