Возврат к списку

Кодить станет проще: представлен умный инструмент для автозаполнения в редакторах кода

02.08.2019     

Программист Джейкоб Джексон, изучающий информатику в канадском Университете Ватерлоо, написал интеллектуальное средство автозавершения строк – Deep TabNine. Инструмент поможет разработчикам быстрее писать код за счет автозаполнения. Выбирая один из предложенных вариантов завершения строк, разработчик сможет писать код быстрее и избавляется от ошибок, которые тормозят процесс разработки.

Как работает TabNine

TabNine создан на базе технологий машинного обучения. Разработчики отметили: глубокое обучение действительно наделало немало шума в разных отраслях, но в основном это были эксперименты вроде синтеза речи или создания фотореалистичных портретов. В программировании TabNine – едва ли не первое практическое применение технологии.

 

TabNine помогает программисту писать код на Python

 

Инструмент использует модель GPT-2 для обработки естественного языка. Разработчики адаптировали модель, чтобы она могла понимать код. Широкие возможности, характерные для анализа естественного языка, решили не убирать. TabNine работает с комментариями и документацией – и здесь успешное автозаполнение экономит время на написание кода. 

Модель тренировали на 2 млн файлов с GitHub. Их брали из открытых репозиториев. В результате TabNine уловил закономерности и в большинстве случаев успешно дополнил написанное. 

Кому подойдет TabNine

Инструмент уже работает с популярными языками программирования - Python, C++, Java и Haskell и еще восемнадцатью. Он совместим с редакторами кода Microsoft Visual Studio Code и Sublime Text, а также с другими редакторами – Atom или Vim.

Пока TabNine существует лишь в бета-версии. Что протестировать ее, нужно зарегистрироваться на сайте проекта. 


Автор:
Ксения Шестакова Обозреватель


Комментарии
Избранное Подписка Сортировка: Древо
1. CheBurator 3392 02.08.19 12:52 Сейчас в теме
занятная штука
mogilkovv; seperblunt2; +2 Ответить
2. CheBurator 3392 02.08.19 13:11 Сейчас в теме
однако, если обучение шло на большом массиве,то вероятность неоптимальных\кривых подсказок имхо велика. т.к. исходим из того, что большинство прогов пишут "неоптимально". итого, юзание такого инструмента либо приведет к расползанию и умножению нехорошего кода, либо увеличит время программирования из-за анализа и выбора предлагаемых вариантов.
CyberCerber; +1 Ответить
4. s22 19 02.08.19 16:33 Сейчас в теме
(2)
обучение


Тут используется алгоритм машинного переводчика. Значит по большому счет удостаточно, что бы оптимальных примеров было 90%.
Маловстречающиеся будут вытесненны.
6. m_aster 81 02.08.19 17:09 Сейчас в теме
(4)
В ролике видно, что система подбирает максимум пять строк с процентным отношением популярности программных конструкций, если они из рабочего кода, то сама конструкция правильная с точки зрения синтаксиса, поэтому ее можно смело вставлять в свой код. Исправить под себя никто не мешает. Хорошее подспорье.
Krio2; sansys; +2 Ответить
7. s22 19 02.08.19 18:13 Сейчас в теме
(6)
В ролике видно, что система подбирает максимум пять строк с процентным отношением популярности программных конструкций, если они из рабочего кода, то сама конструкция правильная с точки зрения синтаксиса, поэтому ее можно смело вставлять в свой код. Исправить под себя никто не мешает. Хорошее подспорье.

