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)|Jan 24, 2023
Software Engineering Research被引用数 17
ひとこと要約

本論文は PyFiXV を紹介する。Codex を動力源とするシステムで、Python の構文エラーに対して高精度なフィードバックを生成し、精度とカバレッジを制御するランタイム検証ノブを備える。

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 の開発。
  • 実世界の Python データセット上で PyFiXV を評価し、実装の公開版を公表する。

提案手法

  • Stage-1 は Codex-Edit を用いて buggy なプログラムを文法的に正しい fixed プログラムへ修正する。
  • Stage-2 は慎重に選択された few-shot の例を用いて Codex-Complete で自然言語の説明を生成する。
  • Stage-3 は、生成されたフィードバックを Codex-Edit に照会して学生モデルを模擬し、AST ベースの厳密一致に基づいて受理可否を決定する。
  • Stage-3 で Tunable ハイパーパラメータを介して精度とカバレッジのトレードオフを導入し、所望の精度レベルを満たす。
  • 較正データセットを用いて、カバレッジを最大化しつつ目標精度を達成するハイパーパラメータを選択する。

実験結果

リサーチクエスチョン

  • RQ1LLM ベースのフィードバック生成技法を、 tunable precision パラメータを備えて高品質なフィードバックを実現できるか。
  • RQ2ランタイム検証が構文エラーのフィードバックの精度とカバレッジに与える影響はどのようか。
  • RQ3few-shot 例の選択が Codex-Complete による説明の品質に与える影響は何か。
  • RQ4実世界の Python データセットにおける 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 は、カバレッジとのトレードオフを可能にする tunable ノブを用いて高い精度を達成し、TigerJython および Codeforces データセットで実証された。
  • Stage-1 は、バグのあるプログラムを小さな修正で修正し、実現性が高い(高いフィードバック生成成功率)。
  • Stage-2 の説明は few-shot 例の助けを借りて、説明の関連性と正確性を向上させる。
  • Codex-Edit という模擬学生モデルを用いた Stage-3 の検証は堅牢な精度機構を提供し、実験で規則ベースの検証を上回った。
  • 較正された PyFiXV バリアントは、データセット全体で競争力のある精度-カバレッジのトレードオフに到達する。
  • 比較されたバリアントは、提案された検証機構が長さベースの検証などのベースラインよりも著しく精度を向上させることを示している。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。