Modele językowe generujące odpowiedzi (na przykład ChatGPT) czasami w celu wygenerowania lepszych odpowiedzi potrzebują kilku przykładów (few-shot). A w niektórych są w stanie rozwiązać problem bez żadnego przykładu (zero-shot).
Zero-shot
Jest pewna pula zadań/pytań na które modele językowe są w stanie odpowiedzieć bez dostarczania im przykładów jak rozwiązać zadań/odpowiedzieć na pytanie. Przykładowo prosząc model o obliczenie działań matematycznych:
3 + 4 =
Otrzymamy odpowiedź zbliżoną do:
7
Few-shot
Okazuje się, że są pewne niszowe zadania, których modele nie są w stanie rozwiązać bez przykładów (trochę jak z człowiekiem 😉 ). Aby model był w stanie udzielić sensownej odpowiedzi należy mu dostarczyć kilka przykładów.
Załóżmy, że jesteśmy innowatorami i wprowadzamy nowy operator matematyczny NOWY_OPERATOR_SUMY – dodaje on dwa argumenty oraz dodaje do rezultatu wartość jeden:
NORMALNE DODAWANIE(SUMA):
3 + 4 = 7
2 + 4 = 6
NOWY OPERATOR:
3 NOWY_OPERATOR_SUMY 4 = 8
2 NOWY_OPERATOR_SUMY 4 = 7
Większość modeli językowych nie zna naszego nowego operatora, więc prośba o obliczenie wyniku skończy się fiaskiem:
3 NOWY_OPERATOR_SUMY 4 =
W odpowiedzi dostaniemy tekst mówiący o tym, że model nie zna operatora NOWY_OPERATOR_SUMY, coś w stylu:
Wygląda na to, że "NOWY_OPERATOR_SUMY" jest jakimś nowym operatorem lub działaniem. Bez dokładnej informacji na temat tego, co reprezentuje "NOWY_OPERATOR_SUMY", niemożliwe jest dokładne obliczenie wyrażenia "3 NOWY_OPERATOR_SUMY 4"
I tutaj do gry wchodzi dostarczanie przykładów (im więcej tym lepiej). Czyli możemy teraz wysłać do modelu takie zapytanie (zawierające przykłady):
3 NOWY_OPERATOR_SUMY 3 = 7
5 NOWY_OPERATOR_SUMY 5 = 11
1 NOWY_OPERATOR_SUMY 1 = 3
7 NOWY_OPERATOR_SUMY 7 = 14
2 NOWY_OPERATOR_SUMY 5 = 8
4 NOWY_OPERATOR_SUMY 4 =
Przy takiej ilości przykładów, przykładowo model ChatGPT w wersji 3.5 był w stanie znaleźć regułę i podać wynik:
Wygląda na to, że wzór polega na dodaniu obu liczb i dodaniu do tego wyniku pewnej wartości dodatkowej. Analizując te równania, wydaje się, że dodawana wartość wynosi 1. Przykładowo:
3+3+1=7
5+5+1=11
[...]
Zgodnie z wywnioskowanym wzorcem,
4 NOWY_OPERATOR_SUMY4=9
