Diese kuratierte Liste konzentriert sich auf Ressourcen, die sich mit der Erzeugung von JSON oder anderen strukturierten Ausgaben unter Verwendung des Large Language Model (LLM) befassen.
Eine Liste von Ressourcen für die Erzeugung von JSON mit LLM über Funktionsaufrufe, Tools, CFGs usw., die Bibliotheken, Modelle, Notebooks und mehr abdeckt.
Verzeichnis (auf der Festplatte des Computers)
- Nomenklatur
- Hosting-Modell
- lokales Modell
- Python-Bibliothek
- Blog-Beiträge
- Video
- Jupyter-Notizbücher
- die Charts (der Bestseller)
Nomenklatur
Es gibt eine Reihe verschiedener Bezeichnungen für die Erzeugung von JSON, obwohl die Bedeutungen im Grunde dieselben sind:
- Strukturierte AusgabeLLM verwenden, um jede strukturierte Ausgabe zu erzeugen, einschließlich JSON, XML oder YAML, unabhängig von der spezifischen Technologie (z. B. Funktionsaufrufe, Bootstrap-Generierung).
- FunktionsaufrufBietet dem LLM eine hypothetische (oder tatsächliche) Funktionsdefinition und fordert ihn auf, die Funktion in einer Chat- oder Vervollständigungsantwort "aufzurufen"; der LLM ruft die Funktion nicht tatsächlich auf, sondern zeigt nur die Absicht des Aufrufs über eine JSON-Nachricht an.
- JSON-ModusJe nach Anbieter kann ein Schema angegeben werden oder nicht, und LLM kann unerwartete Schemata erstellen.
- Einsatz der WerkzeugeLLM: Bietet LLM eine Auswahl von Werkzeugen wie Bilderzeugung, Websuche und "Funktionsaufrufe". Funktionsaufruf-Argumente in API-Anfragen werden jetzt als "Werkzeuge" bezeichnet.
- GrundierungUm den LLM dazu zu bringen, einer bestimmten Spezifikation für die Texterzeugung zu folgen, z.B. kontextunabhängige Grammatik.
- GPT-BetriebChatGPT basiert auf dem angegebenen OpenAPI-Spezifikation Die Endpunkte und Parameter im API-Server werden zum Aufrufen von Operationen (d. h. API-Aufrufen) verwendet. Im Gegensatz zu der Funktion "Funktionsaufrufe" ruft diese Funktion Funktionen auf, die auf dem API-Server gehostet werden.
Jeder der oben genannten Begriffe kann eine andere Bedeutung haben, daher habe ich diese Liste "Selected LLM JSON" genannt.
Hosting-Modell
paralleler Funktionsaufruf
Nachfolgend finden Sie eine Liste von gehosteten API-Modellen, die mehrere parallele Funktionsaufrufe unterstützen. Diese Aufrufe können die Überprüfung des Wetters in mehreren Städten oder die Suche nach einem Hotelstandort und die anschließende Überprüfung des Wetters an diesem Standort umfassen.
- anthropisch
- claude-3-opus-20240229
- claude-3-sonnet-20240229
- claude-3-haiku-20240307
- azur/openai
- gpt-4-turbo-vorschau
- gpt-4-1106-vorschau
- gpt-4-0125-vorschau
- gpt-3.5-turbo-1106
- gpt-3.5-turbo-0125
- kohärent
- Befehl-r
- zusammen_ai
- Mixtral-8x7B-Anleitung-v0.1
- Mistral-7B-Anleitung-v0.1
- CodeLlama-34b-Instruct
lokales Modell
Mistral 7B Instruct v0.3 (2024-05-22, Apache 2.0) ist eine fein abgestimmte Version der Mistral-Befehle, die zusätzlich Funktionsaufrufe unterstützt.
C4AI Befehl R+ (2024-03-20, CC-BY-NC, Cohere) ist ein 104B-Parameter umfassendes, mehrsprachiges Modell mit fortschrittlicher Retrieval Augmented Generation (RAG) und Tool-Use-Funktionalität, das für Schlussfolgerungen, Zusammenfassungen und die Beantwortung von Fragen in 10 Sprachen optimiert ist. Die Quantifizierung wird unterstützt, um die Nutzungseffizienz zu verbessern, und die einzigartige mehrstufige Tool-Integration bei der Ausführung komplexer Aufgaben wird demonstriert.
Hermes 2 Pro - Mistral 7B (2024-03-13, Nous Research) ist ein parametrisches 7B-Modell, das auf Funktionsaufrufe, JSON-strukturierte Ausgaben und generische Aufgaben spezialisiert ist. Trainiert auf der Grundlage des aktualisierten OpenHermes 2.5-Datensatzes und des neuen Funktionsaufruf-Datensatzes, unter Verwendung spezieller Systemhinweise und einer Mehrrundenstruktur. Erreicht eine Genauigkeit von 91% und 84% bei der Bewertung von Funktionsaufrufen bzw. JSON-Modellen.
Gorilla OpenFunctions v2 (2024-02-27, Apache 2.0-Lizenz. Charlie Cheng-Jie Ji et al.) Interpretation und Ausführung von Funktionen auf der Grundlage von JSON-Schemaobjekten, Unterstützung für mehrere Sprachen und die Fähigkeit, funktionale Relevanz zu erkennen.
NexusRaven-V2 (2023-12-05, Nexusflow) ist ein 13B-Modell, das GPT-4 bei Funktionsaufrufen mit Nullabtastung um bis zu 7% übertrifft und eine effiziente Nutzung von Software-Tools ermöglicht. Weitere Feinabstimmung der Anweisungen auf der Grundlage von CodeLlama-13B-instruct.
Funktionär (2023-08-04, MeetKai) Basierend auf dem JSON-Schema Objektinterpretation und Ausführung von Funktionen zur Unterstützung einer Vielzahl von Berechnungsanforderungen und Aufruftypen. Kompatibel mit OpenAI-python und llama-cpp-python zur effizienten Ausführung von Funktionsaufrufen bei JSON-Generierungsaufgaben.
Gesicht umarmen TGI wegenMehrere lokale ModelleDie Unterstützung für JSON-Ausgabe und Funktionsaufrufe ist aktiviert.
Python-Bibliothek
DSPy (MIT) ist ein Rahmenwerk für die algorithmische Optimierung von Hints und Gewichten von Sprachmodellen (LM).DSPy führt dieTypenprädiktoren und SignaturenDies wird erreicht durch die Verwendung der Pydantisch Verbesserte String-basierte Felder durch Erzwingen von Typbeschränkungen für Ein- und Ausgaben.
FuzzTypes (MIT) erweitert Pydantic um die automatische Korrektur von Anmerkungstypen, um die Datenstandardisierung zu verbessern und komplexe Typen wie E-Mails, Daten und benutzerdefinierte Entitäten zu verarbeiten.
Anleitung (Apache-2.0) unterstützt die Generierung von Constraints, kombiniert Python-Logik mit Aufrufen des Large Language Model (LLM) und unterstützt die Wiederverwendung von Funktionen und den Aufruf externer Tools zur Optimierung von Hints für eine schnellere Generierung.
Ausbilder (MIT) vereinfacht die Erzeugung strukturierter Daten für LLMs durch Funktionsaufrufe, Werkzeugaufrufe und eingeschränkte Stichprobenmuster. Die Validierung basiert auf Pydantic und unterstützt mehrere LLMs.
LangChain (MIT) bietet Link-Ports, Integration mit anderen Tools und Ketten für Anwendungen.LangChain bietetKette der strukturierten Ausgabenund modellübergreifendFunktionsaufrufUnterstützung.
LiteLLM (MIT) Vereinfacht den Aufruf von über 100 LLMs im OpenAI-Format, unterstütztFunktionsaufrufIm Folgenden finden Sie einige Beispiele für den JSON-Modus des Werkzeugaufrufs und den JSON-Modus.
LlamaIndex (MIT) bietet verschiedene Abstraktionsebenen für dieModul für strukturierte Ausgabeeinschließlich eines Ausgabeparsers für Textvervollständigungsendpunkte, eines Ausgabeparsers zur Abbildung von Hinweisen auf strukturierte Ausgaben, eines Pydantisches ProgrammDas Pydantic-Programm ist ein vordefiniertes Programm für eine bestimmte Art von Ausgabe.
Marvin. (Apache-2.0) ist ein leichtgewichtiges Toolkit zur Erstellung zuverlässiger natürlichsprachlicher Schnittstellen mit Selbstdokumentationswerkzeugen wie Entitätsextraktion und multimodaler Unterstützung.
Umrisse (Apache-2.0) Erzeugt strukturierten Text unter Verwendung einer Vielzahl von Modellen, Jinja-Vorlagen und Unterstützung für reguläre Ausdrucksmuster, JSON-Muster, Pydantic-Modelle und kontextunabhängige Grammatiken.
Pydantisch (MIT) vereinfacht die Verwendung von Datenstrukturen und JSON durch die Definition von Datenmodellen, Validierung, JSON-Schema-Generierung und nahtloses Parsen und Serialisieren.
SGLang (MPL-2.0) ermöglicht die Angabe von JSON-Mustern mit regulären Ausdrücken oder Pydantic-Modellen für die eingeschränkte Dekodierung. Seine leistungsstarke Laufzeit beschleunigt die JSON-Dekodierung.
SynCode (MIT) ist ein Framework zur grammatikgesteuerten Generierung von Large Language Models (LLMs). Es unterstützt kontextunabhängige Grammatiken (CFGs) für Python, Go, Java, JSON, YAML und mehr.
Mirascope (MIT) ist ein LLM-Toolkit, das strukturierte Extraktion unterstützt und eine intuitive Python-API bietet.
Magnetisch (MIT) Rufen Sie LLM in Python in drei Zeilen Code auf. Erstellen Sie einfach LLM-Funktionen, die eine strukturierte Ausgabe mit dem @prompt-Dekorator zurückgeben, der von Pydantic unterstützt wird.
Formatron (MIT) ist eine effiziente und erweiterbare Bibliothek zur Dekodierung von Constraints, die die Verwendung von f-String-Templates zur Steuerung von Sprachmodell-Ausgabeformaten, regulären Ausdrücken, kontextunabhängigen Grammatiken, JSON-Schemata und Pydantic-Modellen unterstützt.Formatron lässt sich nahtlos in eine Vielzahl von Modellinferenz-Bibliotheken integrieren.
Transformatoren-cfg (MIT) erweitert die Context-Free Grammar (CFG) Unterstützung für Hugging Face Transformers über die EBNF-Schnittstelle, die eine syntaxbeschränkte Generierung mit minimalen Änderungen am Transformers-Code und Unterstützung für JSON-Muster und JSON-Modi implementiert.
Blog-Beiträge
Wie schnell werden syntaktische Strukturen erzeugt? (2024-04-12, .txt Engineering) demonstriert eine nahezu kostenneutrale Methode zur Erzeugung grammatikalisch korrekter Texte. Bei der C-Syntax schneidet es besser ab als lama.cpp
Bis zu 50 Mal.
Strukturierte Generierung zur Verbesserung der LLM-Leistung: GSM8K-Benchmarks (2024-03-15, .txt Engineering) Zeigt die Verbesserung der Konsistenz bei 8 Modellen, wobei die Vorteile der "Cue-Konsistenz" und der "Gedankenkontrolle" betont werden.
LoRAX + Outlines: Bessere JSON-Extraktion mit strukturierter Generierung und LoRA (2024-03-03, Predibase Blog) Die Kombination von Outlines mit LoRAX v0.8 verbessert die Extraktionsgenauigkeit und die Vollständigkeit der Muster durch strukturierte Erzeugung, Feinabstimmung und LoRA-Adapter.
FU, ein kurzer Blick auf die schwer verständlichen Tipps zum LLM-Rahmen. (2023-02-14, Hamel Husain) Bietet eine praktische Anleitung zum Abfangen von API-Aufrufen mit mitmproxy, um die Funktionalität des Tools zu verstehen und seine Notwendigkeit zu bewerten. Der Schwerpunkt liegt auf der Reduzierung der Komplexität und der engen Integration mit dem zugrunde liegenden LLM.
Coalescence: 5x schnelleres LLM-Schlussfolgern (2024-02-02, .txt Engineering) demonstrierte den Einsatz von "Aggregations"-Techniken zur Beschleunigung der strukturierten Generierung, die schneller ist als die unstrukturierte Generierung, aber die Qualität der Generierung beeinträchtigen kann.
Warum Pydantic für LLMs unerlässlich ist (2024-01-19, Adam Azzam) erläuterte das Aufkommen von Pydantic als Schlüsselinstrument, das die gemeinsame Nutzung von Datenmodellen über JSON-Schemata und die Inferenz zwischen unstrukturierten und strukturierten Daten ermöglicht. Es wurde die Bedeutung der Quantifizierung des Entscheidungsraums hervorgehoben sowie das potenzielle Problem der LLM-Überanpassung bei älteren Schemaversionen.
Erste Schritte mit Funktionsaufrufen (2024-01-11, Elvis Saravia) stellte Funktionsaufrufe für die Verbindung von LLMs mit externen Tools und APIs vor, lieferte Beispiele für die Verwendung der OpenAI-API und zeigte mögliche Anwendungen auf.
ChatGPTs Unterstützung für strukturierte Daten bis an die Grenzen ausreizen (2023-12-21, Max Woolf) erforscht die Verwendung von kostenpflichtigen APIs, JSON-Schemata und Pydantic, um die Vorteile der ChatGPT Methoden der Funktionalität. Es werden Techniken zur Verbesserung der Qualität der Ausgabe und die Vorteile der Unterstützung strukturierter Daten vorgestellt.
Warum sollten Sie sich für Instructor entscheiden? (2023-11-18, Jason Liu) erläutert die Vorteile der Bibliothek und bietet einen leicht verständlichen Ansatz, Unterstützung für partielle Extraktion und verschiedene Typen sowie einen Selbstkorrekturmechanismus. Empfiehlt weitere Ressourcen auf der Website des Ausbilders.
Verwendung der Syntax zur Einschränkung der Ausgabe von llama.cpp (2023-09-06, Ian Maurer) Kombination von kontextunabhängiger Syntax zur Verbesserung der Ausgabegenauigkeit von llama.cpp, insbesondere für biomedizinische Daten.
Datenextraktion mit OpenAI-Funktionen und der Python-Bibliothek (2023-07-09, Simon Willison) Demonstriert die Extraktion strukturierter Daten in einem einzigen API-Aufruf über die OpenAI-Python-Bibliothek und Funktionsaufrufe, mit Codebeispielen und Vorschlägen für den Umgang mit Stream-Constraints.
Video
(2024-04-09, Simon Willison) zeigt, wie das datasette-extract Plugin Daten aus unstrukturiertem Text und Bildern extrahieren und über die API von GPT-4 Turbo in Datenbanktabellen einfügen kann.
(2024-03-25, Andrej Baranovskij) demonstrierte die funktionsaufrufbasierte Datenextraktion mit Ollama, Instructor und Sperling-Agent .
(2024-03-18, Prompt Engineer) stellte Hermes 2 Pro vor, ein Modell mit 7 Milliarden Parametern, das sich durch Funktionsaufrufe und die Erzeugung strukturierter JSON-Ausgaben auszeichnet. Es zeigte eine Genauigkeit von 90% für Funktionsaufrufe und 84% im JSON-Modus und übertraf damit andere Modelle.
(2024-02-24, Sophia Yang) demonstrierte die Verbindung großer Sprachmodelle mit externen Tools, die Erzeugung von Funktionsargumenten und die Ausführung von Funktionen. Dies kann weiter ausgebaut werden, um JSON-Daten zu erzeugen oder zu manipulieren.
(2024-02-13.Matt Williams) stellt klar, dass die vom Modell erzeugte strukturierte Ausgabe für das Parsing und den Aufruf von Funktionen verwendet wird. Die Implementierungen werden verglichen, wobei Folgendes hervorgehoben wird Ollama Der Ansatz ist prägnanter und verwendet eine kleine Anzahl von Mustertipps, um die Konsistenz zu wahren.
(2024-02-12.Jason Liu(math.) GattungProgramm Gewichte & Verzerrungen) bietet einen prägnanten Kurs über die Verwendung von Pydantic für strukturierte JSON-Ausgabe, Funktionsaufrufe und Validierung, der die Grundlagen für den Aufbau robuster Pipelines und effizienter Produktionsintegrationen vermittelt.
(2023-10-10.Jason Liu(math.) GattungKonferenz für AI-Ingenieure) erörtert die Bedeutung von Pydantic für strukturiertes Cueing und Output-Validierung, stellt die Instructor-Bibliothek vor und demonstriert fortgeschrittene Anwendungen für zuverlässige und wartbare LLM-Anwendungen.
Jupyter-Notizbücher
Funktionsaufrufe mit llama-cpp-python und dem OpenAI-Python-Client Demonstriert die Integration, einschließlich der Einrichtung unter Verwendung der Instructor-Bibliothek, und bietet Beispiele für den Erhalt von Wetterinformationen und die Extraktion von Benutzerdetails.
Funktionsaufrufe nach dem Mistral-Modell Zeigt die Verbindung eines Mistral-Modells mit einem externen Tool anhand eines einfachen Beispiels mit einem Zahlungsverkehrsdatenrahmen.
chatgpt-strukturierte-daten es (jemandem) überlassen Max Woolf demonstriert die Funktionsaufrufe von ChatGPT und die Unterstützung strukturierter Daten, die eine Vielzahl von Anwendungsfällen und Datenstrukturen abdecken.
die Charts (der Bestseller)
Berkeley-Funktionsaufruf-Rangliste (BFCL) ist ein Evaluierungsrahmen zum Testen der Funktionsaufruf-Fähigkeiten von LLMs, bestehend aus mehr als 2000 Frage-Funktions-Antwort-Paaren in Sprachen wie Python, Java, JavaScript, SQL und REST-APIs, mit einem Schwerpunkt auf einfachen, mehrfachen und parallelen Funktionsaufrufen sowie auf der Erkennung von Funktionsrelevanz.