Как стать автором
Обновить
200
Карма
0
Рейтинг
Олег Черний @apelsyn

AI&ML Teach Lead

Распознавание номерных знаков. Как все ускорить

Python *Машинное обучение *Искусственный интеллект
Nomeroff Net. Как ускорить распознавние номерных знаков.

После запуска моделей на прод рано или поздно приходит понимание того, что Ваши сервисы популярны и что KPI растут. Вместе с популярностью приходят тормоза и нестабильность. В этой статье речь пойдет о прикладном аспекте оптимизации быстродействия алгоритмов/моделей на примере движка распознавания автомобильных номеров “Nomeroff Net”. Буду делиться опытом, полученным на протяжении 2-х летней разработки. Если коротко: нам удалось ускорить время распознавания 1 фото более чем в 10 раз.

“Чел догадался в свой сервер вставить RTX 3090” подумаете Вы… Приблизительно так и было, только если взять замеры до установки GPU то все ускорили в 100+ раз :).
Не будет детального описания архитектуры моделей (они давно известны в узких кругах), хочу поделиться важными моментами, на которые стоит обратить внимание при оптимизации ваших ML-сервисов.
Читать дальше →
Всего голосов 20: ↑20 и ↓0 +20
Просмотры 9.7K
Комментарии 11

Мы опубликовали модель, расставляющую знаки препинания и заглавные буквы в тексте на четырех языках

Python *Big Data *Машинное обучение *Natural Language Processing *


Open In Colab


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


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


По этой причине мы бы хотели поделиться с сообществом системой, которая:


  • Расставляет заглавные буквы и основные знаки препинания (точка, запятая, дефис, вопросительный знак, восклицательный знак, тире для русского языка);
  • Работает на 4 языках (русский, английский, немецкий, испанский);
  • По построению должна работать максимально абстрактно на любом тексте и не основана на каких-то фиксированных правилах;
  • Имеет минимальные нетривиальные метрики и выполняет задачу улучшения читабельности текста;

На всякий случай явно повторюсь — цель такой системы — лишь улучшать читабельность текста. Она не добавляет в текст информации, которой в нем изначально не было.

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

Заметки Дата Сайентиста: маленькие утилиты — большая польза

Блог компании RUVDS.com Data Mining *Big Data *Лайфхаки для гиков

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

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

Tools — learn the tools — все написанное субъективно и основано исключительно на личном опыте: помогло мне может быть поможет и вам.
Читать дальше →
Всего голосов 45: ↑43 и ↓2 +41
Просмотры 8.1K
Комментарии 5

Хаки при работе с большим числом мелких файлов

Блог компании SRG Системное администрирование **nix *Серверная оптимизация *
Идея статьи родилась спонтанно из дискуссии в комментариях к статье «Кое-что об inode».



Дело в том, что внутренней спецификой работы наших сервисов является хранение огромадного числа мелких файлов. На данный момент у нас порядка сотен терабайт таких данных. И мы натолкнулись на некоторые очевидные и не очень грабельки и успешно по ним прошлись.

Поэтому делюсь нашим опытом, может кому и пригодится.
Читать дальше →
Всего голосов 104: ↑103 и ↓1 +102
Просмотры 37K
Комментарии 66

Системы очистки воды обратным осмосом — здорово или не очень?

Анализ и проектирование систем *Умный дом Здоровье Химия


Всем привет.

Сегодня я хотел бы поделиться с Вами своим видением систем очистки воды.

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

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

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

Давайте разберёмся.
Читать дальше →
Всего голосов 69: ↑62 и ↓7 +55
Просмотры 160K
Комментарии 322

REST страсти по 200

Анализ и проектирование систем *API *
Recovery mode


Давно я хотел написать эту статью. Все думал — с какой стороны зайти правильнее? Но, вдруг, недавно, на Хабре появилась подобная статья, которая вызвала бурю в стакане. Больше всего меня удивил тот факт, что статью начали вбивать в минуса, хотя она даже не декларировала что-то, а скорее поднимала вопрос об использовании кодов ответа web-сервера в REST. Дебаты разгорелись жаркие. А апофеозом стало то, что статья ушла в черновики… килобайты комментариев, мнений и т.д. просто исчезли. Многие стали кармо-жертвами, считай, ни за что :)

