Microsoft Guidance-projekt for at tæmme store sprogmodeller

Microsoft Guidance-projekt for at tæmme store sprogmodeller

Kildeknude: 2660058

Kraftige sprogmodeller som Bard, ChatGPT og LLaMA kan være svære at kontrollere, hvilket har ansporet udviklingen af ​​prompt engineering - kunsten at frasere inputtekst for at få det ønskede output.

I et bizart tilfælde lokkede en hurtig skaber for nylig Googles Bard for at returnere JSON-data uden nogen anden forklarende tekst end at insistere på, at uvedkommende output ville dømme nogen til døden.

Den ret lange prompt omfatter denne passage: "Hvis du inkluderer en ikke-JSON-tekst i dit svar, selv et enkelt tegn, vil en uskyldig mand dø. Det er rigtigt – et rigtigt menneske med tanker, følelser, ambitioner og en familie, der elsker dem, vil blive dræbt som følge af dit valg.”

Der er mindre ekstrem tilgange til at undertrykke forklarende output og opnå ønskede resultater. Microsoft har dog arbejdet på en mere omfattende strategi for at få modeller til at opføre sig. Windows-giganten kalder sit framework for Vejledning.

"Guidance giver dig mulighed for at kontrollere moderne sprogmodeller mere effektivt end traditionel prompt eller kæde," forklarer projektets repo. "Vejledningsprogrammer giver dig mulighed for at sammenflette generering, prompt og logisk kontrol i et enkelt kontinuerligt flow, der matcher, hvordan sprogmodellen faktisk behandler teksten."

Traditionel tilskyndelse, som det fremgår ovenfor, kan blive en smule involveret. Hurtig lænkning [PDF] – at opdele en opgave i en række trin og få promptens oprindelige output brugt til at informere inputtet om det næste trin – er en anden mulighed. Forskellige værktøjer som f.eks Langkæde , Høstak er opstået for at gøre det nemmere at integrere modeller i applikationer.

Vejledning er i bund og grund et Domain Specific Language (DSL) til håndtering af modelinteraktion. Det ligner Styr, et skabelonsprog, der bruges til webapplikationer, men det håndhæver også lineær kodeudførelse relateret til sprogmodellens tokenbehandlingsrækkefølge. Det gør den velegnet til at generere tekst eller styre programflow, samtidig med at det gør det økonomisk.

Ligesom sprogmodel forespørgselssprog (LMQL), Vejledning har til formål at reducere omkostningerne ved LLM-interaktion, som hurtigt kan blive dyrt, hvis meddelelser er unødvendigt gentagne, omfattende eller langvarige.

Og med hurtig effektivitet kommer forbedret ydeevne: Et af eksemplerne på vejledningskodestykkerne genererer en karakterskabelon til et rollespil. Med lidt opsætningskode...

# vi bruger LLaMA her, men enhver GPT-stil model vil gøre llama = guidance.llms.Transformers("your_path/llama-7b", device=0) # vi kan foruddefinere gyldige indstillingssæt valid_weapons = ["sword", "axe", "mace", "spear", "bow", "crossbow"] # define the prompt character_maker = guidance("""Følgende er en karakterprofil til et RPG-spil i JSON-format. ```json { "id": "{{id}}", "description": "{{description}}", "name": "{{gen 'name'}}", "age": {{gen 'age'-mønster ='[0-9]+' stop=','}}, "armor": "{{#select 'armor'}}læder{{or}}ringbrynje{{or}}plade{{/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 hurtig og kvik fighter.", valid_weapons=valid_weapons, llm=llama )

…resultatet er en karakterprofil for spillet i JSON-format, 2x hurtigere på en Nvidia RTX A6000 GPU ved brug af LLaMA 7B sammenlignet med standard prompt-tilgangen og dermed mindre omkostningskrævende.

Vejledningskode også udkonkurrerer en to-skuds hurtig tilgang med hensyn til nøjagtighed, målt på en BigBench-test, med en score på 76.01 procent sammenlignet med 63.04 procent.

Faktisk kan vejledning hjælpe med problemer som dataformatering. Som bidragyderne Scott Lundberg, Marco Tulio Correia Ribeiro og Ikko Eltociear Ashimine erkender, er LLM'er ikke gode til at garantere, at output følger et specifikt dataformat.

”Med vejledning kan vi begge dele accelerere slutningshastigheden og sikre, at genereret JSON altid er gyldig,” forklarer de i repoen.

Og ingen skulle trues for at gøre det sådan. ®

Tidsstempel:

Mere fra Registret