aim-to-pace.ai

Norėjau sukurti promptų Ferrarį. O išėjo Volkswagenas.

Promptinti paprasta. Bet paprastai promptinti tiesiog nėra pakankamai gerai. Ir taip lengva patobulinti.

Originalas Substack’e ↗ Skaityk čia; pamėgk, komentuok ir prenumeruok ten.

Startavau su brandžia vizija, su reikiamu know-how ir su malonumu gilintis į DI temas. Su sveiku noru suprasti dalykus ir spręsti problemas. Ir su šiek tiek nesveiku noru viską tobulinti — būtent čia beviltiškai pasiklydau.

Mano vizija: promptas, kuris generuoja promptus.

Ne kokie nors eiliniai dalykėliai, o kokybiški meistriniai promptai. Promptai, kuriuos naudoji vėl ir vėl arba ant kurių gali statyti kažką naujo. Promptai, verti patekti į katalogą. Patogūs naudoti promptai, kurie priverčia DI užduoti teisingus klausimus ir kurie yra tikri kasdieniai pagalbininkai arba specializuoti problemų sprendėjai. Kuriuos, tarsi Lego, gali sujungti į kažką dar didesnio.

Visko to norėjau. Ne iškart, o kaip kelių mėnesių evoliucijos rezultato. Bet norėjau visko viename vieninteliame prompte.

Bet Nach fest kommt ab, und nach ab kommt Arbeit. galioja ir IT srityje.

Gemini pasidavė, o aš nuo tos avantiūros su Claude visuose mūsų projektuose turiu raštu užfiksuotą mažojo piršto priesaiką sąmoningai kritiškai tikrinti, ar nevyksta Verschlimmbesserung.

Bet pradėkim nuo pradžių. Geras promptinimas buvo, yra ir liks svarbus, jei nori iš LLM ištraukti tikrai gerus rezultatus. Tai logiška — promptas yra nurodymas mašinai. Anksčiau reikėjo iš tiesų programuoti ir kalbėti tikromis, sudėtingomis kompiuterių kalbomis. Atėjus DI, nurodymai ir duomenys susiliejo ir, supakuoti į visiškai įprastą kasdienę kalbą, tapo prieinami kiekvienam.

Sumurmėtas „Ištrink klaidas iš teksto ir dar ispaniškai” taip tapo veikiančia programavimo komanda.

Ir būtent šiame paprastume slypi dviašmenis kardas. Nes kiekvienas promptas veikia ir duoda rezultatus. Nėra tikrai neteisingo prompto ar akivaizdžiai blogų promptų. Bet blogų promptų vis dėlto pasitaiko — kaip ir metodų, kaip padaryti geresnius. Jei nori nepaprastai, stebinamai gerų rezultatų, be šiek tiek optimizavimo neišsiversi. T. y. galiausiai — tiksliau aprašyti, ko nori.

Kad likčiau prie to mažo pavyzdžio iš viršaus: Kokias klaidas? Tik gramatines ar ir stilistines? Nori gauti tik ispanišką tekstą, ar ir pataisytą vokišką versiją? Ir ar nori žinoti, kur buvo klaidos, t. y. kas visa buvo pakeista?

Žinoma, jei viso to nereikia ar nenori žinoti, to ir sakyti nebūtina. Bet dažniausiai vis dėlto turi numanomų lūkesčių, ir sisteminiu požiūriu jaučiasi kažkaip neteisingiau, kai juos nuvilia mašina. Su DI savo lūkesčius reikia išsakyti aiškiai — ir netgi nereikia tausoti žmogiškų jausmų.

Ir DI rezultatas tampa dar geresnis, kai pateiki kontekstą bei visą vaizdą, o ne pavienius nurodymus „ištaisyk klaidas” ir „išversk į ispanų”.

Papuoškim pavyzdį kažkuo konkretaus: Tarkim, per paskutinę kelionę į Ispaniją tau tikrai nepasisekė. Viešbutis atgaline data ir klaidingai nuskaitė pinigus nuo tavo kreditinės kortelės. Surinkai visą informaciją ir nori tai išsiaiškinti tiesiogiai su viešbučiu. Su šia informacija ir tokiu įvadu DI gali tau padėti kur kas labiau, nei galbūt įsivaizduoji. Kartu su tavimi parengti intonaciją, psichologiškai ir teisiškai geriausią veiksmų planą. Konkrečiai lydėti ir patarti tau viso proceso metu.

Taigi svarbiausias žingsnis — grynas mąstysenos (mindset) reikalas tavo paties galvoje. Ne smulkmeniškas mini-nurodymas, bet ir ne vien generiniai, nebaigti pusiau sakiniai. Jei DI tik teisingai pamaitini, ji gali atsakyti geriau, nei manai.

