ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AI를 공부해보자 #13. 한 토큰짜리 출력으로 LLM 모델 Fingerprinting하기
    Math/AI and Statistics 2026. 7. 30. 10:32

     

     

     

    2026년 7월 11일 아카이브에 한 논문이 올라왔다. '1부터 100 사이 숫자 중 아무거나 랜덤으로 출력해줘'와 같은 매우 단순한 질문 하나만 가지고서 LLM 모델을 통계적으로 유의미하게 구분할 수 있는 fingerprint를 만들 수 있다는 내용이 골자였으며 나름 획기적 아이디어여서 화제가 되었다. 

     

    이 글은 해당 논문을 읽고 정리해본 내용이다. (논문 주소 : https://arxiv.org/abs/2607.10252)

     

     


     

    Intro - LLM API에서 제공하는 모델이 정말로 광고된 모델일까? 

     

     

    오늘날 사용자는 모델 개발사가 직접 제공하는 API 뿐만 아니라 Open Router와 같은 중개 업체를 통해 여러 LLM에 접근한다. 그런데, 사용자가 API에 요청을 보내면 실제로 받는 것은 단순한 텍스트 뿐이다. API GPT, Claude 등의 이름을 표시하고 있더라도, 그 뒤에서 실제로 그 모델이 실행되고 있다는 기술적 보장은 없다.

     

    서비스 제공자는 비용을 줄이기 위해 광고한 모델보다 더 저렴한 모델을 사용, 최신 모델이 아닌 지난 버전의 모델 제공하는 등의 행동을 할 수 있다. 논문은, 사용자가 모델의 가중치나 logit에 접근할 수 없고 API 쿼리를 통해 오직 텍스트만 출력받는 완전한 블랙박스 환경에서 API가 광고하는 모델을 실제로 제공하는지 저렴하게 확인할 수 있을까?라는 질문에서 출발한다.

     

    저자들은 LLM에게 ‘random’한 답변을 해달라고 요청하더라도 진정한 random을 답하지 못한다는 점에서 착안하여, “Name a random number between 1 and 100”과 같은 질문에 대한 답변이 LLM 모델마다 큰 차이가 있을 것이라고 보았다. 

     

    그리고 이러한 간단한 질문을 통해 얻은 답변의 분포를 LLM 모델을 구분하는 fingerprint로 사용할 수 있을 것이라고 추측하였다.

     

     

     

    방법론 - Fingerprint의 정의와 수집 방법

     

    특정 API를 통해 서비스 하는 모델을 $M$, probe cell을 $B=\left\{(t, l)\right\}$로 정의한다. 이때 $t$는 특정 task이며 $l$은 프롬프트를 작성할 때 사용된 언어이다. 논문의 저자가 사용한 task의 목록은 다음과 같다.

     

    사용 언어는 영어, 러시아어, 중국어, 아랍어를 선택하여, 총 40가지 경우의 수의 probe를 구성하였다.   

     

    이후 각 probe를 30번 질의하여 분포를 얻고, 총 40개 probe 각각에 대한 분포 전체를 모델 $M$에 대한 fingerprint로 정의하였다. 

    두 모델 간 거리는 Jensen-Shanon divergence로 정의하였다.

     

     

    우선 신뢰할 수 있는 모델의 공식 배포처에서 분석 대상 모델 X fingerprint를 수집한다. 이후 검사할 endpoint E에서 probe cell을 질의하여 새로운 fingerprint를 만들고 수집한 fingerprint와 다음과 같이 비교한다.

     

    $$s=\frac{1}{k} \sum_{i=1}^k JSD(p^X || p^E)$$

     

    정해진 threshold $\tau$에 대해 만약 $s \leq \tau$라면 E와 X가 같은 모델이라고 판단할 수 있다고 정의한다.

     

     

     

    결과

    논문에서는 다음과 같은 조건을 모두 만족하는 모델 총 165개에 대하여 fingerprint 수집 및 분석을 진행하였다.

    • (i) Plain text-to-text 모델일 것
    • (ii) 수학, 코딩, 의학 등 특정 분야에 최적화된 모델이 아닐 것
    • (iii) 하나의 고정 모델 체크포인트를 명확히 가리킬 것
    • (iv) 모델의 reasoning을 명시적으로 제거할 수 있을 것
    • (v) 반복 측정이 가능한 토큰 한도를 제공할 것

    저자는 해당 분포가 fingerprint로서 가치를 가지기 위해서는 같은 모델을 반복 측정하면 유사한 분포가 나오고, 다른 모델을 측정하면 다른 분포가 나와야 한다고 주장하였다.

     

    이를 검증하기 위하여 한 모델에서 수집한 표본을 둘로 나누어, 같은 모델의 첫 번째 절반과 두 번째 절반을 비교하고, 서로 다른 모델의 절반 끼리 비교하는 실험을 진행하였다.

     

    그 결과, 서로 같은 모델간 JSD 중앙값은 0.075, 서로 다른 모델 사이 JSD 0.489로 상당한 차이가 존재하였다. 따라서 이러한 분포는 fingerprint로서 의미가 있음을 확인하였다.

     

    저자는 이 fingerprintserving stack의 차이에 완전히 불변하지는 않지만, 대부분의 경우 모델 정체성을 유지할 정도로 안정적이며 동일 모델인데도 거리가 지나치게 크다면 그 자체가 배포 이상 징후라고 해석하였다.

     

    또한, threshold값을 바꿔가며  ROC curve를 그려본 결과 AUC는 약 0.971로, 저자가 정의한 fingerprint가 전반적으로 안정적인 구분력을 가진다는 것 또한 확인할수 있었다고 한다.

     

     


     

     

    이 논문은 “1부터 100 사이 정수를 랜덤하게 출력하라와 같은 단순한 질문을 반복하여 얻은 단일 토큰 응답 분포에 165개 상용 API 모델 환경에서 모델 간 차이가 유의미하게 존재함을 포착한 것에 의의가 있다.

     

    특히, 낮은 비용과 완전한 블랙 박스 상황에서 통계적으로 의미가 있는 모델 구분 수준을 달성한 것이 눈여겨볼 만 하다. LLM에게 랜덤한 숫자를 요구하면, 진짜 랜덤하게 생성하지 못하고 모델의 선호도가 응답에 나타날 수밖에 없다는 참신한 아이디어를 활용하여 fingerprint를 정의한 것이 인상깊었다.

    댓글

Designed by Tistory.