파라미터가 수천억 개인 거대 AI라면 학생이 짠 파이썬 코드의 실수쯤은 가볍게 잡아낼 것 같다. 그런데 실제로 겨루자 결과가 뒤집혔다. 서클캣(CircleCat) 연구진은 학생들이 제출한 파이썬 코드 4만 8646건을 모아 AI에게 어디가 왜 틀렸는지 오류 종류를 골라내게 하는 시험을 치렀는데, 몸집이 훨씬 작은 전용 AI가 챗GPT(ChatGPT)와 제미나이(Gemini) 같은 거대 모델을 앞섰다. 이렇게 코드의 잘못을 종류별로 분류하는 작업은 인공지능이 사람의 코드를 채점하고 가르치는 시대의 핵심 능력이다. 따라서 어떤 AI가 이 일을 잘하는지는 개발 교육과 코딩 도구의 미래를 가르는 문제가 된다.
학생 코드 4만 8646건으로 만든 채점 시험지 PyMETA
PyMETA는 학생들이 제출한 파이썬(Python) 코드 4만 8646건을 모아 오류 종류를 표시해 둔 대규모 데이터셋이다. 데이터셋이란 AI를 학습시키고 시험 보게 하려고 정리해 둔 대량의 예시 묶음을 말한다. 서클캣 연구진은 579명의 학습자가 155개의 문제를 풀며 제출한 코드를 수집한 뒤, 각 코드에 어떤 오류가 들어 있는지 하나하나 꼬리표를 붙여 이 묶음을 완성했다.
이 시험지가 특별한 이유는 오류 판정 기준을 사람의 주관이 아니라 파이썬 프로그램 자체가 코드를 실행했을 때 내뱉는 신호에 맞췄다는 점이다. 예를 들어 어떤 채점 방식은 모범 답안과 다르게 짰다는 이유만으로 멀쩡히 돌아가는 코드를 오류로 몰기도 한다. PyMETA는 코드를 실제로 돌려 봤을 때 나오는 결과를 기준으로 삼아, 채점자에 따라 판정이 흔들리는 문제를 줄였다. 여기에 전문가 15명이 세 차례 교차 검증을 거쳐 오류를 두 개 이상 품은 까다로운 코드 97건을 따로 정밀 분류했다.
코드가 잘 돌아가도 답이 틀린 순간, 논리 오류
PyMETA는 오류를 3단계로 나누는데, 가장 세밀한 단계에서는 14가지 유형으로 구분한다. 첫 단계는 오류가 있는지 없는지만 가르고, 두 번째 단계는 오류를 명시적 오류(Explicit Error)와 논리 오류(Logic Error)로 나눈다. 명시적 오류란 프로그램이 실행 도중 스스로 “여기가 잘못됐다”고 멈추며 알려 주는 실수다. 반면 논리 오류란 코드가 끝까지 멀쩡하게 돌아가는데도 결과가 틀린 경우를 말한다.
논리 오류가 까다로운 이유가 여기 있다. 프로그램은 아무 불평 없이 답을 내놓지만 그 답이 문제의 요구와 어긋난다. 예컨대 1부터 10까지 더하라는 문제에서 실수로 1부터 9까지만 더하는 코드를 짜면, 컴퓨터는 오류 메시지 하나 없이 45라는 숫자를 자신 있게 출력한다. 사람이 눈으로 코드의 의도를 읽지 않으면 잡아내기 힘든 실수다. PyMETA는 이렇게 실행은 되지만 의미가 틀린 코드까지 오류로 잡아, 실제 교육 현장에서 필요한 수준의 세밀함을 갖췄다.
80.6% 대 71.9%, 작은 AI의 역전승
단일 오류 분류에서 몸집 작은 전용 모델 코드라마(CodeLlama-7B)는 매크로 F1 80.6%를 기록해, 최고 성적을 낸 거대 모델 제미나이 2.5 프로(Gemini 2.5 Pro)의 71.9%를 앞섰다. 매크로 F1이란 흔한 오류든 드문 오류든 모든 유형을 똑같이 중요하게 놓고 매긴 종합 점수로, 100점에 가까울수록 골고루 잘 맞혔다는 뜻이다. 코드라마는 파라미터가 70억 개(7B)인데, 이는 수천억 개로 알려진 거대 상용 모델의 대략 수십 분의 일 규모다.
차이는 여기서 그치지 않는다. 오류 있음과 없음만 가르는 가장 쉬운 단계에서 코드라마는 매크로 F1 96.3%까지 올랐다. 반대로 거대 모델들은 오류를 14가지로 세분하는 어려운 과제에서 GPT-3.5가 정확도 40.3%, GPT-4o가 71.5%, 제미나이가 85.9%에 머물렀다. 핵심은 크기가 아니라 준비 방식이었다. 작은 모델들은 파인튜닝(Fine-tuning)이라는 과정을 거쳤는데, 이는 특정 작업만 집중해서 추가로 훈련시키는 것을 말한다. 코드 채점이라는 한 우물만 판 작은 전문가가, 무엇이든 조금씩 아는 만능 거대 모델을 특정 분야에서 이긴 셈이다.
모르면 일단 논리 오류, 거대 AI의 공통된 습관
거대 모델들에게는 공통된 나쁜 버릇이 하나 발견됐다. 정체를 알 수 없는 오류가 나오면 일단 “논리 오류”라고 찍고 보는 경향이다. 연구진은 이를 논리 오류 과잉 예측률(Logic Error Overprediction Rate)로 측정했는데, 실제로는 논리 오류가 아닌데도 논리 오류라고 답한 비율을 뜻한다. GPT-3.5는 이 비율이 92.8%에 달해 사실상 애매하면 무조건 논리 오류라고 몰아붙였고, 그나마 가장 절제한 제미나이도 17.6%를 기록했다.

