Bem -vindo a "Moin von Bremen", um projeto divertido e interativo desenvolvido por um grupo de estudantes de mestrado entusiasmado da Universidade de Bremen. Neste projeto, mergulhamos no mundo dos LLMs (grandes modelos de idiomas), exploramos o poder da geração aumentada de recuperação (RAG) e experimentamos o conceito de multimodalidade. Juntos, criamos um guia da cidade de áudio para nossa amada cidade de Bremen! ? ️
Este projeto é uma jornada fascinante que começa com a idéia de construir um chatbot capaz de servir como um guia da cidade de áudio. Que cidade melhor escolher do que Bremen, nossa casa enquanto estudava na Universidade de Bremen? Com este guia, você conhecerá Bremen como nunca antes!
Combinamos nosso conhecimento local com fatos confiáveis da Wikipedia para criar uma experiência envolvente e informativa. Aqui está um colapso passo a passo de como fizemos isso:
Geração de dados : adquirimos imagens e dados da Wikipedia para apoiar nosso chatbot. Confira o arquivo datageneration.ipynb para obter mais detalhes sobre como isso foi feito.
LLM & RAG : Curioso sobre a construção de seu próprio bot pessoal? Nós também éramos! Nós nos aprofundamos no LLMS e na sempre popular técnica de RAG para desenvolver uma aplicação de conhecimento específica de domínio. O RAG é amplamente utilizado por grandes empresas para criar aplicativos especializados. Quer aprender mais? Leia este artigo perspicaz do trapo.
INCLIMENTOS DE TEXTO COM CROMADB : Nossa jornada continuou com o arquivo textdata_chromadb.py , onde desenvolvemos RAG usando incorporações de vetor com Chromadb. Até construímos uma API usando o graduio para uma interface de usuário suave. Também experimentamos conceitos multimodais, criando coleções para texto e imagens. Quando recebido um prompt, o sistema procura a imagem e texto mais relevantes no banco de dados.
Incorporação do vetor : o conceito de incorporação de vetores se estende à criação de contextos numéricos relevantes, que são usados durante as pesquisas para extrair os dados mais relevantes do banco de dados. Para uma explicação aprofundada, consulte este artigo nos bancos de dados de incorporação e vetor.
Guia de áudio com FAISS : Avançando, desenvolvemos um guia de áudio implementando o código em audiodata_faissEmbedding.py . Utilizamos o modelo ASR Whisper ASR do OpenAI para conversão de áudio em texto. Saiba mais sobre sussurros aqui. Para um mergulho profundo interessante nos espectrogramas MEL, consulte este artigo.
A Pesquisa de Similaridade com a FAISS : FAISS, desenvolvida pela Facebook AI Research, foi projetada para busca eficiente de similaridade e agrupamento de vetores densos. É incrivelmente útil para encontrar itens semelhantes em um conjunto de dados com base em suas representações vetoriais. Para uma explicação detalhada, visite a página oficial do FAISS.
Por que escolhemos o Chromadb sobre o FAISS para este projeto? Aqui está uma comparação rápida:
Para pesquisas multimodais (como pesquisar texto com incorporação de imagens), o Chromadb oferece mais flexibilidade do que o FAISS. Dividimos nosso processo de tomada de decisão e a implementação em Main.py , ilustrada no diagrama a seguir (inserir diagrama aqui).
Para começar com este projeto, siga estas etapas:
pip install -r requirements.txtdata .