Učenje sistemskih pozivov: nova paradigma za sisteme umetne inteligence

Učenje sistemskih pozivov ekipam pomaga izboljšati vedenje umetne inteligence brez ponovnega učenja modelov in omogoča lažje razumevanje omejitev.

Se vam je že zgodilo, da je določen poziv dobro deloval, nato pa je nenadoma prenehal?

Ste se že znašli v začaranem krogu nenehnega krpanja sistemskega poziva in poskusov izboljšanja rezultatov, vendar ni nič delovalo?

Učenje sistemskih pozivov je morda natanko to, kar potrebujete.

Učenje sistemskih pozivov (SPL) je novo področje zanimanja v skupnosti umetne inteligence, ki ga je maja na omrežju X močno populariziral Andrej Karpathy.

Učenje sistemskih pozivov odpravlja omejitve neprilagodljivih in krhkih sistemov umetne inteligence, ki se opirajo na statične sistemske pozive ali okorne postopke natančnega prilagajanja. Ponuja še en način podpore nenehnemu učenju sistemov umetne inteligence.

Preden se poglobimo v temo, na kratko ponovimo osnove oblikovanja pozivov.

Pri razvoju agenta ali modela po meri moramo najprej zasnovati dve ključni komponenti:

  1. Sistemski poziv

  2. Uporabniški poziv

Sistemski pozivi določajo temeljna pravila vedenja modela. Pri rešitvah umetne inteligence po meri se pogosto začnejo nekako takole:

“You are an intelligent assistant. Your role is to perform <insert task here>.

You must not do (A), (B), or (C).”

Nasprotno pa uporabniški pozivi navadno vsebujejo uporabnikovo vprašanje in druge pomembne podatke, kot so njegov časovni pas in nastavitve. Uporabniški poziv je lahko videti takole:

Posnetek zaslona, ki prikazuje uvod.

I’m in the capital city of Portugal. Can you suggest some things I can do tonight?

Po izdajah novih modelov večjih laboratorijev umetne inteligence so razkritja sistemskih pozivov postala pogosta, saj uporabniki s prebijanjem varnostnih mehanizmov klepetalnike pripravijo do tega, da razkrijejo svoja temeljna navodila. Priljubljen repozitorij na GitHubu zdaj na enem mestu zbira številne takšne sistemske pozive. Razkrivajo »skrivno sestavino«, ki so jo laboratoriji umetne inteligence sčasoma razvili za spodbujanje ustreznega vedenja modelov. Na primer, nedavno razkriti sistemski poziv za GPT-5 (razkrit v ChatGPT) vsebuje približno 6.000 besed, kar kaže, koliko znanja in smernic je treba vanj vključiti za oblikovanje vedenja sistema.

Ti obsežni sistemski pozivi navadno zajemajo več ključnih področij, kot so:

  • Navodila za iskanje

  • Opredelitve orodij

  • Uporabniške nastavitve

  • Navodila za navajanje virov

  • Hitri popravki znanih težav

V praksi razvijalci sistemov umetne inteligence po meri med preizkušanjem in izpopolnjevanjem aplikacij ročno in postopoma krpajo sistemske pozive, pri čemer se pri izboljšavah opirajo predvsem na evalvacije.

Drugi načini usmerjanja vedenja modela vključujejo:

  • Inženiring pozivov, vključno z generiranjem z razširjenim priklicem (RAG), ki nadzoruje vsebino, posredovano modelu

  • Natančno prilagajanje (neposredno spreminjanje temeljnih uteži modela)

Kaj pa, če bi lahko na vedenje modela vplivali še drugače? Predstavljajte si sistem, ki se dinamično uči in izpopolnjuje svoj sistemski poziv z uporabo predhodno ustvarjenih razmišljanj, načrtov in strategij. Svoje rezultate bi lahko ocenjeval na podlagi povratnih informacij uporabnikov in evalvacij velikega jezikovnega modela v vlogi ocenjevalca.

Kaj je učenje sistemskih pozivov?

