
약한 모델을 위한 발판이 똑똑한 모델의 굴레가 되는 이야기
요약
고추론 모델(High-reasoning model)을 사용할 때 명시적인 if-then 규칙이 오히려 모델의 판단을 방해하는 현상을 분석합니다. 규칙이 모델의 추론 능력과 충돌할 때 발생하는 문제를 해결하기 위해, 결정론적 규칙 대신 철학과 컨텍스트 중심의 프롬프팅으로 전환하는 과정을 다룹니다.
핵심 포인트
- 저성능 모델을 위한 명시적 규칙은 고성능 모델에게 판단의 족쇄가 될 수 있음
- 고추론 모델은 프롬프트 내의 논리적 모순을 감지하고 유보적인 태도를 보임
- 명시적 분기 조건 대신 판단의 재료와 철학(Context)을 제공하는 것이 효과적임
- 결정론적 로직은 프롬프트가 아닌 코드로 구현하는 것이 바람직함
이 이야기는 울트라 마라톤 훈련용으로 만든 Intervals.icu × Stryd의 MCP 서버 개발 과정에서 나온 이야기로, LLM에게 훈련 계획 리뷰를 맡기고 있었다.
계획이 순조롭게 진행되고 있는가. 오버트레이닝 (Overtraining)의 징후는 없는가. 안정 시 심박수, HRV (심박 변이도), 최근 운동량, 주관적 피로도 등을 살펴보며 다음 훈련을 어떻게 조정할 것인가. 그러한 판단을 훈련 이론과 일상적인 데이터로부터 추론할 수 없을까 생각했다.
처음에는 판단을 상당히 if-then 규칙에 가깝게 설정했다.
"안정 시 심박수가 65를 넘으면 주의"
"HRV가 15 미만이면 부하를 낮춘다"
"고부하가 너무 지속되면 휴식을 우선한다"
이런 조건들을 미리 작성해 두면 모델은 판단을 틀리기 어렵다. 실제로 저렴한 모델에는 그것이 필요했다. 여러 조건이 겹치면 놓치는 경우가 있기 때문에, 판단 포인트를 명시적인 임계값 (Threshold)으로 설정해 두었다. 말하자면, 약한 실행자를 위한 발판이었다.
그런데 고추론 모델 (High-reasoning model)로 교체하자, 답변에 묘한 유보 사항이 섞이기 시작했다.
"규칙상으로는 이렇지만, 하지만……"
이 "하지만"이 매번 등장했다. 그 이유를 풀기 위해 채팅이 길어졌다. 어느 날 모델에게 물으니, 그것을 "마찰을 느낀다"라고 표현했다.
원인은 나중에 생각해보니 단순했다.
내가 설정해 둔 규칙 중에는 "데이터에 휘둘리지 마라", "주관을 최우선하라"라는, 참고하고 있던 울트라 러닝 코치의 철학이 포함되어 있었다. 반면, 다른 곳에는 "안정 시 심박수가 65를 넘으면 주의", "HRV가 15 미만이면 부하를 낮춘다"와 같은 수치 규칙도 있었다.
저렴한 모델이라면 이것들을 그럴싸하게 순서대로 처리한다.
하지만 고추론 모델은 여러 규칙을 동시에 읽고 비교할 수 있다.
그래서 깨닫는 것이다.
"데이터에 휘둘리지 마라"라고 말하면서, 동시에 "이 수치를 넘으면 판단을 바꿔라"라고도 적혀 있다는 것을.
이것은 모순되는 것이 아닌가, 하고.
결과적으로 모델은 매번 브레이크를 밟는다. 수치상으로는 GO로 보이지만, 전체적인 철학과는 맞지 않는다. 그래서 답이 무뎌진다.
요리 초보자에게는 "소금 5g"라고 지시할 필요가 있다.
하지만 셰프에게는 "여기서 맛을 볼 것"만으로 충분할 때가 있다.
능력이 낮은 실행자에게 시키기 위해 규칙을 굳건히 하면, 그 굳건한 규칙이 능력이 높은 실행자에게는 오히려 족쇄가 된다.
그래서 if-then 규칙을 없앴다.
대신 컨텍스트 (Context)만을 남겼다.
과거에 무엇과 무엇이 공기 (Co-occurrence)했는지. 어떤 시그널을 무겁게 볼 것인지. 어떤 상황에서는 수치보다 주관을 우선할 것인지. 그러한 판단 재료나 코치의 철학만을 남기고, 명시적인 분기 조건은 줄였다.
그 후 확실히 변한 것은 모델의 자기 보고가 아니라 거동이었다.
업데이트 후, 모델은 이전 규칙 중 하나가 실태와 괴리되어 있다는 것을 스스로 깨달았다. 주당 부하 증가를 일정 값으로 제한한다는 규칙이었다. 과거의 데이터와 현재의 훈련 상황으로 볼 때 그것은 이미 오래된 것이었다. 인간은 아무것도 지시하지 않았음에도 모델은 그것을 진부해진 제약으로 취급하여 스스로 판단에서 제외했다. 그리고 유보 사항도 사라져 있었다.
이 규칙은 모순되었던 것이 아니라 단지 오래되었을 뿐이었다. 모순이 없더라도 고정된 채로 있다면 진부해진다. 만약 모델이 깨닫지 못했다면 조용히 실수를 저지르고 있었을지도 모른다.
여기서 간과하고 있었던 것이 있다.
if-then은 결정론적인 (Deterministic) 로직이다.
그렇다면 애초에 코드로 작성하면 된다. 코드로 만들면 매번 같은 입력에 대해 같은 결과를 반환한다.
그런데 그것을 프롬프트 (Prompt)에 적으면, 확률적으로 동작하는 인터프리터 (Interpreter) 위에서 결정론적인 것처럼 보이는 것을 실행하게 된다. 따를 때도 있고 따르지 않을 때도 있다. 신뢰할 수 있는 계산도 아니고, 진정한 판단도 아니다. 어중간한 것이 된다.
추론 모델에 두어야 할 것은 결정 트리 (Decision tree)가 아니라 컨텍스트였다.
높은 비용을 지불하며 사고 있는 것은 규칙의 축자적 실행이 아니라 판단 그 자체여야 한다.
다만, 이것은 나 자신에게 국한된 실험이었기에 성립할 수 있었던 이야기이기도 하다.
나의 러너로서의 데이터이며, 나의 신체이며, 판단의 실패도 스스로 책임질 수 있다. 셀프 개발이기에 규칙을 완화하여 모델의 판단에 가깝게 설정할 수 있었다.
예를 들어 의료 지원 AI와 같은 영역에서는 이럴 수 없다.
책임의 소재가 닫혀 있지 않다. 환자 스스로가 판단의 타당성을 검증할 수 있다고 단정할 수 없다. 검증할 수 없는 상대에게 판단을 그대로 위임할 수는 없다.
if-then 규칙은 모델의 총체적인 (Holistic) 판단을 봉쇄한다.
하지만 동시에 사회적인 안전장치이기도 하다.
따라서 하이리스크 (High-risk) 영역에서는 「판단」과 「규칙」 중 하나를 선택하는 것이 아니다. 판단과, 그것을 구속하는 수단 모두가 필요하다. 어느 쪽으로 얼마나 기울게 할지는 케이스별 설계 문제이며, 아직은 우리 인간의 영역이라고 생각한다.
뒤집어 말하면, 지금의 우리는 높은 추론력 (Reasoning) 을 가진 모델을 아직 충분히 활용하지 못하고 있는 것이라고도 생각한다.
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기