Anhebung von Airbnb-Angeboten: GPT-4o Mini vs. Anthropics 3.5 Sonett in Agentic RAG
Untersuchen Sie die Leistung von GPT-4o Mini im Vergleich zu Anthropics 3.5 Sonnet bei der Erstellung von Agenten für Airbnb-Listenbeschreibungen. Erfahren Sie, wie Sie einen praktischen Datensatz, Embeddings und eine agentenbasierte RAG-Pipeline mit Llama Index und VectorDB einrichten. Entdecken Sie die Stärken und Grenzen jedes Modells in diesem umfassenden Vergleich.
24. Februar 2025

Entdecken Sie, wie das neueste GPT-4o Mini-Modell von OpenAI bei der Erstellung von Agenten für Agentic RAG, einer leistungsfähigen Technik für die Informationssuche, abschneidet. Dieser Blogbeitrag bietet einen praktischen Vergleich mit dem Anthropic Cloud 3.5 Sonnet-Modell und verwendet einen realen Airbnb-Datensatz, um die Fähigkeiten und Grenzen jedes Modells in einem agentischen Workflow zu veranschaulichen.
Einführung in GPT-4o Mini: Ein kostengünstiges Modell für agentenbasiertes RAG
Einrichten der Umgebung und der Daten
Einbinden des Airbnb-Datensatzes
Erstellen des Vektorspeichers und des Abfrage-Engine-Tools
Implementierung des Agent-Workers
Vergleich von GPT-4o Mini und Cloud 3.5 Sonnet als Agenten
Schlussfolgerung
Einführung in GPT-4o Mini: Ein kostengünstiges Modell für agentenbasiertes RAG
Einführung in GPT-4o Mini: Ein kostengünstiges Modell für agentenbasiertes RAG
GPT-4o Mini ist das neueste und kostengünstigste Modell von OpenAI und gehört zu den am besten performenden Modellen in seinem Preissegment. Die Frage bleibt jedoch: Wie gut ist dieses Modell für die Erstellung von Agenten, insbesondere für agentenbasierte Retrieval-Augmented Generation (RAG)?
In diesem Abschnitt werden wir die Leistung von GPT-4o Mini im Vergleich zum Anthropic Cloud 3.5 Sonnet-Modell, das eine beliebte Wahl für agentenbasierte RAG ist, untersuchen. Wir werden einen praktischen Datensatz, den Airbnb-Embeddings-Datensatz von MongoDB, verwenden, um die Fähigkeiten dieser Modelle zu testen.
Der Datensatz enthält verschiedene Metadatenspalten, und wir werden die Daten vorverarbeiten, um eine geeignete Eingabe für die RAG-Pipeline zu erstellen. Wir werden Llama Index verwenden, um die RAG-Implementierung einzurichten und seine agentenbasierten Fähigkeiten zu nutzen.
Für den LLM oder Agenten werden wir sowohl GPT-4o Mini als auch Cloud 3.5 Sonnet verwenden, und für die VectorDB werden wir auf ChromaDB setzen. Wir werden den Einrichtungsprozess durchgehen, einschließlich der Installation der erforderlichen Bibliotheken, der Einrichtung von Umgebungsvariablen und der Konfiguration der LLM- und Embedding-Modelle.
Einrichten der Umgebung und der Daten
Einrichten der Umgebung und der Daten
Um loszulegen, müssen wir zunächst die erforderlichen Bibliotheken und Umgebungsvariablen einrichten. Wir werden die notwendigen Pakete, einschließlich Llama Index, OpenAI und ChromaDB, installieren.
Als Nächstes werden wir die Umgebungsvariablen konfigurieren, einschließlich des OpenAI-API-Schlüssels und des Hugging Face-Tokens (falls erforderlich).
Anschließend werden wir das LLM (Language Model) und die Embedding-Modelle einrichten. Für das LLM werden wir das GPT-4 OM Mini-Modell verwenden. Für die Embeddings werden wir das OpenAI TextEmbedding3 Small-Modell verwenden, das es uns ermöglicht, die Embedding-Größe anzupassen, um Rechenleistung und Speicherkosten zu reduzieren.
Nach dem Einrichten der Modelle werden wir mit dem Laden und Verarbeiten der Daten fortfahren. Wir werden den Airbnb-Embeddings-Datensatz von MongoDB verwenden und uns auf die ersten 2.000 Datenpunkte konzentrieren, um die Verarbeitungszeit und -kosten überschaubar zu halten.
Einbinden des Airbnb-Datensatzes
Einbinden des Airbnb-Datensatzes
Um den Airbnb-Datensatz zu embedden, konvertieren wir den Datensatz zunächst in eine Liste von JSON-Dokumenten. Dann erstellen wir eine Metadaten-Vorlage, die wichtige Informationen wie den Namen der Airbnb-Unterkunft, die Zusammenfassung, die Hausregeln, den Objekttyp, den Raumtyp, den Schlafzimmertyp, die Anzahl der Schlafzimmer und die Anzahl der Betten enthält. Diese Metadaten werden dem Text hinzugefügt, der eingebettet werden soll.
Als Nächstes teilen wir den Text in Blöcke von 5.000 Zeichen auf, um sicherzustellen, dass jeder Embedding-Vektor die relevanten Informationen erfassen kann. Dann berechnen wir die Embeddings mit dem OpenAI TextEmbedding3 Small-Modell, das es uns ermöglicht, die Embedding-Größe anzupassen, um Rechenleistung und Speicherkosten zu reduzieren.
Nach dem Berechnen der Embeddings speichern wir sie in einem ChromaDB-Vektorstore, der als Wissensbasis für unseren Agenten dienen wird. Wir erstellen eine QueryEngineToolClass, die dem Agenten Zugriff auf den Vektorstore bietet und es ihm ermöglicht, die relevantesten Textblöcke basierend auf der Benutzerabfrage abzurufen.
Erstellen des Vektorspeichers und des Abfrage-Engine-Tools
Erstellen des Vektorspeichers und des Abfrage-Engine-Tools
Um loszulegen, müssen wir zunächst die erforderlichen Bibliotheken und Umgebungsvariablen einrichten. Wir werden die notwendigen Pakete, einschließlich Llama Index, ChromaDB und der OpenAI-Modelle, installieren.
Als Nächstes werden wir unser LLM und unsere Embedding-Modelle einrichten. Für das LLM werden wir das GPT-4 OM Mini-Modell verwenden, und für die Embeddings werden wir das OpenAI TextEmbedding3 Small-Modell verwenden.
Anschließend werden wir den Airbnb-Datensatz laden und vorverarbeiten, die vorhandenen Textembeddings löschen und unsere eigenen metadatenreichen Textblöcke erstellen. Diese Blöcke werden eingebettet und in einem ChromaDB-Vektorstore gespeichert.
Um das Abfrage-Engine-Tool zu erstellen, werden wir die Llama Index QueryEngine
-Tool-Klasse verwenden, die Zugriff auf den Vektorstore bietet und es uns ermöglicht, die k ähnlichsten Blöcke für eine gegebene Abfrage abzurufen. Wir werden dieses Tool als Teil der Wissensbasis des Agenten definieren.
Schließlich werden wir den Agenten-Worker erstellen, der das LLM und das Abfrage-Engine-Tool kombiniert, um mit dem Agenten zu interagieren und die besten Airbnb-Unterkünfte für einen bestimmten Standort abzurufen.
Implementierung des Agent-Workers
Implementierung des Agent-Workers
Um den Agenten-Worker zu erstellen, definieren wir zunächst die Tools, die dem Agenten zur Verfügung stehen werden. In diesem Fall verwenden wir die QueryEngineToolV2
-Klasse von Llama Index, die Zugriff auf den zuvor erstellten Vektorstore bietet.
query_engine_tool = QueryEngineToolV2(
"Knowledge base",
"Provides information about Airbnb listings and reviews, use a detailed plain text question as input to the tool.",
self.vector_store
)
tools = [query_engine_tool]
Als Nächstes erstellen wir den Agenten-Worker mit Hilfe der FunctionCallingAgentWorker
-Klasse von Llama Index. Wir übergeben die Liste der Tools und das Sprachmodell (in diesem Fall GPT-4 Mini) an den Agenten-Worker.
agent_worker = FunctionCallingAgentWorker(
tools,
self.llm,
verbose=True
)
self.agent = agent_worker
Nun können wir die chat
-Funktion des Agenten verwenden, um mit ihm zu interagieren. Wir können dem Agenten eine Eingabeaufforderung geben, und er wird die Tools verwenden, um eine Antwort zu generieren.
prompt = "Tell me the best listing for a place in New York."
result = self.agent.chat(prompt)
print(result)
Die Antwort des Agenten wird den Denkprozess und die endgültige Antwort enthalten. In diesem Fall ist die Antwort des GPT-4 Mini-Agenten nicht so detailliert oder aufschlussreich wie die Antwort des Anthropic 3.5 Sonnet-Agenten.
Vergleich von GPT-4o Mini und Cloud 3.5 Sonnet als Agenten
Vergleich von GPT-4o Mini und Cloud 3.5 Sonnet als Agenten
Der Vergleich zwischen GPT-4o Mini und Anthropic's Cloud 3.5 Sonnet für agentenbasierte RAG (Retrieval Augmented Generation)-Aufgaben hebt die Bedeutung der Modellleistung für agentenbasierte Workflows hervor. Während GPT-4o Mini ein leistungsfähiges und kostengünstiges Modell ist, bleibt es in den agentenspezifischen Aspekten der Aufgabe hinter den Erwartungen zurück, wie an seiner einfachen Umformulierung der Eingabeaufforderungen und weniger detaillierten Antworten zu sehen ist.
Im Gegensatz dazu zeigt das Anthropic Cloud 3.5 Sonnet-Modell ein robusteres und ausgereifteres agentenbasiertes Verhalten. Es formuliert die Eingabeaufforderungen effektiv um, sammelt relevante Informationen aus der Wissensbasis und liefert detaillierte und aufschlussreiche Antworten, selbst wenn es mit einer Abfrage zu einem Standort konfrontiert wird, der nicht im Datensatz enthalten ist.
Dieser Vergleich unterstreicht die Notwendigkeit, die Fähigkeiten des Modells sorgfältig zu berücksichtigen, wenn man agentenbasierte Workflows entwirft. Während GPT-4o Mini für bestimmte Aufgaben geeignet sein kann, erfordern komplexere agentenbasierte Anwendungen möglicherweise den Einsatz eines leistungsfähigeren und spezialisierten Modells wie des Anthropic Cloud 3.5 Sonnet, um das gewünschte Leistungsniveau und Benutzererlebnis zu erreichen.
FAQ
FAQ