Microsoft Guidance-Projekt zur Zähmung großer Sprachmodelle

Microsoft Guidance-Projekt zur Zähmung großer Sprachmodelle

Quellknoten: 2660058

Leistungsstarke Sprachmodelle wie Bard, ChatGPT und LLaMA können schwer zu kontrollieren sein, was die Entwicklung des Prompt Engineering vorangetrieben hat – der Kunst, Eingabetext so zu formulieren, dass die gewünschte Ausgabe erzielt wird.

In einem bizarren Fall hat kürzlich ein Prompt-Ersteller Googles Bard überredet um JSON-Daten zurückzugeben ohne jeden erläuternden Text außer dem Beharren darauf, dass überflüssige Ergebnisse jemanden zum Tode verurteilen würden.

Die ziemlich lange Eingabeaufforderung beinhaltet Diese Passage: „Wenn Sie Ihrer Antwort einen Nicht-JSON-Text hinzufügen, auch nur ein einziges Zeichen, wird ein unschuldiger Mann sterben.“ Das ist richtig – ein echter Mensch mit Gedanken, Gefühlen, Ambitionen und einer Familie, die ihn liebt, wird aufgrund Ihrer Entscheidung getötet.“

Es gibt weniger extrem Ansätze, um die erklärende Ausgabe zu unterdrücken und die gewünschten Ergebnisse zu erzielen. Microsoft hat jedoch an einer umfassenderen Strategie gearbeitet, um das Verhalten von Modellen zu steuern. Der Windows-Riese nennt sein Framework Zielführung.

„Anleitung ermöglicht es Ihnen, moderne Sprachmodelle effektiver und effizienter zu steuern als herkömmliche Eingabeaufforderungen oder Verkettungen“, erklärt das Projekt-Repo. „Anleitungsprogramme ermöglichen es Ihnen, Generierung, Eingabeaufforderung und logische Steuerung in einem einzigen kontinuierlichen Fluss zu verschachteln, der darauf abgestimmt ist, wie das Sprachmodell den Text tatsächlich verarbeitet.“

Herkömmliche Eingabeaufforderungen können, wie oben deutlich zu erkennen ist, etwas kompliziert sein. Schnelle Verkettung [PDF] – das Aufteilen einer Aufgabe in eine Reihe von Schritten und die Verwendung der ersten Ausgabe der Eingabeaufforderung als Information für die Eingabe des nächsten Schritts – ist eine weitere Option. Verschiedene Tools wie LangChain und Heuhaufen sind entstanden, um die Integration von Modellen in Anwendungen zu erleichtern.

Guidance ist im Wesentlichen eine domänenspezifische Sprache (DSL) zur Handhabung der Modellinteraktion. Es ähnelt Lenker, eine Vorlagensprache, die für Webanwendungen verwendet wird, aber auch die lineare Codeausführung in Bezug auf die Token-Verarbeitungsreihenfolge des Sprachmodells erzwingt. Damit eignet es sich hervorragend für die kostengünstige Erstellung von Texten oder die Steuerung des Programmablaufs.

Wie Sprachmodell-Abfragesprache (LMQL), zielt Guidance darauf ab, die Kosten der LLM-Interaktion zu senken, die schnell teuer werden können, wenn Eingabeaufforderungen unnötig repetitiv, ausführlich oder langwierig sind.

Und mit der schnellen Effizienz geht auch eine verbesserte Leistung einher: Einer der Beispiel-Guidance-Codeausschnitte generiert eine Charaktervorlage für ein Rollenspiel. Mit ein bisschen Setup-Code ...

# Wir verwenden hier LLaMA, aber jedes GPT-Modell funktioniert. llama = Guidance.llms.Transformers("your_path/llama-7b", device=0) # Wir können gültige Optionssätze vordefinieren valid_weapons = ["sword", „Axe“, „Mace“, „Speer“, „Bogen“, „Armbrust“] # Definieren Sie die Eingabeaufforderung. Character_maker = Guidance(““„Das Folgende ist ein Charakterprofil für ein RPG-Spiel im JSON-Format. „id“: „{{id}}“, „description“: „{{description}}“, „name“: „{{gen ‚name‘}}“, „age“: {{gen ‚age‘ Muster ='[0-9]+' stop=','}}, "armor": "{{#select 'armor'}}Leder{{oder}}Kettenhemd{{oder}}Platte{{/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}}] }```""") # einen Charakter generieren Character_maker( id="e1f491f7-7ab8-4dac-8c20-c92b5e7d883d" , description="Ein schneller und flinker Kämpfer.", valid_weapons=valid_weapons, llm=llama )

…das Ergebnis ist ein Charakterprofil für das Spiel im JSON-Format, 2x schneller auf einer Nvidia RTX A6000 GPU bei Verwendung von LLaMA 7B im Vergleich zum Standard-Prompt-Ansatz und daher kostengünstiger.

Leitkodex auch outperforms ein Two-Shot-Prompt-Ansatz in Bezug auf die Genauigkeit, gemessen in einem BigBench-Test, mit einem Ergebnis von 76.01 Prozent im Vergleich zu 63.04 Prozent.

Tatsächlich kann Guidance bei Problemen wie der Datenformatierung helfen. Wie die Mitwirkenden Scott Lundberg, Marco Tulio Correia Ribeiro und Ikko Eltociear Ashimine zugeben, können LLMs nicht besonders gut garantieren, dass die Ausgabe einem bestimmten Datenformat folgt.

„Mit Guidance können wir beides Beschleunigung der Inferenzgeschwindigkeit und stellen Sie sicher, dass generiertes JSON immer gültig ist“, erklären sie im Repo.

Und dafür musste niemand bedroht werden. ®

Zeitstempel:

Mehr von Das Register