Pull to refresh
2
0
Виктор Андрийчук @vandriichuk

Data Engineer | Python Software Engineer

Send message

CRDT: Conflict-free Replicated Data Types

Reading time10 min
Views43K

Как считать хиты страницы google.com? А как хранить счётчик лайков очень популярных пользователей? В этой статье предлагается рассмотреть решение этих задач с помощью CRDT (Conflict-free Replicated Data Types, что по-русски переводится примерно как Бесконфликтные реплицированные типы данных), а в более общем случае — задачи синхронизации реплик в распределённой системе с несколькими ведущими узлами.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments14

Многорукие бандиты в задаче ритейла

Reading time9 min
Views3.2K

В настоящее время набирают популярность модели Reinforcement Learning для решения прикладных задач бизнеса. В этой статье мы рассмотрим подмножество этих моделей, а именно многоруких бандитов (multi-armed bandits). Также мы:

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

Читать далее
Total votes 12: ↑10 and ↓2+8
Comments5

LlamaIndex: создаем чат-бота без боли и страданий. Часть 3

Reading time7 min
Views4.5K

Завершаем исследование фреймворка llamaIndex. В этой части разбираемся с ретриверами, которые обеспечивают различные способы извлечения релевантного контекста из индексов документов.

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments11

LlamaIndex: создаем чат-бота без боли и страданий. Часть 2

Level of difficultyEasy
Reading time5 min
Views5.2K

Продолжаем изучать фреймворк для создания AI-ботов. В этой части узнаем про тонкости индексирования собственной базы документов.

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments9

Инструменты продуктового аналитика VK, или Как мы работаем с большими данными

Level of difficultyMedium
Reading time15 min
Views8.5K

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

Заинтригованы? Добро пожаловать в мир аналитики больших данных.

Читать далее
Total votes 42: ↑38 and ↓4+34
Comments2

Как мы пришли к созданию своего BI решения на NLP для получения отчетов прямо в мессенджер

Level of difficultyEasy
Reading time6 min
Views3.8K

Занимаясь BI-решениями почти всю сознательную жизнь, я обнаружил, что на самом деле ими пользуются только в случае крайней необходимости.

Про BI вспоминают, когда аудиторы запрашивают детализированные данные для подготовки ежеквартальной/ годовой/ другой отчетности акционерам и топ-менеджменту. Причем очень часто business intelligence системы используются, чтобы сформировать итоговый Excel или PowerPoint. В лучшем случае BI могут применять аналитики для подготовки планов продаж или закупок. Топ-менеджеры, к сожалению, не пользуются BI практически никогда.

Мы придумали, как решить эту проблему и сделать принятие data-driven решений в компании намного проще.

Читать далее
Total votes 7: ↑5 and ↓2+3
Comments4

Метрики качества ранжирования

Reading time7 min
Views103K
В процессе подготовки задачи для вступительного испытания на летнюю школу GoTo, мы обнаружили, что на русском языке практически отсутствует качественное описание основных метрик ранжирования (задача касалась частного случая задачи ранжирования — построения рекомендательного алгоритма). Мы в E-Contenta активно используем различные метрики ранжирования, поэтому решили исправить это недоразуменее, написав эту статью.

Метрики качества ранжирования


Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments3

Пузырьковая сортировка и все-все-все

Reading time5 min
Views615K

Все отлично знают, что из класса обменных сортировок самый быстрый метод – это так называемая быстрая сортировка. О ней пишут диссертации, её посвящено немало статей на Хабре, на её основе придумывают сложные гибридные алгоритмы. Но сегодня речь пойдёт не про quick sort, а про другой обменный способ – старую добрую пузырьковую сортировку и её улучшения, модификации, мутации и разновидности.

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

image: пузырьки

Сделать первый шаг в изучении сортировок
Total votes 116: ↑104 and ↓12+92
Comments35

Разработка платформы управления данными. Доклад Яндекса

Reading time25 min
Views9.8K
Яндекс Go разрабатывает платформу управления данными (DMP) как сервис для офлайн- и near real-time-обработки данных. Я постарался рассказать, какая мотивация нужна для создания собственного ETL-инструмента, как ETL и Data Warehouse превратить в DMP, какие проблемы возникают в процессе разработки и как мы их решаем.

— Меня зовут Владимир Верстов, я руковожу разработкой DMP в Яндекс Go — той частью, которая относится к платформе. Не контентной частью, а универсальными инструментами, которые мы переиспользуем, чтобы удобным образом выстроить внутри Такси, Еды и Лавки потоки данных и другие процессы, связанные с дата-инжинирингом. Чтобы сделать сущность, позволяющую дата-инженерам, аналитикам и разработчикам бэкенда коммуницировать на уровне данных и процессов.

Начать рассказ проще всего с вопроса, что вообще такое DMP, потому что каждый под этим может понимать что-то свое: нет устоявшихся паттернов. Расскажу, как мы вообще пришли к текущему состоянию, покажу несколько примеров использования нашей платформы для Greenplum, для Spark, и постараюсь успеть подвести итоги.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments1

Зачем Data-инженеру Spark

Level of difficultyMedium
Reading time24 min
Views12K

Привет, Хабр, меня зовут Дима. В последние пару лет занимаюсь аналитикой, отвечаю за данные в Почте Mail.ru. Развиваю аналитическое хранилище данных и инструменты для работы с ними. Мы плотно работаем со стеком Hadoop, Hive, Spark, Clickhouse и Kafka. Я хочу остановиться на некоторых аспектах работы с данными в Spark: как мы храним петабайты информации и как выполняем запросы к ним?