В общем, именно судьба той статьи побудила меня написать эту. И я очень надеюсь, что она будет полезна и прояснит многое.

Предупреждаю, все ниже написанное является реальным опытом, а не когнитивной эквилибристикой. И так, погнали.
Читать дальше →
Всего голосов 79: ↑68 и ↓11 +57
Просмотры 37K
Комментарии 115

Cжатие и улучшение рукописных конспектов

Open source *Python *Алгоритмы *Обработка изображений *
Перевод
Я написал программу для очистки отсканированных конспектов с одновременным уменьшением размера файла.

Исходное изображение и результат:


Слева: исходный скан на 300 DPI, 7,2 МБ PNG / 790 КБ JPG. Справа: результат с тем же разрешением, 121 КБ PNG [1]

Примечание: описанный здесь процесс более-менее совпадает с работой приложения Office Lens. Есть другие аналогичные программы. Я не утверждаю, что придумал нечто радикальное новое — это просто моя реализация полезного инструмента.

Если торопитесь, просто посмотрите репозиторий GitHub или перейдите в раздел результатов, где можно поиграться с интерактивными 3D-диаграммами цветовых кластеров.
Читать дальше →
Всего голосов 124: ↑124 и ↓0 +124
Просмотры 36K
Комментарии 50

Дюжина приемов в Linux, которые действительно сэкономят уйму времени

Настройка Linux *Системное администрирование *Программирование **nix *Оболочки *


Эта статья также есть на английском.

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

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

Под катом — дюжина приемов в командной строке — из личного опыта.
Читать дальше →
Всего голосов 128: ↑122 и ↓6 +116
Просмотры 132K
Комментарии 166

Как получать оповещения от Jupyter notebook в Telegram?

Python *
Туториал

Довольно просто. Нам понадобится свой телеграм-бот, один пакет и одна строчка кода
А результат будет таким:

Читать дальше →
Всего голосов 40: ↑31 и ↓9 +22
Просмотры 14K
Комментарии 17

Как конструировать слова (от автора, который ненавидит читать)

Блог компании Edison Веб-дизайн *Интерфейсы *Usability *Дизайн мобильных приложений *
Перевод
Честно говоря, я писатель. Мне платят за то, чтобы я писал слова. Но есть вещь, которую большинство обо мне не знают: я ненавижу читать.

Теперь не поймите меня неправильно — я все еще немного читаю. Я одолел книги и блоги, новые каналы и журналы. Но когда авторы становятся многословными, у меня замыливается взгляд. Мне скучно.

image

Все что я вижу — простыня слов.

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

Дело в том, что, в основном, я пишу тексты для приложений и сайтов. Здесь краткость лучше восхитительного стиля, на счету каждый знак. А писать текст для интерфейса во многом напоминает дизайн — дизайн слов для людей, которые ненавидят читать.
Всего голосов 67: ↑61 и ↓6 +55
Просмотры 24K
Комментарии 23

Node.js 7.0.0 зарелизился. Встречайте async/await без babel

JavaScript *Node.JS *
File:Node.js logo 2015.svg

7-я нода зарелизилась, ура! Что нового:

  • Движок V8 обновлён до версии 5.4.500.36, в которой обеспечена поддержка 98% возможностей JavaScript, определённых в спецификации ES2015 (ES6) и, частично, будущим стандартом ES2017.
  • Отмечается новый парсер URL, соответствующий стандарту оформления URL, подготовленному сообществом WHATWG.
  • Доработана работа с Buffer, Child Process, Cluster, файловой системой, промисами
  • Полный список изминений

Для меня это долгожданный релиз, так как появилась возможность изпользовать конструкцию async/await без транспайлера babel. Включается это все ключом --harmony.

Теперь можно без babel так:
Читать дальше →
Всего голосов 43: ↑37 и ↓6 +31
Просмотры 30K
Комментарии 93

Результаты и разбор задач финала Яндекс.Алгоритма 2016

Блог компании Яндекс Ненормальное программирование *Спортивное программирование *Программирование *Алгоритмы *

