This commit is contained in:
도로롱
2025-10-24 11:51:35 +09:00
parent cf6e9c14ee
commit 3e3070b379

View File

@@ -1,6 +1,6 @@
--- ---
title: "화이트햇콘테스트 2025 pre writeup(forensics/ai)" title: "화이트햇콘테스트 2025 pre writeup(forensics/ai)"
description: "writing" description: "ctf"
date: "Oct 23 2025" date: "Oct 23 2025"
--- ---
@@ -15,19 +15,7 @@ date: "Oct 23 2025"
기본 가정은 언어 모델이 스스로 생성했을 법한 텍스트에 대해 상대적으로 더 높은 로그우도(log-likelihood)를 부여한다는 것이다. 후보 모델을 직접 구동하고 입력 텍스트의 `logprobs`를 관측하면 모델 기원 분류(model attribution)가 가능하다. 기본 가정은 언어 모델이 스스로 생성했을 법한 텍스트에 대해 상대적으로 더 높은 로그우도(log-likelihood)를 부여한다는 것이다. 후보 모델을 직접 구동하고 입력 텍스트의 `logprobs`를 관측하면 모델 기원 분류(model attribution)가 가능하다.
### 2.2 Methodology ### 2.2 Methodology
입력 $x = (t_1, \ldots, t_n)$ 에 대해 모델 $M$ 의 로그우도 합은 $\log p_M(x) = \sum_{i=1}^{n} \log p_M(t_i \mid t_{<i})$ 로 정의된다. 길이 편향을 줄이기 위해 평균 로그우도 입력 시퀀스 `x = (t1, ..., tn)`에 대해 모델 `M`이 부여하는 로그우도 합은 각 토큰의 조건부 로그확률을 더해서 구했다. 길이에 따른 편향을 줄이기 위해 전체 합을 토큰 수로 나눈 평균 로그우도(mean_logprob)를 사용했고, 근소한 차이를 안정적으로 비교하려고 전체 로그우도를 입력 바이트 길이와 `ln 2`로 나눈 bit-per-byte(bpb) 지표도 함께 계산했다. 두 값 모두 높을수록(또는 bpb는 낮을수록) 해당 모델이 텍스트를 더 그럴듯하게 본다는 의미다.
$$
\text{mean\_logprob}(x) = \frac{1}{n} \sum_{i=1}^{n} \log p_M(t_i \mid t_{<i})
$$
를 사용했고, 근소 차이를 안정화하기 위해 바이트 단위 교차 엔트로피
$$
\text{bpb}(x) = \frac{-\log p_M(x)}{(\ln 2) \cdot |x|_{\text{bytes}}}
$$
를 보조 지표로 활용했다 (값이 작을수록 우수).
실제 환경은 NVIDIA TESLA T10 16GB였는데, Gemma 3의 bf16 요구사항 때문에 로컬 서빙이 어려웠다. 따라서 LLaMA 3.2만 구동하여 20개 텍스트 모두에 대한 `mean_logprob`을 계산한 뒤, 가장 높게 나온 상위 10개를 LLaMA 3.2 산출물로, 나머지를 Gemma 3 산출물로 가정해 제출했다. 실제 환경은 NVIDIA TESLA T10 16GB였는데, Gemma 3의 bf16 요구사항 때문에 로컬 서빙이 어려웠다. 따라서 LLaMA 3.2만 구동하여 20개 텍스트 모두에 대한 `mean_logprob`을 계산한 뒤, 가장 높게 나온 상위 10개를 LLaMA 3.2 산출물로, 나머지를 Gemma 3 산출물로 가정해 제출했다.