Как стать автором
Обновить
177.44
SberDevices
Создаём умные устройства
Сначала показывать

1000 и 1 способ сесть на мель в Spring WebFlux при написании высоконагруженного сервиса

Время на прочтение8 мин
Количество просмотров12K

Источник изображения: Shutterstock.com/photowind

Добрый день, меня зовут Тараканов Анатолий, я senior java разработчик SberDevices. 2.5 года программирую на Java, до этого 6 лет писал на C# и 1 год на Scala. Хочу поделиться опытом создания сервиса-оркестратора Voice Processing Service. Он является точкой входа для пользователей семейства виртуальных ассистентов Салют. Через него также проходит часть трафика приложений SmartMarket, где любой разработчик может написать навык для наших виртуальных ассистентов Салют.

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

Немного о сервисе


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

  • идентификации по токену, а также голосовым и видеоданным;
  • насыщения запроса дополнительными данными о пользователе и истории взаимодействия;
  • преобразования речевого сигнала в текстовое представление;
  • обработки естественного языка;
  • преобразования текста в голосовое представление;
  • запуска пилотных фич;
  • распознавания музыки и другие.

Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии12

Как машины учатся эмоциональному поведению

Время на прочтение14 мин
Количество просмотров5.1K
Нередко при взаимодействии с техникой люди проявляют эмоции: мы можем злиться на сломавшийся банкомат или умиляться пронырливости робота-пылесоса. Да, мы общаемся с роботами, но не стоит оценивать это общение как одностороннее: в логику аватаров, которые компании используют для взаимодействия с пользователем, часто бывает встроен навык понимания эмоций, и даже их проявления. Обычно это нужно, чтобы сделать общение приятным для клиента. Как же это всё работает?


Часто сюжеты фильмов и книг о роботах вращаются вокруг темы эмоций. «Добрые» роботы учатся у людей любви и самопожертвованию, а «злые» оказываются повержены из-за неспособности любить, жертвовать собой, предугадывать «иррациональные» поступки людей. Так, робот Вертер из фильма «Гостья из будущего» мучается из-за любви к Полине, а Электроник из одноименных «Приключений» в разные моменты фильма плачет, улыбается и смеётся, и в итоге именно это делает его человеком. 

Смогут ли машины в самом деле испытывать эмоции? Ответить на этот вопрос будет трудно, покуда нам непонятна физиологическая составляющая эмоций. Если смотреть на эмоции широко, даже в поведении примитивных организмов наблюдаются явления, которые можно интерпретировать как эмоции. Например, у некоторых моллюсков в результате обучения формируются условные рефлексы, которые заставляют их избегать определённых стимулов. А что это, как не страх? Но оставим философствования философам, а современным учёным и разработчикам — практические исследования. По данным последних, с уверенностью можно сказать, что машины можно научить распознавать эмоции и их симулировать. 
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии5

Всё, что нам нужно — это генерация

Время на прочтение10 мин
Количество просмотров28K

Применяем ruGPT-3 в популярных задачах и показываем, зачем языковым моделям триллион параметров


С наступлением 2021 в NLP продолжается гонка «больше — лучше», захватывая новые архитектуры. Пальма первенства самой большой языковой модели в 2020 году принадлежала GPT-3 от OpenAI с 175 миллиардами параметров — но недолго. Модель GShard с помощью Mixture-of-Experts повысила планку до 600 миллиардов параметров, а затем и Google Brain заявил о разработке архитектуры Switch Transformer с 1,6 триллионами параметров (и тоже является MoE). Насколько повышение результатов за счет объема полезно для индустрии? Тот же Switch Transformer с его триллионом параметров далеко не на 1 месте в лидербордах.

