Обновить
276.76

Алгоритмы *

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

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

Создание интерактивного макета. Упаковка кругов в квадрат и прямоугольник. Жадный алгоритм

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

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

Читать далее

Как RuStore читает мысли пользователей (и причём тут теги)

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

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

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

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

Читать далее

T-LoRA: дообучить диффузионную модель на одной картинке и не переобучиться

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

Вы когда‑нибудь мечтали стать лучшей версией себя? Моложе, красивее, идеальнее… А вот LoRA уже стала!

Меня зовут Вера Соболева, я научный сотрудник лаборатории FusionBrain Института AIRI, а также стажер‑исследователь Центра глубинного обучения и байесовских методов НИУ ВШЭ. Cегодня я расскажу про наше свежее исследование T‑LoRA: Single Image Diffusion Model Customization Without Overfitting. Мы с коллегами придумали эффективный способ как файнтюнить диффузионные модели с помощью LoRA всего по одной картинке

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

Хорошая новость: эту задачу можно решить, копнув поглубже в свойства диффузии! В этой статье я расскажу, как это сделать.

Читать далее

Балконы и полигоны: как мы разметили 12 000 квартир для генерации 3D-туров

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

Те, кто имел дело с покупкой и продажей недвижимости, знает, что просмотры — очень хлопотное занятие. Неудивительно, что для экономии времени появляются предложения посмотреть квартиру онлайн или с помощью 3D‑тура. О таких виртуальных экскурсиях мы сегодня и поговорим.

В сентябре Яндекс Недвижимость рассказала о 3D‑турах для новостроек. С момента начала тестирования в июле на сервисе было сгенерировано более четверти миллиона виртуальных экскурсий по строящимся квартирам. Чтобы это стало возможным, мы обучили нейросеть анализировать планировки и превращать их в трёхмерные визуализации. Но чтобы это стало возможным, нужно было проделать большую и кропотливую работу, чтобы нейросеть понимала, где отрисовывать окно или класть плитку на пол.

Меня зовут Катя Шибанова, я работаю архитектором краудсорсинговых решений (CSA) в службе разметки данных Yandex Crowd Solutions. Недавно к нам обратились коллеги из Яндекс Недвижимости: нужно было помочь с разметкой для обучения модели компьютерного зрения, которую используют для создания 3D‑туров. Об этом интересном проекте и будет мой рассказ. Я расскажу, чем опасны миллиметровые зазоры между полигонами в разметке, почему помимо типов помещений (кухня, спальня, санузел и тому подобное) нужно размечать структурно важные элементы — двери, окна, несущие стены, а также почему приоритизация геометрической согласованности важнее «средней» точности по пикселям.

Читать далее

Решение проблемы двойного букинга: паттерны проектирования систем

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

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

Технологические компании наподобие Ticketmaster, BookMyShow, Airbnb, Delta Airlines и так далее сделали бронирование делом одного клика, позволившим покупать билеты из дома.

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

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

Поэтому важно создать надёжное решение классической задачи — двойного букинга.

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

Мы рассмотрим различные архитектурные паттерны и разберёмся в их плюсах и минусах. Статья поможет вам обрести глубокое понимание и наработать знания в системном мышлении.

Читать далее

EvoPress: новый подход к оптимизации и сжатию LLM от исследователей Яндекса

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

Всем привет! Меня зовут Денис Кузнеделев, я работаю в команде Yandex Research. Моё основное направление деятельности на данный момент — задача сжатия и ускорения больших языковых и картиночных моделей. Затраты на обучение, инференс и деплой LLM стали одной из ключевых инфраструктурных проблем индустрии: дефицит вычислительных ресурсов, нехватка видеопамяти и высокие требования языковых моделей к вычислительным ресурсам препятствуют масштабированию решений. 

Сегодня я расскажу о методе неравномерного сжатия нейронных сетей EvoPress, который мы предложили совместно с коллегами из ETH Zurich и представили в июле этого года на одной из ведущих конференций по машинному обучению — ICML.

Читать далее

Почему файлы стали меньше: форматы фото и видео (JPEG, HEIC, AV1)

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

