[선행AI기술팀 김윤혜]
2023년 IT 분야를 휩쓸었던 가장 핫한 이슈는 단연 ChatGPT입니다. ChatGPT는 모두가 쉽게 사용할 수 있는 대화형 거대 언어 인공지능 챗봇으로, 글로벌 사회에 생성형 AI에 대한 큰 임팩트와 유행을 불러일으켰습니다.
하지만 ChatGPT는 잘못된 정보를 마치 정답인 것처럼 답변하는 “할루시네이션(Hallucination)”이 발생하는 치명적인 문제가 있습니다. 따라서 이를 보완하기 위해 ChatGPT의 뇌 역할을 할 수 있는 “Vector Database”가 함께 급부상하였습니다.
그렇다면 이 Vector Database는 무엇이고, 어떻게 ChatGPT의 한계를 보완할 수 있는 걸까요?
Vector Database
Vector Database는 효율적으로 Vector embedding을 저장하고 sementic search를 할 수 있는 Database입니다.
기존 데이터베이스도 embedding을 저장하고 sementic search를 할 수 있지만, 저장된 모든 데이터의 embedding과 query embedding의 similarity를 연산해야 하기 때문에 너무 많은 연산을 해야 하고 느리게 결과를 가져오게 됩니다.
반면 Vector Database는 자체적인 알고리즘으로 indexing하고 다양한 ANN 기반의 유사도 알고리즘을 조합하여 훨씬 빠르고 효과적으로 검색합니다.
Pipeline
- Indexing: HNSW, LSH, IVF와 같은 알고리즘을 사용하여 벡터를 indexing합니다. 빠른 검색이 가능한 data structure에 vector를 mapping합니다.
- Querying: 해당 index의 similarity metric을 통해 query vector와 indexed vectors 간의 유사도를 계산합니다.
- Post Processing: 검색 결과를 다른 similarity metric을 통해 re-ranking하는 등 검색 결과를 후처리하는 작업을 합니다.
Indexing Algorithm: HNSW
Vector Database가 index 생성에 사용하는 대표적인 ANN 알고리즘 중 하나인 HNSW에 대해 알아보겠습니다. HNSW(Hierarchical Navigable Small World)은 트리의 각 노드가 벡터의 집합인 계층적 트리형 구조를 생성합니다. K-means와 같은 알고리즘을 통해 벡터를 클러스터링하여 각 노드를 구성하고, 서로 유사도가 높은 노드 간에 edge를 만듭니다. 해당 트리 구조의 인덱스를 탐색하여 query vector와 가장 가까운 노드에 방문하여 검색합니다.
Similarity Metrics
다음은 vector database에서 vector 간 similarity를 계산하기 위해 사용하는 대표적인 Metrics입니다.
- Euclidean distance
- Dot Product
- Cosine similarity
Vector Database + LLM
LLM의 문제점
1. 할루시네이션(Hallucination)
LLM은 허위 정보를 사실처럼 답변하는 할루시네이션 문제가 있습니다. 다음은 ChatGPT 할루시네이션 예시입니다. 거북선에는 “라이트닝 볼트”라는 무기가 없음에도 이에 대해 설명합니다.
2. 장기 기억 문제(Long Term Memory)
LLM은 오래전에 대화한 내용을 기억하지 못하는 장기 기억 문제가 있습니다. 다음은 ChatGPT 장기 기억 문제 예시입니다. 과거에 경주에 갈 계획이라고 말했지만 나중에 물어봤을 땐 이를 기억하지 못합니다.
RAG(Retrieval Augmented Generation)
그렇다면 vector database는 어떻게 이러한 LLM의 문제를 보완할 수 있을까요? RAG(Retrieval Augmented Generation)는 query에 관련된 정보를 Vector database에서 검색한 후 이를 기반으로 답변을 생성하는 방법을 일컫습니다. 기존에는 Retrieval model과 Generation 모델을 함께 학습시키는 것을 RAG라고 하였지만, LLM이 등장하며 통칭되기 시작했습니다.
위 구조처럼 Vector database를 LLM 모델의 지식 범위로 지정하여 답변을 하게 함으로써 검색된 정보를 기반으로 답변을 생성하게 하여, LLM의 할루시네이션을 방지하고 오래된 대화 기록까지 반영할 수 있습니다.
마무리
context를 반영한 의미론적 검색에 유리한 vector database는 지금까지 주로 추천 시스템, QA 등에 활용되어 왔습니다. 하지만 2023년, LLM이 뜨거운 감자로 떠오르며 이를 보완하기 위한 방법으로 주목받고 있습니다. 현재 vector database는 거대 언어 생성 모델의 한계를 극복하고 뛰어난 의미론적 검색을 제공하는 핵심 역할을 하고 있습니다. 챗봇을 개발하며 여러 기술들이 조합되어야 기술의 흐름이 완성된다는 것을 알게 되었습니다. 앞으로 어떤 기술의 발전을 마주하고 대처하게 될지 기대됩니다.
감사합니다.