Pull to refresh
69
Karma
0
Rating
Роман Поборчий @p0b0rchy

Пользователь

Code Completion. Часть 4: обучение модели

JetBrains corporate blog Machine learning *

Хотим поделиться специфическими проблемами, возникшими у нас при обучении модели, и решениями, которые мы для этих проблем придумали.

В прошлый раз мы остановились на том, что из-за необходимости защищать код пользователей даже от себя самих нам необходимо анонимизировать все собранные данные. Вызову окна автодополнения сопоставляется набор параметров, каждый из которых — либо число, либо перечислимый тип. А вот сам код, на котором пользователь вызвал окно, мы не сохраняем.

Если при сборе данных мы допустим ошибку, нельзя будет просто заглянуть в код и все понять. Нам придется устраивать целое расследование без всякой гарантии успеха.

Например
Total votes 12: ↑12 and ↓0 +12
Views 976
Comments 9

Code Completion. Часть 3: где взять данные для обучения?

JetBrains corporate blog Machine learning *

В предыдущей статье цикла мы установили, что современной системе автодополнения нужно машинное обучение — чтобы ранжировать варианты подсказок.

Машине, как и человеку, для обучения нужны данные. Мы используем подход «обучение с учителем». Он предполагает, что мы показываем алгоритму примеры задач, для которых нам заранее известно правильное решение. Алгоритм извлекает из этих примеров закономерности и учится принимать правильные решения даже в тех ситуациях, которых он раньше не видел.

Результат обучения критическим образом зависит от качества и объема этих примеров. И именно здесь у нас возникают трудности.

С одной стороны, собирать базу на основе кода наших пользователей нельзя: результат вашего труда остается только у вас, на серверы JetBrains он не попадает.

С другой стороны, из доступных репозиториев с открытым кодом полноценный датасет собрать не получается. Делая так, мы обучали бы алгоритм работать только с готовым (рабочим) кодом.

Сегодня обсудим, как мы выкручиваемся из этой ситуации. Для начала давайте более подробно рассмотрим, почему не получается работать с готовыми репозиториями.

А потому что они «готовые»
Total votes 14: ↑13 and ↓1 +12
Views 1.1K
Comments 0

Code Completion. Часть 2: зачем тут машинное обучение?

JetBrains corporate blog Machine learning *

В первой части мы сформулировали, из каких компонентов состоит система автодополнения, обсудили способы ее использования и требования к качеству. Теперь давайте разберемся, зачем там нужно машинное обучение.

Казалось бы, страшно выбрасывать работающий код и заменять его машиннообученным бинарником, который жрет память, может замедлить работу IDE, да еще не вдруг и отладишь его, если что-то пошло не так.

В нашем случае «работающий код» — это эвристики, жесткие правила. Они отлично работают, пока их не очень много и они не конфликтуют между собой. Давайте рассмотрим такие правила подробнее и разберемся, откуда берутся конфликты.

Как на самом деле работают подсказки
Total votes 16: ↑16 and ↓0 +16
Views 2K
Comments 3

Code Completion. Часть 1: сценарии и требования

JetBrains corporate blog Programming *

Знаете, сколько всего успевает сделать IDE, чтобы показать окно сode сompletion, когда вы начинаете набирать новое слово? Под капотом формулы, полученные с помощью машинного обучения.

Сортировка подсказок — одно из первых применений машинного обучения в IDE JetBrains. Думаем, вам будет интересно узнать, через какие тернии нам пришлось пройти, чтобы эту сортировку реализовать. Данная статья — первая из цикла, в рамках которого мы расскажем, зачем окну с подсказками вообще нужно машинное обучение и как мы решали некоторые связанные с этим задачи.

А задач тех немало
Total votes 23: ↑23 and ↓0 +23
Views 3.4K
Comments 17

Что будет на конференции UseData Conf 2019?

Конференции Олега Бунина (Онтико) corporate blog Data Mining *Algorithms *Machine learning *Artificial Intelligence
Ура! Мы завершили формирование программы конференции UseData Conf 2019! Эта конференция для тех, кто решает практические задачи с помощью методов машинного обучения. Между идеальным алгоритмом в вакууме и его применением на реальных данных часто лежит пропасть. Мы хотим, чтобы те, кто умеет преодолевать эту пропасть, встретились и смогли обменяться опытом.



Магия машинного обучения для управленцев, истории применения ML для анализа эффективности рекламы в телевизоре, беспилотные игрушечные машинки, нефть и автомобильные номера — это лишь часть докладов на UseData 2019. Об этих и других темах подробнее под катом.
Читать дальше →
Total votes 29: ↑27 and ↓2 +25
Views 1.8K
Comments 0

