DoorDash скоротив затримку ШІ-асистента з 16 до 2 секунд
Раніше Ask DoorDash на кожен запит заново будував список для повторного замовлення продуктів. Тепер історію покупок за 90 днів заздалегідь аналізує пакетний LLM-інференс, результат перевіряють детерміновані правила, а під час запиту система лише звіряє товари з актуальним каталогом. Затримка впала з ~16 до 2 секунд, перегляди списків подвоїлися, замовлення в цьому сценарії зросли приблизно на 34%.
LLM викликають лише там, де треба міркувати, наприклад, щоб знайти дешевшу заміну з урахуванням цін і акцій. Змінити кількість чи прибрати товар можна без звернення до моделі.
Що саме рахують заздалегідь, а що під час запиту
Ask DoorDash — розмовний асистент для покупок. У сценарії повторного замовлення продуктів роботу розділили на дві частини. Офлайн пакетний LLM-інференс обробляє 90 днів історії покупок разом із сигналами профілю клієнта й визначає ймовірні регулярні покупки. Перш ніж зберегти список, результат моделі перевіряють детерміновані правила, тобто звичайна логіка, а не ШІ.
Під час запиту система бере підготовлений список і зіставляє кожну позицію з актуальним каталогом у три кроки:
- спершу шукає той самий товар у тому самому магазині;
- якщо його немає — шукає за ідентифікатором продукту в каталозі;
- наостанок — шукає за пошуковим запитом.
Так список витримує зміни асортименту й відсутність товарів, а історію покупок не аналізують заново на кожен запит.
Ручна правка важливіша за історію розмови
Список покупок тут є структурованим документом, який редагують і клієнт, і агент. В інженерному блозі DoorDash принцип сформульовано так: A consumer’s direct edit is authoritative: the next agent turn starts from the edited list, not from what was said earlier. Отже, наступний крок агента починається з виправленого клієнтом списку, а не з того, що звучало раніше в чаті.
Для офісної роботи висновок такий: якщо людина виправила результат ШІ в таблиці, реєстрі чи чернетці, наступний крок має спиратися на виправлену версію. Якщо модель працює лише з історією переписки, вона може повернути вже відкинутий варіант.
Як перенести прийом у свій процес
У дописі в LinkedIn Twisha Jain з інженерної команди DoorDash пояснює логіку так: кращі агентні системи — не про більше міркувань, а про рішення, що має бути в циклі агента, а що можна зробити заздалегідь. Це особистий коментар, а не офіційна позиція компанії. Покроково це виглядає так:
- відокремте те, що змінюється повільно (історія, типові позиції), від того, що залежить від поточного стану (ціни, залишки, акції);
- повільну частину готуйте пакетно, заздалегідь;
- перевіряйте результат моделі правилами до того, як його збережуть;
- прості дії, як-от змінити кількість чи видалити рядок, виконуйте без моделі;
- модель викликайте там, де треба зважити кілька чинників одночасно.
Для першого розбору можна використати такий промпт: Ось опис нашого процесу: [...]. Розділи кроки на три групи: 1) можна підготувати заздалегідь за історичними даними; 2) залежать від актуальних даних у момент запиту; 3) прості операції, для яких модель не потрібна. Для кожного кроку поясни чому.
Межі прийому й що перевірити
Прийом спирається на повторюваність. Там, де потрібне свіже міркування, DoorDash і далі викликає Grocery-агента в реальному часі. Приклад — пошук дешевшої заміни з урахуванням поточних цін, акцій, розміру упаковки, наявності та вподобань клієнта. Рішення працює на спільній платформі компанії, яка дає оркестрацію, пам'ять, доступ до моделей, трасування, інструменти оцінювання й контроль розгортання. Інструкції, навички, інструменти й критерії оцінки агентів лишаються за профільними командами. За даними DoorDash, агента для бронювань (Reservations) додали за тиждень, приблизно вдесятеро швидше, ніж перших профільних агентів.
Перш ніж довіряти схемі з попереднім розрахунком, перевірте:
- чи стоїть детермінована перевірка між відповіддю моделі й збереженим результатом;
- чи звіряються підготовлені дані з актуальним станом у момент запиту;
- чи є резервний шлях, коли позиції вже немає;
- чи враховує наступний крок ручні правки людини.
Скільки коштує перенесення аналізу в пакетний режим, у матеріалі не вказано.