Home › Fóruns › Domine LLMs com LangChain › Base de documentos – exportação e atualização incremental.
Marcado: Introdução
- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 1 semana, 1 dia atrás por Gabriel Alves.
- AutorPosts
- 29 de setembro de 2024 às 09:57 #46160
Olá professores!
Solicito ajuda para realizar o mapeamento/embeddings de 1000 trabalhos monográficos, inclusive fazendo o reconhecimento das figuras/tabelas. Seria mais adequado usar o Faiss ou o Chromadb? Por se tratar de um processo bem demorado, como faço para gerar um arquivo que pudesse ser aproveitado em outras implementações/testes que eu for fazer? Preciso também que haja uma atualização incremental dessa base, por exemplo, eu indico uma pasta da rede da empresa e, sempre que houver atualizações nos arquivos desta pasta, o Faiss ou o Chromadb faria atualização apenas incremental da base de mapeamento de trabalhos monográficos.
Estou pensando em criar mais de uma base de mapeamento e utilizar um agente para o LLM definir em qual base buscar os resultados. Por exemplo, eu poderia ter uma base de legislação (interna e externa) e outra com esses trabalhos monográficos. Seria perfeito se eu conseguisse também ter um agente para analisar banco de dados operacionais da empresa pública.
Por se tratar de documentos de empresa pública, todos os procedimentos devem rodar localmente. Inclusive sem a utilização de API de serviços em nuvem.
- Este tópico foi modificado 1 semana, 4 dias atrás por Jose Emilio de Lucena Junior.
2 de outubro de 2024 às 09:29 #46173Olá!
Tanto o Faiss quanto o ChromaDB são opções viáveis para rodar localmente sem depender de APIs, mas eles têm características diferentes, então a escolha vai depender das suas necessidades específicas. Esse artigo explica bem as diferenças de cada e onde um pode ser melhor que outro, mas basicamente: Faiss é altamente escalável e principalmente na busca vetorial, pode ser preferível se seu principal objetivo é velocidade e eficiência em buscas especialmente em grandes conjuntos de dados; já Chroma é mais usado quando preza por flexibilidade maior, geralmente mais fácil de gerenciar, trabalhando com metadados para uma busca otimizada.
Caso tenha preocupações com eficiência, o Faiss tende a ser melhor nesse quesito, além de ser mais otimizada para se trabalhar com GPU (então se tiver uma à disposição será mais interessante). Ainda quanto à performance, recomendo dar uma olhada nesse comparativo.
Para adição incremental de documentos, você pode usar o método add_documents (exemplo).
E para salvar localmente, você pode usar o método save_local(), que também foi usado durante o projeto 3. E depois, usar a função load_local, assim por exemplo:
vector_store.save_local(“faiss_index”)
n_vector_store = FAISS.load_local(“faiss_index”, embeddings, allow_dangerous_deserialization=True)
Referente à ideia de ter múltiplas bases de mapeamento para diferentes tipos de conteúdo (legislação e monografias, por exemplo) realmente é bem interessante! Um agente LLM poderia ser configurado para direcionar as buscas para a base apropriada dependendo do contexto da consulta. Então usar um agente para conectar um LLM às diferentes bases facilita a modularidade e garante que você consiga expandir as funcionalidades, inclusive buscando em bases como de legislação interna e externa.- Esta resposta foi modificada 1 semana, 1 dia atrás por Gabriel Alves.
- AutorPosts
- Você deve fazer login para responder a este tópico.