Deep Learning vs common sense: разрабатываем чат-бота

Конференции Олега Бунина (Онтико) corporate blog Algorithms *Machine learning *Artificial Intelligence Natural Language Processing *
Чем больше пользователей у вашего сервиса, тем выше вероятность, что им понадобится помощь. Чат с техподдержкой — очевидное, но довольно дорогое решение. Но если применить технологии машинного обучения, можно неплохо сэкономить.

Отвечать на простые вопросы сейчас может и бот. Более того, чат-бота можно научить определять намерения пользователя и улавливать контекст так, чтобы он мог решить большинство проблем пользователей без участия человека. Как это сделать, помогут разобраться Владислав Блинов и Валерия Баранова — разработчики популярного помощника Олега.



Двигаясь от простых методов к более сложным в задаче разработки чат-бота, разберем вопросы практической реализации и посмотрим, какой прирост качества можно получить и сколько это будет стоить.
Total votes 37: ↑35 and ↓2 +33
Views 12K
Comments 2

Как мы обучили нейронную сеть классифицировать шурупы

Конференции Олега Бунина (Онтико) corporate blog Data Mining *Algorithms *Image processing *Machine learning *
Нейронная сеть может опознать котика на фотографии, найти диван, улучшить видеозапись, нарисовать картинку из щенят или простого наброска. К этому мы уже привыкли. Новости о нейросетях появляются почти каждый день и стали обыденными. Компании Grid Dynamics поставили задачу не обыденную, а сложную — научить нейросеть находить специфический шуруп или болт в огромном каталоге интернет-магазина по одной фотографии. Задачка сложнее, чем найти котика.



Проблема интернет-магазина шурупов — в ассортименте. Тысячи или десятки тысяч моделей. У каждого шурупа свое описание и характеристики, поэтому на фильтры нет надежды. Что делать? Искать вручную или искать в гипермаркете на полках? В обоих случаях это потеря времени. В итоге клиент устанет и пойдет забивать гвоздь. Чтобы помочь ему, воспользуемся нейросетью. Если она может находить котиков или диваны, то пусть занимается чем-то полезным — подбирает шурупы и болты. Как научить нейросеть подбирать для пользователя шурупы быстро и точно, расскажем в расшифровке доклада Марии Мацкевичус, которая в компании Grid Dynamics занимается анализом данных и машинным обучением.
Total votes 88: ↑84 and ↓4 +80
Views 26K
Comments 33

Жизненный цикл ML в боевых условиях

Конференции Олега Бунина (Онтико) corporate blog High performance *Programming *System Analysis and Design *Machine learning *
В реальном внедрении ML само обучение занимает от силы четверть усилий. Остальные три четверти — подготовка данных через боль и бюрократию, сложный деплой часто в закрытом контуре без доступа в интернет, настройка инфраструктуры, тестирование и мониторинг. Документы на сотни листов, ручной режим, конфликты версий моделей, open source и суровый enterprise — все это ждет data scientist’а. Но такие «скучные» вопросы эксплуатации ему не интересны, он хочет разработать алгоритм, добиться высокого качества, отдать и больше не вспоминать.

Возможно, где-то ML внедряется легче, проще, быстрее и одной кнопкой, но мы таких примеров не видели. Все, что выше — опыт компании Front Tier в финтехе и телекоме. О нем на HighLoad++ рассказал Сергей Виноградов — эксперт в архитектуре высоконагруженных систем, в больших хранилищах и тяжелом анализе данных.


Total votes 21: ↑19 and ↓2 +17
Views 11K
Comments 2

Используем данные на практике

Конференции Олега Бунина (Онтико) corporate blog Algorithms *Image processing *Machine learning *Conferences
Между идеальным алгоритмом машинного обучения в вакууме и его применением на реальных данных часто лежит пропасть. Вроде бы берешь статью: алгоритм есть, сходимость для данных такого-то типа есть — бери и применяй. Но почему-то оказывается, что твоих данных недостаточно для обучения, да и отличаются они от модельных из статьи, потому что настоящие, не синтетические.

Обычное дело в обосновании алгоритма ввести допущения о чистоте данных и их распределении, которых в реальной жизни не найдёшь. Например, автор статьи экспериментирует на фотографиях взрослых знаменитостей, и все у него замечательно распознается и классифицируется, а в нашем реальном примере попадаются еще и дети, и мультяшные персонажи, и на них всё внезапно ломается. Но есть люди, которые умеют с этим справляться, да так, что пропасть между теорией и практикой перестает казаться неприступной, и, стоит показать как, сразу находятся и другие желающие ее преодолеть.


Читать дальше →
Total votes 25: ↑23 and ↓2 +21
Views 2.7K
Comments 9

