텍스트, 이미지, 차트 등 다양한 형태의 데이터를 처리할 수 있는 RAG
Multimodal embedding
- 서로 다른 modality를 하나의 공통된 벡터 공간에 표현하는 기술
- 각 modality 간의 상관관계를 학습하여 데이터를 통합
- 각 modality 간 유사성 계산 가능, 텍스트와 이미지간의 관계를 이해하고 예측을 수행할 수 있음
Multimodal RAG 구현 방안
- multimodal RAG를 구현하기 위해서는 서로 다른 유형의 데이터를 임베딩하여 데이터 간의 의미와 관계를 저장해야함
- 사용자로부터 이미지 또는 텍스트 형태의 요청이 있을 때, 입력을 임베딩하여 관련 데이터를 효과적으로 검색하는 것이 중요
(1) Multimodal Embedding Retrieval
- 텍스트와 이미지를 동일한 벡터 공간에 임베딩하여 통합적으로 처리
- 텍스트와 이미지를 결합하여 Multimodal embedding model이 단일 벡터를 생성 -> 이를 사용해 검색 수행
- 동일한 벡터 공간에 임베딩하므로 일관된 비교가 가능
- 단일 벡터를 사용하므로 검색 시스템의 구조가 단순, 구현이 용이
- 하지만, 모든 modality를 동일한 벡터 공간에 임베딩하기 때문에 각 modality의 개별 특성을 충분히 반영하지 못할 수 있음
(2) Cross-modal Retrieval
- 하나의 modality로 쿼리 입력, 다른 modality에서 유사한 개념을 가진 객체를 검색하는 방법
- 텍스트 쿼리를 입력하여 해당 내용과 유사한 이미지를 검색하기 위해 Multimodal LLM을 통해 이미지를 묘사하는 캡션을 생성하고 해당 텍스트를 임베딩해 저장
- 텍스트와 이미지를 동일한 벡터 공간에 위치시킴으로써 개념적으로 유사한 객체를 찾을 수 있음
- 하지만, 이미지를 텍스트로 변환하는 추가적인 처리 단계(이미지 캡션 생성 모델)가 필요하고, 이 모델의 성능에 따라 정보 손실이 발생할 수 있음
(3) Multi-vector Retrieval
- 각 modality 데이터를 각각의 벡터 공간에 임베딩하여 저장, 검색시 여러 벡터 공간에서 검색을 수행
- 각 modality의 특성을 개별적으로 유지하면서 통합된 검색 결과를 얻을 수 있음, modality의 특성에 맞는 최적화된 검색을 수행할 수 있음
- 하지만, 각 modality 별 임베딩과 검색을 수행하므로 계산 리소스와 저장 공간, 검색 소요시간이 추가로 요구됨
참고 링크
https://aws.amazon.com/ko/blogs/tech/bedrock-multimodal-rag-chatbot/
https://aws.amazon.com/ko/blogs/tech/amazon-bedrock-multi-modal-document-rag/