Как стать автором
Обновить
14
0

Пользователь

Отправить сообщение

Как мы обложились запросами и ускорили ElasticSearch: чиним товарный каталог СберМегаМаркет

Время на прочтение13 мин
Количество просмотров9.5K

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

Здравствуй, Хабр! Меня зовут Никита Вахрамеев, я работаю ведущим разработчиком в команде, которая занимается бэкендом витрины СберМегаМаркет. Основные направления нашей работы — листинги (каталоги товаров) и карточки товаров. В этом посте мы проведем небольшое расследование, погрузимся в нюансы шардирования и кэширования в ElasticSearch и исправим проблемы в каталоге на 16 миллионов товаров.

Внимание спойлер: индексы, во всем виноваты индексы!

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии15

Дропаем ранжирующие метрики в рекомендательной системе, часть 2: двухэтапные модели

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров4.5K

В первой части статьи я рассказала, как мы с напарником решили выкатить модель из соревнования в онлайн рекомендации, увидели проблему popularity bias, и затем построили новую модель, сбалансированную по метрикам.

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

RecSys dive ->
Всего голосов 9: ↑9 и ↓0+9
Комментарии3

Вы неверно измеряете загрузку процессора

Время на прочтение6 мин
Количество просмотров65K
Та метрика, которую мы называем «загрузкой процессора» на самом деле многими людьми понимается не совсем верно. Что же такое «загрузка процессора»? Это то, насколько занят наш процессор? Нет, это не так. Да-да, я говорю о той самой классической загрузке CPU, которую показывают все утилиты анализа производительности — от диспетчера задач Windows до команды top в Linux.

Вот что может означать «процессор загружен сейчас на 90%»? Возможно, вы думаете, что это выглядит как-то так:



А на самом деле это выглядит вот так:



«Работа вхолостую» означает, что процессор способен выполнить некоторые инструкции, но не делает этого, поскольку ожидает чего-то — например, ввода-вывода данных из оперативной памяти. Процентное соотношение реальной и «холостой» работы на рисунке выше — это то, что я вижу изо дня в день в работе реальных приложений на реальных серверах. Есть существенная вероятность, что и ваша программа проводит своё время примерно так же, а вы об этом и не знаете.
Читать дальше →
Всего голосов 95: ↑88 и ↓7+81
Комментарии62

Мой путь до ИП+ВНЖ Сербии (Лозница) 2022-2023

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров37K

Я эмигрировал из России в Сербию в сентябре 2022 года. За три месяца я оформил ИП, ВНЖ, снял квартиру, офис, открыл юридические и физические счета. В статье будет только мой опыт — немного Белграда и много маленького города Сербии — Лозницы.

Читать далее
Всего голосов 29: ↑19 и ↓10+16
Комментарии19

Погружаемся в статистику вместе с Python. Часть 2. Распределение Стьюдента

Время на прочтение18 мин
Количество просмотров37K

Доброго времени суток, хабраледи и хабраджентельмены! В этой статье мы продолжим погружение в статистику вместе с Python. Если кто пропустил начало погружения, то вот ссылка на первую часть. Ну, а если нет, то я по-прежнему рекомендую держать под рукой открытую книгу Сары Бослаф "Статистика для всех". Так же рекомендую запустить блокнот, чтобы поэкспериментировать с кодом и графиками.

Как сказал Эндрю Ланг: "Статистика для политика – все равно что уличный фонарь для пьяного забулдыги: скорее опора, чем освещение." Тоже самое можно сказать и про эту статью для новичков. Вряд ли вы почерпнете здесь много новых знаний, но надеюсь, эта статья поможет вам разобраться с тем, как использовать Python для облегчения самостоятельного изучения статистики.

Продолжить погружение!
Всего голосов 11: ↑11 и ↓0+11
Комментарии2

Введение в диффузионные модели для генерации изображений – полное руководство

Время на прочтение22 мин
Количество просмотров34K

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

Читать далее
Всего голосов 27: ↑24 и ↓3+28
Комментарии1

Как работает Stable Diffusion: объяснение в картинках

Время на прочтение9 мин
Количество просмотров96K
Генерация изображений при помощи ИИ — одна из самых новых возможностей искусственного интеллекта, поражающая людей (в том числе и меня). Способность создания потрясающих изображений на основании текстовых описаний похожа на магию; компьютер стал ближе к тому, как творит искусство человек. Выпуск Stable Diffusion стал важной вехой в этом развитии, поскольку высокопроизводительная модель оказалась доступной широкой публике (производительная с точки зрения качества изображения, скорости и относительно низких требований к ресурсам и памяти).

Поэкспериментировав в генерацией изображений, вы можете задаться вопросом, как же она работает.

В этой статье я вкратце расскажу, как функционирует Stable Diffusion.

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

Как мы сохраняем знания компаний

Время на прочтение12 мин
Количество просмотров4.4K


