Pull to refresh
1
0
Сергей Шутов @stopmosk

DL/CV Engineer

Send message

Раскрывая секреты LLM: руководство по основным понятиям больших языковых моделей без хайпа

Level of difficulty Medium
Reading time 27 min
Views 26K

AI-хайп, честно говоря, слегка задолбал. Кажется, что все вокруг только и делают, что оптимизируют свою работу с помощью AI и в ус не дуют. Все эти возвышенные презентации про amazing и awesome инновации от людей, которые слабо себе представляют, чем энкодер отличается от декодера и почему трансформеры в нейросетях не сражаются с автоботами, мало того, что набивают оскомину и отнимают время, так еще и погружают в грёзы бизнес-руководителей и создают крайне завышенные ожидания.

Вспоминаю, как на одном обмене опытом со стартапами они чётко делились на 2 группы: первая – с менеджерами про невероятные инновации и всеобщее благоденствие, а вторая – с инженерами, которые с красными глазами рассказывали, что так и не смогли победить галлюцинации, что окно контекста заканчивается очень быстро и что для того, чтобы на нормальном продакшн использовании вся эта магия заработала, нужны огромные инвестиции в инфраструктуру, оркестратор, агенты, векторные базы, кратковременную и долговременную память и так далее. Поэтому хотелось собрать в одном месте понятное руководство и для разработчиков, пробующих LLM-ки для своих задач, и для людей из бизнеса, чтобы погрузить в контекст.

Читать далее
Total votes 25: ↑25 and ↓0 +25
Comments 6

Что такое «Action Recognition»?

Reading time 11 min
Views 7.7K

Год назад моя статья про трекинг была тепло принята на Хабре. Эта статья в каком-то смысле продолжение. В ней я сделал обзор современных методов распознавания действий. От самых простых до самых сложных. Расскажу в каких ситуациях что использовать, и расскажу как это применяют в некоторых проектах.

Вперед!
Total votes 27: ↑27 and ↓0 +27
Comments 0

Магия ssh

Reading time 12 min
Views 62K

Разве что ленивый не писал про ssh и несмотря на это, данный протокол и его возможности не перестают меня восхищать. Здесь я хочу поделиться исключительно своим опытом использования сего замечательного инструмента в своих задачах (При этом активно применяю его даже при разработке на Windows).

Поскольку я программист, то инструментарий ssh часто нужен мне в разработке и для личных нужд. Самые частые задачи, которые я выполняю с его помощью (по частоте использования):

  • Удалённый доступ — логично, ведь для этого он и предназначался.
  • Монтирование папок по сети — очень удобно для работы с кодом на удалённой машине.
  • Удалённое выполнение команд — нечастая, но используемая мной операция. Удобно получать выхлоп команды в канал другой команды на текущей машине.
  • Запуск графических приложений на удалённой машине.
  • Проксирование трафика — способ перенаправления трафика. Этакий быстрый и простой аналог VPN.
  • Обратный ssh — использую для проброса портов к системам, находящимися за NAT, когда лень настраивать firewall.

Далее вкратце разберу каждый пункт, и особенно пути эффективного и простого использования под Windows.
Читать дальше →
Total votes 105: ↑97 and ↓8 +89
Comments 131

Как управлять проектами машинного обучения и data science

Reading time 6 min
Views 6.2K

Управлять проектами машинного обучения (Machine learning) и data science сложно, поскольку проекты часто носят исследовательский характер, и трудно предсказать, сколько времени потребуется на их завершение. Часто всё начинается с одной идеи, а затем перетекает в новое направление, когда предложенный метод не срабатывает или если предположения относительно данных оказываются неверными.

Построение модели также является длительным процессом (по сравнению с работой в сфере программного обеспечения и аналитики), и data scientist нередко попадает в кроличью нору и тратит месяцы на проект, не имея четких представлений о прогрессе. Еще одно отличие от стандартных практик разработки программного обеспечения заключается в том, что построение модели обычно выполняется всего одним человеком, и это не совсем вписывается в традиционные командные рабочие процессы, такие как Kanban и Scrum.

Я потратил достаточно много времени, изучая существующие рабочие процессы (в основном в Jira) с точки зрения пригодности для управления проектами машинного обучения и data science, но безуспешно. Большая часть информации нацелена на разработку программного обеспечения и фокусируется на Agile методологиях.  Обсуждая этот вопрос с коллегами и друзьями мне не удалось найти ничего, что было бы адаптировано для машинного обучения и data science. Я заметил, что часть коллег пытаются адаптировать свой рабочий процесс к стандартной инженерной практике, в других же случаях, они вообще не пытаются управлять проектами. Последнее особенно проблематично, по причине того, что проекты, которые требуют слишком много времени и замахиваются на слишком большую предметную область, вероятнее всего провалятся.

