GitHub abriu desenvolvimentos no uso de aprendizado de máquina para pesquisa e análise de código

GitHub introduzido projeto CodeSearchNet, que preparou modelos de aprendizado de máquina e conjuntos de dados necessários para analisar, classificar e analisar código em diversas linguagens de programação. CodeSearchNet, semelhante a IMAGEnet, inclui uma grande coleção de trechos de código com anotações que formalizam o que o código faz. Componentes para modelos de treinamento e exemplos de uso do CodeSearchNet são escritos em Python usando a estrutura Tensorflow e distribuído por sob a licença do MIT.

Ao criar o CodeSearchNet, foram utilizadas tecnologias de análise de texto em linguagem natural, permitindo que os sistemas de aprendizado de máquina levassem em consideração não apenas os recursos sintáticos, mas também o significado das ações executadas pelo código. O sistema GitHub aplicada em experimentos sobre organização de pesquisa de código semântico usando consultas em linguagem natural (por exemplo, ao solicitar “classificação de uma lista de strings”, é exibido o código com a implementação dos algoritmos correspondentes).

O conjunto de dados proposto inclui mais de 2 milhões de links de comentários de código, preparados com base nos textos fonte de bibliotecas abertas existentes. O código cobre o texto fonte completo de funções ou métodos individuais, e o comentário descreve as ações executadas pela função (é fornecida documentação detalhada). Atualmente, os conjuntos de dados são preparados para Python, JavaScript, Ruby, Go, Java e PHP. São fornecidos exemplos do uso dos conjuntos de dados propostos para treinar vários tipos de redes neurais, incluindo Neural-Saco de palavras, RNN, Autoatenção (BERT) e 1D-CNN + Híbrido de Autoatenção.

Para desenvolver mecanismos de busca em linguagem natural, um conjunto de desafios CodeSearchNet foi preparado adicionalmente, incluindo
99 típico consultas com cerca de 4 mil anotações de especialistas descrevendo as ligações de código mais prováveis ​​​​no conjunto de dados CodeSearchNet Corpus, cobrindo cerca de 6 milhões de métodos e funções (definir tamanho cerca de 20 GB). O Desafio CodeSearchNet pode servir como referência para avaliar a eficácia de certos métodos de pesquisa de código em linguagem natural. Usando ferramentas Kubeflow preparado
exemplo mecanismo de busca de código.

Fonte: opennet.ru

Adicionar um comentário