Bienvenido a "Moin von Bremen", un proyecto divertido e interactivo desarrollado por un grupo de entusiastas estudiantes de maestría de la Universidad de Bremen. En este proyecto, nos sumergimos en el mundo de las LLM (modelos de idiomas grandes), exploramos el poder de la generación aumentada de recuperación (RAG) y experimentamos con el concepto de multimodalidad. ¡Juntos, creamos una guía de Audio City para nuestra querida ciudad de Bremen! ? ️
Este proyecto es un viaje fascinante que comienza con la idea de construir un chatbot capaz de servir como una guía de la ciudad de audio. ¿Qué mejor ciudad para elegir que Bremen, nuestro hogar mientras estudiaba en la Universidad de Bremen? Con esta guía, ¡conocerás a Bremen como nunca antes!
Combinamos nuestro conocimiento local con hechos confiables de Wikipedia para crear una experiencia atractiva e informativa. Aquí hay un desglose paso a paso de cómo lo hicimos:
Generación de datos : obtuvimos imágenes y datos de Wikipedia para admitir nuestro chatbot. Consulte el archivo datageneration.ipynb para obtener más detalles sobre cómo se hizo esto.
LLM & RAG : ¿Curioso por construir su propio bot personal? ¡Así lo estábamos! Nos profundizamos en LLM y la técnica de RAG siempre popular para desarrollar una aplicación de conocimiento específica del dominio. El RAG es ampliamente utilizado por grandes empresas para crear aplicaciones especializadas. ¿Quieres aprender más? Lea este artículo de trapo perspicaz.
Incruscaciones de texto con ChromAdB : Nuestro viaje continuó con el archivo textdata_chromadb.py , donde desarrollamos RAG utilizando integridades vectoriales con ChromAdB. Incluso construimos una API usando Gradio para una interfaz de usuario suave. También experimentamos con conceptos multimodales creando colecciones tanto para texto como para imágenes. Cuando se le da un aviso, el sistema busca la imagen y el texto más relevantes en la base de datos.
Incrustación de vectores : el concepto de incrustación vectorial se extiende a la creación de contextos numéricos relevantes, que se utilizan durante las búsquedas para extraer los datos más relevantes de la base de datos. Para obtener una explicación en profundidad, consulte este artículo sobre incrustaciones y bases de datos vectoriales.
Guía de audio con FAISS : en el futuro, desarrollamos una guía de audio mediante la implementación del código en audiodata_faissEmbedding.py . Utilizamos el modelo Whisper ASR de OpenAI para la conversión de audio a texto. Aprenda más sobre Whisper aquí. Para obtener una inmersión profunda interesante en los espectrogramas MEL, consulte este artículo.
La búsqueda de similitud con FAISS : FAISS, desarrollada por Facebook AI Research, está diseñada para una búsqueda de similitud eficiente y agrupación de vectores densos. Es increíblemente útil para encontrar elementos similares en un conjunto de datos basado en sus representaciones vectoriales. Para una explicación detallada, visite la página oficial de FAISS.
¿Por qué elegimos ChromadB sobre FAISS para este proyecto? Aquí hay una comparación rápida:
Para búsquedas multimodales (como buscar texto con embedidas de imagen), ChromAdB ofrece más flexibilidad que FAISS. Desglosamos nuestro proceso de toma de decisiones y la implementación en Main.py , ilustrada en el siguiente diagrama (inserte el diagrama aquí).
Para comenzar con este proyecto, siga estos pasos:
pip install -r requirements.txtdata .