Höja Airbnb-annonser: GPT-4o Mini vs. Anthropics 3.5 Sonnet i Agentic RAG

Utforska prestandan hos GPT-4o Mini jämfört med Anthropics 3.5 Sonnet när det gäller att skapa agenter för Airbnb-listningsbeskrivningar. Lär dig hur du konfigurerar en praktisk datauppsättning, inbäddningar och en agenturisk RAG-pipeline med hjälp av Llama Index och VectorDB. Upptäck styrkor och begränsningar hos varje modell i denna omfattande jämförelse.

16 februari 2025

party-gif

Upptäck hur den senaste GPT-4o Mini-modellen från OpenAI presterar när det gäller att skapa agenter för Agentic RAG, en kraftfull teknik för informationshämtning. Den här blogginlägget ger en praktisk jämförelse med Anthropic Cloud 3.5 Sonnet-modellen, med hjälp av en verklig Airbnb-datamängd för att visa på varje modells möjligheter och begränsningar i en agentbaserad arbetsflöde.

Introduktion av GPT-4o Mini: En kostnadseffektiv modell för Agentic RAG

GPT-4o Mini är den senaste och mest kostnadseffektiva modellen från OpenAI, och den är en av de bäst presterande modellerna i sitt prisintervall. Frågan kvarstår dock: hur bra är denna modell för att skapa agenter, särskilt agenttillämpningar för Retrieval-Augmented Generation (RAG)?

I det här avsnittet kommer vi att utforska prestandan hos GPT-4o Mini i jämförelse med Anthropic Cloud 3.5 Sonnet-modellen, som är ett populärt val för agenttillämpningar för RAG. Vi kommer att använda en praktisk datamängd, Airbnb-embeddings-datauppsättningen från MongoDB, för att testa dessa modellers kapacitet.

Datauppsättningen innehåller olika metadata-kolumner, och vi kommer att förbearbeta data för att skapa en lämplig inmatning för RAG-pipelinen. Vi kommer att använda Llama Index för att konfigurera RAG-implementeringen och dra nytta av dess agenttillämpningar.

För LLM eller agenten kommer vi att använda både GPT-4o Mini och Cloud 3.5 Sonnet, och för VectorDB kommer vi att förlita oss på ChromaDB. Vi kommer att gå igenom installationsprocessen, inklusive installation av de nödvändiga biblioteken, konfiguration av miljövariabler och konfiguration av LLM- och inbäddningsmodeller.

Konfigurera miljön och data

För att komma igång behöver vi först konfigurera de nödvändiga biblioteken och miljövariablerna. Vi kommer att installera de nödvändiga paketen, inklusive Llama Index, OpenAI och ChromaDB.

Därefter kommer vi att konfigurera miljövariablerna, inklusive OpenAI API-nyckeln och Hugging Face-token (om det behövs).

Vi kommer sedan att konfigurera LLM (Language Model) och inbäddningsmodeller. För LLM kommer vi att använda GPT-4 OM Mini-modellen. För inbäddningarna kommer vi att använda OpenAI TextEmbedding3 small-modellen, som gör det möjligt för oss att anpassa inbäddningsstorleken för att minska beräknings- och lagringskostnader.

Efter att ha konfigurerat modellerna kommer vi att gå vidare till att läsa in och bearbeta data. Vi kommer att använda Airbnb-inbäddningsdatauppsättningen från MongoDB och fokusera på de första 2 000 datapunkterna för att hålla bearbetningstiden och kostnaderna hanterliga.

Inbäddning av Airbnb-datauppsättningen

För att bädda in Airbnb-datauppsättningen konverterar vi först datauppsättningen till en lista med JSON-dokument. Vi skapar sedan en metadatamall som innehåller viktig information som namnet på Airbnb-listan, sammanfattning, husregler, fastighetstyp, rumstyp, sovrumstyp, antal sovrum och antal sängar. Denna metadata läggs till i den text som ska bäddas in.

Därefter delar vi in texten i segment på 5 000 tecken för att säkerställa att varje inbäddningsvektor kan fånga relevant information. Vi beräknar sedan inbäddningarna med hjälp av OpenAI TextEmbedding3 small-modellen, vilket gör det möjligt för oss att anpassa inbäddningsstorleken för att minska beräknings- och lagringskostnader.

Efter att ha beräknat inbäddningarna lagrar vi dem i en ChromaDB-vektorlagringsplats, som kommer att fungera som kunskapsbasen för vår agent. Vi skapar en QueryEngineToolClass som ger agenten tillgång till vektorlagringsplatsen, vilket gör det möjligt för den att hämta de mest relevanta textavsnitten baserat på användarens fråga.

Skapa vektorlagret och verktyget för frågemotorn

För att skapa agentarbetaren definierar vi först de verktyg som kommer att vara tillgängliga för agenten. I det här fallet använder vi klassen QueryEngineToolV2 från Llama Index, som ger tillgång till den vektorlagringsplats vi skapade tidigare.

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]

Därefter skapar vi agentarbetaren med hjälp av klassen FunctionCallingAgentWorker från Llama Index. Vi tillhandahåller listan med verktyg och språkmodellen (GPT-4 Mini i det här fallet) till agentarbetaren.

agent_worker = FunctionCallingAgentWorker(
    tools,
    self.llm,
    verbose=True
)
self.agent = agent_worker

Nu kan vi använda chat-funktionen hos agenten för att interagera med den. Vi kan ge agenten en prompt, och den kommer att använda verktygen för att generera ett svar.

Implementera agentarbetaren

I det här avsnittet jämför vi prestandan hos GPT-4o Mini och Cloud 3.5 Sonnet som agenter i ett praktiskt agenttillämpat RAG (Retrieval Augmented Generation)-arbetsflöde med hjälp av Airbnb-inbäddningsdatauppsättningen från MongoDB.

De viktigaste resultaten är:

  1. GPT-4o Mini som agent: Även om GPT-4o Mini är en kapabel modell, kämpar den med det agenttillämpade arbetsflödet. Modellens tankeprocess är inte väl artikulerad, och svaren saknar den nivå av detalj och noggrannhet som förväntas av en effektiv agent.

  2. Cloud 3.5 Sonnet som agent: I kontrast visar Cloud 3.5 Sonnet överlägsen prestanda som agent. Den omformulerar prompterna effektivt, använder kunskapsbasverktyget för att samla in relevant information och ger detaljerade och korrekta svar, även när kunskapsbasen inte har specifik information om det efterfrågade ämnet.

  3. Vikten av kraftfulla LLM:er för agenttillämpade arbetsflöden: Jämförelsen belyser vikten av att använda en mer kraftfull och kapabel LLM, som Cloud 3.5 Sonnet, för agenttillämpade arbetsflöden. Agentens förmåga att förstå sammanhanget, omformulera prompter och generera högkvalitativa svar är avgörande för effektiv uppgiftsutförande och användarinteraktion.

FAQ