Elastic
Jina AI
모델
API
keyboard_arrow_down
Reader
어떤 URL이든 Markdown으로 변환하여 LLM 그라운딩을 개선하세요.
Embeddings
멀티모달 및 다국어 임베딩.
Reranker
검색 관련성을 극대화하는 리랭커.
MCP
terminal
CLI
article
llms.txt
smart_toy
에이전트
data_object
스키마
menu_book
문서
로그인
login
양자화 기술 개요
실험 설정
결과
결론
기술 블로그
6월 30, 2025

jina-embeddings-v4의 양자화 인식 훈련

양자화는 더 작은 向量模型 (Embeddings)을 제공합니다. 미세 조정된 양자화가 손실 없는 向量模型 (Embeddings)을 제공한다는 것을 보여드리겠습니다.
Bo Wang, Andrei Ungureanu, Scott Martens • 8 분 소요
양자화는 AI에서 확장 문제를 해결하기 위해 널리 사용됩니다. 이름 때문에 복잡하게 들리지만, 숫자를 반올림하여 차지하는 공간을 줄이는 것뿐입니다. 이는 더 작은 메모리와 저장 공간을 차지하는 더 작은 임베딩 벡터 (Embeddings)를 의미하며, 벡터를 비교하는 데 걸리는 시간이 줄어들어 정보 검색 속도가 빨라집니다. 양자화는 모델이 처리하는 데이터의 종류나 사용 사례에 상관없이 순전히 수치적인 기술이므로, 많은 비용이 드는 도메인 지식 없이도 개선을 가져올 수 있습니다. 양자화는 정밀도를 희생해야 하는 오래된 트레이드오프와 공짜는 없다는 클리셰와 관련이 있을 것이라고 예상할 수 있습니다. 이 글에서는 *양자화 인식 훈련* (QAT, quantization-aware training)을 통해 손실 없이 만드는 방법을 보여드리겠습니다. 이 기술은 공간이 중요한 애플리케이션에서 필요한 더 작은 임베딩을 제공하기 위해 jina-embeddings-v4에서 사용됩니다.

tag양자화 기술 개요

모델 양자화는 일반적으로 다음 네 가지 중 하나를 의미합니다.
  • 사후 훈련 양자화 (PTQ, Post-training quantization)
  • 양자화된 임베딩 출력을 위한 훈련 (Output QAT)
  • 완전 양자화된 모델을 위한 훈련 (Full QAT)
  • 기존의 양자화되지 않은 모델에서 새로운 양자화된 모델을 증류
사후 훈련 양자화 (PTQ, Post-training quantization)는 훈련된 임베딩 모델을 있는 그대로 받아들이고 어떤 방식으로든 수정하지 않습니다. 모델에서 생성된 부동 소수점 값의 가장 중요하지 않은 자릿수를 버리는 문제입니다. 숫자를 반올림하고 때로는 범위를 조정합니다. 출력 QAT는 최적의 감소된 정밀도 벡터를 생성하도록 임베딩 모델을 미세 조정하는 것을 의미합니다. 이는 모델을 수정하는 것을 의미하지만 모델 가중치의 정밀도를 변경하지 않으므로 크기가 줄어들지 않습니다. 출력 벡터 크기만 줄어듭니다. Full QAT는 완전히 훈련된 완전 정밀도 모델로 시작하여 모델 가중치의 정밀도를 낮춘 다음 수정된 모델의 성능을 미세 조정합니다. 이는 미세 조정 작업을 수행하는 대가로 더 작은 임베딩뿐만 아니라 훨씬 더 작은 모델을 생성합니다. 증류 (Distillation)는 기존 모델의 성능에 맞게 새로운 모델을 훈련하는 프로세스입니다. 이는 양자화된 모델로 처음부터 설계된 새로운 모델을 만들고 기존 모델을 사용하여 기존 모델에 최대한 가깝게 수행될 때까지 훈련하는 데 필요한 만큼의 훈련 데이터를 생성하는 것을 의미합니다. 이러한 네 가지 접근 방식의 이점은 아래 표에 요약되어 있습니다.
접근 방식 더 작은 임베딩? 훈련 필요? 모델 압축? 더 빠른 추론?
PTQ ✓ ❌ ❌ ❌
Output QAT ✓ ✓ ❌ ❌
Full QAT ✓ ✓ ✓ ✓
Distillation
(더 작은 모델로) ✓ ✓ ✓ ✓
네 가지 모두 더 작은 임베딩을 생성하지만 PTQ를 제외하고는 모두 추가 훈련이 필요하며 Full QAT와 Distillation만이 더 빠르고 새로운 모델을 생성합니다. Full QAT와 Distillation은 Output QAT보다 훨씬 더 많은 훈련이 필요하기 때문에 구현하는 데 훨씬 더 많은 비용이 듭니다. 이 글에서는 임베딩 모델의 크기나 속도를 변경하지 않는 PTQ와 Output QAT만 살펴보겠습니다.

