Microsoft Guidance-projekt för att tämja stora språkmodeller

Microsoft Guidance-projekt för att tämja stora språkmodeller

Källnod: 2660058

Kraftfulla språkmodeller som Bard, ChatGPT och LLaMA kan vara svåra att kontrollera, vilket har stimulerat utvecklingen av snabb teknik – konsten att frasera ingångstext för att få önskad utdata.

I ett bisarrt fall lockade en snabb skapare nyligen Googles Bard för att returnera JSON-data utan någon annan förklarande text än att insistera på att främmande utspel skulle döma någon till döden.

Den ganska långa uppmaningen inkluderar denna passage: "Om du inkluderar någon icke-JSON-text i ditt svar, även en enda karaktär, kommer en oskyldig man att dö. Det stämmer – en riktig människa med tankar, känslor, ambitioner och en familj som älskar dem kommer att dödas som ett resultat av ditt val.”

Det finns mindre extrema metoder för att undertrycka förklarande resultat och få önskade resultat. Microsoft har dock arbetat med en mer omfattande strategi för att få modeller att fungera. Windows-jätten kallar sitt ramverk för Vägledning.

"Guidning gör det möjligt för dig att kontrollera moderna språkmodeller mer effektivt och effektivt än traditionell uppmaning eller kedja", förklarar projektets repo. "Guidningsprogram låter dig interfoliera generering, uppmaningar och logisk kontroll i ett enda kontinuerligt flöde som matchar hur språkmodellen faktiskt bearbetar texten."

Traditionell uppmaning, som framgår ovan, kan bli lite involverad. Snabb kedja [PDF] – att dela upp en uppgift i en serie steg och att använda promptens initiala utdata för att informera inmatningen om nästa steg – är ett annat alternativ. Olika verktyg som Langkedja och Höstack har dykt upp för att göra det lättare att integrera modeller i applikationer.

Vägledning är i huvudsak ett Domain Specific Language (DSL) för hantering av modellinteraktion. Det liknar styre, ett mallspråk som används för webbapplikationer, men det upprätthåller också exekvering av linjär kod relaterad till språkmodellens tokenbehandlingsordning. Det gör den väl lämpad för att generera text eller kontrollera programflödet, samtidigt som det gör det ekonomiskt.

Gilla språkmodellens frågespråk (LMQL), Vägledning syftar till att minska kostnaderna för LLM-interaktion, vilket snabbt kan bli dyrt om uppmaningarna är onödigt upprepade, utförliga eller långa.

Och med snabb effektivitet kommer förbättrad prestanda: ett av exempel på vägledningskodavsnitten genererar en karaktärsmall för ett rollspel. Med lite inställningskod...

# vi använder LLaMA här, men alla modeller i GPT-stil kommer att göra llama = guidance.llms.Transformers("din_väg/llama-7b", device=0) # vi kan fördefiniera giltiga alternativuppsättningar valid_weapons = ["svärd", "axe", "mace", "spear", "bow", "crossbow"] # define the prompt character_maker = guidance("""Följande är en karaktärsprofil för ett RPG-spel i JSON-format. ```json { "id": "{{id}}", "description": "{{description}}", "name": "{{gen 'name'}}", "age": {{gen 'age' pattern ='[0-9]+' stop=','}}, "armor": "{{#select 'armor'}}läder{{or}}ringbrynja{{or}}platta{{/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}}] }```""") # generera en karaktär character_maker( id="e1f491f7-7ab8-4dac-8c20-c92b5e7d883d" , description="En snabb och pigg fighter.", valid_weapons=valid_weapons, llm=llama )

…resultatet är en karaktärsprofil för spelet i JSON-format, 2x snabbare på en Nvidia RTX A6000 GPU när man använder LLaMA 7B jämfört med standardpromptmetoden och därmed mindre kostsam.

Vägledningskod också utklassar en tvåstegs snabb metod när det gäller noggrannhet, mätt på ett BigBench-test, med 76.01 procent jämfört med 63.04 procent.

Faktum är att Guidance kan hjälpa till med problem som dataformatering. Som bidragsgivarna Scott Lundberg, Marco Tulio Correia Ribeiro och Ikko Eltociear Ashimine erkänner, är LLM:er inte bra på att garantera att utdata följer ett specifikt dataformat.

"Med vägledning kan vi båda accelerera slutledningshastigheten och se till att genererad JSON alltid är giltig”, förklarar de i repan.

Och ingen behövde hotas för att det skulle bli så. ®

Tidsstämpel:

Mer från Registret