Ktoś zapytał, jak i kiedy przyjmować popularny lek przeciwdepresyjny, przed jedzeniem czy po, i co on zawiera. Zapytał po rosyjsku. Interfejs był po turecku. Silnik w trybie Auto odpowiedział szablonową odmową — po angielsku. Poproszony o odpowiedź po rosyjsku, odmówił ponownie, tym razem po rosyjsku. Minutę później czat został usunięty. Każdy inny asystent odpowiada na takie pytanie, i ta osoba miała prawo oczekiwać tego samego.
Jedna usunięta rozmowa, cztery usterki.
Informacja to nie porada
Do czego służy lek, jak się go przyjmuje, co zawiera, czy wymaga recepty — to treść ulotki, publiczna i udokumentowana. System prompt mówi to teraz wprost: odpowiadać, dodając jedną linijkę kierującą do specjalisty w sprawie osobistej decyzji, i nadal odmawiać w sprawach, w których trzeba odmówić — przedawkowanie, samookaleczenie, sposoby na obejście recepty. Poszerzenie tego, na co się odpowiada, nie poszerzyło tego, co jest dozwolone; nazwało ciszę pośrodku, w której mały model wymyślał własną politykę.
Odmowa też jest odpowiedzią
Reguła, według której odpowiedzi podążają za językiem wiadomości, była umieszczona daleko od końca długiego promptu, a szablon odmowy to odpowiedź najbardziej narażona na jej pominięcie. Reguła jest teraz powtórzona tam, gdzie model czyta na końcu, a język interfejsu jest tylko rozstrzygnięciem dla gołej liczby lub linku. Pytanie po rosyjsku na tureckim ekranie otrzymuje odpowiedź po rosyjsku — i odmowę po rosyjsku, jeśli do tego dojdzie.
Pod spodem była głębsza przyczyna. Część serwera, która strumieniuje odpowiedź, działa oderwana od żądania, a kultura (język) żądania tam nie docierała — więc każda strumieniowana tura działała w języku samego serwera, a dwadzieścia kilka komunikatów systemowych, jakie może wygenerować strumień, też wychodziło w nim. Kultura jest teraz przechwytywana na starcie i ponownie stosowana wewnątrz executora. Każdy klient strumieniujący, w webie i na telefonie, wysyła też teraz swój język razem z żądaniem — wcześniej nie robiły tego trzy z czterech.
Pusta odpowiedź to awaria z lepszym kodem statusu
Jeden silnik czasem zwracał ukończoną odpowiedź, w której nic nie było. Aplikacja odczytywała to jako czyste zakończenie tury i pokazywała zastępczy komunikat, że narzędzia zakończyły działanie. Teraz jest to traktowane jak każda inna awaria przed pierwszym tokenem: w trybie Auto turę przejmuje inny silnik; przy wyraźnym wyborze widzisz uczciwy, zlokalizowany błąd. Silniki, które robiły to najczęściej, opuściły pulę Auto — ten sam test, który wcześniej latem usunął całą klasę modeli, zastosowany do tych samych dowodów.
Nie ma „potem”
„Wyślę to za kilka minut” to coś, co może powiedzieć człowiek. Tura czatu nie może: to, co nie powstanie teraz, nigdy się nie pojawi, a obietnica to awaria w grzecznym zdaniu. Odpowiedzi, które obiecywały „potem”, są teraz ponawiane, aż dostarczą to w tej samej turze, we wszystkich dwudziestu dziewięciu językach, jakimi mówi aplikacja, oraz w dymku asystenta tak samo jak w czacie.
Żadna z tych zmian nie jest ulepszeniem modelu. To „hydraulika” wokół modelu, sprawiająca, że dotrzymuje on obietnic, które interfejs już składa.