낯선 것과 위험한 것을 가르는 법
Counterfactual Neighborhood Risk Fields가 VLM 안전을 차단이 아닌 증거 기반 선택적 판단으로 바꾸는 과정을 따라가며, 반사실 이웃과 위험 방향, 지원도 분리, 동일 모델 검토 구조를 해설합니다.
원문 논문 보기
오늘 살펴볼 논문은 Counterfactual Neighborhood Risk Fields: Evidence-Grounded Selective Safety for Vision-Language Models로, arXiv에 2610.20679 번호로 공개된 VLM 안전 연구입니다. 원문 링크는 제목 아래에 걸려 있습니다. 이 연구가 내세우는 주장은 한 문장으로 정리할 수 있는데, VLM의 안전 판단을 유해함과 무해함을 가르는 경계 학습이 아니라 각 요청마다 적용 가능한 증거를 만드는 선택적 판단 문제로 다시 쓰자는 것입니다.
왜 이 논문을 굳이 꺼내 읽었을까
안녕하세요, 패트릭입니다.
저는 이 논문에서 가장 흥미롭게 본 부분이 제목에 들어 있는 risk fields라는 표현이었습니다. 보통 안전 연구는 분류기를 하나 더 붙였다거나 필터를 강화했다는 식으로 설명되는 경우가 많은데, 여기서는 점수 하나를 내놓고 끝내는 대신 그 점수가 성립하는 주변 지형을 함께 그리겠다고 말하거든요. 말하자면 답이 아니라 답의 근거가 되는 이웃을 같이 보자는 제안이죠.
비슷한 생각을 저는 운영하면서 종종 했습니다. 이미지와 텍스트가 함께 들어오는 요청은 텍스트만 있는 요청보다 판단이 훨씬 미끄러운데, 그때마다 문제는 모델이 모르는 것을 자꾸 위험한 것으로 처리한다는 데 있었습니다. 새로운 밈 형식이나 합성된 짤, 처음 보는 차트 스타일이 들어오면 안전 필터가 과민하게 반응하고, 정작 교묘하게 포장된 탈옥은 통과시키는 장면을 여러 번 봤기 때문입니다. 그래서 낯섦을 위험과 분리하겠다는 이 논문의 첫 문장을 보고 멈칫했습니다. 제가 현장에서 느꼈던 불편함을 정확히 짚고 있었거든요.
그렇다면 이 분리는 어떻게 구현될까요. 오늘 글에서는 그 장치를 처음부터 따라가 보려고 합니다. 어디서 이웃을 가져오고, 어떤 방향을 재고, 언제 개입할지를 차근차근 풀어보죠.
낯섦과 유해함을 같은 점수로 매기면 생기는 일
Vision-Language 모델의 안전 장치를 생각해 보면, 대부분은 harmful과 benign을 나누는 경계를 배우는 형태입니다. 표현 공간에 선을 하나 긋고, 입력이 어느 쪽에 떨어졌는지로 판단하는 것이죠. 표면적으로 보면 단순합니다. 실제로는 그렇지 않습니다.
문제는 그다음입니다. 분리는 되었는데, 그 분리가 무엇을 뜻하는지는 알려주지 않습니다. 점수가 높게 나왔다는 사실만으로는 그 점수가 해로운 능력을 가리키는 것인지, 아니면 그냥 학습 때 보지 못한 생소한 입력이라서 높게 나온 것인지 구분할 수 없거든요. 이 차이는 생각보다 중요합니다. 생소함을 유해함으로 오독하면 정상 요청까지 막게 되고, 반대로 유해함을 생소함으로 오독하면 탈옥을 놓치게 되니까요.
여기서 재미있는 질문이 생깁니다. 점수는 매겼는데, 그 점수를 믿어도 되는 조건은 따로 있지 않을까요. 우리가 사람을 평가할 때도 비슷하게 행동합니다. 면접에서 처음 보는 이력을 가진 지원자를 만나면 바로 탈락시키는 대신, 비교할 만한 이웃 경력이 있는지부터 살피죠. 비교군이 없으면 판단을 미루고, 비교군이 있으면 그 안에서 위치를 따집니다. 논문이 말하는 neighborhood support estimation은 바로 이 감각에 가깝습니다. 위험 점수와 별개로, 지금의 판단이 근거를 댈 만한 이웃 위에 서 있는지를 따로 재는 것이죠.
저는 이 숫자보다 그 뒤의 구조가 더 중요하다고 봅니다. 방어를 조금 더 세게 하자는 이야기가 아니라, 판단의 의미를 판단의 근거와 함께 내놓자는 이야기이기 때문입니다.

