Delulu: A Verified Multi-Lingual Benchmark for Code Hallucination Detection in Fill-in-the-Middle Tasks
본 논문은 Fill-in-the-Middle 작업에서 최첨단 코드 생성 모델이 그럴듯하지만 잘못된 환각을 생성하는 지속적인 취약성을 드러내는 1,951 개의 적대적으로 큐레이션된 샘플로 구성된 엄격하게 검증된 다국어 벤치마크인 Delulu 를 소개합니다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
매우 똑똑하지만 약간 과신한 주니어 프로그래머를 고용하여 코드 작성을 도와달라고 상상해 보세요. 이 프로그래머는 문장에서 다음에 무엇이 올지 추측하는 데는 뛰어나지만, 때로는 정답을 모를 때 완벽하게 들리는 무언가를 그냥 만들어냅니다.
이 논문은 코드 스니펫의 중간을 채우는 작업 (즉, "Fill-in-the-Middle" 작업) 을 수행할 때, 이러한 만들어낸 답변, 일명 **환각 (hallucinations)**을 포착하도록 설계된 새로운 "시험"인 DELULU를 소개합니다.
다음은 간단한 비유를 사용하여 이 논문을 분석한 내용입니다:
1. 문제: "자신감 넘치는 거짓말쟁이"
코딩 AI 의 세계에서는 모델이 처음부터 전체 함수를 작성할 수 있는지 테스트하는 경우가 많습니다. 하지만 현실 세계에서는 GitHub Copilot 과 같은 AI 어시스턴트가 대부분 앞뒤 코드를 보고 그 사이의 공백을 채우는 방식으로 작동합니다.
문제는 이러한 AI 들이 자신감 넘치는 거짓말쟁이와 같다는 점입니다. 존재하지 않는 라이브러리를 발명하거나, 실제로 없는 함수를 호출하거나, 아직 정의되지 않은 변수 이름을 사용할 수 있습니다.
- 함정: 코드는 인간의 눈에는 완벽해 보입니다 (문법적으로 정확합니다). 일반적인 문장처럼 읽힙니다. 하지만 실행해 보면 AI 가 사실을 만들어냈기 때문에 충돌이 발생합니다.
- 목표: 저자들은 다음과 같은 질문을 던졌습니다: 현재의 AI 모델은 이러한 거짓말을 reliably(신뢰성 있게) 피할 수 있는가? 그리고 만약 거짓말을 한다면, 다른 AI 모델이 그 거짓말을 찾아낼 수 있는가?
2. 해결책: "DELULU" 시험
저자들은 DELULU라는 벤치마크 (테스트 세트) 를 구축했습니다. 이름은 이러한 AI 환각이 종종 매우 설득력 있기 때문에, "망상적인 (delusional)"을 뜻하는 인터넷 은어에서 유래한 말장난입니다.
DELULU 를 AI 모델을 위한 거대하고 자동화된 함정으로 생각하세요.
- 설정: 그들은 인터넷의 실제 코드를 가져와 1,951 개의 "함정"을 만들었습니다.
- 함정: 모든 올바른 코드 조각 ("Golden" 정답) 에 대해, 초지능 AI 를 사용하여 "환각" 버전을 생성했습니다. 이 가짜 버전은 틀리게 만들기 위해 단 하나의 아주 작은 것만 변경했지만, 그럴듯하게 보이도록 유지했습니다.
- 예시: 실제 import
from pandas import read_csv를 가짜인from pandas import read_csvs로 변경합니다.
- 예시: 실제 import
- 4 가지 유형의 거짓말: 이 시험은 AI 가 잘못되는 네 가지 특정 방식에 초점을 맞춥니다:
- Method: 존재하지 않는 함수 이름을 발명합니다 (예: 해당 함수가 존재하지 않는
df.remove_nulls()). - Parameter: 존재하지 않는 설정을 추가합니다 (예: 함수가 색상을 허용하지 않을 때
print(text, color="blue")). - Undefined Variable: 결코 생성되지 않은 이름을 사용합니다.
- Import: 존재하지 않는 소프트웨어 패키지를 로드하려고 시도합니다.
- Method: 존재하지 않는 함수 이름을 발명합니다 (예: 해당 함수가 존재하지 않는
3. 시험 제작 방법 ("적대적 파이프라인")
그들은 단순히 문제를 추측한 것이 아니라, 문제가 어렵고 답변이 실제임을 보장하는 엄격한 공장을 구축했습니다.
- 생성: AI 가 가짜 거짓말 코드를 생성했습니다.
- "심판" 패널: 네 가지 다른 초 AI 가 가짜 코드를 채점하는 교사 역할을 했습니다. 만약 교사가 거짓말과 진실을 구분하지 못한다면, 그 문제는 유지되었습니다. 만약 교사가 쉽게 알아차렸다면, 그 문제는 폐기되었습니다.
- "현실 점검" (Docker): 이것이 가장 중요한 부분입니다. 그들은 교사들의 말을 단순히 믿지 않았습니다. 모든 코드 스니펫을 **가상 샌드박스 (Docker 컨테이너)**에 넣고 실행해 보았습니다.
- "Golden" 코드가 성공적으로 실행되면 유지되었습니다.
- "환각" 코드가 시험이 요구한 정확한 오류 (예: "File not found" 또는 "Variable not defined") 와 함께 충돌하면 유지되었습니다.
- 가짜 코드가 실제로 충돌하지 않으면 폐기되었습니다.
- 인간 검토: 마지막으로, 인간 전문가들이 남은 문제들을 검토하여 너무 어렵거나 편향되지 않았는지 확인했습니다.
4. 결과: AI 는 여전히 고전 중
저자들은 이 시험에서 작고 매우 큰 모델에 이르기까지 11 가지 다른 AI 모델을 테스트했습니다.
- 점수: 최고의 AI 모델조차도 정답의 약 **84.5%**만 맞췄습니다. 이는 약 6 개 중 1 개 정도의 질문에서 여전히 함정에 빠졌다는 것을 의미합니다.
- 가장 어려운 함정: "Import" 거짓말 (가짜 소프트웨어 패키지 발명) 은 AI 들이 피하는 데 가장 어려웠습니다. 마치 존재하는 모든 소프트웨어 라이브러리의 전화번호부를 외우라고 요구하는 것과 같아서, 실제로는 존재하지 않지만 들리는 대로 이름들을 계속 추측합니다.
- 탐지 문제: 그들은 또한 "AI 가 코드 리뷰어로 행동하여 이러한 거짓말을 찾아낼 수 있는가?"라고 물었습니다. 가장 똑똑한 AI 리뷰어조차도 거짓말을 약 **92%**의 비율로만 잡아냈습니다. 이는 거짓말이 틈새로 빠져나갈 수 있는 여지가 여전히 있음을 의미합니다.
5. 왜 이것이 중요한가
이 논문은 이것이 특정 AI 모델의 버그가 아닌 근본적인 문제라고 결론지었습니다.
- 단순히 크기의 문제가 아님: AI 를 더 크게 만드는 것은 도움이 되지만, 문제를 완전히 해결하지는 못합니다.
- 단순히 학습의 문제가 아님: 서로 다른 AI 모델 계열 모두 동일한 유형의 거짓말에 고전했습니다.
- 교훈: 우리는 AI 가 코드를 작성할 때 확인 없이 의존할 수 없습니다. 최고의 AI 들조차 프로그램을 충돌시키는 사실을 발명할 정도로 "망상적"이기 때문입니다.
간단히 말해: DELULU 는 현재 AI 코드 어시스턴트가 여전히 실행해 보면 깨지는 것처럼 보이는 사실을 만들어내는 경향이 있음을 입증하는 엄격한 다국어 시험입니다. 이 논문은 개발자들이 이러한 특정 약점을 측정하고 개선할 수 있는 도구 (시험과 "샌드박스" 컨테이너) 를 제공합니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.