셋 다 "데이터를 숫자로 바꾼다" 는 설명을 달고 다닌다. 그러나 목적과 적용 시점이 다르다.
| 구분 | 무엇을 하는가 | 언제 하는가 |
|---|---|---|
| 벡터라이징(vectorization) | 비정형 데이터를 수치 벡터로 바꾼다 | 모델 입력 전, 데이터 표현 단계 |
| 임베딩(embedding) | 의미적 유사도가 보존되도록 학습된 벡터 공간에 사상한다 | 벡터라이징의 한 형태. 모델이 만든다 |
| 양자화(quantization) | 이미 만들어진 벡터나 모델 파라미터를 더 낮은 비트로 근사한다 | 학습 후, 저장·추론 최적화 단계 |
한 줄로 줄이면 이렇다.
벡터라이징은 비교할 수 있게 만드는 일, 양자화는 싸게 다룰 수 있게 만드는 일이다.
모델은 행렬·벡터 연산으로 동작하므로 텍스트·이미지·음성을 숫자 배열로 바꿔야 한다. 이 변환이 벡터라이징이다.
| 데이터 | 대표 기법 |
|---|---|
| 텍스트 | Bag of Words, TF-IDF, Word2Vec, FastText, 트랜스포머 계열 임베딩 |
| 이미지 | CNN 계열 특징 추출 벡터 |
| 음성 | MFCC, 스펙트로그램, wav2vec 계열 |
| 영상 | 프레임별 특징 + 시계열 결합 |
| 표 형식 | 원-핫 인코딩, 표준화, 차원 축소 |
기법에 따라 유사도가 보존되는 정도가 다르다. 원-핫 인코딩은 모든 항목이 서로 같은 거리에 놓이므로 "고양이" 와 "강아지" 가 "고양이" 와 "자동차" 만큼 멀다. TF-IDF 는 단어 빈도만 반영하고 의미는 반영하지 않는다.
임베딩은 유사도 구조가 유지되도록 학습된 벡터라이징이다. 결과물은 똑같이 실수 배열이지만, 그 배열이 놓인 공간이 학습으로 만들어졌다는 점이 다르다.
"고양이" -> [0.13, 0.75, 0.21, ...]
"강아지" -> [0.14, 0.74, 0.20, ...] 코사인 유사도 높음
"자동차" -> [0.81, 0.02, 0.63, ...] 코사인 유사도 낮음
그래서 검색·추천·RAG 의 후보 선별이 가능해진다. 벡터 사이의 거리를 의미 사이의 거리로 읽을 수 있기 때문이다.
임베딩은 벡터라이징의 상위 개념이 아니라 부분집합이다. "벡터라이징을 한 뒤에 임베딩을 한다" 는 단계 설명은 정확하지 않다. TF-IDF 로 벡터라이징한 결과는 임베딩이 아니고, 문장 임베딩 모델의 출력은 그 자체가 벡터라이징의 결과이면서 임베딩이다.
양자화는 두 문맥에서 쓰이고, 둘은 목적이 다르다.
연속적인 아날로그 신호를 샘플링한 뒤 이산적인 값으로 근사한다. 목적은 저장 가능한 형태로 만드는 것이고, 값 사이의 "의미적 유사도" 같은 개념은 없다. 값의 크기 차이만 남는다.
이미 있는 실수 벡터나 가중치를 더 적은 비트로 표현한다. 목적은 메모리와 연산량 절감이다.
| 방식 | 내용 |
|---|---|
| FP16 · BF16 | 32비트 부동소수점을 16비트로 |
| INT8 · INT4 | 정수로 변환. 스케일과 영점(zero point)을 함께 보관 |
| Product Quantization (PQ) | 벡터를 여러 부분으로 쪼개 각각을 코드북 색인으로 대체. 벡터 검색 인덱스에서 쓴다 |
| QLoRA 등 | 양자화한 가중치 위에서 저랭크 어댑터만 학습 |
양자화하면 값이 근사되므로 정밀도가 떨어진다. 벡터 검색에서는 재현율이 약간 떨어지고, 모델에서는 출력 품질이 조금 달라진다. 그 대가로 메모리와 처리량을 얻는다.
셋을 이해하려면 모델이 무엇인지도 한 줄로 정리해 둘 필요가 있다. 머신러닝에서 모델은 데이터로부터 학습한 결과를 담아 예측·분류·군집 같은 작업을 수행하는 수학적 구조다. 세 가지로 이루어진다.
| 요소 | 내용 |
|---|---|
| 구조 | 입력을 출력으로 옮기는 함수의 형태. 선형 회귀의 일차함수, 신경망의 층 구성 |
| 파라미터 | 학습으로 정해지는 값. 회귀의 기울기·절편, 신경망의 가중치·편향 |
| 하이퍼파라미터 | 학습 전에 사람이 정하는 값. 학습률, 층 수, 정규화 강도 |
양자화가 줄이는 것은 이 가운데 파라미터의 표현 정밀도다. 구조는 그대로다.