그렇다면 위험을 증거로 다시 묻는 방법은 없을까
논문이 제안하는 Counterfactual Neighborhood Risk Fields, 줄여서 CNRF는 선택적 안전을 위한 증거 기반 틀입니다. 선택적이라는 말이 여기서 중요합니다. 모든 요청을 막거나 풀어주는 게 아니라, 어떤 요청은 바로 통과시키고 어떤 요청은 따로 골라서 더 들여다보겠다는 뜻이니까요.
이 발상은 질문의 방향을 바꿉니다. 기존 질문이 어디에 선을 그을 것인가였다면, 바뀐 질문은 이 요청에 적용 가능한 증거가 있는가입니다. 선을 긋는 일은 모델 전체의 분포를 전제로 하지만, 증거를 만드는 일은 지금 들어온 요청 주변에서 답을 찾습니다. 그래서 저자들은 representation 기반 VLM 안전을 경계 학습에서 적용 가능한 증거 구성으로 다시 쓴다고 말합니다.
실제 시스템 관점에서 보면 다음 질문이 바로 생깁니다. 좋은 건 알겠는데, 이걸 매 요청마다 계산하면 비용이 어떻게 될까요. 이웃을 찾고 방향을 재는 과정이 inference 경로에 얹히면 latency가 늘 수밖에 없는데, 그 비용을 감당하면서도 남길 만한 가치가 있을까요. 저는 여기서 조금 의심했습니다. 구조가 예쁘다고 운영이 따라주는 건 아니니까요. 그런데 논문의 답은 전부 다 하자가 아니라 골라서 하자입니다. 전수 검사가 아니라 선별 개입이기 때문에, 비싼 검토는 정말 필요한 요청에만 쓰는 구조죠. 이 절약 감각이 CNRF를 읽을 만하게 만듭니다.
나쁜 쌍이 아니라 짝을 맞춘 쌍을 만드는 이유
CNRF의 출발점은 context-matched benign-harmful counterfactual pairs입니다. 말 그대로 문맥을 맞춘 무해함과 유해함의 반사실 쌍을 직접 만든다는 뜻인데, 처음 들으면 왜 굳이 쌍을 만들까 싶을 수 있습니다.
이유는 문맥이 바뀌면 표현도 함께 바뀌기 때문입니다. 예를 들어 의료 영상을 설명해 달라는 요청과 밈 이미지를 설명해 달라는 요청은, 설령 둘 다 무해하더라도 모델 내부에서는 전혀 다른 자리에 놓입니다. 그런데 이때 유해한 요청 하나를 멀리서 가져와 비교하면, 그 차이는 위험 때문인지 문맥 때문인지 알 수 없게 됩니다. 비교가 오염되는 것이죠. 그래서 논문은 같은 문맥 안에서 무해한 버전과 유해한 버전을 나란히 놓고, 그 둘의 representation 차이를 위험과 관련된 방향으로 읽습니다. 이 방향을 capability-related risk directions라고 부르는데, 말 그대로 해로운 일을 해낼 수 있는 능력 쪽으로 기울어진 정도를 재는 자입니다.
사람이 공부하는 방식과 닮아 있습니다. 수학 문제를 가르칠 때 엉뚱한 과목 문제를 가져와 비교하지 않고, 같은 단원에서 숫자만 바꾼 연습 문제를 보여주죠. 무엇이 달라졌을 때 답이 틀어지는지가 보여야 교정이 가능하기 때문입니다. (참고로 여기서 쌍을 만든다는 말은 데이터를 하나 더 수집한다는 뜻이 아니라, 지금 요청의 문맥에 맞는 대조군을 그때그때 구성한다는 쪽에 가깝습니다.)
저는 이 대목에서 저자들의 의도가 읽혔습니다. 유해함을 추상적인 속성으로 외우게 하는 게 아니라, 각 문맥에서 무엇이 선을 넘게 만드는지를 보여주려는 것이죠. 그래서 방향은 하나가 아니라 문맥마다 달라집니다.