tag실험 설정

이러한 실험에서 기준 모델은 2048차원에서 32비트 정밀도 부동 소수점 (FP32) 벡터를 생성하는 검색 어댑터가 있는 jina-embeddings-v4입니다. 따라서 각 임베딩의 크기는 8196바이트 또는 8kB입니다. NanoBEIR 벤치마크 스위트의 쿼리-문서 검색 벤치마크 작업을 사용하여 여러 실험 조건을 연구했습니다. 검색 프로세스는 벡터 간의 코사인 유사도를 사용하여 쿼리와 가장 일치하는 문서를 찾고 순위를 매깁니다.
  • 기준 — 양자화 없이 jina-embeddings-v4 임베딩 벡터의 성능. 이러한 실험은 모두 모델의 베타 버전을 사용했으며 릴리스 성능이 다소 좋습니다.
  • PTQ — 모델을 변경하지 않고 출력 벡터를 이진 벡터로 양자화했습니다.
  • Output QAT — 양자화된 조건에서 성능을 향상시키기 위해 출력 벡터를 양자화하고 검색 어댑터에 미세 조정을 적용했습니다.

tag양자화 수준

그림 1: 사후 양자화 임베딩 크기 비교.
네 가지 다른 수준의 양자화를 실험했습니다.
  • 8비트 정수 — FP32 값은 -128에서 127 범위의 정수로 줄어들어 임베딩이 4배 줄어들어 2048바이트가 됩니다.
  • 4비트 정수 - 4비트 정수와 동일하지만 -8에서 7 범위로 매핑하여 벡터 크기를 8배 줄여 1024바이트로 줄입니다.
  • 삼항 양자화 — 모든 값은 -1, 0, 1의 세 값 중 하나로 매핑됩니다. 최적으로 저장하면 각 차원이 1.6비트로 줄어들어 임베딩 벡터의 크기가 약 40배 줄어들어 약 230바이트가 됩니다.
  • 이진 양자화 — torch.sign 데이터 유형을 사용하여 FP32 스칼라 값을 1비트로 변환합니다. 이 데이터 유형은 저장하는 데 1비트가 걸리는 두 개의 값만 제공합니다. 이렇게 하면 2048차원 임베딩 벡터가 8192바이트에서 128바이트로 64배 줄어듭니다.

tag스케일링

이진 양자화의 경우 양자화는 매우 간단합니다. 벡터 값이 0보다 크거나 양수이면 1로 매핑됩니다. 그렇지 않으면 -1로 매핑됩니다.
그림 2: 이진 양자화. 모든 음수 값은 -1이 되고 다른 모든 값은 1이 됩니다.
다른 양자화 시나리오의 경우 값을 범위로 정규화한 다음 양자화 수준에서 허용하는 가장 가까운 값으로 반올림했습니다. 임베딩 벡터는 -∞와 +∞ (또는 실제로는 매우 큰 양수 및 음수) 사이의 스케일 숫자로 구성됩니다. 두 개의 숫자 maxmaxmax와 minminmin을 사용하여 양자화할 값을 스케일링합니다. 삼항 양자화의 경우 각 벡터 구성 요소 vvv를 다음과 같이 변환합니다.
  • vvv ≥ maxmaxmax이면 vvv는 1이 됩니다.
  • vvv ≤ minminmin이면 vvv는 -1이 됩니다.
  • minminmin < vvv < maxmaxmax이면 vvv는 0이 됩니다.
그림 3: 삼항 양자화. 간격이 정의되고 그 안의 값이 0이 됩니다. 모든 낮은 값은 -1이 되고 모든 높은 값은 1이 됩니다.
4비트 정수의 경우:
  • vvv ≥ maxmaxmax이면 vvv는 7이 됩니다.
  • vvv ≤ minminmin이면 vvv는 -8이 됩니다.
  • minminmin < vvv < maxmaxmax이면 vvv는 16∗(v−min)/(max−min)−816*(v - min)/(max - min) - 816∗(v−min)/(max−min)−8이 되고 가장 가까운 정수로 반올림됩니다. 이렇게 하면 값이 [−8,7][-8,7][−8,7] 범위로 스케일링됩니다.
