본문으로 건너뛰기

Model Genome — LLM 학습 출처 지문화

config.json·토크나이저·임베딩 CKA를 조합해 공개 모델이 'from-scratch'인지 파생인지 가늠하는 재현 가능한 파이프라인이다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

공개된 config.json, tokenizer.json, 임베딩 가중치 세 가지 축을 결합해 모델이 'from-scratch'인지 외부 베이스를 차용했는지 판별하는 재현 가능한 파이프라인이 제시되었다. config 기반의 아키텍처 튜플과 토크나이저 어휘 겹침(min-overlap)은 강력한 1차 증거이며, 임베딩 비교는 행 단위 코사인이 회전 불변성 때문에 무의미하고 선형 CKA는 독립 학습을 확인하는 데는 유용하나 파생을 단독으로 확정하기에는 민감도가 부족하다는 관찰이 핵심이다. 이 방식을 동일 기준으로 한국의 공개 모델 구성을 조사해 포팅·혼합·네이티브 스펙트럼을 드러냈고, 모든 입력은 공개 아티팩트여서 재현 가능하도록 도구와 코드가 공개되었다.

섹션별 상세

모델 제작자가 'from-scratch'로 주장할 때 제3자는 공개된 아티팩트만으로 검증할 수 있다는 문제가 핵심이었다; 본문은 GitHub/Hugging Face 레포의 config.json, tokenizer.json, 가중치 임베딩을 조합해 재현 가능한 지문을 만드는 방법을 제안한다. 방법은 세 축—아키텍처, 토크나이저, 가중치—을 독립적으로 측정하고 종합해 한눈에 볼 수 있는 genotype 라벨을 출력한다. 이 과정은 동일한 규칙을 모든 모델에 적용해 편향 없이 비교 가능한 근거를 남기는 목적을 가진다.
아키텍처 지문은 config.json의 몇몇 필드 묶음(hidden_size, intermediate_size, num_hidden_layers, num_attention_heads, num_key_value_heads 등)의 튜플을 비교해 이루어진다; 이 튜플이 외부 오픈웨이트 모델과 정확히 일치하면 아키텍처를 채택했을 가능성이 높아진다. 사례로 3584·18944·28·28·4 같은 형태가 특정 7B 모델과 정확히 일치한 예를 제시해 단일 필드 우연 일치를 넘어서는 식별력을 보였다. 아키텍처는 파생 여부를 판단할 때 가장 직접적인 증거축으로 사용된다.
python
import requests

def arch_fingerprint(repo):
    c = requests.get(f"https://huggingface.co/{repo}/resolve/main/config.json", headers={"User-Agent": "genome/1.0"}).json()
    return {k: c.get(k) for k in ("model_type", "vocab_size", "hidden_size", "intermediate_size", "num_hidden_layers", "num_attention_heads", "num_key_value_heads")}

Hugging Face 레포의 config.json을 원격으로 가져와 모델의 핵심 필드 다수를 추출해 아키텍처 형태를 튜플로 만든다. 이 튜플(예: hidden_size·intermediate_size·num_hidden_layers·heads·kv)은 동일하게 일치할 경우 타 레퍼런스에서 아키텍처를 채택했을 가능성을 강하게 시사한다. 동일 필드 하나만 일치하는 것은 우연으로 볼 수 있지만 여러 필드가 동시에 일치하면 지문 역할을 한다.

근거
  • config.json의 핵심 수치 튜플이 외부 오픈웨이트와 정확히 일치하면 아키텍처를 채택했을 강력한 증거가 된다. 본문의 아키텍처 지문 코드와 예시 튜플들(예: 3584·18944·28·28·4)이 같은 레퍼런스와 정확히 일치한 사례.