방향 하나가 문맥을 타고 흐른다는 것은 무슨 뜻일까
앞에서 구한 방향이 진짜 쓸모가 있으려면, 그 방향이 다른 문맥에 그대로 복사돼도 통한다는 보장이 아니라 지금 문맥에 붙어 있을 때 의미가 있어야 합니다. 논문이 preserved context-direction correspondence를 강조하는 이유가 여기 있습니다. 문맥과 방향의 짝을 유지했을 때 위험 순위 매기기가 분명히 좋아지고, 짝을 섞거나 전역 방향 하나로 퉁치면 성능이 떨어진다는 것이죠.
이 결과는 마음에 들지만, 여기까지 일반화하기에는 데이터가 부족합니다. 다만 방향 자체는 꽤 직관적입니다. 같은 이미지 스타일, 같은 질문 형식, 같은 지시 구조 안에서 무엇이 더 위험한 쪽으로 당기는지를 재는 자는, 문맥을 벗어나는 순간 자의 눈금이 달라집니다. 자를 들고 재는 대상이 바뀌는 게 아니라 자를 대는 자세가 바뀌는 셈이니까요.
그렇다면 실험에서 대응을 보존했을 때 순위가 좋아졌다는 말은 무엇을 뜻할까요.적어도 이 평가 범위 안에서는 위험이 문맥 독립적인 절대량이 아니라 문맥에 기대어 읽어야 하는 상대량에 가깝다는 뜻입니다. 저는 이 대목을 읽고 무릎을 쳤습니다. 안전을 속성 분류로 보는 관점에서는 잘 설명되지 않던 실패들이, 관계 측량으로 보는 관점에서는 자연스럽게 설명되기 때문입니다. 왜 어떤 탈옥은 한 문맥에서는 막히고 다른 문맥에서는 통과되는지, 왜 전역 필터가 특정 스타일에만 과민한지가 한 번에 정리되죠.
문제는 그다음입니다. 문맥마다 방향을 따로 둔다면, 문맥이 너무 잘게 쪼개지면 이웃이 희박해지지 않을까요. 이 걱정은 다음 장치인 지원도 추정으로 이어집니다.
그러면 이 점수는 언제 믿을 수 있을까
CNRF는 위험 추정과 이웃 지원도 추정을 분리합니다. 위험 추정이 지금 요청이 얼마나 해로운 능력 쪽으로 기울었는지를 잰다면, 지원도 추정은 그 판단을 뒷받침할 이웃이 주변에 얼마나 있는지를 잽니다. 두 점수는 역할이 다릅니다.
이 분리가 주는 practical한 이득은 오탐을 다루는 방식에서 드러납니다. 통제된 실험에서 query-matched references는 낮은 오탐 영역에서 위험 순위 매기기를 개선했습니다. 말이 조금 어렵지만 뜻은 분명합니다. 정상 요청을 되도록 막지 않으면서도 진짜 위험한 것을 위로 올리는 능력이 좋아졌다는 것이죠. 정상과 비정상이 섞여 있는 운영 환경에서는 이 영역의 성능이 체감과 직결됩니다. 전체 정확도가 조금 올라도 오탐이 그대로면 사용자는 필터가 고장 났다고 느끼니까요.
여기서는 조금 조심해서 읽을 필요가 있습니다. 지원도가 낮다는 것은 판단 근거가 약하다는 뜻이지, 요청 자체가 위험하다는 뜻은 아닙니다. 논문도 이 둘을 섞지 말라고 못 박습니다. 낯설다고 위험한 게 아니라는 선언이죠. 저는 이 선언이 운영의 아침을 지켜주는 장치라고 봅니다. 밤사이 새로운 이미지 형식이 유행하거나 아침에 특정 이벤트 관련 짤이 쏟아져도, 예측 라인이 전부 멈추면 안 되기 때문입니다. 근거가 약하면 판단을 미루고 사람이나 추가 검토로 넘기면 되죠. 무작정 막는 것보다 훨씬 낫습니다.

