AI VIDEO BRIEFING

벡터DB·임베딩 쉽게 이해하기: 벡터와 유사도 검색의 원리

벡터와 임베딩, 벡터DB가 무엇인지 손글씨·단어 예시로 쉽게 풀어내고, 왜 유사도 기반 검색에 벡터DB가 쓰이는지 정리했습니다.

벡터·임베딩·벡터DB 쉽게 이해하기: 비슷한 것끼리 모이는 숫자의 세계 영상 대표 이미지

핵심 메시지

  • 벡터는 괄호 안에 숫자 여러 개가 들어간 '숫자 덩어리'로, 공간 속 한 점으로 이해하면 충분하다.
  • 임베딩은 텍스트·이미지·오디오 같은 데이터를 임베딩 모델에 통과시켜 벡터로 바꾸는 과정이다.
  • 비슷한 데이터는 벡터 공간에서 가까운 위치에 모이며, 단어 사이의 관계까지 벡터 연산으로 드러난다.
  • 벡터DB는 이런 벡터를 효율적으로 저장하고 가까운 것을 빠르게 찾도록 특화된 데이터베이스다.

쉽게 이해하기

벡터, 임베딩, 벡터DB는 용어부터 낯설지만 개념 자체는 어렵지 않습니다. 벡터는 괄호 안에 숫자 여러 개가 들어간 형태로, (1, 2)처럼 좌표 평면에 점을 찍을 수 있는 값입니다. 차원이 늘어나도 마찬가지로 숫자 덩어리이고 어떤 공간에 점을 찍을 수 있다는 정도로 이해하면 충분합니다.

임베딩은 데이터를 벡터로 바꾸는 일입니다. 영상은 손글씨 숫자 데이터를 예로 듭니다. 흰색을 0, 검은색을 1로 두고 이미지를 숫자 리스트로 바꾸면 그림이 곧 벡터가 됩니다. 보기 좋게 3차원으로 차원을 줄여 좌표로 찍어 보면 같은 숫자끼리는 가까이 모이고, 7과 4처럼 모양이 비슷한 글자들은 그 경계에서 서로 가깝게 위치합니다.

이 성질은 텍스트에도 적용됩니다. 사과, 바나나 같은 단어를 임베딩하면 과일끼리 가까운 곳에 모입니다. 더 놀라운 점은 벡터끼리 뺄셈이 가능하다는 것입니다. man에서 woman을 뺀 화살표와 king에서 queen을 뺀 화살표가 거의 같아서, 임베딩 벡터로 단어 사이의 관계를 파악할 수 있습니다.

벡터DB는 이런 벡터를 효율적으로 저장하기 위한 데이터베이스입니다. 관계형 DB나 문서 DB로도 저장은 가능하지만 벡터에 특화돼 있지 않습니다. 벡터DB는 벡터 사이의 거리 계산처럼 자주 필요한 작업을 잘 처리하도록 만들어졌고, 질문이 들어오면 그와 거리가 가까운 데이터를 모아 응답을 생성하는 데 쓰입니다.

주요 인사이트

  • 텍스트로만 검색하면 '사과'로 '과일'을 찾지 못하지만, 벡터로 검색하면 의미가 비슷한 것끼리 연결되어 검색된다.
  • 이미지 검색도 벡터 덕분에 자연스러워진다. 픽셀 값을 일일이 비교하는 대신, 비슷한 이미지가 가까운 위치에 놓이므로 가까운 것을 가져오면 된다.
  • 벡터DB가 필수는 아니다. 일반 SQL이나 키-값, 문서 DB로도 유사 검색을 흉내 낼 수 있지만, 가까운 것을 빠르게 찾는 데에는 벡터DB가 최적화돼 있다.
  • 대표적인 벡터DB로 오픈소스이며 무료로 쓸 수 있는 Chroma, 유료 서비스인 Pinecone 등이 있다.

자주 묻는 질문

임베딩과 인코딩은 어떻게 다른가요?

임베딩은 데이터를 벡터로 바꾸는 과정을 가리킵니다. 인코딩은 보통 디코딩과 짝을 이루는 개념인 반면, 임베딩은 데이터를 임베딩 벡터로 만든다는 데 초점이 있습니다. 텍스트·이미지·오디오 모두 임베딩 모델을 거쳐 벡터로 바꿀 수 있습니다.

왜 일반 데이터베이스 대신 벡터DB를 쓰나요?

질문과 의미가 가까운 데이터를 빠르게 찾아야 하기 때문입니다. 일반 DB로도 비슷한 것을 찾을 수는 있지만 '사과'로 검색하면 '과일'이 안 잡히는 한계가 있습니다. 벡터DB는 가까운 벡터를 빠르게 찾는 데 최적화돼 있어 유사도 기반 검색에 적합합니다.

벡터끼리 뺄셈을 한다는 게 무슨 의미인가요?

임베딩 벡터에서는 단어 사이의 관계가 방향(화살표)으로 나타납니다. man에서 woman을 뺀 결과와 king에서 queen을 뺀 결과의 화살표가 거의 같다는 점에서, 벡터 연산만으로 남성-여성 같은 관계를 포착할 수 있음을 보여 줍니다.

원문과 출처

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

YouTube 원본 영상 보기 ↗

관련 AI 소식