Search
Write a publication
Pull to refresh
0
Валентина Ендовицкая @Evv8read⁠-⁠only

Developer

Send message

Как устроена Единая биометрическая система

Reading time11 min
Views16K

Единая биометрическая система (ЕБС) с 2018 года используется для идентификации человека по его биометрическим характеристикам: голосу и лицу.

Чтобы получать услуги по биометрии, пользователю необходимо зарегистрироваться в системе в одном из 13,1 тысяч отделений банков. Там операционист сделает его фотографию, запишет голос и отправит эти данные в систему. А для того чтобы компании могли оказывать по биометрии различные услуги, им необходимо провести интеграцию с ЕБС.

Оператором системы является «Ростелеком», а разработкой занимаемся мы – дочерняя компания РТЛабс .

Меня зовут Сергей Браун, я заместитель директора департамента цифровой идентичности в РТЛабс. Вместе с Артуром Душелюбовым, начальником отдела развития и разработки департамента цифровой идентичности, мы расскажем, как мы создавали платформу для любой биометрии, с какими проблемами встретились и как их решали.

Читать далее

Functools – сила функций высшего порядка в Python

Reading time8 min
Views36K

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

Кэширование

Давайте начнем с самых простых, но довольно мощных функций модуля functools. Начнем с функций кэширования (а также декораторов) - lru_cache, cache и cached_property. Первая из них - lru_cache предоставляет кэш последних результатов выполнения функций, или другими словами, запоминает результат их работы:

Читать далее

Как сравнить два PDF-документа

Reading time4 min
Views28K

Существует несколько фундаментальных задач, которые встречаются при работе с большинством, а то и со всеми документами. Одна из них — сравнить две версии одного и того же документа. Это могут быть юридические соглашения или исправления в отчёте, которые, скорее всего, в наши дни будут представлены в формате PDF. В этой статье рассказывается, как можно сравнить содержимое двух файлов PDF или почему у вас не получится этого сделать.
Читать дальше →

Как организовать разметку данных для машинного обучения: методики и инструменты

Reading time17 min
Views11K

Если бы у data science существовал собственный зал славы, отдельную его часть нужно было бы посвятить разметке. Памятник отвечающим за разметку выглядел бы как атлант, держащий огромный камень, символизирующий их тяжелый и скрупулезный труд. Собственной стелы заслужила бы и база данных изображений ImageNet. За девять лет её контрибьюторы вручную разметили более 14 миллионов изображений. Даже представлять этот труд утомительно.

Хотя разметка и не является особо интеллектуальным трудом, она всё равно остаётся серьёзной проблемой. Разметка — неотъемлемый этап предварительной обработки данных для контролируемого обучения. Для этого стиля обучения моделей используются исторические данных с заранее заданными целевыми атрибутами (значениями). Алгоритм может находить целевые атрибуты, только если их указал человек.

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

Как получить высококачественный размеченный набор данных и не поседеть в процессе работы? Главной трудностью являются выбор ответственных за разметку, оценка необходимого для неё времени и подбор наиболее подходящих инструментов.
Читать дальше →

Жизненный цикл ML-модели

Reading time4 min
Views13K

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

Врууум

7 способов получить качественные размеченные данные для машинного обучения

Reading time5 min
Views5.2K
Наличие размеченных данных необходимо для машинного обучения, но получение таких данных — непростая и дорогостоящая задача. Мы рассмотрим семь способов их сбора, в том числе перепрофилирование, поиск бесплатных источников, многократное обучение на данных с постепенно повышающимся качеством, а также другие способы.

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


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

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

Reading time22 min
Views29K

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

На нашей конференции SmartData ведущий разработчик в Яндексе Максим Стаценко рассказал про плюсы и минусы различных решений для хранения данных: облака или железо, Hadoop, Vertica, ClickHouse, Exasol, Greenplum, Teradata и не только.

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

Видео и расшифровка доклада — под катом. Далее повествование будет от лица Максима.

Читать далее

Разбираемся с ChainMap из коллекций Python

Reading time19 min
Views16K

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

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

Читать далее

Гайд по использованию enum в Python

Reading time6 min
Views144K


Модуль enum содержит в себе тип для перечисления значений с возможностью итерирования и сравнения. Его можно использовать для создания понятных обозначений вместо использования чисел (для которых приходится помнить, какое число что обозначает) или строк (в которых легко опечататься и не заметить).

Читать дальше →

JetBrains Education: предсказание побочных эффектов лекарств

Reading time13 min
Views3.4K

Привет, Хабр!