그림 4: 4비트 양자화. 간격이 정의되고 모든 값이 정의된 범위 [-8,7]로 정규화됩니다.
8비트 정수의 경우:
  • vvv ≥ maxmaxmax이면 vvv는 127이 됩니다.
  • vvv ≤ minminmin이면 vvv는 -128이 됩니다.
  • minminmin < vvv < maxmaxmax이면 vvv는 256∗(v−min)/(max−min)−128256*(v - min)/(max - min) - 128256∗(v−min)/(max−min)−128이 되고 가장 가까운 정수로 반올림됩니다. 이렇게 하면 값이 [−128,127][-128,127][−128,127] 범위로 스케일링됩니다.
그림 5: 8비트 양자화. 간격이 정의되고 모든 값이 정의된 범위 [-128,127]로 정규화됩니다.
maxmaxmax와 minminmin을 계산하기 위해 두 가지 접근 방식을 사용했습니다.
  • 최소/최대 — 데이터를 일괄 처리하고 각 일괄 처리마다 가장 높은 벡터 구성 요소와 가장 낮은 벡터 구성 요소를 식별하여 maxmaxmax를 가장 높게, minminmin을 가장 낮게 설정했습니다.
  • 일괄 처리에서 롤링 평균 — 각 일괄 처리마다 벡터 구성 요소의 평균과 표준 편차를 계산했습니다. 모든 일괄 처리를 처리하면서 평균과 표준 편차의 이동 평균을 유지했습니다. avgavgavg가 일괄 처리 평균 값의 현재 이동 평균이고 stdstdstd가 표준 편차의 현재 이동 평균인 경우 각 일괄 처리마다:
max=avg+stdmax = avg + stdmax=avg+std
min=avg−stdmin = avg - stdmin=avg−std

tagQAT 미세 조정

PTQ 실험의 경우 모델을 있는 그대로 사용하고 위에서 설명한 방법을 사용하여 생성된 임베딩을 양자화했습니다. Output QAT의 경우 *straight-through estimation*을 사용하여 모델을 미세 조정했습니다. 이는 손실 (즉, 오류)을 계산하기 전에 양자화 프로세스를 되돌려 값의 전체 정밀도를 복원한 다음 해당 손실 메트릭을 사용하여 모델을 미세 조정하는 것을 의미합니다.

각각의 경우 10,000단계를 거쳐 미세 조정했으며, 500단계마다 체크포인트를 저장했습니다. 그런 다음 NanoBEIR 벤치마크에서 가장 높은 점수를 받은 체크포인트를 유지했습니다.

tag비대칭 양자화

PTQ와 Output QAT는 임베딩 벡터의 크기를 줄이지만, 모델 크기나 추론 속도를 줄이지는 않습니다. 모든 절감 효과는 저장된 문서 임베딩의 크기와 검색 속도에 있습니다.

결과적으로 쿼리 벡터를 양자화하거나 검색 시 양자화되지 않은 상태로 두는 것을 모두 테스트했습니다. 어느 쪽이든 저장된 임베딩 벡터의 크기를 변경하지 않기 때문입니다.

tag결과

총 9가지 조건을 테스트했으며, 아래 표에 요약되어 있습니다.

조건 이름 미세 조정 양자화 수준 스케일링 전략 양자화된 쿼리
기준선 ❌ 해당 없음 해당 없음 해당 없음
PTQ Both ❌ 이진 해당 없음 ✓
PTQ Docs Only ❌ 이진 해당 없음 ❌
QAT Binary ✓ 이진 해당 없음 ✓
QAT Binary Docs Only ✓ 이진 해당 없음 ❌
QAT Trinary ✓ 삼진 롤링 평균 ✓
QAT 4-bits ✓ 4비트 롤링 평균 ✓
QAT 8-bits ✓ 8비트 롤링 평균 ✓
QAT 8-bits Min/Max ✓ 8비트 최소/최대 ✓

표 2: 실험 조건

조건 이름 평균 점수 기준선과의 차이
기준선 60.10 해당 없음
PTQ Binary 58.33 -1.78
PTQ Binary Docs Only 59.08 -1.02
QAT Binary 59.22 -0.89
QAT Binary Docs Only 60.81 +0.70
QAT Trinary 59.49 -0.62
QAT 4-bits 61.73 +1.62
QAT 8-bits 61.67 +1.56
QAT 8-bits Min/Max 61.29 +1.19

표 3: 12개의 NanoBEIR 벤치마크에 대한 각 조건의 평균 점수(정확도 %)

