Обсуждение

В архиве: 6 комментариев.

Читать и комментировать в ЖЖ ↗

sply · 27 апреля 2018

Комментарий

> Его появление означает, что обученные нейронные сети/коннективистские модели стали полезными и нужно выдавать внешним пользователям (а не только самим разработчикам, обучающим модели) интерфейс сервиса по запуску этих моделей на исполнение. Нейросетки выходят в люди, буквально. Ешьте ваши модели, сервировано. Точно подмечено, становится больше поставщиков такого сервиса, и внешних потребителей. Если смотреть в с высоты, то можно видеть четыре основных способа использования моделей: 1) чисто исследование, результатом которого является опыт или статья; 2) персональное использование модели - используется либо для разового получения результата, либо встраивается в какой-нибудь business intelligence; 3) встраивание модели в внутренние процессы обработки данных (рекламные сети, антиврод); 4) доступный публично API для SaaS и мобильных приложений. Вот этот четвертый пункт сейчас и начинает двигать model serving. Появляются проекты, которые продают непосредственно "труд" своих моделей. Раньше практически не было продавцов такого вида услуг, за исключением Гугля и нескольких других. Но в целом, доля четвертого пункта была едва заметна. А сейчас уже и масса стартапов доросла до рабочего продукта и продаж такого сервиса. Но есть еще и другая важная причина роста model serving - архитектурная, переход на микросервисы и serverless. То есть в пункте 3, модели вытаскивают из приложения в отдельный сервис, чтобы было удобнее и быстрее ее развивать.

Анатолий Левенчук · 27 апреля 2018

Комментарий

Да, я тут ровно про архитектурную причину: микросервисы как тренд на автономизацию модулей (позднее связывание, т.е. обмен сообщениями) и бессерверность как вынос инфраструктуры сервировки к отдельным провайдерам. По сути, это платформизация как обеспечение разделения труда по созданию и предоставлению моделей публике. А все эти "оркестровки" и "хореографии" уже уровнем выше, хотя слова эти всё реже слышатся. Это становится "просто программированием", без специальных слов.

Ответ на комментарий

a2danov · 27 апреля 2018

Комментарий

Microsoft с весенним обновлением Win10 добавляет WinML API (Windows Machine Learning). Основная задача - загрузка модели ONNX, обученной другими средствами, и компиляция модели под имеющееся железо. Есть GPU - будет собрано под GPU, причем с оптимизацией под NVIDIA, AMD, Intel. Нет GPU, будет скомпилирована под CPU. В качестве примера показали компиляцию под экзотическое железо Intel - VPU. Кратко описал тут: https://habr.com/post/351724/ Например, можно сделать модель, которая по движению стилуса предсказывает, что человек хочет нарисовать и заканчивает за него. Полезно при рисовании схем/диаграмм. Можно сделать 3D-модель аватара, у которой входными переменными могут быть эмоции, направление и форма движения, направление внимания, цель, интенции .... Судя по комментариям к моей статье, некоторые профи из мира DL/ML даже не понимают неизбежность и необходимость сервировки моделей.

Анатолий Левенчук · 27 апреля 2018

Комментарий

Суть предлагаемого мной -- это использование одного GPU для множества разнородных моделей. Речь не идёт о том, чтобы просто грузануть модель в GPU и там её задействовать. Речь идёт о том, чтобы грузить и задействовать независимо много разных (или однотипных -- по всякому бывает) моделей. Сервировка и контейнеризация, но для GPU. Немонопольный захват моделями одной аппаратуры. Мне кажется, для этого нужно немного постараться: это ведь типичная задача для операционной системы -- многозадачность и многопользовательскость, планировщик как существенная часть, виртуализация и т.д.. Под такой фреймворк и стартап можно сразу делать, потом его NVIDIA купит )))

Ответ на комментарий

sply · 27 апреля 2018

Комментарий

Загрузить и использовать несколько моделей на одной GPU карте и сейчас возможно. Там нет изоляции и жесткого разделения вычислительных ресурсов, нет защиты одной модели от другой и поэтому на одной карте нельзя будет безопасно запускать модели разных пользователей. Если же требований к защите нет, то дополнительной ОС или виртуализации на уровне карты не требуется, то параллельную работу нескольких моделей обеспечивает ОС самого сервера.

Ответ на комментарий

Анатолий Левенчук · 27 апреля 2018

Комментарий

ну вот все эти защиты задач одна от другой, виртуализация-контейнеризация и прочие вещи современной культуры операционных систем/систем виртуализации -- это важно. GPU будет проходить всё то же самое с софтом, что и традиционные операционки с традиционными CPU. Это можно предугадать. Совместить это всё с софтом по сервировке моделей -- мне кажется, что интересная идея. А руками на ассемблере, конечно, можно написать что угодно, "это и сейчас возможно" -- традиционный ответ программистов. Вопрос обычно в том, можно ли это всё делать быстро и безопасно вызовом одной функции/сервиса с парой параметров. Или таки нужно программировать.

Ответ на комментарий