Elevando os Anúncios do Airbnb: GPT-4o Mini vs. Soneto 3.5 da Anthropic em RAG Agêntico
Explore o desempenho do GPT-4o Mini vs. o Sonnet 3.5 da Anthropic na criação de agentes para descrições de listagens do Airbnb. Aprenda a configurar um conjunto de dados prático, embeddings e um pipeline RAG ativo usando Llama Index e VectorDB. Descubra os pontos fortes e as limitações de cada modelo nesta comparação abrangente.
16 de fevereiro de 2025

Descubra como o último modelo GPT-4o Mini da OpenAI se comporta na criação de agentes para o Agentic RAG, uma técnica poderosa para recuperação de informações. Este post de blog fornece uma comparação prática com o modelo Anthropic Cloud 3.5 Sonnet, usando um conjunto de dados do Airbnb do mundo real para destacar as capacidades e limitações de cada modelo em um fluxo de trabalho agentic.
Apresentando o GPT-4o Mini: Um Modelo Econômico para RAG Agêntico
Configurando o Ambiente e os Dados
Incorporando o Conjunto de Dados do Airbnb
Criando o Armazenamento de Vetores e a Ferramenta de Mecanismo de Consulta
Implementando o Agente Trabalhador
Comparando o GPT-4o Mini e o Cloud 3.5 Sonnet como Agentes
Conclusão
Apresentando o GPT-4o Mini: Um Modelo Econômico para RAG Agêntico
Apresentando o GPT-4o Mini: Um Modelo Econômico para RAG Agêntico
O GPT-4o Mini é o modelo mais recente e mais econômico da OpenAI, e é um dos modelos com melhor desempenho em sua faixa de preço. No entanto, a questão permanece: quão bom é este modelo para a criação de agentes, especificamente para a Geração Aumentada por Recuperação (RAG) ativa?
Nesta seção, exploraremos o desempenho do GPT-4o Mini em comparação com o modelo Anthropic Cloud 3.5 Sonnet, que é uma escolha popular para a RAG ativa. Usaremos um conjunto de dados prático, o conjunto de dados de incorporações do Airbnb do MongoDB, para testar as capacidades desses modelos.
O conjunto de dados contém várias colunas de metadados, e vamos pré-processar os dados para criar uma entrada adequada para o pipeline RAG. Usaremos o Llama Index para configurar a implementação da RAG, aproveitando suas capacidades ativas.
Para o LLM ou agente, usaremos tanto o GPT-4o Mini quanto o Cloud 3.5 Sonnet, e para o VectorDB, confiaremos no ChromaDB. Percorreremos o processo de configuração, incluindo a instalação das bibliotecas necessárias, a configuração das variáveis de ambiente e a configuração dos modelos LLM e de incorporação.
Configurando o Ambiente e os Dados
Configurando o Ambiente e os Dados
Para começar, primeiro precisamos configurar as bibliotecas e variáveis de ambiente necessárias. Vamos instalar os pacotes necessários, incluindo o Llama Index, OpenAI e ChromaDB.
Em seguida, vamos configurar as variáveis de ambiente, incluindo a chave da API OpenAI e o token Hugging Face (se necessário).
Depois, vamos configurar o modelo de linguagem (LLM) e os modelos de incorporação. Para o LLM, usaremos o modelo GPT-4 OM Mini. Para as incorporações, usaremos o modelo OpenAI TextEmbedding3 small, que nos permite personalizar o tamanho da incorporação para reduzir os custos de computação e armazenamento.
Após configurar os modelos, passaremos para o carregamento e processamento dos dados. Usaremos o conjunto de dados de incorporações do Airbnb do MongoDB, focando nos primeiros 2.000 pontos de dados para manter o tempo de processamento e os custos gerenciáveis.
Incorporando o Conjunto de Dados do Airbnb
Incorporando o Conjunto de Dados do Airbnb
Para incorporar o conjunto de dados do Airbnb, primeiro convertemos o conjunto de dados em uma lista de documentos JSON. Em seguida, criamos um modelo de metadados que inclui informações importantes, como o nome da listagem do Airbnb, o resumo, as regras da casa, o tipo de propriedade, o tipo de quarto, o tipo de quarto, o número de quartos e o número de camas. Esses metadados são adicionados ao texto que será incorporado.
Em seguida, dividimos o texto em pedaços de 5.000 caracteres para garantir que cada vetor de incorporação possa capturar as informações relevantes. Então, calculamos as incorporações usando o modelo OpenAI TextEmbedding3 small, que nos permite personalizar o tamanho da incorporação para reduzir os custos de computação e armazenamento.
Depois de calcular as incorporações, armazenamo-las em um armazenamento de vetores ChromaDB, que servirá como a base de conhecimento para nosso agente. Criamos uma classe QueryEngineToolClass que fornecerá ao agente acesso ao armazenamento de vetores, permitindo que ele recupere os pedaços de texto mais relevantes com base na consulta do usuário.
Criando o Armazenamento de Vetores e a Ferramenta de Mecanismo de Consulta
Criando o Armazenamento de Vetores e a Ferramenta de Mecanismo de Consulta
Para criar o agente de trabalho, primeiro definimos as ferramentas que estarão disponíveis para o agente. Neste caso, usamos a classe QueryEngineToolV2
do Llama Index, que fornece acesso ao armazenamento de vetores que criamos anteriormente.
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]
Em seguida, criamos o agente de trabalho usando a classe FunctionCallingAgentWorker
do Llama Index. Fornecemos a lista de ferramentas e o modelo de linguagem (GPT-4 Mini neste caso) ao agente de trabalho.
agent_worker = FunctionCallingAgentWorker(
tools,
self.llm,
verbose=True
)
self.agent = agent_worker
Agora, podemos usar a função chat
do agente para interagir com ele. Podemos fornecer o agente com um prompt e ele usará as ferramentas para gerar uma resposta.
Implementando o Agente Trabalhador
Implementando o Agente Trabalhador
Nesta seção, comparamos o desempenho do GPT-4o Mini e do Cloud 3.5 Sonnet como agentes em um fluxo de trabalho prático de RAG (Geração Aumentada por Recuperação) ativa usando o conjunto de dados de incorporações do Airbnb do MongoDB.
As principais conclusões são:
-
GPT-4o Mini como Agente: Embora o GPT-4o Mini seja um modelo capaz, ele tem dificuldades com o fluxo de trabalho ativo. O processo de pensamento do modelo não é bem articulado, e as respostas carecem do nível de detalhes e precisão esperado de um agente eficaz.
-
Cloud 3.5 Sonnet como Agente: Em contraste, o Cloud 3.5 Sonnet demonstra desempenho superior como agente. Ele reescreve os prompts de forma eficaz, usa a ferramenta de base de conhecimento para reunir informações relevantes e fornece respostas detalhadas e precisas, mesmo quando a base de conhecimento não possui informações específicas sobre o tópico solicitado.
-
Importância de LLMs Poderosos para Fluxos de Trabalho Ativos: A comparação destaca a importância de usar um LLM mais poderoso e capaz, como o Cloud 3.5 Sonnet, para fluxos de trabalho ativos. A capacidade do agente de entender o contexto, reescrever prompts e gerar respostas de alta qualidade é crucial para a conclusão eficaz da tarefa e a interação com o usuário.
Comparando o GPT-4o Mini e o Cloud 3.5 Sonnet como Agentes
Comparando o GPT-4o Mini e o Cloud 3.5 Sonnet como Agentes
A comparação entre o GPT-4o Mini e o Cloud 3.5 Sonnet da Anthropic para tarefas de RAG (Geração Aumentada por Recuperação) ativa destaca a importância da capacidade do modelo quando se trata de fluxos de trabalho baseados em agentes. Embora o GPT-4o Mini seja um modelo capaz e econômico, ele fica aquém nos aspectos ativos da tarefa, conforme demonstrado por sua reescrita de prompt simplista e respostas menos detalhadas.
Em contraste, o modelo Anthropic Cloud 3.5 Sonnet demonstra um comportamento ativo mais robusto e sofisticado. Ele reescreve efetivamente os prompts, reúne informações relevantes da base de conhecimento e fornece respostas detalhadas e perspicazes, mesmo quando confrontado com uma consulta sobre um local não presente no conjunto de dados.
Esta comparação ressalta a necessidade de considerar cuidadosamente as capacidades do modelo ao projetar fluxos de trabalho baseados em agentes. Embora o GPT-4o Mini possa ser adequado para determinadas tarefas, aplicações ativas mais complexas podem exigir o uso de um modelo mais poderoso e especializado, como o Anthropic Cloud 3.5 Sonnet, para alcançar o nível de desempenho e experiência do usuário desejado.
Perguntas frequentes
Perguntas frequentes