AI VIDEO BRIEFING

벡터 데이터베이스 원리: 임베딩·차원·유사도 점수·청크 겹침

SQL이 정확한 키워드 일치를 요구한다면, 벡터 데이터베이스는 단어의 의미로 검색한다. 임베딩, 차원, 유사도 점수, 청크 겹침이라는 핵심 개념과 LLM과 짝을 이뤄 인기를 끄는 이유를 사내 핸드북 예시로 풀어낸다.

벡터 데이터베이스는 어떻게 동작하나: 값이 아니라 "의미"로 검색하기 영상 대표 이미지

핵심 메시지

  • SQL은 정확한 키워드 일치를 요구해 검색의 부담을 사용자에게 지우지만, 벡터 데이터베이스는 의미로 검색해 그 부담을 구축자에게 옮긴다.
  • 임베딩은 값을 의미로 바꾸는 핵심으로, 문장을 긴 숫자 벡터로 변환해 "holiday"와 "vacation"처럼 표현이 달라도 가까운 의미를 잡아낸다.
  • 차원(예: 1,536차원)은 단어의 어조·격식 같은 풍부함을 담되 저장 부담과 균형을 맞추는 장치다.
  • 검색 단계에서는 무엇을 "일치"로 볼지 정하는 유사도 점수 임계값과, 맥락이 잘리지 않게 하는 청크 겹침을 다뤄야 한다.
  • LLM이 별도 학습 없이 의미로 데이터베이스를 검색해 관련 데이터를 돌려받을 수 있어, 벡터 데이터베이스는 현대 AI 앱의 근간이 됐다.

쉽게 이해하기

영상은 사내 직원 핸드북이라는 친숙한 예로 시작한다. 직원들은 "사무실에서 청바지를 입어도 되나요?", "휴일에 휴가를 신청할 수 있나요?" 같은 질문을 한다. SQL 같은 구조화된 데이터베이스에서는 content LIKE "%holiday%" 식의 유사 검색을 해야 하고, 결과를 넓히려 글자를 빼거나 공백을 지우는 등 검색어 형식을 맞추는 부담이 검색하는 사람에게 돌아간다.

벡터 데이터베이스는 발상을 뒤집는다. 값이 아니라 단어의 의미를 저장해, SQL 쿼리 대신 질문 자체를 보내면 의미에 기반해 관련 데이터만 돌려준다. 즉 값이 아닌 의미로 검색한다. 다만 공짜는 아니다. SQL이 검색하는 사용자에게 부담을 지웠다면, 벡터 데이터베이스는 검색을 쉽게 만들기 위해 데이터베이스를 구축하는 사람에게 부담을 옮긴다. 이 방식이 LLM과 짝을 이뤄 인기를 끄는 이유는, LLM을 별도로 학습시키지 않아도 의미 기반으로 자유롭게 검색해 필요한 관련 데이터를 받아올 수 있기 때문이다.

핵심 개념은 임베딩이다. 임베딩은 값을 의미로 바꾸는 열쇠로, 문장을 데이터베이스에 넣기 전에 임베딩 모델로 통과시켜 긴 숫자 벡터로 변환한다. "holiday"와 "vacation"은 의미가 가까워 비슷한 공간을 공유하므로, 나중에 표현이 다른 질문이 들어와도 같은 벡터를 비교해 요청을 처리할 수 있다. 정확한 표현이 아니라 의미로 검색하는 근본적 전환이다.

두 번째 개념은 차원이다. 한 단어가 맥락에 따라 다른 의미를 가지므로, 어조·격식 같은 풍부함을 담으려면 여러 차원이 필요하다. 영상은 오늘날 흔히 쓰는 1,536차원을 예로 들며, 저장 부담이 지나치게 크지 않으면서도 각 검색에 충분한 깊이를 주는 좋은 균형이라고 설명한다. 실습 파트에서는 384차원을 쓰는 all-MiniLM-L6-v2 모델로 "holiday"와 "vacation"의 벡터가 87% 유사함을 직접 보여준다.

저장 이후에는 검색(retrieval) 쪽 두 가지를 고려해야 한다. 유사도 점수는 결과가 얼마나 비슷해야 일치로 칠지 정하는 임계값이다. 예컨대 "회사 노트북을 플로리다로 가져가도 되나요"는 IT 정책, "플로리다로 휴가를 가도 되나요"는 휴가 정책으로, 같은 "플로리다"라도 질문에 따라 임계값을 두어 낮은 유사도를 걸러낸다. 청크 겹침은 긴 문서를 청크로 나눌 때 의미가 함께 잘리지 않도록 맥락이 넘치게 두는 장치다. 단어 한가운데서 자르지 말고 문장 경계를 먼저 지키라고 조언한다. 파인콘과 크로마DB 같은 구현이 대표적이며, 대규모 임베딩 처리와 빠른 검색에 적합하다.

주요 인사이트

  • 벡터 데이터베이스의 본질은 "더 나은 검색"이 아니라 인간의 언어와 컴퓨터의 저장 방식 사이의 의미적 간극을 메우는 것이다.
  • SQL과 벡터 DB의 가장 큰 차이는 부담의 위치다. SQL은 검색하는 사용자에게, 벡터 DB는 데이터베이스를 구축하는 사람에게 부담을 지운다.
  • LLM을 데이터베이스 검색법으로 따로 학습시킬 필요 없이 의미로 검색하게 해 주기 때문에, 벡터 DB는 LLM과 결합될 때 특히 강력하다.
  • 차원 수는 많을수록 무조건 좋은 것이 아니라, 의미의 풍부함과 저장 부담 사이의 절충이며 1,536차원이 그 균형의 한 예다.
  • 유사도 점수 임계값은 너무 높으면 관련 결과를 놓치고 너무 낮으면 잡음이 섞이므로, 질문의 성격에 맞게 정해야 하는 운영의 핵심이다.

자주 묻는 질문

벡터 데이터베이스는 SQL과 무엇이 다른가요?

SQL은 정확한 키워드 일치로 검색해 검색어 형식을 맞추는 부담이 사용자에게 있습니다. 벡터 데이터베이스는 단어의 의미(임베딩)로 검색하므로 표현이 달라도 관련 데이터를 찾을 수 있고, 대신 데이터를 잘 저장·검색되도록 만드는 부담이 구축자에게 있습니다.

임베딩이란 무엇인가요?

문장이나 단어의 의미를 긴 숫자 벡터로 변환한 표현입니다. 데이터베이스에 넣기 전 임베딩 모델로 문장을 변환해 두면, 표현이 다른 질문이 들어와도 의미가 가까운 벡터끼리 비교해 검색할 수 있습니다.

차원(dimensionality)은 왜 중요한가요?

한 단어가 맥락에 따라 다른 의미를 갖기 때문에 어조·격식 같은 풍부함을 담으려면 여러 차원이 필요합니다. 영상은 1,536차원을 저장 부담과 의미의 깊이 사이의 좋은 균형으로 예시합니다.

청크 겹침(chunk overlap)은 왜 필요한가요?

긴 문서를 청크로 나눌 때 단어나 맥락이 중간에 잘릴 수 있기 때문입니다. 청크를 겹치게 두면 맥락이 넘쳐 검색이 제대로 작동하며, 단어 한가운데가 아니라 문장 경계에서 나누는 것이 좋습니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식