Огромные языковые модели (Enormous Language Models, теперь это термин, им посвящен отдельный воркшоп конференции ICLR 2021) показывают действительно интересные результаты — не только в традиционных задачах ML, но и в новых сферах применения: генерации всего того, что раньше генерировать без ошибок было нельзя — музыку, изображения попиксельно, программный код и т.д. Из всех традиционных форм NLP-задач — классификация, классификация элементов последовательности, seq2seq, — по сути, у нас остается только одна: seq2seq. С приходом больших языковых моделей все задачи NLP сводятся теперь к форме генерации, при должном качестве этой самой генерации.

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

  • Лично нам в SberDevices не терпелось поскорее применить такой формат к различным задачам — поэтому мы открываем доступ к самой большой русскоязычной нейросети ruGPT-3 XL с 1,3 млрд параметров. 

Инженерный запал вылился в кропотливую работу по распараллеливанию обучения, очистке данных и тестированию. Но зато… теперь в open-source модель ruGPT-3 XL с 1,3 млрд параметров!



А также ее публичное API:


Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии80

Синтез речи виртуальных ассистентов Салют: как мы отошли от классических научных статей, чтобы сделать его человеческим

Время на прочтение12 мин
Количество просмотров17K

Автор исходного изображения: Blue Flourishes/Shutterstock.com

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

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


Персонажей озвучили телеведущая Анастасия Чернобровина (Афина) и актёры дубляжа Даниил Щебланов и Татьяна Ермилова (Сбер и Джой). Виртуальных ассистентов можно услышать в приложениях Сбер Салют, СберБанк Онлайн, нашем колл-центре по номеру 900, а также в устройствах SberBox и SberPortal. Всё, что вы услышите, — это синтез речи, реализованный с помощью нейросетей. Он работает на связке Tacotron 2 и LPCNet.

Но, чтобы было понятно, что, зачем и почему, — немного теории и истории

Читать далее
Всего голосов 35: ↑34 и ↓1+45
Комментарии30

Как мы анализируем предпочтения пользователей виртуальных ассистентов Салют

Время на прочтение9 мин
Количество просмотров2.7K
Приветствую всех! Меня зовут Ибрагим, я работаю в SberDevices и занимаюсь машинным обучением. Сегодня я расскажу о том, как мы находим и анализируем интересы и предпочтения пользователей наших виртуальных ассистентов Салют.

Также поделюсь видео с моего недавнего выступления на онлайн-конференции «Применение ML в Digital-продуктах», которую проводили коллеги из AGIMA и Epoch8.


В этом посте мы разберём следующее:

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

Вступление


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

  • отсутствие готовых датасетов;
  • отсутствие чёткой структуры классов, на которые можно разделить данные;
  • наличие сырых логов, в которых могут быть интересующие нас данные;
  • сильный дисбаланс классов, где самый многочисленный класс – это класс нерелевантной информации.

Для решения подобных задач, мы выработали определенный пайплайн – последовательность шагов, которая позволяет быстро и дёшево обучить нужную модель. Ниже рассмотрим процесс обучения модели для классификации интересов пользователей.
Всего голосов 16: ↑16 и ↓0+16
Комментарии0

История нейронных сетей в СССР

Время на прочтение14 мин
Количество просмотров32K
Сегодня нейронные сети широко известны благодаря достижениям таких учёных как Джеффри Хинтон, Йошуа Бенджио и Ян ЛеКун. Но далеко не все открытия в области коннекционизма сделаны на Западе. Над нейронными сетями начиная с конца 50-х годов активно работали и в Советском союзе, хотя за исключением специалистов сегодня немногие знают о подробностях этих исследований. Поэтому мы решили напомнить о работе советских учёных, рассказав историю отечественного коннекционизма.

Учёные Галушкин А.И. и Ивахненко А.Г.

1960-е стали золотым веком советской науки. К 1975 году ¼ от всего количества учёных в мире работала в СССР, при этом большое внимание уделялось точным наукам, плоды которых часто имели прикладное значение. Не обходили стороной и кибернетику, в которой видели огромный потенциал. Под влиянием военного и учёного Анатолия Китова она была реабилитирована после недолгой «опалы». Шла работа в области автоматического управления, машинного перевода, сетевых технологий… Сейчас бы мы сказали, что в СССР существовала целая школа искусственного интеллекта!
Читать дальше →
Всего голосов 34: ↑32 и ↓2+44
Комментарии17

Новые возможности для Python-разработчиков: SmartApp Framework в open source

Время на прочтение4 мин
Количество просмотров3.7K
Платформа SmartMarket позволяет разработчику с любым уровнем подготовки создавать мультимодальные приложения для виртуальных ассистентов Салют, даже без программирования. Конечно, если хочется сделать что-то красивое и сложное, без кода не обойтись. Чтобы облегчить жизнь разработчикам, мы делимся с ними нашими наработками в open source. На митапе разработчиков SmartMarket, прошедшем в декабре, мы рассказали о новом фреймворке.

Ниже вы найдете текстовую версию доклада и его видеозапись.


Друзья, привет! Меня зовут Кристина, я backend-разработчик SberDevices и тимлид сервиса управления диалогом, который используется для работы виртуальных ассистентов Салют. Расскажу вам сегодня о новом инструменте SmartMarket – SmartApp Framework, который мы выложили в open source.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+12
Комментарии0

Навыки для виртуальных ассистентов на веб-технологиях

Время на прочтение8 мин
Количество просмотров6.4K

Недавно Cбер запустил Салют — семейство виртуальных ассистентов, которые работают на разных платформах. Мы в SberDevices, кроме самого ассистента, занимаемся разработкой инструментов, которые позволяют любому разработчику удобно создавать навыки, которые называются смартапы. Кроме общеизвестных диалоговых сценариев в формате чата — ChatApp, можно создавать смартапы в формате веб-приложения на любых известных веб-технологиях — Canvas App. О том, как создать простейший смартап такого типа на JS, и пойдет сегодня речь.

Погнали под кат!
Всего голосов 9: ↑8 и ↓1+12
Комментарии2

Всё, что вы хотели знать о перцептронах Розенблатта, но боялись спросить

Время на прочтение17 мин
Количество просмотров17K


Вы, наверно, знаете, что перцептрон Розенблатта, изобретённый в середине XX-го века, стал прообразом современных нейронных сетей. Однако многое из того, что известно нам о нём и его создателе, не соответствует действительности. В продолжение серии статей об историческом развитии искусственного интеллекта попробуем разобраться, что является искажением фактов в рассказах об одном из основоположников машинного обучения, и почему он — действительно важная фигура в истории ИИ.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии2

Тестируем ruGPT-3 на новых задачах

Время на прочтение9 мин
Количество просмотров50K

Рекомендательные системы с нуля, чат-боты и многое другое


Погрузившись в пучину текстовых данных, в октябре этого года мы обучили модели ruGPT-3 — модели для русского языка на основе архитектуры от OpenAI. Но на что же способны эти модели? В этой статье мы соберем первые примеры применения модели — и попробуем новые.

Мы представляем первые результаты самой большой из обученных моделей — ruGPT-3 Large, разработанной совместно с командами SberDevices, Sber.AI и SberCloud. Изучим границы ее применения вместе с вами.

image

В этом году на AI Journey мы подготовили соревнование применений ruGPT-3 — в трек можно сдать любое решение с использованием модели, оцениваемое по трем шкалам — инновационность, эмоциональное вовлечение и бизнес-применимость.

Спойлер:
1 млн рублей за первое место

Читать дальше →
Всего голосов 20: ↑18 и ↓2+25
Комментарии51

Обучение модели естественного языка с BERT и Tensorflow

Время на прочтение9 мин
Количество просмотров28K

Рис. 1. Фразы и предложения в векторном представлении модели естественного языка

Обработка естественного языка (Natural Language Processing, NLP) – это область вычислительной лингвистики, ориентированная на разработку машин, способных понимать человеческие языки. Разработка таких машин – одна из задач, которые решают исследователи и инженеры в команде SberDevices.

