Bienvenue dans "Moin von Bremen", un projet amusant et interactif développé par un groupe d'étudiants de maîtrise enthousiastes de l'Université de Brême. Dans ce projet, nous plongeons dans le monde des LLM (modèles de grande langue), explorons la puissance de la génération augmentée (RAG) de la récupération et expérimentons le concept de multimodalité. Ensemble, nous avons créé un guide de la ville audio pour notre ville bien-aimée de Brême! ? ️
Ce projet est un voyage fascinant qui commence par l'idée de construire un chatbot capable de servir de guide de la ville audio. Quelle meilleure ville de choisir que Brême, notre maison tout en étudiant à l'Université de Brême? Avec ce guide, vous apprendrez à connaître les Brême comme jamais auparavant!
Nous avons combiné nos connaissances locales avec des faits fiables de Wikipedia pour créer une expérience engageante et informative. Voici une ventilation étape par étape de la façon dont nous l'avons fait:
Génération de données : nous avons acheté des images et des données de Wikipedia pour soutenir notre chatbot. Consultez le fichier datageneration.ipynb pour plus de détails sur la façon dont cela a été fait.
LLM & RAG : Curieux de construire votre propre bot personnel? Alors étions-nous! Nous avons plongé dans les LLM et la technique de chiffon toujours populaire pour développer une application de connaissances spécifique au domaine. Le chiffon est largement utilisé par les grandes entreprises pour créer des applications spécialisées. Vous voulez en savoir plus? Lisez cet article de Rag Insightful.
Texte intégrée avec ChromAdb : Notre voyage s'est poursuivi avec le fichier textdata_chromadb.py , où nous avons développé des chiffons en utilisant des incorporations de vecteur avec ChromAdb. Nous avons même construit une API en utilisant Gradio pour une interface utilisateur fluide. Nous avons également expérimenté des concepts multimodaux en créant des collections pour le texte et les images. Lorsqu'on lui donne une invite, le système recherche l'image et le texte les plus pertinents de la base de données.
Incorporation vectorielle : le concept d'incorporation vectorielle s'étend à la création de contextes numériques pertinents, qui sont utilisés lors des recherches pour extraire les données les plus pertinentes de la base de données. Pour une explication approfondie, consultez cet article sur les intégres et les bases de données vectorielles.
Guide audio avec FAISS : Avocation, nous avons développé un guide audio en implémentant le code dans audiodata_faissEmbedding.py . Nous avons utilisé le modèle Whisper ASR d'OpenAI pour la conversion audio-text. En savoir plus sur Whisper ici. Pour une plongée profonde intéressante dans les spectrogrammes MEL, consultez cet article.
Recherche de similitude avec FAISS : FAISS, développée par Facebook AI Research, est conçue pour une recherche efficace de similitude et un regroupement de vecteurs denses. Il est incroyablement utile pour trouver des éléments similaires dans un ensemble de données en fonction de leurs représentations vectorielles. Pour une explication détaillée, visitez la page officielle FAISS.
Pourquoi avons-nous choisi ChromAdb via Faish pour ce projet? Voici une comparaison rapide:
Pour les recherches multimodales (comme la recherche de texte avec des incorporations d'images), ChromAdB offre plus de flexibilité que FAISS. Nous décomposons notre processus décisionnel et la mise en œuvre dans Main.py , illustré dans le diagramme suivant (diagramme d'insertion ici).
Pour commencer ce projet, suivez ces étapes:
pip install -r requirements.txtdata .