NL2Scratch: An Executable Benchmark and Evaluation for Block-Based Programming
이 논문은 블록 기반 프로그래밍에서 기존의 NL2Code 평가가 가진 한계를 해결하기 위해 대규모 실행 가능한 벤치마크인 NL2Scratch와 의미론적 정렬 일관성(SAC) 지표를 소개하며, 현재의 거대 언어 모델들이 높은 어휘적 유사성을 달에도 불구하고 올바른 스크래치 프로그램을 생성하는 데 필요한 의미론적 정렬을 포착하는 데는 실패하고 있음을 밝힌다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신이 말로 하는 지시를 바탕으로 그림을 그리는 로봇에게 그림 그리는 법을 가르치고 있다고 상상해 보세요. 만약 당신이 "빨간색 원을 그려줘"라고 말한다면, 로봇은 "빨간색"과 "원"이 정확히 무엇을 의미하는지, 그리고 이 둘을 어떻게 결합해야 하는지를 이해해야 합니다.
이 논문은 AI가 이 작업을 얼마나 잘 수행할 수 있는지 테스트하기 위해 설계된 NL2Scratch라는 새로운 테스트에 관한 것입니다. 하지만 여기에는 반전이 있습니다. AI는 텍st 기반의 코드(예: Python)를 쓰는 대신, 스크래치(Scratch) 블록을 사용하여 프로그램을 구축해야 합니다. 스크래치는 아이들이 게임이나 애니메이션을 만들 때 사용하는 알록달록한 드래그 앤 드롭 프로그래밍 언어입니다.
다음은 비유를 사용하여 이 논문의 이야기를 쉽게 풀어낸 내용입니다.
1. 문제점: "보기에는 좋아 보인다"는 함정
오랫동안 연구자들은 텍스트 기반 코딩을 통해 AI를 테스트해 왔습니다. 그들은 AI의 답변이 정답과 얼마나 유사한지 확인했습니다(마치 두 문장이 같은 단어를 공유하는지 확인하는 것과 같습니다).
하지만 스크래치는 다릅니다. 스크래치는 마치 레고 세트와 같습니다.
- 텍스트 코딩에서는 쉼표 하나만 빠져도 전체 문장이 깨질 수 있습니다.
- 하지만 스크래치에서는 올바른 종류의 블록(예: "움직이기" 블목, "반복하기" 블록)을 사용하고 그 안의 단어도 맞게 썼더라도, 블록을 잘못된 순서로 배치하거나 잘못된 트리거(실행 조건)에 연결하면 게임이 작동하지 않습니다.
이 논문은 현재의 AI 테스트가 레고 성을 평가할 때 단순히 브릭의 개수만 세는 것과 같다고 주장합니다. AI가 빨간색과 파란색 브릭을 정해진 개수만큼 사용했다면, 설령 브릭을 거꾸로 쌓아서 성이 무너지더라도 테스트는 "잘했습니다!"라고 말해버립니다.
2. 해결책: 새로운 테스트와 새로운 자(Ruler)
저자들은 NL2Scrлоch라는 거대한 라이브러리(311,000개의 예시)를 구축했습니다.
- 출처: 이들은 인간이 만든 실제 스크래치 프로젝트를 가져왔습니다.
- 번역: AI를 사용하여 이 프로젝트들에 대한 자연스러운 영어 설명(예: "초록색 깃발을 클릭했을 때, 고양이가 10걸음 움직이게 한다")을 작성했습니다.
- 필터링: 모든 예시가 스크래치 엔진에서 실제로 작동하는지 확인했습니다.
새로운 자 (SAC):
단순히 일치하는 단어를 세는 대신, 그들은 **의미론적 정렬 일관성(Semantic Alignment Consistency, SAC)**이라는 새로운 측정 도구를 발명했습니다.
- 이것은 체크리스트와 같습니다.
- 설명에 올바른 트리거(예: 초록색 깃발)가 언급되었는가?
- 올바른 동작(예: 움직이기)이 언급되었는가?
- 올바른 숫자(예: 10걸음)가 포함되었는가?
- SAC는 이 리스트의 모든 항목을 확인합니다. 만약 AI가 "트리거"는 맞혔지만 "숫자"를 틀렸다면, 나머지 문장이 아무리 완벽해 보여도 체크리스트에는 빨간색 X 표시가 나타납니다.
3. 큰 발견: AI는 흉내는 잘하지만, 의미 파악은 못 한다
연구진은 몇몇 똑똑한 AI 모델들(GPT-4 및 오픈 소스 모델 등)을 이 새로운 테스트로 실험했습니다. 결과는 다음과 같습니다.
- 성공의 환상: 기존 방식의 테스트(단어 세기)를 사용할 때, AI는 놀라울 정도로 우수해 보였습니다. 단어의 93%에서 97%를 맞혔습니다. 마치 무엇을 해야 할지 정확히 아는 것처럼 들렸습니다.
- 현실 점검: 새로운 SAC 체크리스트를 사용했을 때, AI의 점수는 급격히 떨어졌습니다. AI의 답변 중 의미론적으로 완벽하게 옳은 것은 약 **18%**뿐이었습니다.
- "장기전"의 문제: 스크래치 프로젝트가 길고 복잡해질수록, AI는 여전히 정답과 매우 유사하게 들림에도 불구하고 세부 사항을 맞히는 능력은 점점 더 떨어졌습니다.
AI는 어디에서 실패했을까요?
AI는 "반복문"이나 "변수"가 필요하다는 식의 "큰 그림"은 잘 파악했습니다. 하지만 운영상의 세부 사항에서 계속 실수를 저질렀습니다.
- "앞으로 이동"이라고 해야 할 것을 "뒤로 이동"이라고 말했습니다.
- "10번 반복"이라고 해야 할 것을 "5번 반복"이라고 말했습니다.
- 조건(예: "벽에 닿았을 때" vs "고양이에 닿았을 때")을 잘못 설정했습니다.
이는 마치 어휘 목록은 완벽하게 외웠지만, 덧셈을 해야 할 곳에 뺄셈을 해서 수학 문제를 틀려버린 학생과 같습니다.
4. 해결책: "제2의 의견"
또한 이 논문은 AI가 답변을 생성한 후에 이 새로운 체크리스트(SAC)를 사용하여 실수를 바로잡을 수 있음을 보여주었습니다.
- AI가 10가지 버전의 프로그램을 작성한다고 가정해 봅시다.
- 첫 번째 것을 바로 선택하는 대신, 10가지 버전을 모두 SAC 체크리스트에 통과시킵니다.
- 그중 체크리스트와 가장 잘 일치하는 것을 선택합니다.
- 결과: 이 간단한 단계만으로도 AI를 새로 학습시키거나 가르치지 않고도 AI의 정확도를 크게 향 향상시킬 수 있었습니다.
요약
이 논문은 블록 기반 프로그래밍(스크래치와 같은)의 경우, 단순히 비슷해 보이는 것만으로는 부족하다고 결론짓습니다. AI는 프로그래머처럼 보일 수는 있지만, 실제로 프로그래머가 될 수는 없습니다. 이 분야의 AI를 진정으로 평가하려면, "도장(단어)"이 아니라 "톱니바퀴와 바퀴(구체적인 동작과 숫자)"를 확인해야 합니다. 그들은 바로 이를 수행할 수 있는 도구를 만들어냈습니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.