Я так хотел попасть в программный комитет конференции, и вот я здесь, и что мы будем делать?

Конференции Олега Бунина (Онтико) corporate blog Studying in IT IT career Conferences Presentations


На разных конференциях обязанности участников программного комитета отличаются. Бывает так, что «программный комитет» и «организаторы» — в точности одни и те же люди, и каждый из них и швец, и жнец, и на дуде игрец. Тогда в круг их обязанностей внезапно попадает и выбор площадки, и аренда оборудования, и закупка еды, и маркетинг. Это очень интересные темы, но я не разбираюсь ни в одной из них. Поэтому сегодня мы сосредоточимся на том, что у программного комитета отнять невозможно: на работе с докладчиками.

Сейчас я имею в виду не суперзвёзд, которые вдвое увеличат продажи билетов, даже если выйдут на сцену и будут просто молчать. Не тех людей, за которыми мы охотимся в надежде привлечь их на наше мероприятие всё равно в каком качестве.

Я говорю о работе с нормальными людьми, профессионалами в своём деле, а не в выступлениях. О работе с теми, кто сам подаёт заявку на доклад через форму подачи заявок. О работе с теми, кто на самом деле обеспечивает конференциям приток свежей крови и новых знаний, без которых весь процесс очень быстро выродится.
Читать дальше →
Total votes 39: ↑39 and ↓0 +39
Views 4.5K
Comments 15

Разбор доклада Дмитрия Столярова о мониторинге Kubernetes

Конференции Олега Бунина (Онтико) corporate blog High performance *Conferences DevOps *Kubernetes *
Ох, больше года прошло с предыдущего разбора, но пришла пора возвращать традиции. Сегодня смотрим доклад Дмитрия distol Столярова «Мониторинг и Kubernetes», который был представлен в мае этого года на фестивале РИТ++, и пытаемся на его примере понять, почему людям обычно нравятся доклады Дмитрия.


Слайды (все 344 штуки) можно найти тут.
Дисклеймер: про мониторинг и Kubernetes не сама статья, а доклад, который в ней разбирается.
Total votes 51: ↑50 and ↓1 +49
Views 6K
Comments 3

Пойди туда, не знаю куда: по следам конференции SmartData

JUG Ru Group corporate blog Data Mining *Algorithms *Big Data *Mathematics *


Конференций, связанных с AI / ML / data science в последнее время и у нас стало довольно много. Организаторы до сих пор ищут форматы, концепции конференций меняются, но состав спикеров повторяется процентов на 50.

Задача поиска формата стояла и перед программным комитетом SmartData. Задача эта довольно размытая. Кто тот человек, который занимается анализом и / или обработкой данных, что ему интересно? От участников конференции мы получили частичные ответы на эти вопросы, но данных хочется больше. В связи с этим хочу поделиться тем представлением об идеальном мире, которое сложилось на данный момент, и пригласить читателей к дискуссии в комментариях. Помогите сделать такую конференцию, на которую вам потом самим захочется сходить.

Кроме вопросов о ваших интересах и задачах, за кликом вас ждут две ранее не публиковавшиеся видеозаписи выступлений с первой конференции, технический приём написания текстов на Хабр и один забавный факт о беспилотных автомобилях.
И кое-что ещё
Total votes 30: ↑28 and ↓2 +26
Views 2.9K
Comments 3

Легко ли выступать на конференции в первый раз?

Конференции Олега Бунина (Онтико) corporate blog High performance *System administration *JavaScript *Programming *


У любой конференции по мере роста постепенно накапливаются внешние атрибуты солидности и зрелости: большие залы, профессиональная фото- и видеосъёмка, слайды, наложенные на видеозапись из исходника, а не снятые на камеру, десяток-другой стендов на выставке спонсоров и прочие визитки-брошюрки.

В этот же момент возникает одна из болезней роста: новые люди боятся подавать заявки. Не то чтобы совсем пропадают, но их оказывается меньше, чем хотелось бы. Многие, и совершенно напрасно, рассуждают в духе «не с моим рылом в калашный ряд». На примере прошедшего Highload++ давайте посмотрим, насколько тяжело приходится докладчику-новичку. Можно ли с первого раза выступить успешно?

Спойлер: можно. Что для этого нужно делать?
Статистика, отзывы зрителей и советы новичкам
Total votes 50: ↑49 and ↓1 +48
Views 13K
Comments 13

Разбор доклада Ивана Круглова «Строим свой Service Mesh»

Конференции Олега Бунина (Онтико) corporate blog High performance *System Analysis and Design *
На каждой крупной регулярной конференции есть докладчики, которые приходят каждый год, рассказывают что-нибудь новое и всегда нравятся аудитории. Всегда быть в самом-самом топе для человека, который не занимается выступлениями профессионально, очень трудно (да и зачем), но всегда выдавать уверенно хороший материал — реально. Один из спикеров, сделавших несколько успешных докладов и на Highload++, и на РИТ++, — Иван Круглов из Booking.com.

