아래로 당겨서 돌아가기
截斷 前 PCA 적용으로 비 Matryoshka 임베딩 압축 가능: BGE-M3 실험 결과

截斷 前 PCA 적용으로 비 Matryoshka 임베딩 압축 가능: BGE-M3 실험 결과

PCA Before Truncation Makes Non-Matryoshka Embeddings Compressible: Results on BGE-M3

대부분의 임베딩 모델은 Matryoshka 학습 방식을 사용하지 않아서, 단순히 차원을 줄이면 성능이 망가집니다. 이 글에서는 간단한 해결책을 제시합니다: 임베딩 벡터 샘플에 PCA를 한 번 적용한 후, 벡터를 PCA 공간으로 회전시킨 다음 차원을 줄이는 방식입니다. PCA가 중요한 신호를 앞쪽 성분들에 집중시키기 때문에, 더 이상 임의로 자르는 게 아니게 되는 거죠. BGE-M3의 1024차원 벡터로 테스트한 결과는 정말 놀랍습니다: 512차원에서 단순 차원 축소는 코사인 유사도가 0.707로 떨어지는데, PCA 먼저 적용하면 0.996을 유지합니다. 384차원에서는 0.609 vs 0.990이죠. 쉽게 말해, 이 방법으로 임베딩을 원래 크기의 절반이나 3분의 1로 압축하면서도 품질을 거의 손실 없이 유지할 수 있다는 뜻입니다. 임베딩 저장 공간이나 응답 속도 때문에 고민 중이라면 꼭 읽어볼 만한 내용입니다.

키워드

PCAembedding compressionMatryoshka embeddingsdimension truncationcosine similarityBGE-M3