В современной компьютерной лингвистике понимание смысла написанного или сказанного достигается с помощью векторных моделей естественного языка. Например, в семействе виртуальных ассистентов Салют такая модель применяется для распознавания намерений пользователя, ведения диалога, выделения именованных сущностей и многих других задач.

В этой статье мы рассмотрим метод обучения модели естественного языка (NLU) на размеченных данных и реализацию этого метода на python3 и tensorflow 1.15. Ниже вы найдете пошаговое руководство и примеры кода. Код всего эксперимента доступен для воспроизведения на Colab.

Помимо этого, мы выкладываем в публичный доступ русскую модель NLU класса BERT-large [427 млн. параметров]: tensorflow, pytorch.

Прочитав этот пост, вы узнаете:

  • что такое модели NLU и как они применяются в компьютерной лингвистике;
  • что такое векторы предложений и как их получить;
  • как обучить векторизатор предложений [NLU] на базе архитектуры BERT;
  • как можно использовать обученные модели NLU
Всего голосов 15: ↑14 и ↓1+18
Комментарии6

О том, как гениальный беспризорник и профессор пили виски и придумывали первую модель искусственного нейрона

Время на прочтение14 мин
Количество просмотров16K

Первая модель искусственного нейрона Мак-Каллока-Питтса

Сейчас один из самых популярных инструментов искусственного интеллекта — это нейронные сети. Само название намекает на то, что речь идёт о некотором аналоге естественных нейронов и синаптических связей в мозгу. Отсюда вытекает распространённое ошибочное предположение, что нейронные сети являются точной копией своего биологического прототипа. Конечно же, это не так, а точнее не совсем так: учёные действительно работают над созданием импульсных нейронных сетей, предназначенных для максимально достоверной симуляции процессов, происходящих в нервной ткани, но обычно искусственный нейронные сети довольно сильно отличаются от своих биологических прародителей. Революция глубокого обучения произошла благодаря моделям, похожим на мозг примерно в той мере, в которой самолёты похожи на птиц. И всё-таки у истоков создания этих моделей стояли попытки учёных три четверти века назад постичь принципы работы нервной системы живых существ.

Один из «дедушек» современных нейросетей — это перцептрон Розенблатта, представленный публике в конце 1950-х, но его появлению предшествовали другие, менее известные попытки описать принципы, по которым могла бы работать «думающая» машина, подобная мозгу. К ним относятся исследования Уолтера Питтса и Уоррена Мак-Каллока. Их модель, увидевшая свет в 1943-м году в статье под названием «Логическое исчисление идей, относящихся к нервной активности», была весьма новаторским изобретением. И за ней стоит довольно занятная история. Кто такие были эти товарищи, приложившие руку к созданию модели? Чопорные учёные в очках с роговой оправой или, может, аналог современных хипстеров из thinktank’ов?
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии8

Сбер выложил русскоязычную модель GPT-3 Large с 760 миллионами параметров в открытый доступ

Время на прочтение10 мин
Количество просмотров173K
Последнее десятилетие в области компьютерных технологий ознаменовалось началом новой «весны искусственного интеллекта». Впрочем, ситуацию в индустрии в наши дни можно, наверное, охарактеризовать уже не как весну, а полноценное «лето ИИ». Судите сами, за последние неполные 10 лет только в области обработки естественного языка (Natural language processing, NLP) произошли уже две настоящие технологические революции. Появившаяся в результате второй из них модель GPT-3 произвела настоящий фурор не только в технологических медиа, но стала знаменитой далеко за пределами научного сообщества. Например, GPT-3 написала для издания «The Guardian» эссе о том, почему ИИ не угрожает людям. GPT-3 сочиняет стихи и прозу, выполняет переводы, ведёт диалоги, даёт ответы на вопросы, хотя никогда специально не училась выполнять эти задачи. До недавних пор все возможности GPT-3 могли по достоинству оценить лишь англоязычные пользователи. Мы в Сбере решили исправить эту досадную оплошность. И сейчас расскажем вам, что из этого получилось.


Источник изображения
Читать дальше →
Всего голосов 119: ↑114 и ↓5+155
Комментарии241

Варианты аппаратной реализации USB Type-C, или Когда не требуется Power Delivery

Время на прочтение6 мин
Количество просмотров24K


Когда мы в SberDevices делаем новое устройство, работаем над его аппаратной частью, перед нами встаёт вопрос выбора интерфейсов. Важным моментом при выборе является их доступность и совместимость с другими устройствами.

В своих устройствах мы не могли пройти мимо интерфейса USB-C. Помимо того, что он очень популярен в современных девайсах, он серьёзно расширил функциональность USB по сравнению со своими предшественниками. Давайте расскажу о нём поподробнее.
Читать дальше →
Всего голосов 31: ↑29 и ↓2+35
Комментарии22

Бесшовные A/B-обновления в Android: как они устроены

Время на прочтение6 мин
Количество просмотров18K
image

Всем привет. В SberDevices наша команда занимается разработкой различных железок и прошивок для них на базе AOSP.

Начиная с Android 8 (у некоторых вендоров с 7.1) в системе появился новый механизм накатки OTA-обновлений, т. н. Seamless A/B OTA Updates — бесшовные обновления. В этом посте я опишу общие принципы его работы, рассмотрю механизм с точки зрения разработчика, а также проведу сравнение со старым (будем его называть recovery-based) подходом применения обновлений. Всё нижесказанное будет справедливо только для чистого AOSP, т. к. конкретная реализация зависит от вендора.
Читать дальше →
Всего голосов 23: ↑21 и ↓2+28
Комментарии1

Звук. От механических колебаний до ALSA SoC Layer

Время на прочтение8 мин
Количество просмотров9.8K


Мы в SberDevices делаем устройства, на которых можно послушать музыку, посмотреть кино и ещё много всего. Как вы понимаете, без звука это всё не представляет интереса. Давайте посмотрим, что происходит со звуком в устройстве, начиная со школьной физики и заканчивая ALSA-подсистемой в Linux.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии6

Можно ли воссоздать полную нейросеть мыши из тонких послойных разрезов мозга?

Время на прочтение13 мин
Количество просмотров23K
image
Источник фото
Карликовая многозубка, самое маленькое млекопитающее по массе. Внутри маленький целостный сложный мозг, который уже принципиально можно картировать

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

Чтобы приблизиться к оцифровке сознания и такому экзотическому виду бессмертия, стоит сначала разобраться с живыми нейронными сетями. Их реверс-инжиниринг показывает нам, как вообще может быть устроен процесс мышления (вычислений) в хорошо оптимизированных системах.

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

Военный нейроанатом Джек Стил стал одним из людей, заметно повлиявших на дальнейший прогресс в области технологий, в том числе в области ИИ, где развитие получили такие направления, как нейроморфная инженерия и биоинспирированные вычисления. Стил был медиком, разбирался в психиатрии, увлекался архитектурой, умел управлять самолётом и сам чинил свою технику, то есть был вполне неплохим прикладным инженером. Научная работа Стила стала прообразом сценария фильма «Киборг». Так что с некоторой натяжкой можно назвать его прадедушкой Терминатора. А где Терминатор, там и Скайнет, как известно.

Этот пост написан на основе материалов будущей книги нашего коллеги Сергея Маркова «Охота на электроовец: большая книга искусственного интеллекта».
Читать дальше →
Всего голосов 47: ↑46 и ↓1+68
Комментарии96

Информация

Сайт
sberdevices.ru
Дата регистрации
Дата основания
2019
Численность
501–1 000 человек
Местоположение
Россия
Представитель
Дмитрий Головин