그림1. GPT-3.5와 제미나이 2.5 프로의 오류 예측 비율 비교표 (출처: PyMETA 논문 Figure 2)
드문 오류 앞에서는 더 무력했다. 재귀 오류(Recursion Error)나 값 오류(Value Error)처럼 자주 등장하지 않는 유형은 제미나이를 뺀 대부분의 거대 모델이 거의 잡아내지 못했다. 반면 두 개 이상 오류가 겹친 까다로운 코드에서는 제미나이 2.5 프로가 F1 81.8%로 가장 앞섰는데, 여러 오류가 얽힌 상황을 종합적으로 읽는 데는 거대 모델의 폭넓은 이해가 힘을 발휘한 것으로 보인다.
성능만 갈린 것이 아니다. 같은 작업을 시키는 데 드는 실행 비용도 모델에 따라 열 배 넘게 벌어졌다. 아무리 정확도가 높아도 값이 열 배 비싸다면 현장에서는 선뜻 쓰기 어렵다. 결국 어떤 AI를 고를지는 정확도와 비용을 함께 저울에 올려야 하는 문제가 된다.
코드 교육에서 AI를 고르는 기준
이 연구가 던지는 메시지는 “무조건 큰 AI를 쓰면 된다”는 통념을 다시 보게 한다. 학생들이 제출한 코드를 채점하고 오류를 짚어 주는 교육용 도구를 만든다면, 값비싼 거대 모델을 부르기 전에 해당 작업에 맞춰 훈련한 작은 전용 모델이 더 정확하고 저렴한 선택일 가능성이 있다. 특히 흔한 오류 유형을 빠르고 일관되게 걸러 내는 일에서는 작은 모델의 강점이 두드러진다.
다만 이 결과를 모든 상황에 그대로 적용하기는 이르다. 여러 오류가 겹친 복잡한 코드나 폭넓은 맥락 이해가 필요한 경우에는 거대 모델이 여전히 우위를 보였기 때문이다. 결국 작업의 성격에 따라 작은 전문가와 큰 만능형을 나눠 쓰는 조합이 현실적인 답이 될지, 아니면 거대 모델의 약점이 훈련으로 메워질지는 앞으로 더 지켜볼 필요가 있다. 분명한 것은 AI 채점 도구를 고를 때 이제 “얼마나 큰가”만큼 “무엇을 위해 훈련됐는가”를 함께 따져야 한다는 점이다.
FAQ( ※ 이 FAQ는 본지가 리포트를 참고해 자체 작성한 내용입니다.)
Q. 파라미터가 많은 거대 AI가 왜 작은 AI에게 졌나요?
거대 모델은 다양한 작업을 두루 처리하도록 만들어진 만능형인 반면, 작은 모델은 코드 오류 분류라는 한 가지 작업에 맞춰 추가 훈련(파인튜닝)을 받았기 때문입니다. 특정 작업에서는 그 일만 집중적으로 배운 전문가가 더 정확할 수 있습니다.
Q. 논리 오류가 다른 오류보다 잡기 어려운 이유는 무엇인가요?
논리 오류는 코드가 오류 메시지 없이 끝까지 실행되지만 결과만 틀린 경우입니다. 컴퓨터가 문제없이 답을 내놓기 때문에, 코드가 원래 무엇을 하려 했는지 의미를 읽어야만 잘못을 찾을 수 있어 판별이 까다롭습니다.
Q. 이 연구 결과가 실제 코딩 교육에 어떤 도움이 되나요?
학생들이 제출한 코드를 자동으로 채점하고 오류를 짚어 주는 교육 도구를 설계할 때, 무조건 비싼 거대 모델을 쓰기보다 작업에 맞게 훈련한 작은 모델이 더 정확하고 비용도 낮을 수 있다는 판단 근거를 제공합니다.
기사에 인용된 리포트 원문은 arXiv에서 확인할 수 있다.
리포트명: PyMETA: A Benchmark Dataset for Hierarchical Student Code Error Classification with Python-Interpreter-Based Labels
이미지 출처: AI 생성 콘텐츠
해당 기사는 챗GPT와 클로드를 활용해 작성되었습니다.



![[AI 활용팁] 사진 한 장이면 나도 스파이더맨, 챗GPT로 손끝까지 슈트 입기](https://aimatters.co.kr/wp-content/uploads/2026/08/Spiderman-picture-AI-prompt.jpg)