Прежде всего поделюсь своими практическими наблюдениями. Расскажу как в нашем хранилище мы превратили 7 петабайт в 0,5 петабайт, что позволило сэкономить годовой бюджет по закупке серверов. И также расскажу о ключевых проблемах с данными, знание о которых помогло бы вам построить своё классное хранилище без последующей переделки.

Читать далее
Total votes 38: ↑37 and ↓1+36
Comments2

SQL миграции в Postgres. Часть 1

Level of difficultyMedium
Reading time15 min
Views30K

Как обновить значение атрибута для всех записей таблицы? Как добавить первичный или уникальный ключ в таблицу? Как разбить таблицу на две? Как ... 

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

На эти и другие вопросы, возникающие при проведении миграций схемы и данных в PostgreSQL, постараемся дать ответы в виде практических советов.
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments17

Идеальный препроцессинговый пайплайн для NLP-моделей

Level of difficultyMedium
Reading time12 min
Views4.6K

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

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments1

Использование нейросетей для вашей рекомендательной системы

Reading time7 min
Views4.8K

Глубокое обучение (Deep learning. DL) - это современное решение многих проблем машинного обучения, таких как компьютерное зрение или недостатки естественного языка, и превосходит альтернативные методы. Последние тенденции включают применение методов DL в рекомендательных системах. Многие крупные компании, такие как AirBnB, Facebook, Google, Home Depot, LinkedIn и Pinterest, делятся своим опытом использования DL для рекомендательных систем.

Недавно NVIDIA и команда RAPIDS.AI выиграли три соревнования с использованием DL: ACM RecSys2021 Challenge, SIGIR eCom Data Challenge и ACM WSDM2021 Booking.com Challenge.

Область рекомендательных систем сложна. В этом посте я сосредоточусь на архитектуре нейронной сети и ее компонентах, таких как эмбеддинг и полностью связанные слои, рекуррентные ячейки нейронной сети (LSTM или GRU) и блоки трансформеров. Я расскажу о популярных сетевых архитектурах, таких как Wide и Deep от Google и Deep Learning Recommender Model (DLRM) от Facebook.

Читать далее
Total votes 10: ↑8 and ↓2+6
Comments0

Реализация двустороннего A* на двух потоках

Level of difficultyHard
Reading time10 min
Views5K

На Хабре можно найти немало статей, посвящённых оптимизациям поиска кратчайшего пути на графе. Я расскажу ещё про еще один подход. Речь пойдёт о распараллеливании алгоритма A* и исполнении его на двух потоках, а также о сложностях, с которыми я столкнулся при реализации, и их преодолении.

Читать далее
Total votes 56: ↑56 and ↓0+56
Comments35

Метод генерации столбцов для решения задач математической оптимизации большой размерности

Level of difficultyMedium
Reading time8 min
Views7.1K

Теперь к истокам задачи: часто, чтобы математическая модель была применима в реальном секторе, необходимо использовать очень много ограничений и большое количество переменных. Задачи, возникающие в бизнесе в реальных условиях, требуют использования моделей с большим количеством ограничений и большим количеством переменных.  Временами задача в лоб может и не решиться, поэтому были придуманы различные трюки. Один из них - метод « генерации столбцов» (Column generation).

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments8

Алгоритмы балансировки нагрузок

Level of difficultyMedium
Reading time8 min
Views32K

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

В этом посте мы рассмотрим способы, которыми один балансировщик нагрузок может распределять HTTP-запросы на множество серверов. Мы начнём снизу и проделаем весь путь вверх до современных алгоритмов балансировки нагрузок.
Читать дальше →
Total votes 107: ↑106 and ↓1+105
Comments16

Bag of tricks для разметки текстовых данных: Часть 2. Удаление дубликатов

Level of difficultyMedium
Reading time9 min
Views2.9K

Привет! Меня зовут Ирина Кротова, я NLP-исследователь из компании MTS AI. В этой статье из цикла про разметку данных я расскажу об ещё одном способе собирать данные более качественно и экономить на разметке — фильтрации похожих друг на друга текстов.

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

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments1

Ультимативная дорожная карта для изучения SQL и баз данных в 2023 году + источники для знаний

Level of difficultyEasy
Reading time9 min
Views46K

Roadmap, который поможет вам научиться работать с SQL. Чтобы стать настоящим экспертом в SQL, нужно много практиковаться и изучать различные аспекты языка на протяжении многих лет. Мой Roadmap предлагает отличный старт для начала изучения SQL, поэтому я рекомендую вам приступить к обучению согласно плану.

Читать далее
Total votes 17: ↑14 and ↓3+11
Comments12

Без А/B результат XЗ, или Как построить высоконагруженную платформу А/B-тестов

Reading time17 min
Views20K

Один из важных вопросов как в нашей жизни, так и в бизнесе, и в IT — вопрос эффективности. Эффективно ли мы планируем наше время, те ли задачи решает бизнес, тот ли код мы оптимизируем? Чтобы ответить на эти вопросы, результат должен обладать главным критерием измеримостью. Измеримость результата новых фич для бизнеса и IT обеспечивает платформа А/B-тестов. О том, как её можно построить, выдерживать большой RPS и при этом не облажаться уронить прод, я расскажу в этой статье. 

В конце статьи вы узнаете, как мы задетектили проблемы инфраструктуры, оптимизация которых значительно повлияла на скорость всего Ozon. 

Читать далее
Total votes 108: ↑107 and ↓1+106
Comments7
1
23 ...

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Registered
Activity