ブレーメン大学の熱狂的な修士課程の学生グループによって開発された楽しくインタラクティブなプロジェクト「Moin Von Bremen」へようこそ。このプロジェクトでは、LLMS(大規模な言語モデル)の世界に飛び込み、検索拡張生成の力(RAG)を探り、マルチモダリティの概念を実験します。一緒に、私たちは愛する都市ブレーメンのためのオーディオシティガイドを作成しました! ?§
このプロジェクトは、オーディオシティガイドとして機能できるチャットボットを構築するというアイデアから始まる魅力的な旅です。ブレーメン大学で勉強している間、私たちの家であるブレーメンよりも良い都市は何ですか?このガイドを使用すると、ブレーメンがこれまでにないように知ることができます!
私たちは地元の知識をウィキペディアからの信頼できる事実と組み合わせて、魅力的で有益な体験を作り出しました。これが私たちがそれをした方法の段階的な内訳です:
データ生成:Wikipediaの画像とデータを調達して、チャットボットをサポートしました。これがどのように行われたかの詳細については、 datageneration.ipynbファイルをご覧ください。
LLM&RAG :あなた自身の個人的なボットを構築することに興味がありますか?私たちもそうだった!ドメイン固有の知識アプリケーションを開発するために、LLMSと人気のあるRAGテクニックを掘り下げました。 RAGは、大規模な企業が専門的なアプリケーションを作成するために広く使用されています。もっと知りたいですか?この洞察に満ちたぼろきれの記事を読んでください。
Chromadbを使用したテキスト埋め込み: textdata_chromadb.pyファイルで私たちの旅は続き、ChromaDBを使用したベクトル埋め込みを使用してRAGを開発しました。スムーズなユーザーインターフェイスのためにGradioを使用してAPIを構築しました。また、テキストと画像の両方のコレクションを作成することにより、マルチモーダルの概念を実験しました。プロンプトが与えられた場合、システムはデータベース内の最も関連性の高い画像とテキストを検索します。
ベクトル埋め込み:ベクトル埋め込みの概念は、データベースから最も関連性の高いデータを取得するために検索中に使用される関連する数値コンテキストの作成に拡張されます。詳細な説明については、埋め込みデータベースとベクトルデータベースに関するこの記事をご覧ください。
FAISSを使用したオーディオガイド:今後、 audiodata_faissEmbedding.pyにコードを実装してオーディオガイドを開発しました。オーディオからテキストへの変換のために、OpenaiのWhisper ASRモデルを使用しました。ささやきの詳細については、こちらをご覧ください。メルスペクトログラムへの興味深いディビングについては、この記事をご覧ください。
FAISS:FAISSとの類似性検索は、Facebook AI Researchによって開発され、高密度ベクトルの効率的な類似性検索とクラスタリングのために設計されています。ベクトル表現に基づいて、データセット内で同様のアイテムを見つけるのに非常に便利です。詳細な説明については、FAISS公式ページをご覧ください。
なぜこのプロジェクトのためにFAISSよりもChromadbを選んだのですか?これが簡単な比較です:
マルチモーダル検索(画像埋め込みを使用したテキストの検索など)の場合、ChromADBはFAISSよりも柔軟性を提供します。次の図に示されているMain.pyでの意思決定プロセスと実装を分析します(ここに図を挿入)。
このプロジェクトを始めるには、次の手順に従ってください。
pip install -r requirements.txtdataフォルダーに存在します。