← 최신 논문
💬 NLP

SymCode: A Neurosymbolic Approach to Mathematical Reasoning via Verifiable Code Generation

SymCode는 문제 해결을 SymPy를 이용한 검증 가능한 코드 생성으로 재구성함으로써 대규모 언어 모델의 수학적 추론 능력을 향상시키는 뉴로심볼릭 프레임워크로, 이를 통해 상당한 정확도 향상을 달성하고 모델의 실패 양상을 불투명한 논리적 오류에서 투명한 프로그래밍적 오류로 전환합니다.

원저자: Sina Bagheri Nezhad, Yao Li, Ameeta Agrawal

게시일 2026-01-27
📖 3 분 읽기☕ 가벼운 읽기

원저자: Sina Bagheri Nezhad, Yao Li, Ameeta Agrawal

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

매우 똑똑하지만 약간 덜렁거리는 학생에게 복잡한 수학 문제를 풀어보라고 요청한다고 상상해 보세요. 만약 당신이 그들에게 "생각을 소리 내어 말하고(think out loud)" 답변을 한 단락으로 작성하라고 한다면, 그들은 정답에 근접한 아이디어는 낼 수 있겠지만 계산 중간에 발이 꼬일 수도 있습니다. 그들은 "답은 42라는 걸 알아요"라고 말하면서도 실제 계산 과정에서는 41을 보여줄 수도 있고, 혹은 숫자를 보기 좋게 만들기 위해 존재하지 않는 규칙을 스스로 만들어낼 수도 있습니다. 이것이 바로 현재의 거대언 언어 모델(LLM)들이 흔히 저지르는 실수입니다. 그들은 수학에 관한 이야기를 쓰지만, 그 이야기 속에는 찾아내기 어려운 숨겨진 산술 오류나 논리적 공백이 포함될 수 있습니다.

SymCode는 판도를 바꾸는 새로운 프레임워크입니다. 이 방식은 AI에게 이야기를 쓰라고 요구하는 대신, 문제를 해결하기 위한 컴퓨터 프로그램을 작성하라고 요구합니다.

작동 원리는 다음과 같은 간단한 비유를 통해 이해할 수 있습니다.

기존 방식: "이야기꾼"

AI가 케이크를 굽는 방법을 설명하려고 노력하는 이야기꾼이라고 상상해 보세요. 그들은 이렇게 말합니다. "먼저 밀가루를 섞으세요. 그다음 달걀을 넣으세요. 아, 그리고 소금을 한 꼬집 넣을까요? 사실, 설탕 두 컵을 넣는 게 더 나을 것 같네요."

  • 문제점: 이야기꾼은 단계를 잊어버리거나, 재료를 뒤섞거나, 설탕이 몇 컵 필요한지에 대해 수학적 오류를 범할 수 있습니다. 이것은 단지 하나의 '이야기'이기 때문에, 케이크를 직접 먹어보고 맛이 엉망이라는 것을 깨닫기 전까지는 그들이 틀렸다는 것을 증명하기 어렵습니다.

새로운 방식 (SymCode): "설계자와 시공자"

SymCode는 AI에게 이렇게 명령합니다. "이야기를 쓰지 마세요. 대신 정밀한 설계도를 그리는 설계자이자, 그 설계도를 정확하게 따르는 시공자처럼 행동하세요."

  1. 설계자 (AI): AI는 수학 문제를 엄격하고 논리적인 지침인 파이썬(Python) 코드로 변환합니다. 이때 AI는 SymPy(반올림 오차가 없는 '완벽한 계산기'라고 생각하면 됩니다)라는 특수 도구를 사용합니다.
    • 비유: "밀가루를 약간 넣으세요"라고 말하는 대신, AI는 flour = 2.5 cups라고 명시하는 코드를 작성합니다. 즉, 규칙을 명확하게 정의하는 것입니다.
  2. 시공자 (컴퓨터): 컴퓨터는 코드를 실행합니다. 컴퓨터는 추측하지 않고 지침을 실행합니다.
    • 마법 같은 점: 만약 AI가 설계도에서 실수(예: 0으로 나누기 또는 잘못된 변수 사용)를 하면, 컴퓨터는 즉시 멈추고 "오류! 이 줄은 작동하지 않습니다"라고 알려줍니다.
  3. 자기 수정 루프 (Self-Correction Loop): 이것이 핵심 비결입니다. 만약 컴퓨터가 오류를 발견하면, 컴퓨터는 그 "오류 메시지"를 AI에게 다시 보냅니다. AI는 오류를 읽고, "아, 내가 변수 이름을 틀렸구나"라고 깨달은 뒤, 코드를 다시 작성하여 오류를 수정합니다. 이 과정은 코드가 완벽하게 실행되어 답을 낼 때까지 반복됩니다.

왜 더 나은가?

  • 더 이상의 "가짜" 수학은 없다: 이야기 속에서 AI는 환각(hallucination)을 일으켜 수학 단계를 지어낼 수 있습니다. 하지만 코드에서는 수학이 틀리면 프로그램이 멈춰버립니다. AI는 컴퓨터에게 거짓말을 할 수 없습니다.
  • 투명성: 이야기가 혼란스러우면 어디서 실수가 발생했는지 찾기 어렵습니다. 하지만 코드가 틀리면 컴퓨터는 정확히 어느 줄에서 오류가 발생했는지 지목합니다. 이는 마치 실수에 스포트라이트를 비추는 것과 같습니다.
  • 효율성: 수학적 기교를 설명하기 위해 긴 이야기를 쓰는 데는 많은 단어(토큰)가 필요합니다. 하지만 동일한 수학 계산을 수행하는 짧은 스크립트를 쓰는 데는 훨씬 적은 단어가 필요합니다. 연구에 따르면 SymCode는 기존의 "이야기하기" 방식보다 약 60%에서 77% 더 적은 단어를 사용합니다.

결과

연구진은 매우 어려운 수학 문제(고등학교 경시대회나 올림피아드 수준)를 대상으로 테스트를 진행했습니다.

  • 정확도: SymCode는 기존 방식보다 훨씬 더 많은 문제를 맞혔습니다. 가장 어려운 테스트에서 정확도가 최대 13.6 퍼센트 포인트 향상되었습니다.
  • "어려울수록 더 좋다"는 법칙: 문제가 어려울수록 SymCode의 효과는 더 컸습니다. 단순한 문제의 경우 기존 방식도 괜찮았지만, 복잡하고 여러 단계가 필요한 문제에서는 기존 방식이 무너진 반면, SymCode는 스스로 검증하며 계속해서 답을 찾아냈습니다.

요약하자면

SymCode는 AI를 사실을 지어낼 수 있는 창의적인 작가에서, 문제를 해결하기 위한 기계를 만드는 엄격한 엔지니어로 변화시킵니다. 만약 기계가 고장 나면, 엔지니어는 작동할 때까지 이를 수리합니다. 이 덕분에 AI의 수학적 답변은 단순히 정답일 확률이 높아질 뿐만 아니라, 더욱 신뢰할 수 있고 검증 가능해집니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →