Replies: 4 comments
Vector DB는 무엇이고 관계형 데이터베이스와 무엇이 다른가?Vector DBVector DB는 텍스트, 이미지, 오디오, 상품, 문서 같은 데이터를 임베딩 모델로 변환한 고차원 벡터를 저장하고 RDB랑 뭐가 다를까?RDB는 row, column, index, SQL을 중심으로 정확한 조건 검색과 트랜잭션 처리에 강하다. 예시이때 권한 metadata가 빠지면 사용자가 볼 수 없는 문서가 답변에 섞일 수 있다. 반대로 chunk가 너무 작거나 임베딩 모델이 도메인 용어를 잘 모르면 정답 문서가 검색되지 않을 수 있다. AI 서비스에서 벡터 검색이 필요한 이유는 무엇인가?기존의 키워드 검색 방식은 단어가 정확하게 일치하거나 비슷한 형태여야 검색 성능이 좋다. 근데 "비밀번호 까먹음", "로그인 안 됨" 과 같이 단어는 다르지만 의미적으로는 비슷할 수 있다. 그래서 Vector DB는 이런 의미 기반 검색을 위해 등장했다. 특히 RAG에서는 LLM이 답변하기 전에 관련 문서를 찾아야 하므로, 문서를 임베딩해서 Vector DB에 넣고 질문과 가까운 문서를 top-k로 검색한다. 벡터 데이터베이스와 관계형 데이터베이스는 어떤 기준으로 함께 사용할 수 있는가?정확히 관리해야 하는 데이터는 RDB, 의미적으로 찾아야 하는 데이터는 Vector DB를 이용한다.
판단 기준
|
1. 벡터 데이터베이스란 무엇이며, 관계형 데이터베이스와 무엇이 다른가?벡터 데이터베이스는 텍스트, 이미지, 음성, 문서 같은 데이터를 숫자 배열인 벡터로 저장하고, 그 벡터들 사이의 의미적 유사도를 기준으로 검색하는 데이터베이스입니다.
2. AI 서비스에서 벡터 검색이 필요한 이유는 무엇인가?AI서비스에서 사용자의 질문이 내부 지식과 의미는 같지만 다른 단어로 표현되는 경우가 많습니다.
LLM은 최신 문서나 주입되지 않은 지식에 대해 정확한 답을 도출하지 못하기 때문에, 외부지식을 검색해서 LLM에 넣어주는 구조가 사용된다. 이때 벡터 검색을 통해 외부지식을 넣어주기에 핵심 역할을 한다고 볼 수 있다. 3. 벡터 데이터베이스와 관계형 데이터베이스는 어떤 기준으로 함께 사용할 수 있는가?벡터DB와 관계형DB를 함께 사용하는 경우가 많습니다. 관계형DB는 정확성과 상태 관리가 필요한 데이터를 맡고, 벡터 DB는 의미 기반 탐색이 필요한 데이터를 맡습니다. 예를 들어 고객지원 AI를 만든다면, 관계형DB는 사용자정보, 티켓 상태, 결제 이력 등을 처리하고, 벡터DB는 도움말 문서, 약관, 매뉴얼, 과거 문의 내용의 임베딩을 처리한다.
+ 임베딩(Embedding) (추가 공부): 텍스트, 이미지, 음성 등의 데이터를 AI가 이해할 수 있는 숫자 벡터로 변환하는 과정.
|
1. 벡터 데이터베이스란 무엇이며, 관계형 데이베이스와 무엇이 다른가?벡터 데이터베이스는 텍스트, 이미지, 오디오와 같은 비정형 데이터를 컴퓨터가 이해할 수 있는 고차원 숫자의 배열인 '벡터(임베딩)'로 변환하여 저장하고, 이 벡터 간의 유사도를 계산해 의미적으로 가까운 데이터를 빠르게 찾아주는 데이터베이스이다. 예를 들어 임베딩 모델이 다음 문장을 벡터로 변환한다고 가정할 수 있다. 표현에 사용된 단어는 다르지만 의미가 비슷하므로, 벡터로 변환하면 서로 매우 가까운 위치에 놓이게 되어 "의미가 비슷한 단어"로 인식될 수 있다. 이러한 특성 덕분에 벡터 데이터베이스는 단순한 문자열 일치가 아니라 '의미' 자체를 기준으로 검색을 수행할 수 있다. 벡터 데이터베이스는 일반적으로 다음 작업을 담당한다.
대표적인 유사도 계산 방식은 다음과 같다.
반면 관계형 데이터베이스는 데이터를 행과 열로 이루어진 표 형태의 테이블에 저장하고, SQL이라는 질의 언어를 통해 정확한 조건에 맞는 데이터를 검색하는 방식으로 동작한다. 예를 들어 "나이가 30세 이상인 사용자를 찾아줘"와 같이 명확한 조건에 따라 값이 정확히 일치하거나 특정 범위에 속하는 데이터를 빠르게 찾아내는 데 최적화되어 있다. 이때 내부적으로는 B-Tree나 해시(Hash) 같은 인덱스 구조를 사용해 검색 속도를 높인다. 두 데이터베이스의 가장 근본적인 차이는 '무엇을 기준으로 데이터를 찾는가'에 있다. 관계형 데이터베이스는 정확한 일치(exact match)를 기반으로 하기 때문에, 입력한 조건과 정확히 맞아 떨어지는 데이터만 결과로 반환한다. 반면 벡터 데이터베이스는 코사인 유사도나 유클리드 거리 같은 방식으로 벡터 간의 '가까운 정도'를 계산하여, 완전히 똑같지는 않지만 의미적으로 유사한 데이터까지 찾아낼 수 있다. 이러한 차이 때문에 관계형 데이터베이스는 "완전히 일치하는 값을 찾는 질문"에 강하고, 벡터 데이터베이스는 "비슷한 것을 찾는 질문"에 강하다고 할 수 있다. 또한 인덱싱 방식에서도 차이가 나타난다. 관계형 데이터베이스는 정형화된 값을 빠르게 찾기 위한 인덱스를 사용하는 반면, 벡터 데이터베이스는 HNSW나 IVF와 같은 근사 최근접 이웃(Approximate Nearest Neighbor, ANN) 알고리즘을 사용한다. 이는 고차원 벡터 공간에서 모든 데이터를 일일이 비교하지 않고도 유사한 벡터를 빠르게 찾아내기 위한 방식으로, 데이터를 규모가 커질수록 그 중요성이 커진다. 2. AI 서비스에서 벡터 검색이 필요한 이유는 무엇인가?
기존 RDB의 키워드 매칭이나 정규식 검색으로는 "의미"를 이해하지 못하기 때문에, 자연어 이해가 필요한 AI 서비스에는 벡터 검색이 사실상 필수적이다. 3. 벡터 데이터베이스와 관계형 데이터베이스는 어떤 기준으로 함께 사용할 수 있는가?실무에서는 둘을 경쟁 관계가 아닌 상호 보완 관계로 사용하는 경우가 많다. 함께 사용하는 대표적 패턴
최근에는 pgvector(PostgreSQL 확장)처럼 관계형 DB 안에 벡터 검색 기능을 내장한 솔루션도 늘고 있어, 별도의 벡터 DB 없이 하나의 시스템에서 두 가지를 함께 처리하는 경우도 많아지고 있다. |
|
Uh oh!
There was an error while loading. Please reload this page.
📆 일자: 26년 7월 30일(목)
AI 서비스는 사용자의 질문에 맞는 최신 정보와 맥락을 제공해야 합니다. 하지만 LLM은 학습되지 않은 정보를 알 수 없고, 긴 문서 전체를 매번 프롬프트에 넣는 방식은 비용과 성능 면에서 한계가 있습니다. 이러한 문제를 해결하기 위해 의미적으로 유사한 정보를 검색하는 벡터 검색과 이를 효율적으로 저장·조회하는 벡터 데이터베이스가 활용되고 있습니다. 특히 RAG 기반 서비스에서 벡터 데이터베이스는 LLM이 답변에 필요한 외부 지식을 찾도록 돕는 핵심 요소입니다. 이에 따라 이번 스터디에서는 벡터 데이터베이스의 개념과 AI 서비스에서의 활용 방식에 대해 알아보고자 합니다.
🤔오늘의 질문
벡터 데이터베이스란 무엇이며, 관계형 데이터베이스와 무엇이 다른가?
AI 서비스에서 벡터 검색이 필요한 이유는 무엇인가?
벡터 데이터베이스와 관계형 데이터베이스는 어떤 기준으로 함께 사용할 수 있는가?
All reactions