Zero-shot prompting polega na proszeniu modelu o wykonanie zadania na podstawie samej instrukcji, bez pokazywania mu przykładów oczekiwanej odpowiedzi. "Przetłumacz ten akapit na angielski" i "Streść tego e-maila w dwóch zdaniach" to prompty zero-shot. To domyślny sposób, w jaki ludzie korzystają z modeli czatowych, i przy typowych zadaniach zwykle niczego więcej nie potrzeba.
Co znaczy zero-shot
W uczeniu maszynowym "shot" to rozwiązany przykład. Te terminy są starsze niż modele czatowe, ale ich znaczenie w promptowaniu spopularyzowała praca Browna i in. z 2020 roku, "Language Models are Few-Shot Learners", która testowała GPT-3 w trzech ustawieniach: opis zadania z zerem, jedną albo kilkoma demonstracjami w prompcie, w żadnym bez ponownego trenowania. Dla tamtego modelu kilka przykładów zwykle wygrywało z brakiem przykładów.
Od tamtej pory modele czatowe są intensywnie trenowane w wykonywaniu instrukcji i dlatego zwykła prośba działa dziś tak dobrze. Prompt zero-shot to dokładnie sytuacja, do której je trenowano: ktoś opisuje pracę słowami i oczekuje, że zostanie wykonana.
Zero-shot nie oznacza zera kontekstu. Dobry prompt zero-shot nadal określa odbiorcę, zawiera wklejone dane wejściowe i opisuje format oraz ograniczenia. Pomija tylko gotowy przykład odpowiedzi.
Dobrze napisany prompt zero-shot
Poniższy prompt wyciąga zadania do wykonania z notatek ze spotkania bez żadnego przykładu odpowiedzi, tylko z jej precyzyjnym opisem. Wyłączaj części, żeby zobaczyć, które linie wykonują pracę.
Spotkanie sprintowe, wtorek
Priya naprawi timeout logowania przed piątkiem.
Dyskusja o przejściu na nowego dostawcę CI, bez decyzji.
Tom pisze informacje o wydaniu 2.4.
Ktoś powinien zaktualizować dokument wdrożeniowy.
Lena: przejrzę notatki Toma do czwartku.Priya: Napraw timeout logowania (przed piątkiem) Tom: Napisz informacje o wydaniu 2.4 Nieprzypisane: Zaktualizuj dokument wdrożeniowy Lena: Przejrzyj informacje o wydaniu od Toma (do czwartku)
Linia z formatem wykonuje pracę, którą wykonałby przykład: rozpisuje dokładny kształt każdej linii, więc nie ma czego kopiować. Wyłącz ją, a odpowiedź sama wybierze kształt, często listę punktowaną z pogrubionymi imionami, która dobrze się czyta, ale nie wkleja się już czysto do systemu zadań. Wyłącz ograniczenia, a dyskusja o CI może pojawić się jako zadanie, bo nic nie powiedziało modelowi, że nierozstrzygnięte tematy się nie liczą.
Kiedy zero-shot wystarcza
Zero-shot działa, gdy model może wszystko wywnioskować z twoich słów:
- Zadanie jest typowe. Streszczanie, tłumaczenie, wyjaśnianie, poprawianie gramatyki i pisanie funkcji według jasnej specyfikacji to zadania, które model widział podczas treningu niezliczoną ilość razy.
- Potrafisz dokładnie opisać odpowiedź. "Jedna linia na zadanie, najpierw osoba odpowiedzialna" jest tak samo jasne jak przykład. Jak opisywać formaty, które przeczyta program, pokazuje structured output.
- Kategorie znaczą to, co mówią. Podział opinii na pozytywne i negatywne zwykle nie wymaga przykładów, bo te etykiety znaczą to samo dla niemal wszystkich.
Kiedy zamiast tego dodać przykłady
Niektóre rzeczy trudno ująć w słowa i właśnie tam prompty zero-shot zaczynają chybiać:
- Twoje własne granice. Jeśli twój zespół wsparcia klasyfikuje "nie mogę się zalogować" jako problem z kontem, a nie błąd, model nie może tego wiedzieć. Wybierze interpretację, którą wybrałaby większość ludzi.
- Firmowy styl. Opisy commitów twojego zespołu albo ton twojego newslettera łatwiej pokazać niż opisać.
- Powtarzające się prawie trafienia. Jeśli instrukcja była już dwa razy przeformułowana, a odpowiedź wciąż mija się z celem w ten sam sposób, przestań przeformułowywać i pokaż dwie albo trzy poprawne odpowiedzi.
To jest few-shot prompting. Rozsądny nawyk to zacząć od zero-shot, obejrzeć, co wraca, i dodać przykłady tylko dla tej konkretnej rzeczy, w której model się myli.
Zero-shot chain of thought
Kojima i in. w pracy z 2022 roku, "Large Language Models are Zero-Shot Reasoners", odkryli, że dodanie jednego zdania, "Pomyślmy krok po kroku" (Let's think step by step), wyraźnie poprawiało wyniki dużych modeli w zadaniach arytmetycznych, symbolicznych i logicznych, bez żadnych przykładów. To zdanie sprawia, że model rozpisuje kroki pośrednie przed odpowiedzią, a każdy napisany krok staje się kontekstem dla następnego. Ich metoda używała dwóch wywołań: pierwsze generowało rozumowanie, a drugie prosiło o końcową odpowiedź.
W poniższym bloku pierwsza zakładka wymusza natychmiastową odpowiedź, a druga daje modelowi miejsce na pracę.
12:40
Pierwsza odpowiedź pominęła 10 minut nadrobionych przez pociąg: to rodzaj pomyłki, która zdarza się, gdy model musi się zobowiązać do odpowiedzi w pierwszych kilku tokenach. Obecny model może rozwiązać to zadanie poprawnie w obu wersjach; różnica rośnie z liczbą kroków w problemie. Druga wersja ma jeszcze jedną zaletę: każdy krok jest widoczny, więc widać, gdzie odpowiedź poszła w złą stronę.
Modele, które rozumują wewnętrznie przed odpowiedzią, wykonują tę pracę bez proszenia, więc "Pomyślmy krok po kroku" dodaje im niewiele poza dłuższą odpowiedzią. Chain of thought prompting opisuje tę technikę szczegółowo, łącznie z wersją few-shot.
Zero-shot a few-shot w skrócie
| Zero-shot | Few-shot | |
|---|---|---|
| Co zawiera prompt | Instrukcje, kontekst i dane wejściowe | To samo plus kilka par wejścia i odpowiedzi |
| Najlepszy do | Typowych zadań z łatwą do opisania odpowiedzią | Własnych etykiet, nietypowych formatów, firmowego stylu |
| Koszt | Krótki prompt | Dłuższy prompt, więcej tokenów na wywołanie |
| Typowa porażka | Wybiera najczęstszą interpretację, a nie twoją | Kopiuje przypadkowe wzorce z przykładów |
Najczęściej zadawane pytania
Czym jest zero-shot prompting?
Zero-shot prompting to zlecanie modelowi językowemu zadania za pomocą samych instrukcji, bez rozwiązanych przykładów odpowiedzi. "Streść tego e-maila w dwóch zdaniach" to prompt zero-shot. Współczesne modele czatowe są trenowane do wykonywania instrukcji, więc prompty zero-shot dobrze radzą sobie z większością codziennych zadań.
Czym zero-shot prompting różni się od few-shot prompting?
Prompt zero-shot opisuje zadanie słowami. Prompt few-shot dodaje kilka przykładów, z których każdy to dane wejściowe w parze z oczekiwaną odpowiedzią, żeby model mógł skopiować wzorzec. Zacznij od zero-shot; przejdź na few-shot, gdy odpowiedź ciągle mija się z formatem albo rozróżnieniem, które łatwiej pokazać niż opisać.
Skąd nazwa zero-shot?
W uczeniu maszynowym "shot" to rozwiązany przykład. Praca Browna i in. z 2020 roku o GPT-3, "Language Models are Few-Shot Learners", testowała model z zerem, jedną albo kilkoma demonstracjami zadania w prompcie i dzięki temu te nazwy stały się standardem w promptowaniu: zero-shot, one-shot i few-shot.
Kiedy zero-shot prompting nie działa?
Ma trudności, gdy zadanie zależy od zasad, które znasz tylko ty, takich jak kategorie twojego zespołu albo firmowy styl, gdy format odpowiedzi jest nietypowy, i przy rozumowaniu wieloetapowym, w którym model odpowiada zbyt szybko. Przykłady rozwiązują dwa pierwsze problemy; prośba, żeby model pracował krok po kroku, pomaga przy trzecim.
Czym jest zero-shot chain of thought?
To prompt zero-shot, który prosi model o rozumowanie przed odpowiedzią, najsłynniejszy przez dodanie zdania "Pomyślmy krok po kroku" (Let's think step by step). Kojima i in. pokazali w 2022 roku, że to jedno zdanie, bez żadnych przykładów, poprawiało wyniki dużych modeli w zadaniach z arytmetyki i logiki.