토크나이저 지문은 tokenizer.json에서 어휘 집합을 추출해 두 모델의 어휘 교집합 비율을 min-overlap(len(A), len(B))으로 계산하는 방식으로 얻는다; 분모를 교집합이 아닌 작은 집합의 크기로 잡으면 큰 어휘에서 파생된 작은 어휘를 부분집합으로 식별할 수 있다. 이 방법으로 아키텍처는 같으나 토크나이저가 다른 '외형은 차용, 언어 기반은 새로 학습' 사례와 아키텍처는 같고 토크나이저도 그대로인 '직접 파인튜닝' 사례를 구분할 수 있었다. 따라서 아키텍처 지문만으로는 오판할 수 있어 토크나이저가 보완적 핵심 증거가 된다.
python
def vocab_set(repo):
    j = requests.get(f"https://huggingface.co/{repo}/resolve/main/tokenizer.json").json()
    v = j["model"]["vocab"]  # BPE: {token: id}
    return set(v.keys())

def tok_overlap(a, b):
    A, B = vocab_set(a), vocab_set(b)
    return len(A & B) / min(len(A), len(B))  # 1.0 == subset

토크나이저의 vocab 집합을 읽어 두 모델의 어휘 교집합 비율을 min(|A|,|B|)으로 계산하면 작은 어휘가 큰 어휘의 부분집합인 경우에도 1.0에 가까운 값을 얻어 '기초 토크나이저를 그대로 차용했는지'를 올바르게 가려낸다. 이 비율은 아키텍처 지문과 결합되어 '외형은 동일하지만 언어적 토대는 새로 훈련했다' 같은 케이스를 드러낸다. 실무에서는 동일 토크나이저를 복사했을 때 겹침이 1.0이 되는 점을 주요 신호로 사용한다.

근거
  • 토크나이저 어휘 겹침을 min(|A|,|B|)으로 계산하면 작은 어휘가 큰 어휘의 부분집합인 경우에도 1.0에 근접해 '부분집합 토크나이저'를 올바르게 식별한다. 토크나이저 겹침 계산 코드(tok_overlap)와 그 설명; 본문에서 특정 모델이 Qwen과 아키텍처는 같지만 토크나이저 겹침이 약 0.38로 나타난 사례 언급.
가중치 지문에서 행 단위 코사인 평균은 회전 불변성 때문에 무의미하다는 함정이 존재하며, 대신 선형 CKA를 사용하면 기저 회전과 등방성 스케일에 영향을 받지 않는 표현 구조 유사도를 얻을 수 있다. 실험 결과 from-scratch 모델은 후보 기반과 거의 0에 가까운 CKA를 보였으나 계속된 프리트레인/파인튜닝 파생 모델은 약 0.25 수준으로, 같은 계열의 무관한 모델 간 기준값 약 0.21보다 조금 높은 정도에 그쳐 파생을 강하게 확정하기에는 판별력이 약했다. 따라서 가중치 축은 '독립 학습'을 뒷받침하는 증거로는 신뢰할 수 있지만 파생 여부 판단은 config·tokenizer 축에 더 의존해야 한다.
python
import torch

def linear_cka(X, Y):
    # X: (n, d1), Y: (n, d2) — SAME token order (shared vocab)
    X = X - X.mean(0, keepdim=True)
    Y = Y - Y.mean(0, keepdim=True)
    num = (X.T @ Y).norm() ** 2
    den = (X.T @ X).norm() * (Y.T @ Y).norm()
    return (num / den).item()

공유 어휘에서 임베딩 행들을 같은 순서로 추출해 평균을 제거한 뒤 선형 CKA를 계산하면 회전과 등방성 스케일 변화에 불변한 전체 표현 구조 유사도를 얻을 수 있다. 실험에서는 from-scratch 모델이 후보 기반과 거의 0에 가까운 CKA를 보였고, 파생 모델은 약 0.25로 무관계 모델(≈0.21)보다 약간 높아 '완전한 증거'로 삼기 어렵다는 관찰이 나왔다. 따라서 CKA는 '독립 학습'을 확증할 때 유용하지만 파생 여부를 단독으로 판정하기에는 민감도가 충분치 않다.

근거
  • 행 단위 코사인 유사도 평균은 회전 불변성 때문에 혈연관계 추정에 무용하다. 섹션 4의 'Trap 1' 설명과 실험에서 알려진 from-scratch 및 Llama-파생 모델 모두에서 평균 코사인이 거의 0에 근접했다는 관측.
  • 선형 CKA는 회전·스케일 불변성을 제공해 독립 학습을 확인할 때 유용하지만, 파생 모델을 판별하는 데는 민감도가 충분치 않다(파생 모델 ≈0.25, 무관 모델 ≈0.21). linear_cka 코드와 본문 수치(파생 모델 ≈0.25, 무관 모델 ≈0.21) 및 from-scratch 모델이 거의 0을 보였다는 기술.
주의 깊은 추가축으로 attention diversity를 도입해 config.json에 선언된 여러 attention 메커니즘의 수를 건축적 독창성의 프록시로 활용했다; 예컨대 layer_types 배열이 혼합형이면 하이브리드 설계로 간주할 수 있다. 이 값은 genotype 판정에 직접 포함되지는 않고 독립 증거로 제시되어 사용자가 원자료를 검토하게 한다. 최종적으로 아키텍처·가중치 기반의 핵심 라벨을 산출하고 토크나이저 겹침과 attention 다양성은 보조적 증거로 노출한다.
동일한 파이프라인을 한국의 아홉 개 공개 퍼블릭 모델에 적용한 결과 스펙트럼이 존재했다; 일부는 아키텍처와 토크나이저가 외국 모델과 정확히 일치해 'Ported'로 분류되었고, 일부는 고유 아키텍처와 가중치를 보여 'Native'로 분류되었으며 많은 모델은 중간 지대에 위치했다. 저자는 가중치 축의 한계를 솔직하게 밝히며 도구는 혈연관계를 나타낼 뿐 법적·윤리적 판단을 담지 않는다고 명시했다. 모든 입력은 공개 자료에 기반하며 재현 가능한 함수 세 개로 전체 방법을 공개해 사용자가 임의의 허브 레포에 적용할 수 있게 구성되었다.

용어 해설

모델 구성 파일(config.json)
Transformers 체크포인트에 포함되는 JSON 파일로서 model_type, vocab_size, hidden_size, intermediate_size, num_hidden_layers, num_attention_heads 같은 필드가 모델 아키텍처의 핵심 형태를 결정하며 서로 일치하면 아키텍처 복제 가능성을 강하게 시사한다.
토크나이저 사전 파일(tokenizer.json)
토크나이저의 어휘 집합을 담는 파일로서 BPE·SentencePiece 등 구현에서 토큰과 ID 매핑을 제공하며 어휘의 교집합 비율(min-overlap)을 통해 '어떤 모델이 다른 모델의 토크나이저를 그대로 썼는지'를 가늠할 수 있다.
CKA (표현 비교 지표)(Centered Kernel Alignment (CKA))
표현 행렬들 사이의 일치도를 측정하는 방법으로 회전과 등방성 스케일에 불변성을 가져 서로 다른 기저에 표현된 임베딩의 구조적 유사성을 비교하는 데 적합하지만 대규모 재학습 뒤에는 판별력이 떨어질 수 있다.
회전 불변성(rotational invariance)
Transformers의 은닉공간은 특정 기준 기저를 갖지 못해 동일한 정보가 서로 직교 회전된 기저에서 표현될 수 있으며, 이로 인해 행 단위 코사인 유사도처럼 기저에 의존하는 비교법은 혈연관계를 잘못 판단하게 된다.
토큰 임베딩 행렬(embed_tokens.weight)
모델의 입력 토큰을 벡터로 매핑하는 가중치 행렬로서 공유된 어휘 순서를 기준으로 행렬을 추출해 CKA로 비교하면 전체 표현 구조의 유사성을 평가할 수 있으나 대규모 파인튜닝 이후에는 값이 재형성되어 판별 민감도가 떨어질 가능성이 있다.

기술

  • config.json
  • tokenizer.json
  • embed_tokens.weight
  • Linear CKA
  • Hugging Face
  • Transformers

활용 사례

  • 벤더가 'from-scratch' 기반이라고 주장하는 공개 모델의 혈연관계 검증
  • 공개 레포를 대상으로 한 모델 계보 감사와 투명성 보고
  • 연구자가 특정 공개 베이스와의 파생 여부를 빠르게 탐지해 재현 가능성 평가
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 09.수집 2026. 08. 09.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.