Если это GPT-2, то тут система пишет код точно так же как например рассказ или делает перевод. Тут не будет код всегда синтаксически корректным.
8. m_aster 81 02.08.19 22:57 Сейчас в теме
(7)
По ссылке https://habr.com/ru/post/440564/:
"Это нейронная сеть с рекордным на данный момент числом параметров (1.5 млрд, против обычно используемых в таких случаях 100-300 млн) оказалась способна генерировать целые страницы связного текста.
Генерировать настолько хорошо, что в OpenAI отказались выкладывать полную версию, опасаясь что эту нейросеть будут использовать для создания фейковых новостей, комментариев и отзывов, неотличимых от настоящих."
Т.е, очень похоже на то, как пишут люди. Пишите правильный код и все будет как надо.
13. protexprotex 170 03.08.19 11:59 Сейчас в теме
(2) Есть такое понятие в машинном обучение - мудрость толпы или Бэггинг - обучение. Т.е. если есть у Вас человек 1000 которые не очень то хорошо (и это обязательное условие для этой технологии) разбираются в каком - то вопросе, и Вы их спросите дать количественную оценку какого- то явления, а потом усредните ответы, то с удивлением обнаружите, что среднее значение ответов очень близко к правильному ответу. Например - покажите им всем корову и спросите сколько она весит (на "глаз" чтобы определили) - ответы будут отличаться, но в среднем ответ будет практически точным. Вот так вот работает эта технология. Здесь же все то же самое - у всех будут вариации, но в среднем можно выбрать общий тренд.
14. spacecraft 03.08.19 12:25 Сейчас в теме
(13) это просто еще одно подтверждение вычислений по теории вероятности.
Вот если 1000 человек будут называть корову совсем другим именем, то и машинное обучение будет давать не верный результат. Результат будет максимальное количество одинаковых значений.
18. protexprotex 170 03.08.19 14:36 Сейчас в теме
(14) Это да. Но если Вы им скажеет, как корову зовут, и скажете, что в имени коровы есть буква У, то большинство скажет, что это Мурка. Хотя будут и варианты Муська, Пуська и пр. Хотя, тут очень зависит от национальности и ходости этого имени. Так что, естественно на результат будет влиять даже национальность и темперамент людей. Но если применить принцип максимального правдоподобия, то все равно мат. ожидание результата и дисперсия будет ожидаемой - т.е. распределение будет по Гауссу. Ну только если толпа не совсем дураки :-) - хоть чуть - чуть понимают о чем речь идет.
3. m_aster 81 02.08.19 14:17 Сейчас в теме
Прикольная штука. Вспоминается начало 2000-х и Делфи 5-6 с ее кодинсайтом, удобная была вещь. Всегда ее вспоминаю, когда вижу это в 1С. Здесь примерно такая же штука, только для нескольких языков сразу с оптимальным набором похожих программных конструкций для того или иного языка. Удобно.
5. s22 19 02.08.19 16:33 Сейчас в теме
Для 1с ее можно обучить на ERP
9. Lapitskiy 902 03.08.19 06:45 Сейчас в теме
похоже на открытие Америки "через форточку". Месье не пользовался IDE типа IntellliJ IDEA и т.п.?
Очевидно, студент и это его дипломная работа. Бесмыссленная и беспощадная.
10. m_aster 81 03.08.19 08:16 Сейчас в теме
(9)
Будьте добрее, вы сами были когда-то студентом. А парень молодец. Почему все пишут, что большинство пишет криво и система подсовывает кривые подсказки? Может не стоит говорить за всех. Тогда уж и сама 1С не все пишет идеально и часто отходит от собственных стандартов. Но все же лучше брать пример с того кода, который есть в типовых решениях. Чтобы был какой-то эталон и можно было что-то понимать.
Lapitskiy; +1 Ответить
15. Lapitskiy 902 03.08.19 12:46 Сейчас в теме
(10) Я не против дипломных работ и студентов, честно. Но вот там пытаются народ в заблуждение ввести.
Типа великое открытие и т.п.
Понимаю и источник распространения - надо отчитаться за "освоенный бюджет".
11. PerlAmutor 42 03.08.19 09:09 Сейчас в теме
Следующий шаг - автоматическое исправление ошибок в конфигурации после статического анализа кода, анализа ЖР, анализа ТЖ. Автоматическое создание и заполнение цепочки документов., вывод печатных форм на принтер, корректировка документов перед закрытием месяца, расчетом себестоимости. Оптимизация процессов производства, оптимизация штата сотрудников, оптимизация руководящего состава...
16. Lapitskiy 902 03.08.19 12:49 Сейчас в теме
(11) тем временем в кремниевой долине "учителя искуственного интеллекта" в поте лица обучают алгоритмы... Кстати недавно бунтовали, что и мало платят за обучение ИИ и жаловались на переработки. Новые технологии породили новую профессию - "учитель ИИ".
17. CheBurator 3392 03.08.19 13:00 Сейчас в теме
(11) все перейдет в бюрократию. меньше работы не будет
12. aximo 808 03.08.19 10:37 Сейчас в теме
машинное обучение - это величайшая афера из афер, имхо
19. PerlAmutor 42 03.08.19 20:21 Сейчас в теме
(12) Смотря как рассматривать эту технологию. Если как Панацею от всего, то может быть. Но определенный ряд задач она уже решает. Только представьте, что когда-нибудь будет где-то кластер серверов на котором существует искусственный интеллект, который обучался больше 200 лет, что не может себе позволить ни один человек, у которого уходит большой кусок жизни только чтобы освоить базовый школьный курс.
20. YanTsys 12 05.08.19 09:00 Сейчас в теме
Насчет правильности кода, если к системе прикрутить сопоставление того кода который программисты пишут изначально и того который потом идет в релиз то со временем можно будет подчеркивать неправильный код как в ворде подчеркиваются ошибки.
Тут интереснее другой вопрос:
Если ваш код будет на 90% состоять из автозаполнения как вы потом докажете авторские права?
21. DoctorRoza 05.08.19 11:23 Сейчас в теме
Откуда среда берет данные по популярности конструкций, со https://stackoverflow.com/ ?
Оставьте свое сообщение