Слайд 1Голосовое управление в облачных веб-проектах с помощью «Яндекс.Станции» и Google
Assistant
Александр Сербул
Руководитель направления
Слайд 2Похоже, что-то не так…
Май 2011, 150 лет MIT
Симпозиум “Brains, Minds
and Machines”
Диспут Ноама Хомски и Питера Норвига
Слайд 3Все летит в …
Ученые в ступоре! 20 отжиманий и 50
приседаний, плз.
Хватит кодить! В голову можно не только кушать, но
ей можно … думать!
Слайд 4Подтянулись GPU и железо
Универсальные GPU
CUDA
Работа с тензорами
Диски, кластера: Spark, Hadoop/HDFS,
Amazon s3
Языки: Scala
Слайд 5Парад бесплатных фреймворков
TensorFlow (Google)
Torch
Theano
Keras
Deeplearning4j
CNTK (Microsoft)
DSSTNE (Amazon)
Caffe
Слайд 6Вендоры скупают ученых
Facebook (Yann LeCun)
Baidu (Andrew Ng, уже правда уходит,
достали тупить )
Google (Ian Goodfellow)
SalesForce (Richard Socher)
openai.com …
Слайд 9Как работает нейронка?
Все просто – почти как наш мозг
Вспомните
школьные годы – и все станет понятно
www.deeplearningbook.org
Слайд 10Фантастические интерьеры
https://habrahabr.ru/company/mailru/blog/338248/
Слайд 11Изменение возраста
https://habrahabr.ru/company/mailru/blog/338248/
Слайд 13Борьба с заболеваниями
https://habrahabr.ru/company/mailru/blog/325908/
Слайд 14Чтение по губам
Сеть без звука читает по губам – уже
2 раза лучше человека
https://habrahabr.ru/company/mailru/blog/338248/
Слайд 15Google Neural Machine Translation
https://habrahabr.ru/company/mailru/blog/338248/
Слайд 17Чатботы – технологии «попроще»
Регулярные выражения
Примитивные «движки» с правилами
Заполнение цепочки форм
Вычленение
фактов из теста и выполнение действий
api.ai – простой движок на
веб-хуках
Слайд 18Чатботы – фреймворки
api.ai
Amazon Alexa
Microsoft Bot Framework
Слайд 19Чатботы – фреймворки, элементы
Google Cloud Natural Language API, Amazon Comprehend
Анализ
тональности текста
Выявление намерения (категория)
Вычленение сущностей (личности, места, даты и т.п.)
Синтаксический
разбор (части речи)
Ключевые слова
Определение языков
Слайд 20Чатботы – элементы
Google SyntaxNet, Parsey’s Cousins
>40 языков
Слайд 21Чатботы – элементы
Яндекс, Томита.Парсер. Вычленение фактов.
Слайд 22Deeppavlov.ai
https://deeppavlov.ai
http://ipavlov.ai
Очень интересные, мощные архитектуры моделей и нейросетей
Есть готовые «русскоязычные» модели
Отличная
поддержка на форуме: https://forum.ipavlov.ai
Слайд 23Deeppavlov.ai - возможности
Определение намерения, тональности
Морфологическая разметка (11 языков, в т.ч.
русский)!
Определение сущностей (имена, места, организации, даты, количества) с быстрым стартом
Семантическое
ранжирование!
Коррекция правописания
Ответ на вопрос цитатой из контекста
Слайд 24Deeppavlov.ai – выполнение текстовых команд
Слайд 25Deeppavlov.ai – ответ фактами из базы знаний
Слайд 26Чатботы – элементы
Морфологический словарь?
Словарь синонимов?
Семантический граф?
Гипонимы/гиперонимы
Устранение неоднозначностей…
Национальный корпус русского языка…
Слайд 27Чатботы – кейсы применения
Узкая специализация: пиццерия, магазин, справка (ИНН), база
знаний, распознавание изображений
Сбор фактов и выполнение действия (заказ пиццы, билета)
«Точечное»
машинное обучение: анализ тональности, классификация, вычленение фактов
Слайд 28Чатботы – кейсы на Битрикс24
Можно использовать в открытых линиях в
>100к компаний Битрикс24
Можно использовать в CRM
Можно использовать в мессенджере
Современная, удобная
платформа для интеграции
Слайд 29Бот плафторма Битрикс24
Можно писать на любом языке
Неплохая документация с примерами
Есть
заготовка на PHP
Веб-хуки
Слайд 30Наши эксперименты
Наши эксперименты:
Ф.М. Достоевский, "Преступление и наказание“
Число слоев сети:
2
Число нейронов в каждом слое: 400
Коэффициент встряхивания "мозгов"
(dropout): чуть больше единицы
Память сети: 50 символов назад
Число параметров, которые мы учим - меньше миллиона.
Слайд 31Наши эксперименты:
Л.Н. Толстой, "Война и мир"
Число слоев сети: 3
Число нейронов в каждом слое: 400
Коэффициент встряхивания "мозгов" (dropout):
чуть больше единицы
Память сети: 150 символов назад
Число параметров, которые мы учим - несколько миллионов
Наши эксперименты
Слайд 32Наши эксперименты:
Код ядра Битрикс
3-х слойная сеть, размер слоя: 400
нейронов, несколько миллионов параметров, память: 150 символов назад, обучение -
ночь
Наши эксперименты
Слайд 33«Нейробот»
Embedding+encoding -
каскад сжатия вопроса/контекста
(RNN/FF/CNN, softsign, adam)
Слой векторного умножения
(dot product) либо
другой kernel
Корректирующий слой
(feed forward + softmax)
Ответ сети: похожесть
вопроса и ответа
(0-1)
TF-IDF/Ngram – токенизация
TF-IDF/Ngram - токенизация
Embedding+encoding -
каскад сжатия ответа
(RNN/FF/CNN, softsign, adam)
"Вопрос"
"Ответ"
Кластер веб-серверов,
Кэширование, REST-API
GPUs (TitanX)
Возможные ответы
на контекст
Глубокая нейронная сеть
с двумя входами и одним выходом
с адаптивной архитектурой.
Внутри сети происходит совмещение
семантических пространств вопросов
и ответов.
В 2017 году – сделали совместный пилот с мэрией Москвы
Слайд 35Голос вместо текста
Распознавание речи через нейросеть
Понимание неоднозначностей
Яндекс, Google, Amazon
Слайд 40Подключение – «Алиса» на портале Битрикс24
Слайд 41Подключение – «Google Ассистент» на портале Битрикс24
Слайд 42«Алиса», отправка сообщения на портале Битрикс24
Слайд 43«Алиса», создание Задачи на портале Битрикс24
Слайд 44«Алиса», создание События на портале Битрикс24
Слайд 45«Google Ассистент», создание События на портале Битрикс24
Слайд 46Как управлять AI проектом и прийти к цели?
Слайд 47Вы – руководитель проекта
Нужно быстро проверить, что идея работает
Нужно объяснить
клиенту/ам, в чем польза решения
Нужно иметь возможность поддерживать и развивать
решение
Нужно уложиться в сроки и бюджет
Нужно подобрать людей в команду
Слайд 48Ваша компетенция
Вы слышали про математическую статистику … на гуманитарном факультете
От
фразы «линейная алгебра» у вас болит голова и ощущается привкус
крови во рту
Вы не писали код, никогда
Вы не сисадминили сервера
Вы не понимаете, как работают алгоритмы машинного обучения
Слайд 49Вы свободны.
Спасибо за внимание!
Слайд 51Огнестрельное оружие и единоборства
Слайд 53Ключевые качества IT-менеджера
Позитивная энергетика, умение вдохновлять и мотивировать
Ответственность
Коммуникабельность
Талант бережливости и
уменьшения работы
Знание и применение очень простых «хитростей» Agile-методологий
СИСТЕМНЫЙ ПОДХОД (желание
строго описать процесс, делегировать и уйти на повышение)
Слайд 54Что Вам нужно прямо сейчас?
Найти эксперта-математика, который поможет объяснить суть
идеи/модели на пальцах
Научиться объяснять пользу идеи таким же, как вы
Реализовать
простейший рабочий прототип
Двигаться маленькими, измеримыми шагами
Постоянно общаться с клиентами, пытаясь понять объем принесенной пользы
Слайд 55Все начинается с культуры сбора, очистки и хранения ДАННЫХ
Слайд 56Где взять данные и где их хранить?
Культура сбора, очистки и
хранения данных. Сисадмины или облако.
Данные – нужно собирать из разных
источников
Данные – можно купить
Данных будет, обычно, много
Данные нужно правильно хранить: ClickHouse, Amazon RedShift, Vertica, Druid, Impala, Presto и т.д.
Слайд 57Чем AI/ML проекты отличаются от …
разработки веб-сайта на PHP/Битрикс/Битрикс24?
Нужно
знать основы математической статистики, теории вероятностей и линейной алгебры, теорему
Байеса и ее применение
Нужно знать дополнительные языки: python
Нужно уметь создавать прототипы и презентации в Jupyter Notebook
Нужно «набить руку» в библиотеках: pandas, scikit-learn, seaborn, matplotlib
Иногда полезно знание экосистемы для языка R
В сложных случаях придется знать библиотеки: Keras, TensorFlow, Torch и аналоги
Пригодится работа с кластерами Spark
Слайд 58Инженеры-программисты – провалят AI/ML-проект
Слайд 59Чем AI/ML проекты отличаются от …
разработки веб-сайта на PHP/Битрикс/Битрикс24?
В
коде инженеров-программистов обычно: чистота, порядок, системность
Пишутся unit и интеграционные тесты
Объем
кода тестов = объему написанного кода проекта
Название классов, функций, переменных, модулей, файлов – имеют смысл
Поддерживается единый CodeStyle
Математики – известные «г..нокодеры»
В исследовательских проектах на Python – потоки сознания со слабой структурой и сильными эмоциями
Нужно системно учить инженерным практикам и алгоритмам новоиспеченных «датасатанистов»
Слайд 60«Датасатанисты» – провалят AI/ML-проект
Слайд 61Чем AI/ML проекты отличаются от …
разработки веб-сайта на PHP/Битрикс/Битрикс24?
Машинное
обучение создает «программу» на основе данных
Написать руками такую «программу» -
практически невозможно или очень сложно и дорого
Новые данные –> новая «программа» например хуже или лучше
Чем больше данных, тем, обычно, «программа» лучше
Слайд 62Ингредиенты успешного
AI/ML проекта
Данные
Бесплатные библиотеки
«Программа» = автоматически обученный на данных алгоритм
Инженер-программист
Аналитик/Дата
-сайнтист
Сисадмин/админ БД/инженер по данным
Сервис, например API
Клиент/
Заказчик
Инженер-программист
Сисадмин с опытом, возможно DevOps
Слайд 63Культура сбора данных + >=1 хороший программист + >=1 аналитик
данных
Слайд 64Наши AI проекты …
рекомендательная система для десятков тысяч интернет-магазинов (Apache
Spark, Apache Lucene, Apache Mahout)
чатботы (Deeplearning4j)
распознавание лиц клиентов: рабочий
день, скидки в CRM
классификатор обращений в техподдержку (нейросеть, java, Deeplearning4j)
технологический стек компании: PHP, JavaScript, C++, Java.
технологический стек AI-проектов: python, Jupyter Notebooks, scikit-learn, anaconda, pandas, seaborn… java
Слайд 65 Новый проект - сервис скоринга CRM в Битрикс24
Слайд 66Способы быстро запустить проект в облаке
Слайд 67Сервис «Amazon Machine Learning»
Только логистическая регрессия
Работа через API
Простой язык для
feature engineering
Простая визуализация и контроль качества классификаторов (binary, multiclass) и
регрессии
Масштабирование
Слайд 68Сервис «Amazon Sage Maker»
Немало встроенных МАСШТАБИРУЕМЫХ алгоритмов
Поддержка работы с Jupiter
Notebooks (kernels: Python 2 and 3, Apache MXNet, TensorFlow, and
PySpark)
Авто-масштабирование, развертывание, A/B-тестирование
Оплата только за хостинг железа для моделей
Можно поднимать машины с GPU
Слайд 69Где брать людей в команду?
Акселераторы, хакатоны
Физтех-акселератор (pha.vc)
Сообщество «OpenDataScience» (ods.ai)
aione.world, «ScienceGuide»
Синергия,
синергия, синергия…
Слайд 70Где брать людей в команду?
Бигдата: хорошие программисты и опытные сисадмины
– 1 штука на проект
Создание/тюнинг моделей: физматы – 1 штука
на отдел
Product owner с обновленным мозгом – 1 штука на проект(ы)
Менеджеры – 1024 килограмм
python, java, unix, spark, scala, julia
Слайд 71
Спасибо за внимание!
Вопросы?
Александр Сербул
@AlexSerbul
Alexandr Serbul
serbul@1c-bitrix.ru