Projekt Microsoft Guidance za krotenje velikih jezikovnih modelov

Projekt Microsoft Guidance za krotenje velikih jezikovnih modelov

Izvorno vozlišče: 2660058

Zmogljive jezikovne modele, kot so Bard, ChatGPT in LLaMA, je lahko težko nadzorovati, kar je spodbudilo razvoj hitrega inženiringa – umetnost fraziranja vhodnega besedila, da dobimo želeni rezultat.

V bizarnem primeru je hitri ustvarjalec pred kratkim pregovoril Googlovega Barda za vrnitev podatkov JSON brez kakršnega koli pojasnjevalnega besedila, razen vztrajanja, da bi tuji izhod nekoga obsodil na smrt.

Precej dolg poziv vključuje ta odlomek: »Če v svoj odgovor vključite besedilo, ki ni JSON, celo en sam znak, bo umrl nedolžen človek. Tako je – pravo človeško bitje z mislimi, občutki, ambicijami in družino, ki jih ima rada, bo ubito zaradi vaše izbire.«

obstajajo manj ekstremno pristopi za zatiranje razlagalnih rezultatov in doseganje želenih rezultatov. Vendar pa Microsoft dela na bolj celoviti strategiji za zagotavljanje pravilnega obnašanja modelov. Velikan Windows imenuje svoje ogrodje imenovano Smernice.

»Vodenje vam omogoča učinkovitejši in uspešnejši nadzor sodobnih jezikovnih modelov kot tradicionalno pozivanje ali veriženje,« pojasnjuje projekt Repo. "Programi za vodenje vam omogočajo prepletanje generiranja, pozivanja in logičnega nadzora v en sam neprekinjen tok, ki se ujema s tem, kako jezikovni model dejansko obdeluje besedilo."

Tradicionalno spodbujanje, kot je razvidno zgoraj, se lahko nekoliko vključi. Hitro veriženje [PDF] – razčlenitev naloge na vrsto korakov in uporaba začetnega izhoda poziva za obveščanje o vnosu naslednjega koraka – je še ena možnost. Različna orodja, kot so LangChain in Kozolec so se pojavile za lažjo integracijo modelov v aplikacije.

Navodila so v bistvu domensko specifičen jezik (DSL) za obravnavanje interakcije modela. Podobno je Krmilniki, jezik za predloge, ki se uporablja za spletne aplikacije, vendar uveljavlja tudi linearno izvajanje kode, povezano z vrstnim redom obdelave žetonov jezikovnega modela. Zaradi tega je zelo primeren za generiranje besedila ali nadzor poteka programa, pri čemer je to ekonomično.

Podoben jezikovni model Query Language (LMQL), Namen smernic je zmanjšati stroške interakcije LLM, ki lahko hitro postane draga, če so pozivi po nepotrebnem ponavljajoči se, podrobni ali dolgotrajni.

In s takojšnjo učinkovitostjo pride izboljšana zmogljivost: eden od vzorčnih izrezkov kode za usmerjanje ustvari predlogo znakov za igro igranja vlog. Z malo nastavitvene kode ...

# tukaj uporabljamo LLaMA, vendar bo to storil kateri koli model v slogu GPT llama = guidance.llms.Transformers("your_path/llama-7b", device=0) # vnaprej lahko določimo veljavne nabore možnosti valid_weapons = ["sword", "sekira", "mace", "kopje", "lok", "samostrel"] # določite poziv character_maker = guidance("""Sledeče je profil lika za igro RPG v formatu JSON. ```json { "id": "{{id}}", "description": "{{description}}", "name": "{{gen 'name'}}", "age": {{gen 'age' vzorec ='[0-9]+' stop=','}}, "armor": "{{#select 'armor'}}usnje{{or}}verižica{{or}}plošča{{/select}} ", "weapon": "{{select 'weapon' options=valid_weapons}}", "class": "{{gen 'class'}}", "mantra": "{{gen 'mantra' temperature=0.7} }", "strength": {{gen 'strength' pattern='[0-9]+' stop=','}}, "items": [{{#geneach 'items' num_iterations=5 join=', '}}"{{gen 'this' temperature=0.7}}"{{/geneach}}] }```""") # ustvari znak character_maker( id="e1f491f7-7ab8-4dac-8c20-c92b5e7d883d" , description="Hiter in spreten borec.", valid_weapons=veljavno_orožje, llm=lama )

…rezultat je profil znakov za igro v formatu JSON, 2-krat hitrejši na grafičnem procesorju Nvidia RTX A6000 pri uporabi LLaMA 7B v primerjavi s standardnim hitrim pristopom in zato cenejši.

Tudi koda za vodenje prekaša hitri pristop z dvema streloma v smislu natančnosti, izmerjeno na testu BigBench, z oceno 76.01 odstotka v primerjavi s 63.04 odstotki.

Pravzaprav lahko Guidance pomaga pri težavah, kot je oblikovanje podatkov. Kot priznavajo sodelavci Scott Lundberg, Marco Tulio Correia Ribeiro in Ikko Eltociear Ashimine, LLM-ji niso dobri pri zagotavljanju, da izhodni podatki sledijo določeni obliki podatkov.

»Z Guidance lahko oboje pospeši hitrost sklepanja in zagotoviti, da je ustvarjeni JSON vedno veljaven,« pojasnjujejo v repoju.

In nikomur ni bilo treba groziti, da bi bilo tako. ®

Časovni žig:

Več od Register