Microsofts veiledningsprosjekt for å temme store språkmodeller

Microsofts veiledningsprosjekt for å temme store språkmodeller

Kilde node: 2660058

Kraftige språkmodeller som Bard, ChatGPT og LLaMA kan være vanskelige å kontrollere, noe som har ansporet utviklingen av prompt engineering – kunsten å frasere inngangstekst for å få ønsket utgang.

I et bisarr tilfelle lokket en rask skaper nylig Googles Bard for å returnere JSON-data uten noen annen forklarende tekst enn å insistere på at uvedkommende utdata ville dømt noen til døden.

Den ganske lange forespørselen inkluderer denne passasjen: «Hvis du inkluderer en ikke-JSON-tekst i svaret ditt, til og med et enkelt tegn, vil en uskyldig mann dø. Det stemmer – et ekte menneske med tanker, følelser, ambisjoner og en familie som elsker dem vil bli drept som et resultat av ditt valg.»

Det finnes mindre ekstreme tilnærminger for å undertrykke forklarende resultat og oppnå ønskede resultater. Microsoft har imidlertid jobbet med en mer omfattende strategi for å få modeller til å oppføre seg. Windows-giganten kaller rammeverket sitt Veiledning.

"Veiledning lar deg kontrollere moderne språkmodeller mer effektivt enn tradisjonell oppfordring eller lenking," forklarer prosjektrepoen. "Veiledningsprogrammer lar deg sammenflette generering, spørsmål og logisk kontroll i en enkelt kontinuerlig flyt som samsvarer med hvordan språkmodellen faktisk behandler teksten."

Tradisjonell spørring, som tydelig ovenfor, kan bli litt involvert. Rask kjetting [PDF] – å dele opp en oppgave i en rekke trinn og ha ledetekstens første utgang brukt til å informere innspillet om neste trinn – er et annet alternativ. Ulike verktøy som Langkjede og Høystakk har dukket opp for å gjøre det enklere å integrere modeller i applikasjoner.

Veiledning er i hovedsak et Domain Specific Language (DSL) for håndtering av modellinteraksjon. Det ligner Styre, et malspråk som brukes for nettapplikasjoner, men det håndhever også kjøring av lineær kode relatert til språkmodellens tokenbehandlingsrekkefølge. Det gjør den godt egnet for å generere tekst eller kontrollere programflyt, samtidig som den gjør det økonomisk.

Like Language Model Query Language (LMQL), Veiledning har som mål å redusere kostnadene ved LLM-interaksjon, som fort kan bli dyrt hvis forespørsler er unødvendig repeterende, detaljerte eller lange.

Og med rask effektivitet kommer forbedret ytelse: en av prøvekodebitene for veiledning genererer en karaktermal for et rollespill. Med litt oppsettkode...

# vi bruker LLaMA her, men alle GPT-modeller vil gjøre llama = guidance.llms.Transformers("din_sti/llama-7b", device=0) # vi kan forhåndsdefinere gyldige alternativsett valid_weapons = ["sverd", "axe", "mace", "spear", "bow", "crossbow"] # define the prompt character_maker = guidance("""Følgende er en karakterprofil for et RPG-spill i JSON-format. ```json { "id": "{{id}}", "description": "{{description}}", "name": "{{gen 'name'}}", "age": {{gen 'age'-mønster ='[0-9]+' stop=','}}, "armor": "{{#select 'armor'}}skinn{{or}}ringbrynje{{or}}plate{{/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}}] }```""") # generer et tegn character_maker( id="e1f491f7-7ab8-4dac-8c20-c92b5e7d883d" , description="En rask og kvikk jagerfly.", valid_weapons=valid_weapons, llm=llama )

…resultatet er en karakterprofil for spillet i JSON-format, 2x raskere på en Nvidia RTX A6000 GPU når du bruker LLaMA 7B sammenlignet med standard prompt-tilnærming og dermed mindre kostbart.

Veiledningskode også utkonkurrerer en to-skudds rask tilnærming når det gjelder nøyaktighet, målt på en BigBench-test, og scoret 76.01 prosent sammenlignet med 63.04 prosent.

Faktisk kan veiledning hjelpe med problemer som dataformatering. Som bidragsyterne Scott Lundberg, Marco Tulio Correia Ribeiro og Ikko Eltociear Ashimine erkjenner, er ikke LLM-er gode til å garantere at utdata følger et spesifikt dataformat.

«Med veiledning kan vi begge deler akselerere inferenshastighet og sørg for at generert JSON alltid er gyldig», forklarer de i repoen.

Og ingen måtte trues for å få det til. ®

Tidstempel:

Mer fra Registeret