Tam jai reikia būtent tos informacijos, kuri mums dažnai atrodo akivaizdi ir savaime suprantama arba tau — nesvarbi, nes juk nori tik išversti laišką, o ne tikėtis ar reikalauti daugiau. Bet kas nori daugiau rezultato, turi duoti ir daugiau informacijos. O ši informacija — ir taip užsidaro ratas — geriausiai išgaunama gerai promptinant, o ne skubotai vedant klaviatūra.

Bet grįžkim prie mano mažo kryžiaus žygio ieškant šventojo prompto.

Kadangi šis naujas bendravimo su mašina būdas neįprastas, o didžioji dauguma dar neišmoko su juo teisingai elgtis, yra daug pagalbinių priemonių. Ir daug jų išbandžiau, nes norėjau iš DI ypač gerų rezultatų — žinodamas ar nujausdamas, ką ji sugeba.

Visus tuos promptų generatorius laikau veikiau prastais ir nepatogiais. Reikia pildyti pseudo-formas, kurios daugiau ar mažiau apgalvotai išspjauna gražiai atrodantį promptą, kuris niekada iš tiesų netinka ir kurį man visada tenka pakoreguoti.

Visi tie guru-master-promptai ar magiški promptai, kurie iki galo nugludinti ir stipriai optimizuoti daro tiksliai vieną dalyką tikrai gerai, dažniausiai iš tiesų tą daro puikiai. Bet jie visi sudėlioti skirtingai, išbarstyti po visokiausius kanalus ir svetaines ir reikalauja beveik buhalterinės disciplinos, jei nenori jų nuolat ieškoti.

Lieka taigi geras senas rankų darbas. Promptų šablonai ir gerosios praktikos taisyklynai. Jų juk apstu — tad skaityk, įsigilink ir įgyvendink. Bet ilgainiui ir tai — nesąmonė. Turi DI, kuri iš tiesų supranta šnekamąją kalbą, o tada tarsi vaikas mokykloje turi kaltis į galvą Freytago piramidę ir atmintinai barškinti penkis veiksmus teisinga tvarka. Bet schema dar nepadaro geros dramos. Struktūra gera ir svarbi, bet ji šiek tiek nužudo ir malonumą, ir sielą. Vis dėlto dejuoti nepadeda. Struktūra padeda — tai įrodyta. Su aiškiais ir apgalvotais promptais rezultatai nepalyginamai geresni. Labiau atkartojami. Pakartotinai panaudojami. Praplečiami. Perduodami.

Taikydamas cherry-picking (rankiodamas tik geriausius kąsnelius) iš visų šablonų išsirinkau elementus, kuriuos turėjo beveik visi: vaidmens aprašymą, konteksto informaciją, specialias sąlygas ir apribojimus, užduoties aprašymą ir pageidaujamą išvesties formatą. Tada dar pavadinau tarptautiškai ir supakavau į patrauklų akronimo formatą:

Assign-Inform-Modify-Task-Output (trumpai AIM-TO)

Tuo padengiu 80 % savo naudojimo atvejų. O kai reikia kiek daugiau, prireikus galiu papildyti keliais kitais blokais, tokiais kaip Priority, Ask back, Chain of thought arba Example (trumpai PACE).

Turėjau savo paties promptų šabloną. Nice. Didžiąją dalį pridėtinės vertės vis tiek gauni jau vien iš paties struktūravimo akto. Tai ne šedevras, bet solidus amatas. Pasaulinės klasės akronimas AIM-TO-PACE, kurį pavertiau savo prekės ženklu, chronologiškai atsirado iš tiesų tik daug vėliau.

Problema: promptinimas pagal šabloną — nesvarbu kokį — veikia gerai, bet yra taaaaaip nuoboduuuuuu. Ir bukas. Reikia savo mintis suspausti į tam tikrą formą. O jei mintys ilgos ir vingiuotos, tai net tikrai daug darbo. Ir lėta. Kol baigiu, dažniausiai jau turiu naujų idėjų, kurių šioje anti-brain-dump sąrangoje nepavyksta deramai perteikti.

Jei tik turėtume kažką, kas nuimtų nuo mūsų nuobodžias ir bukas užduotis. Kokį skaičiavimo baudžiauninką. Geriausia tokį, kuris dar ir suprastų mano pirminį minčių salotą.

Aišku, tą pavesiu savo naminei DI. Pirmosios 5–6 iteracijos prabėgo akimirksniu, pirmosios trys pilnos versijos visos buvo tinkamos naudoti, ir kiekviena šiek tiek geresnė už ankstesnę.

Meta-promptas: promptas, kuris generuoja promptus buvo sukurtas. Mano meta-promptas.

