Executive Summary

RAG를 붙인 조직은 지난 몇 년 사이 사내 문서를 벡터로 바꿔 어딘가에 쌓아 두었다. 그 벡터 더미는 대체로 원문이 아니니 덜 민감한 것으로 취급됐다. 접근통제도, 보존 기간도, 백업이 어디로 복제되는지도 원문 저장소보다 느슨한 경우가 많다. 사람이 읽을 수 없는 숫자 나열이니 그래도 된다고 여겼다.

코넬대 연구팀은 그 전제를 실험으로 흔들었다. 어떤 모델이 만들었는지 모르는 임베딩 더미만 손에 쥔 상태에서, 짝지은 원문과 벡터의 대응표도 없이, 그 벡터들을 자기가 아는 다른 임베딩 모델의 공간으로 옮기는 방법을 만들었다. 옮긴 벡터는 원래 벡터와 거의 같은 자리를 찾아갔고, 거기에 기존 도구를 그대로 붙이자 트윗의 주제가, 환자 기록의 질병군이, 기업 이메일의 이름과 날짜와 금액이 나왔다. 논문은 2025년 12월 NeurIPS에서 발표됐다.

실증된 범위는 좁다. 실험 대상은 텍스트 임베딩 모델 일곱 종이고 생성형 LLM은 한 종도 없다. 문서는 영어이며, 이메일 실험 표본은 쉰 통이다. 의료기록처럼 학습 분포에서 멀리 떨어진 문서에서는 정확도가 크게 무너졌다. 그리고 논문 어디에도 방어책은 없다. 스물한 쪽 전문에 방어라는 단어 자체가 나오지 않는다. 그래서 이 글은 무엇이 실증됐고 무엇이 아직 아닌지 선을 긋고, 그 선 안쪽에서 벡터 인덱스를 운영하는 사람이 지금 셀 수 있는 숫자부터 시작한다.

1~3위

8,192개 중 원래 벡터를 찾아낸 평균 순위

백본 계열이 다른 쌍 기준. 아무것도 하지 않으면 4,000위대

5만 개

100만 개와 거의 같은 성능이 나온 학습 벡터 수

논문이 이 항목을 잰 한 쌍(gte→gtr) 기준. 줄인 것은 피해자 쪽 벡터뿐이다

최대 80%

번역된 벡터에서 정보가 나왔다고 판정된 이메일 비율

표본 50통, 일부 모델 쌍의 최댓값, 판정자는 GPT-4o

10분 미만

후속 연구가 같은 정렬을 CPU로 끝낸 시간

원 논문은 GPU로 1~7일. 번역기 학습 단계만 해당한다

1

벡터 DB에는 무엇이 남아 있나

사내 문서 검색에 RAG를 붙이면 시스템이 하나 더 생긴다. 원문 문서 저장소와 별개로, 문서를 잘게 쪼개 숫자 배열로 바꿔 담아 두는 벡터 인덱스다. 이 둘은 대개 같은 등급으로 관리되지 않는다. 원문 저장소에는 접근 권한과 보존 기간과 감사 로그가 붙어 있는데, 벡터 인덱스는 검색 성능을 위한 부속 인프라로 분류돼 그런 장치 없이 서 있는 경우가 흔하다. 개발 환경 복사본, 성능 시험용 복제본, 관리형 서비스로 나간 사본까지 세면 경로는 더 늘어난다.

그런 취급을 정당화한 것은 하나의 전제였다. 임베딩(embedding)은 원문이 아니라 원문에서 뽑아낸 숫자이고, 그 숫자를 만든 모델이 무엇인지 모르면 아무도 되읽을 수 없다는 것. 코넬대 연구팀의 논문 「Harnessing the Universal Geometry of Embeddings」는 이 전제를 겨냥한다. 공격자가 가진 것이 벡터 더미 하나뿐일 때 그것만으로 무엇이 성립하는지를 묻는다.

1.1공격자가 가진 것과 갖지 못한 것

논문이 세운 위협 모델은 놀랄 만큼 인색하다. 공격자는 피해자가 쓴 임베딩 모델에 질의를 보낼 수 없고, 그 모델의 학습 데이터도 구조도 모른다. 원문은 한 줄도 못 본다. 논문 본문의 표현으로는 이렇다.

"We cannot make queries to M₁ and do not know its training data, nor architectural details." (우리는 M₁에 질의할 수 없고 그 학습 데이터도 구조적 세부도 알지 못한다.) 대신 공격자에게 허용된 것은 두 가지다. 마음대로 질의할 수 있는 다른 인코더 M₂, 그리고 숨겨진 문서의 양식과 언어 수준의 성긴 지식이다.

이 조건을 운영자의 언어로 바꾸면 네 줄의 체크리스트가 된다. 왼쪽은 논문이 실제로 설정한 값이고, 오른쪽은 그 항목을 자기 환경에 대입할 때 물어야 할 질문이다.

요건 논문의 설정 자기 환경에 물어볼 질문
피해자 쪽 임베딩 덤프주 실험은 양쪽 100만 개. 피해자 쪽만 5만 개로 줄여도 거의 동등우리 인덱스에 벡터가 몇 개 있나. 그 사본은 어디까지 복제돼 있나
공격자가 질의할 수 있는 다른 인코더공개 임베딩 모델 아무거나막을 수 없는 요건이다. 공개 모델은 누구나 쓴다
문서의 양식과 언어 수준 지식텍스트, 영어우리 인덱스가 무엇을 담고 있는지 밖에서 짐작 가능한가
컴퓨트모델 쌍당 GPU 1~7일, 전체 176 GPU-day공격자가 감당할 수 있는 비용인가 (이 항목은 5번 섹션에서 뒤집힌다)

덤프는 유출된 벡터 사본을 가리킨다. 컴퓨트 수치는 논문 부록 A의 저자 자체 보고이며, 완전 학습 약 25건 기준이다.

첫 번째 항목에서 이미 한 가지가 정리된다. 이 공격은 벡터 한 개로 성립하지 않는다. 어딘가에서 흘러나온 벡터 하나를 손에 쥔 사람은 아무것도 할 수 없다. 번역기를 학습시켜야 하고, 학습에는 같은 인덱스에서 나온 벡터가 수만 개 필요하다. 원문 없이 벡터만으로 문장이 복원된다는 요약이 인터넷에 돌지만, 논문이 실제로 요구하는 최소 단위는 벡터 하나가 아니라 인덱스 하나다.

