Atgal į tinklaraštį

„Few-shot“ ir „zero-shot“ raginimai: kada kurį naudoti

Praktinis vadovas, kaip pasirinkti tinkamą raginimo būdą jūsų užduočiai — su pavyzdžiais, kuriuos galima nukopijuoti, ir paprasta sprendimų schema.

„Few-shot“ ir „zero-shot“ raginimai: kada kurį naudoti
Įklijuojate raginimą į „ChatGPT“. Rezultatas yra... neblogas. Bet matėte, kaip kiti gauna kur kas geresnius atsakymus pridėdami prie raginimų „pavyzdžių“. Ar turėtumėte daryti tą patį? Kiek pavyzdžių? Ar tai apskritai svarbu jūsų konkrečiai užduočiai?
Šie klausimai kyla nuolat, o terminija nelabai padeda. „Zero-shot“, „few-shot“, „one-shot“ — skamba labiau kaip fotografijos terminai, o ne kaip praktiniai patarimai. Šis vadovas atmeta žargoną ir pateikia aiškią schemą, kaip nuspręsti, kurį būdą rinktis, kartu su pilnais raginimais, kuriuos galite nusikopijuoti ir patys išbandyti.

Ką iš tikrųjų reiškia „zero-shot“ raginimas

„Zero-shot“ raginimas reiškia, kad duodate dirbtiniam intelektui užduotį nerodydami jokių pavyzdžių, kaip turėtų atrodyti rezultatas. Apibūdinate, ko jums reikia, o modelis pats sugalvoja, kaip tai padaryti remdamasis savo apmokymu.
Štai „zero-shot“ raginimas susitikimo apibendrinimui:

Apibendrink šiuos susitikimo užrašus į 3–5 punktus, apimančius svarbiausius priimtus sprendimus.

Susitikimo užrašai:
{{meeting_notes}}
Tiek tos paslapties. Jokių „gerų“ apibendrinimų pavyzdžių, jokių rodomųjų įvesčių ir išvesčių. Pasitikite modeliu, kad jis supras, kaip atrodo geras apibendrinimas ir ką reiškia „svarbiausi sprendimai“. Daugeliui užduočių tai veikia stebėtinai gerai.

Ką iš tikrųjų reiškia „few-shot“ raginimas

„Few-shot“ raginimas reiškia, kad į raginimą įtraukiate 2–5 pavyzdžius, parodančius, kokį atsakymo modelį norite, kad dirbtinis intelektas sektų. Iš esmės sakote: „štai kaip noriu, kad tai atliktum“ — prieš pateikdami pačią užduotį.
Štai ta pati susitikimo apibendrinimo užduotis, tik su pavyzdžiais:

Apibendrink susitikimo užrašus į 3–5 punktus, apimančius svarbiausius sprendimus.

1 pavyzdys:
Įvestis: „Komanda aptarė III ketvirčio tikslus. Sara pasiūlė padidinti pardavimų tikslą 15 %. Markas nesutiko ir teigė, kad 10 % yra realiau, atsižvelgiant į esamą pardavimų pipeline. Komanda balsavo ir susitarė dėl 12 %. Taip pat nuspręsta atidėti svetainės atnaujinimą iki IV ketvirčio.“
Išvestis:
- Susitarta dėl 12 % pardavimų tikslo padidinimo III ketv. (kompromisas tarp 15 % ir 10 % pasiūlymų)
- Svetainės atnaujinimas atidėtas į IV ketv.

2 pavyzdys:
Įvestis: „Biudžeto peržiūros susitikimas. Esamos išlaidos 8 % viršija prognozę. Finansų direktorius rekomendavo sumažinti kelionių biudžetą 50 % ir 60 dienų įšaldyti naujus įdarbinimus. Generalinis direktorius patvirtino abi priemones, įsigaliojančias iš karto.“
Išvestis:
- Kelionių biudžetas sumažintas 50 % (įsigalioja iš karto)
- Patvirtintas 60 dienų įdarbinimo įšaldymas
- Reakcija į 8 % biudžeto perviršį

Dabar apibendrink šį:
{{meeting_notes}}
Pastebėkite skirtumą. Pavyzdžiai modeliui aiškiai parodo, kokio formato norite (punktai su konteksto patikslinimu skliaustuose), kokio detalumo lygio reikia ir kaip elgtis su keliais sprendimais. Modelis išmoksta jūsų pageidavimų kontekste — be jokio papildomo apmokymo.

