* 이 글은 패스트캠퍼스 [The RED : 프롬프트 엔지니어링, LLM(ChatGPT) 기반의 AI 서비스 개발] 강의를 듣고 작성되었습니다.
프롬프트 엔지니어링에서 답변을 위해서 적절한 컨텍스트를 제공하는 것이 가장 중요합니다. 적절한 컨텍스트를 제공하는 방법이 벡터 서치입니다. 벡터 서치에 사용되는 개념은 아래와 같습니다.
Embedding
- 텍스트를 실수의 집합인 벡터로 만드는 것
- 단어가 어느 차원에 위치하는지 표현
- 단어가 유사한 의미를 가지면 근처에 위치하도록 함
Vector Search
- 임베딩 스페이스에서 서로 유사한 것들끼리 찾도록 함
- 각 요소간의 거리를 distance 혹은 similarity라고 함
- Semantic Search는 의미 기반 서치를 의미
ANN
차원이 커지면서 고차원의 벡터를 비교하는 데 속도의 문제가 발생합니다. 이를 해결하기 위해 모든 벡터를 비교하지 않고 근사값을 찾는 ANN(Approximate Nearest Neighbor) 방법을 사용할 수 있습니다. 이 때, 속도와 정확도가 모두 향상될 수는 없어 검색에는 속도와 성능의 트레이드 오프가 존재합니다.
Hybrid Search
- 키워드 검색을 통해 DB에서 후보 데이터 검색
- 후보 데이터가 어떤 ID 갖고 있는지 확인
- 사용자가 요청한 내용과 유사한 ID를 벡터 서치로 가져옴
'LLM' 카테고리의 다른 글
Positional Embedding (0) | 2024.02.11 |
---|---|
Tuning (0) | 2024.02.09 |
프롬프트 엔지니어링 (0) | 2024.02.09 |
Attention (0) | 2024.01.22 |
Word Embedding (0) | 2024.01.20 |