Microsoft Guidance-project om grote taalmodellen te temmen

Microsoft Guidance-project om grote taalmodellen te temmen

Bronknooppunt: 2660058

Krachtige taalmodellen zoals Bard, ChatGPT en LLaMA kunnen moeilijk te beheersen zijn, wat de ontwikkeling van prompt engineering heeft gestimuleerd - de kunst van het formuleren van invoertekst om de gewenste uitvoer te krijgen.

In een bizar geval heeft een snelle maker onlangs Google's Bard overgehaald om JSON-gegevens te retourneren zonder enige verklarende tekst, behalve erop aandringen dat externe output iemand tot de dood zou veroordelen.

De nogal lange prompt bevat deze passage: “Als u een niet-JSON-tekst in uw antwoord opneemt, zelfs een enkel teken, zal een onschuldige man sterven. Dat klopt - een echt mens met gedachten, gevoelens, ambities en een familie die van hen houdt, zal worden gedood als gevolg van jouw keuze.

Er zijn minder extreem benaderingen om verklarende output te onderdrukken en de gewenste resultaten te krijgen. Microsoft heeft echter gewerkt aan een uitgebreidere strategie om ervoor te zorgen dat modellen zich gedragen. De Windows-gigant noemt zijn framework genaamd leiding.

"Begeleiding stelt je in staat om moderne taalmodellen effectiever en efficiënter te beheersen dan traditionele aansporing of koppeling", legt de projectrepo uit. "Begeleidingsprogramma's stellen je in staat om generatie, prompting en logische controle te verweven in een enkele continue stroom die overeenkomt met hoe het taalmodel de tekst daadwerkelijk verwerkt."

Traditionele ingevingen, zoals hierboven duidelijk, kunnen een beetje ingewikkeld worden. Prompt ketenen [PDF] – een taak opsplitsen in een reeks stappen en de initiële output van de prompt laten gebruiken om de input van de volgende stap te informeren – is een andere optie. Diverse tools zoals LangChain en Hooiberg zijn ontstaan ​​om het eenvoudiger te maken om modellen in applicaties te integreren.

Guidance is in wezen een Domain Specific Language (DSL) voor het afhandelen van modelinteractie. Het lijkt op Sturen, een sjabloontaal die wordt gebruikt voor webtoepassingen, maar het dwingt ook lineaire code-uitvoering af met betrekking tot de tokenverwerkingsvolgorde van het taalmodel. Dat maakt het zeer geschikt voor het genereren van tekst of het regelen van de programmastroom, terwijl dit economisch gebeurt.

Zoals Taal Model Query Taal (LMQL), richt Guidance zich op het verlagen van de kosten van LLM-interactie, die snel duur kan worden als prompts onnodig repetitief, uitgebreid of lang zijn.

En met snelle efficiëntie komen verbeterde prestaties: een van de voorbeeldcodefragmenten van Guidance genereert een personagesjabloon voor een rollenspel. Met een beetje setup code...

# we gebruiken hier LLaMA, maar elk model in GPT-stijl zal het doen llama = guidance.llms.Transformers("your_path/llama-7b", device=0) # we kunnen geldige optiesets vooraf definiëren valid_weapons = ["sword", "axe", "mace", "spear", "bow", "crossbow"] # definieer de prompt character_maker = guidance("""Het volgende is een personageprofiel voor een RPG-game in JSON-indeling. ```json { "id": "{{id}}", "description": "{{description}}", "name": "{{gen 'name'}}", "age": {{gen 'age' patroon ='[0-9]+' stop=','}}, "pantser": "{{#select 'pantser'}}leren{{of}}maliënkolder{{or}}plaat{{/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}}] }``""") # genereer een karakter character_maker( id="e1f491f7-7ab8-4dac-8c20-c92b5e7d883d" , description="Een snelle en behendige vechter.", valid_weapons=valid_weapons, llm=llama )

…het resultaat is een personageprofiel voor de game in JSON-formaat, 2x sneller op een Nvidia RTX A6000 GPU bij gebruik van LLaMA 7B in vergelijking met de standaard prompt-aanpak en dus goedkoper.

Begeleidingscode ook beter presteert een tweevoudige snelle benadering in termen van nauwkeurigheid, zoals gemeten op een BigBench-test, met een score van 76.01 procent vergeleken met 63.04 procent.

Guidance kan zelfs helpen bij zaken als gegevensopmaak. Zoals de bijdragers Scott Lundberg, Marco Tulio Correia Ribeiro en Ikko Eltociear Ashimine erkennen, zijn LLM's niet goed in het garanderen dat de uitvoer een specifiek gegevensformaat volgt.

“Met Guidance kunnen we beide de inferentiesnelheid versnellen en zorg ervoor dat de gegenereerde JSON altijd geldig is”, leggen ze uit in de repo.

En niemand hoefde te worden bedreigd om het zo te maken. ®

Tijdstempel:

Meer van Het register