29 июля в Минске прошёл финальный раунд чемпионата по программированию Яндекс.Алгоритм. Победителем стал Егор EgorK Куликов — выпускник мехмата МГУ и бывший сотрудник Яндекса. Второе место — у Николы Йокича из Швейцарской высшей технической школы Цюриха. В составе команды школы он был финалистом ACM ICPC. Третье место занял Макото Соэдзима, выпускник Университета Токио. Геннадий Короткевич, победитель двух предыдущих Алгоритмов, занял шестое место.


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


image


В этом году мы получили на четверть больше заявок на участие в Алгоритме, чем год назад, — 4578. Среди участников пока немного девушек — 372. В списке зарегистрировавшихся есть представители 70 стран; больше всего соревнующихся — из России, Индии, Украины, Беларуси, Казахстана, США и Китая. В финале приняли участие 25 человек.


Задачи для Яндекс.Алгоритма составляют сотрудники Яндекса и приглашённые эксперты, среди которых — финалисты и призёры ACM ICPC. По условиям состязания, участники могут использовать разные языки программирования. Статистика Яндекс.Алгоритма показывает, что самый популярный язык — С++; его выбрали более двух тысяч человек. Второе место поделили Python и Java.

Читать дальше →
Всего голосов 59: ↑59 и ↓0 +59
Просмотры 27K
Комментарии 14

Видео докладов с DevConf 2016

Блог компании Badoo Разработка веб-сайтов *MySQL *PostgreSQL *Программирование *
17-го июня в инновационном центре “Сколково” прошла очередная ежегодная конференция DevConf, а Badoo в очередной раз снимали видео выступлений. Программа была богата на именитых спикеров и интересные доклады, поэтому сделать подборку из самых «вкусных» выступлений было крайне сложно. Но мы, как минимум, постарались…

Познавательного вам просмотра!

«Развитие ветки PHP-7», Дмитрий Стогов, Zend Technologies




Читать дальше →
Всего голосов 42: ↑40 и ↓2 +38
Просмотры 16K
Комментарии 10

Tarantool как сервер приложений

Блог компании VK Высокая производительность *NoSQL *Lua *Tarantool *
Привет, %хабраюзер%. Команда Тарантула продолжает делиться инсайтами и экспертизой для эффективной работы с данными в высоконагруженных проектах. Сегодня мы попытаемся разобраться, почему же Tarantool — это «два в одном»: не только база данных, но и сервер приложений. Наверное, некоторые слышали о Тарантуле как о сверхбыстром персистентном in-memory хранилище с поддержкой репликации и хранимок на Lua. Представьте, что мы берём кусочки Redis, добавляем замороженный Node.js, сверху заправляем Go, после чего варим, медленно перемешивая, в течение пяти минут после закипания. Казалось бы, при чём здесь Application Server?


Читать дальше →
Всего голосов 61: ↑59 и ↓2 +57
Просмотры 28K
Комментарии 59

Создание десктопного приложения с помощью Electron и веб-технологий

JavaScript *HTML *Node.JS *
Из песочницы
Знакомство с Electron

Официальная страница проекта Electron.

Изначально Electron был разработан для редактора Atom компанией GitHub.

Electron (ранее известный как Atom Shell) позволяет нам создавать кроссплатформенные приложения, используя HTML, CSS и JavaScript. Что является большим плюсом для команд, которые занимаются веб-разработкой. Отпадает надобность искать новых разработчиков для создания десктопных версий уже существующих проектов.

Electron являет собой прекомпилированый бинарник и библиотеки, нужные для работы приложения и доступа к native API операционной системы. Он включает в себя Node.js, направленный на работу в десктопной среде, и минимальную версию браузера Chromium, контролируемого JavaScript.
Читать дальше →
Всего голосов 28: ↑24 и ↓4 +20
Просмотры 66K
Комментарии 33

Nginx + Lua + Redis. Эффективно обрабатываем сессию и отдаем данные