Меня зовут Елена Картышева, я выпускница программы «Разработка программного обеспечения» Университета ИТМО — одной из образовательных инициатив JetBrains. Вообще я занимаюсь биоинформатикой и машинным обучением, и сегодня хочу рассказать о своей выпускной квалификационной работе. В рамках диплома я улучшила модель предсказания совместных побочных эффектов лекарств. Это поможет разрабатывать более эффективный дизайн клинических исследований и собирать информацию о побочных эффектах новых препаратов.  

Читать далее

Над чем задуматься перед тем, как брать ML-задачу в работу

Reading time7 min
Views4.2K

В Контуре мы решаем самые разные задачи с помощью машинного обучения: распознаем документы и ищем подделки паспортов, анализируем банковские транзакции, предсказываем вероятность банкротства компаний, классифицируем товары, автоматически отвечаем на вопросы в чате, развиваем собственный speech-to-text… и еще десятки проектов, которые привносят в продукты новые фичи или помогают оптимизировать процессы.

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

В этой статье я приведу ответы на вопросы, над которыми стоит задуматься в самом начале, если вдруг вам пришла в голову идея "прикрутить к проекту ML-фичу" (добавить ложечку Data Science / AI / другие модные названия).

Читать далее

Понимаем соединения и пулы

Reading time20 min
Views44K

Прим. перев.: автор этой статьи — технический архитектор Sudhir Jonathan — рассказывает об одном из тех базовых механизмов, с которым сталкивается каждый пользователь, разработчик и системный администратор. Однако до возникновения определённых (и иногда довольно специфичных) проблем многие не задумываются о том, как всё работает «под капотом». Автор устраняет этот пробел, используя популярные фреймворки, серверы БД и приложений в качестве понятных примеров.

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

Читать далее

Пять правил эффективной организации хранилища данных

Reading time7 min
Views5.3K

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

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

Читать далее

Интерпретируемость машинного обучения: состояние дел

Reading time15 min
Views11K

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

Я придерживаюсь категоризации, использованной в работе Lipton et al.'s Mythos of Model Interpretability, которую считаю наилучшей статьей, проясняющей различные дефиниции интерпретируемости. Мы рассмотрим множество способов формализовать значение «интерпретируемости». В широком смысле интерпретируемость отвечает на вопрос «как». Она призвана дать понятие о нашей модели и объяснить, каким образом эта модель принимает те или иные решения. Ниже каждый раздел концептуализируется на основе конкретного вопроса, который можно поставить к нашей модели машинного обучения, опираясь на конкретное определение интерпретируемости. Если все это для вас в новинку, объясню для начала, почему нас вообще должна волновать интерпретируемость.

Читать далее

Борем deadlock при пакетных UPDATE

Reading time3 min
Views20K

Однажды при выполнении достаточно тривиального запроса:

UPDATE tbl SET val = val + 1 WHERE id IN (1, 2, 3)

... вы получаете ошибку ERROR: deadlock detected

Но почему? Ведь еще вчера все успешно работало!

И что с этим теперь делать? Давайте разбираться.

Читать далее

Наглядно о том, как работает свёрточная нейронная сеть

Reading time6 min
Views64K

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

Читать далее

Root Cause Analysis как метод предотвращения багов

Reading time8 min
Views20K

Привет! Мое имя Юра Гомон, я BA Tech Lead в NIX и вот уже 8 лет занимаюсь бизнес-анализом, помогая реализовывать веб- и мобильные решения для бизнеса, а также автоматизировать бизнес-процессы. Мое имя кажется Вам знакомым, т.к. недавно я опубликовал на Хабре свой BA Digest.

Цель статьи – напомнить бизнес-аналитикам о методе Root Cause Analysis (далее — RCA) и поделиться опытом его применения для предотвращения багов.

Читать далее

Влияние Kotlin data-классов на вес приложения

Reading time7 min
Views12K


Kotlin имеет много классных особенностей: null safety, smart casts, интерполяция строк и другие. Но одной из самых любимых разработчиками, по моим наблюдениям, являются data-классы. Настолько любимой, что их часто используют даже там, где никакой функциональности data-класса не требуется.


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

Читать дальше →

Код ревью: как быть хорошим автором

Reading time6 min
Views13K

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

Читать далее

Курсы и книги для изучения data science c нуля

Reading time11 min
Views105K

В статье привожу курсы и книги, которые мне кажутся наиболее оптимальными для изучения машинного обучения/data science c нуля. Стараюсь привести список, который будет наиболее кратким и одновременно даст все знания, необходимые для начала работы на практике, без серьезных пробелов в знаниях.

Читать далее

Information

Rating
Does not participate
Location
Воронеж, Воронежская обл., Россия
Date of birth
Registered
Activity