Not an LLM Judge — Compare Against the Eye
The problem
반디는 미니팹 안의 AI 공정 튜터다. 그 두뇌는 결정적이지 않다. 같은 상황에 같은 말을 하지 않는다. 그러면 무엇을 기준으로 맞다 틀리다를 판정하나. LLM 에게 심판을 맡기는 방법이 있다. 흔히 그렇게 한다. 그런데 심판도 지어낸다. 틀린 걸 맞다고 할 이유가 채점자에게도 있다.
What I did instead
반디의 눈과 대조했다. 눈은 결정적이다. 지금 화면에 무엇이 있고 웨이퍼가 어떤 상태인지는 계산된 값이다. 반디가 한 말이 그 값과 어긋나면 틀린 것이다. 심판이 필요 없다.
비결정적인 것을 검증하려면, 결정적인 것에 붙여놓아야 한다.
Making the eye a first-class consumer
그러려면 눈이 신뢰할 만해야 한다. 그때까지 물리 값을 소비하는 곳이 넷이었다 — 화면, 보고서, 검증 하니스, 포스트잇. 반디의 눈을 다섯 번째 소비자로 등록부에 넣었다. 등록부에 들어가면 물리가 바뀔 때 눈도 같이 검사받는다. 밖에 있으면 물리만 바뀌고 눈은 옛 값을 읽는데, 아무도 모른다. 같은 날 경계를 하나 그었다. 미니팹은 반디를 모른다. 시뮬레이터가 튜터를 알면 튜터 없이는 못 도는 물건이 된다.
The vocabulary bug
같은 날 웃긴 걸 찾았다. 반디가 Y 방향 단면을 못 잘랐다. 절단 방향을 가리키는 말이 코드 여기저기서 조금씩 달랐다. 반디는 자기가 아는 단어로 요청하는데 받는 쪽이 그 단어를 몰랐다. 어휘를 한 곳에서 선언하는 것으로 끝났다. 두뇌가 아니라 사전이 문제인 경우가 생각보다 잦다.
Where it leaked
나흘 뒤 라이브에서 구멍이 났다. "다층 배선해줘" 한마디에 창고-우선 경로가 비켜갔고, 반디가 지어내기로 떨어졌다. 말투 하나로 그물을 빠져나간 것이다. 그물은 촘촘한 게 아니라, 빠져나갈 데가 있는지가 문제다. 다음 판에서는 경로를 더 촘촘히 하는 대신, 경로를 벗어난 발화 자체를 눈이 잡아내는 쪽으로 가볼 생각이다.