P1-13.1 텍스트(text)를 벡터(vector)로 표현한다는 것¶
Section ID:
P1-13.1Version:v2026.07.20
12장에서는 프롬프트(prompt)를 통해 LLM에 작업 조건을 주는 방법과 그 한계를 봤습니다. 프롬프트만으로는 사실성(factuality), 근거성(evidence), 최신성(recency)을 보장하기 어렵습니다.
그래서 LLM이 참고할 외부 자료를 어떻게 찾을 수 있을까?라는 다음 질문이 생깁니다. 이 질문으로 가려면 먼저 텍스트를 계산 가능한 형태로 바꾸는 방식을 이해해야 합니다. 그 출발점이 임베딩(embedding)입니다.
임베딩은 텍스트를 모델이 계산할 수 있는 벡터 표현(vector representation)으로 바꾸는 방법이다.
여기서 중요한 점은 임베딩이 “의미 자체”가 아니라는 것입니다. 임베딩은 텍스트가 데이터 안에서 쓰인 방식과 모델의 학습 목표를 바탕으로 만들어진 수치 표현입니다.
Part 1에서 임베딩(embedding), 벡터(vector), 벡터 공간(vector space), 문장/문단/문서 임베딩, 임베딩 vs 프롬프트의 기본 구분은 여기서 잡습니다. 11.1에서는 언어 모델의 역사적 흐름 안에서 임베딩의 배경을 먼저 봤고, 12장에서는 프롬프트가 입력 조건을 어떻게 지정하는지 정리했습니다. 여기서는 그 두 흐름을 서비스 관점으로 연결해 외부 자료를 찾기 위해 왜 먼저 텍스트를 벡터로 바꾸는가를 설명합니다.
P1-11.1에서는 LLM의 역사적 흐름 안에서 언어 모델(language model), n-gram, 분산 표현(distributed representation), word2vec을 봤습니다. 이번 절은 그 역사를 반복하지 않습니다.
임베딩, 벡터, 벡터 공간, 문장 임베딩, 문서 임베딩은 서로 다른 층위의 표현입니다. 여기서는 각 용어의 역할을 먼저 다음처럼 구분합니다.
| 용어 | 아주 짧은 뜻 | 이 절에서의 역할 |
|---|---|---|
| 임베딩 | 텍스트를 계산 가능한 벡터로 바꾸는 표현 | Chapter 13의 출발점 |
| 벡터 | 여러 숫자로 된 위치나 표현 | 임베딩 결과를 이해하는 기본 단위 |
| 벡터 공간 | 벡터들이 놓이는 비교 공간 | 가까움과 멂을 읽는 틀 |
| 문장/문단/문서 임베딩 | 더 긴 텍스트 단위를 벡터로 바꾼 표현 | 검색과 RAG의 실제 입력 단위 |
| 임베딩 vs 프롬프트 | 검색용 표현과 작업 지시 입력의 구분 | Part 1 후반 서비스 흐름의 핵심 경계 |
여기서는 임베딩은 벡터 표현, 벡터 공간은 비교 공간, 프롬프트와 역할이 다르다는 구분을 기준선으로 둡니다.
P1-13.1에서는 현대 AI 서비스 흐름에서 임베딩이 어떤 역할을 하는지 봅니다.
| 주제 | 이 절에서 볼 질문 |
|---|---|
| 텍스트 표현 | 문장과 문서를 왜 숫자 벡터로 바꾸는가? |
| 벡터 공간(vector space) | 텍스트를 좌표처럼 놓는다는 말은 무슨 뜻인가? |
| 임베딩의 한계 | 벡터가 의미 자체라고 보면 왜 위험한가? |
유사도(similarity)를 어떻게 계산하는지와 가까운 벡터를 어떻게 찾는지는 P1-13.2에서, 검색 결과를 LLM 입력으로 연결하는 RAG(retrieval-augmented generation)는 P1-13.3에서 다룹니다. 여기서는 검색 이전 단계로서의 표현 변환에만 집중합니다.
텍스트를 벡터 공간에 놓는 기준¶
- 임베딩(embedding)을 텍스트를 벡터 표현으로 바꾸는 방법으로 이해합니다.
- 벡터(vector)를 여러 숫자로 이루어진 계산 가능한 표현으로 이해합니다.
- 벡터 공간(vector space)을 텍스트를 비교할 수 있게 놓는 공간으로 이해합니다.
- 임베딩을 처음 이해할 때 필요한 수학과 확률 지식의 수준을 구분합니다.
- 임베딩이 의미 자체가 아니라 학습된 표현(learned representation)임을 구분합니다.
- P1-13.2의 유사도 검색(similarity search)으로 넘어갈 준비를 합니다.
세 가지 기준¶
여기서는 임베딩 수식을 깊게 다루기보다, 왜 텍스트를 벡터로 바꾸는지 이해하는 데 집중합니다. 본문을 읽을 때 기준이 되는 세 가지 관점은 다음과 같습니다.
| 기준 | 왜 중요한가 | 이 절에서 필요한 이해 수준 |
|---|---|---|
| 임베딩은 텍스트를 계산 가능한 벡터로 바꾸는 표현이라는 점 | 이후 벡터 검색과 RAG를 읽는 기본 전제가 됩니다. | 문장을 숫자 좌표처럼 바꾸는 표현으로 이해합니다. |
| 가까운 위치는 비슷한 사용 맥락을 뜻할 수 있다는 점 | “벡터 공간” 직관을 잡게 해 줍니다. | 의미 자체를 저장한다기보다 비슷한 쓰임이 가깝게 놓인다고 이해합니다. |
| 임베딩은 의미 그 자체가 아니라 계산용 표현이라는 점 | 벡터를 인간 의미와 동일시하는 오해를 줄여 줍니다. | 의미를 다루기 위한 수치 표현으로 이해합니다. |
컴퓨터는 문장을 그대로 비교하지 않는다¶
사람은 다음 두 문장이 비슷하다고 느낄 수 있습니다.
AI는 반복 업무를 자동화하는 데 도움이 된다. 인공지능은 되풀이되는 작업을 줄이는 데 사용할 수 있다.
두 문장은 단어가 완전히 같지 않습니다. AI와 인공지능, 반복 업무와 되풀이되는 작업, 자동화와 줄이는 데 사용은 표현이 다르지만, 전체 의미는 가깝습니다.
단순 문자열 비교는 이런 관계를 잘 잡지 못합니다.
문자열 비교: 글자가 얼마나 같은가?
임베딩 기반 비교: 모델이 학습한 표현 공간에서 얼마나 가까운가?
임베딩은 두 번째 질문을 가능하게 합니다. 텍스트를 숫자 벡터로 바꾸면, 모델이나 검색 시스템은 그 벡터 사이의 거리를 계산할 수 있습니다.
벡터는 여러 숫자로 된 표현이다¶
벡터(vector)는 여러 숫자로 이루어진 값입니다. 여기서는 이를 “좌표”에 가까운 표현으로 이해하면 됩니다.
실제 임베딩 벡터는 수백 또는 수천 개의 숫자를 가질 수 있습니다. 사람이 각 숫자의 의미를 직접 읽을 필요는 없습니다. 중요한 것은 모델이 텍스트를 계산 가능한 위치로 바꾼다는 점입니다.
텍스트: 사람이 읽는 표현
벡터: 모델과 검색 시스템이 계산하는 표현
이렇게 바꾸면 텍스트끼리 비교할 수 있습니다. 예를 들어 어떤 문서가 질문과 가까운지, 어떤 문장들이 비슷한 주제를 다루는지 계산할 수 있습니다.
이 지점에서 수학이 부담스럽게 느껴질 수 있습니다. 하지만 P1-13.1을 이해하기 위해 선형대수(linear algebra)나 확률(probability) 계산을 먼저 공부할 필요는 없습니다.
| 지식 | 이 절에서 필요한 수준 |
|---|---|
| 벡터(vector) | 여러 숫자로 된 표현이라는 직관 |
| 차원(dimension) | 숫자가 여러 칸으로 나뉘어 있다는 직관 |
| 거리(distance) | 두 표현이 가깝거나 멀 수 있다는 직관 |
| 확률(probability) | 모델이 데이터에서 패턴을 학습한다는 직관 |
수학은 나중에 유사도(similarity), 내적(dot product), cosine similarity 같은 계산을 볼 때 조금씩 필요해집니다. 지금은 “텍스트를 여러 숫자로 된 위치로 바꾸고, 그 위치를 이용해 가까운 텍스트를 찾는다”는 흐름을 잡는 것이 더 중요합니다.
임베딩은 텍스트를 벡터 공간에 놓는다¶
벡터 공간(vector space)은 벡터들이 놓이는 공간입니다. 2차원 지도처럼 눈으로 그리기는 어렵지만, 직관은 비슷합니다.
가까운 위치: 모델이 비슷하게 표현한 텍스트
먼 위치: 모델이 다르게 표현한 텍스트
예를 들어 다음 문장들을 생각해 봅니다.
| 문장 | 직관적 주제 |
|---|---|
| AI는 문서 요약을 도울 수 있다. | AI 활용 |
| LLM은 긴 문서를 짧게 요약할 수 있다. | AI 활용 |
| 커피 원두는 로스팅 정도에 따라 맛이 달라진다. | 커피 |
임베딩 모델이 잘 학습되어 있고 사용 목적에 맞는다면, 앞의 두 문장은 세 번째 문장보다 서로 더 가까운 벡터로 표현될 가능성이 큽니다.
다만 “가능성이 크다”는 표현이 중요합니다. 임베딩은 절대적인 의미 지도(meaning map)가 아닙니다. 어떤 데이터와 목표로 학습되었는지, 어떤 언어와 도메인에서 쓰이는지에 따라 표현 품질이 달라질 수 있습니다.
단어, 문장, 문서도 벡터가 될 수 있다¶
P1-11.1에서는 주로 단어 임베딩(word embedding)을 봤습니다. 하지만 실제 서비스에서는 문장, 문단, 문서도 벡터로 표현합니다.
| 단위 | 예 | 쓰임 |
|---|---|---|
| 단어(word) | 인공지능 | 단어 간 관계, 언어 모델 입력 |
| 토큰(token) | 인, 공지능 또는 부분 단어 | LLM 내부 입력 단위 |
| 문장(sentence) | AI는 문서 요약을 도울 수 있다. | 의미 검색, 중복 탐지 |
| 문단(paragraph) | 여러 문장으로 된 설명 | 문서 검색, 질의응답 |
| 문서(document) | 긴 글 또는 파일 | 자료 분류, 검색 후보 생성 |
긴 문서를 한 번에 하나의 벡터로 만들 수도 있지만, 실제 검색에서는 문서를 더 작은 조각(chunk)으로 나누는 경우가 많습니다. 그래야 질문과 직접 관련된 부분을 더 잘 찾을 수 있습니다.
긴 문서 -> 작은 문단 또는 조각(chunk) -> 각 조각을 임베딩 벡터로 변환 -> 질문 벡터와 가까운 조각을 찾음
조각을 어떻게 나눌지는 쉬운 문제가 아닙니다. 너무 작게 나누면 맥락이 부족하고, 너무 크게 나누면 관련 없는 내용이 섞일 수 있습니다. 이 문제는 바로 뒤의 P1-13.3 RAG 흐름과 Part 5의 P5-12.2 검색 결과와 생성의 결합에서 다시 등장합니다.
임베딩은 의미 자체가 아니다¶
임베딩을 설명할 때 가장 조심해야 할 오해가 있습니다.
오해: 임베딩은 문장의 진짜 의미를 숫자로 완벽하게 저장한다.
더 안전한 설명: 임베딩은 모델이 학습한 기준에 따라 텍스트를 계산 가능한 벡터로 표현한 것이다.
임베딩은 유용하지만 한계가 있습니다.
| 한계 | 설명 |
|---|---|
| 문맥 손실 | 짧은 벡터 하나에 긴 문서의 모든 의미를 담기 어렵다. |
| 다의어 문제 | 같은 단어도 문맥에 따라 뜻이 달라질 수 있다. |
| 도메인 차이 | 일반 데이터로 학습된 표현이 전문 분야에 약할 수 있다. |
| 언어 차이 | 한국어, 영어, 혼합 표현에서 품질이 달라질 수 있다. |
| 최신성 문제 | 임베딩 자체가 최신 사실을 보장하지 않는다. |
따라서 임베딩은 의미를 완전히 이해한 결과가 아니라, 검색과 비교에 유용한 표현으로 보는 편이 안전합니다.
프롬프트와 임베딩의 역할은 다르다¶
프롬프트(prompt)는 LLM에 현재 작업 조건을 전달합니다. 임베딩(embedding)은 텍스트를 벡터로 바꾸어 비교와 검색이 가능하게 합니다.
| 구분 | 역할 |
|---|---|
| 프롬프트(prompt) | 모델에게 지시, 맥락, 예시, 제약을 입력한다. |
| 임베딩(embedding) | 텍스트를 벡터로 바꾸어 검색과 비교에 사용한다. |
예를 들어 사용자가 이렇게 묻는다고 합시다.
프롬프트의 한계는 무엇인가?
프롬프트만 보면 LLM은 기존 학습과 현재 대화 문맥을 바탕으로 답합니다. 하지만 책의 특정 절을 근거로 답하려면 먼저 관련 문서를 찾아야 합니다. 이때 임베딩은 질문과 가까운 문서 조각을 찾는 데 쓰일 수 있습니다.
질문 텍스트 -> 질문 임베딩 -> 문서 조각 임베딩들과 비교 -> 가까운 조각을 후보로 선택 -> 선택된 내용을 LLM 입력에 넣음
이 흐름이 P1-13.2와 P1-13.3으로 이어집니다.
체크리스트¶
- 임베딩(embedding)을 텍스트를 벡터 표현으로 바꾸는 방법으로 설명할 수 있다.
- 벡터(vector)를 여러 숫자로 이루어진 계산 가능한 표현으로 설명할 수 있다.
- 벡터 공간(vector space)을 텍스트를 비교할 수 있게 놓는 공간으로 설명할 수 있다.
- 단어, 토큰, 문장, 문단, 문서가 모두 임베딩 대상이 될 수 있음을 설명할 수 있다.
- 임베딩이 의미 자체가 아니라 학습된 표현(learned representation)임을 설명할 수 있다.
- 프롬프트(prompt)와 임베딩(embedding)의 역할 차이를 설명할 수 있다.
- P1-13.2의 유사도 검색(similarity search)으로 이어지는 흐름을 말할 수 있다.
- 질문과 문서를 문자열이 아니라 계산 가능한 표현으로 비교해야 하는 이유를 설명할 수 있다.
텍스트를 벡터로 바꾼다,그 벡터를 비교한다,프롬프트는 작업 조건을 준다를 구분할 수 있다.
출처와 참고 자료¶
- Daniel Jurafsky, James H. Martin, Speech and Language Processing, Chapter 6: Neural Networks and Neural Language Models, draft of 2026-01-06, 확인 날짜: 2026-06-23.
- Yoshua Bengio, Rejean Ducharme, Pascal Vincent, Christian Jauvin, A Neural Probabilistic Language Model, Journal of Machine Learning Research, 2003, 확인 날짜: 2026-06-23.
- Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean, Efficient Estimation of Word Representations in Vector Space, arXiv, 2013, 확인 날짜: 2026-06-23.
- Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg Corrado, Jeffrey Dean, Distributed Representations of Words and Phrases and their Compositionality, arXiv, 2013, 확인 날짜: 2026-06-23.
- Nils Reimers, Iryna Gurevych, Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks, arXiv, 2019, 확인 날짜: 2026-07-19.