페블러스 블로그는 벡터 DB의 다른 결함을 앞서 다룬 적이 있다. 문서를 지워도 검색 결과에 잔향이 남는 문제가 그것인데, 그쪽은 무결성의 문제였다. 지운 것이 지워지지 않는다는 이야기다. 이번 글은 기밀성의 문제를 다룬다. 남아 있는 것이 읽힌다는 이야기다. 같은 저장소에서 방향이 다른 두 결함이 나온 셈이다.

2

짝지은 데이터 없이 어떻게 옮기나

서로 다른 두 임베딩 모델은 같은 문장을 서로 다른 좌표로 보낸다. 차원 수부터 다르고, 축의 의미도 다르다. 지금까지 두 공간을 잇는 방법은 하나였다. 같은 문장을 양쪽 모델에 각각 넣어 좌표 쌍을 잔뜩 만들고, 그 대응표를 교재 삼아 변환을 학습시키는 것. 이 방식은 원문 문서를 필요로 한다. 그런데 이 논문의 공격자에게는 원문이 없다.

vec2vec이라 이름 붙은 이 방법은 대응표 대신 분포를 쓴다. 구조는 세 겹이다. 각 모델의 공간에서 들어오는 벡터를 받는 입력 어댑터, 모든 모델이 공유하는 하나의 잠재 공간, 그리고 거기서 목표 모델의 공간으로 내보내는 출력 어댑터다. 학습 재료는 문서 전문이 아니라 64토큰짜리 짧은 조각 100만 개이고, 원본 쪽 조각과 목표 쪽 조각은 서로 짝지어져 있지 않다. 두 무더기가 그냥 따로 있을 뿐이다.

짝이 없는 상태에서 정렬을 만들어 내려면 네 가지 학습 신호를 동시에 걸어야 한다. 첫째는 적대 손실로, 번역된 벡터가 목표 공간의 진짜 벡터와 구별되지 않도록 몰아붙인다. 둘째는 재구성으로, 갔다 온 벡터가 원래 자리로 돌아오게 한다. 셋째는 순환 일관성으로, A에서 B로 갔다가 다시 A로 오면 출발점과 같아야 한다는 조건이다. 넷째는 벡터 공간 보존(VSP)으로, 원래 공간에서 가까웠던 두 벡터는 옮긴 뒤에도 가까워야 한다는 조건이다. 착상의 출처를 논문 스스로 밝힌다. 언어가 다른 단어 임베딩을 겹치는 어휘에 기대어 맞춰 온 오랜 연구와, 짝 없는 이미지 변환을 해낸 CycleGAN 계열이다.

M₁ 공간 (알 수 없음) u_i = M₁(d_i) 입력 어댑터 A₁ 공유 잠재 공간 T 적대 손실 벡터 공간 보존 순환 일관성 재구성 네 손실을 동시에 걸어야 top-1이 0.00 → 0.91로 성립한다 출력 어댑터 B₂ M₂ 공간 (아는 모델) F₁(u_i) ≈ M₂(d_i)

페블러스 원본 도식 (논문 Figure 2 재해석) — 입력 어댑터가 각 모델의 벡터를 공유 잠재 공간으로 보내고, 출력 어댑터가 목표 모델 공간으로 내보낸다. 적대·벡터 공간 보존·순환 일관성·재구성 네 손실을 동시에 걸어야 하며, 하나라도 빠지면 위 어블레이션 표처럼 top-1이 0.00으로 무너진다.

이 방법이 성립한다는 사실은 더 큰 주장으로 이어진다. 서로 다르게 학습된 모델들이 결국 비슷한 내부 표현으로 수렴한다는 플라톤적 표현 가설이다. 원래 비전 모델을 두고 제기된 가설인데, 이 논문은 그것을 텍스트로 확장하고 한 걸음 더 나가 그 공통 구조를 학습해서 실제로 쓸 수 있다는 형태로 세운다. 여기에 강한 플라톤적 표현 가설이라는 이름까지 붙였다. 흥미로운 것은 논문 안에서 어조가 두 번 갈린다는 점이다. 서론에서는 그 강한 가설이 실제로 성립함을 보인다고 단언하는데, 결론에서는 설득력 있는 증거를 제공한다는 표현으로 물러서고 이 결과가 표현 사이 번역의 하한일 뿐이라고 덧붙인다. 뒤쪽 어조를 기준으로 읽는 편이 안전하다. 가설이 증거를 얻은 것이지 증명된 것이 아니며, 실험 대상도 임베딩 모델 일곱 종에 한정된다.

저자들은 이 신호들을 하나씩 떼어 보고 정말 필요한지 확인했다. 떼어 본 것이 넷 전부는 아니다. 재구성은 어블레이션 대상에서 빠졌고, 대신 하이퍼파라미터 튜닝을 생략한 경우가 들어갔다. 표는 gte에서 gtr로 옮기는 한 쌍을 8,192개 규모로 평가한 결과다. 무작위로 찍으면 평균 순위가 4,096위쯤 나온다.

구성 코사인 top-1 평균 순위
vec2vec 전체0.750.912.64
벡터 공간 보존 손실 제거0.580.004,196.64
순환 일관성 제거0.500.003,941.36
잠재 GAN 제거0.490.003,897.09
하이퍼파라미터 튜닝 제거0.500.004,011.73

손실 항 어블레이션. 출처: 논문 Table 6, gte→gtr 쌍, 평가 배치 8,192개. top-1은 옮긴 벡터가 정답 벡터를 1순위로 찾아낸 비율이다.

어느 하나만 빠져도 top-1이 0.00으로 떨어지고 평균 순위가 무작위 수준으로 돌아간다. 부분 성능이 남는 것이 아니라 통째로 무너진다. 보편 기하가 원래 거기 있으니 저절로 맞춰진다는 그림과는 거리가 멀다. 신호 네 개를 다 맞춰야 겨우 잡히는 정렬이고, 그 정교함이 곧 이 방법의 약점이기도 하다. 이 균형은 vec2vec에 대해서만 참이다. 넉 달 뒤 다른 연구자가 GAN을 통째로 버리고 같은 결과를 냈다. 그 이야기는 5번 섹션에서 이어진다.

