
Reasoning Effort는 하나의 IQ 조절 노브가 아니다
요약
LLM의 reasoning_effort 설정이 모델의 모순 탐지 능력에 미치는 영향을 실험한 결과, 해당 설정이 단순히 지능을 높이는 만능 노브가 아님을 밝힙니다. 실험 결과 모델과 텍스트 유형에 따라 성능 변화가 상이하여 운영 파라미터로서의 신중한 접근이 필요함을 시사합니다.
핵심 포인트
- reasoning_effort는 지능을 일괄적으로 높이는 도구가 아님
- 설정 변경 시 모델별, 텍스트별로 탐지 성능이 다르게 나타남
- 단순한 통계적 경향성만으로 설정의 효과를 일반화하기 어려움
- 실무에서는 모델별 최적의 운영 파라미터 확인이 필수적임
TL;DR: reasoning_effort
——모델이 답을 내기 전에 내부적으로 얼마나 단계적으로 "생각(thinking)"할지를 제어하는 설정——을 medium/default에서 high로 변경했을 때, LLM의 모순 탐지(contradiction detection) 능력이 어떻게 변하는지 테스트했다. 처음에는 GLM-5.2가 high 설정에서 실제 존재하는 불일치를 간과하는 것처럼 보였으나, 반복 실험과 별도 텍스트 검증을 통해 그 단순한 가설은 무너졌다. 더 많은 불일치를 심어둔 5회씩의 소규모 테스트에서는, GLM-5.2의 1회 실행당 탐지된 논점 유형의 평균은 2.0에서 1.4로 좁혀졌고, Codex는 2.0에서 2.6으로 넓어졌다. n=5는 작은 표본이다. 그럼에도 실무적인 시사점은 명확하다. reasoning effort는 만능의 "지능을 끌어올리는" 노브가 아니라, 모델별·텍스트별로 확인해야 할 운영 파라미터(operational parameter)가 아닐까.

