브레멘 대학교 (University of Bremen)의 열광적 인 석사 학생들이 개발 한 재미 있고 대화식 프로젝트 인 "Moin von Bremen"에 오신 것을 환영합니다. 이 프로젝트에서 우리는 LLMS의 세계 (대형 언어 모델)로 뛰어 들고, 검색 증강 세대 (RAG)의 힘을 탐구하며 다중 분위기 개념을 실험합니다. 함께, 우리는 사랑하는 도시 브레멘을위한 오디오 시티 가이드를 만들었습니다! ? ️
이 프로젝트는 오디오 시티 가이드 역할을 할 수있는 챗봇을 구축한다는 아이디어로 시작하는 매혹적인 여행입니다. 브레멘 대학교에서 공부하는 동안 우리 집인 Bremen보다 더 좋은 도시는 무엇입니까? 이 가이드를 사용하면 전례없이 Bremen을 알게 될 것입니다!
우리는 현지 지식을 Wikipedia의 신뢰할 수있는 사실과 결합하여 매력적이고 유익한 경험을 만들었습니다. 다음은 우리가 어떻게했는지에 대한 단계별 분석입니다.
데이터 생성 : 챗봇을 지원하기 위해 Wikipedia의 이미지와 데이터를 공급합니다. 이 작업 수행 방법에 대한 자세한 내용은 datageneration.ipynb 파일을 확인하십시오.
LLM & RAG : 자신만의 개인 봇을 짓는 것에 대해 궁금하십니까? 우리도! 우리는 도메인 별 지식 응용 프로그램을 개발하기 위해 LLM과 인기있는 헝겊 기술을 탐구했습니다. RAG는 대기업에서 전문화 된 응용 프로그램을 만드는 데 널리 사용됩니다. 더 배우고 싶습니까? 이 통찰력있는 헝겊 기사를 읽으십시오.
ChromADB를 사용한 텍스트 임베딩 : 우리의 여정은 textdata_chromadb.py 파일로 계속되었으며, 여기서 ChromADB를 사용하여 벡터 임베딩을 사용하여 Rag를 개발했습니다. 원활한 사용자 인터페이스를 위해 Gradio를 사용하여 API를 구축했습니다. 또한 텍스트와 이미지 모두에 대한 컬렉션을 만들어 멀티 모달 개념을 실험했습니다. 프롬프트가 주어지면 시스템은 데이터베이스에서 가장 관련성이 높은 이미지와 텍스트를 검색합니다.
벡터 임베딩 : 벡터 임베딩의 개념은 데이터베이스에서 가장 관련성이 높은 데이터를 가져 오기 위해 검색 중에 사용되는 관련 숫자 컨텍스트 생성으로 확장됩니다. 심층적 인 설명은 임베딩 및 벡터 데이터베이스에 대한이 기사를 확인하십시오.
FAISS와 함께 오디오 가이드 : 앞으로 audiodata_faissEmbedding.py 에서 코드를 구현하여 오디오 안내서를 개발했습니다. 우리는 오디오-텍스트 변환을 위해 OpenAi의 Whisper ASR 모델을 사용했습니다. Whisper에 대해 자세히 알아보십시오. Mel Spectrograms에 대한 흥미로운 깊은 다이빙은이 기사를 확인하십시오.
Facebook AI Research에서 개발 한 FAISS : FAISS와의 유사성 검색은 밀집된 벡터의 효율적인 유사성 검색 및 클러스터링을 위해 설계되었습니다. 벡터 표현을 기반으로 데이터 세트에서 유사한 항목을 찾는 데 매우 유용합니다. 자세한 설명은 FAISS 공식 페이지를 방문하십시오.
이 프로젝트에서 왜 ChromADB Over Faiss를 선택 했습니까? 다음은 빠른 비교입니다.
Multi-Modal 검색의 경우 (이미지 임베드가있는 텍스트 검색) ChromADB는 FAISS보다 유연성을 제공합니다. 다음 다이어그램 (여기에 다이어그램 삽입)에 설명 된 의사 결정 프로세스와 Main.py 의 구현을 분류합니다.
이 프로젝트를 시작하려면 다음 단계를 따르십시오.
pip install -r requirements.txtdata 폴더에 있습니다.