Привет, Хабр! Это тимлид DS группы ранжирования и поиска Дана Злочевская и тимлид группы разработки Михаил Нестеров из Lamoda Tech.
Как и у любой крупной e-commerce платформы, данные — наш главный актив. Они помогают бизнесу принимать обоснованные решения, а пользователям — получать персонализированный, качественный опыт во всех продуктах Lamoda.
Поэтому в продакшене ежедневно работают десятки ML-пайплайнов, а в Airflow запускаются сотни DAG-воркфлоу. Данные готовят и используют более 100 специалистов из самых разных команд: аналитики, дата-сайентисты, ML-инженеры, маркетологи — у каждой свои задачи и логика работы с ними.
Однако с ростом команд, задач и инфраструктуры мы начали сталкиваться с рядом системных проблем:
• Разрозненные подходы к подготовке данных. Каждая команда собирала данные «под себя», по своим правилам и в своем формате, что приводило к дублированию информации и нерациональному использованию вычислительных ресурсов.
• Дублирование логики. Одни и те же преобразования выполнялись в разных пайплайнах с минимальными отличиями — это не только неэффективно, но и увеличивает риск ошибок.
• Сложности с переиспользованием. Найти нужные данные, понять, как они были получены, и интегрировать их свой пайплайн — становилось нетривиальной задачей.
• Рост time-to-market. На каждый новый ML-продукт или эксперимент у команд уходило всё больше времени просто на «разогрев»: сбор данных, выравнивание форматов, отладка пайплайна.
Тогда мы поняли, что пора систематизировать наш подход к хранению и работе с датасетами, и реализовали собственный фреймворк на основе Apache Spark — Feature Storage, который сейчас является стандартом в компании. А позже мы выделили отдельное решение для специфичных кликстрим-данных — Action Storage.
В этой статье мы хотим поделиться нашим опытом построения этих инструментов и рассказать, как со временем эволюционировал наш подход к хранению данных в Lamoda Tech. Надеемся, он будет вам полезен и подарит парочку интересных идей.
Yarrow AI учит языкам и в своей основе это не LLM, а логическая машина. Такие системы эффективны, но их очень сложно наполнить данными: приходится каждое знание/правило вносить в базу данных вручную. Это было одной из причиной их вымирания 30 лет назад. Мне удалось решить эту проблему попутно убив одним выстрелом еще пару зайцев.
Изначально я сгенерировал курс английского языка с помощью GPT, он содержал море галлюцинаций. Были наняты профессиональные переводчики для выверки, но они пропускали много ошибок и быстро отваливались: "Это работа не для естественного интеллекта". И вот, редакторами стали сами пользователи приложения: я объединил их в большую команду с помощью ядра Yarrow AI, а вместо зарплаты они получают возможность учиться бесплатно.
Читать далееПривет, Хабр!
Это команда Eppie. Мы разрабатываем p2p почту, в которой пользователи владеют своими адресами и данными. Про данные мы уже говорили, сегодня остановимся на адресах.
Читать далееКажется, никому из читателей Хабра не нужно объяснять, насколько сложным процессом является разработка авиационной техники и комплектующих. Мы часто читаем об этом. Понятно что, длительность процессов разработки, высокие требования к безопасности, строгие формальные процедуры, сложность конструкции и многодисциплинарность научных подходов – вот причины, по которым средний цикл разработки воздушных судов (ВС) составляет 5-10 лет и не всегда заканчивается успешно.
Читать далееПривет! Это команда курса «Аналитик данных» в Яндекс Практикуме. Собрали подборку полезных ресурсов для тех, кто только начинает осваивать визуализацию данных или хочет расширить арсенал инструментов и источников вдохновения. Здесь вы найдёте книги, статьи, онлайн-ресурсы и телеграм-каналы, которые помогут разобраться, как правильно, наглядно и красиво представлять данные.
Читать далееВсем привет, меня зовут Миша, и я разрабатываю платформу Яндекс Еды. Первые компоненты были написаны почти 10 лет назад (когда Еда ещё была стартапом Foodfox), и у нас накопилось много кода, который просто хорошо работает, а иногда даже «работает — не трогай». Но в процессе развития и устоявшиеся части системы нужно трогать, про что мои коллеги уже писали — как мы повышали версию PHP, пилили монолит и снимали нагрузку с БД.
Наконец настал черёд рассказать про процессинг заказов доставки еды из кафе и ресторанов (а также продуктов из магазинов и многого другого). За годы эволюционного развития он значительно разросся, что стало заметно затруднять дальнейшее развитие — например, изменения, связанные с выходом на новые рынки, — а также влиять на надёжность.
Поэтому мы решили вынести процессинг заказа в отдельный специализированный сервис. Чтобы определить, что выносить, а что оставлять, нужно было составить исчерпывающий и актуальный список процессов, которые происходят с заказом. И здесь мы столкнулись с вызовом: это знание распределено по многим людям и документам, поскольку на протяжении долгого времени в процессинг заказов вносили изменения многие команды. И перед нами встал вопрос — как собрать нужную информацию о системе с заметной долей легаси быстро, да так, чтобы информация была актуальна?
Читать далееГлобус Набокова это глобус Земли, который размещен таким образом, чтобы условия его освещения Солнцем совпадали с условиями освещения Земли в космическом пространстве. Глобус Набокова дает возможность видеть терминатор и его движение по поверхности Земли, найти подсолнечную точку и примерно оценить местное время в любой точке Земли.
Читать далееВы когда-нибудь задумывались, как автоматизировать планирование контента? Ну типа вообще всё: от тем до готового текста с эмодзи, ссылками и заголовками? Я — да. И решил, что хватит тратить часы на повседневные дела. Сделал себе схему. Мини-заводик. Суперпростая логика: Google Таблицы → ChatGPT → Google Таблицы обратно.
Читать далееEvent System на C++: реализация без макросов, сложной обвязки и непонятного синтаксиса. Только чёткий и управляемый код.
Читать далееАтаки социальной инженерии являются одной из самых опасных форм кибератак, поскольку они эксплуатируют человеческий фактор, а не технические уязвимости. В прошлом году стратегии злоумышленников усложнились и стали еще хитроумнее. В этой статье мы рассмотрим основные текущие тренды социальной инженерии и предложим способы защиты от них.
Читать далееПривет, решил немного отвлечься от Java и поделиться своим опытом в любительском дроностроении, а именно в настройке приёмников ГНСС, с помощью которых птица сможет вернуться домой при обрыве сигнала или по крайней мере передать свои последние координаты. Это сильно облегчит поиск, особенно, если вы всё сделали правильно, передаёте координаты в телеметрии* и пишете их в лог в вашем пульте ;)
ПолетелиИсключения являются частью любого процесса. Разработчики, создающие бизнес-процессы, должны уметь обрабатывать исключения в бизнес-кейсе, чтобы гарантировать, что сам процесс устойчив и может продолжаться после возникновения сбоев. Логика обработки исключений различается в зависимости от вашей задачи и инструментов, которые у вас есть в распоряжении. В этой заметке я попытался определить различные методы обработки исключений, используя язык паттернов. Каждый паттерн следует определённой структуре, называемой Контекст (общая ситуация, в которой проблема повторяется), Проблема (формулировка), Условия (условия, при которых можно рекомендовать предложенные решения) и Решение. Итак, давайте приступим.
Читать далееFinOps — это не просто модный термин. Это ответ на боль тысяч компаний, которые внедрили облака, а потом с ужасом смотрят на счета. Главная проблема — не только в размере итоговой суммы, но и в отсутствии прозрачности. Вы видите огромный счет, но не понимаете почему столько и за что именно платите.
FinOps помогает ИТ-директору не только обосновать необходимость инвестиций через бизнес-результаты, но и, что особенно важно на начальных этапах, объяснить текущий объем расходов. Если завтра CEO спросит: «Почему мы платим столько за облако?» — вы хотя бы сможете показать, куда уходят деньги и за что именно платит компания. На низком уровне зрелости FinOps речь идет не об окупаемости, а о базовой прозрачности и возможности не выглядеть некомпетентным перед финансовым директором (CFO). FinOps — это ваш новый must have, если вы хотите выйти из режима «платим непонятно за что» и взять расходы под контроль.
В статье собрали ключевые тезисы из практики управления FinOps для ИТ-руководителей. При подготовке статьи опиралась на свой опыт в ITSM, материалы по FinOps фреймворк, исследования Gartner и McKinsey и практический опыт практиков FinOps.
Читать далееПривет! Продолжаем понемногу рассказывать о том, как мы строим собственные ЦОД. Под катом — пятая часть истории. О предыдущих этапах строительства и других интересных событиях рассказывали тут: раз, два, три, четыре.
Читать далееС ростом числа задач, решаемых беспилотными летательными аппаратами (дронами), возрастает необходимость в полностью автономной системе их обслуживания. Такая станция должна выполнять:
Читать далееПривет, Хабр!
Сегодня рассмотрим, как тестировать React‑хуки с помощью @testing-library/react-hooks.
Читать далееКак чистая информация без эмоциональной ткани превращает нас в безмолвных библиотекарей собственного разума
Читать далееОбновление MikroTik — та ещё боль. То не влезешь по SSH, то забыл сделать routerboard upgrade, то устройство «уходит в себя» и не возвращается. Особенно, когда устройств не одно, а десятки. Вручную это превращается в спорт на выносливость и крепкие нервы.
Я решил, что хватит. Написал скрипт на Python, который делает всю грязную работу за меня: подключается, проверяет обновления, ставит новые пакеты, делает routerboard upgrade и даже ждёт, пока устройство снова появится в сети. Главное — всё логируется и работает аккуратно, как системный администратор в хорошем настроении.
В этой статье:
Читать далееЯ уже несколько лет провожу геймджемы и постоянно вижу холивары вокруг судейского фидбека. Да что за сын маминой подруги этот «фидбек», почему за ним так гоняются?
Читать далее