AI VIDEO BRIEFING
임베딩·벡터 데이터베이스 기초: OpenAI로 의미 기반 검색 만들기
임베딩은 단어를 숫자 배열(벡터)로 바꿔 의미의 유사도를 측정한다. OpenAI 임베딩 모델과 벡터 데이터베이스로 시맨틱 검색을 구현하는 흐름을 단계별로 정리했다.

핵심 메시지
쉽게 이해하기
임베딩과 벡터 데이터베이스는 어떤 종류의 AI 제품을 만들든 핵심 부품이다. 영상은 이를 이론, 사용, 통합 세 부분으로 나눠 설명한다. 핵심 목표는 챗봇에 장기 기억을 만들어 주거나, 방대한 PDF 데이터베이스를 바탕으로 의미 기반 검색을 수행하는 것이다.
임베딩이란 단어 같은 데이터를 관계의 패턴을 담은 숫자 배열, 곧 벡터로 변환한 것이다. 이 숫자들의 조합이 유사도를 재는 다차원 지도 역할을 한다. 예를 들어 ‘dog’와 ‘puppy’는 비슷한 상황에서 쓰이므로 벡터가 서로 가깝게 표현된다. 2차원 예시는 단순화한 것이고, 실제 벡터는 수백 개 차원으로 단어 사이의 풍부하고 복잡한 관계를 담는다. 이미지도 영역을 숫자 배열로 쪼개 벡터로 바꿀 수 있는데, 구글의 유사 이미지 검색이 이런 원리를 쓴다.
임베딩을 만들면 데이터베이스에 저장할 수 있고, 이런 벡터로 가득 찬 데이터베이스를 벡터 데이터베이스라 부른다. 활용처는 질의와의 관련도로 순위를 매기는 검색, 유사도로 묶는 군집화, 관련 항목을 권하는 추천, 가장 비슷한 라벨로 나누는 분류 등이 있다. 영상은 가장 흔히 쓰이는 검색에 집중한다. OpenAI는 임베딩 생성용 모델을 제공하지만 저장 수단은 제공하지 않으므로, 클라우드 데이터베이스를 따로 쓴다.
실습은 GUI 도구인 Postman으로 OpenAI 임베딩 API에 POST 요청을 보내는 것에서 시작한다. 필요한 것은 모델과 입력 텍스트 두 가지뿐이다. 영상은 가장 저렴한 text-embedding-ada-002 모델을 쓰며, ‘hello world’ 같은 입력을 보내면 곧바로 긴 숫자 배열, 곧 벡터가 응답으로 돌아온다. ada 버전 2는 최대 약 8,000 토큰(대략 3만 자)을 입력으로 받아, 계약서 한 페이지를 약 3,000자로 잡으면 한 번에 약 10페이지까지 임베딩할 수 있다.
저장은 클라우드 SQL 데이터베이스(영상에서는 SingleStore)에 테이블을 만들어 원본 텍스트는 text 타입, 벡터는 blob 타입 컬럼에 넣는다. 검색은 세 단계다. 먼저 무엇을 찾을지 정하고, 그 검색어의 임베딩을 만든 뒤, 데이터베이스의 기존 임베딩과 비교한다. SQL에서는 내적(dot product)으로 점수를 만들어 내림차순 정렬하면, 가장 유사한 항목이 맨 위에 온다. ‘open AI’로 검색하면 관련 벡터가, ‘hello Earth’로 검색하면 ‘hello world’가 가장 높은 점수로 올라오는 식이다.
주요 인사이트
- 임베딩의 진짜 강점은 단어 하나가 아니라 문단이나 문서의 큰 덩어리를 묶어(청킹) 벡터로 만들 때 나온다. 그래야 나중에 데이터베이스 검색에서 의미 단위로 끌어올 수 있다.
- 여러 단어로 된 짧은 문장을 임베딩하면 더 미묘한 의미를 담지만, 사람 눈에는 단어 하나를 임베딩한 결과와 거의 같은 숫자 더미로 보인다. 차이는 벡터 공간의 위치에 있다.
- 검색에서 ‘점수’는 데이터베이스에 이미 있는 내용과 얼마나 비슷한지를 나타내는 순위 지표다. 점수가 높을수록 질의와 의미가 가깝다.
- OpenAI 임베딩 API는 인증에 베어러 토큰을 쓴다. 노출 시 비용이 발생할 수 있으므로 환경 변수 등으로 키를 안전하게 관리해야 한다(영상도 시연 후 키를 삭제한다고 밝힌다).
- 이 기초 위에 PDF 라이브러리로 문서를 읽고 청킹해 저장하면 검색 가능한 장기 기억을 만들 수 있고, 웹사이트 등 다른 자료에도 같은 방식을 확장할 수 있다.
자주 묻는 질문
임베딩이란 무엇인가?
단어 같은 데이터를 관계의 패턴을 담은 숫자 배열, 곧 벡터로 변환한 것이다. 이 숫자들의 조합이 유사도를 재는 다차원 지도 역할을 해서, 비슷한 의미의 데이터는 벡터 공간에서 가깝게 놓인다.
벡터 데이터베이스가 따로 필요한 이유는?
OpenAI는 임베딩을 ‘생성’하는 모델은 제공하지만 그 벡터를 ‘저장’하는 수단은 제공하지 않기 때문이다. 그래서 영상에서는 SingleStore 같은 클라우드 SQL 데이터베이스에 원본 텍스트와 벡터를 저장하고 거기서 검색한다.
벡터로 검색은 어떻게 이뤄지나?
먼저 검색어의 임베딩을 만들고, 데이터베이스에 저장된 기존 임베딩과 내적으로 유사도 점수를 계산한 뒤 내림차순으로 정렬한다. 그러면 질의와 가장 비슷한 항목이 맨 위에 오게 된다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