Обновить
512K+

Алгоритмы *

Все об алгоритмах

189,63
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

От фич и каскадов к генеративной модели: как мы переосмыслили рекомендации с помощью ARGUS

Время на прочтение14 мин
Охват и читатели4.1K

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

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

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

Читать далее

Новости

Когда метрики сходят с ума: автоматическая детекция аномалий во временных рядах в Yandex Monium

Время на прочтение14 мин
Охват и читатели9.8K

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

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

Мы в команде ML Research в Городских сервисах Яндекса давно поняли, что руками такие системы не масштабируются. Нужна автоматика, которая сама фиксирует нормальное поведение метрики и засекает отклонения. Звучит как задача для тяжёлого ML, однако на бенчмарках мы доказали, что простая авторегрессия обгоняет сложные модели.

Давайте вместе пройдём путь от «Почему пороги не работают?» до рабочей системы детекции аномалий в общеяндексовой системе Monium и наблюдения за 800+ городами в Яндекс Такси с бенчмарками и конкретными цифрами.

Читать далее

Гири, штрихкоды, роботы и AI: проверьте свои знания эволюции ретейла

Уровень сложностиПростой
Время на прочтение1 мин
Охват и читатели11K

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

В этом тесте вы прикоснётесь к разным эпохам ретейла. Вас ждут и торговые изобретения прошлого — от необычных до ставших привычными, и современные технологии Lenta Tech. Готовы проверить свою интуицию и пройти путь от сегодняшнего техстека торговой сети до первых касс? Тогда заглянем под капот магазина.

P. S. Среди прошедших тест алгоритм выберет получателей призов.

Проверить знания

Черную дыру фотографировали восемь телескопов. Фото собрал алгоритм

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

10 апреля 2019 года человечеству показали оранжевый бублик. Журналисты назвали его «первой фотографией черной дыры». Через час картинка была у всех — мемы про глаз Саурона, шутки про пончик, антропоморфизация,  заголовки «ученые сфотографировали невидимое».

Проблема в том, что это не совсем фотография.Точнее сказать, это очень странная фотография: если бы вы использовали телескоп горизонта событий (англ. EHT — далее по тексту) «как камеру» и нажали кнопку, вы бы получили черный квадрат и никакого бублика. Потому что он делает измерения, из которых алгоритм уже собирает изображение…  которого нет.

Вот про этот алгоритм и про то, как 3,5 петабайта данных летели в Бостон самолетом, и пойдет речь.

Читать далее

Отечественный суперкартридж для старушки Mega Drive и его киллер-фичи

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели17K

Ко мне в руки попал профессиональный флеш-картридж InviteDRIVE v6 MAX с поддержкой игр Sega Genesis / Mega Drive / Sega CD / Master System / 32x, разработанный широко известным в узких кругах ретрогеймеров Масяней из Новосибирска. Главной, но не уникальной особенностью картриджа является возможность играть во всю библиотеку Sega CD игр различных регионов на оригинальной 16-ти битной консоли фирмы Сега не имея самого дорогостоящего и капризного CD аддона.

Тут многие знакомые с темой геймеры вспомнят о Mega EverDrive PRO от широко известного разработчика Крикза и зададутся вопросом, не является ли новый картридж просто его двойником и зачем вообще он нужен? Сразу оговорюсь, что постараюсь обойтись без каких-то сравнений на аппаратном уровне, и описать свои впечатления доступно для всех.

Поехали—>

Если if вас замедляют, откажитесь от них

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели22K

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

Возьмём для примера простую задачу: итеративный обход массива и копирование всех чисел меньше 500 в новый массив. Если числа распределены случайно, то результат условия if становится непредсказуемым для блока предсказания ветвления CPU. Из-за этого показатель ошибочного предсказания будет высоким, существенно препятствуя производительности, потому что процессору многократно приходится сбрасывать конвейер и начинать исполнение повторно.

Читать далее

Как я превратила Obsidian в структурированную память для ИИ‑агентов

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели15K

Эта статья про NOUZ — локальный MCP‑сервер между Obsidian и ИИ‑агентом. Он превращает базу заметок в структурированную память: с уровнями, связями и сигналами дрейфа.

