임베딩은 위치이고, 의미는 거리다
임베딩 모델에 "돈을 어떻게 돌려받나요"라는 문장을 주면 숫자 목록을 반환합니다. "환불 정책"을 주면 또 다른 목록을 반환합니다. 이 두 목록은 서로 가깝게 놓입니다. "음극에서 전자의 환원"이라는 문장을 주면, 같은 단어를 포함하고 있음에도 그 목록은 멀리 떨어진 곳에 놓입니다.
이것이 전부입니다. 모델은 수백에서 수천 개의 차원을 가진 공간에 텍스트를 배치하는 법을 학습했으며, 이때 결정하는 것은 어휘가 아니라 의미입니다. 텍스트가 한 위치가 되면, 의미에 관한 질문은 거리에 관한 질문이 되고, 거리는 컴퓨터가 백만 개의 항목에 대해서도 밀리초 단위로 계산할 수 있는 것입니다.
2013년 word2vec 연구에서 나온 유명한 초기 시연은 단어 위치에 대한 산술 연산이었습니다. "king"의 벡터에서 "man"을 빼고 "woman"을 더하면, 결과에 가장 가까운 단어는 "queen"이었습니다. 현대의 임베딩 모델은 문장 전체와 문서 전체에 대해 같은 일을 하며, 벡터는 더 길어졌습니다.
실제로 사용되는 모델들에서 임베딩은 얼마나 큰가
목록의 길이를 차원 수라고 부릅니다. 이 수는 모델과 함께 커져 왔습니다.
2013년 word2vec은 300차원을, 2018년 BERT base는 768차원을 사용했습니다. Voyage 3은 1,024개를 반환하고, OpenAI의 text-embedding-3-small은 입력당 1,536개, text-embedding-3-large는 3,072개를 반환하며, Google의 Gemini Embedding도 기본값이 3,072입니다. 차원이 많을수록 더 미세한 구분이 가능하지만 저장 공간과 비교 시간이 늘어나므로, 최신 모델들은 속도가 미묘한 차이보다 중요할 때 목록을 더 작은 크기로 잘라낼 수 있게 해줍니다.
이 숫자들은 하나하나로는 아무 의미가 없습니다. 412번째 차원이 "격식성"이나 "주제"를 뜻하지 않습니다. 의미는 오직 전체 목록이 다른 목록들과 비교해 어디에 놓이는지에만 있으며, 그래서 비교할 대상 모음이 없다면 임베딩은 쓸모가 없습니다.
임베딩 모델은 찾고, 언어 모델은 쓴다
사람들은 이 둘을 혼동하는데, 둘 다 "텍스트를 다루는 AI"이기 때문입니다. 하지만 이 둘은 정반대의 일을 하는 서로 다른 모델입니다.
| 임베딩 모델 | 언어 모델(LLM) | |
|---|---|---|
| 입력 | 텍스트(또는 이미지) | 텍스트(또는 이미지) |
| 출력 | 고정된 숫자 목록 | 한 번에 한 토큰씩 생성되는 새 텍스트 |
| 역할 | 비슷한 것들이 가까이 오도록 입력을 배치 | 입력을 그럴듯하게 이어감 |
| 용도 | 검색, 매칭, 클러스터링, 검색 기반 조회 | 답변, 작성, 요약 |
| 백만 토큰당 비용 | text-embedding-3-small은 $0.02 | 가장 저렴한 GPT 계열은 $0.20, 프론티어 모델은 $2에서 $10 |
| 틀릴 수 있는가? | 부적합한 결과를 1순위로 올릴 수 있음 | 답을 지어낼 수 있음 |
주목할 것은 비용 행입니다. OpenAI의 소형 모델로 백만 토큰을 임베딩하는 데 드는 비용은 $0.02인 반면, GPT-5.6 Luna의 백만 입력 토큰당 비용은 $0.20으로, 2026-08-20 기준 OpenRouter 가격을 반영한 AI 모델 비용 지수에 따르면 Luna Pro, GPT-5.4 Nano와 함께 가장 저렴한 GPT 계열입니다. 찾는 작업은 가장 저렴한 GPT 쓰기 작업보다 열 배 저렴하고, 프론티어 쓰기 작업보다는 최소 백 배 저렴합니다. 이 격차 때문에 진지한 시스템은 모두 먼저 찾고 나중에 씁니다. LLM이란 무엇인가는 쓰기 쪽을 다룹니다.
임베딩이 보이지 않는 곳에서 작동하는 곳들
문서 기반 채팅. 긴 PDF를 업로드하고 질문을 하면, 파일은 여러 구절로 나뉘어 각 구절이 임베딩되어 벡터 데이터베이스에 저장되고, 질문도 임베딩되어, 벡터가 가장 가까운 구절들이 문맥으로 언어 모델에 전달됩니다. 모델은 그 구절들을 바탕으로 답합니다. 이것이 검색 증강 생성이며, RAG란 무엇인가에서 그 파이프라인을 다룹니다. 임베딩은 그 검색 단계입니다. PDF 채팅 가이드는 Whizi에서 업로드한 파일에 질문하는 방법을 다룹니다.
문서를 검색할지 아니면 그냥 전체를 읽을지는 창(윈도우)의 크기에 달려 있습니다. 각 모델의 컨텍스트 윈도우를 페이지 수로 아래에 정리했습니다. 다 들어가는 것은 전체로 넣을 수 있고, 다 들어가지 않는 모음을 위해 검색이 존재합니다.
동의어를 이해하는 검색. "결제 그만하고 싶어요"라는 문의에 해지 안내 문서를 반환하는 고객지원 사이트는 단어가 아니라 임베딩을 비교하고 있는 것입니다.
추천과 클러스터링. 벡터가 가까운 항목은 비슷한 항목입니다. 관련 상품, 중복 티켓, 같은 주제의 글이 그렇습니다.
채팅 앱의 메모리 기능. 어시스턴트가 예전 대화에서 나온 사실을 "기억"할 때, 흔히 쓰이는 구현 방식은 과거 메모를 임베딩해두고 가장 가까운 것들을 프롬프트로 불러오는 것입니다.
어느 경우든 임베딩은 찾는 일을 하고, 다른 무언가가 판단하거나 글을 씁니다. 실패 방식도 어디서나 똑같습니다. 가장 가까운 벡터가 잘못된 구절이라면, 그 뒤로는 모든 것이 엉뚱한 질문에 자신만만하게 답하게 되는데, 이는 AI 할루시네이션이란 무엇인가가 지어내기와는 별개의 실패로 꼽는 검색 실패입니다.
코드를 짜지 않고도 이 개념으로 할 수 있는 것
임베딩을 직접 다룰 일은 거의 없지만, 그 원리를 알면 이를 기반으로 만들어진 도구를 쓰는 방식이 달라집니다.
- 답이 쓰인 언어로 질문하세요. 검색은 질문을 구절과 의미로 매칭합니다. 문서가 표현하는 방식대로 질문을 표현하면, 입으로 말하듯 표현한 질문보다 더 가깝게 매칭됩니다.
- 큰 업로드는 주제별로 나누세요. 서로 관련 없는 세 가지 주제가 담긴 400페이지짜리 파일은 복잡하게 뒤섞인 공간으로 임베딩되지만, 세 개의 파일로 나누면 깔끔하게 검색됩니다.
- 인용된 구절을 읽으세요. 파일 기반 채팅 답변이 구절을 인용한다면 열어 보세요. 검색 실패는 조금 다른 질문에 대한 자신 있는 답처럼 보입니다.
- 정확한 문자열에는 실패할 것을 예상하세요. 임베딩은 의미에 관한 것이며, 송장 번호나 부품 코드는 일반 텍스트 검색으로 찾는 편이 낫습니다. 좋은 도구는 이 둘을 결합합니다.
판단 기준은 이렇습니다. 여러 개 중 맞는 것을 찾는 일이라면 임베딩 모델이 필요하고, 저렴해야 합니다. 무언가를 만들어내는 일이라면 언어 모델이 필요하고, 뛰어나야 합니다. 이 구분을 제대로 해낸 제품이야말로 파일 채팅이 실제로 잘 작동하는 제품입니다.
- 구분을 기억하세요: 임베딩은 찾고, 언어 모델은 씁니다
- 업로드한 문서에 질문할 때는 그 문서 자체의 표현을 사용하세요
- 큰 업로드는 주제별로 나눠 검색이 더 깔끔한 공간에서 이루어지게 하세요
- 파일 기반 채팅 답변을 신뢰하기 전에 인용된 구절을 열어 확인하세요
- ID나 코드 같은 정확한 문자열에는 일반 텍스트 검색을 쓰세요. 임베딩은 문자가 아니라 의미를 매칭합니다
자주 묻는 질문
임베딩을 쉽게 설명하면 무엇인가요?
텍스트 한 조각의 의미를 대신하는 숫자 목록으로, 비슷한 의미끼리는 비슷한 목록을 갖도록 배치됩니다. "환불 정책"과 "돈을 어떻게 돌려받나요"는 서로 가깝게 놓이고, "환불"이라는 단어가 들어간 화학 문장은 멀리 떨어집니다. 목록 사이의 거리는 컴퓨터가 관련성을 측정하는 방식입니다.
임베딩 모델과 LLM의 차이는 무엇인가요?
임베딩 모델은 의미를 나타내는 고정된 숫자 목록을 출력하고, 언어 모델은 한 번에 한 토큰씩 새 텍스트를 출력합니다. 전자는 찾고 매칭하며, 후자는 쓰고 답합니다. 문서 기반 채팅은 둘 다 사용합니다. 임베딩으로 관련 구절을 가져오고, LLM이 그 구절을 바탕으로 답을 씁니다.
임베딩은 몇 차원인가요?
모델에 따라 다릅니다. 2013년 word2vec은 300차원, BERT base는 768차원을 사용했고, 현재 모델들은 1,024에서 3,072차원 사이입니다. OpenAI의 text-embedding-3-small은 1,536, text-embedding-3-large는 3,072를 반환하며, 이는 Google의 Gemini Embedding 기본값과 같습니다. 최신 모델들은 속도가 미묘한 차이보다 중요할 때 더 적은 차원으로 잘라낼 수 있게 해줍니다.
임베딩은 비용이 많이 드나요?
아니요, 오히려 그것이 핵심입니다. OpenAI는 text-embedding-3-small을 백만 토큰당 $0.02로 책정했는데, 이는 GPT-5.6 Luna의 백만 입력 토큰당 $0.20, 그리고 프론티어 채팅 모델의 $2에서 $5(2026-08-20 기준 OpenRouter 정가)와 비교됩니다. 찾는 작업은 쓰는 작업보다 열 배에서 백 배 저렴하며, 이것이 검색 시스템이 모든 것을 임베딩하고 답변만 생성하는 이유입니다.
ChatGPT, Claude, Gemini에서 임베딩은 어디에 쓰이나요?
무언가를 찾아내는 기능들에 쓰입니다. 파일 업로드와 문서 기반 채팅, 과거 대화 검색, 이전 채팅에서 사실을 불러오는 메모리 기능이 그렇습니다. 각 경우 일반적인 설계는 텍스트를 임베딩하고, 가장 가까운 결과를 검색해 언어 모델이 이를 바탕으로 답을 쓰게 하는 것입니다. 임베딩 자체는 눈에 보이지 않지만, 검색 실패가 일어나면 그것은 눈에 보입니다.