Skip to main content
QUICK REVIEW

[논문 리뷰] Using Large Language Models to Enhance Programming Error Messages

Juho Leinonen, Arto Hellas|arXiv (Cornell University)|2022. 10. 20.
Teaching and Learning Programming참고 문헌 33인용 수 5
한 줄 요약

이 논문은 초보자 프로그래머를 위한 명확한 설명과 실행 가능한 수정 방법을 제공함으로써 프로그래밍 오류 메시지(PEM)를 향상시키기 위해 OpenAI의 Codex, 즉 대규모 언어 모델을 사용하는 것을 조사한다. 비록 이해도가 높은 편(88%)이며 설명의 정확도는 중간 수준(설명 57%, 수정 47%)을 보였지만, 오류율이 높아 생산 환경에선 아직 신뢰할 만하지 않아 보인다.

ABSTRACT

A key part of learning to program is learning to understand programming error messages. They can be hard to interpret and identifying the cause of errors can be time-consuming. One factor in this challenge is that the messages are typically intended for an audience that already knows how to program, or even for programming environments that then use the information to highlight areas in code. Researchers have been working on making these errors more novice friendly since the 1960s, however progress has been slow. The present work contributes to this stream of research by using large language models to enhance programming error messages with explanations of the errors and suggestions on how to fix the error. Large language models can be used to create useful and novice-friendly enhancements to programming error messages that sometimes surpass the original programming error messages in interpretability and actionability. These results provide further evidence of the benefits of large language models for computing educators, highlighting their use in areas known to be challenging for students. We further discuss the benefits and downsides of large language models and highlight future streams of research for enhancing programming error messages.

연구 동기 및 목표

  • 암호화되어 있고 이해하기 어려운 프로그래밍 오류 메시지가 초보자 학습자들을 방해하는 오랜 문제를 해결하기 위해.
  • 기존 컴파일러 메시지보다 더 읽기 쉽고 실행 가능한 설명과 수정 방법을 생성할 수 있는 대규모 언어 모델(LLM)의 가능성을 조사하기 위해.
  • 초보자 프로그래밍 교육 환경에서 LLM이 생성한 PEM 향상 기능의 유용성과 신뢰성 평가하기 위해.
  • LLM에 의존한 오류 메시지 향상의 한계와 위험, 특히 잘못된 제안이 발생할 수 있는 잠재적 위험을 특정하기 위해.

제안 방법

  • 저자들은 이전 연구에서 특히 읽기 어려운 것으로 확인된 25개의 파이썬 오류 메시지를 수집하였다.
  • 이 특정 오류 메시지를 유발하는 코드 예제를 생성하여 LLM의 반응을 테스트하였다.
  • OpenAI Codex(code-davinci-002)를 사용해 프롬프트 엔지니어링을 통해 단일 프롬프트에서 평이한 영어로 된 설명과 코드 수정 방법을 제공하도록 유도하였다.
  • 일관성을 확보하기 위해 온도 설정을 0으로 설정하고, 인간 전문가가 정확성과 명확성 측면에서 출력을 평가하였다.
  • 평가에는 설명의 이해도, 설명의 정확도, 제안된 코드 수정의 정확도를 분석하는 것이 포함되었다.
  • 위험을 줄이기 위해 이중 단계 시스템을 제안하였으며, 오류 메시지의 복잡도와 소스 코드의 구조에 따라 LLM을 선택적으로 사용하였다.

실험 결과

연구 질문

  • RQ1RQ1: Codex는 초보자 학습자를 대상으로 다양한 프로그래밍 오류 메시지를 평이한 영어로 얼마나 잘 설명할 수 있는가?
  • RQ2RQ2: Codex가 잘못된 코드에 대해 생성한 코드 수정 제안의 품질은 어떠한가?
  • RQ3RQ3: 다양한 프롬프트 설계, 온도 설정, 또는 입력 복잡도에 따라 Codex의 성능은 어떻게 달라지는가?
  • RQ4RQ4: LLM이 생성한 오류 메시지 향상 기능는 초보자 프로그래밍 수업에서 신뢰성 있게 사용될 수 있는가?

주요 결과

  • Codex는 테스트 케이스의 84%에서 이해하기 쉬운 설명을 생성하였으며, 그 중 88%는 평가자들에 의해 이해 가능하다고 평가받았다.
  • 생성된 설명 중 정확한 것으로 간주된 비율은 오직 57%였으며, 전체 입력의 48%에서만 정확한 설명이 제공되었다.
  • 코드 수정 제안의 경우 70%의 출력에서 수정안이 포함되어 있었지만, 그 중 정확한 수정안은 47%에 불과했으며, 전체 입력의 33%에서만 정확한 수정안이 제안되었다.
  • 온도를 0으로 설정했을 때 성능이 크게 향상되어, 결정론적 출력이 더 신뢰할 수 있는 결과를 낳는다는 점이 확인되었다.
  • 연구에서는 LLM이 간단한 오류에 대해 더 효과적이며, 다중 오류나 복잡한 코드 구조가 포함된 경우는 더 신뢰도가 낮다는 점을 발견했다.
  • 저자들은 LLM이 생성한 수정안이 학생들을 오도할 수 있으며, 교실에 배포하기 전에 검증 메커니즘이 필요하다고 경고하였다.

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

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

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

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