Документация важна. Отдел по маркетингу, может, не знает, чем именно занимается техподдержка ПО или оборудования. Филиалы в условных Новосибирске или Туле отвечают только за свои регионы. Вся накопленная подразделениями или отдельными сотрудниками информация тоже хранится фрагментарно в виде памяток в Word или Excel, а то и вовсе исключительно в головах сотрудников.

И когда они увольняются, вместе с ними уходит и их компетенция. Новым приходится заново «изобретать велосипед». Это опасный момент онбординга, потому что многие не выдерживают информационной нагрузки. Возникает текучесть кадров.

У нас для борьбы с этими проблемами в структуре компании «Сервионика» в 2021 году было создано специальное подразделение — центр компетенций. Он нужен для технической и экспертной поддержки проектов, развития общей базы знаний.

Сегодня на примере проекта по созданию системы автоматизированных рабочих мест я расскажу о структуре нашего ЦК, выполняемых им задачах, его технической реализации, возможностях и ограничениях. А в заключение наглядно продемонстрирую эффективность его работы в конкретных числах.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии7

Как Unicorn и Puma взаимодействуют с nginx. Введение в UNIX сокеты с помощью Ruby

Время на прочтение5 мин
Количество просмотров3.9K

Ruby приложения обычно используются вместе с веб сервером типа nginx. Когда пользователь запрашивает страницу вашего Rails приложения, nginx делегирует запрос серверу приложения. Но как именно это работает? Как nginx общается с Unicorn?

Одним из наиболее эффективных способов будут Unix сокеты. Давайте посмотрим как они работают! В этом посте мы начнём с основ Unix сокетов и закончим созданием своего простого Ruby приложения, которое может быть проксировано nginx.

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии4

Я обучил нейросеть на своих рисунках и отдаю модель бесплатно (и научу вас делать это)

Время на прочтение2 мин
Количество просмотров25K

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

Хочу всё знать!
Всего голосов 30: ↑26 и ↓4+30
Комментарии31

Хакинг метрик качества видео или как с приходом ИИ все становится намного сложнее

Время на прочтение23 мин
Количество просмотров13K

Сейчас модно писать, что ML пришел туда и все стало отлично, DL пришел сюда и все стало замечательно. А к кому-то пришел сам AI, и там все стало просто сказочно! Возможна ли ситуация, когда к нам пришел волшебный ML/DL и все стало сложнее, тяжелее и на порядок запутаннее? Безусловно! Разберем такой пример.

Десятки лет при сравнении кодеков и алгоритмов обработки видео исследователи использовали старые добрые метрики PSNR и SSIM с довольно простыми формулами и были счастливы. Но прогресс невозможно остановить! На их место пришли новые метрики и… тут выяснилось, что они взламываются.

— Погодите, погодите… — скажет взволнованный читатель, — А как это вообще выглядит, взломать метрику??? 
— Добро пожаловать в 21 век, дорогой товарищ! Благодаря неудержимому прогрессу, сегодня можно хакнуть не только утюг, колонку, автопилот машины и домашний пылесос, но и метрику качества видео.

В этот момент собеседники обычно дружно спрашивают, кому это надо? О, поверьте, есть люди, которым не просто надо, а сильно надо! Представьте себе, что вы руководитель подразделения и у вас жесткие KPI (маркетинг требует обогнать конкурентов, от этого зависят нехилые годовые бонусы у всех сотрудников и особенно у вас). Чтобы улучшить видеокодек на условные 4%, требуются десятки человеко-месяцев труда весьма высокооплачиваемых инженеров, причем, бывает, получается, а бывает, не очень. И тут выясняется, что можно за пару недель работы одного зеленого стажера подшаманить метрику на 7%. Ваши действия? Вспоминается жизненный анекдот «тут-то мне карта и поперла»…

Далее мы популярно затронем взлом методом черного ящика, белого ящика, взлом недифференцируемых метрик (привет дистилляция!) и цирк с дифференцируемыми.

Впрочем обо всем по порядку…

Кому интересен цирк с конями взлом метрик — го под кат.

Читать далее
Всего голосов 65: ↑64 и ↓1+87
Комментарии38

Где скачать научную статью легко и доступно?

Время на прочтение1 мин
Количество просмотров98K

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

Однако стоимость одной статьи от платных издателей может составлять 150 долларов, что не так уж и мало по сравнению с размером стипендии студента.

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

Читать далее
Всего голосов 89: ↑89 и ↓0+89
Комментарии26

Как справиться с устареванием apt-key и add-apt-repository с помощью gpg в Ubuntu 22.04

Время на прочтение10 мин
Количество просмотров32K

apt-key - это утилита, используемая для управления ключами, которые APT использует для аутентификации пакетов. Это тесно связано с утилитой add-apt-repository, которая добавляет внешние репозитории с использованием серверов ключей в список надежных источников установки APT. Однако ключам, добавленным с помощью apt-key и add-apt-repository, apt доверяет глобально. Эти ключи не ограничиваются авторизацией единственного хранилища, для которого они были предназначены. Любой ключ, добавленный таким образом, может быть использован для авторизации добавления любого другого внешнего хранилища, что представляет собой важную проблему безопасности.