Внутри — как я пришла к этой архитектуре и что она даёт агенту при работе с базой.

Читать далее

Невидимый враг многопоточности: False Sharing и кэш-линии процессора

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели12K

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

Читать далее

«Алгоритмы на языке Go». Книга, которую ждали

Время на прочтение4 мин
Охват и читатели18K

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

Сегодня познакомим вас с самой долгожданной новинкой апреля — книгой «Алгоритмы на языке Go», которую мы успели выпустить в продажу 30 числа.

Читать далее

Обратное распространение ошибки: от интуиции до кода

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели8.2K

Многие умеют вызывать loss.backward() в PyTorch, но не всегда понимают, что именно происходит под капотом. Как сеть вычисляет, какой из миллионов весов нужно изменить? В этой статье мы развеем магию обратного распространения ошибки (backprop). Разберем алгоритм на простых аналогиях с заводским конвейером, вспомним школьное правило дифференцирования и, чтобы закрепить понимание, напишем свой микро-фреймворк для автоматического вычисления градиентов на чистом Python с нуля.

Читать далее

Муравьи против трансформеров: старый алгоритм 1992 года, который вернулся

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

Начну с признания: истории формата «природа оптимизирует лучше людей» меня обычно раздражают, слишком уж часто это все притянуто за уши. Но с муравьями история действительно странная, и мне ее захотелось проверить.

Короткая справка по нашему герою. Аргентинский муравей Linepithema humile в миллиметр длиной, с глазами у него все плохо, а в мозге около 250 000 нейронов (у нас, напомню, 86 млрд). Карты местности он не помнит. 

В 1989 году четверо бельгийских биологов поставили этим муравьям простой эксперимент — гнездо, еда, два мостика, где один длиннее другого в два раза. Через несколько минут вся колония сошлась на короткой ветке в 100% прогонов. И все это без координатора, без плана и без голосования. 

Через три года этот эксперимент превратится в Ant Colony Optimization — алгоритм, который я сегодня натравлю на классический TSP-бенч и получу 0,10% отставания от оптимума. А в 2023, через 34 года после наблюдений в Брюсселе, тот же алгоритм вернулся на NeurIPS в качестве бэкбона для графовых нейросетей. Что же, приступим.

Читать далее

Как подготовиться к алгоритмическим соревнованиям: опыт финалиста ICPC

Время на прочтение11 мин
Охват и читатели12K

Всем привет! Меня зовут Андрей, я финалист ICPC (Международной студенческой олимпиады по программированию), разработчик Техплатформы Городских сервисов Яндекса. Эта статья — концентрат неочевидных (а порой и контринтуитивных) советов по подготовке к соревнованиям. Годами я тренировался, набивал шишки на контестах и набирался мудрости у топовых тренеров, чтобы собрать этот опыт в одном месте.

Читать далее

Свой маленький GIS: приложение для мультиспектральных и гиперспектральных снимков

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели14K

Привет, Хабр. Меня зовут Алексей, я C#-разработчик. В этой статье хочу рассказать о своём дипломном проекте очень запавшем мне в душу, который я делал на тему обработки изображений, GIS и дистанционного зондирования Земли. Даже спустя годы мне интересна данная тема и она по-прежнему остаётся очень перспективной в различных отраслях.

Идея была в том, чтобы собрать небольшое настольное приложение, которое умеет работать с реальными спутниковыми данными: Landsat 8, Sentinel-2 и AVIRIS. То есть открывать не готовую RGB-картинку, а набор спектральных каналов, собирать из них естественные и псевдоцветные изображения, считать растровые индексы, выделять эталоны прямо на снимке, классифицировать пиксели, сегментировать изображение и пробовать более исследовательские вещи вроде EMD-разложения.

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

Читать далее

Ближайшие события

Эдсгер Дейкстра. Человек, который придумал параллельные вычисления

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели20K

Д-р наук, профессор Эдсгер Дейкстра (Edsger W. Dijkstra, 1930−2002) — легендарный голландский и американский учёный, труды которого заложили фундамент современного программирования. Среди всех учёных прошлого Дейкстра оказал самое большое влияние на современную информатику. Он один из разработчиков концепции структурного программирования, формальной верификации, распределённых вычислений, построения компиляторов, графовых алгоритмов, дизайна алгоритмов, дизайна ПО, дизайна математических аргументов, языков программирования и операционных систем.

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