시작은 허탈할 정도로 작은 버그였다.
어느 기사 리뷰 과정에서, 여러 LLM과 다른 리뷰 수단들에 원고를 읽게 하고 있었다. AI 추론 API 서비스(AI reasoning API service)를 경유한 GLM-5.2만이 실제로 존재하는 내부 모순을 잡아냈다. 본문의 한 문장에서는 항목이 9개 인라인(inline)으로 나열되어 있는데, 다른 곳에서는 이를 "8개"라고 부르고 있었다.
적어도 내 경험상, 유창하게 읽히는 문장일수록 이런 어긋남이 빠지기 쉬웠다. 그렇기에 GLM-5.2의 지적은 인상 깊었다. 그런데 설정을 하나 바꿨을 때, 나는 순간 더 큰 법칙을 발견한 것 같은 기분이 들었다.
첫 번째 이야기는 너무나 완벽했다
동일한 리뷰를 reasoning_effort를 medium/default가 아닌 high로 설정하여 재실행했다. 수정 전 문장을 재구성한 텍스트에 대한, medium과 high의 통제된 단발 비교이다. GLM-5.2는 medium에서 3건의 지적을 내놓았고, 그중에는 개수 불일치도 포함되어 있었다. high에서는 5건으로 늘어났다. 하지만 개수 불일치 그 자체에 대한 언급은 사라져 있었다.
"더 많이 생각하게 하면 단순한 모순을 놓친다". 헤드라인으로 쓰기에 딱 좋은 형태다. 지적 총수는 늘어났는데, 가장 중요했던 불일치는 사라졌다. reasoning effort를 높이면 리뷰 품질이 떨어진다고 말하고 싶어지는 것도 무리가 아니다.
다만, 그것은 하나의 문장에 대한 단 한 번의 실행이었다.
지적이 많다는 것이 리뷰가 신뢰할 수 있다는 영수증은 되지 않는다. 한 번 놓쳤다고 해서 그것이 설정 때문이라는 증거도 되지 않는다. 이 단계에서 내가 가진 것은 관찰이었지, 일반화할 수 있는 결론이라고 부를 수 있는 것이었을까.
5번 반복하자 확신은 흐려졌다
그래서 원래의 조건을 반복했다. 동일한 재구성 텍스트, GLM-5.2만을 대상으로 medium/default 5회, high 5회를 실시했다. 개수 불일치를 탐지한 것은 medium/default에서 5회 중 2회, high에서 5회 중 0회였다.
첫 번째 관찰과 같은 방향으로 보이는 듯하다. 하지만 "보인다"라는 단어를 신중하게 사용해야 한다. 2/5 대 0/5에 대한 단측 초기하 검정(one-sided hypergeometric test) 결과 p≈0.22였다. 각 조건 5회라는 작은 표본에서는 통계적으로 유의미하지 않다.
그렇다고 "아무 일도 일어나지 않았다"라고 말하고 싶은 것은 아니다. 첫 번째의 깔끔한 이야기를 깔끔한 상태로 말할 수 없게 되었다는 뜻이다. 이 정도의 차이는 소표본에서의 우연일 수도 있다. 강력한 인과 관계를 주장할 수 있는 결과라고는 할 수 없을 것이다.
운용 시에는 이런 성급한 판단이 일어나기 쉽다. 모델이 단 한 번 예외적인 행동을 하면, 그 예외성이 너무나 설명하기 쉬워서 안정적인 메커니즘까지 찾아낸 것처럼 느껴지곤 한다. 설명을 시작하기 전에, 설명하려는 현상이 정말로 지속되는지를 확인할 필요가 있다.
다른 문장에서는 문제 자체가 사라졌다
더 까다로운 점은, 원래의 버그를 포함한 문장을 확장 테스트용으로 완전히 복원할 수 없었다는 것이다. 그래서 다른 영역인 온콜(on-call) 런북(runbook) 리뷰용 메모를 새로 합성했다. 실패의 형태는 동일하다. 한 문장에서 8개 항목을 인라인으로 나열하고, 본문에서는 이를 두 번 "7개"라고 부른다.
이 새로운 텍스트에 대해 GLM-5.2는 medium에서 5회 중 5회, high에서도 5회 중 5회 모두 개수 불일치를 탐지했다.
이것이 설정이 결코 영향을 미치지 않는다는 증명은 아니다. 이 규모에서 5/5는 5번의 시도 중 5번 성공했다는 것 이상의 의미를 갖지 않는다. 진정한 결정성(determinism)을 보여주는 것도 아니다. 그럼에도 원래의 설명에는 뼈아픈 반증이었다. 동일한 모델이라도 다른 문장에서는 동일한 종류의 불일치에 대한 성능 저하가 전혀 재현되지 않았다.
동일한 단일 불일치 텍스트를 로컬 CLI 도구를 경유한 OpenAI 계열 모델인 Codex로도 테스트했다. medium 5회, high 5회를 실시했으며, 이 역시 두 설정 모두 5회 중 5회 탐지했다.
이 텍스트에 한해서는, 두 모델 모두 성능 저하는 없었다. 두 모델의 결과가 일치하고 있으며, 이는 원래 GLM-5.2의 단발성 결과와는 반대되는 양상이다. 여기서 남는 것은 "high는 개수 불일치를 간과한다"가 아니라, "특정 문장의 특정 실행에서 예상과 다른 일이 일어났다" 정도의 조심스러운 표현이었다.
그리고 단일한 불일치만을 배치하는 테스트에는 한계가 있다. 결과가 적중(hit)인지 실패(miss)인지의 이진(binary) 값으로 되어버리기 때문이다. 어떤 한 점을 찾아냈을 때, 동시에 다른 논점들을 얼마나 보고 있는지는 측정할 수 없다. 그렇다면 질문을 바꿔야 하지 않을까.
더 나은 질문은, 탐지의 "폭"이었다
그래서 합성한 런북(runbook)의 메모를 두껍게 만들었다. 하나가 아니라, 구조가 다른 세 가지 불일치를 넣었다.
- 개수 불일치: 한 문장에 8개 항목을 열거하고 있는데, 본문에서는 2번 "7개"라고 쓴다.
- 시계열의 모순: "스크립트를 지난 분기에 다시 작성했다"라고 하면서, 동시에 "6개월간 변경 없이 가동 중이다"라고도 되어 있다. 분기는 약 3개월이므로 양립할 수 없다.
- 카나리아(canary) 단계의 모순: "동일한 7개의 체크가 각 단계에서 재실행된다"라고 쓴 두 단락 뒤에, "카나리아 단계에서 현재 실행되는 것은 4개뿐이다"라고 되어 있다.
이렇게 하면, 한 번의 리뷰로 0, 1, 2, 3종류의 논점을 찾아낼 수 있다. 그래서 어떤 한 문장의 운명이 아니라, 1회 실행당 몇 종류의 불일치를 찾아냈는지, 즉 탐지의 폭을 살펴보았다.
먼저 GLM-5.2의 결과이다. 각 설정별로 5회씩 실시한 소규모 측정이었다.
| 논점 종별 | Medium | High |
|---|---|---|
| 개수 불일치 | 3/5 | 4/5 |
| ... |
개수 불일치만 보면 3/5에서 4/5로 올라갔다. 하지만 시계열과 카나리아 단계의 모순은 내려갔고, 전체적인 폭은 medium의 2.0종류에서 high의 1.4종류로 좁아졌다. 반복하지만, 각 셀 n=5인 이 차이는 통계적으로 유의미하지 않으며, 이 실험이 주는 것은 가설일 뿐 결론이라고까지 말할 수는 없을 것이다.
여기서 흥미로운 점은, 단순히 "high가 나쁘다"라는 이야기로 귀결되지 않는다는 것이다. high는 모든 것을 일률적으로 약화시킨 것이 아니라, 이 작은 테스트에서는 세 가지 관계를 보는 폭을 좁힌 것처럼 보인다. 무엇에 주의를 기울일지의 배분이 바뀌고 있는 것일지도 모른다.
다음 표에서는 그 가설을 모든 모델에 적용할 수도 없게 되었다.
| 논점 종별 | Medium | High |
|---|---|---|
| 개수 불일치 | 5/5 | 5/5 |
| ... |
Codex에서는 medium의 평균이 GLM-5.2와 동일한 2.0이었다. 하지만 high에서는 좁아지는 것이 아니라 2.6으로 넓어졌다. 개수 불일치는 유지되었고, 시계열은 4/5에서 5/5로, 카나리아 단계는 1/5에서 3/5로 올라갔다. 여기서도 근거는 각 설정 5회뿐이다. 이 시점에서 이 차이를 확정적인 성능 차이로 다룰 수는 없다.
medium에서 거의 동일한 평균으로부터 시작했다는 점이, 안이하게 "한쪽이 더 똑똑하다"라고 결론짓기 어렵게 만든다. 동일한 텍스트, 동일한 설정 변경에 대해 두 모델은 반대 방향으로 움직였다. 이 패턴은 다음 검증을 수행할 가치가 있지 않을까. 다만, 각 셀 n=5이다. 모델 전반의 순위 매기기나 정밀한 성능 추정을 논할 수 있는 규모인지는 아직 알 수 없다.