3

어떤 쌍에서는 번역이 애초에 필요 없었다

결과를 읽을 때 가장 먼저 걸러야 하는 것은 이 방법이 없어도 되는 경우다. 논문은 그 경우를 숨기지 않고 표 맨 위에 놓았다. 실험에 쓴 임베딩 모델 일곱 종 중 e5, gte, stella는 모두 BERT 계열 백본을 쓴다. 이 셋끼리는 아무 변환도 하지 않고 한쪽 벡터를 다른 쪽 공간에 그냥 놓기만 해도 정답을 1순위로 맞힌다. 항등 사상, 즉 아무것도 하지 않는 기준선이 이미 만점이다.

판이 갈리는 것은 백본 계열이 다른 쌍이다. gtr은 T5 계열이고 granite는 RoBERTa 계열인데, 이 계열을 건너는 순간 항등 사상은 8,192개 중 4,000위대로 추락한다. 무작위로 찍는 것과 다르지 않다. 바로 그 지점에서 vec2vec이 1~3위를 만들어 낸다.

백본 vec2vec top-1 / 순위 항등 사상 top-1 / 순위
stella→gteBERT→BERT1.00 / 1.001.00 / 1.00
e5→gteBERT→BERT1.00 / 1.011.00 / 1.00
granite→gteRoBERTa→BERT0.95 / 1.180.00 / 4,088.58
granite→gtrRoBERTa→T50.99 / 1.190.00 / 4,168.73
gtr→gteT5→BERT0.93 / 2.310.00 / 4,080.92
gte→gtrBERT→T50.91 / 2.640.00 / 4,084.15
e5→gtrBERT→T50.82 / 2.560.00 / 4,080.76

출처: 논문 Table 2. 자연어 질의 데이터셋 65,536개 텍스트, 평가 배치 8,192개, 무작위 추측 시 평균 순위 4,096. 이 표 안의 코사인 최댓값은 stella→gte의 0.92다.

논문 본문은 이 대비를 한 문장으로 정리한다. 같은 백본 쌍에서는 vec2vec의 성적이 단순 기준선과, 그리고 정답을 미리 아는 최적 수송 기준선과도 비슷하지만, 백본이 다른 쌍에서는 vec2vec만 유효하고 나머지 방법은 무작위 추측 수준이라는 것이다.

여기서 독자가 가져갈 판정은 직관과 반대다. 우리는 다른 회사 모델을 쓰니까 우리 벡터는 남의 벡터와 섞이지 않는다는 안심이 정확히 뒤집힌다. 같은 계열 모델끼리는 번역기조차 필요 없이 이미 호환됐고, 계열이 다른 쌍에서만 이 방법이 필요했으며, 거기서도 성공했다. 모델을 갈아 끼우는 것은 방어가 아니다.

번역 전 — 원래 공간 BERT 계열 e5·gte·stella T5 계열 gtr RoBERTa 계열 granite 호환 안 됨 — 항등 사상 top-1 0.00, 평균 4,000위대 vec2vec vec2vec 적용 후 — 공유 잠재 공간 BERT·T5·RoBERTa 계열이 한 공간에서 겹친다 top-1 0.82~0.99, 평균 순위 1~3위 (계열이 다른 쌍)

페블러스 원본 도식 (논문 Figure 1 재해석) — 같은 백본 계열(BERT계: e5·gte·stella)은 애초에 겹쳐 있어 번역 없이도 최상위로 맞힌다. 계열이 다른 T5(gtr)·RoBERTa(granite)는 원래 공간에서 무작위 수준(평균 4,000위대)이었지만, vec2vec이 공유 잠재 공간으로 옮기면 평균 1~3위로 좁혀진다. 출처: 논문 Table 2.

3.1학습하지 않은 문서로 옮기면 어떻게 되나

위 결과는 번역기를 학습시킨 것과 같은 성격의 문서로 평가한 값이다. 실제 공격에서는 그렇게 맞아떨어지지 않는다. 저자들도 그 점을 시험했다. 자연어 질의로 학습한 번역기를 트윗과 의료기록에 그대로 들이댄 결과가 다음이다.

트윗 top-1 / 순위 의료기록 top-1 / 순위
stella→gte1.00 / 1.001.00 / 1.00
granite→gtr0.99 / 1.090.60 / 23.38
gtr→granite0.98 / 2.410.51 / 35.27
granite→gte0.95 / 1.260.08 / 346.21
gtr→e50.53 / 13.380.01 / 1,413.80
e5→gtr0.80 / 3.100.01 / 1,029.64

출처: 논문 Table 3. 트윗은 800개, 의료기록은 8,192개 규모로 평가했다. 평가 규모가 다르므로 두 열의 순위를 직접 빼서 비교하지 않는 편이 좋다.

논문은 이 결과를 분포 밖 입력에도 견고하다고 요약한다. 트윗만 보면 맞는 말이다. 의료기록 열은 다른 이야기를 한다. 백본이 다른 쌍에서는 top-1이 0.60에서 0.01까지 흩어진다. 같은 백본이라고 다 버티는 것도 아니다. 표에 올린 stella와 gte 사이는 1.00을 지켰지만, e5가 낀 같은 계열 쌍들은 0.46에서 0.60으로 내려앉았다. 임상 문서는 어휘도 문장 구조도 일반 웹 텍스트와 멀고, 그 거리가 정렬을 무너뜨린다. 환자 기록도 술술 복원된다는 문장을 쓰면 이 표를 거스른다. 트윗은 잘 되고 의료기록은 어렵다는 것이 표가 말하는 전부다.

4

벡터에서 무엇이 새어 나왔나

벡터를 옮기는 데 성공했다는 것과 원문이 드러난다는 것은 다른 주장이다. 앞 섹션까지가 전자였고, 이 섹션이 후자다. 저자들은 두 갈래로 나눠 시험했다. 문서가 무엇에 관한 것인지 알아내는 속성 추론, 그리고 문장을 직접 되살리는 역전이다.

4.1주제를 맞히는 일은 진짜 벡터와 거의 같았다

