Executive Summary
LoRA로 고친 언어 모델이 내놓는 답변만 모아 봐도 그 모델이 무슨 분야 데이터로 배웠는지 우연보다 훨씬 잘 맞힐 수 있다는 실험 결과가 나왔다. 시베시 라네(Shivesh Rane)가 11월 5일 arXiv에 올린 단독 저자 논문으로, 원본 학습 데이터는 한 줄도 보지 않고 모델 산출물만 가지고 분야를 복원한다.
정확도는 64%다. 의료·코드·수학·비영어·창작 다섯 분야 중 하나를 고르는 문제라 아무 분야나 찍어도 20%는 맞는 자리다. 뜻밖은 순서다. 어댑터 파일을 열어 가중치가 얼마나 변했는지 뜯어본 방식은 42%에 그쳤고, 그 값은 신뢰구간이 우연과 겹쳐 구분되지 않았다. 모델 안을 깊이 볼수록 많이 알아낸다는 사전 등록 가설이 자기 데이터에 뒤집혔다.
5절까지는 논문에 적힌 사실과 수치를 따라간다. 사내 데이터로 고친 어댑터를 밖에 내놓는 조직이 무엇을 다시 봐야 하는지를 다루는 6절은 이 글의 해석이다.
주요 수치
앞의 두 카드는 접근 권한에 따라 갈린 적중률이고, 셋째는 분야 대신 데이터셋 자체를 지목했을 때의 성적, 넷째는 이 실험 전체에 들어간 비용이다.
출처: arXiv 2611.07610(2026년 11월 5일) · 베이스 모델은 Qwen3.5-0.8B 하나
64%
생성한 글만 보고 맞힌 학습 분야
다섯 중 하나만 정답인 문제이고 우연은 20%다
42%
가중치 변화량으로 맞힌 학습 분야
신뢰구간 하단이 19.4%까지 내려가 우연과 구분되지 않는다
100%
어느 데이터셋인지 지목한 정확도
18개 중 하나를 고르는 문제이고 무작위는 5.6%다. 생성한 글만 봐도 94.4%
30달러
실험 전체에 쓴 클라우드 GPU 비용
이 상한 때문에 쓰려던 데이터셋 20개 중 둘을 포기했다
어댑터만 넘기면 데이터는 숨는다는 전제
LoRA는 큰 언어 모델을 특정 용도에 맞게 고칠 때 가장 널리 쓰이는 방법이다. 원래 모델의 가중치는 그대로 얼려 두고, 그 옆에 작고 납작한 행렬 한 쌍만 새로 학습시킨다. 결과물은 본체보다 훨씬 가벼운 파일 하나이고, 이것을 어댑터라고 부른다. 가볍고 떼었다 붙였다 할 수 있어서 사내 모델을 고객사에 넘기거나 공개 저장소에 올릴 때도 본체 대신 어댑터만 주고받는 경우가 많다.
이 관행에는 한 번도 제대로 시험해 본 적 없는 가정이 깔려 있다. 어댑터는 학습 데이터가 아니라 학습의 결과이니, 파일을 넘겨도 무엇으로 배웠는지는 넘어가지 않는다는 것이다. 의료 상담 기록으로 모델을 고쳤든 사내 코드베이스로 고쳤든, 받는 쪽은 성능만 가져갈 뿐 재료는 모른다는 전제다.
11월 5일 arXiv에 올라온 「Embedding-Space Fingerprinting of LoRA Fine-Tunes」는 그 전제를 정면으로 시험한다. 저자가 세운 질문은 간단하다. 학습 데이터를 한 번도 보지 않은 채 모델 산출물만 받았을 때, 단순한 분류기 하나로 그 모델의 학습 분야를 되찾을 수 있는가.
비슷한 자리를 노린 연구는 전에도 있었다. 특정 문장이 학습에 쓰였는지 묻는 멤버십 추론은 큰 언어 모델에서 우연을 겨우 넘는 수준에 그친다고 알려져 있다. 특정 데이터셋이 통째로 쓰였는지 묻는 데이터셋 추론도 있다. 둘 다 질문을 던지려면 확인하고 싶은 후보를 먼저 손에 쥐고 있어야 한다. 이 논문의 질문은 그보다 거칠지만 후보가 필요 없다. 가진 것이 모델 하나뿐이어도 던질 수 있는 질문이라는 뜻이고, 그만큼 캐물을 수 있는 범위가 넓어진다.
질문의 핵심은 어떤 데이터가 유출되느냐가 아니라, 어느 종류의 데이터였는지가 새어 나가느냐다. 환자 한 명의 기록이 복원되는 일과, 이 어댑터가 의료 데이터로 만들어졌다는 사실이 드러나는 일은 다른 문제다. 논문이 다루는 것은 뒤의 경우이고, 영업비밀이 걸리는 것도 대개 거기다.
권한이 다른 세 방법으로 모델 36개에 물었다
분야가 산출물에 남는지 보려면 분야가 뚜렷이 갈리는 재료부터 있어야 한다. 저자가 고른 것은 공개 데이터셋 18개이고, 다섯 분야로 나뉜다. 의료는 PubMedQA·MedMCQA·ChatDoctor-HealthCareMagic·MedQA-USMLE 넷, 코드는 Python-code-instructions-18k·Evol-Instruct-Code-80k·SQL-create-context·Code-instructions-122k 넷, 수학은 MetaMathQA·MathInstruct·Orca-Math-200k 셋, 비영어는 IITB 영어–힌디·OPUS-100 독–영·Aya의 비영어 부분 셋, 창작은 WritingPrompts·TinyStories·Opus-WritingPrompts·Instruction-Poems 넷이다.
베이스 모델은 Qwen3.5-0.8B 하나로 고정했고 4비트로 양자화해 올렸다. 데이터셋마다 난수 시드를 둘씩 써서 LoRA를 돌려 모델 36개를 만들었다. 설정도 전부 같다. 랭크 16에 알파 32, 토큰 예산 150만, 학습률 2×10⁻⁴ 선형 감쇠, 유효 배치 16, 1에포크다. 데이터셋만 바꾸고 나머지는 그대로 뒀으니, 어댑터 사이의 차이는 무엇으로 배웠는지에서만 온다.
세 방법은 뒤로 갈수록 모델에 허용된 접근이 좁아진다.
셋은 묻는 대상이 서로 다르다. 가중치를 여는 쪽은 어댑터 파일을 직접 받아, 모듈마다 값이 얼마나 움직였는지를 숫자 몇 개로 줄여 쥔다. 내부 활성값을 보는 쪽은 파일은 못 열고 모델을 돌려 볼 수만 있어서, 분야색이 없는 질문 200개를 넣고 층마다 올라오는 값의 평균과 퍼짐을 받아 적는다. 생성한 글만 보는 쪽은 모델 안을 전혀 못 보고 같은 질문에 돌아온 답변만 쥔다. 그런데도 뽑아낸 특징 수는 셋 중 가장 많다.
| 보는 방법 | 무엇을 입력으로 쓰나 | 특징 개수 |
|---|---|---|
| 가중치를 연다(화이트박스) | 어댑터가 바꿔 놓은 양 — 모듈별 프로베니우스 노름, 상위 8개 특잇값, 층별 노름 곡선, 평균 스펙트럼, 전역 스칼라 넷 | 48 |
| 내부 활성값을 본다(그레이박스) | 중립 질문 200개를 넣었을 때 층마다 나오는 활성값의 평균과 퍼짐 — 곡선 셋을 24점으로 다시 뽑고 전역 스칼라 여섯을 더한다 | 78 |
| 생성한 글만 본다(블랙박스) | 같은 질문에 쓴 답 — 예측 엔트로피 셋, 답 길이 통계 넷, 토큰 번호 히스토그램 64칸, 문장 임베딩 중심 384차원 | 455 |
중립 질문은 어느 분야에도 치우치지 않도록 고른 것으로, "아침 일과를 설명해 달라" 같은 문장이다. 출처: arXiv 2611.07610
분류기는 표준화한 로지스틱 회귀 하나다. 깊은 신경망도, 별도 학습 모델도 쓰지 않았다. 평가는 데이터셋 하나를 통째로 빼고 나머지로 학습시킨 뒤 빼 둔 데이터셋을 맞히게 하는 방식이고, 저자는 이 규약을 결과를 보기 전에 고정했다고 적는다. 같은 데이터셋의 다른 시드가 답을 흘려 주지 못하게 막는 설계다.
가장 깊이 들여다본 쪽이 가장 못 맞혔다
저자가 실험 전에 등록한 가설은 권한이 많을수록 많이 알아낸다는 것이었다. 가중치를 직접 여는 쪽이 압도적으로 유리하고, 내부 활성값이 그다음이며, 생성한 글만 보는 경우가 가장 불리하리라고 적어 두었다. 나온 숫자는 그 순서를 뒤집었다.
| 보는 방법 | 정확도 | 매크로 F1 | 95% 신뢰구간 |
|---|---|---|---|
| 가중치를 연다 | 41.7% | 0.404 | 19.4–63.9% |
| 내부 활성값을 본다 | 61.1% | 0.643 | 41.7–80.6% |
| 생성한 글만 본다 | 63.9% | 0.640 | 41.7–86.1% |
다섯 분야 중 하나를 고르는 문제이므로 무작위는 20%다. 신뢰구간은 클러스터 부트스트랩 기준이다. 같은 데이터셋의 두 시드는 학습 데이터를 공유해 예측이 서로 독립이 아니므로, 데이터셋을 통째로 다시 뽑는 이 구간이 더 보수적이다. 예측 하나씩을 다시 뽑는 구간으로 재면 가중치도 25.0–58.3%로 무작위선 위에 서지만, 저자는 보수적인 구간을 기준으로 삼는다. 출처: arXiv 2611.07610
세 값을 무작위선과 함께 놓으면 간격이 분명해진다. 가중치를 연 경우는 구간의 왼쪽 끝이 무작위선을 넘어 들어가고, 나머지 둘은 가장 낮게 잡아도 41.7%로 무작위의 두 배를 넘는다.
저자는 이 역전을 두 갈래로 설명한다. 분야가 가중치의 변화량보다 모델의 행동에 더 많이 새겨졌을 수도 있고, 더 그럴듯하게는 손으로 고른 가중치 특징이 쓸 수 있는 구조를 그냥 남겨 둔 탓일 수도 있다는 것이다. 노름이든 특잇값이든 층별 곡선이든, 48개 특징은 전부 크기만 챙기고 방향은 버리는 요약이다. 어느 방향으로 틀어졌는지가 가중치 안에 적혀 있어도 이 숫자들에는 담기지 않는다. 그렇다면 41.7%는 가중치가 말이 없다는 뜻보다 이번에 고른 48개 숫자가 못 들었다는 뜻에 가깝다. 학습 가능한 특징이나 더 풍부한 표현을 쓰면 달라질 수 있다고 저자는 덧붙인다.
랭크를 바꿔 본 추가 실험이 뒤의 설명에 힘을 싣는다. 저자는 분야마다 데이터셋 하나씩을 골라 랭크 8과 64로 어댑터 열 개를 더 만든 뒤, 랭크 16으로만 배운 분류기에 분야를 물었다. 가중치를 여는 분류기는 열 중 셋만 맞혔고, 그중 랭크 64 어댑터 다섯은 전부 의료라고 답했다. 다섯 가운데 실제로 의료인 것은 PubMedQA 하나다. 노름이든 스펙트럼이든 랭크가 커지면 따라서 커지는 값이라, 이 분류기는 분야가 아니라 랭크를 읽고 있었던 셈이다. 다만 분야당 데이터셋 하나로 센 결과라 저자는 이 숫자들을 참고 수준으로만 보라고 적는다.
블랙박스에는 한 겹이 더 있다. 455개 특징 중에는 토큰마다의 확률에서 뽑은 값이 섞여 있는데, 그것을 모두 빼고 눈에 보이는 글자만 남겨 다시 돌려도 정확도는 63.9%로 같았다. 36개 예측 가운데 달라진 것은 하나뿐이다. 토큰 확률은 요즘 많은 서비스가 내주지 않는 값이다. 그 값이 없어도 수치가 흔들리지 않았다는 것은, 평범한 API로 질문 200개를 던져 답을 받아 두는 것만으로 이 실험이 재현된다는 뜻이 된다.
분야 대신 데이터셋 자체를 지목하게 하면 숫자가 다시 뛴다. 18개 중 하나를 고르는 문제에서 가중치를 연 쪽과 활성값을 본 쪽은 전부 맞혔고, 생성한 글만 봐도 94.4%였다. 무작위는 5.6%다. 다만 이 수치를 놀라움으로 읽을 일은 아니다. 학습에 쓴 데이터셋이 평가에도 나오는 설정이라, 같은 것을 다시 알아본 것에 가깝다. 논문이 무게를 싣는 것은 한 번도 못 본 데이터셋의 분야를 맞히는 문제다.
뭉치지 않는다고 정보가 없는 것은 아니다
생성한 글이 학습 분야를 말해 준다는 결과는 기존 보고와 어긋난다. 2025년 9월에 나온 Delta Activations 연구는 모델이 내놓은 글의 문장 임베딩이 분야별로 잘 뭉치지 않는다고 적었다. 같은 재료를 쓰고 반대 결론이 나왔다.
재료 탓인지부터 저자가 확인했다. 특징 455개를 다 쓰지 않고 앞선 연구가 썼던 바로 그 표현만 남겨 다시 돌렸다. MiniLM 문장 임베딩 중심값 384차원 하나다. 그것만으로도 분야 정확도는 61.1%가 나왔다. 같은 출력 표현을 쥐고 한쪽은 안 보인다고 했고 다른 쪽은 보인다고 한 셈이다. 가중치를 두고는 두 연구의 말이 오히려 같다. Delta Activations도 어댑터 가중치를 펼쳐 놓은 것으로는 분야가 갈리지 않았다고 보고했고, 이 논문의 41.7%가 같은 결론을 가리킨다. 다만 그 연구는 70억에서 90억 규모 모델을 다뤘고 질문지도 달랐다.
저자가 내놓은 설명은 재료가 아니라 꺼내는 방법에 있다. 출력 임베딩 안에 분야 정보가 있기는 하지만, 변이를 지배하는 방향까지는 못 된다. 그래서 정답 표를 쥐고 학습하는 분류기는 그것을 복원한다. 정답 없이 뭉치기만 해서는 같은 정보가 드러나지 않는다는 것이다. 군집화는 데이터가 가장 크게 갈라지는 축을 먼저 잡는다. 그 축이 분야 대신 답의 길이나 말투였다면 분야는 뒤에 묻힌 채로 남는다. 반면 분류기는 어느 축이 분야와 붙어 있는지 라벨을 보고 찾아간다.
틀리는 자리도 방법마다 달랐다. 내부 활성값을 보는 쪽에서는 비영어와 코드가 가장 잘 갈렸고, 의료와 창작이 서로 섞였다. 비영어는 여섯 중 다섯, 코드는 여덟 중 여섯이 제자리를 찾은 반면 의료는 여덟 중 넷이 창작으로 갔고 창작은 여덟 중 셋이 의료로 갔다. 저자는 둘 다 영어 산문이라 내부 통계가 비슷하게 움직인 탓이라고 적는다. 생성한 글만 보는 쪽으로 넘어가면 의료와 창작의 혼동은 사라지는 대신 코드와 수학이 가장 많이 섞인다. 의료는 여덟 중 여섯, 창작은 여덟 중 다섯까지 올라오고, 남은 오답 열세 건 가운데 넷이 코드와 수학 사이에서 나온다. 둘 다 기호를 늘어놓고 단계를 밟아 나가는 답이 주를 이루기 때문이다.
혼동의 모양이 방법마다 다르다는 점은 적중률만큼 중요하다. 모델 안과 바깥을 보는 두 방식이 서로 다른 신호를 집고 있다는 뜻이고, 그렇다면 한쪽을 막아도 다른 쪽은 그대로 남는다.
저자가 스스로 건 브레이크
논문은 한계를 여섯 항목으로 나눠 적는다. 읽는 쪽이 결과를 어디까지 가져가도 되는지를 저자가 먼저 줄여 놓은 셈이다.
- • 베이스 모델이 하나다 — 0.8B 모델 한 종에서만 확인했고 LoRA만 다뤘다. 다른 구조나 더 큰 규모, 전체 파인튜닝으로 옮겨 가는지는 시험하지 않았다. 클라우드 GPU 비용 상한 30달러가 실험의 테두리였다.
- • 표본 36개는 신뢰구간을 넓힌다 — 특히 가중치를 여는 방식은 클러스터 부트스트랩에서 우연과 구분되지 않는다. 그래서 저자는 세 방법의 순서를 시사적인 것으로만 읽어야 한다고 못 박는다. 시드를 하나 더 붙이면 구간은 좁아지지만 이 결론은 바뀌지 않았다.
- • 데이터셋 둘이 빠졌다 — 쓰려던 20개 중 camel-ai/math는 파일이 수만 개로 쪼개져 있어 예산 안에 올리지 못했고, 일본어 데이터셋 하나는 예산 때문에 뒤로 밀렸다. 그래서 수학과 비영어는 각각 셋으로 돌아갔다.
- • 36개 중 하나는 조건이 다르다 — PubMedQA 시드 0이 파이프라인 검증용으로 먼저 돌아가는 바람에 토큰 예산이 150만이 아니라 200만이었다. 이 한 건을 150만으로 다시 돌려 끼워 넣어도 세 수치는 41.7·61.1·63.9로 그대로였다.
- • 분야가 일부러 멀리 떨어져 있다 — 의료와 코드와 수학과 비영어와 창작은 서로 닮지 않은 묶음이다. 같은 의료 안에서 두 전문 분야를 가르는 일은 더 어려울 것이라고 저자가 직접 적었다.
- • 자기 파일럿 결과를 스스로 기각했다 — 시드 하나를 빼고 평가하는 방식에서는 정확도 100%가 나왔지만, 라벨을 뒤섞는 대조 실험을 걸어 보니 분야를 배운 것이 아니라 같은 데이터셋을 다시 알아본 것이었다. 그래서 헤드라인 수치는 데이터셋 단위로 빼는 방식에만 기대고 있다.
학습에 쓸 문장을 다시 뽑으면 지문이 지워지는지도 저자가 시험했다. 헤드라인에 쓴 36개는 같은 데이터셋이면 두 시드가 같은 토큰 묶음을 봤으니, 데이터셋마다 세 번째 모델을 따로 만들어 150만 토큰을 처음부터 새로 뽑아 학습시켰다. 열여덟 중 열다섯은 예산이 원본의 26%를 넘지 않아 새 묶음이 앞의 것과 거의 겹치지 않는다. 나머지 셋은 겹침이 크고 Aya는 93%에 이른다. 그렇게 54개로 늘려 놓고 어느 데이터셋인지 맞히게 하면 가중치는 1.000, 나머지 둘은 0.981로 거의 그대로이고, 분야 정확도도 흔들리지 않는다. 지문이 붙잡고 있는 것은 학습에 들어간 특정 문장이 아니라 데이터셋의 분포라는 뜻이다.
남는 사실도 분명하다. 접근 권한이 가장 적은 방식이 가장 잘 맞혔고, 토큰 확률을 떼어 내도 수치가 유지됐으며, LoRA 랭크를 8에서 64까지 바꿔도 블랙박스 예측은 흔들리지 않았다. 그리고 논문은 막는 방법을 제안하지 않는다. 가중치에 잡음을 섞는다거나 출력을 다듬는다거나 하는 대책은 한 줄도 없다. 보여 준 것은 신호가 남는다는 사실까지이고, 지우는 일은 숙제로 남았다.
페블러스가 이 논문을 주목하는 이유
64%는 폭로라고 부를 수치가 아니다. 셋 중 하나는 틀리고, 신뢰구간도 넉넉하지 않다. 그래도 이 숫자가 바꾸는 것이 있다. 지금까지 어댑터 배포의 데이터 비밀성은 수치가 아니라 믿음으로 관리돼 왔다. 데이터를 안 줬으니 안 새어 나간다는 문장에는 맞서 볼 상대가 없었다. 이제 20% 대 64%라는 비교 대상이 하나 생겼고, 비밀성은 지켜지느냐 마느냐가 아니라 얼마나 지켜지느냐의 문제로 옮겨 간다.
방향은 양쪽으로 열려 있다. 사내 데이터로 특화 모델을 만들어 어댑터만 밖에 내놓는 쪽에서는 이것이 위험이다. 경쟁사가 API로 중립 질문 몇 백 개를 던져 답을 모으는 것만으로 어느 영역에 공을 들였는지 짐작할 수 있다. 반대로 학습 데이터 공개를 요구하는 규제 쪽에서는 이것이 도구가 된다. 저자 자신도 이 결과가 배포된 어댑터의 출처 감사, 그리고 공개하지 않은 학습 데이터를 탐지하는 일에 곧바로 닿는다고 적었다. 같은 신호가 누구 손에 있느냐에 따라 누출이 되기도 하고 증거가 되기도 한다.
어댑터를 주고받는 조직이라면 세 가지를 확인해 둘 만하다.
- • 계약서가 무엇을 비밀로 적고 있나 — 학습 데이터를 제공하지 않는다는 조항은 데이터가 드러나지 않는다는 보장과 다르다. 모델 파일을 넘기는 순간 무엇으로 배웠는지도 함께 건너간다는 전제로 문구를 다시 읽어야 한다.
- • 막을 자리를 어디로 잡고 있나 — 가중치를 숨기는 조치는 이 실험에서 가장 약한 통로를 막는 일이다. 가장 잘 맞힌 것은 아무 권한 없이 답변만 받아 간 방식이었고, 서비스를 열어 두는 한 그 통로는 닫히지 않는다.
- • 받는 쪽 어댑터의 출처를 묻고 있나 — 같은 기법이 공급망 점검에도 쓰인다. 외부에서 받은 어댑터가 어떤 성격의 데이터로 만들어졌는지 추정할 수단이 생겼다는 뜻이고, 라이선스나 개인정보 문제가 걸린 데이터라면 받는 쪽의 책임이기도 하다.
페블러스가 데이터를 AI가 바로 쓸 수 있는 상태로 다듬으면서 함께 기록하는 것이 이 출처다. 어떤 데이터가 어디서 와서 어느 모델에 들어갔는지를 남겨 두면, 나중에 산출물에서 역으로 추정당할 때 해명할 근거가 생긴다. 반대로 기록이 없으면 추정이 사실처럼 굳어도 반박할 자료가 없다. 모델이 자기 재료를 조금씩 말한다면, 그 재료 장부를 먼저 갖고 있는 쪽이 유리하다.
Editor's Note
이 결과를 개인정보 유출로 읽으면 논문보다 멀리 가는 것이다. 복원된 것은 분야 하나이고, 학습 데이터에 어떤 문장이 들어 있었는지는 이 실험의 사정거리 밖이다. 저자가 세운 선도 거기까지다. 모델 하나, 랭크 하나, 뚜렷이 갈리는 다섯 분야에서 나온 수치다. 이 조건을 떼어 놓고 인용하지 않는 편이 좋다.
여기까지 읽어 주셔서 감사하다. 이 글의 수치는 arXiv에 공개된 논문 본문에서 직접 확인했고, 저자가 유보한 것은 유보한 대로 적었다. 사내 데이터로 고친 모델을 밖에 내놓을 때 어떤 선을 긋고 계신지, 그 선이 가중치에 그어져 있는지 출력물에 그어져 있는지 들려주시면 좋겠다.
(주)페블러스 데이터 커뮤니케이션팀
2026년 11월 9일