Читать далее

Понять Big O раз и навсегда

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели16K

На локалке всё летает, а на проде ложится замертво? Дело в масштабировании. Big O — это не скучная теория для алгоритмических собеседований, а реальный инструмент, чтобы ваш код не «убивал» сервера. В этой статье я на простых примерах и без зубодробительной математики объясню, как оценивать сложность своих алгоритмов. От O(1) до O(N!) — только суть, примеры на Python и немного здоровой иронии над медленным кодом.

Читать далее

Что именно я понимаю под промежуточным представлением (IR) компилятора

Время на прочтение12 мин
Охват и читатели10K

Я много думал о том, как проектируются промежуточные представления (IR) для компилятора. В этом посте я поделюсь с вами некоторыми идеями, к которым я пришёл, и поясню, почему считаю их важными.

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

Она существует примерно в паре трактовок. Исходим из того, что в каждый момент времени компилируем один какой-то метод, а не занимаемся чем-то сближающимся с трассировкой (трассировка, трейслеты, версионирование базовых блоков, т.д.).

Читать далее

Те, кто не любит отлаживать — против тех, кто не любит писать

Время на прочтение3 мин
Охват и читатели13K

В программировании (как и в написании HDL кода и подобных профессиях) есть две школы мысли: чистолисты (строят свою архитектуру с чистого листа и пишут так чтобы поменьше отлаживать) и кодокопатели (отлаживают что есть, дополняя мусором из интернета, чтобы поменьше писать). На это накладывается менеджмент, который пытается комбинировать чистолистов и кодокопателей, иногда неправильным образом, то есть ставит чистолистов править то, что налабали кодокопатели. Это происходит потому, что кодокопатели постоянно выглядят занятыми отладкой, а чистолист часто смотрит в потолок обдумывая дизайн, поэтому менеджмент думает что первые работают быстрее чем вторые, и пытаются соптимизировать “быстроту-качество” вот таким образом. Реально кодокопательские проекты обычно увязают в отладке и прогресс становится черепашьим.

Читать далее

Почему Chrome весит 7 000 Марио или как сжать «Змейку» в 1 000 раз

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели17K

На вашем диске лежит семь одинаковых моделей птицы Додо. Не благодарите — это ARK заботливо положил их вам в каждое DLC.

Раньше Super Mario Bros весила 40 КБ. Сейчас одно обновление Chrome — это ~7 000 таких Марио. Как мы дошли до жизни такой, и почему все идет по кругу?

В статье пройдем путь от тайлов NES до Neural Texture Compression и рассмотрим змейку в трех версиях: по трем вехам сжатия. Одна из них в 1 120 раз меньше первой. И это не та, в которой ИИ.

Читать далее

Запускаем DeepSeek-V4 (1.6T) на «калькуляторе»: SVD-трансмутация, Identity Theft и гаражный MLOps

Уровень сложностиСложный
Время на прочтение2 мин
Охват и читатели11K

Что делать, если у вас есть 1.6-триллионная модель и видеокарта из прошлого десятилетия? Пока корпорации покупают H100 фурами, мы используем SVD-трансмутацию и архитектурный Identity Theft, чтобы запустить DeepSeek-V4 на бесплатном инстансе Kaggle. Инструкция по сборке Мутанта внутри.

Читать далее

Драматургия через математику: WFC + Entropy Bias

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели8K

Как одна модификация формулы превращает генератор карт в дизайнера уровней

Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. Играли в Hades? Там дизайнер уровней не бросает кубики. Он точно знает, где игрок поймает дыхание после погони, где встретит соблазн свернуть с пути, где сундук стоит под прицелом элитника, а где — просто в углу за колонной. В простой случайной генерации таких решений нет: карты рождаются «равномерными» и драматургически мёртвыми. Сегодня хочется поговорить о том, как одной модификацией в формуле Wave Function Collapse вернуть в генератор жизнь. Разберём Entropy Bias, Entropy Cascade, Tile Probability Bias и семантические слои. Если вам интересна тема процедурной генерации и немножко математики — добро пожаловать под кат.

Читать далее
1
23 ...