# 실패 메모가 모델 선택에 주는 영향 2026-10-10. 앞선 [조건 피드백 관측](https://github.com/kimjooyoon/meta-ontology-go/tree/a63be8ed36bdfe38b640ccfce9114db4514453ee/docs/research/condition-feedback-20261010)의 실제 입력 여섯 개를 고정하고 조건 메모만 바꿔 점수를 확인했습니다. SDK 소스는 `302fa1c032ce8f31b2e6f330fb632b4f2c9a620a`입니다. 기존 2,759바이트 삼진 가중치를 그대로 읽었으며 로컬 판단은 총24회, 외부 호출은0회입니다. 새 학습이나 프로그램 실행은 하지 않았습니다. ## 실제로 비교한 것 각 입력에 아래 네 변형을 한 번씩 적용했습니다. 실행 전에 `protocol.txt`에 정했습니다. | 입력 변형 | 원래 입력과 선택이 달라진 수 | 8개 원시 확률 중 최대 변화 | | --- | ---: | ---: | | 원본 그대로 | 0/6 | 0 | | 조건 메모 삭제 | 2/6 | 0.749491 | | 조건 메모를 같은 바이트 수의 공백으로 대체 | 0/6 | 0.278246 | | 기대 참·관측 거짓을 기대 거짓·관측 참으로 교환 | 0/6 | 0.006314 | 마지막 행은 가상 입력입니다. 실제 관측이나 Gooo 소스의 기대값으로 쓰지 않았습니다. 여섯 원본 모두 저장해 둔 8개 확률이 정확히 재현됐습니다. 다른 변형에서도 소스 특징, 한글·영문 의도, 기존 출력 실패 정보와 선택 이름은 유지했습니다. 특히 `comparison` 선택의 forward 확률은 다음과 같았습니다. 이 확률은 가능한 forward/reverse 두 점수를 다시 정규화한 값이며 기능 정답률을 뜻하지 않습니다. | 조건 메모 | 첫 재판단 | 둘째 재판단 | | --- | ---: | ---: | | 원본 | 0.901361 | 0.856459 | | 삭제 | 0.088823 | 0.224067 | | 같은 길이 공백 | 0.645132 | 0.677065 | | 참·거짓 교환 | 0.906443 | 0.863214 | ## 이 결과로 알게 된 것 조건 메모가 점수에 영향을 줍니다. 그런데 참·거짓을 바꿔도 같은 방향을 고르므로, 이 여섯 입력만으로 조건의 의미를 안정적으로 구분한다고 판단할 수 없습니다. 세 선택 중 반례가 직접 가리키는 선택은 `comparison`입니다. 나머지 선택에도 같은 메모를 붙였으므로 모든 선택이 뒤집혀야 정답인 실험도 아닙니다. 현재 `semantic_context_intent_v3`는 의도와 뒤에 붙인 메모를 하나의 문자열로 보고, 2·3바이트 조각을 상대 위치 네 구간에 나눠 셉니다. [구현](https://github.com/kimjooyoon/gooo-decision-runtime/blob/302fa1c032ce8f31b2e6f330fb632b4f2c9a620a/semantic_features.go). 메모를 삭제하면 내용과 길이가 동시에 바뀌어 원래 의도의 구간 배치도 바뀝니다. 공백 대체는 위치를 유지하지만 문자 조각과 정규화 값은 달라집니다. 따라서 어느 한 효과만 분리한 인과 설명은 아직 할 수 없습니다. 앞선 후보5→3개 관측은 그대로 남습니다. 이번 점수 비교로 새 프로그램의 후보 수, 정확도, 실행 시간이나 메모리 개선을 추정하지 않습니다. 별도 CPU·RAM 측정도 없습니다. ## 자체 결정 모델의 다음 기준 의도, 소스 구조, 관측된 실패를 각각 읽는 작은 입력 구조를 검토합니다. 관측에는 선택 ID, 실제 도달 여부, 정확한 정수 입력, 기대·관측 Boolean과 후보가 어떤 선택을 했는지가 필요합니다. 실패 메모의 문장 길이가 의도의 위치를 옮기지 않게 하는 것이 목표입니다. 새 입력 형식에는 별도 버전과 새 학습이 필요합니다. 학습 정답은 Gooo가 확인한 후보 집합으로 만듭니다. 출력과 중간 조건을 함께 만족하는 경로가 여러 개면 모두 남깁니다. 평가에서는 같은 코드의 문장 바꾸기와 새로운 코드 구조를 나누고, 반대 조건 쌍·미실행 분기·한글/영문·긴 의도를 각각 집계합니다. 후보 평가 횟수와 모델 호출 횟수도 함께 비교합니다. 이 항목들은 후속 개발 기준이며 이번 실험에서 새 모델을 구현하거나 학습한 것은 아닙니다. ## 원본과 재집계 `original/`에는 실험 프로토콜, 실제24개 점수, probe 소스와 빌드 정보, SDK 소스 번호, 완료 표식, 앞선 원본 피드백, 모델 메타데이터와 가중치가 있습니다. gzip은 시간을 저장하지 않으며, 압축 해제 후 원본과 바이트 단위로 비교했습니다. `build.json`의 의존성 표시는 `(devel)`입니다. SDK의 깨끗한 로컬 체크아웃에서 빌드했고 실제 소스 번호는 `sdk-source.txt`로 별도 기록했습니다. 위키 저장소에서 이 폴더로 이동한 뒤: ```sh shasum -a 256 -c SHA256SUMS GOWORK=off GOTOOLCHAIN=go1.27.2 go run recount.go original > /tmp/condition-ablation-recount.json cmp recount.json /tmp/condition-ablation-recount.json ``` 재집계는 새 추론 없이 입력 변형, 해시, 원래 점수, 확률 합, 선택,24행의 완전성을 확인합니다. 정수 입력은 문자열 그대로 검증해 `-9007199254740995`를 보존합니다. 원본 JSON에 기록된 확률 자체가 올바른 모델 계산이었다는 근거는 당시 probe의 실제 실행과 원본 점수의 일치이며, 재집계만으로 모델 계산을 새로 검증하지는 않습니다.