GitHub ΠΎΡ‚ΠΊΡ€Ρ‹Π» Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ машинного обучСния для поиска ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π°

GitHub прСдставил ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ CodeSearchNet, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈ машинного обучСния ΠΈ Π½Π°Π±ΠΎΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π°Π·Π±ΠΎΡ€Π°, классификации ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языках программирования. CodeSearchNet, ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с ImageNet, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΎΡ‚Ρ€Ρ‹Π²ΠΊΠΎΠ² ΠΊΠΎΠ΄Π°, снабТённых аннотациями, Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ выполняСмыС ΠΊΠΎΠ΄ΠΎΠΌ дСйствия. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для обучСния ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования CodeSearchNet написаны Π½Π° языкС Python с использованиСм Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Tensorflow ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT.

ΠŸΡ€ΠΈ создании CodeSearchNet ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π° тСкста Π½Π° СстСствСнном языкС, Π΄Π°ΡŽΡ‰ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ систСмам машинного обучСния ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ синтаксичСскиС особСнности, Π½ΠΎ ΠΈ смысл выполняСмых ΠΊΠΎΠ΄ΠΎΠΌ дСйствий. Π’ GitHub систСма примСняСтся Π² экспСримСнтах ΠΏΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ сСмантичСского поиска ΠΊΠΎΠ΄Π° с использованиСм запросов Π½Π° СстСствСнном языкС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ запросС «ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° списка строк» выводится ΠΊΠΎΠ΄ с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²).

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ 2 ΠΌΠ»Π½ связок «ΠΊΠΎΠ΄-ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ», ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… Π½Π° основС исходных тСкстов ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Код ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ исходный тСкст ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ описываСт выполняСмыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ дСйствия (приводится Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Π°Ρ докумСнтация). Π’ настоящСС врСмя Π½Π°Π±ΠΎΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ для языков Python, JavaScript, Ruby, Go, Java ΠΈ PHP. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… для обучСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Neural-Bag-Of-Words, RNN, Self-Attention (BERT) ΠΈ 1D-CNN+Self-Attention Hybrid.

Для развития ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² поиска Π½Π° СстСствСнном языкС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ Π½Π°Π±ΠΎΡ€ CodeSearchNet Challenge, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ
99 Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… запросов с ΠΎΠΊΠΎΠ»ΠΎ 4 тысячами экспСртных Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вСроятныС привязки ΠΊ ΠΊΠΎΠ΄Ρƒ Π² Π½Π°Π±ΠΎΡ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… CodeSearchNet Corpus, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ ΠΎΠΊΠΎΠ»ΠΎ 6 ΠΌΠ»Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π°Π±ΠΎΡ€Π° ΠΎΠΊΠΎΠ»ΠΎ 20 Π“Π±). CodeSearchNet Challenge ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ эталон для ΠΎΡ†Π΅Π½ΠΊΠΈ эффСктивности Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² поиска ΠΊΠΎΠ΄Π° Π½Π° СстСствСнном языкС. Π‘ использованиСм инструмСнтария Kubeflow ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½
ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π²ΠΈΠΆΠΊΠ° для поиска ΠΊΠΎΠ΄Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru