[Webinar] Amazon OpenSearch Service - GenAI를 위한 Semantic Search with OpenSearch
What is Vector Embedding?
단어는 어떤 텍스트의 공간 안에서 관계가 있다. sementic search는 그 관계를 찾아주는 것.
컴퓨터는 이 관계들을 어떻게 알 수 있나?
단어를 좌표공간에 표현하면 어떨까? 그래서 숫자로 표현함. 방향과 크기를 가진 벡터로 표현함 -> 벡터 임베딩
텍스트를 벡터로 변환하기 위해 embedding model 을 사용함. 딥러닝 기반의 transformer 아키텍처를 사용해서 단순 단어반 보는 것이 아니라 (word2vec) 문맥, 전체 의미를 활용해서 벡터로 만들어줌.
유사한 벡터 = 유사한 의미와 맥락
이러한 특징을 사용해서 결과를 찾아주는게 semantic search의 핵심
How Sementic search works?
- vector
- model
- embedding
-
- Exact k-NN: 모든 벡터를 다 비교하여 검색
- ANN
ANN을 위해 특별한 자료 구조로 데이터를 구성함
검색결과 나온 후 필터링 진행
Introduce to Hybrid Search
semantic 또는 keyword(lexical) search 만 하는 경우가 거의 없음. 따라서 hybrid search 가 유용
RAG Concepts
생성형 AI와 결합해서 사용하는 방법
매번 이렇게 컨텍스트를 넣어서 알려줘야해?
수동으로 프롬프트를 추가하는 것이 아니라 rag를 이용해서 자동으로 추가
어떻게 가장 연관된 정보를 찾아올 수 있을지가 RAG를 구현할 떄 가장 중요한 것
실제 vectordb와 엮어서 rag를 구현하는지?
1. 사전에 오픈서치에 관련된 정보를 넣어놓는다.
[Knowlege base for bedrock]
- 검색할 환경을 만드는 flow (data ingestion workflow) -> aws bedrock 을 사용하면 이 과정이 자동화 됨.
- 사용자가 물어봤을 때 물어본 내용을 vector store에서 찾아서 물어보고 응답을 받는 flow(text generation worokflow)
Demo
검색 서비스 자체만으로도 semantic, hybrid search 를 어떻게 하느지
rag개념 사용해서 어떻게 opensearch 연동해서 시제 generation 에 활용할 수 있는지
[검색만 어떻게 하는지]
[rag잘 구축하는 방법]
- chunking 전략 잘 세우기
- embedding model 을 잘 선정