GitHub ha aperto sviluppi nell'uso del machine learning per la ricerca e l'analisi del codice

GitHub presentata progetto CodeSearchNet, che ha preparato modelli di apprendimento automatico e set di dati necessari per l'analisi, la classificazione e l'analisi del codice in vari linguaggi di programmazione. CodeSearchNet, simile a IMAGEnet, include un'ampia raccolta di frammenti di codice con annotazioni che formalizzano ciò che fa il codice. I componenti per i modelli di training e gli esempi di utilizzo di CodeSearchNet sono scritti in Python utilizzando il framework Tensorflow e distribuito da con licenza MIT.

Durante la creazione di CodeSearchNet, sono state utilizzate tecnologie di analisi del testo in linguaggio naturale, consentendo ai sistemi di apprendimento automatico di tenere conto non solo delle caratteristiche sintattiche, ma anche del significato delle azioni eseguite dal codice. Il sistema GitHub applicare negli esperimenti sull'organizzazione della ricerca del codice semantico utilizzando query su linguaggio naturale (ad esempio quando si richiede “ordinamento di una lista di stringhe” viene visualizzato il codice con l'implementazione degli algoritmi corrispondenti).

Il set di dati proposto include più di 2 milioni di collegamenti codice-commento, preparati sulla base dei testi di origine delle biblioteche aperte esistenti. Il codice copre il testo sorgente completo di singole funzioni o metodi e il commento descrive le azioni eseguite dalla funzione (viene fornita la documentazione dettagliata). Attualmente, i set di dati sono preparati per Python, JavaScript, Ruby, Go, Java e PHP. Vengono forniti esempi dell'utilizzo dei set di dati proposti per l'addestramento di vari tipi di reti neurali, tra cui Borsa neurale delle parole, RNN, Auto-attenzione (BERT) e Ibrido 1D-CNN+auto-attenzione.

Per sviluppare meccanismi di ricerca in linguaggio naturale, è stata inoltre preparata una serie di CodeSearchNet Challenge, tra cui
99 tipico query con circa 4mila annotazioni di esperti che descrivono i collegamenti di codice più probabili nel set di dati CodeSearchNet Corpus, che copre circa 6 milioni di metodi e funzioni (impostare la dimensione circa 20GB). La CodeSearchNet Challenge può fungere da punto di riferimento per valutare l'efficacia di determinati metodi per la ricerca del codice in linguaggio naturale. Utilizzando strumenti Kubeflow preparato
esempio motore di ricerca del codice.

Fonte: opennet.ru

Aggiungi un commento