Evaluating LLMs in the Context of a Functional Programming Course: A Comprehensive Study

이 논문은 OCaml 과 같은 저자원 프로그래밍 언어를 가르치는 기능적 프로그래밍 과정에서 9 가지 최신 LLM 의 능력을 평가하기 위해 λ\lambdaCodeGen, λ\lambdaRepair, λ\lambdaExplain 의 세 가지 벤치마크를 구축하고, LLM 이 문법 및 타입 오류 수정과 기본 개념 설명에는 효과적이지만 저자원 환경에서는 고자원 언어에 비해 과제를 해결하는 능력이 제한적임을 보여주었습니다.

Yihan Zhang (McGill University, Canada), Brigitte Pientka (McGill University, Canada), Xujie Si (University of Toronto, USA)

게시일 Mon, 09 Ma
📖 3 분 읽기☕ 가벼운 읽기

Each language version is independently generated for its own context, not a direct translation.

🍳 1. 실험의 배경: "요리사 (AI) 와 새로운 레시피 (OCaml)"

일반적으로 인공지능 (LLM) 은 **요리 (프로그래밍)**를 잘하는 것으로 알려져 있습니다. 하지만 대부분의 연구는 **인기 있는 재료 (Python, Java)**로 만든 요리를 평가했습니다.

이 연구자들은 **"그렇다면 덜 알려진, 조금 까다로운 재료 (OCaml) 로 만든 요리를 인공지능이 잘 만들 수 있을까?"**를 궁금해했습니다. OCaml 은 기능적 프로그래밍이라는 독특한 방식을 사용하는 언어로, 요리법 (코드 작성법) 이 매우 엄격하고 논리적입니다.

📝 2. 실험 방법: 3 가지 요리 테스트

연구진은 9 가지 최신 인공지능 모델 (GPT-4o, Claude 등) 을 초대하여 3 가지 다른 요리 미션을 주었습니다.

  1. λCodeGen (새 메뉴 개발하기):

    • 미션: "이런 재료를 써서 이런 맛의 요리를 만들어줘"라고 자연어로 말하면, 인공지능이 직접 요리를 만드는 테스트입니다.
    • 비유: 레시피 없이 재료만 보고 요리를 만드는 상황입니다.
  2. λRepair (실패한 요리 고치기):

    • 미션: 학생이 만든 요리 (코드) 가 실패했습니다. "이게 왜 안 되는지 알려주고 고쳐줘"라고 요청합니다.
    • 비유: 타버린 팬이나 잘못된 재료를 찾아내어 요리를 다시 완성하는 상황입니다. (문법 오류, 타입 오류, 논리 오류 세 가지 유형으로 나뉩니다.)
  3. λExplain (요리 이론 설명하기):

    • 미션: "왜 이 요리는 이렇게 만들어야 하는지 이론적으로 설명해줘"라고 질문합니다.
    • 비유: 요리사에게 "왜 소금을 먼저 넣어야 할까?" 같은 이론적인 질문을 던지는 것입니다.

📊 3. 실험 결과: "요리사들의 실력 차이"

연구진은 인공지능들이 만든 요리를 **컴퓨터 (자동 채점기)**와 **사람 (강사)**이 함께 평가했습니다.

  • 상위 3 인 (o3-mini, Claude 3.7, GPT-4o):

    • 이 세 명의 '슈퍼 요리사'는 대부분의 미션에서 A~B 등급을 받았습니다.
    • 특히 **요리 고치기 (오류 수정)**는 매우 잘했습니다. "여기 불이 붙었네?"라고 바로 찾아서 고치는 능력이 뛰어났습니다.
    • 하지만 **새로운 메뉴 개발 (코드 생성)**에서는 완벽하지 않았습니다. 가끔 레시피를 무시하거나, 너무 길게 설명하는 등 실수가 있었습니다.
  • 중하위권 모델:

    • 작은 모델들은 요리를 아예 못 만들거나 (컴파일 오류), 엉뚱한 요리를 내놓는 경우가 많았습니다.
  • 가장 큰 차이:

    • 오류 고치기는 잘하지만, 복잡한 이론 설명이나 새로운 요리 개발은 어려워했습니다.
    • 특히 OCaml 같은 '까다로운 재료'를 다룰 때는, 인기 있는 재료 (Python) 를 다룰 때보다 실력이 떨어졌습니다.

💡 4. 핵심 교훈: "요리사에게 너무 의존하면 안 됩니다"

이 연구가 우리에게 주는 메시지는 다음과 같습니다.

  1. 도구로서의 유용성: 인공지능은 문법 오류를 고치거나 간단한 개념을 설명할 때 훌륭한 **'비서'**가 되어줍니다. 초보자가 막혔을 때 도움을 받기 좋습니다.
  2. 한계점: 하지만 인공지능이 만든 요리 (코드) 를 무조건 믿으면 안 됩니다. 논리적으로 틀린 요리를 만들거나, 너무 장황하게 설명할 수 있기 때문입니다.
  3. 학생과 교사의 역할:
    • 학생: 인공지능의 답변을 비판적으로 검토할 줄 알아야 합니다. "이게 정말 맞는 요리일까?"를 스스로 확인하는 능력이 필요합니다.
    • 교사: 단순히 코드를 짜는 시험보다는, "인공지능이 만든 코드의 오류를 찾아보라"거나 "이론을 설명하라"는 식의 새로운 평가 방식을 도입해야 합니다.

🎯 5. 결론: "완벽한 요리사는 아직 없습니다"

결론적으로, 최신 인공지능은 프로그래밍 학습을 돕는 강력한 도구가 될 수 있습니다. 하지만 아직 **독립적인 요리사 (완벽한 프로그래머)**가 되기에는 무리가 있습니다.

특히 OCaml 같은 전문적이고 어려운 언어에서는 인공지능이 실수를 할 수 있다는 점을 인지하고, 스스로 생각하는 능력을 키우는 것이 가장 중요합니다. 이 연구는 인공지능의 능력을 객관적으로 평가하는 기준을 마련했다는 점에서 큰 의미가 있습니다.