Несколько дней назад в блоге Онтико уже была статья о подготовке докладчиков, посвящённая больше подаче материала, а сегодня хотелось бы рассказать о другом аспекте подготовки, которым на РИТ++ и Highload++ я в основном и занимаюсь. Давайте на примере последнего выступления Ивана рассмотрим, что важно и над чем мы при подготовке конференции работаем с докладчиками в области содержания.



Слайды тут.
Конечно, любой доклад про микросервисы или хотя бы про SOA автоматически получает +2 к харизме, но спикер ещё должен суметь этим воспользоваться.

Дисклеймер: про SOA только разбираемый доклад, а не сама статья.
Total votes 18: ↑16 and ↓2 +14
Views 5.4K
Comments 7

Анализ доклада Никиты Макарова о револьвере, мнемонике, заведующем складом и других полезных вещах

JUG Ru Group corporate blog IT systems testing *Web services testing *
В блоге JUG.ru новый разбор, на этот раз под увеличительное стекло попал Никита Макаров из «Одноклассников», многократный участник программных комитетов наших конференций. Сегодня мы рассмотрим доклад о микросервисах для автоматизации тестирования. Выступление состоялось в 2015 году на встрече devclub.eu в Таллинне:



Слайды доклада можно найти тут.
Total votes 29: ↑29 and ↓0 +29
Views 4.3K
Comments 0

Разбор доклада Артёма Гавриченкова о масштабировании TLS

JUG Ru Group corporate blog Cryptography *
Сегодняшняя статья посвящена докладу про безопасность. Это рассказ Артёма ximaera Гавриченкова «Масштабируя TLS», который был представлен на Highload++ в ноябре 2016 года:


Слайды можно найти тут.

Disclaimer: про сертификаты и TLS только разбираемое выступление, а не сама статья.

Сюжет


Всегда приятно смотреть, как докладчик находит в какой-то общеупотребительной вещи подводные камни, которые вас, да-да, вот именно вас, запросто могут больно задеть. Это благодатные темы, заходят они обычно на ура. При этом человеку, который глубоко занимается тем, чем обычные люди просто пользуются, всегда есть чем шокировать публику.
Total votes 16: ↑16 and ↓0 +16
Views 3.5K
Comments 2

Разбор доклада Романа Неволина про F#

JUG Ru Group corporate blog .NET *F# *
С предыдущего разбора прошло много времени, но я не бросил затею. Сегодня предлагаю вашему вниманию доклад Романа nevoroman Неволина, посвящённый тому, какой выход есть у человека, если он, во-первых, data scientist, а во-вторых, почему-то любит .NET.

Вполне логично, что это выступление состоялось на DotNext в декабре 2016 года:


Слайды можно найти тут.

Традиционный дисклеймер: про .NET только разбираемый в статье доклад, а не сама статья.
Total votes 24: ↑18 and ↓6 +12
Views 3.5K
Comments 0

Разбор доклада Андрея Акиньшина про арифметику

JUG Ru Group corporate blog .NET *
Всем привет, готов ещё один разбор. Сегодня будем смотреть доклад не с JPoint, а с DotNext! Автор доклада — Андрей DreamWalker Акиньшин, и посвящено его выступление деталям реализации арифметики с плавающей точкой в .NET:


Слайды можно найти здесь.

Дисклеймер: про реализацию арифметики только сам разбираемый доклад, а не собственно статья.
Total votes 27: ↑25 and ↓2 +23
Views 8.5K
Comments 26

Анализ доклада Баруха Садогурского с JPoint 2015

JUG Ru Group corporate blog Java *
Созрел ещё один разбор, в этот раз смотрим доклад Баруха jbaruch Садогурского «Как писать асинхронные многопоточные http-приложения» с JPoint 2015:


Слайды тут.

Про Java только разбираемый доклад, а не сама статья.
Total votes 35: ↑33 and ↓2 +31
Views 7.4K
Comments 8

Анализ доклада Руслана Черёмина с JPoint 2016

JUG Ru Group corporate blog Java *
Всем добрый день, с вами снова Роман Поборчий в блоге JUG.ru, и сегодня мы разбираем доклад Руслана cheremin Черёмина про escape-анализ и скаляризацию:


Слайды можно посмотреть и скачать тут. Традиционный disclaimer: про Java только разбираемый в статье доклад, а не сама статья.
Total votes 16: ↑16 and ↓0 +16
Views 3.7K
Comments 8
1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity