Comments 29
Давно, мечтаю о таком же UI. Но пока всё делаю веб-сервисами и ручками запускаю. Поиск, предиктивная аналитика, рендеринг иконок в различные форматы.
Пытался пустить данные и вычисления через Azure Machine Learning (как на картинке), но этот инструмент больше заточен под машинное обучение. К тому же JSON понимает не «из коробки».
Спросил ребят на Open Data Science, мне посоветовали только локальные решения. Из чего я сделал вывод, что облачных решений пока нема, а тут такая манящая статья…
С нетерпением ждём выхода в свет. Как насчёт бета-теста?
Пытался пустить данные и вычисления через Azure Machine Learning (как на картинке), но этот инструмент больше заточен под машинное обучение. К тому же JSON понимает не «из коробки».
Спросил ребят на Open Data Science, мне посоветовали только локальные решения. Из чего я сделал вывод, что облачных решений пока нема, а тут такая манящая статья…
С нетерпением ждём выхода в свет. Как насчёт бета-теста?
+1
Спасибо за комментарий!
Azure Machine Learning действительно близок по духу к Нирване, хоть и более узкоспециализированный.
Как уже ниже написала readysteady, мы хотим понять на сколько востребован может быть такой продукт для внешних пользователей. Если все сложиться удачно, то можно будет думать и о бета-тесте :)
Azure Machine Learning действительно близок по духу к Нирване, хоть и более узкоспециализированный.
Как уже ниже написала readysteady, мы хотим понять на сколько востребован может быть такой продукт для внешних пользователей. Если все сложиться удачно, то можно будет думать и о бета-тесте :)
0
Привет! Спасибо за рассказ!
1) А можете, пожалуйста, рассказать, как вы распараллеливаете Job-ы? То есть, вот есть у меня какой-то алгоритм. Как я понимаю, я должен запрограммировать его на каком-то языке и собрать в бинарник (наверное, положить в Докер). Всё, что вы сделаете — это запустите несколько инстансов моего контейнера? Или как-то более хитро сможете расспараллелить задачу?
2) А кто и где хостит Процессоры? Я, как пользователь вашего продукта, должен сам задеплоить свой Процессор в частном/публичном облаке? И с скалабилити я тоже должен сам бороться? Или я опять-таки могу завернуть свой Процессор в Докер, дать вам, и вы сами будете подымать и опускать инстансы?
1) А можете, пожалуйста, рассказать, как вы распараллеливаете Job-ы? То есть, вот есть у меня какой-то алгоритм. Как я понимаю, я должен запрограммировать его на каком-то языке и собрать в бинарник (наверное, положить в Докер). Всё, что вы сделаете — это запустите несколько инстансов моего контейнера? Или как-то более хитро сможете расспараллелить задачу?
2) А кто и где хостит Процессоры? Я, как пользователь вашего продукта, должен сам задеплоить свой Процессор в частном/публичном облаке? И с скалабилити я тоже должен сам бороться? Или я опять-таки могу завернуть свой Процессор в Докер, дать вам, и вы сами будете подымать и опускать инстансы?
0
* Я не разработчик Нирваны и никогда не пользовался ей, но у меня есть определенный опыт с некоторыми системами параллельного запуска задач *
1) Любой по-настоящему параллельный алгоритм позволяет принимать в себя часть данных, обсчитывать их и в дальнейшем объединять для следующего шага. В целом, MapReduce, допустим, работает именно так. То есть да, обычно запускается несколько экземпляров приложения, получающих на вход определенную часть из данных, которую необходимо обработать. Распределить входящие данные и собрать результат обычно проблемы платформы, а не приложения, в этом ее цель. Более хитрое распрделение вряд ли возможно, ну и в любом случае оно ограничено самим алгоритмом, магии тут нет. А что за алгоритм будет запускаться внури и какие сервисы он будет использовать — проблема программиста алгоритма и, частично, проблема платформы.
2) Учитывая ремарку про «полную изоляцию и выделенные ресурсы», job-процессор вероятно и есть контейнер. В этом случае с очень высокой степенью вероятности все будет происходить только в рамках инфраструктуры Я и их облака. Кстати, если модель оплаты будет похожа на Google Bigtables — было бы интересно.
P.S. По описанию Нирвана похожа на Google Cloud Job Discovery, который сейчас в закрытом тестировании. Приятно что Я делает вещи мирового уровня.
1) Любой по-настоящему параллельный алгоритм позволяет принимать в себя часть данных, обсчитывать их и в дальнейшем объединять для следующего шага. В целом, MapReduce, допустим, работает именно так. То есть да, обычно запускается несколько экземпляров приложения, получающих на вход определенную часть из данных, которую необходимо обработать. Распределить входящие данные и собрать результат обычно проблемы платформы, а не приложения, в этом ее цель. Более хитрое распрделение вряд ли возможно, ну и в любом случае оно ограничено самим алгоритмом, магии тут нет. А что за алгоритм будет запускаться внури и какие сервисы он будет использовать — проблема программиста алгоритма и, частично, проблема платформы.
2) Учитывая ремарку про «полную изоляцию и выделенные ресурсы», job-процессор вероятно и есть контейнер. В этом случае с очень высокой степенью вероятности все будет происходить только в рамках инфраструктуры Я и их облака. Кстати, если модель оплаты будет похожа на Google Bigtables — было бы интересно.
P.S. По описанию Нирвана похожа на Google Cloud Job Discovery, который сейчас в закрытом тестировании. Приятно что Я делает вещи мирового уровня.
0
1) А можете, пожалуйста, рассказать, как вы распараллеливаете Job-ы?
Сама Нирвана не занимается распараллеливанием процессов. Это зона ответственности процессоров. Job Processor, например, умеет запускать задачи в режиме master-slave.
Единственная параллельность на уровне Нирваны – это выполнение параллельных веток графа.
2) А кто и где хостит Процессоры?
Процессор для Нирваны — это просто web-сервис, реализующий необходимое REST-API. Так что в принципе, он может хоститьсягде угодно. Но в основном они развернуты на нашем внутреннем хостинге (Qloud).
+1
Давно, мечтаю о таком же UI. Но пока всё делаю веб-сервисами и ручками запускаю. Поиск, предиктивная аналитика, рендеринг иконок в различные форматы.
Пытался пустить данные через Azure Machine Learning (как на картинке), но этот инструмент больше заточен под машинное обучение. К тому же JSON понимает не «из коробки».
Спросил ребят на Open Data Science? мне посоветовали только локальные решения. Из чего я сделал вывод, что облачных решений пока нема, а тут такая манящая статья…
С нетерпением ждём выхода в свет. Как насчёт бета-теста?
Пытался пустить данные через Azure Machine Learning (как на картинке), но этот инструмент больше заточен под машинное обучение. К тому же JSON понимает не «из коробки».
Спросил ребят на Open Data Science? мне посоветовали только локальные решения. Из чего я сделал вывод, что облачных решений пока нема, а тут такая манящая статья…
С нетерпением ждём выхода в свет. Как насчёт бета-теста?
0
Интересно, для каких задач кроме описанных в статье может быть использован данный инструмент?
0
Если честно, то круг задач довольно широк. навскидку, можно использовать инструмент как систему сборки. Почему нет?
0
Не уверен на счет нирваны, лет пять назад делали продобный велосипед проект (DSL для описания task-ов, проектов в терминах нирваны, видимо и job-ов и даже была попытка графически визуализировать дерево, но забили на это). Но там имелась возможность не только запускать процессы обработки и передачи данных, но и управляющие команды, флоу основной задачи был примерно такой:
1 Просмотр внешних источников данных
2 Если есть конвертация, каждый источник свой конвертер в общий формат
3 Загрузка в Mongo(остановка репликации/запуск репликации (не помню деталей уже))
4 Запуск процедур индексации (полной/инкрементной) полнотекстового поиска по загруженным данным
5 Регенерация сайтмап для поисковых роботов
6 проверка отказов на каждом шаге уведомление по почте об сбоях
7 отложенный запуск через N минут или через K если был обнаружен сбой
Были так же менее сложные задачи, имелась возможность создавать вложенные задачи условные запуски job-ов, обработка отказов. Контекст исполнения и данные хранились в Mongo, не было серьезных требований по количеству/объемам так как не открытая платформа была, а так для себэ.
1 Просмотр внешних источников данных
2 Если есть конвертация, каждый источник свой конвертер в общий формат
3 Загрузка в Mongo(остановка репликации/запуск репликации (не помню деталей уже))
4 Запуск процедур индексации (полной/инкрементной) полнотекстового поиска по загруженным данным
5 Регенерация сайтмап для поисковых роботов
6 проверка отказов на каждом шаге уведомление по почте об сбоях
7 отложенный запуск через N минут или через K если был обнаружен сбой
Были так же менее сложные задачи, имелась возможность создавать вложенные задачи условные запуски job-ов, обработка отказов. Контекст исполнения и данные хранились в Mongo, не было серьезных требований по количеству/объемам так как не открытая платформа была, а так для себэ.
0
Слушайте, это конечно отличная идея, обсуждать внутренние инструменты на публичном ресурсе. Но какая внешним людям польза от знания, что внутри яндекса есть такое чудо? Захотеть трудоустроиться в яндекс, только чтобы потыкать пальчком в крутой тул? Серьезно?
+7
Спасибо за вопрос. Мы и сами думали перед тем, как написать статью, интересно ли будет широкому кругу читателей, если мы не даем доступа к инструменту, а рассказываем про историю его появления и способы применения. Но ведь и про fml много писали на Хабре, хотя пользоваться им снаружи тоже нельзя. И статьи пользовались вниманием.
Мы ведь и без этой статьи обсуждаем внутренние инструменты публично: на собеседованиях, на конференциях, в кругу ML-увлеченных коллег из других компаний (настолько подробно, насколько нам позволяет NDA).
И в конце статьи мы написали, что в числе прочего нам интересно:
— есть ли у широкого круга читателей опыт по работе с подобными системами (а они существуют),
— есть ли горящие задачи, которые можно было бы решать с помощью Нирваны не только в Яндексе.
Делать систему открытой не только для сотрудников — это большая и ресурсозатратная работа для нескольких подразделений. Прямо сейчас это невозможно сделать. И мы размышляем над тем, есть ли потребность.
Есть ли внешним людям польза от нашего знания — вот в комментариях и хотим прочитать. Возможно, мы провернули кучу работы для этой статьи зря. А может, и нет. Решать каждому конкретному читателю.
Мы ведь и без этой статьи обсуждаем внутренние инструменты публично: на собеседованиях, на конференциях, в кругу ML-увлеченных коллег из других компаний (настолько подробно, насколько нам позволяет NDA).
И в конце статьи мы написали, что в числе прочего нам интересно:
— есть ли у широкого круга читателей опыт по работе с подобными системами (а они существуют),
— есть ли горящие задачи, которые можно было бы решать с помощью Нирваны не только в Яндексе.
Делать систему открытой не только для сотрудников — это большая и ресурсозатратная работа для нескольких подразделений. Прямо сейчас это невозможно сделать. И мы размышляем над тем, есть ли потребность.
Есть ли внешним людям польза от нашего знания — вот в комментариях и хотим прочитать. Возможно, мы провернули кучу работы для этой статьи зря. А может, и нет. Решать каждому конкретному читателю.
+2
Да все же рассказывают про свои внутренние ML-платформы:
Facebook FBLearner Flow
Uber Michelangelo
Google TFX
Ничто из этого нельзя потрогать снаружи, так что заманивают на работу, конечно.
С другой стороны, мы вот у себя внутри тоже платформу пилим, да и все на ML-рынке этим в той или иной степени занимаются. И я с интересом смотрю на опыт других, подмечаю интересные идеи.
0
Зачем Нирване знать о графовой структуре процессов? Зачем ей вообще знать о структуре процессов?
+2
Не очень поняла ваш вопрос. Дело в том, что Нирвана сама подразумевает, что у процессов графовая структура. В Нирване ведь нельзя выполнить процесс, у которого не графовая структура. Можно, конечно, создать граф из одного блока, но это вырожденный вариант графовой структуры.
Нирвана состоит нескольких компонентов, и Workflow Processor, как написано в статье, смотрит на структуру графа и каждый блок, для которого пришли все нужные входные данные, отправляет в процессор, который за этот блок отвечает.
То есть знать о структуре процессов Нирване нужно для того, чтобы процессы выполнять. Другое дело что каждый пользователь сам решает, насколько детально он распишет процесс: может, конкретное действие выполнит один блок, а может — вложенный граф на 3500 блоков. Во втором случае можно больше узнать о конкретном действии, глядя на граф (если этапы процесса достаточно понятно описаны автором поблочно, конечно).
Нирвана состоит нескольких компонентов, и Workflow Processor, как написано в статье, смотрит на структуру графа и каждый блок, для которого пришли все нужные входные данные, отправляет в процессор, который за этот блок отвечает.
То есть знать о структуре процессов Нирване нужно для того, чтобы процессы выполнять. Другое дело что каждый пользователь сам решает, насколько детально он распишет процесс: может, конкретное действие выполнит один блок, а может — вложенный граф на 3500 блоков. Во втором случае можно больше узнать о конкретном действии, глядя на граф (если этапы процесса достаточно понятно описаны автором поблочно, конечно).
0
> Нирвана — неспециализированная облачная платформа
Замечательно! А почему на ее аватаре — Себрант? :)
Замечательно! А почему на ее аватаре — Себрант? :)
+2
Дима, привет :)
Ты имеешь в виду картинку в начале поста? Это не аватар, эту иллюстрацию мы делали для этой статьи специально. Если честно, я связи у образа монаха с Андреем Себрантом не видела, но теперь понимаю, что они могут казаться похожими.
Мы попросили иллюстраторов взять для статьи образ такого знающего, опытного адепта Нирваны — и не имели в виду никого конкретно.
Ты имеешь в виду картинку в начале поста? Это не аватар, эту иллюстрацию мы делали для этой статьи специально. Если честно, я связи у образа монаха с Андреем Себрантом не видела, но теперь понимаю, что они могут казаться похожими.
Мы попросили иллюстраторов взять для статьи образ такого знающего, опытного адепта Нирваны — и не имели в виду никого конкретно.
0
В Яндексе Нирвана и Кокаин идут рука об руку
0
Apache Spark
-1
Очень интересно! Может сделаете закрытый бета-тест? Тогда и запрашиваемая обратная связь будет более предметной. А там и по результатам может быть выкатите в узкий паблик.
1. На чем у вас написан UI? Это браузер?
2. Какую библиотечку использовали для графа?
1. На чем у вас написан UI? Это браузер?
2. Какую библиотечку использовали для графа?
+1
1. На чем у вас написан UI? Это браузер?
Да это браузер. UI полностью написан на Polymer.
2. Какую библиотечку использовали для графа?
В первой инкарнации Нирваны, рендерилка графов была сделана поверх JsPlumb. Но очень скоро мы уперлись в производительность, на графах 100+ блоков.
Поэтому было принято решение написать собственный визуализатор «с нуля». Сейчас это хитрая комбинация canvas и HTML, под капотом там redux + lit-html. Вообще отрисовка (и взаимодействие) графа в 3000+ блоков, это отдельная и очень интересная задача :)
+1
Эту рендерилку было бы неплохо иметь в виде отдельного продукта. Насчёт Нирваны не знаю, но вот качественный «Blueprint-like» редактор графов уже сам по себе много где пригодился бы, а найти что-то похожее, даже за деньги, сильно не просто, а потом ещё и дорабатывать напильником не один месяц.
+1
Вообще-то есть вполне хорошая библиотека. Раньше стоила несколько тысяч долларов, теперь ее отдали в Open Source: github.com/jgraph/mxgraph
+1
UFO just landed and posted this here
Оффтоп про шапку: в матрице символы каны были отзеркалены по горизонтали
0
Спасибо большое за статью!
Скажите, пожалуйста, как можно подключиться к вашей платформе, мы хотели бы ее использовать для доработки нашей систему по моделированию «умного города».
Скажите, пожалуйста, как можно подключиться к вашей платформе, мы хотели бы ее использовать для доработки нашей систему по моделированию «умного города».
0
Здравствуйте! У нас пока нет открытой Нирваны, только закрытая. Эта статья — в каком-то смысле возможность понять, нужна ли вообще рынку открытая и для чего. Очень много нужно планирования, времени и других ресурсов, чтобы внутренний продукт стал внешним, и не каждому внутреннему продукту это нужно.
Спасибо за поддержку.
Спасибо за поддержку.
0
Sign up to leave a comment.
Познаём Нирвану – универсальную вычислительную платформу Яндекса