EsoLang-Bench: 난해한 언어를 통한 LLM의 진정한 추론 능력 평가

EsoLang-Bench: Evaluating Genuine Reasoning in LLMs via Esoteric Languages

요약

EsoLang-Bench는 Python보다 5,000~100,000배 적은 학습 데이터를 가진 5개의 난해한 프로그래밍 언어(Brainfuck, Befunge-98, Whitespace, Unlambda, Shakespeare)로 80개 문제를 평가하는 벤치마크로, 최고 성능 모델도 3.8%의 정확도만 달성하여 주류 언어의 ~90% 성능과 극명한 대조를 보인다.

핵심 포인트

  • 최신 LLM 모델들이 표준 벤치마크에서 85~95%를 기록하지만 난해한 언어에서는 0~11% 수준으로 추락하며, 고정확도 점수가 데이터 암기를 반영할 수 있음을 시사
  • Whitespace는 모든 모델에서 0%로 완전히 해결되지 못했으며, 중간 이상 난이도 문제에서 모든 모델이 0%를 기록하여 현재 추론 능력의 한계 드러남
  • 에이전트 코딩 시스템이 인터프리터 피드백을 활용하여 프롬프팅만 사용하는 경우보다 2배 정확도를 달성하지만, 여전히 주류 언어 수준 이하

왜 중요한가

현재 LLM의 코드 생성 능력이 학습 데이터에 크게 의존하며 진정한 프로그래밍 능력은 제한적임을 보여주므로, 개발자는 LLM의 실제 역량을 정확히 평가하고 활용해야 한다.

📄 전문 번역

LLM의 코드 생성 능력, 주류 언어에서만 통한다

대규모 언어 모델(LLM)의 코드 생성 능력을 평가하는 벤치마크는 주로 Python 같은 주류 언어에 집중되어 있습니다. 이런 언어들은 사전학습 데이터가 엄청나게 많아서, 모델이 높은 정확도를 보이곤 하는데요. 그런데 여기서 의문이 생깁니다. 이게 정말 추론 능력을 반영한 건지, 아니면 단순히 학습 데이터를 외운 것은 아닐까요?

이 의문에 답하기 위해 EsoLang-Bench라는 새로운 벤치마크가 등장했습니다. Brainfuck, Befunge-98, Whitespace, Unlambda, Shakespeare 같은 난해한 프로그래밍 언어 5개에서 총 80개의 문제를 다루는데요. 이 언어들의 학습 데이터는 Python보다 5,000배에서 100,000배 더 적습니다.

결과: 90%에서 3.8%로 추락

연구진이 최신 모델 5개를 5가지 프롬프팅 전략과 2가지 에이전트 코딩 시스템으로 평가한 결과가 충격적입니다. 최고 성능 모델도 전체 정확도가 3.8%에 불과했거든요. 같은 문제를 Python으로 출제하면 정확도가 90%대에 달하는 것과 비교하면 극명한 대조입니다.

더 심각한 건 어려운 문제일수록 상황이 악화된다는 것입니다. Medium 난이도 이상의 모든 문제에서 모든 모델이 0%의 정확도를 기록했습니다. 특히 Whitespace 언어는 공백, 탭, 개행 문자만으로 코드를 작성하는데, 어떤 모델도 이 언어에서는 단 한 문제도 풀지 못했습니다(0%).

에이전트 시스템이 일반 프롬프팅의 2배 성능

흥미로운 점은 에이전트 시스템의 성능입니다. 실제 인터프리터에 접근할 수 있고 반복적으로 디버깅할 수 있는 에이전트(Codex, Claude Code)는 일반 프롬프팅보다 약 2배 나은 결과를 보였습니다. Codex의 Brainfuck 정확도가 13.8%에 달한 것이죠.

그러나 실행 피드백 루프의 이점도 한계가 명확합니다. 비평가(critic)를 추가하거나 ReAct 같은 계획 모듈을 더해도 성능 개선이 없었습니다. 오히려 추가 LLM 호출이 노이즈가 되어 성능을 해쳤습니다. 이는 현재 모델들이 난해한 언어의 코드에 대해 자기 성찰(self-reflection)을 할 능력이 없다는 뜻입니다.

Few-shot 학습도 효과 없음

놀랍게도 few-shot 프롬프팅은 zero-shot과 통계적으로 유의미한 차이가 없었습니다(Wilcoxon p = 0.505). 이는 표준 벤치마크에서의 in-context learning 성공이 사실은 학습 데이터에 숨어있던 지식을 꺼내는 것일 뿐, 진정한 문맥 학습이 아닐 가능성을 시사합니다.

각 언어별 실패 패턴

각 언어는 고유한 실패 양상을 보여줍니다.

Brainfuck: 오류의 83.9%가 논리 오류입니다. 문법은 맞지만 잘못된 출력을 내죠. 모델들이 8개 명령의 문법은 이해하지만 알고리즘 추론에서 실패합니다.

Unlambda: 74.6%가 컴파일 오류입니다. 함수형 언어의 조합자 표현식을 만들지 못합니다.

Befunge-98: 93.4%가 런타임 오류입니다. 2D 그리드 기반 실행 모델에서 무한 루프에 빠집니다.

Shakespeare: 59.2%가 런타임 오류입니다. 극적 문법은 인식하지만 대사의 의미론을 잘못 해석합니다.

무엇이 진정한 능력인가

이번 연구의 핵심 메시지는 명확합니다. 현재 LLM의 코드 생성 능력은 주류 언어에서의 높은 벤치마크 점수가 의미하는 것보다 훨씬 좁다는 것입니다.

85~95% 정확도를 자랑하는 모델들이 학습 데이터가 극히 드문 언어에서는 0~11% 수준으로 추락합니다. 이는 높은 벤치마크 점수가 일반화된 프로그래밍 능력을 반영하지 않는다는 강력한 증거입니다. 모델들이 진정한 프로그래밍 추론 능력을 갖추려면 아직 갈 길이 멉니다.