Поскольку мне не удалось найти подходящее решение, я решил разработать собственную рабочую схему для управления проектами машинного обучения и data science. Данный процесс может быть реализован в Jira и позволяет мне легко отслеживать статус проектов, вести отчетность, а также не давать раздуваться предметной области, избегая построения чересчур сложных моделей. У наших исследователей появляется рабочая схема, которая помогает им в построении модели, что повышает их успехи в проекте. Я пользуюсь этой системой уже несколько лет, и мы с моей командой очень довольны ею.

Читать далее
Total votes 10: ↑7 and ↓3 +4
Comments 3

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

Reading time 12 min
Views 17K

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

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

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


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

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

Читать далее
Total votes 47: ↑46 and ↓1 +45
Comments 30

Протоколы в Python: утиная типизация по-новому

Reading time 8 min
Views 40K

В новых версиях Python аннотации типов получают всё большую поддержку, всё чаще и чаще используются в библиотеках, фреймворках, и проектах на Python. Помимо дополнительной документированности кода, аннотации типов позволяют таким инструментам, как mypy, статически произвести дополнительные проверки корректности программы и выявить возможные ошибки в коде. В этой статье пойдет речь об одной, как мне кажется, интересной теме, касающейся статической проверки типов в Python – протоколах, или как сказано в PEP-544, статической утиной типизации.

Читать далее
Total votes 30: ↑30 and ↓0 +30
Comments 9

Как быть более продуктивным, не заставляя себя

Reading time 8 min
Views 71K

Представьте, что вы могли бы работать больше и при этом быть супер-продуктивным. И знаете, что самое приятное? В этом случае вам не пришлось бы заставлять себя работать.

Есть люди, у которых дела обстоят именно так. Они могут просто сидеть и работать, без какого-либо беспокойства и насилия над собой. Более того, они работают с удовольствием. Есть хорошие новости — вы тоже можете этому научиться.

Давайте начнем.

Большинство людей испытывает негативные чувства по отношению к своей работе. Они думают, что работа — это что-то неприятное, в отличие от развлечений. Работа воспринимается как раздражающее занятие, которое мешает людям делать то, чем им на самом деле хочется заниматься. Люди также полагают, что отдых и полное безделье — это идеальное состояние, в котором они хотели бы находиться всё время. Такое мышление приводит к тому, что человек начинает думать, что нужно заставлять себя работать через силу, и что работа — это очень тяжело, и лишь железная сила воли поможет справиться с ней.
Читать дальше →
Total votes 67: ↑62 and ↓5 +57
Comments 46

Настраиваем Syncthing. Синяя изолента в мелком бизнесе и дома

Reading time 4 min
Views 114K
image

image
У меня тут внезапно завалялся гайд по настройке syncthing. Я уверен, что многим это может пригодиться.

Про революцию в дистрибуции файлов, которую совершил torrent-протокол рассказывать излишне. Одна проблема была у классических версии технологии — статичность. Если данные в каталоге изменялись, приходилось заново создавать и передавать всем новый torrent-файл. И вдруг, внезапно появляется BitTorrentSync. Наступает всеобщее счастье, теперь можно синхронизировать целые массивы изменяющихся данных. Однако, спустя время проприетарность софта выливается в сильное урезание функциональности, привязку к своим серверам и довольно агрессивную монетизацию. Вот тут и выходит на сцену идеологически кошерный свободный преемник — Syncthing.
Читать дальше →
Total votes 57: ↑55 and ↓2 +53
Comments 82

Multithreading

Reading time 77 min
Views 172K

Разработчики часто сталкиваются с необходимостью разработки многопоточных приложений, поэтому вопросы многопоточности требуют детального изучения. Давайте познакомимся с основными терминами, используемыми в источниках информации о многопоточности, рассмотрим задачи и проблемы многопоточности и изучим средства стандартной библиотеки C++, которые помогут создавать многопоточные приложения.

Читать далее
Total votes 22: ↑20 and ↓2 +18
Comments 3

Мы Опубликовали Качественный, Простой, Доступный и Быстрый Синтез Речи

Reading time 9 min
Views 63K

