
알 수 없는 미지의 영역에 대비할 수는 없다. 되돌아올 수 있게 만드는 것은 가능하다
요약
기호 추론 에이전트 Thinking Stone(TS)이 '알 수 없는 미지(Unknown Unknowns)'의 위험에 대응하는 실험 결과를 다룹니다. 지식 기반의 조사나 확률적 접근 대신, 가역적인 행동만을 취하는 구조적 규칙이 에이전트의 안전성을 보장하는 데 가장 효과적임을 입증했습니다.
핵심 포인트
- 확률 모델은 분모를 알 수 없는 미지의 영역에서 오차가 급격히 증가함
- 검증기(Verifier)는 지각 정보 내의 논리적 건전성은 보장하나 세계의 실제 상태는 보장 못 함
- 미지의 위험에 대비하는 가장 강력한 방법은 '가역적 행동'을 강제하는 구조적 규칙임
- 에이전트 설계 시 예외를 열거하기보다 원리 중심의 구조적 설계를 지향해야 함
요약
쌓기 나무 세계에서 움직이는 기호 추론 에이전트(Thinking Stone, 이하 TS)에 '본 적 없는 위험'에 대한 대처를 구현했다. 결과는 다음과 같다.
| 핵심 (에이전트의 방침) | 파탄 | 파괴한 개수 |
|---|---|---|
| 지식으로 대비한다 (조사한 뒤 움직인다) | 27수 | 9개 |
| 구조로 대비한다 (가역적인 행동만 취한다) | 파탄 없음 | 0개 |
그리고 결정적이었던 것은 '가역성을 연역할 수 있게 만드는 것'만으로는 효과가 없었다는 점이다. 효과가 있었던 것은 단 한 줄의 보수적인 규칙이었다.
코드와 테스트(452건)는 공개되어 있다: thinking-stone
배경: TS란 무엇인가
TS는 쌓기 나무, 상자, 중력, 마찰력만 존재하는 최소 세계(microworld) 안에서 움직이는 기호 추론 에이전트이다. 개발은 다음과 같은 방침으로 진행해 왔다.
건전성(Soundness)은 학습이 아니라 구조로 보장한다. 제안은 누가(혹은 무엇이) 해도 좋다. 제안이 아무리 빗나가거나 환각(Hallucination) 같더라도 상관없다. 검증기(Verifier)가 규칙과 독립적으로 재계산하여, 통과하지 못하는 것은 채택하지 않는다.
예외를 열거하지 않는다. 원리를 판다. "새는 난다, 단 펭귄은 제외한다"가 아니라, 날 수 있는 조건을 역학적으로 도출한다. 원리는 아직 보지 못한 현상을 올바르게 예언한다.
보장할 수 없는 것을 만나면, 보장을 버리지 않고 보장할 수 있는 한 단계 위로 물러난다. "이것은 참이다"를 보장할 수 없게 되면 "이 확률은 올바르게 계산되었다"로. "이 가치는 옳다"를 보장할 수 없게 되면 "이 가치는 항상성(Homeostasis)으로부터 올바르게 도출되었다"로.
이 방침 아래, TS는 소박한 물리 → 마음 이론(Theory of Mind) → 확률 → 생리(항상성) → 사회(타자의 내부 상태 추론, 공감)로 22단계를 거쳐 쌓아 올려졌다. 본고는 그 최종 단계인 "알 수 없는 미지(Unknown Unknowns)"에 대한 대처를 다룬다.
문제: 폐쇄 세계 가설(Closed World Assumption)이 깨지면 어떤 일이 일어나는가
TS는 지금까지 폐쇄 세계 가설("집합에 포함되지 않는 사실은 거짓이다") 위에서 움직여 왔다. "상자 위에 물건이 없다"를 "물건이 없음을 나타내는 사실이 있다"가 아니라, "물건이 있다는 사실이 없다"로부터 결론짓는다. 이는 구현으로서 자연스럽지만, 전제 조건이 하나 있다——탐색이 모두 이루어져 있어야 한다는 것이다.
이를 무너뜨리는 실험을 했다. TS의 시야를 "보이는 범위"와 "보이지 않는 범위"로 나누고, 보이지 않는 장소에도 물건이 존재할 수 있도록 했다.
처음에 판명된 것은 이것이었다.
건전성은 검증기 측에서는 깨지지 않는다. 세계 측에서 깨진다.
상자 안을 들여다보지 않고 "이 행동에 부작용은 없는가"를 물으면, TS는 "없다"라고 올바르게 연역한다. 보이지 않는 보석은 TS가 가진 사실의 집합에는 존재하지 않기 때문이다. 그리고, 이 잘못된 증명은 검증기를 통과한다. 검증기 또한 동일한 지각 정보로부터 재계산하고 있을 뿐이기에, 통과시켜 버리는 것은 당연하다.
구조적 건전성은 이 시점에서 무손상인 채로, TS는 상자를 기울여 안의 보석을 깨뜨린다.
알 수 없는 미지에 대해 확률도 무력했다. TS는 찬장에 6개의 칸이 있다는 것을 알고 있지만, 실제로는 8개가 있다. 알고 있는 6개를 전부 조사하여 "지날 수 있는 확률은 1.000"이라고 말했고, 실제로 지나갈 수 있었던 것은 0.768이었다. 교정 오차는 0.232였다(폐쇄 세계 안에서 확률을 다루었을 때의 오차는 0.002였다). 확률은 모르는 것에 대한 확률을 계산할 수 없다. 분모를 셀 수 없기 때문이다.
세 가지 퇴로를 시도하다
지금까지의 방침——"보장할 수 없는 것을 만나면 한 단계 위로 물러난다"——에 따라 세 가지를 시도했다.
1. "조사한 범위가 아니다"로 물러난다. 범위를 명시하여 주장하면 검증 가능하며, 날조할 수도 없다. 하지만 전부 조사한 뒤에 움직이려고 하면 굶주리게 된다. 실제로 이 방침의 핵심은 27수 만에 파탄 났고, 도중에 9개의 물건을 깨뜨렸다.
2. 확률로 물러난다. 앞서 언급했듯이, 알 수 없는 미지에는 닿지 못한다.
3. 항상성으로 물러난다. TS에게 "이 이상 기다리면 굶주린다"라는 내부 상태를 갖게 하여, 불완전한 지식인 채로 움직이게 한다. 이는 파탄은 나지 않지만, 알 수 없는 위험에 대한 대비는 되지 않는다. 그저 받아들이고 있을 뿐이다.
여기서 TS 스스로가 구현 도중에 다음과 같은 성질에 도달했다.
"조사하는" 것 자체에는 가치가 없다. 조사하는 것의 가치는 "되돌아올 수 있음" 안에만 있다.
가역성을 구현하다
이를 말 그대로 구현했다.
Reversible(A, S) ⟸ ∃B. apply(apply(S, A), B) = S
상태 S에서 행동 A를 취한 뒤, 어떤 행동 B로 원래 상태로 되돌릴 수 있다면, A
는 가역적(reversible)이다. 기존의 다단계 계획 엔진(multi-step planning engine)을 그대로 전용할 수 있었으며, 탐색 대상을 '목표에 도달하는 계획'에서 '원래 상태로 돌아가는 계획'으로 바꾸는 것만으로 충분했다. 검증기(verifier) 또한 동일한 프레임워크 내에서, 복귀 계획을 스스로 다시 적용하여 상태를 대조함으로써 날조(돌아올 수 없는데도 돌아올 수 있다고 주장하는 것 등)를 걸러낼 수 있다.
여기까지는 순조로웠다. 하지만 이것만으로는 아무것도 개선되지 않았다.
폐쇄 세계(closed world) 상태를 유지하며 가역성을 판정하는 핵(core)은, 가역성을 전혀 고려하지 않는 핵과 행동이 단 한 수(step)도 다르지 않았다.
| 핵 | 파괴율 |
|---|---|
| 폐쇄 세계 (보이지 않음 = 없음) | 0.501 |
| 가역성 (폐쇄 세계 상태로 판정) | 0.501 |
이유는 단순하다. "상자 안을 보지 않는 상태에서 상자를 기울이는" 행동에 대해, TS는 "뒤집고, 내용물을 다시 넣으면 원래대로 돌아온다"라는 복귀 계획을 지각(perception)에 기반하여 올바르게 구성해 버린다. 보이는 범위 내에서는 그 계획은 완벽하게 옳다. 그리고 안의 꽃병은 깨진다.
가역성 판정 그 자체가 폐쇄 세계 가설(closed world assumption)에 의존하고 있었다. 앞 단계의 교훈이 그대로 반복된 형태가 되었다.
효과를 본 것은, 한 줄의 보수성(conservatism)이었다
수정은 다음의 한 줄이다.
내용물을 보지 못한 용기에 접촉하는 행동은 가역으로 간주하지 않는다.
이것만으로 결과는 바뀌었다.
| 핵 | 파괴율 |
|---|---|
| 폐쇄 세계 (보이지 않음 = 없음) | 0.501 |
| 가역성 (폐쇄 세계 상태로 판정) | 0.501 |
| 물러나는 안전성 (TS) | 0.000 |
게다가, 움직이지 못하게 된 것도 아니다 (선택할 수 있었던 비율은 1.000 그대로 유지). 새로운 지식은 하나도 늘어나지 않았다. 내용물이 무엇인지 추정하는 능력도, 확률을 산출하는 능력도 추가하지 않았다. 바꾼 것은 판단의 구조뿐이다.
지식으로 대비하기 vs 구조로 대비하기
동일한 프레임워크에서, 찬장에 8개의 칸(그중 TS가 알고 있는 것은 6개)을 가진 환경을 준비하고 두 가지 방침을 정면으로 비교했다.
| 핵 | 평균 불쾌도 | 파탄 | 얻은 것 | 파괴한 것 |
|---|---|---|---|---|
| 폐쇄 세계 (무관심) | 0.425 | 5수 | 366 | 234 |
| ... |
"지식으로 대비하는" 핵은, 알고 있는 6개의 칸을 아무리 정성껏 조사해도 모르는 2개에는 손이 닿지 않는다. 미지의 미지(unknown unknowns)는 지식으로는 해결할 수 없는 구조적인 문제이다. "구조로 대비하는" 핵은 내용물이 무엇인지에 전혀 관심을 두지 않고, 오직 "되돌아갈 수 있는가"만을 본다. 그렇기에 모르는 칸이 늘어나도 성능이 떨어지지 않는다.
지식으로 대비하려면 알아야만 한다. 그리고 모르는 것은 알 방법이 없다. 구조로 대비하려면 알 필요가 없다.
한계
솔직하게 쓰겠다. 파괴율은 제로가 되지 않는다.
- 가역성 판정 자체가 폐쇄 세계에 의존한다. 보수적인 규칙은 이를 회피하고 있는 것이지, 해결한 것이 아니다. TS는 "가역적이지 않을지도 모른다"라고는 말할 수 있지만, "가역적이지 않다"라고는 단정할 수 없다.
- 가역적인 행동은 느리다. 안전은 공짜가 아니다. 실제로 기아(starvation)에 가까운 내부 상태일 때, TS는 되돌아올 수 없는 도박을 걸어 단 한 번 물건을 깨뜨렸다. 항상 "절대적으로 안전한" 것만을 선택하는 핵은, 반대로 굶주려 파탄 난다. 이 부분은 항상성(homeostasis)이 조율하는 영역으로, 충족되어 있으면 신중하게, 절박하면 리스크를 감수하는 행동이 (명시적으로 프로그래밍하지 않았음에도) 나타났다.
- 안전한 경로가 존재하지 않는 상황에서는 가역성이 무력해진다. 그 경우, 선택할 수 있는 행동 자체가 제로가 된다.
요약하자면:
미지의 미지에 대비할 수는 없다. 되돌아올 수 있게 만드는 것은 가능하다.
이 결과가 시사하는 점
이는 AI 안전성 문맥에서 이야기되는 impact regularization이나 attainable utility preservation, side-effect penalty와 유사한 발상이며, 아주 새로운 주장까지는 아닐지도 모른다. 이 실험이 더하는 것은 다음의 한 점이라고 생각한다.
"가역성을 계산에 넣는" 것만으로는, 폐쇄 세계의 전제하에 판정하는 한 기능하지 않는다. 보이는 범위 내에서의 가역성의 정확함은 보장할 수 있어도, 그것이 "행동이 정말로 안전하다"는 보증은 되지 않는다. 효과를 본 것은 가역성의 정밀한 계산이 아니라, "보이지 않는 부분에 접촉하는 행동은 가역으로 간주하지 않는다"라는 단순하고 보수적인 한 줄이었다.
복잡한 보상 모델(reward model)이나 정밀한 리스크 추정보다 앞서, "모르는 것에 접촉하는 행동을 기본적으로 의심한다"라는 한 줄이 실측 기반으로 효과를 가진다는 점은, 구현 비용의 저렴함을 포함하여 보고할 가치가 있다고 생각한다.
재현 방법
git clone https://github.com/aikun2-h/thinking-stone
cd thinking-stone
pip install -r requirements.txt
...
LLM의 API는 프로젝트 전체에서 2번만 호출했다 (별개의 이야기로, 본고와는 다른 테마임). 본고에서 다룬 실험은 모두 기호 추론 (Symbolic Reasoning)만으로 완결되었으며, 외부 통신은 발생하지 않는다.
설계 시의 의사결정(왜 이 한 줄에 도달했는지, 그 외에 어떤 안을 버렸는지)은 리포지토리(Repository) 내의 설계 문서에 일본어로 기록해 두었다.
덧붙여, 본고에서 다룬 "가역성 (Reversibility)이 통하지 않고, 한 줄의 유지보수성 (Maintainability)이 통했다"라는 현상은 단발적인 고안이 아니라, 이 프로젝트를 통해 3번 독립적으로 나타난 동일한 패턴(확률·가치·안전성 각각에서 "보증을 버리지 않고 한 단계 뒤로 물러남")의 한 사례이기도 하다. 그 횡단적인 이야기는 별도의 기사로 정리해 두었다.
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기