아래 값은 백본 계열이 다른 열네 쌍만 추린 것이다. 3번 섹션에서 본 대로 같은 계열끼리는 번역기가 아예 필요 없으니, 이 방법의 성적을 재려면 계열을 건너는 쌍만 봐야 한다. 트윗 800건을 19개 주제로 분류한 시험에서 번역된 벡터의 top-1 정확도는 0.24에서 0.37 사이였다. 이 숫자만으로는 크기를 가늠하기 어렵다. 기준선 두 개를 옆에 놓아야 보인다. 아무 변환 없이 그냥 넘긴 벡터는 0.04에서 0.22 사이였고, 번역이 아니라 진짜 목표 모델로 다시 임베딩한 벡터, 즉 원래대로라면 공격자가 손에 넣을 수 없는 상한은 0.24에서 0.34 사이였다.

번역된 벡터가 진짜 벡터와 같은 구간에 있다. 논문 본문은 한발 더 나가 번역본이 이 상한을 넘는 경우도 잦다고 적는다. 주제를 알아내는 일에 관한 한 근사치가 아니라 사실상 동급이라는 뜻이고, 이 글에서 가장 강한 신호가 여기다. 의료기록 쪽은 그렇게 나란히 놓기 어렵다. 시험 자체가 다르기 때문이다. 트윗은 19개 주제에서 1순위를 맞히는 문제였지만, 의료기록은 2,673개 질병 라벨에서 상위 10개 안에 정답을 넣는 훨씬 헐거운 문제였다. 그 헐거운 조건에서도 계열이 다른 쌍의 번역 벡터는 0.09에서 0.36에 그쳤고, 진짜 벡터는 0.76에서 1.00을 냈다. 문서가 무엇에 관한 것인지는 새어 나가지만, 세밀한 질병 추론까지 실증된 것은 아니다.

4.2이메일에서는 이름과 날짜와 금액이 나왔다

역전은 벡터를 도로 문장으로 바꾸는 작업이다. 저자들은 새 도구를 만들지 않고, 이미 공개돼 있던 기성품 제로샷 역전기를 번역된 벡터에 그대로 붙였다. 대상은 엔론 사건에서 공개된 기업 이메일 50통과 트윗 50건이었고, 복원된 문장이 원문의 정보를 담고 있는지는 GPT-4o가 판정했다. 논문의 서술은 이렇다.

번역된 임베딩만 주어진 상태에서 이메일의 최대 80%, 트윗의 67%에 대해 정보를 추출했다는 것이다. 이 문장에는 조건이 셋 붙어 있다. 80%는 전체 평균이 아니라 일부 모델 쌍에서 나온 최댓값이고, 분모는 50통이라 40통을 뜻하며, 정보가 추출됐다는 판정은 사람이 아니라 LLM 심판이 내렸다. 저자들 자신도 복원이 불완전하다고 적었다. 그러면서 덧붙인 목록이 개인과 회사 이름, 날짜, 승진, 재무 정보, 장애 상황, 그리고 점심 주문이다. 문장이 온전히 재현되지는 않아도 그 안에 무엇이 적혀 있었는지는 드러난다.

논문이 든 한 장면이 이 결과의 성격을 잘 보여 준다. 번역된 벡터의 잠재 공간이 치조골막염 같은 전문 용어의 의미를 보존하고 있었다는 것이다. 학습 데이터에 한 번도 나온 적 없는 개념이다. 저자들은 이것을 표현이 보편적이라는 증거로 든다. 번역기가 외운 것이 아니라 구조를 옮겼다는 뜻이다.

기성품이라고 했지만 남의 물건은 아니다. 붙여 쓴 제로샷 역전기 ZSInvert의 저자는 Collin Zhang과 John X. Morris와 Vitaly Shmatikov인데, 셋 다 이번 논문의 공저자다. 두 달 앞서 자기들이 내놓은 도구를 자기들의 번역기에 이어 붙인 셈이다. 그 위의 계보도 같은 방으로 이어진다. Morris는 임베딩 역전 연구 vec2text의 저자이고, 같은 코넬 그룹이 2023년에 「Text Embeddings Reveal (Almost) As Much As Text」를 발표했다. 이번 논문의 마지막 문장도 그 제목을 그대로 되받는다. 임베딩이 입력만큼이나 많은 것을 드러낸다는 사실을 다시 한번 확인했다는 것이다. 독립된 두 팀이 서로를 검증한 구도가 아니라, 한 계보가 자기 도구로 자기 결과를 한 단계 밀고 나간 구도다.

이 결과는 페블러스 블로그가 앞서 다룬 두 편과 헷갈리기 쉽다. 의료 합성데이터에서 원본 레코드가 복원된 사례도 같은 MIMIC 데이터를 쓰지만, 그쪽은 합성 데이터의 재식별이고 이 글은 임베딩이다. 멤버십 추론을 다룬 글이 던지는 질문은 이 사람이 학습에 쓰였는가이고, 이 글의 질문은 이 벡터에 무엇이 적혀 있었는가다.

5

약한 곳, 그리고 넉 달 만에 메워진 곳

이 논문을 소개하는 글 대부분이 앞 섹션에서 멈춘다. 그런데 이 결과에는 저자들이 스스로 적어 둔 경계가 다섯 개 있고, 그 경계를 읽어야 무엇을 대비할지가 정해진다. 그리고 그중 하나는 이 글을 쓰는 시점에 이미 무너져 있다.

한계 내용
실험 대상텍스트 임베딩 모델 7종. 생성형 LLM은 한 종도 없다. 게다가 논문이 쓴 체크포인트는 지금 같은 이름으로 유통되는 최신판과 다른 구형이다
언어와 양식영어 텍스트를 가정한다. 다른 언어에서 같은 정렬이 잡히는지는 시험되지 않았다
큰 모델과 다중 양식40억 파라미터급은 대표 쌍 하나만 평가했다. 텍스트에서 이미지 공간으로 옮긴 실험은 R@16이 0.23으로, CLIP 자체의 0.75에 크게 못 미친다
학습 안정성이 항목은 두 쌍에서만 쟀다. 같은 계열인 e5→gte는 시드 15개 중 14개가 목표에 닿았는데, 계열이 다른 e5→gtr은 3개뿐이었다. 본문 수치는 여러 초기화 중 최선을 고른 결과라고 저자들이 밝힌다
방어책 부재21쪽 전문에 방어, 완화, 대응책, 암호화, 노이즈, 섭동에 해당하는 단어가 한 번도 나오지 않는다