실제 리뷰 운용에서 내가 바꾸고 싶은 것
모든 리뷰를 high로 설정하여 품질을 높이겠다고 결정하고 싶은 마음은 이해한다. reasoning effort는 출력을 강하게 만드는 와트(watt) 수처럼 들린다. 높이면 모든 지적 작업이 같은 방향으로 개선될 것이라고 생각하고 싶어진다.
하지만 이번 관찰은, 조금 더 라우팅(routing)에 가까운 것으로 다루어야 한다고 가르쳐준다. 어떤 모델인지, 어떤 문장인지, 어떤 모순을 찾는지에 따라 효과는 달라질 수 있다. 경우에 따라서는 역방향이 될 수도 있을 것이다.
따라서 실무에서는 내가 정말로 찾아내고 싶은 실패 모드에 대해, 여러 개의 텍스트와 여러 논점 종별로 설정을 확인하고 싶다. 코멘트 총수뿐만 아니라 논점별 탐지를 기록하고 싶다. 5개의 코멘트를 반환하는 리뷰가 공개 전에 곤란을 초래할 모순을 간과할 수도 있다. 코멘트 수가 적더라도 중요한 한 점을 찾아내는 것이 더 유용할 때도 있다.
또한 5/5를 영구적인 능력 라벨로 삼지 않는다. 이 테스트에서 말할 수 있는 것은 5회 시도 중 5회였다는 것뿐일 것이다. 마찬가지로 GLM-5.2의 2.0에서 1.4, Codex의 2.0에서 2.6도 의도적으로 작게 만든 실험에서의 측정값이다. 모든 문서에서의 거동을 정밀하게 나타내는 숫자가 아니다.
가장 가치 있는 것은, 조사 그 자체가 수차례 스스로를 수정해 나간 순서일지도 모른다. 하나의 결과는 성능 저하를 나타내는 것처럼 보였다. 반복하면 통계적으로 취약했다. 새로운 문장에서는 그 효과가 사라졌다. 더 나은 설계로 바꾸자 또 다른 패턴이 나타났다. 한쪽은 폭이 좁아졌고, 다른 한쪽은 넓어졌다.
답이 멀어진 것이 아니다. 이 수정의 연쇄야말로, 지금 내가 믿을 수 있는 답이라고 생각한다. reasoning effort는 모든 모델, 모든 문서, 모든 모순을 한 방향으로 움직이는 단일한 IQ 조절 노브(knob)가 아니다. AI 리뷰를 신뢰할 수 있는 것으로 만들고 싶다면, 실제 리뷰어를 대상으로, 실제로 발견되기를 바라는 오류에 대해 테스트하고, 다음 실행이 이야기를 다시 써 내려갈 여지를 남겨두어야 하는 것이 아닐까.

이 기사는 「AI 운영의 함정」 시리즈 중 하나입니다. 벤치마크 비교가 아니라, 실제로 AI 코딩 리뷰 도구를 운영하는 과정에서 발생한 구체적인 사건의 기록입니다.
Discussion

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