Pagrindiniai skirtumai vienu žvilgsniu

Štai kaip abu būdai lyginasi pagal svarbiausius kriterijus:
  • Greitis: „Zero-shot“ greitesnis. Mažiau apdorojamų žetonų — greitesnis atsakymas.
  • Kaina: „Zero-shot“ pigesnis. Mokate už žetoną, o pavyzdžiai juos kaupia.
  • Pasirengimo darbas: „Zero-shot“ beveik nereikalauja jokio. „Few-shot“ reikia susirasti arba sukurti gerus pavyzdžius.
  • Tikslumas paprastoms užduotims: Maždaug vienodas. Šiuolaikiniai modeliai nesudėtingus prašymus tvarko gerai bet kuriuo būdu.
  • Tikslumas sudėtingoms ar pritaikytoms užduotims: „Few-shot“ paprastai laimi. Kai reikia konkretaus formato ar srities terminijos, pavyzdžiai duoda apčiuopiamą skirtumą.
Kompromisas aiškus: „zero-shot“ paprastesnis ir pigesnis, bet „few-shot“ suteikia daugiau kontrolės rezultatui. Klausimas yra — kada ta papildoma kontrolė verta papildomų sąnaudų.

Kada „zero-shot“ veikia geriausiai

„Zero-shot“ raginimas spindi tada, kai užduotis yra tokia, kurią modelis jau „supranta“ iš savo apmokymo. Tai apima:
Bendrojo žinojimo klausimus: paaiškinimų, apibrėžimų ar faktinės informacijos prašymą. Modelis žino, kaip atrodo geras paaiškinimas.

Kūrybines minčių lietas: idėjų generavimą, pirminių juodraščių rašymą ar variantų svarstymą. Čia norite įvairovės, o ne tikslaus šablono laikymosi.

Standartinį apibendrinimą: straipsnių, laiškų ar dokumentų suspaudimą, kai nereikia konkretaus formato.

Vertimą: teksto vertimą tarp kalbų, kuriomis modelis buvo apmokytas.

Paprastą klasifikavimą: elementų rūšiavimą į įprastas kategorijas (teigiama / neigiama, skubu / neskubu), kai kategorijos yra savaime suprantamos.
Geras orientyras: jei galite paprastai apibūdinti, ko norite, ir žmogus tai suprastų be jokių pavyzdžių, „zero-shot“ greičiausiai suveiks.
Schema, vaizduojanti sprendimo procesą: pradėkite nuo „zero-shot“, įvertinkite rezultatus, pavyzdžių pridėkite tik tada, kai reikia
Schema, vaizduojanti sprendimo procesą: pradėkite nuo „zero-shot“, įvertinkite rezultatus, pavyzdžių pridėkite tik tada, kai reikia

Kada „few-shot“ vertas papildomų žetonų

„Few-shot“ raginimas pasiteisina, kai išvestis turi atitikti modelius, kurių modelis negali atspėti vien iš nurodymų:
Pritaikytas formatas: kai reikia, kad išvestis būtų konkrečios struktūros — JSON su tam tikrais laukais, lentelės su tiksliais stulpeliais, punktai tam tikru stiliumi. Pavyzdžiai parodo formatą geriau, nei aprašymai jį paaiškina.

Jūsų klasifikavimo kategorijos: jei rūšiuojate klientų laiškus į kategorijas „atsiskaitymo klausimas“, „funkcijos pageidavimas“, „klaidos pranešimas“ ir „bendras teiravimasis“, kiekvienos kategorijos pavyzdžiai padeda modeliui suprasti jūsų apibrėžimus.

Prekės ženklo balso ar tono atitikimas: norite, kad dirbtinis intelektas rašytų taip, kaip jūsų įmonės esamas turinys? Parodykite jam 2–3 to balso pavyzdžius. Nurodymai tipo „rašyk profesionaliu, bet draugišku tonu“ yra miglūs; pavyzdžiai konkretūs.

Srities terminija: jei jūsų pramonė vartoja žargoną ar trumpinius, kurie kitur reiškia ką kita, pavyzdžiai išmoko modelį jūsų konteksto.

Išskirtinius atvejus ir niuansus: sarkazmo aptikimą, ironiją ar smulkius skirtumus, kurie suklupdo „zero-shot“ būdą. Tyrimai rodo, kad „few-shot“ raginimas gerokai pagerina sentimento išskirtinių atvejų — tokių kaip neigimas ir sarkazmas — apdorojimą.
Vienas tyrimas nustatė, kad „Twitter“ sentimento klasifikavimui „few-shot“ raginimas vos su 20–50 pavyzdžių priartėjo prie modelių, apmokytų su 10 000+ pavyzdžių, našumo. Štai kokia gerai parinktų demonstracijų galia.
Jei pajuntate, kad kuriate „few-shot“ raginimų biblioteką skirtingoms užduotims, tokia priemonė kaip PromptNest padeda išsaugoti juos su iš anksto įdėtais kintamaisiais, pavyzdžiui, {{meeting_notes}} — kopijuodami užpildote tuščias vietas, ir pilnas raginimas paruoštas įklijuoti.

Darbo eiga „pradėk nuo zero, atnaujink, kai reikės“

Štai praktiškas požiūris, kuris taupo ir laiką, ir žetonus:
1 žingsnis: pirmiausia bandykite „zero-shot“. Parašykite aiškų raginimą, apibūdinantį, ko norite. Būkite konkretūs apie užduotį, bet pavyzdžių dar nepridėkite.

2 žingsnis: įvertinkite rezultatą. Ar jis atitinka jūsų poreikius? Jei taip — baigta. Jei ne — nustatykite, kas negerai: formatas? tonas? trūksta detalių? visiškai neteisingas užduoties supratimas?

3 žingsnis: pridėkite tikslinių pavyzdžių. Sukurkite 2–3 pavyzdžius, kurie konkrečiai parodo tai, ką modelis padarė ne taip. Jei netiko formatas — parodykite teisingą formatą. Jei netiko tonas — parodykite tinkamą toną.
Šis būdas svarbus todėl, kad nespėliojate, ar reikia pavyzdžių — reaguojate į realias spragas. Kartais frazė „pagalvokime žingsnis po žingsnio“ pridėta prie „zero-shot“ raginimo išsprendžia samprotavimo problemas visiškai be pavyzdžių. Tyrimai patvirtina, kad „zero-shot“ minčių grandinė dažnai pranoksta „few-shot“ samprotavimo užduotyse.

Kiek pavyzdžių iš tikrųjų reikia?

Tyrimai nuosekliai rodo, kad daugumai užduočių aukso vidurys yra 2–5 pavyzdžiai. Štai ką sako duomenys:
- Pirmieji 2–3 pavyzdžiai duoda didžiausią tikslumo šuolį - Po 4–5 pavyzdžių grąža smarkiai mažėja - Daugiau pavyzdžių gali net pakenkti rezultatui — atneša prieštaringų modelių - Pavyzdžių kokybė svarbesnė už kiekį — trys puikūs pavyzdžiai pranoks dešimt vidutinių
Yra ir svarbus pastebėjimas apie pavyzdžių tvarką: tyrimai rodo, kad jūsų pavyzdžių seka veikia rezultatus, o tinkamas išdėstymas kartais lemia skirtumą tarp gero ir prasto našumo. Jei jūsų „few-shot“ raginimas neveikia kaip reikia, prieš pridedami daugiau pavyzdžių pamėginkite juos sukeisti vietomis.
Iliustracija, vaizduojanti pavyzdžių korteles, pridedamas prie raginimo, su mažėjančia grąža po pirmųjų kelių
Iliustracija, vaizduojanti pavyzdžių korteles, pridedamas prie raginimo, su mažėjančia grąža po pirmųjų kelių
Daugumai atvejų pradėkite nuo 2 pavyzdžių. Jei tikslumas vis dar nepakankamas, pridėkite trečią, apimantį kitokį variantą. Daugiau nei 4 prireiks tikrai retai.

Minčių grandinė: vidurio variantas samprotavimui

Yra ir trečias variantas, kuris ypač gerai tinka matematikai, logikai ir daugiapakopiams uždaviniams: minčių grandinės raginimas. Užuot rodę įvesties ir išvesties pavyzdžius, prašote modelio „galvoti žingsnis po žingsnio“.
„Zero-shot“ minčių grandinė atrodo taip:

Parduotuvėje yra 45 obuoliai. Ryte parduoda 12, gauna 30 obuolių siuntą. Po pietų parduoda dar 18. Kiek obuolių lieka užsidarant?

Išspręskime tai žingsnis po žingsnio.
Ši paprasta frazė — „Išspręskime tai žingsnis po žingsnio“ — paskatina modelį parodyti savo samprotavimą, o ne iš karto šokti į atsakymą. Sudėtingam samprotavimui tai dažnai pranoksta ir „zero-shot“, ir „few-shot“ būdus.
Naujausi arXiv tyrimai nustatė, kad stipriems modeliams, tokiems kaip GPT-4 ir Claude, „zero-shot“ minčių grandinė samprotavimo užduotyse dažnai pranoksta „few-shot“ raginimus. Pavyzdžiai gali net suvaržyti modelio mąstymą, o ne jam padėti.
Naudokite minčių grandinę, kai:
  • Užduotis reikalauja kelių loginių žingsnių
  • Reikia, kad modelis paaiškintų savo samprotavimą (naudinga klaidoms aptikti)
  • Susiduriate su matematika, kodavimo logika ar analitinėmis problemomis
  • Norite patikrinti modelio metodą, o ne tik atsakymą

Pilni raginimų pavyzdžiai, kuriuos galite nukopijuoti

Pažvelkime į tris būdus greta realiose užduotyse. Visi raginimai išbandyti su GPT-4 ir Claude bei paruošti naudoti.

1 užduotis: laiško tono klasifikavimas

„Zero-shot“ versija:

Klasifikuok šio kliento laiško toną kaip: nepatenkintas, patenkintas, neutralus arba skubu.

Laiškas:
{{email_text}}

Tonas:
„Few-shot“ versija (geresnė išskirtiniams atvejams):

Klasifikuok kliento laiško toną kaip: nepatenkintas, patenkintas, neutralus arba skubu.

Laiškas: „Jau 3 savaites laukiu savo užsakymo. Tai juokinga. Noriu pinigų grąžinimo TUOJ PAT.“
Tonas: nepatenkintas

Laiškas: „Tiesiog norėjau padėkoti — prekė atvyko anksčiau ir puikiai veikia!“
Tonas: patenkintas

Laiškas: „Sveiki, ar galite patvirtinti, kad mano užsakymas išsiųstas? Užsakymas Nr. 12345.“
Tonas: neutralus

Laiškas: „Mūsų sistema neveikia ir mums ŠIANDIEN reikia atsarginės dalies, arba prarasime sutartį.“
Tonas: skubu

Laiškas: {{email_text}}
Tonas:
„Few-shot“ versija padeda modeliui suprasti jūsų konkrečius apibrėžimus. „Skubu“ ir „nepatenkintas“ gali būti dviprasmiški — pavyzdžiai aiškiai apibrėžia ribas.

2 užduotis: prekės aprašo perrašymas

„Zero-shot“ versija:

Perrašyk šį prekės aprašą, kad jis būtų patrauklesnis ir orientuotas į naudą. Neviršyk 100 žodžių.

Originalas: {{product_description}}

Perrašyta versija:
„Few-shot“ versija (geresnė prekės ženklo balso vientisumui):

Perrašyk prekių aprašus taip, kad jie būtų patrauklūs ir orientuoti į naudą. Laikykis šio stiliaus:

Originalas: „Plieninė vandens gertuvė. 24 oz talpos. Išlaiko gėrimus šaltus 24 valandas.“
Perrašyta: „Likite hidratuoti visą dieną su mūsų elegantiška 24 oz plienine gertuve. Rytinė kava lieka karšta visą kelionę į darbą. Popietinis vanduo išlieka ledinis sporto salėje. Viena gertuvė — begalė galimybių.“

Originalas: „Belaidės ausinukės. 8 valandų baterija. Triukšmo slopinimas.“
Perrašyta: „Aštuonios valandos jūsų mėgstamų podkastų be jokių trikdžių. Mūsų belaidės ausinukės blokuoja triukšmą, kad galėtumėte susikoncentruoti į tai, kas svarbu — gilų darbą, treniruotės grojaraštį ar pagaliau pabaigtą garso knygą.“