출처: 논문 Table 1, 부록 C·D·E, 그리고 전문 검색. 시드 실험은 고정 10에폭 예산 안에서 두 쌍만 대상으로 했고, 저자들은 시드 안정성 개선을 앞으로의 과제로 남긴다고 적었다.

5.1넉 달 뒤, 네 번째 한계가 사라졌다

위 다섯 중 네 번째는 이 공격을 아직 먼 이야기로 만들어 주던 항목이었다. GPU를 며칠씩 돌려야 하고 열다섯 번 시도해서 세 번 성공하는 방법이라면, 표적이 아주 값진 경우가 아니고서는 수지가 맞지 않는다. 2025년 9월에 나와 2026년 2월까지 개정된 후속 연구 mini-vec2vec이 그 계산을 바꿨다. 독립 연구자 Guy Dar가 GAN을 통째로 버리고 선형(직교) 변환으로 같은 정렬을 만들었다.

항목 vec2vec (NeurIPS 2025) mini-vec2vec (프리프린트)
방법적대 학습 + 손실 4종근사 매칭, 프로크루스테스 정렬, 반복 정제
학습 재료한쪽당 100만 개총 6만 개
하드웨어와 시간GPU 1~7일CPU 10분 미만
e5→gtr top-1 / 순위0.82 / 2.560.96 / 1.10
gte→gtr top-1 / 순위0.91 / 2.640.98 / 1.04
gtr→e5 top-1 / 순위0.84 / 2.880.98 / 1.06

출처: mini-vec2vec 논문 §4의 비교표. 굵게 표시한 세 쌍은 원 논문에서 성적이 상대적으로 낮았던 조합이다. 두 논문의 코사인 값은 계산 방식이 달라 나란히 놓지 않았다.

저자가 논문에 적은 문장은 짧다. mini-vec2vec 한 번 실행이 CPU에서 10분 안에 끝나는 반면 vec2vec은 하드웨어에 따라 GPU로 1~7일이 걸린다는 것이다. 학습이 무너지던 e5와 gtr 사이에서도 붕괴가 일어나지 않았고, 쌍마다 세 번씩 돌린 결과의 편차가 0.00대였다. 원 논문에서 가장 약했던 조합들이 오히려 가장 크게 개선됐다.

vec2vec (NeurIPS 2025) GPU 1~7일 적대 학습 + 손실 4종 학습 재료 한쪽당 100만 개 계열 다른 쌍 시드 안정성 3/15 넉 달 mini-vec2vec (프리프린트) CPU 10분 미만 프로크루스테스 정렬(선형) 학습 재료 총 6만 개 정확도는 오히려 상승(위 표 참조) 안정성·정확도 개선은 아직 독립 재현 전, 저자 자체 보고다

페블러스 원본 도식 — 번역기 학습 비용이 넉 달 만에 GPU 여러 날에서 CPU 10분 미만으로 줄었다. 정확도(top-1·평균 순위)는 위 mini-vec2vec 비교표를 참조.

이 결과를 전할 때 지켜야 할 선이 넷 있다. 첫째, mini-vec2vec은 학회 게재 정보가 없는 프리프린트다. 원 논문이 NeurIPS 2025 게재 논문인 것과 지위가 다르다. 둘째, 이 후속 연구는 역전 실험도 속성 추론 실험도 하지 않았다. 잰 것은 정렬 품질뿐이다. 그러니 CPU 10분이면 이메일이 복원된다는 문장은 사실이 아니다. 정확히는 공격의 첫 단계인 번역기 학습 비용이 CPU 10분으로 내려갔다는 것이다. 셋째, 두 논문의 코사인 값은 계산 기준이 달라 비교 가능한 지표가 top-1과 순위뿐이다. 넷째, 이 안정성은 아직 저자 자신의 보고다. gtr과 gte 쌍에서만 실패가 나타나 군집 수를 기본값 20에서 30으로 올려야 했는데, 저자는 그 조정으로 문제가 풀렸고 애초에 실패가 극히 드물었으며 실패가 나더라도 top-1 90%에 평균 순위 5~10 수준이라 파국은 아니라고 적는다. 원 논문의 시드 3/15와는 사뭇 다른 그림인데, 아직 독립 재현으로 확인된 바는 없다.

원 논문은 자기 결과를 두고 표현 사이 번역의 하한일 뿐이라고 적어 두었다. 그 문장이 넉 달 만에 실현됐다. 네 번째 한계는 방법의 결함이 아니라 아직 깎이지 않은 비용이었고, 비용은 깎였다. 나머지 네 개는 그대로 남아 있다. 그러니 이 글이 지금 나오는 이유는 논문이 새로워서가 아니다. 비용 곡선이 최근에 꺾였다는 것이 시의성이다.

6

벡터 DB 운영자가 지금 점검할 것

논문이 방어를 말하지 않았다는 사실은 이 섹션의 성격을 규정한다. 아래 내용은 전부 논문 바깥에서 끌어온 것이고, 저자들이 권고한 바가 아니다. 여기 나오는 방어 연구는 모두 인코더를 아는 공격, 즉 직접 역전에 대해 측정됐다. vec2vec의 위협 모델에서 평가된 방어는 확인되지 않았다.

6.1저장 시 암호화 체크박스는 이 항목을 덮지 않는다

이 논문의 위협 모델은 디스크를 훔치는 공격이 아니다. 저장 시 암호화는 정지 상태의 디스크를 보호하지만, 이 공격이 상정하는 덤프는 인증된 경로로 나온 평문 벡터다. 인증이 꺼진 채 인터넷에 노출된 인스턴스, 백업 사본, 개발 환경 복제본, 권한이 넓은 내부자, 관리형 서비스의 조회 API가 그런 경로다. 암호화된 디스크에서도 조회 결과는 평문으로 나온다. 규정 준수 문서의 암호화 항목에 체크가 되어 있다는 사실이 이 위협에 대해 말해 주는 것은 거의 없다.

6.2실측치가 있는 방어와 그 대가

임베딩을 보호하려는 연구는 따로 진행돼 왔다. 개별 논문 다섯 편 수준이고 독립 재현은 거의 없지만, 각각 자기 수치를 내놓았다. 표는 그 수치와 함께 대가를 적은 것이다.

