На прошлой неделе мы запустили агент «Исследовать» в Алисе AI, а сегодня делимся техническими деталями
Это DeepResearch-агент, который может проанализировать большой объём данных и выдать полноценный разбор темы. За три месяца тестирования «Исследовать» использовали более 280 тысяч раз. Техлид агента Прохор Гладких рассказал о нём подробнее.
А работа началась год назад — в апреле 2025-го. Первая версия представляла собой классический пайплайн: поиск и генерация. Однако запросы в поиск генерировали с помощью тяжёлой модели и сразу несколько, а ответы получали с помощью ризонера. Так в Алисе появился режим «рассуждать + поиск».
Первый прототип непосредственно агента «Исследовать» был аналогом CodeAgent, собранным из smolagents. Такой подход позволил добиться неплохих результатов на SimpleQA и Frames.
Вторая итерация агента уже была полностью реализована на классическом function calling.
Удалось побить метрики CodeAgent и полностью отказаться от написания кода для вызова тулов. Всего в «Исследовать» 13 подагентов и 9 тулов, среди которых, например, CodeSandbox для запуска сгенерированного агентом кода.
Попробовать агент «Исследовать» можно на сайте alice.yandex.ru, в приложениях Алиса AI, Яндекс с Алисой AI и в Яндекс Браузере.
ML Underhood
Это DeepResearch-агент, который может проанализировать большой объём данных и выдать полноценный разбор темы. За три месяца тестирования «Исследовать» использовали более 280 тысяч раз. Техлид агента Прохор Гладких рассказал о нём подробнее.
А работа началась год назад — в апреле 2025-го. Первая версия представляла собой классический пайплайн: поиск и генерация. Однако запросы в поиск генерировали с помощью тяжёлой модели и сразу несколько, а ответы получали с помощью ризонера. Так в Алисе появился режим «рассуждать + поиск».
Первый прототип непосредственно агента «Исследовать» был аналогом CodeAgent, собранным из smolagents. Такой подход позволил добиться неплохих результатов на SimpleQA и Frames.
Вторая итерация агента уже была полностью реализована на классическом function calling.
DeepResearch — и у нас, и у конкурентов — сильно нагружающий GPU продукт. Здесь очень важна оптимизация потребления ресурсов видеокарт, так как на один запрос пользователя агент делает сотни вызовов моделей. Крайне важно попадать в KV-cache, и чтобы его объёма хватало на все параллельные исследования в поде.
Чтобы этого достичь, мы сделали систему, которая отправляет все запросы в рамках одного исследования на один под, а также провели около 30 экспериментов по подбору параметров LLM-движка. В итоге достигли оптимизации в десятки раз, что позволило раскатить агента на всех пользователей.
Удалось побить метрики CodeAgent и полностью отказаться от написания кода для вызова тулов. Всего в «Исследовать» 13 подагентов и 9 тулов, среди которых, например, CodeSandbox для запуска сгенерированного агентом кода.
Я был сильно удивлён, что агент отлично справляется не только с научными запросами, но и с подбором товаров в маркетплейсах по моим сложным критериям. Особенно порадовало, что он вычитывает отзывы пользователей и анализирует их за меня. Почти все покупки я сейчас делаю с помощью агента «Исследовать» для выбора и агента «Найти дешевле» для поиска лучшего предложения. Это снимает с меня когнитивную нагрузку по выбору бренда, отсмотру отзывов и так далее.
Попробовать агент «Исследовать» можно на сайте alice.yandex.ru, в приложениях Алиса AI, Яндекс с Алисой AI и в Яндекс Браузере.
ML Underhood
👍17❤9🔥5
Долгое бодрствование агентов — как мы построили платформу Agent Transport System для Алисы AI
Агент «Исследовать», о котором мы писали ранее, должен быть устойчивым к непредвиденным ситуациям. Собственно, исследование — процесс комплексный, требующий проанализировать несколько источников, вызвать разные инструменты и запустить модели. Если где-то что-то упадёт, то всё придется начинать сначала. Чтобы этого не происходило, в Яндексе использовали платформу Agent Transport System (ATS). О ней на Хабре рассказал Алексей Логинов, ведущий разработчик в команде, которая отвечает за инфраструктуру Алисы AI. Кратко выделим главное.
Сперва агентский режим ассистента реализовали на OpenAI Agents SDK. Это работало, но стейты выполнения хранились локально, а при любых сбоях приходилось начинать всё заново. Нужно было найти такое решение, которое позволяло бы продолжать работу именно из состояния до падения. Кроме того, хорошо бы иметь под капотом распределённое выполнение, чтобы агенты и тулы взаимодействовали друг с другом, находясь на разных хостах.
Для построения отказоустойчивых систем хорошо подходит фреймворк Temporal. Он оперирует двумя типами сущностей: workflow (объект с состоянием, который описывает последовательность шагов) и activity (функции, которые вызываются из workflow). Фреймворк фиксирурет решения, принятые workflow, и результаты завершённых activity. В случае падения Temporal восстанавливает выполнение, не вызывая уже сделанные activity.
Однако Temporal не умеет в стриминг, а агенту было бы хорошо выдавать ответы пользователю по мере их получения. К тому же агенты, написанные на Temporal, привязываются к Temporal SDK, что может быть не слишком удобно в случае «переезда» в будущем.
Поэтому Temporal взяли как основу для надёжности, а уже на фреймворке построили центральный сервер платформы — ATS, чьи протоколы и реализуют агенты. ATS также берёт на себя, например, оркестрацию и транспортировку данных и событий между агентами, тулами и моделями на разных хостах. В итоге схема работы выглядит так:
1. Клиент отправляет запрос в ATS.
2. ATS делает запрос в Temporal на запуск workflow. Temporal запускает workflow.
3. Workflow делает запрос в Temporal на запуск activity корневого агента. Temporal запускает activity корневого агента.
4. Activity корневого агента поднимает двунаправленный gRPC-стрим к сервису агента.
5. Если агенту нужно вызвать модель / инструмент / дочернего агента — он просит ATS, ATS сообщает workflow о необходимости запустить activity (signal/update).
6. Workflow запускает соответствующую activity.
7. Activity поднимает двунаправленный gRPC-стрим к сервису.
8. Все activity одного workflow общаются между собой через in-memory-очереди от дочернего activity к родительскому — так чанки данных передаются в реальном времени.
9. Корневой агент пишет свои чанки во внешний стриминговый сервис — пользователь видит ответ по мере выполнения.
10. Завершённые activity возвращают результаты workflow — Temporal сохраняет их.
В случае сбоя ATS начинает взаимодействовать с агентом заново. Когда агент просит вызвать инструмент, модель или дочернего агента, ATS проверяет, есть ли в хранилище какой-то результат работы по этому запросу с прошлого раза. Если да, то агент получает результат и шаг за шагом «перематывается вперёд» до состояния, в котором он был до сбоя, без повторных вызовов тяжёлых LLM и инструментов.
А подробнее о том, как всё устроено, читайте на Хабре.
ML Underhood
Агент «Исследовать», о котором мы писали ранее, должен быть устойчивым к непредвиденным ситуациям. Собственно, исследование — процесс комплексный, требующий проанализировать несколько источников, вызвать разные инструменты и запустить модели. Если где-то что-то упадёт, то всё придется начинать сначала. Чтобы этого не происходило, в Яндексе использовали платформу Agent Transport System (ATS). О ней на Хабре рассказал Алексей Логинов, ведущий разработчик в команде, которая отвечает за инфраструктуру Алисы AI. Кратко выделим главное.
Сперва агентский режим ассистента реализовали на OpenAI Agents SDK. Это работало, но стейты выполнения хранились локально, а при любых сбоях приходилось начинать всё заново. Нужно было найти такое решение, которое позволяло бы продолжать работу именно из состояния до падения. Кроме того, хорошо бы иметь под капотом распределённое выполнение, чтобы агенты и тулы взаимодействовали друг с другом, находясь на разных хостах.
Для построения отказоустойчивых систем хорошо подходит фреймворк Temporal. Он оперирует двумя типами сущностей: workflow (объект с состоянием, который описывает последовательность шагов) и activity (функции, которые вызываются из workflow). Фреймворк фиксирурет решения, принятые workflow, и результаты завершённых activity. В случае падения Temporal восстанавливает выполнение, не вызывая уже сделанные activity.
Однако Temporal не умеет в стриминг, а агенту было бы хорошо выдавать ответы пользователю по мере их получения. К тому же агенты, написанные на Temporal, привязываются к Temporal SDK, что может быть не слишком удобно в случае «переезда» в будущем.
Поэтому Temporal взяли как основу для надёжности, а уже на фреймворке построили центральный сервер платформы — ATS, чьи протоколы и реализуют агенты. ATS также берёт на себя, например, оркестрацию и транспортировку данных и событий между агентами, тулами и моделями на разных хостах. В итоге схема работы выглядит так:
1. Клиент отправляет запрос в ATS.
2. ATS делает запрос в Temporal на запуск workflow. Temporal запускает workflow.
3. Workflow делает запрос в Temporal на запуск activity корневого агента. Temporal запускает activity корневого агента.
4. Activity корневого агента поднимает двунаправленный gRPC-стрим к сервису агента.
5. Если агенту нужно вызвать модель / инструмент / дочернего агента — он просит ATS, ATS сообщает workflow о необходимости запустить activity (signal/update).
6. Workflow запускает соответствующую activity.
7. Activity поднимает двунаправленный gRPC-стрим к сервису.
8. Все activity одного workflow общаются между собой через in-memory-очереди от дочернего activity к родительскому — так чанки данных передаются в реальном времени.
9. Корневой агент пишет свои чанки во внешний стриминговый сервис — пользователь видит ответ по мере выполнения.
10. Завершённые activity возвращают результаты workflow — Temporal сохраняет их.
В случае сбоя ATS начинает взаимодействовать с агентом заново. Когда агент просит вызвать инструмент, модель или дочернего агента, ATS проверяет, есть ли в хранилище какой-то результат работы по этому запросу с прошлого раза. Если да, то агент получает результат и шаг за шагом «перематывается вперёд» до состояния, в котором он был до сбоя, без повторных вызовов тяжёлых LLM и инструментов.
А подробнее о том, как всё устроено, читайте на Хабре.
ML Underhood
❤11🔥10👏5👍3❤🔥2🤝2🤮1
Хотите лучше разбираться, как развивается машинное обучение сегодня? Собрали каналы от инженеров Яндекса — с фокусом на практику, исследования и реальные задачи.
👩💻 ML Underhood — чем живёт ML в Яндексе.
🧠 Душный NLP — детальные NLP-разборы.
🔍 CV Time — всё вокруг компьютерного зрения.
🔮 Рекомендательная — обзоры новых рекомендательных технологий.
🎙 Speech Info — голосовые технологии: ASR, TTS и аудио.
🚗 404 Driver Not Found — ML в автономном транспорте.
Подписывайтесь на каналы, которые вам ближе, чтобы понимать не только «что происходит», но и «как это работает».
Подписывайтесь на каналы, которые вам ближе, чтобы понимать не только «что происходит», но и «как это работает».
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤8⚡6
Muon — мощный оптимизатор для обучения табличных DL-моделей
К такому выводу пришла tabular DL-команда Yandex Research, сравнив 15 оптимизаторов на 17 табличных датасетах для обучения современных моделей на основе архитектуры MLP. Сперва все оптимизаторы сравнивались для стандартных MLP, а затем лучшие варианты протестировали и на более продвинутых моделях вроде TabM.
В качестве референсного бейзлайна выступал широко распространённый оптимизатор AdamW. Сравнивали и вариации последнего: NAdamW, Cautious AdamW, AdEMAMix и другие. Кроме того, тестированию подверглись SOAP и Muon.
Самые высокие результаты показали Muon и AdamW с экспоненциальным скользящим средним (EMA) — эти методы обошли базовый AdamW более чем в половине датасетов. Добавление EMA к Muon может бустить качество на некоторых задачах, но в целом ванильный Muon более надежный.
Что в итоге? Muon показывает отличные результаты и рекомендуется к использованию как для базовых, так и для продвинутых моделей, а AdamW с EMA может быть неплохой альтернативой для более простых архитектур. Использование обоих оптимизаторов несколько замедляет обучение по сравнению с обычным AdamW, но всё зависит от модели. Вероятно, замедление будет допустимым во многих реальных приложениях.
ML Underhood
К такому выводу пришла tabular DL-команда Yandex Research, сравнив 15 оптимизаторов на 17 табличных датасетах для обучения современных моделей на основе архитектуры MLP. Сперва все оптимизаторы сравнивались для стандартных MLP, а затем лучшие варианты протестировали и на более продвинутых моделях вроде TabM.
В качестве референсного бейзлайна выступал широко распространённый оптимизатор AdamW. Сравнивали и вариации последнего: NAdamW, Cautious AdamW, AdEMAMix и другие. Кроме того, тестированию подверглись SOAP и Muon.
Самые высокие результаты показали Muon и AdamW с экспоненциальным скользящим средним (EMA) — эти методы обошли базовый AdamW более чем в половине датасетов. Добавление EMA к Muon может бустить качество на некоторых задачах, но в целом ванильный Muon более надежный.
Что в итоге? Muon показывает отличные результаты и рекомендуется к использованию как для базовых, так и для продвинутых моделей, а AdamW с EMA может быть неплохой альтернативой для более простых архитектур. Использование обоих оптимизаторов несколько замедляет обучение по сравнению с обычным AdamW, но всё зависит от модели. Вероятно, замедление будет допустимым во многих реальных приложениях.
ML Underhood
❤🔥20🔥11❤9👍2
ICLR 2026 стартует уже завтра 🇧🇷
Olá, amigos! Кто-то из наших инженеров уже любуется красотами Бразилии и считает диких обезьян, а кто-то ещё в многочасовом перелёте с кучей пересадок. Но всё это того стоит — впереди ICLR 2026.
Совсем скоро начнём вещать из Рио во всех наших каналах, а пока несём первые фото и впечатления.
Иван Ершов, руководитель команды LLM-агентов Алисы:
Данил Кашин, руководитель команды претрейна VLM:
Вилиана Девбунова, разработчик службы технологий голосового ввода:
#YaICLR26
ML Underhood
Olá, amigos! Кто-то из наших инженеров уже любуется красотами Бразилии и считает диких обезьян, а кто-то ещё в многочасовом перелёте с кучей пересадок. Но всё это того стоит — впереди ICLR 2026.
Совсем скоро начнём вещать из Рио во всех наших каналах, а пока несём первые фото и впечатления.
Иван Ершов, руководитель команды LLM-агентов Алисы:
Рио — яркий, красочный, зелёный, громкий. Я впервые перелетел Атлантику, соответственно впервые в Латинской Америке. Природа, постройки, люди сильно отличаются от того, что я привык видеть в Европе.
Поражает количество зелени, разнообразие деревьев, птиц, животных. На первой же прогулке с коллегами было ощущение, что улица — «бесплатный зоопарк»: обезьяны, маракуйя, папайя. При всём обилии зелени город выглядит аккуратным и убранным.
Люди в основном говорят на португальском — даже в аэропорту пришлось объясняться жестами. Мне пока больше помогает знание итальянского, чем английского.
Данил Кашин, руководитель команды претрейна VLM:
Пережив 14-часовой перелёт, добрались до Рио. Погода замечательная, красивые виды. Сейчас боремся с джетлагом и изучаем расписание оралов и постеров, чтобы собрать всё самое интересное и поделиться этим в каналах!
Вилиана Девбунова, разработчик службы технологий голосового ввода:
Очень заметен контраст: едешь по городу и в какой-то момент оказываешься рядом с горами, плотно усыпанными простыми домами — так называемыми фавелами. По застройке Копакабана похожа на Анталью.
Фан-факт: я уже проехала по Рио больше 60 км и не увидела ни одного спортивного мотоцикла — в основном все ездят на нейкедах с узкими кастомными рулями.
#YaICLR26
ML Underhood
❤22❤🔥13🔥12👍2
Инженеры и исследователи Яндекса — уже на открытии ICLR 2026 в Рио
В Бразилии стартовала она — 14-я конференция International Conference on Learning Representations. В этом году на ICLR приняли больше 5 тысяч статей (из почти 19 тысяч заявленных), что в полтора-два раза больше, чем в предыдущие годы.
В первый день конференции удача была на нашей стороне: ребятам удалось попасть в окно между очередями на получение бейджей — и на всё ушло не больше пяти минут. Так что они уже успели посетить первые постеры и послушать доклады.
Напоминаем, что представим и свои исследования: привезли шесть статей от Yandex Research на основную программу и ещё одну — на воркшоп ICBINB. Ждём фоторепортажей с постеров!
#YaICLR26
ML Underhood
В Бразилии стартовала она — 14-я конференция International Conference on Learning Representations. В этом году на ICLR приняли больше 5 тысяч статей (из почти 19 тысяч заявленных), что в полтора-два раза больше, чем в предыдущие годы.
В первый день конференции удача была на нашей стороне: ребятам удалось попасть в окно между очередями на получение бейджей — и на всё ушло не больше пяти минут. Так что они уже успели посетить первые постеры и послушать доклады.
Напоминаем, что представим и свои исследования: привезли шесть статей от Yandex Research на основную программу и ещё одну — на воркшоп ICBINB. Ждём фоторепортажей с постеров!
#YaICLR26
ML Underhood
❤22❤🔥7🔥5👏2👍1🤩1
Ну какая конфа без забавных постеров и слайдов?
Нынешняя ICLR тоже без них не обходится. Вот они, слева направо:
1. Большой постер.
2. Постер поменбше.
3. Совсем маленький постер.
4. Продам гараж ICLR Edition.
5. Продам гараж ICLR Edition 2.
#YaICLR26
ML Underhood
Нынешняя ICLR тоже без них не обходится. Вот они, слева направо:
1. Большой постер.
2. Постер поменбше.
3. Совсем маленький постер.
4. Продам гараж ICLR Edition.
5. Продам гараж ICLR Edition 2.
#YaICLR26
ML Underhood
❤16😁16👍3❤🔥1