Analisando Dados Não Estruturados com o Motor de Consulta Universal
Uma nova abordagem pra analisar dados não estruturados usando técnicas avançadas de consulta.
― 7 min ler
Índice
- O Problema com Dados Não Estruturados
- Visão Geral do UQE
- Aprendendo a Pesquisar
- Linguagem de Consulta Universal (UQL)
- Estrutura do UQL
- Implementando o UQE
- Execução de Consultas
- Métodos de Indexação
- Implementação de Kernels
- Avaliando o Desempenho do UQE
- Agregação Condicional
- Recuperação Semântica
- Abstração e Agregação
- Conclusão
- Trabalhos Futuros
- Fonte original
- Ligações de referência
Analisar dados estruturados é uma área bem estabelecida com várias técnicas eficientes. Mas, muita informação do mundo real é não estruturada, como imagens e conversas. Este artigo fala sobre como modelos de linguagem grandes (LLMs) podem ajudar a analisar Dados Não Estruturados. Apresentamos um novo Motor de Consulta Universal (UQE) que pode fazer perguntas e coletar insights de conjuntos de dados não estruturados. O UQE usa uma Linguagem de Consulta Universal (UQL), parecida com SQL, que permite que os usuários usem a linguagem natural para especificar condições e operações.
O UQE tira proveito da força dos LLMs na análise de dados não estruturados, aplicando técnicas avançadas de amostragem e otimização para um desempenho de consulta eficiente e preciso. Também adotamos alguns métodos da teoria tradicional de compiladores para melhorar o fluxo de trabalho entre as técnicas de amostragem e as chamadas de modelo.
Nossos achados mostram que o UQE é eficaz para analisar vários tipos de dados não estruturados, como imagens, conversas e avaliações. Essa capacidade pode ajudar a reunir insights úteis, apoiando decisões mais inteligentes para negócios e sociedade.
O Problema com Dados Não Estruturados
Enquanto sistemas tradicionais de gerenciamento de dados usam dados estruturados com esquemas pré-definidos, a maior parte da informação com que lidamos é não estruturada. Isso inclui formatos diversos como texto, imagens e áudio, que não são facilmente organizados em esquemas pré-definidos. Motores SQL comuns têm dificuldades com esses dados não estruturados porque frequentemente precisam de pré-processamento pra se encaixar em um formato estruturado. O pré-processamento pode ser cansativo, exigindo treinamento adicional em tarefas específicas.
Isso levanta uma questão importante: como podemos analisar dados não estruturados de uma maneira mais flexível e eficiente?
Motores de busca de texto completo já conseguem lidar com buscas simples em dados não estruturados, mas falham em consultas mais complexas que requerem raciocínio semântico mais profundo. Abordagens como Geração Aumentada por Recuperação (RAG) podem responder a perguntas com base em dados relevantes, mas não são adequadas para tarefas analíticas mais gerais que exigem agregação ou raciocínio por toda uma grande base de dados. Avanços em LLMs mostraram que eles podem fazer perguntas de forma flexível. Mesmo assim, ainda existem desafios, especialmente em relação aos custos e à eficácia quando afinados para tarefas específicas.
Alguns esforços recentes tentaram combinar LLMs com frameworks de programação, permitindo que a computação seja deslocada para intérpretes. No entanto, esses métodos podem ser caros se exigirem a varredura de grandes bancos de dados.
Para enfrentar esses desafios, propomos o UQE, que combina LLMs com estratégias avançadas de amostragem e otimização para criar um motor de consulta mais eficiente para dados não estruturados.
Visão Geral do UQE
O UQE busca refinar como analisamos dados não estruturados. Nos inspiramos em motores SQL, focando em duas ideias principais: construir estruturas de indexação para evitar a varredura de toda a base de dados e usar um sistema de compilação para determinar a melhor ordem de execução das operações.
Aprendendo a Pesquisar
No UQE, tratamos o desafio de consultar dados não estruturados como um problema de aprendizado. O objetivo é evitar a varredura completa do banco de dados utilizando técnicas de amostragem para tomar decisões estatisticamente sólidas. Ao enquadrar isso como um problema de busca, o UQE pode recuperar de forma eficiente as linhas relevantes para processamento.
Consultas de Agregação
Estimativa Imparcial paraO UQE pode realizar consultas de agregação sem precisar varrer todas as linhas em uma coluna virtual. Usando LLMs para classificar se uma linha atende às condições específicas, podemos estimar totais sem varreduras completas. Vários métodos de amostragem podem ser empregados para minimizar tanto o viés quanto a variância nas estimativas.
Aprendizado Online para Consultas Não-Aggregadas
Para consultas não-agregadas, o UQE usa uma abordagem de aprendizado online. Cada passo informa o próximo, equilibrando exploração e exploração para encontrar linhas relevantes que se encaixam nas condições definidas pelo usuário. Esse método aumenta o recall enquanto se mantém dentro de limitações de orçamento.
Linguagem de Consulta Universal (UQL)
Para se comunicar com o UQE, desenvolvemos uma nova linguagem de consulta: UQL. Essa linguagem é baseada em SQL, mas inclui extensões para suportar consultas sobre dados não estruturados e colunas virtuais.
Estrutura do UQL
- SELECT especifica o que deve ser exibido.
- FROM identifica a fonte de dados.
- WHERE aplica filtros nas linhas.
- GROUP BY permite agrupar linhas com base em atributos comuns.
Por exemplo, uma consulta UQL pode parecer assim:
SELECT "o sentimento da crítica do filme" AS sentimento
FROM criticas_filmes
WHERE "a crítica é positiva"
GROUP BY "o motivo pelo qual a crítica é positiva"
Aqui, o UQE interpretaria os componentes em linguagem natural para buscar os dados relevantes no banco.
Implementando o UQE
Execução de Consultas
Executar UQL envolve interpretar consultas de uma maneira que agilize o acesso aos dados necessários. Uma abordagem simples seria usar métodos interpretativos básicos. No entanto, para conjuntos de dados maiores, isso pode causar atrasos significativos. Para melhorar a eficiência, empregamos duas técnicas:
- Indexação organiza os dados de uma forma que acelera as buscas.
- Compilação otimiza planos de execução de consultas para garantir que seguimos o caminho mais eficiente para obter resultados.
Métodos de Indexação
No UQE, em vez de indexação tradicional, introduzimos um método proxy que nos permite usar o conteúdo semântico de uma coluna virtual. Isso nos possibilita executar consultas de forma eficiente sem varrer todo o banco de dados.
Implementação de Kernels
Cada kernel é uma unidade de execução autônoma que processa tabelas, sejam estruturadas ou não. Os kernels lidam com vários comandos UQL e otimizam sua funcionalidade para entregar resultados rapidamente.
Avaliando o Desempenho do UQE
Para mostrar a eficácia do UQE, criamos conjuntos de dados de benchmark com dados de texto e imagem em várias tarefas analíticas. Comparamos o desempenho do UQE com métodos existentes como LLMs de longo contexto e sistemas de recuperação baseados em embeddings.
Nossos resultados confirmaram que o UQE melhora significativamente tanto a precisão quanto a relação custo-efetividade ao analisar dados não estruturados.
Agregação Condicional
Essa tarefa envolve fornecer estatísticas agregadas com base em condições especificadas. O UQE demonstrou erros relativos reduzidos enquanto alcançava custos mais baixos em comparação com métodos tradicionais.
Recuperação Semântica
Nesta tarefa, o UQE localiza linhas que satisfazem condições específicas. Os resultados mostraram que o UQE teve um desempenho consistentemente bom, especialmente em cenários desafiadores onde o número de linhas atendendo às condições era pequeno.
Abstração e Agregação
Esta última tarefa requer resumir dados agrupando atributos semelhantes e fornecendo estatísticas sobre esses grupos. O UQE superou métodos de referência enquanto mantinha custos baixos.
Conclusão
O UQE proposto é capaz de analisar dados não estruturados de forma eficiente, aproveitando técnicas avançadas de amostragem e aprendizado online. Embora nosso trabalho atual tenha limitações em termos de semântica de consultas mais complexas e escalabilidade para conjuntos de dados maiores, vemos um potencial promissor para o UQE melhorar a análise de dados em contextos de negócios e do dia a dia.
Nossos esforços futuros buscarão abordar essas limitações, expandindo ainda mais as capacidades do UQE para apoiar uma gama mais ampla de consultas e aplicações.
Trabalhos Futuros
Explorar mais sobre a seleção automatizada de LLMs e estratégias de amostragem vai aprimorar o desempenho do UQE. Também planejamos melhorar a capacidade do nosso motor de consultas para lidar com bancos de dados maiores de forma mais eficaz e incorporar semânticas mais complexas no UQL. Com esses desenvolvimentos, esperamos fortalecer a posição do UQE como uma ferramenta poderosa para análise de dados não estruturados.
Título: UQE: A Query Engine for Unstructured Databases
Resumo: Analytics on structured data is a mature field with many successful methods. However, most real world data exists in unstructured form, such as images and conversations. We investigate the potential of Large Language Models (LLMs) to enable unstructured data analytics. In particular, we propose a new Universal Query Engine (UQE) that directly interrogates and draws insights from unstructured data collections. This engine accepts queries in a Universal Query Language (UQL), a dialect of SQL that provides full natural language flexibility in specifying conditions and operators. The new engine leverages the ability of LLMs to conduct analysis of unstructured data, while also allowing us to exploit advances in sampling and optimization techniques to achieve efficient and accurate query execution. In addition, we borrow techniques from classical compiler theory to better orchestrate the workflow between sampling methods and foundation model calls. We demonstrate the efficiency of UQE on data analytics across different modalities, including images, dialogs and reviews, across a range of useful query types, including conditional aggregation, semantic retrieval and abstraction aggregation.
Autores: Hanjun Dai, Bethany Yixin Wang, Xingchen Wan, Bo Dai, Sherry Yang, Azade Nova, Pengcheng Yin, Phitchaya Mangpo Phothilimthana, Charles Sutton, Dale Schuurmans
Última atualização: 2024-11-16 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2407.09522
Fonte PDF: https://arxiv.org/pdf/2407.09522
Licença: https://creativecommons.org/licenses/by/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.
Ligações de referência
- https://github.com/voyage-ai/voyageai-python
- https://api.semanticscholar.org/CorpusID:5276660
- https://api.semanticscholar.org/CorpusID:212814759
- https://api.semanticscholar.org/CorpusID:261276437
- https://api.semanticscholar.org/CorpusID:159041042
- https://www.aclweb.org/anthology/P11-1015
- https://api.semanticscholar.org/CorpusID:6715185
- https://api.semanticscholar.org/CorpusID:258291425
- https://api.semanticscholar.org/CorpusID:237491759
- https://cloud.google.com/vertex-ai/generative-ai/docs/embeddings/get-multimodal-embeddings
- https://api.semanticscholar.org/CorpusID:6715526
- https://api.semanticscholar.org/CorpusID:218674345
- https://api.semanticscholar.org/CorpusID:52979524
- https://api.semanticscholar.org/CorpusID:52815560
- https://github.com/facebookresearch/faiss