방어 보고된 수치 한계
가우시안 노이즈 주입노이즈가 약하면 검색 성능이 유지되고, 강하게 걸면 검색 품질이 0 근처로 붕괴한다막는 구간과 검색을 망치는 구간이 겹친다. 검색이 살아 있는 노이즈 수준에서는 역전이 그대로 성공한다는 후속 실측이 있다
양자화검색 품질은 유지되면서 복원 문장의 품질이 크게 떨어졌다. 조절할 하이퍼파라미터가 없어 배포가 가볍다양자화를 아는 공격자는 양자화 인지 역전기를 학습할 수 있다고 저자들이 직접 단서를 단다
Eguard (학습형 사영)역전 F1을 90% 이상에서 6% 미만으로 낮추고 하류 성능 저하는 2% 미만별도 학습과 배포가 필요하다. 독립 재현은 확인되지 않았다
선택적 차원 섭동여섯 개 데이터셋에서 유출을 5~78% 줄이면서 하류 성능은 기준선 대비 14~40% 개선보호할 개념을 미리 정의해야 한다
애플리케이션 계층 벡터 암호화 (상용)거리 비교를 보존하는 대칭 암호. 정밀도 손실 평균 4.9%벤더 자체 벤치마크다. 데이터셋과 모델에 따라 편차가 크고 한 조합에서는 19%까지 떨어졌다

출처: 순서대로 vec2text 논문의 방어 절, RecSys 2025 재현 연구, AAAI 발표 논문, DPPN 계열 논문, IronCore Labs 공식 문서. 모든 수치는 인코더를 아는 직접 역전에 대해 측정됐다.

이 표에서 나오는 결론은 세 가지이고, 셋 다 안심을 주지 않는다. 가장 흔히 권해지는 노이즈 주입이 이 위협 모델에서 약하다는 것이 첫째다. 검색이 살아 있는 노이즈 수준에서 역전이 유지된다는 실측이 이미 나와 있다. 측정된 균형이 가장 나은 계열은 학습형 사영과 선택적 섭동인데, 전부 최근 논문이고 독립 재현이 없다는 것이 둘째다. 그리고 어느 방어도 vec2vec 자체를 상대로 평가된 적이 없다는 것이 셋째다. 이걸 쓰면 이 공격을 막는다는 문장은 아직 아무도 쓸 수 없다.

6.3기능은 문서에 적혀 있고, 인스턴스는 인터넷에 열려 있다

벡터 DB 제품들이 어떤 보안 기능을 갖췄는지는 공식 문서로 부분까지만 확인됐다. 전수 대조표를 만들 만큼 자료가 모이지 않아 표 대신 확실한 것 셋만 적는다. 관리형 상위 제품은 고객 관리 키 암호화와 역할 기반 접근통제와 감사 로그를 갖췄고 대개 상위 요금제 전용이다. 자체 호스팅하는 오픈소스 제품 다수는 기본값에서 인증이 꺼져 있으며, 한 제품은 공식 문서가 그 사실을 스스로 밝힌다. 그리고 이 기능들 가운데 어느 것도 앞 절의 이유로 이 논문의 위협 모델을 직접 겨냥하지 않는다.

기본값에서 인증이 꺼져 있다는 항목에는 실측이 붙는다. 2025년 4월 보안업체 UpGuard가 인터넷에 노출된 Chroma 인스턴스 1,170개를 찾아냈고, 그중 406개가 실제로 데이터를 반환했다. 세 곳 중 한 곳이다. 한 러시아 AI 챗봇 스타트업의 인스턴스에서는 설문 응답과 이메일이 담긴 컬렉션 341개가 확인됐다. 이 조사는 Chroma 한 제품만 훑은 것이므로 벡터 DB 전반의 비율로 삼으면 안 된다. 2026년 5월 Orca Security는 Weaviate, Milvus, ChromaDB, Qdrant에서 노출 인스턴스를 발견했다고 보고했는데, 개수는 공개하지 않았다. 여기서는 노출된 벡터 DB에서 얻은 자격증명으로 다른 플랫폼의 고객 계정까지 넘어간 사례가 하나 기술됐다. 인증 우회 취약점도 실재한다. Milvus의 프록시 인증 우회는 CVSS 9.3을 받았고 패치됐다.

이 글에서 덜어 낸 수치도 있다. 노출 벡터 DB가 1만 개를 넘는다는 식의 값이 웹에 널리 돌지만, 원 스캔 보고서를 찾을 수 없어 쓰지 않았다. RAG 도입률을 두고 도는 대형 컨설팅사 귀속 통계도 원 리포트를 특정하지 못해 뺐다.

6.4임베딩은 개인정보인가

규제 쪽부터 정리하면, 임베딩이나 벡터 DB를 명시적으로 다룬 규제기관 유권해석은 EU에도 한국에도 확인되지 않는다. 인접한 문서는 있다. 유럽데이터보호이사회는 2024년 12월 의견서에서 AI 모델의 익명성을 판정하는 조건을 세우며 역전 공격과 멤버십 추론을 명시적으로 고려 대상에 넣었다. 다만 그 대상은 모델이지 저장된 임베딩이 아니다. 2025년 1월 채택된 가명처리 지침은 추가 정보로 개인에 연결될 수 있는 가명 데이터가 여전히 개인정보라는 입장을 밝힌다. 한국 개인정보보호위원회는 2026년 3월 가명정보 처리 가이드라인을 전면 개정해 위험도 기반 체계로 바꿨고 비정형 데이터의 표본 검수를 도입했지만, 임베딩 벡터의 지위를 따로 언급하지는 않았다.

그중 한 문서가 이 글과 특별한 방식으로 맞물린다. 2025년 9월 유럽사법재판소는 EDPS 대 단일정리위원회 사건에서 가명처리된 데이터가 누구에게나 개인정보인 것은 아니라고 판단하면서, 판정 기준으로 재식별에 합리적으로 사용될 가능성이 있는 수단을 제시했다. 이 기준은 고정값이 아니다. 어떤 수단이 합리적인지는 그 수단의 비용에 달려 있다.

