Elevare gli annunci Airbnb: GPT-4o Mini vs. Sonetto 3.5 di Anthropic in RAG Agentico
Esplora le prestazioni di GPT-4o Mini rispetto a Sonnet 3.5 di Anthropic nella creazione di agenti per le descrizioni delle inserzioni di Airbnb. Impara come impostare un dataset pratico, gli embedding e una pipeline RAG agentica utilizzando Llama Index e VectorDB. Scopri i punti di forza e i limiti di ciascun modello in questa comparazione completa.
24 febbraio 2025

Scopri come il modello GPT-4o Mini più recente di OpenAI si comporta nella creazione di agenti per Agentic RAG, una potente tecnica per il recupero di informazioni. Questo post di blog fornisce un confronto pratico con il modello Anthropic Cloud 3.5 Sonnet, utilizzando un dataset Airbnb del mondo reale per mettere in mostra le capacità e i limiti di ciascun modello in un flusso di lavoro agentico.
Introduzione a GPT-4o Mini: un modello conveniente per RAG agenziale
Configurazione dell'ambiente e dei dati
Incorporare il dataset Airbnb
Creazione dello strumento Vector Store e Query Engine
Implementazione dell'Agent Worker
Confronto tra GPT-4o Mini e Cloud 3.5 Sonnet come agenti
Conclusione
Introduzione a GPT-4o Mini: un modello conveniente per RAG agenziale
Introduzione a GPT-4o Mini: un modello conveniente per RAG agenziale
GPT-4o Mini è il modello più recente e più conveniente di OpenAI ed è uno dei modelli con le migliori prestazioni nella sua fascia di prezzo. Tuttavia, rimane la domanda: quanto è buono questo modello per la creazione di agenti, in particolare per l'Agentic Retrieval-Augmented Generation (RAG)?
In questa sezione, esploreremo le prestazioni di GPT-4o Mini in confronto al modello Anthropic Cloud 3.5 Sonnet, che è una scelta popolare per l'agentic RAG. Utilizzeremo un set di dati pratico, il set di dati degli embedding di Airbnb di MongoDB, per testare le capacità di questi modelli.
Il set di dati contiene varie colonne di metadati e preprocesseremo i dati per creare un input adatto per la pipeline RAG. Utilizzeremo Llama Index per impostare l'implementazione RAG, sfruttando le sue capacità agentiche.
Per l'LLM o l'agente, utilizzeremo sia GPT-4o Mini che Cloud 3.5 Sonnet, e per il VectorDB, ci affideremo a ChromaDB. Percorreremo il processo di configurazione, inclusa l'installazione delle librerie richieste, l'impostazione delle variabili di ambiente e la configurazione dei modelli LLM e di embedding.
Configurazione dell'ambiente e dei dati
Configurazione dell'ambiente e dei dati
Per iniziare, dobbiamo prima impostare le librerie richieste e le variabili di ambiente. Installeremo i pacchetti necessari, inclusi Llama Index, OpenAI e ChromaDB.
Successivamente, configureremo le variabili di ambiente, inclusa la chiave API di OpenAI e il token di Hugging Face (se necessario).
Poi configureremo il modello LLM (Language Model) e i modelli di embedding. Per l'LLM, utilizzeremo il modello GPT-4 OM Mini. Per gli embedding, utilizzeremo il modello OpenAI TextEmbedding3 small, che ci consente di personalizzare la dimensione dell'embedding per ridurre i costi di calcolo e di archiviazione.
Dopo aver impostato i modelli, passeremo al caricamento e all'elaborazione dei dati. Utilizzeremo il set di dati degli embedding di Airbnb di MongoDB, concentrandoci sui primi 2.000 punti dati per mantenere il tempo di elaborazione e i costi gestibili.
Incorporare il dataset Airbnb
Incorporare il dataset Airbnb
Per incorporare il set di dati di Airbnb, convertiamo prima il set di dati in un elenco di documenti JSON. Creiamo quindi un modello di metadati che include informazioni importanti come il nome della quotazione di Airbnb, il riepilogo, le regole della casa, il tipo di proprietà, il tipo di camera, il tipo di camera da letto, il numero di camere da letto e il numero di letti. Questi metadati vengono aggiunti al testo che verrà incorporato.
Successivamente, dividiamo il testo in frammenti di 5.000 caratteri per garantire che ogni vettore di embedding possa catturare le informazioni rilevanti. Calcoliamo quindi gli embedding utilizzando il modello OpenAI TextEmbedding3 small, che ci consente di personalizzare la dimensione dell'embedding per ridurre i costi di calcolo e di archiviazione.
Dopo aver calcolato gli embedding, li memorizziamo in un archivio vettoriale ChromaDB, che servirà come base di conoscenza per il nostro agente. Creiamo una QueryEngineToolClass che fornirà all'agente l'accesso all'archivio vettoriale, consentendogli di recuperare i frammenti di testo più rilevanti in base alla query dell'utente.
Creazione dello strumento Vector Store e Query Engine
Creazione dello strumento Vector Store e Query Engine
Per creare il lavoratore dell'agente, definiamo prima gli strumenti che saranno disponibili per l'agente. In questo caso, utilizziamo la classe QueryEngineToolV2
di Llama Index, che fornisce l'accesso all'archivio vettoriale che abbiamo creato in precedenza.
query_engine_tool = QueryEngineToolV2(
"Knowledge base",
"Fornisce informazioni sulle quotazioni e le recensioni di Airbnb, utilizza una domanda in testo semplice dettagliata come input per lo strumento.",
self.vector_store
)
tools = [query_engine_tool]
Successivamente, creiamo il lavoratore dell'agente utilizzando la classe FunctionCallingAgentWorker
di Llama Index. Forniamo l'elenco degli strumenti e il modello di linguaggio (GPT-4 Mini in questo caso) al lavoratore dell'agente.
agent_worker = FunctionCallingAgentWorker(
tools,
self.llm,
verbose=True
)
self.agent = agent_worker
Ora possiamo utilizzare la funzione chat
dell'agente per interagire con esso. Possiamo fornire all'agente un prompt e esso utilizzerà gli strumenti per generare una risposta.
Implementazione dell'Agent Worker
Implementazione dell'Agent Worker
In questa sezione, confrontiamo le prestazioni di GPT-4o Mini e Cloud 3.5 Sonnet come agenti in un flusso di lavoro pratico di agentic RAG (Retrieval Augmented Generation) utilizzando il set di dati degli embedding di Airbnb di MongoDB.
I principali risultati sono:
-
GPT-4o Mini come Agente: Sebbene GPT-4o Mini sia un modello capace, fatica con il flusso di lavoro agentico. Il processo di pensiero del modello non è ben articolato e le risposte mancano del livello di dettaglio e accuratezza atteso da un agente efficace.
-
Cloud 3.5 Sonnet come Agente: Al contrario, Cloud 3.5 Sonnet dimostra prestazioni superiori come agente. Riscrive i prompt in modo efficace, utilizza lo strumento della base di conoscenza per raccogliere informazioni rilevanti e fornisce risposte dettagliate e accurate, anche quando la base di conoscenza non dispone di informazioni specifiche sull'argomento richiesto.
-
Importanza di LLM potenti per i flussi di lavoro agentici: Il confronto evidenzia l'importanza di utilizzare un LLM più potente e capace, come Cloud 3.5 Sonnet, per i flussi di lavoro agentici. La capacità dell'agente di comprendere il contesto, riscrivere i prompt e generare risposte di alta qualità è fondamentale per un'esecuzione efficace dei compiti e un'interazione efficace con l'utente.
Confronto tra GPT-4o Mini e Cloud 3.5 Sonnet come agenti
Confronto tra GPT-4o Mini e Cloud 3.5 Sonnet come agenti
Il confronto tra GPT-4o Mini e il modello Anthropic Cloud 3.5 Sonnet per i compiti di agentic RAG (Retrieval Augmented Generation) evidenzia l'importanza delle capacità del modello quando si tratta di flussi di lavoro basati su agenti. Mentre GPT-4o Mini è un modello capace e conveniente, risulta carente negli aspetti agentici del compito, come dimostrato dalla sua riscrittura semplice dei prompt e dalle risposte meno dettagliate.
Invece, il modello Anthropic Cloud 3.5 Sonnet mostra un comportamento agentico più robusto e sofisticato. Riscrive efficacemente i prompt, raccoglie informazioni rilevanti dalla base di conoscenza e fornisce risposte dettagliate e approfondite, anche di fronte a una query su una posizione non presente nel set di dati.
Questo confronto sottolinea la necessità di considerare attentamente le capacità del modello nella progettazione di flussi di lavoro basati su agenti. Mentre GPT-4o Mini può essere adatto per determinati compiti, le applicazioni agentiche più complesse possono richiedere l'utilizzo di un modello più potente e specializzato, come l'Anthropic Cloud 3.5 Sonnet, per raggiungere il livello di prestazioni e di esperienza utente desiderato.
FAQ
FAQ