본문 바로가기

Tools/Azure

[Azure] Vector DB 선택하기✅ Azure AI Search vs Cosmos DB

 

 

Azure를 이용해 RAG기반의 LLM 챗봇을 구현하고자할 때 챗봇 구현의 경우 목적과 기능에 따라 다르지만,

일반적으로는 DB를 다음과 같이 선택할 수 있음!

 

Azure AI Search가 더 적합한 경우:

  1. 다양한 문서/데이터를 기반으로 하는 QA 챗봇
    • PDF, Word, PowerPoint 등 다양한 문서 형식 처리 가능
    • 내부 문서, 매뉴얼, FAQ 등을 검색해서 답변
  2. RAG(Retrieval-Augmented Generation) 패턴 구현
    • 최신 정보로 쉽게 업데이트 가능
    • 더 정확한 검색과 관련 컨텍스트 제공
  3. 다국어 지원이 필요한 경우
  4. 검색 품질 최적화가 중요한 경우

 

Cosmos DB가 더 적합한 경우:

  1. 대화 이력 관리가 중요한 챗봇
    • 사용자와의 대화 기록 저장/조회
    • 사용자 프로필/선호도 관리
  2. 실시간 트랜잭션 처리가 필요한 경우
  3. 간단한 구조의 QA 시스템

 

 

실제 구현시에는 하이브리드 접근방식으로 두 서비스 모두 사용하는 것이 좋음

  • Cosmos DB: 대화 이력, 사용자 정보 저장
  • Azure AI Search: 지식 베이스 검색, RAG 구현

간단한 챗봇이라면 Azure AI Search만으로도 충분할 수 있지만, 더 복잡한 기능이 필요하다면 두 서비스를 조합해 채팅시 대화이력에 대한 정보를 추가하는 것이 좋음

 

 

CosmosDB가 아니라더라고 여러가지 DB형태로 사용할 수 있음

 


실제 구현 관련글

 ➡️  Azure Data를 사용한 검색 증강 LLM 샘플

 

GitHub - microsoft/AzureDataRetrievalAugmentedGenerationSamples: Samples to demonstrate pathways for Retrieval Augmented Generat

Samples to demonstrate pathways for Retrieval Augmented Generation (RAG) for Azure Data - GitHub - microsoft/AzureDataRetrievalAugmentedGenerationSamples: Samples to demonstrate pathways for Retri...

github.com

  1. Azure 데이터베이스 제품에 샘플 데이터 추가
  2. Azure OpenAI Embeddings 모델을 사용하여 샘플 데이터에서 임베딩을 만듭니다.
  3. Azure 데이터베이스 제품을 Azure Cognitive Search에 연결합니다(네이티브 벡터 인덱싱이 없는 데이터베이스의 경우)
  4. 임베딩에 대한 벡터 인덱스를 생성합니다.
  5. 벡터 유사성 검색 수행
  6. Azure OpenAI Completions 모델을 사용하여 샘플 데이터에 대한 질문 답변 수행

 

 ➡️ Azure DB - CosmosDB구성하기

 

AzureDataRetrievalAugmentedGenerationSamples/Python/CosmosDB-NoSQL_VectorSearch/CosmosDB-NoSQL-Quickstart-RAG-Chatbot.ipynb at m

Samples to demonstrate pathways for Retrieval Augmented Generation (RAG) for Azure Data - microsoft/AzureDataRetrievalAugmentedGenerationSamples

github.com