그리고 5번 섹션에서 본 것이 정확히 그 비용의 변화다. 번역기 학습이 GPU 며칠에서 CPU 10분으로 내려갔다. 규제 문서가 임베딩을 아직 호명하지 않았다는 사실과, 임베딩이 그 기준의 바깥에 있다는 판단은 같은 말이 아니다. 이 글은 논지를 펼 뿐 법률 자문을 하지 않으며, 그래서 임베딩은 개인정보라고 단정하지 않는다. 다만 이 기준을 임베딩에 대입하면 무엇을 물어야 하는지까지는 말할 수 있다. 우리 벡터 인덱스를 손에 넣은 사람이 원문을 되읽는 데 드는 비용은 지금 얼마인가.

6.5지금 셀 수 있는 것부터

거버넌스 논의는 대개 정의에서 막힌다. 이 논문이 드물게 좋은 점은 셈으로 시작할 수 있는 임계를 준다는 것이다. 아래 다섯 단계는 그 임계에서 출발한다.

  • 인덱스의 벡터 개수를 센다. 논문이 이 항목을 잰 한 쌍에서 임계는 5만 개였다. 여기서 줄인 것은 피해자 쪽 벡터뿐이고 공격자 쪽은 100만 개 그대로였으니, 이 임계는 유출된 덤프의 크기를 가리킨다. 그보다 적은 1만 개에서는 정답을 1순위로 찾는 비율이 0.01까지 떨어졌다. 다만 저자들은 이 경우에도 번역기가 무작위보다는 낫다고 적는다. 8,192개 가운데 평균 1,462위였다. 청크 밀도에 따라 다르지만 문서 수십 건에서 천 건 정도면 5만 개에 닿고, 기술 규격서나 법률 문서처럼 촘촘히 쪼개지는 자료는 수십 건으로도 도달한다. 참고로 교차 확인된 실무 배포 사례 중 5만 개 미만인 것은 하나도 없었다.
  • 덤프가 나갈 수 있는 경로를 목록화한다. 백업, 복제본, 개발과 스테이징 환경 복사본, 관리형 서비스, 권한이 넓은 조회 API, 인증이 꺼진 인스턴스.
  • 벡터에 원문과 같은 분류 등급을 매긴다. 파생물이 아니라 같은 내용의 다른 표현이라는 전제로.
  • 네임스페이스 분리와 접근통제, 대량 조회 탐지를 건다. 특히 정상 검색과 전체 스캔을 구분하는 레이트 리밋과 이상 탐지가 필요하다. 6.1절의 이유로 이쪽이 암호화보다 이 위협 모델에 직접 닿는다.
  • 삭제와 보존 정책을 원문과 동기화한다. 원문을 지웠는데 벡터가 남는 문제는 앞서 다룬 잔향 문제와, 검색 계층이 권한 경계를 잃는 문제는 에이전트 권한 상속을 다룬 글과 이어진다.

6.6같은 다리를 반대 방향으로 건널 수도 있다

이 기술이 공격에만 쓰이는 것은 아니다. 논문 부록은 텍스트만 학습한 모델의 임베딩을 이미지 모델의 공간으로 옮겨 문장으로 그림을 찾는 실험을 담고 있다. 다중 양식 학습을 전혀 하지 않고서다. 성능은 아직 낮다. R@16이 0.23으로 CLIP 자체의 0.75에 한참 못 미친다. 실무 쪽 쓰임은 더 가깝다. 임베딩 모델을 교체할 때 전체 코퍼스를 다시 임베딩하지 않고 인덱스를 옮기는 일, 서로 다른 모델로 만든 인덱스를 하나로 합치는 일이 곧바로 보인다. 후속 연구의 저자도 결론에서 정렬의 확장 가능성을 이 방향으로 적는다. 임베딩 공간 사이에 다리가 놓였다는 사실 자체는 중립이다. 문제는 그 다리가 놓인 줄 모르고 짠 자산 대장 쪽에 있다.

7

페블러스 관심의 이유

페블러스는 데이터를 진단하고 품질 성적서를 발급하는 일을 한다. 이 논문이 남의 업종 이야기로 읽히지 않는 이유는, 무엇까지가 이 데이터의 사본인가라는 질문이 여기서 실험으로 답해졌기 때문이다. 우리 쪽 질문으로 바뀌는 것이 네 가지다.

7.1진단 범위에 벡터 인덱스가 들어가야 한다

AI-Ready Data는 모델이 먹을 수 있는 형태를 다룬다. 이 논문의 함의는 그 형태가 원문과 같은 민감도를 갖는다는 것이다. 그러면 자산 진단의 범위에 원문 저장소만이 아니라 벡터 인덱스가 들어가야 한다. DataClinic이 데이터의 상태를 진단할 때 그 데이터의 벡터 사본이 어디에 몇 개 있는지가 진단 항목이 아니라면, 진단표는 자기가 다 봤다고 말할 수 없다.

7.2품질은 경계의 문제이기도 하다

데이터 품질을 정확성과 완전성만으로 보면 이 사건이 보이지 않는다. 품질에는 경계의 문제가 있다. 어디까지가 이 데이터의 사본인가. 임베딩을 파생물로 분류하는 순간 계보와 삭제와 보존이 전부 어긋난다. 원문을 지웠는데 벡터가 남고, 원문의 보존 기간이 끝났는데 벡터에는 만료가 없고, 원문 접근권을 회수했는데 벡터 인덱스는 열려 있다. 학습 데이터의 품질이 모델 내부 표현으로 이어진다는 이 시리즈의 논지가 여기서는 반대 방향으로 돌아온다. 내부 표현에서 학습 데이터가 되읽힌다.

7.3셀 수 있는 숫자에서 시작하는 대화

고객과 파트너에게 전할 것은 6.5절의 다섯 단계 그대로다. 강조점은 순서에 있다. 임베딩이 개인정보인지를 먼저 정하려 들면 대화가 정의에서 멈춘다. 벡터가 몇 개인지 세는 일은 오늘 오후에 할 수 있고, 그 숫자가 5만을 넘는지 아닌지는 논문이 준 임계와 바로 대조된다. 거버넌스를 정의에서 시작하지 않고 셈에서 시작할 수 있는 드문 사례다.

7.4이 글이 시리즈에서 서는 자리