Ir nuo 3-osios versijos daugiau niekada nespaudžiau ilgos minčių eigos į promptų šabloną ir nerašiau bei neskaičiau iki galo jokio ilgo prompto. Praėjo laikai, kai vien tam, kad įtikčiau DI, jai pataikaudamas promptinau taip, kaip ji nori girdėti. Tą dabar palieku mašinai.

Bet aš norėjau daugiau. Žinoma, pats meta-promptas — iš grynos puikybės — turėjo paklusti AIM-TO šablonui. Ir jis turėjo optimizuoti išvesties formatą tiksliniame prompte. Gražiai sugalvota per du kampus. Iš užklausos sugeneruotas promptas turi automatiškai atpažinti, ar vartotojas nori dialogo režimo, ar tik tiesiogiai rezultato. Paklausti svarbiausių parametrų, bet visada pateikti ir paruoštą kopijuoti išvestį, pagrįstą argumentuotomis ir atspindėtomis prielaidomis. Ir dar daugybę kitų funkcijų jis turėjo turėti. Idėjų turiu labai daug. Bet promptas — ne kompiuterinė programa, kurią gali ar dera plėsti be galo.

Meta-promptas tapo galingesnis ir didesnis, bet kartu ir trapesnis bei nebeprasmingai išplečiamas. Kiekviena optimizacija vėl kažką kitą sugadindavo. Šalutiniai efektai visur. Gemini po 2 valandų tobulinimo sesijos ratais pareiškė, kad taip nieko nebus. Tada, ką gi, paklausiau Claude. Šis meta-prompto juk dar nepažinojo ir galėjo nenusidėvėjusiu žvilgsniu smagiai imtis optimizuoti. Ir ėmėsi. Bet čia užteko vos kelių iteracijų, kol ir jis pareiškė, kad tai akligatvis.

Aišku, skauda, kai įdėjai laiko ir energijos, o tada tiesiog nebejuda iš vietos. Jaučiasi, tarsi tai iššvaistyta. Bet, žinoma, taip nėra. Per tuos mėnesius tiek daug išmokau. Taip pat supratau, kodėl tai nuo pat pradžių buvo kova su vėjo malūnais. Negali senuoju mąstymu ilgą promptą „iki galo užprogramuoti”. Čia esama techniškai neįveikiamų problemų.

Bet principas yra ir lieka geras — promptas, kuris generuoja kokybiškus promptus. Visada ir visur. Vien tekstas. Jokio įrankio. Jokios daugybės šaltinių, kuriuos reikia saugoti ar atsiminti. Toks, kuris veikia su kiekviena įprasta LLM. Jokio vendor lock-in, kuris mane prirakintų prie vienos LLM ar veiktų tik su geriausia DI versija.

Per geras, kad tiesiog mesčiau. Pakankamai geras, kad pradėčiau visiškai iš naujo. Taigi radikaliai startuoti nuo 0 su siaurais, paprastais tikslais ir anti-tikslais.

  • Pats meta-promptas neprivalo būti AIM-TO — man sunkiausias žingsnis, bet ir veiksmingiausias
  • Jis turi generuoti AIM-TO:
    • Stabiliai
    • Patikimai
    • Patogiai naudoti, bet be jokių niekučių

Tai buvo baigta per vieną sesiją. Būtent toks, koks jis yra šiandienine forma. Būtent tokį jį ir platinu. Ir jis veikia man, draugams, pažįstamiems ir kolegoms. Įėjimo slenkstis yra ir lieka, bet jis žemas. Skepticizmo taip pat esama. Bet kas įveikia šį pirmą slenkstį, dažnai užkimba. Ir AIM-TO-PACE karkasas — t. y. šablonas ir meta-promptas kartu — iš tiesų turi daugiau privalumų, nei matyti iš pirmo žvilgsnio. Kišeninis promptų generatorius. Pagal standartinę schemą — prie struktūruoto prompto. Tai irgi nuobodu, bet mažiau vargo. Ir pats geriausias dalykas. Man nereikia raizgyti mazgo ant virtualaus liežuvio. Po nedidelio pasiruošimo galiu smagiai promptinti be jokių kokybės apribojimų.

Mintys vėl laisvos.

Palauk, juk turėjau tobulą promptą kažkuriame pokalbių lange. O gal išsisaugojau jį lokaliai? Ar išsiunčiau paštu? A ne, jį mačiau YouTube, jis tikrai geras. Greitai jį susirasiu.

„Po dvieeejų valaaandų…” Kempiniuko Plačiakelnio pasakotojo balsu

Kai paieška užtrunka ilgiau nei prompto sukūrimas… Tie laikai, laimei, praėjo. Ir verschlimmbessern nuo tada — mano mėgstamiausias neišverčiamas žodis.