Форматы изображений и видео вроде JPEG, HEIC и AV1 давно стали частью нашей повседневности. Мы снимаем на смартфон, пересылаем фото в мессенджерах, заливаем видео в облако — и редко задумываемся, почему одинаковый кадр может весить в три раза меньше, но выглядеть так же.

Рассмотрим, как современные кодеки экономят место, почему файлы стали компактнее и зачем это вообще понадобилось. Детали под катом.

Читать далее

Придумал расширение для Chrome и устранил шахматных читеров

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

Поисковая выдача по запросу «chrome extension for cheating in chess» переполнена. Инструментов для нечестной игры — десятки.

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

Удивительный дисбаланс, не правда ли?

Обо всем по порядку

GigaMemory: научи ИИ «помнить всё» с AI Journey Contest 2025

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

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

Мы в команде RnD для B2C SberAI хотим это исправить. Представляем вашему вниманию задачу GigaMemory: global memory for LLM. Мы предлагаем участникам построить долгосрочную персональную память для языковой модели — систему, которая хранит, обновляет и надёжно извлекает знания о конкретном пользователе. Привычки, предпочтения, ограничения и прочие факты о пользователе, которые могут пригодиться в дальнейшем общении.

Цель — научить ИИ отвечать не «в среднем по больнице», а исходя из вашего реального контекста: от прошлых задач на работе до семейных дат и спортивных планов.

Читать далее

Бенчмарк lakehouse-движков, часть 1: StarRocks и Doris падают под нагрузкой, Presto аутсайдер, CedrusData быстрее всех

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

В этой статье мы детально рассмотрим поведение аналитических движков при выполнении отдельного TPC-DS запроса на одном узле.

Это глубоко технический текст, в котором мы увидим, как (1) три родственных движка (Impala, StarRocks и Doris) с трудом справляются с конкурентной нагрузкой, (2) разработчики StarRocks и Doris затачивают дефолты своих движков под бенчмарки, (3) Trino реализует эффективный шедулер запросов, но имеет ряд дефектов, ухудшающих производительность, (4) Presto строит хорошие планы запросов, но демонстрирует катастрофически плохую производительность из-за отсутствия буквально одной фичи. Ну а победит, конечно, наш движок CedrusData.

Хочу, чтобы подгорело

И в дождь, и в снег: как мы детектируем загрязнения на лидарах автономного транспорта

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

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

Читать далее

Рендеринг трёхмерных фрактальных множеств: от губки Менгера до Мандельбокса, часть 2

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

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

Меня всё также зовут Андрей Гринблат, и в первой части я начал рассказывать о такой технологии, как ray marching, и о нормированных пространствах. В этой части начнём с построения простых геометрических фракталов — губки Менгера и тетраэдра Серпинского, затем построим IFS-фракталы, рассмотрим технику орбитальных ловушек, и в завершение построим фрактал «Ящик Мандельброта», или Мандельбокс.

Читать далее

Предобусловливание и импульс в оптимизации: взгляд на алгоритмы PHB/PN от исследователей Яндекса

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

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

Для ускорения сходимости широко применяются методы с механизмом импульса (momentum): классический метод Поляка — Heavy Ball (HB) — и метод Нестерова (ускоренный градиент). Оба эти метода используют идею накапливать «инерцию» градиента, благодаря чему могут двигаться по направлению оптимума быстрее обычного градиентного спуска. 

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

Всем привет! Меня зовут Степан Трифонов, я аналитик‑разработчик в Яндекс Пэй. Недавно мы с коллегами, Леонидом Левиным и Савелием Чежеговым, опубликовали научную статью Incorporating Preconditioning into Accelerated Approaches: Theoretical Guarantees and Practical Improvement, где ввели предобусловленные версии классических ускоренных методов — Preconditioned Heavy Ball (PHB) и Preconditioned Nesterov (PN) — и доказали для них оценки сходимости при весьма общих допущениях на предобусловливающую матрицу. Также мы провели численные эксперименты, которые продемонстрировали практический выигрыш новых алгоритмов по сравнению с обычными (непредобусловленными) методами HB и Нестерова.

Читать далее

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

