Skip to main content
QUICK REVIEW

[논문 리뷰] Generating High-Precision Feedback for Programming Syntax Errors using Large Language Models

Tung Phung, José Cambronero|arXiv (Cornell University)|2023. 01. 24.
Software Engineering Research인용 수 17
한 줄 요약

이 논문은 PyFiXV를 소개한다. Codex 기반 시스템으로 파이썬 구문 오류에 대해 고정밀 피드백을 생성하며, 정밀도와 커버리지를 조절하는 런타임 검증 노브를 갖춘다.

ABSTRACT

Large language models (LLMs), such as Codex, hold great promise in enhancing programming education by automatically generating feedback for students. We investigate using LLMs to generate feedback for fixing syntax errors in Python programs, a key scenario in introductory programming. More concretely, given a student's buggy program, our goal is to generate feedback comprising a fixed program along with a natural language explanation describing the errors/fixes, inspired by how a human tutor would give feedback. While using LLMs is promising, the critical challenge is to ensure high precision in the generated feedback, which is imperative before deploying such technology in classrooms. The main research question we study is: Can we develop LLMs-based feedback generation techniques with a tunable precision parameter, giving educators quality control over the feedback that students receive? To this end, we introduce PyFiXV, our technique to generate high-precision feedback powered by Codex. The key idea behind PyFiXV is to use a novel run-time validation mechanism to decide whether the generated feedback is suitable for sharing with the student; notably, this validation mechanism also provides a precision knob to educators. We perform an extensive evaluation using two real-world datasets of Python programs with syntax errors and show the efficacy of PyFiXV in generating high-precision feedback.

연구 동기 및 목표

  • 초급 프로그래밍에서 구문 오류에 대한 자동화되고 정밀한 피드백 생성을 고무한다.
  • 피드백을 고정된 프로그램과 자연어 설명의 형태로 형식화한다.
  • 교육자를 위한 정밀도 조절 노브로 작동하는 런타임 검증 메커니즘을 갖춘 PyFiXV를 개발한다.
  • 실제 파이썬 데이터셋에서 PyFiXV를 평가하고 구현의 공개 릴리스를 수행한다.

제안 방법

  • Stage-1은 Codex-Edit를 사용하여 버그가 있는 프로그램을 구문적으로 올바른 고정 프로그램으로 수정한다.
  • Stage-2는 신중하게 선택된 few-shot 예시를 사용하여 Codex-Complete로 자연어 설명을 생성한다.
  • Stage-3은 Codex-Edit를 조회하여 학생 모델을 시뮬레이션하고 AST 기반의 정확한 일치 여부에 따라 수용 여부를 결정하여 생성된 피드백을 검증한다.
  • Stage-3에서 Tunable 하이퍼파라미터를 통해 정밀도-커버리지 트레이드오프를 도입하여 원하는 정밀도 수준을 달성한다.
  • 타깃 정밀도를 달성하면서 커버리지를 최대화하기 위해 보정 데이터셋을 사용하여 하이퍼파라미터를 선택한다.

실험 결과

연구 질문

  • RQ1조정 가능한 정밀도 매개변수를 가진 LLM 기반 피드백 생성 기술을 개발하여 고품질 피드백을 얻을 수 있을까?
  • RQ2런타임 검증이 구문 오류 피드백의 정밀도와 커버리지에 어떤 영향을 미치는가?
  • RQ3Codex-Complete로 생성된 설명의 품질에 few-shot 예시 선택이 미치는 영향은 무엇인가?
  • RQ4실제 파이썬 데이터셋에서 정밀도와 커버리지 측면에서 PyFiXV의 성능은 어떤가?

주요 결과

기법TigerJython 정밀도TigerJython 커버리지Codeforces 정밀도Codeforces 커버리지
PyFi-PEM5.0 (1.0)92.5 (1.6)35.0 (2.4)98.8 (0.8)
PyFiX_{shot:None}0.9 (0.5)92.5 (1.6)3.0 (0.4)98.8 (0.8)
PyFiX_{shot:Rand}21.6 (1.7)92.5 (1.6)48.5 (2.6)98.8 (0.8)
PyFiX_{shot:Sel}38.9 (3.5)92.5 (1.6)55.2 (3.9)98.8 (0.8)
PyFi||X_{shot:Sel}15.8 (1.8)92.5 (1.6)15.6 (2.8)98.8 (0.8)
PyFiX-Rule_{P>=70}48.6 (4.4)30.8 (12.5)61.6 (9.0)38.3 (10.5)
PyFiXV_{P>=70}76.0 (4.0)31.2 (4.0)72.4 (6.2)64.2 (6.3)
PyFiX-Opt_{P≈V_{P>=70}}76.1 (0.4)47.1 (3.4)72.8 (0.1)75.0 (5.7)
  • PyFiXV는 커버리지를 트레이드오프하는 조절 가능한 노브로 높은 정밀도를 달성하며, TigerJython 및 Codeforces 데이터셋에서 입증되었다.
  • Stage-1은 작은 편집으로 버그를 수정하고 실행가능성이 높다(높은 피드백 생성 성공).
  • Stage-2의 설명은 few-shot 예시의 도움으로 설명의 관련성과 정확성을 향상시킨다.
  • 시뮬레이션된 학생 모델(Codex-Edit)을 사용한 Stage-3 검증은 강력한 정밀도 메커니즘을 제공하고, 실험에서 규칙 기반 검증보다 우수하다.
  • 보정된 PyFiXV 변형은 데이터셋 전반에서 경쟁력 있는 정밀도-커버리지 트레이드오프에 도달한다.
  • 비교된 변형은 제안된 검증 메커니즘이 길이 기반 검증과 같은 기준보다 정밀도를 크게 향상시킨다는 것을 보여준다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.