Проблема «рецепта брауни» и почему большим языковым моделям необходим детальный контекст для выдачи результатов в реальном времени
Современные языковые модели (LLM) прекрасно справляются с логическим выводом, но всё еще могут испытывать трудности с контекстом. Особенно это актуально для систем заказов в реальном времени, таких как Instacart.
Технический директор Instacart Анирбан Кунду называет это «проблемой рецепта брауни».
Всё не так просто, как сказать языковой модели: «Я хочу приготовить брауни». Чтобы действительно помогать при планировании еды, модель должна выйти за рамки этой простой директивы и понять, что есть в наличии на рынке пользователя с учетом его предпочтений (скажем, органические яйца против обычных), и учесть это в контексте возможности доставки по его географическому адресу, чтобы продукты не испортились. И это помимо множества других критических факторов.
Для Instacart задача заключается в том, чтобы сбалансировать задержку (latency) и нужный объем контекста для обеспечения бесперебойного взаимодействия, в идеале — менее чем за одну секунду.
«Если само рассуждение занимает 15 секунд, и если каждое взаимодействие происходит так медленно, вы потеряете пользователя», — заявил Кунду на мероприятии AI Impact, организованном VentureBeat.
Сочетание логического вывода, реального состояния дел и персонализации
В сфере доставки продуктов существует «мир рассуждений» и «мир состояний» (то, что доступно в реальном мире), отметил Кунду, и оба они должны пониматься языковой моделью наряду с пользовательскими предпочтениями. Но это не так просто, как загрузить всю историю покупок пользователя и известные интересы в модель рассуждений.
«Ваша LLM раздуется до таких размеров, что станет неуправляемой», — сказал Кунду.
Чтобы обойти это ограничение, Instacart разбивает обработку на части. Сначала данные передаются в крупную базовую модель, способную понимать намерение и классифицировать продукты. Затем эти обработанные данные направляются в малые языковые модели (SLM), предназначенные для работы с контекстом каталога (виды еды или другие товары, которые сочетаются друг с другом) и семантического понимания.
Что касается контекста каталога, SLM должна уметь обрабатывать несколько уровней деталей как самого заказа, так и различных товаров. Например, какие продукты сочетаются друг с другом и каковы их актуальные замены, если первый вариант отсутствует на складе? Такие замены «очень, очень важны» для такой компании, как Instacart, где, по словам Кунду, «в двузначном числе случаев» товар оказывается недоступен на местном рынке.
Говоря о семантическом понимании: предположим, покупатель хочет приобрести полезные перекусы для детей. Модель должна понимать, что такое полезный перекус и какие продукты подходят для 8-летнего ребенка и привлекательны для него, а затем определить соответствующие товары. И когда эти конкретные продукты недоступны на определенном рынке, модель должна также найти связанные подмножества товаров.
Затем идет логистический элемент. Например, такое изделие, как мороженое, быстро тает, да и замороженные овощи плохо переносят пребывание при более высоких температурах. Модель должна обладать этим контекстом и рассчитать приемлемое время доставки.
«Таким образом, у вас есть понимание намерений, у вас есть классификация, а затем есть еще одна часть, касающаяся логистики: как именно это осуществить?», — отметил Кунду.
Избегание «монолитных» систем агентов
Как и многие другие компании, Instacart экспериментирует с ИИ-агентами, обнаружив, что комбинация агентов работает лучше, чем «единый монолит», выполняющий множество различных задач. Философия Unix, предполагающая модульную операционную систему с более мелкими специализированными инструментами, помогает решать проблемы с различными платежными системами, у которых бывают разные типы сбоев, пояснил Кунду.
«Создавать всё это в рамках единой среды было крайне громоздко», — сказал он. Более того, агенты на бэкенде взаимодействуют со множеством сторонних платформ, включая системы торговых терминалов (POS) и каталогов. Естественно, не все они ведут себя одинаково; одни надежнее других, у них разные интервалы обновлений и потоки данных.
«Поэтому для эффективной работы со всеми этими аспектами мы выбрали путь микроагентов, а не агентов крупного масштаба», — рассказал Кунду.
Для управления агентами Instacart интегрировала протокол контекста моделей (MCP) от OpenAI, который стандартизирует и упрощает процесс подключения ИИ-моделей к различным инструментам и источникам данных.
Компания также использует открытый стандарт Google Universal Commerce Protocol (UCP), который позволяет ИИ-агентам напрямую взаимодействовать с торговыми системами.
Тем не менее, команда Кунду все еще сталкивается с трудностями. Как он отметил, дело не столько в том, возможна ли интеграция, сколько в том, насколько надежно ведут себя эти интеграции и насколько хорошо они понятны пользователям. Обнаружение (discovery) может быть сложным процессом — не только в плане определения доступных сервисов, но и понимания того, какие из них подходят для какой задачи.
Instacart пришлось внедрять MCP и UCP в «самых разных» сценариях, и самые большие проблемы, с которыми они столкнулись, связаны с режимами сбоев и задержками, отметил Кунду. «Время отклика и понимание обеих этих служб очень, очень отличаются; я бы сказал, что мы тратим, пожалуй, две трети времени на исправление этих ошибочных сценариев».