fiona


Вторая частьhttps://habr.com/ru/post/563484/


Вокруг темы синтеза речи сейчас много движения: на рынке есть огромное число тулкитов для синтеза, большое число закрытых коммерческих решений за АПИ (как на современных технологиях, так и на более старых, т.е. "говорилки") от условных GAFA компаний, большое количество американских стартапов, пытающихся сделать очередные аудио дипфейки (voice transfer).


Но мы не видели открытых решений, которые бы удовлетворяли одновременно следующим критериям:


  • Приемлемый уровень естественности речи;
  • Большая библиотека готовых голосов на разных языках;
  • Поддержка синтеза как в 16kHz так и в 8kHz из коробки;
  • Наличие своих собственных голосов у авторов решения, не нарушающих чужие права и лицензии;
  • Высокая скорость работы на "слабом" железе. Достаточная скорость работы на 1 потоке / ядре процессора;
  • Не требует GPU, команды ML инженеров или какой-либо дополнительной тренировки или для использования;
  • Минимализм и отсутствие зависимостей / использование в 1 строчку / не надо ничего собирать или чинить;
  • Позиционируется именно как готовое решение, а не очередной фреймворк / компиляция чужих скриптов / тулкитов для сбора плюсиков;
  • Решение никак не связано и не аффилировано с закрытыми экосистемами и продуктами Гугла / Сбера / Яндекса / вставить нужное;

Мы попытались учесть все эти пункты и представить комьюнити свое открытое некоммерческое решение, удовлетворяющее этим критериям. По причине его публичности мы не заостряем внимание на архитектуре и не фокусируемся на каких-то cherry picked примерах — вы можете оценить все сами, пройдя по ссылке.

Total votes 205: ↑205 and ↓0 +205
Comments 229

Как подружить PyTorch и C++. Используем TorchScript

Reading time 12 min
Views 19K

Около года назад разработчики PyTorch представили сообществу TorchScript — инструмент, который позволяет с помощью пары строк кода и нескольких щелчков мыши сделать из пайплайна на питоне отчуждаемое решение, которое можно встроить в систему на C++. Ниже я делюсь опытом его использования и постараюсь описать встречающиеся на этом пути подводные камни. Особенное внимание уделю реализации проекта на Windows, поскольку, хотя исследования в ML обычно делаются на Ubuntu, конечное решение часто (внезапно!) требуется под "окошками".


Примеры кода для экспорта модели и проекта на C++, использующего модель, можно найти в репозиториии на GitHub.


Читать дальше →
Total votes 51: ↑51 and ↓0 +51
Comments 6

Самая сложная задача в Computer Vision

Reading time 13 min
Views 66K
Среди всего многообразия задач Computer Vision есть одна, которая стоит особняком. К ней обычно стараются лишний раз не притрагиваться. И, если не дай бог работает, — не ворошить.
У неё нет общего решения. Практически для каждого применения существующие алгоритмы надо тюнинговать, переобучать, или судорожно копаться в куче матриц и дебрях логики.

Статья о том как делать трекинг. Где он используется, какие есть разновидности. Как сделать стабильное решение.
Total votes 127: ↑127 and ↓0 +127
Comments 42

Ультимативное сравнение embedded платформ для AI

Reading time 22 min
Views 24K
Нейронные сеточки захватывают мир. Они считают посетителей, контролируют качество, ведут статистику и оценивают безопасность. Куча стартапов, использование в промышленности.
Замечательные фреймворки. Что PyTorch, что второй TensorFlow. Всё становиться удобнее и удобнее, проще и проще…
Но есть одна тёмная сторона. Про неё стараются молчать. Там нет ничего радостного, только тьма и отчаяние. Каждый раз когда видишь позитивную статью — грустно вздыхаешь, так как понимаешь что просто человек что-то не понял. Или скрыл.
Давайте поговорим про продакшн на embedded-устройствах.

Total votes 43: ↑43 and ↓0 +43
Comments 57

RPi-няня

Reading time 15 min
Views 13K
Периодически меня подмывает сделать что-то странное. Очевидно бесполезную вещь, которая не оправдывает себя по объему вложенных средств, и через полгода после создания пылиться на полке. Но зато полностью оправдывает себя по количеству эмоций, полученному опыту и новым рассказам. На Хабре даже есть две моих статьи про такие эксперименты: Алкоорган и умная кормушка для птиц.

Что ж. Пришло время рассказать о новом эксперименте. Как собрал, что из этого вышло и как повторить.



