В Google Brain разрабатывают нейросеть для автодополнения кода

code

Google Brain ведет разработку ИИ, который предсказывает изменения в коде исходя из прошлых изменений. Команда Google Brain выбрала неявную модель, которая по результатам тестов обеспечивает наилучшую общую производительность и масштабируемость из всех протестированных на данный момент моделей.

Модель может быть адаптирована для улучшения систем автодополнения, которые игнорируют истории редактирования, и для прогнозирования поисковых запросов разработчика (например, для stackoverflow.com), учитывая последние изменения в коде.

Принцип работы алгоритма

Сначала было разработано два представления данных с правками кода: явное и неявное. Явное представление содержит двумерную сетку токенов, а неявное — содержит последовательность правок:

Два варианта представления данных с правками текста
Два варианта представления данных с правками текста

Далее для каждого из двух представлений разработали свою модель, которая должна предсказывать следующую правку. Для явного представления используется двухслойная LSTM-сеть, а для скрытого представления модель разбита на encoder и decoder. Encoder представляет собой слой LSTM, а декодер — нестандартную модель, которая на выходе генерирует пары: содержимое и положение в коде. Подробное описание архитектуры модели — в оригинальной статье.

Варианты моделей для задач редактирования текста
Варианты моделей для задач редактирования текста

Результаты

Для оценки моделей, исследователи разработали набор упрощенных синтетических датасетов, которые включают в себя те виды правок, которые встречаются и в обычном коде, чтобы обеспечить более четкую интерпретацию результатов. Кроме того, они собрали датасет последовательностей правок из снимков базы кода Google, содержащих восемь миллионов правок от 5700 разработчиков.

Эксперименты на синтетических данных проводились по разным задачам редактирования: вставка, удаление, перемещение и т.д.

Точность рассчитывалась для следующих моделей: E — модель с явным представлением, IR — модель с неявным представлением, IA — улучшенная модель с неявным представлением, POMP — можно интерпретировать как некий показатель сложности обобщения задачи (чем ниже значение — тем труднее обобщается задача):

Эксперименты на синтетических данных
Эксперименты на синтетических данных

На реальных данных, собранных с внутренней среды разработки Google Clients in the Cloud, accuracy на тесте модели E составил 51%, на IR — 55,5%, а на IA- 61,1%.

Модель IA обеспечивает хороший компромисс: достигает лучшей точности и имеет меньше проблем с ограничениями памяти, чем явная модель. Исследования этой задачи будут продолжены с упором на эту модель.

nlp javascript

Работа с NLP-моделями Keras в браузере с TensorFlow.js

Этот туториал для тех, кто знаком с основами JavaScript и основами глубокого обучения для задач NLP (RNN, Attention). Если вы плохо разбираетесь в RNN, я рекомендую вам прочитать «Необоснованную эффективность рекуррентных нейронных сетей» Андрея Карпати. Перевод статьи «NLP Keras model in browser with TensorFlow.js», автор…
предсказания движения пешеходов нейронная сеть lstm

Рекуррентная сеть Bio-LSTM предсказывает движения пешеходов

Ученые Мичиганского университета представили алгоритм, который поможет автономным автомобилям распознавать направление и предсказывать движения пешеходов. Собрав данные с помощью камер, лидаров и GPS, разработчики создали датасет и обучили рекуррентную нейронную сеть предсказывать движения человека c точностью до 10 см. Нейронная сеть Bio-LSTM Модель называется…

В Google разработали алгоритм для разделения звуков на видео. Он определяет говорящего с точностью 92%

Разработчики Google AI представили новый алгоритм для разделения звуковых потоков на видео. Модель разделяет аудио на сегменты и определяет, кто из участников диалога говорит в данный момент. Алгоритм работает лучше, чем подходы, основанные на кластеризации, и распознает говорящего с точностью 92,4%. Технология может применяться,…

Нейросеть научили описывать происходящее на видео

Разрабочики Facebook создали нейронную сеть, которая описывает происходящее на видео в реальном времени. Они также собрали датасет из 20 тысяч видеороликов с 123 тысячами описаний. В перспективе технология может помочь слабовидящим и незрячим людям в повседневной жизни, создавая описания к окружающему миру. Создание описаний…
piano-genie

Google AI представили Piano Genie — контроллер для импровизации с сетью энкодер-декодер

Команда разработчиков Google AI представили Piano Genie — 8-клавишный контроллер на основе нейронных сетей для импровизации на фортепиано. Интерактивная демо-версия есть в открытом доступе. Посмотрите импровизацию на Piano Genie, которую опубликовали разработчики контроллера: Как работает Piano Genie После первичного нажатия на кнопку контроллера проигрывается…
neural network nlp architectures

7 архитектур нейронных сетей для решения задач NLP

Искусственная нейронная сеть (ИНС) — вычислительная нелинейная модель, в основе которой лежит нейронная структура мозга, способная обучаться выполнению задач классификации, предсказания, принятия решений, визуализации и некоторых других только благодаря рассмотрению примеров. Любая архитектура ИНС состоит из искусственных нейронов — элементов обработки, имеющих структуру 3…
нейросеть диагностирует болезнь паркинсона

Приложение для смартфона диагностирует болезнь Паркинсона с точностью 85%

По данным ВОЗ, 5-10 человек на каждые 10 000 людей в мире страдают болезнью Паркинсона. Видимые признаки болезни появляются у людей старше 45 лет. Раннее выявление могло бы предотвратить появление серьезных симптомов, однако пока не существует универсального теста для диагностики болезни Паркинсона. Учёные создают…
обработка естественного языка

5 методов обработки естественного языка, которые стремительно меняют мир вокруг нас

Собираетесь изучать NLP и заниматься разработкой приложений, основанных на обработке естественного языка? Хотите создать свое приложение или программу для голосового помощника Amazon Alexa или Яндекс Алиса? В статье мы расскажем о направлениях развития и техниках, которые применяются для решения задач NLP, чтобы вам стало…
сети LSTM

LSTM — нейронная сеть с долгой краткосрочной памятью

Люди не запускают мыслительный процесс с нуля в каждый момент времени. Читая статью, вы понимаете смысл каждого слова на основе значений предыдущих слов. Мысли имеют свойство накапливаться и влиять друг на друга. Этот принцип используется в сетях LSTM. Простые нейронные сети не могут этого сделать,…
long short-term memory recurrent neural network

Искусственный интеллект помогает прогнозировать урожай в Аргентине и Бразилии

Учёные из Стэнфордского университета разработали систему глубокого обучения, которая прогнозирует будущий урожай сои анализируя спутниковые изображения. Нейронная сеть обучалась только на данных урожайности США, но успешно предсказала количество урожая и в других странах — Аргентине и Бразилии. Прогноз урожайности культур в развивающихся странах помогает…