1 Punkte von GN⁺ 2023-08-15 | 1 Kommentare | Auf WhatsApp teilen
  • Outlines ist eine Bibliothek für die Generierung von Text mit neuronalen Netzen und wurde flexibler entworfen, um die generate-Methode der transformers-Bibliothek zu ersetzen.
  • Sie hilft Entwicklern dabei, robuste Schnittstellen zu bauen, die Ausgaben garantieren, welche regulären Ausdrücken oder JSON-Schemata entsprechen.
  • Die Bibliothek bietet solide Prompting-Bausteine, die Prompting- und Ausführungslogik trennen, sodass sich Few-Shot-Generation, ReAct, Meta-Prompting, Agenten usw. einfach implementieren lassen.
  • Outlines wurde so entwickelt, dass es mit dem breiteren Ökosystem kompatibel ist, verwendet so wenig Abstraktion wie möglich und kann Generierung mit Kontrollfluss, Bedingungen, benutzerdefinierten Python-Funktionen und Aufrufen an andere Bibliotheken verweben.
  • Es ist mit allen Modellen kompatibel und stellt über Next-Token-Logits eine Schnittstelle zu Modellen bereit. Es kann außerdem mit API-basierten Modellen verwendet werden.
  • Die Bibliothek zeichnet sich durch einfache und leistungsstarke Prompting-Bausteine auf Basis der Jinja-Template-Engine, Guided Generation, schnelle regex-gesteuerte Guided Generation, schnelle JSON-Generierung nach JSON-Schema oder Pydantic-Modellen sowie Integration mit den transformers-Modellen von HuggingFace aus.
  • Outlines ist auf PyPi verfügbar und kann mit dem Befehl pip install outlines installiert werden.
  • Die Bibliothek erlaubt es, die Generierung frühzeitig zu stoppen, nachdem eine vorgegebene Sequenz gefunden wurde, Vervollständigungen auf eine Auswahl zwischen mehreren Möglichkeiten zu beschränken oder dem Modell vorzugeben, nur Ganzzahlen oder Fließkommazahlen zurückzugeben.
  • Ebenfalls enthalten sind schnelle regex-gesteuerte Guided Generation und effiziente JSON-Generierung nach Pydantic-Modellen.
  • Outlines trennt Prompt-Logik und allgemeine Programmlogik durch die Kapselung von Templates in „Template-Funktionen“ und erleichtert so das Schreiben und Verwalten von Prompts.
  • Die Bibliothek ermöglicht es Sprachmodellen außerdem, externe Funktionen aufzurufen, um zusätzliche Informationen zu erhalten oder Aufgaben auszuführen, wobei die Beschreibung der Funktionen im Prompt kodiert wird.
  • Outlines ist Open Source und unter der Apache License 2.0 lizenziert.

1 Kommentare

 
GN⁺ 2023-08-15
Hacker-News-Kommentare
  • Ein Artikel darüber, wie Language Model Libraries (LLMs) in 100 % der Fälle gültiges JSON erzeugen können
  • LLMs erzeugen eine Wahrscheinlichkeitsverteilung für jedes Token, und ein JSON-Parser liefert die Liste der nächsten gültigen Tokens
  • Diskussion über die Idee, einen Teil des Vokabularraums zu maskieren, sowie über Bibliotheken, die effiziente Zeitschritte ausführen
  • Zweifel an der Wirksamkeit von Basismodellen wie Llama2 und daran, ob für bestimmte Anwendungsfälle eine Instruction-Tuning-Anpassung nötig ist
  • Frage, ob es für generate.regex Temperatur- oder Sampling-Parameter gibt
  • Erwähnung des Artikels, dass GPT4 in den meisten Fällen gültiges JSON zurückgeben kann, indem Beispiele in der Systemnachricht bereitgestellt werden
  • Der Mechanismus der Bibliothek wird anerkannt, und es gibt Neugier auf mögliche Anwendungen für Aufgaben, die strukturierte Eingaben jenseits von JSON benötigen
  • Interesse am Potenzial solcher Bibliotheken für die formale Pfadplanung
  • Erwähnung des Artikels, dass die Anforderung komplexer Ausgabeformate die Leistung bei der eigentlichen Aufgabe verschlechtern kann, bestätigt in Code-Editing-Benchmarks mit GPT-3.5 und GPT-4
  • Erwähnung des Artikels, dass LLama.cpp im vergangenen Monat grammatikbasiertes Sampling implementiert hat
  • Der Prozess, nach jedem von einem LLM erzeugten Token die Logit-Bias-„Maske“ zu aktualisieren, damit das nächste Token ein gültiges JSON-Token sein kann