깨진 선택자를 새 버튼으로 바꿨는데 테스트가 통과했습니다. 버튼을 눌렀다는 사실과 올바른 업무를 수행했다는 사실은 다릅니다. Optics의 로컬 모델 복구 실험에서 눈여겨볼 부분은 성공률뿐 아니라 매 클릭 뒤의 assertion과 프레임워크 수정입니다.
개발자 저장소는 Pixel 4a의 Google Clock에서 114개 선택자 중 113개를 올바르게 복구했고 28개 테스트 중 27개가 통과했다고 보고합니다. 자체 실험이며 이 글에서 기기나 모델을 실행하지 않았습니다.
모델이 받는 것은 실패한 이름과 현재 화면이다
README의 The task는 화면 스크린샷과 요소 행을 입력하고 행 ID와 행동을 반환하는 구조를 보여줍니다. 옛 resource ID와 현재 버튼 문구가 다를 때 이름의 의도를 화면 요소에 연결해야 합니다. skip_notification_button과 Not now의 관계는 단순 문자열 일치보다 어렵습니다.
선택자 실패 → 현재 화면·요소 행·요소 의도 → 모델의 복구 후보
↓
실행 로그 보관 ← 다음 화면의 assertion ← 제한된 행동 실행
자체 해석 도식입니다. 모델에게 테스트의 기대 결과까지 다시 쓰게 하는 설계는 피해야 합니다. 복구 후보를 고르는 주체와 성공 기준을 정의하는 주체가 같아지면 잘못된 행동을 성공으로 포장할 수 있습니다.
Optics PR #705의 optics_framework/common/ai_self_heal.py에서 closest_rows는 resource ID에서 기존 단어를 뽑은 뒤 screen_snapshot.snake_words로 분해한 단어를 추가합니다. timerPreset1처럼 붙은 이름의 힌트가 바뀌는 구체적인 코드 경로입니다. 모델 가중치가 같아도 전달하는 후보 행이 달라질 수 있으므로 복구율은 전처리·프롬프트·모델·실행 루프를 합친 결과로 봐야 합니다. 해당 diff는 읽었지만 프로젝트 테스트를 실행하지는 않았습니다.
96개 앱 평가와 한 기기 실험은 다른 증거다
| 평가 | 조건 | 개발자 보고 결과 |
|---|---|---|
| 기록된 화면 | 96개 Android·iOS 앱, 1,314 tap 단계, 앱별 4-fold 교차 검증 | 텍스트 이름 95.5% → 98.6%, 목적 이름 77.9% → 84.9% |
| 실기기 | Pixel 4a, Google Clock, 테스트 2개, 선택자 파손 7종을 두 번 실행 | 선택자 113/114, 테스트 27/28 |
README는 실기기 평가 중 네 가지 Optics 버그를 수정했다고 설명합니다. 수정 전 테스트 통과는 14/28이었습니다. 이 전후 변화는 LoRA 단독 효과가 아닙니다. 화면 행의 힌트 처리, 이름 매칭, 요소 이름 전달, 완료 후 추가 클릭 문제가 함께 달라졌습니다.
109개는 한 단계, 5개는 두 단계로 복구됐고 두 단계 중 하나가 잘못됐다는 개발자 글도 복구 루프 종료 조건의 중요성을 보여줍니다. 114회의 시도가 독립적인 114개 앱을 뜻하지 않습니다.
자동 복구보다 먼저 실패를 보존한다
처음에는 shadow mode로 후보만 기록하고 실제 클릭은 하지 않는 편이 안전합니다. 클릭 허용 범위, 최대 재시도, 종료 조건을 고정하고 원래 실패를 로그에 남기세요. 결제·삭제·외부 전송은 별도 사람 확인 없이 복구 루프가 실행하지 못하도록 제한할 수 있습니다. 이는 이 글의 운영 제안이며 프로젝트가 제공하는 보안 보장이라는 뜻이 아닙니다.
평가에는 올바른 복구율 외에 잘못된 클릭, 복구 포기, 다음 화면 assertion 실패를 따로 세어야 합니다. 실패가 알려진 화면에 모델이 그럴듯한 후보를 항상 내놓는다면, 높은 응답률이 오히려 문제를 숨깁니다. 접근성 이름과 안정적인 테스트 ID를 고치는 일이 복구 모델 도입보다 싸고 확실할 수도 있습니다.
로컬 모델의 경계도 시스템 전체로 본다
모델이 2B라고 휴대전화에서 실행된 것은 아닙니다. 개발자는 GPU 서버에서 vLLM으로 서빙해 연결했으며 사용 안내는 16GB 이상 GPU를 요구합니다. 로컬 호스팅도 스크린샷에 담긴 개인정보의 로그·보관 정책을 대신 해결하지 않습니다.
목적 이름에서의 개선은 작은 특화 모델을 시험할 근거가 됩니다. 그러나 이 실험이 다른 앱·언어·접근성 트리·기기에서 같은 성능을 보장하지는 않습니다. 기존 테스트를 자동으로 초록색으로 만드는 대신, 의도에 맞는 행동을 복구하고 독립된 assertion으로 확인하는 보조 경로로 평가하세요. 이 주제와 직접 맞는 공개 강의는 확인하지 못해 특정 강의 홍보를 연결하지 않았습니다.