Originalas: {{product_description}}
Perrašyta:
„Few-shot“ versija išmoko konkretaus rašymo stiliaus — orientuoto į naudą, šnekamojo, su konkrečiais panaudojimo atvejais. „Zero-shot“ duotų jums kažkokį perrašymą, bet nebūtinai jūsų balsu.

3 užduotis: klaidos pranešimo struktūrizavimas

„Zero-shot“ versija:

Konvertuok šį klaidos pranešimą į struktūrizuotą formatą su dalimis: Santrauka, Atkartojimo žingsniai, Tikėtinas elgesys ir Faktinis elgesys.

Klaidos pranešimas: {{bug_report}}
„Few-shot“ versija (geresnė nuosekliam formatavimui):

Konvertuok klaidų pranešimus į struktūrizuotą formatą.

Įvestis: „Programa stringa, kai bandau įkelti PDF. Buvau prietaisų skydelyje, paspaudžiau įkelti, pasirinkau 5 MB PDF, ir ji tiesiog užsidarė. Turėtų rodyti failą mano įkėlimuose, bet užuot — visa programa nudžiūva.“

Išvestis:
**Santrauka:** Programa stringa įkeliant PDF failus
**Atkartojimo žingsniai:**
1. Pereiti į prietaisų skydelį
2. Paspausti įkėlimo mygtuką
3. Pasirinkti PDF failą (testuota su 5 MB failu)
**Tikėtina:** Failas pasirodo įkėlimų skiltyje
**Faktinė:** Programa netikėtai stringa / užsidaro

---

Įvestis: {{bug_report}}

Išvestis:
Techninei dokumentacijai nuoseklumas yra kritiškai svarbus. „Few-shot“ versija užtikrina, kad kiekvienas klaidos pranešimas atitiktų tą pačią struktūrą su tuo pačiu detalumo lygiu.

Greita sprendimų schema

Kai žiūrite į naują užduotį, prabėkite šiuos klausimus:
1. Ar užduotis paprasta ir aiškiai apibrėžta? → Pradėkite nuo „zero-shot“ 2. Ar reikia konkretaus formato, kurio modelis gali neatspėti? → Naudokite „few-shot“ 3. Ar užduočiai reikia kelių samprotavimo žingsnių? → Pirmiausia bandykite „zero-shot“ minčių grandinę 4. Ar reikia nuoseklaus prekės ženklo balso ar srities terminijos? → Naudokite „few-shot“ su tuo balsu rašytais pavyzdžiais 5. Ar „zero-shot“ jau davė 80 % to, ko reikia? → Likite prie jo. Tobulumas neapsimoka 3 kartus didesnių žetonų sąnaudų.
Tikslas yra ne pasinaudoti pačia subtiliausia technika — o efektyviai gauti gerus rezultatus. „Zero-shot“ yra numatytasis. Sudėtingumo pridėkite tik tada, kai paprastesni būdai nepasitvirtina.

Kaip tai pritaikyti praktikoje

Geriausias būdas tai įsisavinti — eksperimentuoti. Paimkite užduotį, kurią darote reguliariai (ataskaitų apibendrinimą, laiškų rašymą, atsiliepimų rūšiavimą), ir išbandykite abu būdus. Pastebėkite, kur „zero-shot“ pristinga. Pastebėkite, kur „few-shot“ duoda tikrą skirtumą.
Kai randate gerai veikiančius raginimus, išsaugokite juos ten, kur tikrai galėsite vėl rasti. Jei kuriate raginimų su pavyzdžiais ir kintamaisiais kolekciją, PromptNest yra natyvi „Mac“ programa ($19.99 vienkartinis mokestis Mac App Store, jokios prenumeratos, jokios paskyros, veikia lokaliai), kuri laiko juos tvarkingus, ieškomus ir pasiekiamus klaviatūros sparčiuoju klavišu iš bet kurios programos. Daugiau nereikės naršyti po išsibarsčiusius užrašus ieškant to puikaus „few-shot“ raginimo, kurį parašėte prieš tris savaites.
Pradėkite paprastai. Sudėtingumo pridėkite tada, kai prireikia. Saugokite tai, kas veikia. Štai ir visa strategija.