페블러스 블로그는 이름표 없는 데이터는 삭제 대상으로 특정할 수 없다는 문제를 에이전트 기억의 출처와 삭제를 다룬 글에서 한 번 다뤘고, 검색 계층이 권한 경계를 잃는 문제를 권한 상속을 다룬 글에서 한 번 다뤘다. 이번 글은 그 둘 사이를 잇는다. 경계를 잃은 검색 계층에 이름표 없는 사본이 쌓여 있고, 그 사본이 읽힌다. AI-Ready Data의 조건에 항목 하나가 늘었다.

이 글이 페블러스의 일과 연결되는 것은 논문이 우리 제품의 필요성을 증명해서가 아니라, 논문이 던진 질문이 우리가 매일 답해야 하는 질문과 같아서다. 본문에 적은 수치는 원 논문과 후속 연구의 전문에서 대조한 값이고, 방어와 규제에 관한 내용은 논문 바깥의 개별 출처에서 가져온 것이라 두께가 얇다. 연구의 가치 판단과 자사 포지셔닝은 나눠서 읽어 주시기 바란다.

R

참고문헌

본문의 수치는 두 갈래다. 1번과 2번 논문의 값은 전문을 직접 열어 대조해 옮겼다. 방어 연구와 벤더 보안 문서, 노출 조사와 규제 문서의 값은 각 출처를 확인했으나 독립 재현은 거치지 않았다. 어느 표에서 나온 값인지는 본문 캡션에 함께 적었다.

이 보고서의 뼈대 (1차 원문 대조)

  • 1.Rishi Jha, Collin Zhang, Vitaly Shmatikov, John X. Morris. "Harnessing the Universal Geometry of Embeddings." NeurIPS 2025 (2025년 12월 5일 샌디에이고 포스터 발표). arXiv: 2505.12540 — v1 2025년 5월 18일, v4 2026년 1월 26일, CC BY 4.0. 코드 rjha18/vec2vec. 본문의 Table 2·3·5·6·7과 부록 A·C·D·E 인용은 이 전문에서 확인했다. 초록에는 코사인 0.96이라는 값이 있으나 본문과 표에서 재현되지 않아 이 글은 0.92만 썼다.
  • 2.Guy Dar (Independent Researcher). "mini-vec2vec: Scaling Universal Geometry Alignment with Linear Transformations." arXiv: 2510.02348 — v1 2025년 9월 27일, v4 2026년 2월 17일, CC BY 4.0. 코드 guy-dar/mini-vec2vec. 학회 게재 정보가 없는 프리프린트이며, 역전과 속성 추론 실험은 포함하지 않는다.

계보와 방어 연구

  • 3.John X. Morris, Volodymyr Kuleshov, Vitaly Shmatikov, Alexander M. Rush. "Text Embeddings Reveal (Almost) As Much As Text." EMNLP 2023. arXiv: 2310.06816 — 같은 그룹의 선행 역전 연구이자 노이즈 주입 방어의 출처다.
  • 4.Collin Zhang, John X. Morris, Vitaly Shmatikov. "Universal Zero-shot Embedding Inversion", 2025년 3월 31일. arXiv: 2504.00147 — 1번 논문이 그대로 가져다 쓴 제로샷 역전기 ZSInvert다. 저자 세 명 모두 1번 논문의 공저자다. 학회 게재 정보는 확인되지 않는다.
  • 5."Rethinking the Privacy of Text Embeddings: A Reproducibility Study." RecSys 2025. arXiv: 2507.07700 — 양자화 방어의 출처다.
  • 6.Eguard (AAAI) 및 선택적 차원 섭동 계열(SPARSE, DPPN, TextCrafter) — 학습형 사영과 민감 차원 섭동 방어의 수치 출처다. 모두 인코더를 아는 직접 역전을 대상으로 측정됐다.
  • 7.Minyoung Huh, Brian Cheung, Tongzhou Wang, Phillip Isola. "The Platonic Representation Hypothesis", 2024년 5월 13일. arXiv: 2405.07987 — 1번 논문이 확장 대상으로 삼은 가설이며, 원래는 비전 모델을 대상으로 제기됐다.
  • 8.IronCore Labs. "Effect of Cloaked AI on Search Accuracy" — 애플리케이션 계층 벡터 암호화의 정밀도 손실 수치가 나온 벤더 자체 벤치마크다.

노출 조사와 취약점

  • 9.Patricia Waldron. "'Rosetta stone' for database inputs reveals serious security issue." Cornell Chronicle, 2026년 1월 13일 — 저자 인터뷰의 출처다. Shmatikov는 임베딩을 그 바탕이 된 텍스트만큼 민감한 것으로 생각해야 한다고 말했다.
  • 10.UpGuard. "Open Chroma Databases: A New Attack Surface for AI Apps", 2025년 4월 — 노출 인스턴스 1,170개 중 406개가 데이터를 반환했다는 조사다. 방법론이 공개돼 있고 Chroma 한 제품만 대상으로 한다.
  • 11.Orca Security. "The AI Data You Forgot to Lock", 2026년 5월 19일 — 네 제품에서 노출 인스턴스를 발견했다는 보고이며 개수는 공개하지 않았다.
  • 12.CVE-2025-64513 (Milvus 프록시 인증 우회, CVSS 9.3, 2025년 11월 10일 공개) 및 CVE-2026-45829 (HiddenLayer가 보고한 ChromaDB 인증 전 원격 코드 실행).

규제 · 정책 문서

  • 13.EDPB. "Opinion 28/2024 on certain data protection aspects related to the processing of personal data in the context of AI models", 2024년 12월 17일 — 익명성 판정에 역전과 멤버십 추론을 고려 대상으로 명시한 문서다. 대상은 모델이지 저장된 임베딩이 아니다.
  • 14.EDPB. "Guidelines 01/2025 on Pseudonymisation", 2025년 1월 채택(공개 협의).
  • 15.CJEU, Case C-413/23 P, EDPS v Single Resolution Board, 2025년 9월 4일 판결 (EUR-Lex 62023CJ0413) — 재식별에 합리적으로 사용될 가능성이 있는 수단이라는 기준의 출처다.
  • 16.개인정보보호위원회. 「가명정보 처리 가이드라인」 전면 개정, 2026년 3월 — 위험도 기반 체계 전환과 비정형 데이터 표본 검수 도입. 임베딩 벡터의 지위에 대한 언급은 확인되지 않았다.