Как мы делаем Яндекс
СтатистикаСотрудники Яндекса каждый день решают технологические задачки. В нашем блоге они делятся с сообществом опытом и знаниями.
- Последний пост
- 13 авг.
- Последнее чтение
- 12:41
- Постов за неделю
- 4
- Всего постов
- 50
- Тип
- открытый
- Язык
- русский
- Категория
- Технологии
- В каталоге с
- 12 авг.
- 1/24сутки в ленте
- 497
- 1/48двое суток
- 569
- 1/72трое суток
- 614
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
Go SDK для YDB: уменьшаем количество запросов к СУБД для интерактивных транзакций Интерактивные транзакции в YDB состоят из нескольких последовательных запросов, каждый из которых требует обращения по сети. При высокой нагрузке это увеличивает задержки и вероятность конфликтов, из-за которых транзакции приходится выполнять повторно. Степан Пестерников из команды Алисы рассказывает, как после большого рефакторинга YDB Go SDK удалось сократить количество таких обращений. В статье — две оптимизации, Lazy Transactions и Commit with Query, примеры для query client и database/sql и инструкция по их использованию. #статья
Как мониторить Java-приложения: метрики, алерты и правило 80/20 Хороший мониторинг помогает быстро понять, что происходит с приложением и куда смотреть в первую очередь. Для этого не нужно пытаться измерить всё: базовый набор технических метрик покрывает большинство типовых проблем, а бизнес-метрики, SLO и анализ аномалий помогают заранее замечать нетипичные отклонения. В Календаре этот подход называется правилом 80/20. Настя Кузнецова, бэкенд-разработчик в Яндекс 360, рассказала, как команда пришла к правилу 80/20: базовый набор технических метрик помогает заметить большинство типовых проблем, а бизнес-метрики, SLO и анализ аномалий — разобраться с оставшимися 20%. В статье разобраны базовые RED-метрики для API, клиентов, очередей и запросов к БД, отдельные метрики пулов соединений, а также тонкости JVM — от контроля Direct Buffers и тред-пулов до замера hiccups, которые помогают замечать задержки на уровнях ниже приложения. #статья
Помогаем детским ревматологам повышать эффективность терапии: ИИ-агент для дистанционного мониторинга В России около 70 тысяч детей болеют ревматическими заболеваниями. Ежегодно они проходят обследование и лечение в федеральном центре, но по возвращении домой часто не могут получить квалифицированную помощь из-за нехватки специалистов. Для сохранения контакта с лечащим врачом 5 лет был создан «Дистанционный мониторинг»: в системе уже 32 врача и около 1500 пациентов — но отвечали врачи поверх основной работы, и время ожидания было непредсказуемым. Просто подключить LLM к переписке нельзя: в адверсариальных тестах модели подхватывают подложенный ложный факт в 50–83% случаев. Юлия Шеянова из Центра технологий для общества Yandex Cloud рассказывает, как вместе с Ассоциацией детских ревматологов команда создала и встроила в мониторинг агента. Как он устроен и почему модели доверили только две узкие задачи, а все решения о рисках вынесли в детерминированные правила, можно узнать в статье. #статья
Когда подписи недостаточно: как мы расчищали «серую зону» в поиске по картинкам В Яндекс Картинках релевантность долго считали двумя независимыми сигналами: отдельно — насколько запросу подходит изображение, отдельно — текст рядом с ним. Проблемы начинаются в «серой зоне», где сигналы расходятся: на картинке зверёк, только похожий на лемура, зато в подписи есть нужное слово. Чтобы различать такие случаи, модель должна смотреть на картинку и читать текст одновременно — но работать при этом на десятках тысяч запросов в секунду. Константин Николаев, который занимается внедрением нейротехнологий в Поиске по картинкам, рассказывает, как такую модель довели до продакшена: собрали тяжёлую VLM ради максимального качества, а потом дистиллировали её в набор лёгких моделей — по одной под каждую стадию ранжирования. Итог — плюс 5% релевантных картинок в топе выдачи. #статья
Как мы вынесли алгоритм ценообразования из кода Яндекс Такси (и почему это не было очевидно с самого начала) Кажется, что цена поездки — это расстояние, умноженное на тариф. На самом деле за ней стоят десятки факторов: геозоны, скидки, спрос, платная подача, перевозка кота или лыж. И считается она не один раз: например, если пассажир поменял в поездке точку Б, цену нужно пересчитать. При этом сам алгоритм меняется в среднем дважды в неделю, и правки в него вносят разные команды. Держать такую логику в коде C++-сервиса довольно сложно: откат одной ошибки — это полный цикл сборки, а код превращается в месиво из if-ов. Глеб Федоров, старший разработчик в команде прайсинга Яндекс Такси, рассказывает, как вынесли алгоритм ценообразования из кода сервиса в отдельный слой: почему не взяли готовый JavaScript или Lua, а сделали свой DSL без переменных и циклов, с проверкой через формальный верификатор Z3, и как из чистых функций собирается цепочка преобразований цены. Теперь типовое изменение алгоритма не требует деплоя, а каждый расчёт воспроизводим. #статья
Чем запомнилась ICRA 2026: Reinforcement Learning, генерация сложных сценариев поведения и будущее робототехники В июне состоялась International Conference on Robotics and Automation 2026, на которой были представлены сотни докладов и постеров — от механизмов и медицинских роботов до RL и симуляции. Егор Волков и Максим Спорышев из команды автономного транспорта Яндекса, побывали на конференции и по ее итогам отобрали самые интересные статьи. Сегодня на Хабре — детальный разбор того, чем запомнилось ICRA 2026: кондишенинг VLA на плюккеровых координатах камер, Residual RL как сквозной тренд конференции, генерация safety-critical-сценариев в латентном пространстве и TreeIRL, который уже катается по Лас-Вегасу с дистанцией до вмешательства больше 400 км. #статья
Опенсорсная Весёлая Ферма: поднимаем preview‑окружения без боли Каждый пул-реквест хочется не просто прогнать через тесты, а показать вживую — дизайнеру, менеджеру, соседней команде. Когда пул-реквестов десятки в день, а команд множество, «просто поднять окружение» превращается в отдельный инфраструктурный проект: ресурсы заканчиваются, ресурсы заканчиваются, а единственный способ запуска — как обычный Node.js-процесс — не даёт приложениям изоляции.. Михаил Гольбах, ведущий разработчик интерфейсов Yandex Cloud, рассказал на Хабре, как Ферма — сервис для preview-окружений — выросла из self-hosted-скрипта на одной виртуалке в оркестратор на Docker и Kubernetes. В статье — рефакторинг с абстракцией провайдеров, две схемы развёртывания (кластер и голая ВМ с Docker), разделение кода на открытое ядро и слой яндексовой специфики и обо всём, что понадобилось, чтобы в итоге открыть код Фермы всему сообществу. #статья
Как мы описали 15 000 таблиц за полгода вместо 500 за год — и перестали писать документацию руками Документацию не любит писать никто, зато ругаются на её отсутствие — все. В Яндексе годами хранились десятки тысяч ключевых таблиц без описаний: аналитики регулярно изобретали велосипед, заново собирая чужие отчёты, а ИИ-агенты не могли выдать качественный результат без понимания контекста. Просьбы заполнять карточки вручную, адресованные сотрудникам, упирались или в занятость и страх чистого листа или в то, что у данных просто нет владельцев — так за год описали всего 500 таблиц из 40 тысяч. Роман Гриднев, технический менеджер в Яндексе, рассказал, как получилось изменить эту безрадостную статистику и как превратить пустоту сначала в черновики, а потом и в неплохую документацию без участия человека. В статье разобрали устройство Python-робота, который подтягивает мету из баз YT, графа связей Memgraph и статей в Вики, которые передают нейросети контекст. #статья
Новое облако для умных устройств Яндекса: IoT без хаба, без лишних соединений и без надежды на хороший Wi-Fi Убрать обязательный хаб из умного дома звучит как интересное решение, но за ним стоит много сложностей: устройство должно само пройти онбординг в чужой домашней сети, само держать долгоживущее облачное соединение, само обновляться. И всё это — на не самом мощном железе и скачками сигнала. На флоте больше миллиона активных устройств каждый лишний TLS-коннект и каждый хрупкий ретрай стоят дорого, а мощным бэкендом это не лечится. Сегодня Хабре рассказываем про то, как слой за слоем снимали лишнюю сложность в облаке для умных устройств Яндекса. Вместо зоопарка соединений — один мультиплексированный WebSocket/TLS-канал. Вместо многопоточности — одна очередь задач на FreeRTOS. Плюс ECC-first в криптографии и аккуратная дисциплина переподключений, чтобы короткая деградация сети не превращалась в лавину ретраев. #статья
Платформа плагинов в Трекере, или Как мы пустили сторонний код в продукт с 600 000 пользователей Сегодня в Трекере запустилась платформа плагинов: команды могут дописывать свои модули, не дожидаясь релиза в ядре. Но за этим запуском стоял сложный вопрос: как пустить сторонний JavaScript, написанный неизвестно кем, в B2B-интерфейс с чувствительными данными и не получить XSS, вытаскивание токенов и доступ к лишним данным? На этот вопрос ответили Женя Успенский, руководитель разработки фронтенда в Яндекс Трекере и архитектор платформы плагинов, и Дима Куприк, отвечающий за проект целиком. В статье на Хабре — рассказ о трёх паттернах изоляции стороннего кода и разбор, почему выбрали классический iframe в гиперизоляции, как делали proxy для внешних API и обо всём, что позволяет пускать чужой код в B2B‑продукт и спать спокойно. #статья
Как добавить в умную колонку новые команды и ничего не сломать Добавить в on-device модель распознавания пару новых команд звучит как задача на вечер — пока не выясняется, что переобучение с нуля грозит регрессией на уже работающих фразах, а гарантий нет никаких. Крутить пропорции датасетов и веса классов в лоссе — сомнительное решение: нельзя заранее ответить, что станет с распознаванием. EWC и классические LoRA/адаптеры упираются в тот же гиперпараметр и то же отсутствие гарантий. А всё это должно уместиться в CPU и RAM самой колонки. Виктор Хаймоненко, старший разработчик в команде голосовой активации, рассказывает, как команда добавила новые быстрые команды в умные колонки без ухудшения на старых сценариях. Решение — модульное расширение сети: вместо двойного прогона от заданного слоя отводится параллельная ветвь, которая забирает готовые активации старой модели и конкатенирует небольшой добавочный вектор. Итогом стало уменьшение ложных срабатываний и снятие нагрузки на CPU и RAM. А ещё научная статья по следам этого решения была принята на Interspeech 2026. #статья
Собрать прошлое: как архивировать весь трафик сборки SONiC Сборка SONiC делает тысячи сетевых запросов: пакеты из Debian, исходники с GitHub, Python-пакеты с PyPI, образы из docker-registry. Всё это живёт своей жизнью и постоянно меняется — даже две сборки, запущенные подряд, могут поставить разные версии пакетов, а нужный пакет в любой момент может пропасть из репозитория и сломать сборку совсем. Денис Баллах из команды Yandex Infrastructure рассказал, как решил эту проблему: написал кеширующую MITM-проксю, которая перехватывает весь HTTP/HTTPS-трафик сборки и либо отдаёт уже закешированный ответ, либо выполняет запрос и кеширует его. Внутри — как расшифровать HTTPS, выпуская сертификаты через собственный корневой CA, что положить в хеш запроса, чтобы не ловить лишние кеш-промахи, и почему старый docker-клиент вдруг стал слать «случайный» заголовок Accept. А ещё — как обмануть истекающий Valid-Until в индексах apt, не потеряв доверие репозитория, и как затащить сертификаты и GPG-ключи внутрь docker-образов вообще без curl и wget. #статья
Куда уходит память? Семплирующее профилирование колонок с Алисой в проде У младших моделей умных колонок с Алисой 256 МБ оперативной памяти, за которую конкурируют бизнес-логика, обработка звука и локальные нейросети. Чтобы всё работало стабильно, важно анализировать информацию о расходе памяти, но без специальных систем мониторинга это превратится в угадай-ку. Поэтому инженеры каждый день собирают мемори-дампы с миллионов девайсов. Сергей, разработчик прикладного кода на C/C++ для умных устройств с Алисой, рассказал, как его команда создала и запустила инструмент для анализа потребления памяти на Linux-колонках. В статье — опыт внедрения системы, которая определяет точные точки аллокации памяти, помогая быстро локализовать утечки при выкатке новых версий. Доказали, что профилировать C++ в проде на миллионах маломощных устройств — вполне реально, полезно и не требует слишком много ресурсов. #статья
Как мы тысячу «яблок» для песочниц в дата-центры устанавливали Пользователям‑разработчикам регулярно необходима среда для тестирования приложений под целевые платформы. Если строить такие песочницы в дата‑центре, можно гарантировать бесперебойное питание и охлаждение, а также организовать общие процессы обслуживания. Под Windows, Android и Linux сделать это нетрудно, а вот с iOS и MacOS сложность в том, что нужное оборудование Apple не выпускается в виде серверных решений. Владимир Аксёнов, руководитель группы IT‑поддержки дата-центра в Yandex Infrastructure, рассказывает, как команда адаптировала обычные Apple Mac mini для установки в серверные стойки. Внутри статьи — история наших экспериментов со стоечными решениями, от «картонного» 3D-моделирования до металлических прототипов, которые достойно прошли горячий и холодный коридор. #статья
Alice AI ART 2.0: путь к unified‑модели, которая одинаково хорошо умеет генерировать и редактировать картинки Долгое время в основе работы Alice AI ART лежало два базовых сценария: генерация по тексту (Text-to-Image, T2I) и редактирование по картинке с инструкцией (Image-to-Image, I2I). Всё это время эти сценарии жили как два разных стека: свои базовые модели, свои данные, свои метрики и своя отдельная боль в разработке и поддержке. Сергей Кастрюлин из команды Yandex Research рассказал об отдельных экспериментах и наблюдениях, которые привели команду к Alice AI ART 2.0 — единой модели, которая с лёгкостью справляется как с задачами Text-to-Image, так и Image-to-Image — без потери качества относительно специализированных решений. Внутри — переход от свёрточного генератора к single-stream MMDiT-трансформеру с joint attention и U-RoPE, смена LLM-энкодера на VLM-энкодер, а также честный разбор того, что не взлетело — от сложного model merging до претрейна в высоком разрешении. #статья
Как мигрировать Flutter-приложение на SPM — гайд с граблями, костылями и скриптами Команда Flutter активно движется в сторону Swift Package Manager, призывая разработчиков отказываться от CocoaPods. Но далеко не всегда переход на новый менеджер зависимостей проходит легко. Нехватка SPM-аналогов зависимостей, проблемы с минимальными версиями iOS, ошибки линкера, перенастройка сборочных скриптов — разработчики сталкиваются со многими трудностями, чтобы полностью перевести крупный проект на SPM. Даниил Гиренко, Flutter-разработчик в Яндекс Про написал подробный гайд по миграции любого Flutter-приложения с CocoaPods на SPM на примере супераппа. Пошагово объяснили, как анализировать структуру зависимостей, мигрировать плагины, подготовить проект к новым особенностям сборки и убедиться в работоспособности приложения. Поделились Dart-скриптами для самых рутинных задач, а ещё рассказали, как контролировать целостность файлов Package.resolved на CI/CD, патчить зависимости и обходить Runtime-креши. #статья
Frontend CTF, или Как связаны Мона Лиза и искусственный интеллект Придумывать браузерные головоломки на знание фронтенда, сетей и DevTools — отдельный жанр, а держать планку шесть лет подряд, не повторяясь и не давая участникам «положить» сервер, — задача со звёздочкой. Однако, если делать все с душой, задача вполне посильная. Никита Дубко, один из создателей Frontend CTF (Capture The Flag) на конференции «Я 💛 Фронтенд», рассказал о долгой истории соревнования: эволюция движка от плоской карты до эмуляции файловой системы в терминале, процесс придумывания заданий. И разобрал несколько самых интересных: шифр Цезаря, 6000 чекбоксов, кладущие браузер через CSS и головоломка на TypeScript-дженериках. #статья
Как мы оптимизируем инференс LLM: кеширование, время ответа и GPU-ресурсы Запустили LLM-инференс в продакшене, нагрузка та же, что вчера, — а Time to First Token вдруг вырос в три раза. Первая мысль — дело в модели, но на деле причина почти никогда не в ней: она прячется в планировщике, аллокаторе GPU-памяти, очереди стримингового вывода или сети. А чем длиннее контекст в запросах, тем сильнее это бьёт по продакшену: KV-кеш раздувается до десятков и сотен гигабайт, и на смешанной облачной нагрузке всплывает то, чего не видно на референсных замерах вендора. Андрей Кириленко, руководитель Yandex AI Studio Engineering, рассказал про инженерные проблемы LLM-инференса и их возможные решения. В статье — как контекстный параллелизм сократил TTFT в четыре раза на контексте до 160K токенов, как спекулятивное декодирование снизило TBT примерно до 5 раз и почему балансировка с учётом кешей подняла кеш-хит до 54%. #статья
Помочь пользователю открыть новое: как мы боролись с замкнутым кругом рекомендаций в Яндекс Лавке Когда рекомендательная система заучивает привычки пользователя, она попадает в ловушку обратной связи и перестает показывать новые товары, искусственно сужая выбор. Если внедрять механизмы исследования ради роста метрики discovery, GMV может просесть, поэтому перед командой Яндекс Лавки стояла задача найти баланс между релевантностью и новизной. Рамиль Боярченков, ML-разработчик в команде Яндекс Лавки, рассказал, как они решили эту задачу с помощью алгоритма многоруких бандитов. Система в рантайме рассчитывает склонность пользователя к экспериментам и аккуратно подмешивает новинки только расположенным к ним пользователям. Накопив за месяц онлайн-теста уникальный обучающий сигнал, инженеры переобучили на нем базовую ранжирующую модель. В результате дисциплинированный трехэтапный подход позволил Лавке выйти из цикла обратной связи и одновременно вырастить discovery и GMV. #статья
Как проект из ШАДа попал в Spotlight статей на конференции ICML 2026 Графовые нейросети работают медленнее, чем могли бы — и дело не в сложности вычислений. Операции агрегации признаков соседей вычислительно простые, но граф вынуждает GPU прыгать по случайным участкам памяти: у одной вершины три соседа, у другой — три тысячи, их признаки разбросаны по всей HBM. Вычислительные блоки простаивают в ожидании данных, и чем мощнее GPU — тем заметнее этот перекос. Проблема, которую FlashAttention в своё время решил для трансформеров, для GNN оставалась открытой. Фёдор Великонивцев, старший исследователь Yandex Research и руководитель группы эффективных GPU-вычислений, рассказывает, как проект из курса в ШАДе превратился в статью, попавшую в Spotlight на ICML-2026. Команда разложила популярные GNN на три паттерна и разработала для каждого свои кернелы. Дополнительно разобрались, когда переупорядочивание вершин в памяти реально помогает, а когда — нет. Все кернелы доступны как drop-in replacement для существующих GNN-фреймворков. #статья