막는 대신 골라서 다시 묻는 구조는 어떻게 다를까
위험 점수와 지원도를 구했으면 이제 결정을 내려야 합니다. CNRF가 택한 방식은 blanket rejection이 아니라 victim-adaptive interface를 통한 선별 라우팅입니다. 선택된 요청만 골라서 같은 victim 모델의 response review로 넘긴다는 것이죠.
여기서 victim이라는 말이 어색하게 느껴질 수 있는데, 뜻은 공격받는 바로 그 모델이라는 정도입니다. 외부의 더 큰 심판 모델을 불러오는 게 아니라, 지금 답을 내려고 하는 모델에게 다시 묻는 구조죠. 왜 이렇게 할까요. 이유는 적용 가능성 때문입니다. 다른 모델이 안전하다고 말해도, 지금 이 모델이 무엇을 할 수 있는지와는 층위가 다를 수 있거든요. 같은 모델에게 물어야 지금 이 능력이 실제로 위험한 일로 이어지는지를 볼 수 있습니다.
저희가 새로운 AI 아키텍처를 볼 때도 benchmark 숫자만 보지는 않습니다. 실제로 무엇이 바뀌었고, 그 변화가 시스템에서 어떤 비용 구조를 만드는지를 함께 봅니다. 그런 눈으로 보면 이 인터페이스는 꽤 영리합니다. 모든 요청에 비싼 검토를 붙이지 않고, 위험하면서도 근거가 있는 요청만 골라 비용을 쓰니까요. 반대로 근거가 약한 요청은 섣불리 차단하지 않고 유보할 수 있습니다. 막는 데 돈을 쓰는 게 아니라 묻는 데 돈을 쓰는 셈이죠.
그렇다면 검토 단계에서는 실제로 무슨 일이 벌어질까요. 그 이야기는 다음 장면에서 이어집니다.
같은 모델에게 다시 검토를 맡기면 답은 어떻게 바뀌나
Same-victim response review는 이름 그대로 같은 모델이 자신의 후보 답을 다시 살피는 과정입니다. 받아들일 만하면 release하고, 그렇지 않으면 constrained alternatives를 만드는데, 이때 해로운 능력을 낮추는 쪽으로 답을 고쳐 씁니다.
표면적으로 보면 단순합니다. 실제로는 그렇지 않습니다. 같은 모델에게 다시 맡기면 자기합리화가 반복되지 않을까 걱정할 수 있기 때문입니다. 그런데 논문의 설정에서는 검토 단계에 앞에서 구한 증거가 함께 들어갑니다. 그냥 다시 생각해봐가 아니라, 이웃과 방향이라는 구체적인 대조군을 들고 다시 보라는 것이죠. 그래서 검토는 막연한 반성이 아니라 근거 대조에 가깝습니다.
저는 이 숫자보다 그 뒤의 구조가 더 중요하다고 봅니다. 거부가 아니라 수정이라는 선택지가 있다는 점이 운영에서는 크게 다르거든요. 사용자 입장에서는 무조건 거절당하는 것과, 안전한 선에서 가능한 답을 받는 것의 체감 차이가 큽니다. 물론 이 대안이 정말로 해로운 능력을 낮추는지, 아니면 표현만 순화한 것인지는 따로 봐야 합니다. 논문은 후자가 아니라 전자라고 말하지만, 이 부분은 앞으로 더 까다로운 평가가 필요할 것 같습니다. 표현만 바꾸고 능력은 그대로 두는 우회 답변이 나올 여지가 완전히 사라진 것은 아니니까요.
그래도 방향은 분명합니다. 안전을 문지기가 아니라 편집자로 두는 것이죠. 막을지 말지를 고르는 게 아니라, 어떻게 답하면 위험을 낮출 수 있는지를 묻는 겁니다.

