Lecture

[Webinar] Amazon OpenSearch Service - GenAI를 위한 Semantic Search with OpenSearch

wildpieces 2025. 4. 30. 15:16

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를 구현하는지?

 

이미지 rag

1. 사전에 오픈서치에 관련된 정보를 넣어놓는다. 

 

[Knowlege base for bedrock]

- 검색할 환경을 만드는 flow (data ingestion workflow) -> aws bedrock 을 사용하면 이 과정이 자동화 됨.

- 사용자가 물어봤을 때 물어본 내용을 vector store에서 찾아서 물어보고 응답을 받는 flow(text generation worokflow)

이미지 rag가 이렇게 간단해짐

 

Demo

검색 서비스 자체만으로도 semantic, hybrid search 를 어떻게 하느지

rag개념 사용해서 어떻게 opensearch 연동해서 시제 generation 에 활용할 수 있는지 

 

[검색만 어떻게 하는지]

 

[rag잘 구축하는 방법]

- chunking 전략 잘 세우기

- embedding model 을 잘 선정