Przetłumaczono z angielskiego oryginału. Liczby i źródła pozostają bez zmian. Przeczytaj angielski oryginał
Instacart
Instacart używa dużych modeli językowych, w tym dostrojonego Llama-3-8B, by rozumieć rzadkie wyszukiwania produktów spożywczych
Instacart zastąpił kilka starszych modeli intencji wyszukiwania dużymi modelami językowymi. Przy rzadkich, nietypowo sformułowanych zapytaniach dostrojony model z otwartymi wagami Llama-3-8B zmniejszył średnią głębokość przewijania o 6 %, a liczbę skarg na te wyniki o 50 %, według bloga inżynieryjnego Instacart.
Kluczowe liczby
Przepisane dokładnie ze źródeł. Skopiuj każdą liczbę wraz z przypisem.
6 %
Spadek średniej głębokości przewijania dla rzadkich zapytań (długi ogon) po nowym tagowaniu modelami językowymi, według testu A/B1
50 %
Spadek skarg użytkowników na słabe wyniki wyszukiwania dla rzadkich zapytań1
ponad 95 %, przy ponad 90 % precyzji
Pokrycie przeformułowań zapytań w podejściu opartym na modelach językowych, dla trzech rodzajów przeformułowań1
50 %
Pokrycie przeformułowań zapytań w dawnym systemie, jako udział w ruchu wyszukiwania1
Ile to kosztowało
Problem
Gdy klienci szukają w Instacart, wpisują na przykład "bread no gluten" (tłumaczenie: "chleb bez glutenu"). Firma nazywa rozumienie takich zapytań query understanding. Przez lata korzystała z osobnych modeli uczenia maszynowego do każdego zadania. Rzadkie wyszukiwania sprawiały im trudność, bo brakowało historii kliknięć, z której mogłyby się uczyć. Stary system przeformułowań obejmował ponadto tylko około połowy ruchu wyszukiwania. Wiele osobnych systemów spowalniało rozwój.
Co zbudowano
Instacart przeniósł rozumienie zapytań na duże modele językowe (LLM) w trzech zadaniach. Pierwszy przypisuje zapytanie do drzewa kategorii katalogu produktów. Drugi przeformułowuje je na zamienniki, szersze wyszukiwania lub synonimy. Trzeci oznacza części zapytania, takie jak produkt, marka i cechy.
Do tagowania Instacart zbudował system dwuczęściowy. Duży model pracuje offline na częstych zapytaniach i zapisuje zweryfikowane odpowiedzi w pamięci podręcznej. Rzadkie zapytania trafiają do małego modelu, dostrojonego Llama-3-8B. Otwarte wagi (open weight) oznaczają, że pliki modelu są opublikowane, więc firma może go dostosować i samodzielnie hostować.
Jak to zrobiono
Instacart wprowadza do promptów własne dane: historię zakupów i szczegóły katalogu. Ta technika nazywa się generowaniem wspomaganym wyszukiwaniem (retrieval-augmented generation). Po odpowiedzi modelu kontrole względem katalogu produktów usuwają wyniki wymyślone lub nietrafione. Odpowiedzi modelu offline posłużyły też jako dane treningowe dla małego modelu, który w ten sposób nauczył się naśladować większy.
Największą przeszkodą była szybkość. W ustawieniach fabrycznych mały model potrzebował blisko 700 ms na procesorach graficznych A100. Scalenie warstwy dostrajającej z modelem bazowym i przejście na procesory graficzne H100 pozwoliły osiągnąć cel 300 ms. Zespół przetestował konfigurację o niższej precyzji obliczeń, szybszą o około 10 %, ale nieznacznie pogarszającą czułość (recall), i z niej nie skorzystał. Dodał też automatyczne skalowanie, dzięki czemu w spokojnych godzinach działa mniej procesorów graficznych.
Wyniki
Instacart podaje, że mały model dorównuje znacznie większemu: precyzja 96,4 % wobec 95,4 %, nieco niższa czułość i podobny wynik F1. W testach A/B tagowanie rzadkich zapytań zmniejszyło średnią głębokość przewijania o 6 %, więc klienci szybciej znajdowali produkty. Instacart podaje, że system działa produkcyjnie, obsługuje co tydzień miliony zapytań typu cold start i o 50 % zmniejszył liczbę skarg na słabe wyniki rzadkich zapytań. Przeformułowania z użyciem modeli językowych podniosły pokrycie powyżej 95 % przy ponad 90 % precyzji.
Co warto powtórzyć
Warto używać dużych modeli do przygotowania danych i odpowiedzi offline, a długi ogon obsługiwać małym, dostrojonym modelem.
Wszystkie zgłoszone liczby
| Miara | Liczba | Przypis |
|---|---|---|
| Spadek średniej głębokości przewijania dla rzadkich zapytań (długi ogon) po nowym tagowaniu modelami językowymi, według testu A/B | 6 %1 | |
| Spadek skarg użytkowników na słabe wyniki wyszukiwania dla rzadkich zapytań | 50 %1 | |
| Pokrycie przeformułowań zapytań w podejściu opartym na modelach językowych, dla trzech rodzajów przeformułowań | ponad 95 %, przy ponad 90 % precyzji1 | |
| Pokrycie przeformułowań zapytań w dawnym systemie, jako udział w ruchu wyszukiwania | 50 %1 | |
| Precyzja dostrojonego modelu 8B w produkcji przy tagowaniu zapytań, na tle znacznie większego modelu bazowego | 96,4 % wobec 95,4 %1 | |
| Zapytania typu cold start obsługiwane przez model działający w czasie rzeczywistym | miliony tygodniowo1 |
Wnioski dla Twojego projektu
Warto skonsolidować systemy przed skalowaniem. Instacart zastąpił osobne modele klasyfikacji i przeformułowań wspólnym podejściem opartym na modelach językowych, które łatwiej utrzymać.
Warto zlecać drogiemu modelowi pracę offline. Instacart zapisał w pamięci podręcznej wyniki dla częstych wyszukiwań, a mały dostrojony model stosował tylko do rzadkich.
Warto dodać biznesowe kontrole wokół modelu. Instacart filtruje wyniki względem katalogu produktów i progu podobieństwa, by usunąć wymyślone odpowiedzi.
Warto ustalić cel dotyczący opóźnienia przed startem. Instacart dobrał zmiany sprzętowe i w dostrajaniu, by osiągnąć około 300 ms, i zrezygnował z szybszej opcji, która obniżała czułość (recall).
Zastrzeżenia
- Wszystkie liczby pochodzą z bloga inżynieryjnego Instacart. Żadne niezależne źródło ich nie potwierdza.
- Strona Instacart blokowała automatyczny dostęp, więc ten przypadek opisano na podstawie archiwalnej kopii wpisu.
- Wymieniono tylko model tagowania w czasie rzeczywistym (Llama-3-8B). Wpis nie podaje modeli stojących za klasyfikacją do kategorii ani za przeformułowaniami.
- Wpis nie podaje daty uruchomienia. Pokazana data wdrożenia to data wpisu.
- Wyniki 6 % i 50 % dotyczą rzadkich zapytań (wpis wskazuje dolne 2 % zapytań), a nie wszystkich wyszukiwań.
- Wpis nie podaje kosztów ani wielkości zespołu.
Źródła
- Building The Intent Engine: How Instacart is Revamping Query Understanding with LLMs
tech-at-instacart (Instacart Engineering) · 2025-11-13 · Blog firmowy · tech.instacart.com
Streszczone własnymi słowami na podstawie powyższych źródeł. Zauważyłeś błąd? Zobacz sprostowania.