Pomislite na dolgotrajen poslovni izziv, ki ga želite avtomatizirati z agentskim sistemom. Učinkovite rešitve zahtevajo zmožnosti sklepanja, ki presegajo osnovno avtomatizacijo delovnih postopkov. V takšnih primerih je nujno, da v sistem umetne inteligence vključite komponento za ustvarjanje načrtov. Tako lahko sistem z več agenti sodeluje na različne načine, odvisno od naloge. Posamezni koraki lahko vsebujejo navodila za dostop do drugih agentov, ki opravijo podnaloge, ali za uporabo orodij.

Posnetek zaslona, ki pojasnjuje učenje sistemskih pozivov.

Opomba: Agentovo orodje je katera koli zunanja funkcija, API ali vir, ki ga lahko agent umetne inteligence pokliče, da preseže obdelavo besedila in izvede dejanska dejanja.

Sistemski poziv modela lahko »zaženete« z načrtom, ki sledi logičnim korakom človeka, vendar veliki jezikovni modeli navadno potrebujejo natančnejše smernice za uporabo orodij, oblikovanje rezultatov in povezane zahteve. Včasih optimalna strategija ni jasna ali pa obravnavate težavo, ki je niste znova ocenili, ker je prej veljala za rešeno. Tu nastopi učenje sistemskih pozivov (SPL).

SPL sistemski poziv iterativno izboljšuje z vključevanjem predhodno ustvarjenih strategij. Ob pojavu novih težav sistem postopoma kopiči znanje in postaja odpornejši. Predstavljajte si ga kot priročnik za reševanje težav na svojem področju.

SPL spoznanja iz povratnih informacij uporabnikov postopoma vključuje v sistemski poziv. Ko sistem dozoreva, lahko odkrijete ponavljajoče se težave, ki jih je mogoče strniti v bolj splošna načela višje ravni.

Vodnik po korakih

Podrobneje si oglejmo, kako postopek poteka korak za korakom:

  1. Začnite z uporabniško poizvedbo, v kateri sistemu naročite, naj opravi določeno nalogo.

    1. Če sistem obravnava samo eno težavo, lahko uporabite »požrešni« pristop in iz prejšnjih izvajanj izberete najbolje ocenjene strategije. Raziskovanje lahko spodbudite tudi z vzorčenjem iz porazdelitve, ki daje prednost visoko ocenjenim strategijam, občasno pa vključuje tudi slabše ocenjene. To je še posebej koristno, ko šele začenjate zbirati strategije.

    2. Pri sistemih za obravnavo raznovrstnih težav razmislite o dodajanju klasifikacijske plasti ali uporabi vložitev in kosinusne podobnosti (enakih tehnik, kot se navadno uporabljajo pri RAG) za prepoznavanje ustreznih pristopov. Tako lahko izberete strategije, primerne za določeno težavo, na primer strategije, prilagojene programerskim nalogam.

Opomba: Vložitve v kombinaciji s kosinusno podobnostjo omogočajo merjenje povezanosti dveh informacij, zato lažje ujemamo dokumente, poizvedbe ali zamisli, tudi kadar se njihovo natančno besedilo razlikuje.

Primer izhodišča za poenostavljeno zbirko strategij za reševanje programerskih težav.

Opomba: Prikazane »začetne strategije« so zgolj ponazoritev. V resničnih programerskih scenarijih bi jih dodatno izpopolnili. Pri nišnih poslovnih težavah bi morali sčasoma zbrati dodatna spoznanja.

ID_generacije (obratni vrstni red)

Tema

Ocena

Besedilo_strategije

Pojasnilo

4

programiranje

1

Razumite težavo, omejitve in robne primere. Zasnovajte algoritem z ustreznimi podatkovnimi strukturami. Preverite načrt na primerih in invariantah. Napišite čisto in berljivo kodo. Izpopolnite jo s preoblikovanjem, optimizacijo in končnim oblikovanjem. Uporaba orodij: Pri uporabi orodja na kratko pojasnite, zakaj je bilo potrebno.

Vključuje in združuje najmočnejše elemente spodnjih treh strategij.

3

programiranje

1

Razumite težavo, omejitve in robne primere. Zasnovajte algoritem z ustreznimi podatkovnimi strukturami. Preverite načrt na primerih in invariantah. Napišite čisto in berljivo kodo. Izpopolnite jo s preoblikovanjem, optimizacijo in končnim oblikovanjem.