숫자는 얼마나 믿을 만하고 어디서 조심해야 할까
이제 숫자를 볼 차례입니다. 논문에 따르면 세 가지 VLM과 다섯 가지 multimodal jailbreak 계열에 걸쳐 CNRF는 86.06퍼센트에서 89.30퍼센트 사이의 macro defense success rate를 기록하면서도 benign-task utility를 상당 부분 유지했습니다. 방어율 하나만 올린 게 아니라, 방어율과 유용성을 함께 잡았다는 쪽에 무게가 실려 있습니다. 두 숫자가 함께 움직였다는 점이 중요합니다. 방어는 올랐는데 정상 작업이 무너지면 운영에서는 쓸 수 없으니까요.
그렇다면 이 흐름은 어디까지 믿을 수 있을까요. 여기서부터는 해석에 주의가 필요합니다. 세 모델과 다섯 계열이라는 범위는 분명 의미가 있지만, 모든 VLM과 모든 탈옥을 대표하지는 않습니다. 특히 이미지와 텍스트가 결합되는 새로운 탈옥 형식은 계속 바뀌는데, 그때마다 문맥에 맞는 반사실 쌍을 얼마나 빨리 구성할 수 있는지가 관건이 됩니다. 쌍을 만드는 비용과 속도가 방어의 병목이 될 수 있다는 뜻이죠.
저에게 특히 남았던 대목은, 낮은 오탐 영역에서의 개선이 따로 보고됐다는 것입니다. 전체 평균만 올리는 연구는 많지만, 정상 요청을 막지 않는 구간에서의 순위 개선을 따로 떼어 보여주는 경우는 드물기 때문입니다. 운영자 입장에서는 바로 이 구간이 돈과 직결됩니다. 오탐 하나가 쌓이면 신뢰가 무너지고, 신뢰가 무너지면 필터를 끄고 싶어지니까요. 다만 이 개선이 실제 트래픽 분포에서도 그대로 재현될지는 아직 질문으로 남습니다. 평가에 쓰인 분포와 밤사이 들어오는 실제 분포는 종종 다르거든요.

그래서 앞으로 무엇을 지켜보면 좋을까
묻는 방향이 달라졌습니다. 무엇이 유해한가에서 언제 그 판단을 믿을 수 있는가로 말이죠. 저는 이 전환이 CNRF가 남긴 가장 큰 메시지라고 봅니다. 유해함의 경계를 더 정교하게 긋는 대신, 적용 가능한 증거가 있을 때만 골라서 개입하자는 제안이기 때문입니다.
실제 시스템 관점에서 보면 다음 질문이 바로 생깁니다. 이웃을 정의하는 기준을 누가 정할까요. 표현 공간에서의 가까움이 곧 의미적 가까움은 아닌데, 이웃 탐색이 잘못되면 지원도 점수 자체가 흔들립니다. 이미지 스타일이 살짝 바뀌었을 뿐인데 이웃이 비어버리면, 근거 없음으로 유보할 요청이 쌓이면서 검토 큐가 밀릴 수 있죠. 반대로 이웃이 너무 넓으면 문맥 대응이 흐려지고, 앞에서 본 방향의 이점이 사라집니다. 이웃을 얼마나 촘촘히, 얼마나 넓게 잡을지가 관건이라는 뜻입니다.
제가 앞으로 보고 싶은 것은 세 가지입니다. 먼저 새로운 문맥이 들어왔을 때 반사실 쌍을 얼마나 빨리, 얼마나 싸게 만들 수 있는지입니다. 다음으로 같은 모델 검토가 정말로 능력을 낮추는지, 아니면 말투만 바꾸는지를 가르는 더 엄격한 평가입니다. 마지막으로 지원도가 낮은 요청들을 어떻게 처리할지에 대한 운영 원칙입니다. 전부 막을 수도 없고 전부 풀어줄 수도 없는 그 회색 지대를 어떻게 운전할지가 결국 관건이니까요.
이제 남은 질문은 사람이 어디에 서 있을지입니다. 저는 당분간 사람의 몫이 줄기보다 바뀔 것이라고 봅니다. 일일이 차단 여부를 정하는 대신, 어떤 이웃을 믿을지, 어떤 방향을 유효하다고 볼지, 어떤 회색 요청을 먼저 볼지를 정하는 일이 남습니다. 점수를 만드는 일이 아니라 점수의 조건을 다듬는 일이죠. 이 논문이 흥미로운 이유는 그 조건을 수치와 구조로 꺼내 보였다는 데 있습니다. 막는 기술이 아니라 묻는 기술을 제안했다는 점에서, 앞으로의 안전 연구가 어디로 갈지를 가늠하게 합니다.