Наука для бизнеса: что внедрять завтра (анализ 134 195 научных работ 2025 года)

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

Чтобы понять, какие технологии будут определять рынок завтра, компании опираются на прогнозы/отчёты аналитиков или анализируют патенты. Но есть источник, который часто опережает и патенты – научные публикации. Далее о том, как я проанализировала 134195 научных статей 2025 года, чтобы ответить на вопрос, на какие технологии делать ставку прямо сейчас.

Читать далее

Вышел Python 3.14. Насколько он быстр?

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

В ноябре 2024 года я написал пост «Действительно ли Python такой медленный?», в котором протестировал множество версий Python и отметил стабильный прогресс производительности языка.

Сегодня девятое октября 2025 года, прошла всего пара дней после официального релиза Python 3.14. Давайте снова запустим бенчмарки, чтобы проверить, насколько быстра новая версия Python!

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

Читать далее

Регулярная катастрофа и как её избежать. Подход к регулярным выражениям

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

Салют, Хабр!

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

Читать далее

От нестационарности к прогнозу: пайплайн анализа и моделирования временных рядов

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

Привет, Хабр! Я Михаил Зуев — Data Scientist из команды затрат корпоративных
клиентов Сбера. Мы много предсказываем, классифицируем и прогнозируем.
Впервые столкнувшись с последним и проведя исследование по этой теме, я
столкнулся с большим количеством неструктурированной информации. Эта статья —
одновременно описание моего пути и небольшое упорядоченное наставление по
анализу и прогнозированию временных рядов, которое я сам хотел бы получить.

Читать далее

Программист embedded лезет в FPGA (часть 3, чего не может ардуинка)

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

Вначале мы поморгали диодом, затем посчитали семисегментником. Если с нуля, то уж лучше пройти эти этапы. Теперь приступим к задачке, которую с большой натяжкой можно применить где-нибудь на проде. С очень большой.

На плате, которую я использую для примера (QMTECH Cyclone 10 Starter Kit), есть разъём HDMI, что недвусмысленно намекает нам, что к нему можно подключить дисплей соответствующим кабелем. На самом деле, разъём – это не обязательно. А вот наличие на чипе выходов, которые можно сконфигурировать как lvds, очень сильно приветствуется. Возможно, получится и без этого (просто 2 выхода, формируемые из одного инверсией), но я не пробовал, потому промолчу.

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

Мы будем работать на более низком уровне. Делать на коленке прозрачные электроды, и наклеивать поляризационные плёнки, конечно, не надо. Будем формировать видео-сигнал.

Если вы думаете, что в 2025-м году ЭЛТ мониторы и телевизоры остались в далёком прошлом, то у меня для вас есть новость: Формат сигналов внутри проводов всё ещё напоминает сигнал, который идёт на одну из сеток большой вакуумной лампы, которой, по сути и является кинескоп.

Читать далее

ESP32 + LD2410: Архитектуры нейронных сетей для классификации движений

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

Микроконтроллеры давно перестали быть простыми устройствами для управления датчиками и исполнительными механизмами. Сегодня, благодаря библиотекам вроде TensorFlow Lite, даже компактный ESP32 способен выполнять инференс нейросетей в реальном времени. В этой статье я расскажу о серии экспериментов по классификации движений человека с помощью радарного датчика LD2410 и различных базовых архитектур машинного обучения, таких как полносвязная, свёрточная, рекуррентная нейронные сети и трансформер (механизм внимания).

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

Ознакомиться

Нормированные пространства и рендеринг трёхмерных фрактальных множеств: ray marching, поле расстояний, базовые примеры

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

За решениями нестандартных задач часто стоит какая-то интересная математика. Вместе с навыками работы с графикой она позволяет выходить за рамки стандартных инструментов и пробовать новые подходы в рабочих проектах.

Меня зовут Андрей Гринблат, я ИТ-инженер в СберТехе, занимаюсь разработкой фронтенд-интерфейсов приложений.
В этой статье расскажу о том, как с помощью математики и ray marching построить фотореалистичные изображения 3D-фракталов. Всех, кому интересно, прошу под кат.

Читать далее

Вклад авторов