제한된 자기 개선 설계(Bounded Self-Improvement Designs)
연구는 자기 개선 루프를 제한하는 네 가지 원시 요소(primitive)로 수렴해 왔습니다. 모든 수정(edit)에서 유지되어야 하는 형식적 불변조건(formal invariant), 수정될 수 없는 정렬 앵커(alignment anchor), 성능만이 아니라 안전성·공정성·강건성 같은 모든 차원이 유지되어야 하는 다목적 제약(multi-objective constraint), 그리고 과거 지표가 능력 손실을 시사할 때 루프를 멈추는 회귀 감지(regression detection)가 그것입니다. 이 중 어느 것도 안전성에 대한 증명은 아닙니다. 정보이론적 결과(Kolmogorov complexity, Löb's theorem)는 어떤 시스템이 자기 후속 시스템에 대해 증명할 수 있는 것의 한계를 정합니다. 이 요소들은 조용한 실패(silent failure)의 비용을 높이는 완화책입니다.
유형: Learn
언어: Python(stdlib, 불변조건 검사를 포함한 제한된 루프)
선수 지식: Phase 15 · 07(RSI), Phase 15 · 04(DGM)
예상 시간: 약 60분
문제
Lesson 7의 경주 시뮬레이터는 작은 비율 차이가 복리로 커져 큰 격차가 된다는 점을 보여주었습니다. Lesson 4의 DGM 사례 연구는 루프가 자기 평가자를 적극적으로 속일 수 있음을 보여주었습니다. 두 결과는 같은 엔지니어링 질문으로 이어집니다. 자기 개선 루프에 어떤 제약을 걸어야, 루프가 그 제약을 조용히 약화시킬 수 없을까요?
ICLR 2026 RSI Workshop 요약(openreview.net/pdf?id=OsPQ6zTQXV)은 이런 원시 요소 네 가지를 식별합니다. Anthropic의 RSP v3.0(Lesson 19)과 DeepMind의 FSF v3(Lesson 20)도 둘 다 능력 임계값에서 이를 언급합니다. Meta HyperAgents 작업과 SAHOO(2026년 3월) 같은 커뮤니티 프레임워크는 일부 하위 집합을 운영 환경(production)에서 구현합니다.
솔직하게 말하면 이렇습니다. 이들은 완화책입니다. 정보이론적 결과는 어떤 시스템이 자기 후속 시스템에 대해 증명할 수 있는 것을 제한하며, 현재 어떤 설계도 문제를 형식적으로 닫지 못했습니다. 잘 제한된 루프는 제한 없는 루프보다 더 안전하지만, 절대적 의미에서 안전한 것은 아닙니다.
개념
원시 요소 1: 형식적 불변조건
불변조건(invariant)은 모든 자기 수정 전후에 반드시 성립해야 하는 속성입니다. 예시는 다음과 같습니다.
- 출력 분포가 고정된 헌법 헤더(constitution header)에 의해 조건화됩니다(Lesson 17).
- 어떤 도구 호출도 허가되지 않은 엔드포인트(endpoint)로 가지 않습니다.
- 메모리 쓰기는 로그가 남고 서명된 경로를 거칩니다.
- 평가자 모듈 해시(module hash)가 승인된 버전과 일치합니다.
불변조건은 루프가 수정할 수 없는 외부 코드에 의해 검사됩니다. 제안된 수정이 불변조건을 위반하면 거절됩니다. 이는 Lesson 4의 DGM 스타일 평가자 변조(evaluator tampering) 모드를 잡아냅니다.
어려운 부분은 안전에 필요하면서도 합리적인 시간 안에 계산 가능한 불변조건을 고르는 것입니다. 과도하게 명세하면 진전이 멈추고, 너무 느슨하게 명세하면 루프가 중요한 속성을 지나쳐 버립니다.
원시 요소 2: 정렬 앵커
정렬 앵커(alignment anchor)는 루프의 핵심 목표를 나타내는 불변 표현이며, 루프의 수정 표면(edit surface) 밖에 고정되어 있습니다. 예시는 다음과 같습니다.
- 모든 호출 때 읽기 전용 위치에서 로드되는 헌법 텍스트(constitutional text)(Lesson 17).
- 독립적인 접근 제어를 가진 별도 저장소의 평가자(evaluator).
- 사람이 서명하고 매 주기 다시 검증하는 도구 권한 매니페스트(tool-permission manifest).
앵커의 역할은 목표 드리프트(objective drift)를 막는 것입니다. 루프는 목표를 추구하는 방식을 개선할 수 있지만, 목표 자체가 무엇인지는 수정할 수 없습니다.
미묘한 실패 모드가 있습니다. 루프가 수정할 수 없는 앵커라도, 루프가 앵커를 읽는 방식이 드리프트하면 재해석될 수 있습니다. Constitutional AI(Lesson 17)는 새로운 상황을 다루기 위해 명시적으로 이유 기반(reason-based) 구조를 취합니다. 바로 그 추론 계층(reasoning layer)에 해석 드리프트가 존재합니다. 앵커는 필요하지만 충분하지 않습니다.
원시 요소 3: 다목적 제약
단일 스칼라 점수를 최적화하는 루프는 지름길을 찾아냅니다. 여러 강한 제약을 동시에 만족해야 하는 루프에는 가능한 지름길이 더 적습니다. 대표적인 축은 다음과 같습니다.
- 성능(작업 수준 벤치마크)
- 안전성(레드팀(red-team) 평가, 알려진 악성 입력에 대한 거절률)
- 공정성(민감한 하위 집단에 대한 차별 영향 한계)
- 강건성(분포 외(Out-of-Distribution; OOD) 테스트 세트, 적대적 입력 처리)
수정은 모든 제약이 성립할 때만 받아들여집니다. Lesson 13의 비용 거버너(cost governor)는 여기에 재정적 제약을 쌓아 올립니다. Lesson 18의 Llama Guard는 안전성 축으로 연결됩니다.
원시 요소 4: 회귀 감지
각 주기의 점수는 과거 분포와 비교됩니다. 설정된 허용오차(tolerance)를 넘는 하락이 있으면 루프를 멈춥니다. 이는 루프가 "개선을 지나쳐 버리며" 실행 평균 안에 흡수할 수 있는 조용한 능력 손실을 잡아냅니다.
실용적 구현은 이렇습니다. 최근 N개 주기의 작업별 점수를 저장합니다. 새 주기마다 작업별 변화량(delta)을 계산합니다. 어떤 변화량이라도 임계값 아래로 떨어지면 해당 주기를 거절하고 사람이 검토합니다.
정보이론적 한계
Kolmogorov complexity와 Löb's theorem은 시스템이 자기 자신에 대해 증명할 수 있는 것의 상한을 설정합니다. Schmidhuber의 형식적 Gödel Machine(Lesson 4)은 그런 상한 중 가장 높은 곳을 겨냥했습니다. 하지만 누구도 사소하지 않은 증명을 완성하지 못했습니다. Löb의 결과는 이렇게 말합니다. 어떤 시스템이 "내가 X를 해야 한다고 증명하면 X를 하겠다"고 증명 가능하게 믿는다면, 그 시스템은 X를 해야 한다고 증명하지 않고도 X를 하게 됩니다. 이는 잘 알려진 자기참조 실패입니다.
우리의 원시 요소에 대한 함의는 명확합니다. 이 요소들은 안전 문제를 닫지 못합니다. 대신 조용한 실패를 더 비싸게 만듭니다. 악의적이거나 드리프트한 루프가 빠진 검사를 조용히 우회하려면, 이제 명시적인 검사를 적극적으로 약화시켜야 합니다. 이는 더 잘 감지되는 흔적(signature)을 남기는 행동입니다.
작동 예시
에이전트가 수정을 제안한다고 가정해봅시다. 게이트 스택(gating stack)은 다음과 같습니다.
- 불변조건 검사: 모듈 해시, 도구 권한 매니페스트, 헌법 헤더.
- 앵커 검사: 목표 진술이 승인된 버전과 일치하는지 확인합니다. 바이트 단위 또는 의미 단위로 검사할 수 있습니다.
- 다목적 평가: 성능, 안전성, 공정성, 강건성 축.
- 회귀 감지: 어떤 축도 허용오차보다 더 많이 하락하지 않아야 합니다.
수정이 반영되려면 네 가지가 모두 통과해야 합니다. 하나라도 실패하면 루프를 멈춥니다.
사용해보기
code/main.py는 Lesson 4의 DGM 스타일 장난감 문제 위에서 제한된 자기 개선 루프를 실행하되, 그 위에 네 가지 원시 요소를 계층으로 얹습니다. 각 원시 요소는 개별적으로 켜거나 끌 수 있습니다. 이 데모는 각 원시 요소가 특정 실패 유형을 잡아내며, 하나라도 제거하면 그 실패 유형이 통과된다는 점을 보여줍니다.
산출물 만들기
outputs/skill-bounded-loop-review.md는 제안된 제한 루프를 감사하고, 네 가지 원시 요소 중 실제로 구현한 것과 단지 주장만 하는 것을 점수화합니다.
연습문제
-
모든 원시 요소를 켠 상태로 code/main.py를 실행하세요. 해킹이 이기도록 허용하지 않으면서도 루프가 여전히 주요 지표에서 개선되는지 확인하세요.
-
회귀 감지를 끄세요. 이로 인해 조용한 능력 손실이 받아들여지는 입력을 구성하세요.
-
다목적 제약을 끄세요. 루프가 성능 축에는 수렴하지만 안전성 축은 떨어지는 모습을 보여주세요.
-
코딩 에이전트를 위한 정렬 앵커를 설계하세요. 어떤 텍스트를, 어디에 저장하고, 어떻게 검사하겠습니까?
-
ICLR 2026 RSI Workshop 요약을 읽으세요. 네 가지 원시 요소 중 하나를 골라 현재 최첨단(state of the art)을 개선할 구체적 방법을 제안하세요.
핵심 용어
| 용어 | 흔한 설명 | 실제 의미 |
|---|
| 불변조건(Invariant) | "항상 참인 속성" | 모든 수정 전후에 외부 코드가 검사하는 속성 |
| 정렬 앵커(Alignment anchor) | "고정된 목표" | 루프의 수정 표면 밖에 있는 불변 핵심 목표 표현 |
| 다목적 제약(Multi-objective constraint) | "모든 축이 유지되어야 한다" | 성능, 안전성, 공정성, 강건성이 모두 필요함 |
| 회귀 감지(Regression detection) | "하락하면 멈춘다" | 과거 지표 변화량이 능력 손실을 시사할 때 루프를 멈춤 |
| 콜모고로프 경계(Kolmogorov bound) | "정보이론적 한계" | 시스템이 자기 후속 시스템에 대해 증명할 수 있는 것을 제한함 |
| 뢰브의 정리(Löb's theorem) | "자기참조 함정" | 시스템이 해야 한다고 증명하지 않고도 "해야 한다"에 따라 행동할 수 있음 |
| 게이트 스택(Gate stack) | "계층화된 검사" | 여러 원시 요소를 조합하며, 하나라도 실패하면 수정을 거절함 |
| 제한된 개선(Bounded improvement) | "증명이 아니라 완화책" | 조용한 실패의 비용을 높이지만 안전 문제를 닫지는 않음 |
더 읽을거리