Bolj celovita strategija, vendar brez navodil za uporabo orodij.

2

programiranje

-1

Razumite težavo, omejitve in robne primere. Zasnovajte algoritem z ustreznimi podatki. Napišite čisto in berljivo kodo. Uporaba orodij: ob dostopu do orodja na kratko pojasnite, zakaj ste ga uporabili.

Boljša strategija, ki omenja uporabo orodij, vendar bi jo bilo še mogoče izboljšati.

1

programiranje

-1

Na hitro preglejte težavo. Rešite težavo. Ustvarite minimalne teste. Oddajte karkoli, kar deluje.

Omenja teste, vendar je kot celota šibka strategija.

3. Po vzorčenju N strategij jih vključite v sistemski poziv. Tako ustvarjanje načrtov temelji na predhodnih povratnih informacijah strokovnjakov, namesto da bi model načrte ustvarjal z minimalnimi smernicami. Spodbudite model, naj »razmišlja zunaj ustaljenih okvirov« in po potrebi dodaja korake, namesto da bi vzorčne strategije zgolj dobesedno prepisoval.

Posnetek zaslona, ki prikazuje vodnik po korakih.

4. Z dinamično ustvarjenim sistemskim pozivom ustvarite novo strategijo za obravnavo uporabnikove zahteve. Ta postopek naj ustvari dodatne naloge, ki izboljšajo končni rezultat. Cilj je ustvarjalnost: združite najmočnejše elemente prejšnjih strategij, spojite korake, ki se prekrivajo, in po potrebi dodajte nove koristne korake.

Opomba: Ne pozabite, da je temperatura parameter, ki ga je mogoče prilagoditi za bolj raznolike in manj deterministične rezultate, kar je koristno, kadar želimo ustvarjalnost. Če temperatura ni enaka nič, je lahko vsak ustvarjeni načrt drugačen.

5. Ko prejmete rezultat modela, naj ga na podlagi konkretnih meril, ki opredeljujejo dobro rešitev vaše težave, oceni človek ali veliki jezikovni model. Za prej omenjeni primer dejavnosti na Portugalskem bi lahko bila merila za ocenjevanje naslednja:

  • Jedrnatost (odgovor, omejen na en stavek)

  • Ustreznost predlagane dejavnosti

  • Točnost lokacije

6. Na podlagi te ocene strategijo izpopolnite z drugim modelom. Izbirna povratna zanka lahko vključuje človeški prispevek in omogoča skupno izboljševanje. Izpopolnjeno strategijo shranite v zbirko podatkov z ustreznimi metapodatki za sledenje različicam in spremembam.

Posnetek zaslona, ki prikazuje vodnik po korakih.

Zakaj bi se torej trudili z vsem tem? Rezultate bi lahko pregledali ročno in temu ustrezno prilagodili sistemski poziv. Vendar lahko zmogljivi modeli za sklepanje strategije izpopolnijo na podlagi konteksta rezultatov in povratnih informacij ljudi. Ljudje sicer zlahka opazijo pomanjkljivosti preprostih pristopov, vendar je njihovo prepoznavanje v kompleksnih sistemih, ki obravnavajo širši nabor težav, zahtevno in zamudno.

Veliki jezikovni modeli pogosto potrebujejo podrobna navodila in dodatne korake, da zberejo kontekstualno znanje, ki ga ljudje pri reševanju težav uporabljajo samoumevno. Ko se sistem razširi na širši nabor težav, lahko število potrebnih nalog hitro naraste. Ljudje, ki rešujejo programske težave, lahko na primer intuitivno razumejo okoliško kodno zbirko, veliki jezikovni model pa mora morda najprej »prebrati« več datotek.

Vpliv uvedbe SPL v vaše rešitve umetne inteligence

Odkrivanje novih načinov reševanja težav

  • Kdaj pomaga: Predstavljajte si, da vodite ekipo za podporo strankam, agent umetne inteligence pa razvršča zahtevke. SPL lahko sčasoma odkrije način razvrščanja, na katerega vaša ekipa ni pomislila, in tako zmanjša število eskalacij.

  • Kdaj ne pomaga: Če zahteve glede skladnosti ali predpisi že določajo vaše delovne postopke, na primer pri finančnem poročanju, je lahko vrednost SPL majhna, saj ustvarjalnost postane breme namesto prednosti.

