쌍둥이 수학 문제 자동 생성

📄 논문: Computational Blueprints: Generating Isomorphic Mathematics Problems with Large Language Models (EMNLP 2025, Industry Track)

(주) 튜링에서 작성하여 EMNLP 2025 (Industry Track)에 발표한 논문입니다 (링크). 하나의 원본 문제로부터 구조가 똑같은 “쌍둥이(isomorphic)” 변형 문제를 LLM으로 대량 생성하는 방법을 다룹니다.

왜 쌍둥이 문제가 필요할까

개인화 수학 교육에서는 학생마다 약점이 다르기 때문에, 같은 개념·같은 난이도의 비슷한 문제가 아주 많이 필요합니다. 예를 들어 “속력 × 시간 = 거리”를 묻는 문제 하나를 학생 수백 명에게 각각 다른 숫자로 내주려면, 구조는 동일하되 값만 바뀐 문제가 끝없이 있어야 합니다.

그런데 LLM에게 그냥 “비슷한 문제 만들어줘”라고 시키면 두 가지 문제가 생깁니다.

  • 정확성: 풀이나 답이 틀린 문제가 섞여 들어옵니다.
  • 일관성: 표현·난이도가 제멋대로 흔들립니다.

게다가 문제 하나하나를 LLM으로 생성하면 비용도 만만치 않습니다.

핵심 아이디어: 문제를 만들지 말고, “문제 생성기”를 만들자

우리가 제안한 CBIT (Computational Blueprints for Isomorphic Twins) 의 핵심은 간단합니다. LLM이 문제를 직접 쓰게 하는 대신, 문제를 찍어내는 작은 프로그램(청사진) 을 작성하게 합니다.

과정을 그림으로 보면 다음과 같습니다.

CBIT pipeline

  1. 문제 하나에서 출발합니다. (“기차가 60 km/h로 3시간 → 180 km”)
  2. 수량 자리에 구멍을 뚫습니다. 60, 3, 180 이 각각 b1, b2, b3 라는 빈칸이 됩니다.
  3. 구멍 사이의 관계를 코드로 적습니다. 이것이 바로 청사진입니다.
    • b3 = b1 × b2
    • 40 ≤ b1 ≤ 90
    • 2 ≤ b2 ≤ 6
  4. LLM이 시드를 받아 구멍을 채웁니다. 시드가 바뀔 때마다 제약을 만족하는 새로운 값이 들어가고, 고정된 템플릿이 자연어 문장을 복원합니다.

여기서 LLM의 역할은 “문제 하나를 쓰는 것”이 아니라 “문제의 정량적 관계를 코드로 추상화하는 것” 으로 바뀝니다. 한 번만 잘 만들어두면, 그 뒤로는 프로그램이 시드만 바꿔가며 무한히 쌍둥이를 찍어냅니다.

정확성과 일관성이 공짜로 따라온다

이 구조의 가장 큰 장점은 검증이 생성 과정에 내재화된다는 점입니다.

  • 수학적 정확성: 답은 프로그램이 직접 계산하므로(예: b3 = b1 * b2), 별도의 외부 검증기가 필요 없습니다. 실행이 곧 검증입니다.
  • 구조적 일관성: 문장은 고정된 템플릿으로 복원되므로, 모든 쌍둥이가 같은 언어적 구조를 가집니다.

결과

  • 전문가가 직접 출제한 문항보다 오류율이 17.8% 낮았습니다.
  • K=100 개를 생성하는 기준으로 비용을 약 42배 절감했습니다.
  • 실제로 “수학대왕” 서비스에 배포하여 6,732명의 학습자에게 제공, 186,870건의 상호작용을 처리했습니다.

요약하자면, “문제를 생성”하는 대신 “문제 생성기를 생성”하는 한 번의 메타 단계가, 정확하고 일관된 쌍둥이 문제를 사실상 무한히 만들어냅니다.

자세한 내용은 논문을 참고해 주세요.

Jinwoo Nam's profile image

Jinwoo Nam

2025-11-07 13:00

Read more posts by this author