Agent AI był drogi i wolny. Zmiana kolejności promptu obniżyła koszt o 85%
Moje agenty, trener personalny i nauczyciel języka, potrzebują dużo kontekstu: profilu, historii, zasad i słowników. To często 25 000 do 30 000 tokenów na każde pytanie. Tokeny to jednostki, za które płaci się dostawcy modelu, a model przetwarza je tym dłużej, im jest ich więcej.
Co znalazłem: ten sam tekst liczony od nowa
Dostawcy modeli trzymają w pamięci początek promptu, o ile jest on identyczny za każdym razem. Działa to jak czytanie grubej książki. Jeśli pierwsze sto stron się nie zmienia, nie trzeba ich czytać od nowa.
Problem w tym, że mój prompt zaczynał się od elementów, które się zmieniały. Wystarczyła bieżąca godzina na początku, żeby cała pamięć się unieważniła. Model za każdym razem liczył wszystko od zera.
Dlaczego to ważne
Trener i nauczyciel rozmawiają z użytkownikiem seriami krótkich wiadomości. Każda odpowiedź była wolna i kosztowała tyle, co pierwsza. Przy dłuższej rozmowie rachunek rósł szybko, a użytkownik czekał kilka sekund na każdą odpowiedź.
Jak to zrobiłem
Ułożyłem prompt w cztery warstwy, od najbardziej stałych do najbardziej zmiennych:
- Tożsamość i narzędzia. Zasady agenta i lista narzędzi, posortowana tak samo za każdym razem.
- Wiedza domenowa. Materiały, które zmieniają się rzadko.
- Stan obecny. Na przykład bieżące obciążenia albo otwarte wątki. Zmienia się raz dziennie.
- Rozmowa. Bieżąca godzina, ostatnie wiadomości i nowe pliki. To zawsze idzie na sam koniec.
Wyniki po wdrożeniu, z logów produkcyjnych:
- trafienia w pamięci wzrosły z około 15% do ponad 90%,
- koszt jednego kroku spadł z około 0,0095 $ do około 0,0012 $,
- czas do pierwszego słowa odpowiedzi skrócił się z 3,8 s do 0,7 s.
Analiza pliku treningowego z zegarka kosztuje teraz około 0,0013 $, a lekcja hiszpańskiego z kilkudziesięcioma wiadomościami przebiega płynnie.
Czego się nauczyłem
- Dynamiczne elementy zawsze na koniec. Nawet drobna zmiana na początku niszczy cały wynik.
- Podział kontekstu według tego, jak często się zmienia, to najprostszy sposób na tańsze i szybsze agenty.
- Prawdziwy agent to rozmowa, a nie tylko wczytany plik. Najwięcej dało mi pytanie zwrotne do użytkownika i zapisywanie wniosków.