Izboljšanje sodelovanja med ljudmi in umetno inteligenco

  • Kdaj pomaga: Pri delu, ki zahteva veliko raziskovanja (na primer tržno obveščanje ali strategija izdelkov), lahko sodelujete z umetno inteligenco tako, da izpopolnjujete njene načrte, bogatite rezultate in te izboljšave vključujete za prihodnjo uporabo. Vsaka interakcija poveča učinkovitost sistema.

  • Kdaj ne pomaga: Če vaša ekipa umetno inteligenco večinoma uporablja za preproste delovne postopke z minimalnim človeškim prispevkom (npr. obdelavo računov), lahko stroški sodelovanja presežejo koristi.

Prilagajanje novim težavam

  • Kdaj pomaga: Recimo, da se razširite v novo regijo in mora umetna inteligenca nenadoma obravnavati vprašanja o lokalnih davkih. SPL omogoča hitro vključevanje novih pravil in hevristik, ko se pojavijo, ter tako preprečuje ponavljanje napak.

  • Kdaj ne pomaga: Če je vaše okolje statično, denimo pri pretvarjanju prepisov sestankov v standardizirane povzetke, nenehno prilagajanje prinaša le malo koristi.

Izzivi in dejavniki tveganja

V teoriji vse to zveni obetavno, vendar uvedba SPL prinaša resnične izzive. V nadaljevanju obravnavamo nekaj najpomembnejših:

Pomanjkanje konvergence

V zgodnjih fazah ustvarjanja strategij napredek pogosto zastane: novi rezultati ne nadgrajujejo prejšnjih in zagon oslabi. To navadno povzročata dve glavni težavi:

    • Rešitev: Vnaprej vključite vse razpoložljivo poslovno znanje, da bo imel sistem na voljo dovolj poglobljenih informacij.

    • Rešitev: Oblikujte razčlenjeno ocenjevalno lestvico za več vidikov odgovora, kot so točnost, jasnost in ustreznost, ter vzorčenje prilagodite tem signalom.

Eksplozija števila strategij

Če sistem ustvari na stotine strategij, vendar prejme malo povratnih informacij, ki bi ločile dobre od slabih, vzorčenje hitro postane neobvladljivo. Rešitev je obrezovanje.

Pri izpopolnjevanju zbirke strategij upoštevajte:

  • Življenjska doba: Strategije umaknite, ko presežejo določeno časovno obdobje ali število generacij.

  • Ocena: Z ocenjevalno lestvico izločite strategije, ki so dosledno slabo ocenjene. V kombinaciji z življenjsko dobo tako ohranite le pristope, ki sčasoma dokažejo svojo vrednost.

  • Ocenjevanje z velikim jezikovnim modelom: Redno ocenjujte strategije in prepoznajte tiste, ki ne prinašajo več edinstvenih spoznanj, saj so bili njihovi koristni elementi verjetno že vključeni v novejše različice.

Rešitev: Zbirko strategij obravnavajte kot živ sistem: redno jo obrezujte, da v njej ostane le ustrezno in dragoceno znanje.

Sklep

Učenje sistemskih pozivov je še v povojih, vendar ima izjemen potencial. Podjetja, ki se zanašajo izključno na statične pozive ali neskončno natančno prilagajanje, bodo naletela na znane omejitve: krhke sisteme, naraščajoče stroške in zaman vložen trud. SPL ponuja izhod iz tega kroga z oblikovanjem sistemov, ki se sčasoma izboljšujejo in namesto posameznih popravkov vključujejo načela višje ravni.

SPL se še razvija, vendar je smer jasna: sistemi, ki se lahko učijo iz lastnega delovanja, bodo prehiteli tiste, ki se ne morejo. Zdaj je čas za eksperimentiranje: začnite z majhnimi koraki, beležite spoznanja in postavite temelje za sisteme umetne inteligence, ki se izboljšajo z vsako interakcijo.

Avtor

George Williamson