지난 글 끝에 모르는 것 세 가지를 남겨 뒀습니다. 그중 하나가 이거였어요.
같은 프롬프트를 다시 넣으면 결과가 항상 같은지 — 확인 안 해봤습니다
확인해 봤습니다. 그리고 제가 이전에 쓴 글들을 일부 정정해야 하는 결과가 나왔습니다.
이틀 전 NSFW로 차단당했던 밀랍 조각 프롬프트를 글자 하나 안 바꾸고 썼습니다. 같은 모델(Grok Image), 같은 설정, 같은 비율.
같은 프롬프트, 같은 모델, 몇 분 사이에 돌렸는데 결과가 갈렸습니다.
1회차입니다. 이틀 전엔 이 프롬프트가 차단됐는데 지금은 그냥 나왔어요.
이건 논리적으로 확실합니다.
프롬프트는 13번 모두 바이트 단위로 동일했습니다. 입력이 상수인데 출력이 갈렸다면, 판정은 입력이 아닌 무언가를 보고 있는 겁니다. 그리고 매번 달라지는 건 생성된 이미지뿐이에요.
증거도 눈에 보입니다.
3회차와 4회차입니다. 자세, 각도, 팔 위치, 몸 비례가 전부 다릅니다. 같은 프롬프트인데 매번 다른 조각이 나와요.
그러니까 이런 일이 벌어진 겁니다 — 열세 번의 생성 중 한 번이 우연히 분류기의 경계 안쪽에 떨어졌고, 그게 이틀 전 제가 만난 그 한 번이었던 거죠.
제출 단계에서도 단서가 있었습니다. 13건 전부 제출은 정상 접수됐고 차단은 나중에 상태로 돌아왔어요. 프롬프트를 미리 걸렀다면 접수 자체가 거절됐겠죠.
튜닉을 입힌 대조군은 10회 중 NSFW 0회였습니다.
솔직히 여기서 "거봐 옷을 입히니 해결됐다"고 쓰고 싶었는데, 그렇게 쓰면 안 됩니다.
원본의 차단율이 13분의 1, 약 8%입니다. 이 확률이라면 10번 돌렸을 때 한 번도 안 걸릴 확률이 원래 40%가 넘습니다. 즉 0회라는 결과는 옷을 입히지 않았어도 흔히 나올 수 있는 숫자예요.
제대로 검증하려면 양쪽을 수백 번씩 돌려야 합니다. 안 했습니다. 그러니 이 실험은 "옷 입히기가 효과 있다"를 증명하지 못했습니다. 부정하지도 못했고요.
이게 이 글에서 제일 중요한 부분입니다.
저는 NSFW 글에서 개별 차단마다 원인을 특정했습니다. "밀랍이 살색이라 걸렸다", "kids가 임계값을 낮췄다" 같은 식으로요.
그런데 판정이 확률적이라면, 단 한 번의 차단으로는 원인을 특정할 수 없습니다.
kids 때문에 걸렸다는 것 — 같은 프롬프트를 여러 번 돌려보지 않았으므로 확인된 게 아닙니다메커니즘 자체(이미지 단계 판정, 누드 개념 중심, 모델 간 불일치)는 연구 자료로 뒷받침됩니다. 제가 틀린 건 개별 사건에 그 메커니즘을 갖다 붙인 것이에요.
바꿔 말하면 이렇습니다 — 이론은 맞는데 진단이 과했습니다.
NSFW 말고 failed로 끝난 것도 세어 봤습니다.
같은 모델을 몇 분 간격으로 돌렸는데 이렇게 요동칩니다. 내용과 무관한 인프라 쪽 노이즈로 보입니다.
그동안 저는 실패가 나면 프롬프트를 의심했는데, 상당수는 그냥 인프라였을 가능성이 큽니다.
이전 글의 처방은 유효합니다. 다만 순서가 바뀝니다.
이전 글에서 저는 "같은 프롬프트 재제출은 크레딧만 쓴다"고 썼습니다. 이건 틀렸습니다. 재제출은 실제로 통과할 수 있습니다. 정정합니다.
다만 몇 번까지가 재시도이고 어디부터가 회피인지는 여전히 각자 판단할 문제입니다. 제 기준은 서너 번입니다. 그 이상 걸리면 만들려는 것 자체를 다시 봅니다.
가장 궁금했던 건 사실 연령 관련 단어가 정말 임계값을 낮추는가였습니다. 연구에는 그런 장치가 있다고 나오거든요.
그런데 하지 않기로 했습니다. 무해한 장면이라도 아동 관련 축을 일부러 반복 탐침하는 건 제가 쓴 원칙과 어긋납니다. 제 글에도 "이 축은 애매하면 주제를 바꾸라"고 적어 놨고요.
그러니 그 항목은 확인되지 않은 채로 남겨 둡니다. 모르는 걸 모른다고 두는 게 낫습니다.
실험 결과 전부를 큐레이션에 올려 뒀습니다. 돌린 프롬프트도 작품마다 그대로 붙어 있으니 직접 재현해 보셔도 됩니다.
표본이 23회뿐이라 이것도 확정은 아닙니다. 더 돌려 보신 분 있으면 알려주세요 🍠