К новому проекту меня подтолкнуло событие, в каком-то смысле, банальное — родился сын. Я заранее устроил себе отпуск на месяц. Но ребёнок оказался тихим — было свободное время. И спящий рядом деть.

Дома много разных embedded-железок для computer vision. В итоге решил сделать видео-няню. Но не такую унылую, которыми завалены все магазины. А что-то поумнее и поинтереснее.
Читать дальше →
Total votes 42: ↑40 and ↓2 +38
Comments 7

Как запихать нейронку в кофеварку

Reading time 12 min
Views 29K
Мир машинного обучения продолжает стремительно развиваться. Всего за год технология может стать мейнстримом, и разительно измениться, придя в повседневность.

За прошедший год-полтора, одной из таких технологий, стали фреймворки выполнения моделей машинного обучения. Не то, что их не было. Но, за этот год, те которые были — стали сильно проще, удобнее, мощнее.



В статье я попробую осветить всё что повылезало за последнее время. Чтобы вы, решив использовать нейронную сеть в очередном калькуляторе, знали куда смотреть.
Читать дальше →
Total votes 31: ↑31 and ↓0 +31
Comments 16

Шпаргалка по работе с Tmux (терминальный мультиплексор)

Reading time 2 min
Views 434K

На Хабрахабре Tmux (ти-макс) упоминался неоднократно, тем не менее, решил написать еще одну шпаргалку, т.к. в других некоторые важные моменты не показаны.

Tmux (терминальный мультиплексор) позволяет работать с несколькими сессиями в 1 окне. Вместо нескольких окон терминала к серверу — вы можете использовать одно. Позволяет подключаться/отключаться к текущему состоянию сессии. Запущенные программы и процессы продолжают работать. (Можно использовать вместо nohup, dtach).

Например, на работе правим файлы в Vim. Окно терминала с открытыми файлами, процессами. Отключаемся от сессии. Далее подключаемся к этой сессии из дома и получаем те же окна с открытыми файлами в Vim, процессами и т.д. Можно продолжить работу с того же момента, на котором остановились. Также удобно при разрыве связи. Дополнительно можно работать совместно с другими в терминале, если подключены к одной сессии. Каждый видит, что делает другой.
Читать дальше →
Total votes 28: ↑17 and ↓11 +6
Comments 20

Как классифицировать мусор с помощью Raspberry Pi и машинного обучения Arm NN

Reading time 11 min
Views 4.5K


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

Производительность таких решений сильно зависит от пропускной способности сети и задержки. Кроме того, отправка данных внешнему сервису может привести к проблемам с конфиденциальностью. В этой статье демонстрируется возможность переноса ИИ из облачной среды на периферию. Чтобы продемонстрировать ML с использованием периферийных ресурсов, мы будем использовать API-интерфейсы Arm NN для классификации изображений мусора с веб-камеры, подключённой к компьютеру Raspberry Pi, который покажет результаты классификации.

Приятного чтения!
Total votes 8: ↑8 and ↓0 +8
Comments 0

Сказ о том, как я Home Assistant настраивал

Reading time 11 min
Views 171K


Home Assistant — это популярная система умного дома, которая автоматизирует привычные бытовые процессы и работает на YAML файлах. В этой статье я расскажу, как настроить Home Assistant (далее HA), и что конкретно я использую в повседневной жизни. Это поможет вам избежать ошибок и быстрее продвинуться в изучении HA.


На Хабре уже есть статьи о HA (раз, два, три), но здесь я хочу рассказать об установке и настройке системы от начала до конца. От первого запуска сервера до полноценно работающей системы, которую потом можно улучшать и дорабатывать для себя.

Читать дальше →
Total votes 10: ↑8 and ↓2 +6
Comments 15

Выгорание — норма? Часть 2. Подробно про фазы и «Что делать?»

Reading time 18 min
Views 41K

Стресс — это норма жизни. Без стресса нет роста и обучения новому.

Передоз стресса, как передоз чего угодно — вызывает защитную реакцию. Сначала — сопротивление и попытки адаптации, затем, если эти попытки провалились — схлопывание энергетических систем, чтобы не умереть. 

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

Читать далее
Total votes 47: ↑45 and ↓2 +43
Comments 20

Information

Rating
Does not participate
Location
Helsinki, Southern Finland, Финляндия
Date of birth
Registered
Activity

Specialization

Software Developer, Data Scientist
Middle
From 7,000 €