위 표에서 양자화를 위한 미세 조정이 점수를 향상시킨다는 것을 알 수 있습니다. PTQ Binary 조건과 QAT Binary 조건의 유일한 차이점은 미세 조정이며, 점수 차이는 상당합니다. 마찬가지로, 동일한 미세 조정으로만 구분되는 PTQ Binary Docs Only 조건과 QAT Binary Docs Only 조건 간에 거의 2%의 점수 향상을 확인할 수 있습니다.

놀랍지 않게도 양자화 정도가 적을수록 점수가 일반적으로 향상되는 것을 알 수 있습니다. 4비트 양자화가 삼진보다, 삼진이 이진보다 더 나은 점수를 얻습니다. 그러나 8비트로 더 나아가는 것은 아무것도 개선하지 못한 것 같습니다.

이진 경우에만 쿼리를 양자화하지 않은 상태로 두는 것을 테스트했지만, 이는 성능을 향상시키는 것으로 보입니다.

마지막으로, 테스트 결과 롤링 평균 스케일링 방법이 단순한 최소/최대 접근 방식보다 성능이 우수함을 시사합니다.

tag결론

양자화는 임베딩 모델에 대한 몇 가지 중요한 운영상의 이점을 제공합니다. 임베딩 벡터의 크기를 크게 줄이고 정보 검색 속도를 높이기 때문입니다. 간단한 사후 훈련 양자화 (PTQ, Post-Training Quantization)는 메모리 및 스토리지 측면에서 즉각적인 이점을 제공하지만, 실험 결과 양자화 인식 훈련 (QAT, Quantization-Aware Training)이 불가피한 정밀도 손실을 크게 완화하는 것으로 나타났습니다. 미세 조정은 지속적으로 더 나은 점수를 산출했습니다.

양자화 정도는 성능에 직접적인 영향을 미치며, 이는 값의 정밀도를 낮추는 데 기반한 방법에서 예상할 수 있는 결과입니다. 덜 적극적인 양자화 (예: 4비트)는 일반적으로 더 적극적인 방법 (예: 이진)보다 성능이 우수하지만, 놀랍게도 8비트와 4비트 양자화 간에는 성능 차이가 크지 않았습니다. 일부 부정확성 임계값에 도달할 때까지는 양자화 정도에 따른 차이가 거의 없는 것으로 보입니다.

스케일링 전략도 중요하며, 롤링 평균 방법이 고정된 최소/최대 접근 방식보다 우수한 결과를 보였습니다. 데이터와 관련된 스케일링 값을 사용하는 것이 훨씬 더 효과적인 것으로 보이며 추가 탐구가 필요합니다.

양자화를 통해 더 적은 비용으로 임베딩 모델을 더 많이 활용할 수 있습니다. 이 기사에서는 양자화에 대한 모든 옵션을 탐색하지는 않지만, 쉽게 접근할 수 있는 두 가지 옵션을 탐색하고 있으며, 이들은 실제로 제공할 수 있는 이점이 있습니다. 사용자 비용을 더욱 절감할 수 있도록 양자화 전략을 개선하고 개선하기 위해 노력하고 있으며, 가까운 시일 내에 jina-embeddings-v4에 대한 이진 지원을 릴리스할 예정입니다.

범주:
기술 블로그
rss_feed

자세히 보기
3월 11, 2026 • 7 분 소요
Bootstrapping Audio Embeddings from Multimodal LLMs
Han Xiao
Abstract illustration of a sound wave or heartbeat, formed by blue, orange, and gray dots on a white background.
3월 06, 2026 • 6 분 소요
Identifying Embedding Models from Raw Numerical Values
Han Xiao
Fingerprint illustration made from numbers, showcasing digital and high-tech design on a light background.
9월 09, 2025 • 11 분 소요
Multimodal Embeddings in Llama.cpp and GGUF
Andrei Ungureanu
Alex C-G
Cartoon llama in the center of a white background, emitting laser-like beams from its eyes. The illustration creates a playfu
현재 언어 / 테마
Search Foundation
Reader
Embeddings
Reranker
Jina API 키 받기
속도 제한
회사 소개
소식
Jina 로고 다운로드
open_in_new
Elastic 로고 다운로드
open_in_new
API 상태
Elastic © 2026.보안이용약관개인정보 보호쿠키 관리제 개인 정보를 판매하거나 공유하지 마세요.
본 웹사이트와 모든 관련 콘텐츠, 소프트웨어, 제품 및 서비스는 전문 목적 사용을 위한 것입니다. 소비자 사용은 의도되지 않았습니다.