Начиная с Ubuntu 20.10, использование apt-key выдает предупреждение о том, что инструмент устареет в ближайшем будущем; аналогичным образом, add-apt-repository также скоро устареет. Хотя эти предупреждения об устаревании строго не запрещают использовать apt-key и add-apt-repository с Ubuntu 22.04, но игнорировать их не рекомендуется.

В настоящее время рекомендуется использовать gpg вместо apt-key и add-apt-repository, и в будущих версиях Ubuntu это будет единственным вариантом. apt-key и add-apt-repository сами по себе всегда действовали как оболочки, вызывая gpg в фоновом режиме. Использование gpg напрямую отсекает посредника. По этой причине метод gpg обратно совместим со старыми версиями Ubuntu и может использоваться в качестве замены apt-key.

В этом руководстве будут описаны две процедуры, использующие альтернативы apt-key и add-apt-repository соответственно. Сначала будет добавлено внешнее хранилище с использованием открытого ключа с помощью gpg вместо использования apt-key. Во-вторых, в качестве дополнения в этом руководстве будет рассмотрено добавление внешнего репозитория с использованием сервера ключей с gpg в качестве альтернативы использованию add-apt-repository.

Читать далее
Всего голосов 7: ↑5 и ↓2+3
Комментарии11

Как создать dApp за три шага

Время на прочтение11 мин
Количество просмотров11K

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

В этом техническом руководстве вы узнаете как создать простой dApp, который позволяет пользователю получать и хранить текущую цену Ethereum в смарт-контракте. Готовую демонстрационную версию можно найти на GitHub.

Читать далее
Всего голосов 8: ↑6 и ↓2+4
Комментарии0

17 убойных репозиториев GitHub, которые нужно сохранить

Время на прочтение6 мин
Количество просмотров141K

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

Читать далее
Всего голосов 153: ↑123 и ↓30+114
Комментарии44

Рекомендательные системы: проблемы и методы решения. Часть 2

Время на прочтение15 мин
Количество просмотров18K

Привет! Меня зовут Екатерина Ванская, и я занимаюсь data science в компании Prequel. В этой статье я продолжу обзор рекомендательных алгоритмов, которым мы начали в предыдущем моем материале

(вот ссылка на первую часть).

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

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии6

Маленький и быстрый BERT для русского языка

Время на прочтение9 мин
Количество просмотров62K

BERT – нейросеть, способная неплохо понимать смысл текстов на человеческом языке. Впервые появившись в 2018 году, эта модель совершила переворот в компьютерной лингвистике. Базовая версия модели долго предобучается, читая миллионы текстов и постепенно осваивая язык, а потом её можно дообучить на собственной прикладной задаче, например, классификации комментариев или выделении в тексте имён, названий и адресов. Стандартная версия BERT довольно толстая: весит больше 600 мегабайт, обрабатывает предложение около 120 миллисекунд (на CPU). В этом посте я предлагаю уменьшенную версию BERT для русского языка – 45 мегабайт, 6 миллисекунд на предложение. Она была получена в результате дистилляции нескольких больших моделей. Уже есть tinybert для английского от Хуавея, есть моя уменьшалка FastText'а, а вот маленький (англо-)русский BERT, кажется, появился впервые. Но насколько он хорош?

Читать далее
Всего голосов 57: ↑57 и ↓0+57
Комментарии17

Семантический поиск: от простого сходства Жаккара к сложному SBERT

Время на прочтение10 мин
Количество просмотров29K

В материале, переводом которого мы решили поделиться к старту курса о машинном и глубоком обучении, простым языком рассказывается о семантическом поиске, статья охватывает шесть его методов; начиная с простых сходства по Жаккару, алгоритма шинглов и расстояния Левенштейна, автор переходит к поиску с разреженными векторами — TF-IDF и BM25 и заканчивает современными представлениями плотных векторов и Sentence-BERT. Простые примеры сопровождаются кодом и иллюстрациями, а в конце вы найдёте ссылки на соответствующие блокноты Jupyter.

Читать далее
Всего голосов 13: ↑12 и ↓1+12
Комментарии1

«Ваша сезонность, сэр!»: ищем тренд и прогнозируем спрос с помощью временных рядов, SARIMA и Python. Ч.1

Время на прочтение4 мин
Количество просмотров13K

Как вы можете помнить по первой статье "Маркетинговая аналитика на Python. Пишем код для RFM-сегментации", более 8 лет я работаю в сфере маркетинга для B2B и примерно столько же бешусь от дилетантского подхода к аналитике, который тянет за собой ряд проблем с определением ключевых метрик эффективности для компании (и, как следствие, с мотивацией сотрудников):

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии5

Маркетинговая аналитика на Python. Пишем код для RFM-сегментации

Время на прочтение8 мин
Количество просмотров13K

RFM - классический инструмент маркетинга для сегментации вашей клиентской базы. Я использую ее для работы в В2В, В2G сегменте. В основе него - понятные управленцу ценности: LTV и Purchase Frequency. Как можно строить сегменты с помощью Python - читайте в материале.

 

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии7
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность