Познаём Нирвану – универсальную вычислительную платформу Яндекса |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2018-10-10 13:25 Машинное обучение превратилось в модный термин, но при работе с большими объёмами данных оно уже много лет является жизненной необходимостью. Яндекс обрабатывает более 200 миллионов запросов ежедневно! Когда-то в интернете было так мало сайтов, что наилучшие из них помещались в каталог, а теперь за релевантность ссылок на страницы в выдаче отвечают сложные формулы, обучающиеся на новых и новых данных. Задача ложится на так называемые конвейеры, регулярные процессы, обучающие и контролирующие эти формулы. Сегодня хотим поделиться нашим опытом создания вычислительной платформы Нирвана, которая, среди прочего, применяется для задач машинного обучения. Нирвана — неспециализированная облачная платформа для управления вычислительными процессами, где приложения запускаются в порядке, указанном пользователем. В Нирване хранятся нужные процессам описания, ссылки, блоки процессов и связанные с ними данные. Процессы оформлены в виде ациклических графов. Нирваной для решения вычислительных задач пользуются разработчики, аналитики и менеджеры разных департаментов Яндекса — потому что далеко не всё можно посчитать на своем ноутбуке (а почему ещё — мы расскажем в конце статьи, когда перейдем к примерам применения Нирваны). Мы расскажем, с какими проблемами столкнулись при использовании предыдущего решения, опишем ключевые компоненты Нирваны и объясним, почему для платформы было выбрано именно такое название. А потом посмотрим на скриншот и перейдем к задачам, для которых полезна платформа. Как появилась Нирвана Процесс обучения формул ранжирования — постоянная и объемная задача. Яндекс сейчас работает с технологиями CatBoost и Матрикснет, в обоих случаях построение ранжирующих моделей требует значительных вычислительных ресурсов — и понятного интерфейса. Сервис FML (Friendly Machine Learning) в свое время стал большим шагом в автоматизации и упрощении — он поставил работу с машинным обучением на поток. FML открыл простой доступ к инструментам конфигурации параметров обучения, анализа результатов и управления аппаратными ресурсами для распределённого запуска на кластере. Но раз пользователи получили FML как готовый инструмент, значит, любые доработки интерфейса и разработка нововведений легли на плечи команды. Сначала казалось, что это удобно — мы добавляем в FML только нужные фичи, следим за релизным циклом, погружаемся в предметную область пользователей и делаем действительно дружелюбный сервис. Но вместе с этими достоинствами мы получили плохую масштабируемость разработки. Поток заказов на доработки и улучшения форм FML превысил все наши ожидания — а чтобы сделать всё и быстро, пришлось бы расширять команду безгранично. FML был создан как внутренний сервис для Поиска, но о нем быстро узнали разработчики из других департаментов, чьи рабочие задачи тоже были связаны с Матрикснетом и машинным обучением. Оказалось, что возможности FML гораздо шире поисковых задач, а спрос значительно превышает наши ресурсы — мы оказались в тупике. Как развивать популярный сервис, если это требует пропорционального расширения команды? Ответ мы нашли для себя в открытой архитектуре. Принципиально не стали привязываться к предметной области, разрабатывая Нирвану. Отсюда и название: платформа равнодушна к тому, с какими задачами вы к ней приходите — среде разработки точно так же безразлично, о чем ваша программа, а графическому редактору неважно, какую именно картинку вы сейчас редактируете. А что Нирване важно? Аккуратно и быстро выполнять произвольный процесс, сконфигурированный в виде графа, в вершинах которого находятся блоки с операциями, а связи между блоками выстраиваются по данным. С тех пор, как в компании появилась Нирвана, ею заинтересовались разработчики, аналитики и менеджеры разных департаментов Яндекса — не только связанные с машинным обучением (другие примеры — в конце статьи). В неделю Нирвана обрабатывает миллионы блоков с операциями. Часть из них запущены с нуля, часть подняты из кэша — если процесс поставлен на поток и граф часто перезапускается, вероятно, какие-то детерминированные блоки не нужно перезапускать и можно переиспользовать результат, уже полученный таким блоком в другом графе. Нирвана не только сделала машинное обучение доступнее, она стала местом встречи: менеджер создает проект, зовет разработчика, затем разработчик собирает процесс и запускает его, а после множества запусков, за которыми наблюдает менеджер, аналитик приходит, чтобы разобраться в результатах. Нирвана позволила переиспользовать операции (или целые графы!), созданные и поддерживаемые другими пользователями, чтобы не приходилось делать двойную работу. Графы бывают очень разными: от нескольких блоков до нескольких тысяч операций и объектов данных. Их можно собирать в графическом интерфейсе (скриншот будет в конце статьи) или с помощью сервисов API. Как устроена Нирвана В Нирване есть три больших раздела: Проекты (крупные бизнес-задачи или группы, которыми ребята пилят общие задачи), Операции (библиотека готовых компонентов и возможность создать новый), Данные (библиотека всех загруженных в Нирвану объектов и возможность загрузить новый). Как выглядит и для чего полезна Нирвана Чтобы вы могли представить, как выглядит интерфейс нашего сервиса, мы приложили пример графа, подготавливающего и запускающего оценку качества формулы с помощью технологии Catboost. Источник: m.vk.com Комментарии: |
|