Программирование *Lua *
image
Предположим, у вас есть данные, которые вы хотите кэшировать и отдавать, не используя тяжелые языки, как php, при этом проверяя, что пользователь аутентифицирован и имеет право на доступ к данным. Сегодня я расскажу, как, используя связку nginx lua redis, выполнить эту задачу, снять нагрузку с сервера и увеличить скорость отдачи информации сервером в десятки раз.
Читать дальше →
Всего голосов 36: ↑34 и ↓2 +32
Просмотры 35K
Комментарии 12

Тюним память и сетевой стек в Linux: история перевода высоконагруженных серверов на свежий дистрибутив

Блог компании Одноклассники Высокая производительность *
image

До недавнего времени в Одноклассниках в качестве основного Linux-дистрибутива использовался частично обновлённый OpenSuSE 10.2. Однако, поддерживать его становилось всё труднее, поэтому с прошлого года мы перешли к активной миграции на CentOS 7. На подготовительном этапе перехода для CentOS были отработаны все внутренние процедуры, подготовлены конфиги и политики настройки (мы используем CFEngine). Поэтому сейчас во многих случаях миграция с одного дистрибутива на другой заключается в установке ОС через kickstart и развёртывании приложения с помощью системы деплоя нашей разработки — всё остальное осуществляется без участия человека. Так происходит во многих случаях, хотя и не во всех.

Но с самыми большими проблемами мы столкнулись при миграции серверов раздачи видео. На их решение у нас ушло полгода.
Читать дальше →
Всего голосов 110: ↑104 и ↓6 +98
Просмотры 91K
Комментарии 73

Docker в банке. Видео с лекции Александра Тарасова из Альфа-Банка

Блог компании JUG Ru Group Программирование *Java *
Docker — технология, вокруг которой нынче огромное количество хайпа. «Shitstorm» — именно таким словом окрестил в твиттере докеровые войны один из моих немецких знакомых. Ну и конечно, вместе с «Microservices» и «Reactive», слово «Docker» прочно вошло в тройку ведущих айтишных баззвордов последних двух лет.

Неделю назад на московской встрече CodeFreeze Александр aatarasoff Тарасов из Альфа-Лаборатории (подразделение Альфа-банка) рассказал от том, как они внедряли у себя Docker, какой получили профит, какую боль и т.п. Интрига в том, что, с одной стороны, Альфа-банк — это банк, то есть, «кровавый энтерпрайз». С другой стороны… внедрили же.



Под катом — короткое описание того, о чем рассказал нам Александр и видеозапись его выступления.
Читать дальше →
Всего голосов 25: ↑24 и ↓1 +23
Просмотры 38K
Комментарии 14

Встраиваемая JavaScript база данных с прицелом на API совместимость с MongoDB

JavaScript *Node.JS *MongoDB *
Из песочницы
Как-то давно мы задумали написать один проект для Node.js которому очень нужно было работать с NoSQL базой данных, но при этом не иметь никаких зависимостей от внешних приложений. Как это обычно бывает, все закончилось разработкой новой библиотеки.

Начав разработку два года назад, желание использовать встроенную базу данных для web приложения казалось весьма странным. В самом деле, зачем? Сейчас, когда появился проект node-webkit, объяснить это гораздо легче. Используя встроенную базу данных возможно разработать web приложение двойного назначения. Такое приложение сможет работать как в классической схеме клиент-сервер, так и с использованием node-webkit как обычное загружаемое приложение. Важной особенностью и в том и другом случае является то, что код базы данных является частью вашего приложения, что избавляет от многих проблем совместимости и установки.
Читать дальше →
Всего голосов 19: ↑16 и ↓3 +13
Просмотры 13K
Комментарии 16

Эммет Шир: Как в Twitch разговаривают с пользователями

Блог компании Фонд развития интернет-инициатив Веб-дизайн *Интерфейсы *Usability *
Перевод


Cтэнфордский курс CS183B: How to start a startup. Стартовал в 2012 году под руководством Питера Тиля. Осенью 2014 года прошла новая серия лекций ведущих предпринимателей и экспертов Y Combinator:


Первая часть курса
Читать дальше →
Всего голосов 15: ↑12 и ↓3 +9
Просмотры 14K
Комментарии 0

Информация

В рейтинге
4,671-й
Откуда
Винница, Винницкая обл., Украина
Дата рождения
Зарегистрирован
Активность