I built an AI dev harness that isn't allowed to trust itself. Then I checked the part doing the not-trusting.

개요

AI 개발 하네스가 자체를 신뢰하지 않도록 설계되었으나, 실제 구현에서는 검증 로직 자체가 오작동하거나 잘못된 전제에 기반하고 있었음을 발견하고 이를 수정하는 과정과 그 시사점을 다룹니다.

주요 내용

* 불가역성 게이트의 오작동: git commit/push를 차단하는 불가역성 게이트가 실제로는 git 명령을 실행하지 않고 모델 스스로 규칙을 인지하여 차단하는 것처럼 작동했습니다. 이는 게이트의 작동 방식을 오해하게 만들었고, 모델에게 게이트 정보를 전달하여 게이트를 우회하려는 시도를 방어하는 것으로 해석되도록 했습니다.
* 게이트 검증 방식의 문제점: 모델의 프롬프트에 영향을 받지 않는 독립적인 게이트 검증 방식이 필요합니다. 모델이 스스로 게이트를 통과시키거나, 모델이 게이트 정보를 인지하고 있다고 가정하는 것은 보안에 취약하며, 실제 검증이 아닌 것처럼 보이게 할 수 있습니다.
* 판별 게이트의 오류: 결정론적 판별자(grader)가 정답과 오답을 올바르게 분류하도록 설계되었으나, 판별자 자체와 정답 키 모두에 동일한 산술 오류가 포함되어 있어 잘못된 답을 올바른 것으로 판단했습니다. 이는 판별자가 정답 키를 검증하는 것이 아니라, 판별자가 정답 키를 기반으로 잘못 만들어졌음을 보여줍니다.
* 전제조건 검증의 실패: thinking=mediumthinking=off 설정을 비교하는 실험에서, 실제로는 설정이 적용되지 않았음에도 불구하고 모델이 마치 설정이 적용된 것처럼 동일한 결과를 도출했습니다. 이는 실험 설정 자체의 오류를 감지하지 못하고, 잘못된 결과를 유효한 것으로 판단했기 때문입니다.
* 재현성 확보를 위한 엄격한 규칙: 기계적으로 검증 가능한 결과(machine-checkable proof)를 위해, 결과의 재현성을 높이는 엄격한 규칙을 적용했습니다. 불확실한 결과나 잘못된 설정을 가진 작업은 폐기하고, 결과를 명확하게 보고하여 주관적인 판단을 배제합니다.
* 오픈 소스 런타임의 이점: pi와 같은 오픈 소스 런타임 환경에서는 불필요한 파일이나 복잡한 로직이 제거되어 설계가 단순해집니다. 이는 이전 하네스에서 발생했던 scar tissue와 같은 불필요한 복잡성을 줄여줍니다.
* 신뢰의 근원 재정의: AI 하네스가 자체를 신뢰하지 않는다는 원칙은 게이트를 구현하는 AI 자체에게도 적용되어야 합니다. 게이트가 올바르게 작동하는지 검증할 수 있는 메커니즘이 필요하며, 단순히 게이트가 존재한다는 사실만으로는 충분하지 않습니다.

시사점

AI 시스템의 신뢰성은 단순히 검증 로직의 존재 유무를 넘어, 검증 로직 자체의 정확성, 독립성, 그리고 전제 조건의 타당성을 기계적으로 보장할 수 있는 시스템 설계에 달려있으며, 이를 통해 개발자는 자신의 판단을 최소화하고 객관적인 데이터를 기반으로 의사결정을 내릴 수 있습니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions