FrameFlip48: 네 가지 모델, 하나의 프레임 전환, 두 가지 실패 유형
요약
본 글은 로봇 동작 프로그램에서 변환 프레임 추적 능력을 측정하는 'FrameFlip48' 벤치마크 결과를 공유합니다. 이 테스트는 LLM이 LOCAL(현재 방향 기준)과 WORLD(고정 축 기준) 모드에서 좌표를 정확히 계산하는지 평가하며, Gemini 3.1 Flash-Lite Preview, GPT-5.4 nano, Claude Haiku 4.5 등 여러 모델을 비교했습니다.
핵심 포인트
- FrameFlip48은 로봇의 LOCAL/WORLD 변환 프레임 추적 능력을 측정합니다.
- 모델들은 대화 맥락 없이 단일 JSON 응답으로 위치와 방향을 계산해야 합니다.
- Gemini 3.1 Flash-Lite Preview, GPT-5.4 nano, Claude Haiku 4.5 등 주요 모델들이 테스트되었습니다.
이 글은 Kaggle Benchmarking Challenge에 제출하는 내용입니다.
벤치마크한 내용 (What I Benchmarked)
FrameFlip48은 모델이 짧은 로봇 동작 프로그램에서 변환 프레임(translation frame)을 추적하는지 측정합니다. 총 24쌍의 매칭된 케이스가 있으며, 각 쌍은 동일한 숫자와 명령어를 가집니다. 한 프롬프트는 ACTIVE_FRAME = LOCAL이라고 제시하고, 그 대응되는 프롬프트는 ACTIVE_FRAME = WORLD라고 제시합니다. 이 케이스들은 개별적인 대화에서 실행되므로, 모델은 절대로 상대방의 답변을 받지 못합니다.
로봇은 정수 그리드 위를 움직입니다. 로봇의 회전(turns)은 90도의 배수 단위입니다. WORLD 모드에서는 변환이 고정된 동/북 축을 사용합니다. LOCAL 모드에서는 이 축들이 현재 방향에 따라 회전합니다. 회전 동작은 로봇 자신의 중심을 기준으로 이루어지며, 중심 자체를 이동시키지는 않습니다.
예를 들어, (2, -1)에서 시작하여 동쪽을 바라보다가 90도 반시계 방향으로 회전한 후, MOVE(3, 2)를 수행한다고 가정해 봅시다:
| 변환 프레임 | 최종 월드 위치 (Final world position) | 최종 방향 (Final heading) |
|---|---|---|
| WORLD | (5, 1) | 90° |
| LOCAL | (0, 2) | 90° |
좌표는 틀린 프레임으로 표현되어도 그럴듯해 보일 수 있습니다. 정확한 산술 계산은 이 테스트에 LLM 심사나 주관적인 평가가 필요 없는 정답(ground truth)을 제공합니다.
이 코퍼스에는 48개의 케이스가 포함되어 있으며, 네 가지 초기 방향과 2개, 4개, 8개의 명령어를 가진 프로그램으로 균형 있게 구성되어 있습니다. 각 쌍은 고유한 최종 LOCAL/WORLD 위치를 가집니다. 시드(seed) 고정 생성 방식은 오라클 속성만을 사용했으며, 모델의 출력이 케이스를 선택하지 않았습니다. 이 코퍼스는 평가 전에 동결되었으며, SHA-256 값은 590c916ee01d408b580f40a8f1d00262e79360cec46c18194ba8c6eb883d8e87입니다.
테스트한 모델 (Models Tested)
계획된 라인업은 세 개의 연구소에서 제공하는 소형 모델들을 사용했으며, 이들은 Kaggle의 이용 가능한 카탈로그에서 출력을 확인하기 전에 선택되었습니다. 모든 모델은 2026년 10월 2일의 동일한 고정 작업 버전 1(fixed task version 1)으로 실행되었습니다:
- Gemini 3.1 Flash-Lite Preview:
google/gemini-3.1-flash-lite-preview, run3955369. - GPT-5.4 nano:
openai/gpt-5.4-nano-2026-03-17, run3955370. - Claude Haiku 4.5:
anthropic/claude-haiku-4-5@20251001, run3955371.
Kaggle 태스크 생성 과정에서 Gemini 3.7 Flash (google/gemini-3.7-flash, 실행 ID 3955292)도 자동으로 실행되었습니다. 이 추가 결과는 폐기되지 않고 포함되었습니다.
모든 사례는 새로운 대화에서, 온도(temperature)를 0으로 설정하고, 도구(tools)가 제공되지 않은 상태로 하나의 응답을 받습니다. 추론은 각 모델의 플랫폼 기본 설정을 사용하므로, 이는 동등한 컴퓨팅 비교가 아닙니다. 프롬프트는 최종 위치와 정규화된 헤딩이 포함된 단 하나의 JSON 객체만을 요청합니다. 고정 파서(frozen parser)는 일반 또는 펜스 처리된 JSON과 정수 값을 허용하지만, 주변 설명은 거부합니다. 형식 오류(Formatting failures)는 별도로 보고됩니다. 전송/할당량 실패(Transport/quota failures)는 실행을 중단시키고 분모를 줄이지 않습니다. 네 가지 모든 실행이 완료되었습니다.
또한 Flash-Lite를 사용한 초기 실제 SDK 검증도 있었습니다: 48개 사례 중 10개, 24개 쌍 중 1개입니다. 이는 아래의 서버 비교와는 별개이며, 프롬프트/스코어러 변경이나 두 실행의 풀링(pooling)이 없습니다. 목업 SDK 확인 및 결정론적 기준선(deterministic baselines)은 모델 평가가 아닙니다. 전체 워크플로우는 Kaggle의 무료 추론 할당량 $0.2543933을 사용했으며, 실제 유료 지출액은 $0였습니다.
주요 발견 사항 (Findings)
주요 점수는 두 변형(variants) 모두 정확한 최종 자세를 가지고 출력 계약(output contract)을 만족하는 24개 쌍의 분율입니다. 이들은 다운로드된 응답으로부터 독립적으로 재채점되었으며, 공개 태스크 결과를 참조하십시오:
| 모델 | 24개 중 정확한 쌍 수 | 48개 중 엄격하게 정확한 사례 수 | 형식 오류 |
|---|---|---|---|
| Gemini 3.7 Flash | 24 | 48 | 0 |
| ... | |||
자세의 정확성(Pose correctness)과 출력 준수 여부(output compliance)는 별도의 진단이 필요합니다. Claude의 점수가 낮은 것은 형식 때문입니다: 모든 48개 응답은 최종 펜스 처리된 JSON 객체를 제시하기 전에 계산 과정을 설명합니다. 예를 들어, n8-h90-r0-world에 대한 답변은 여덟 개의 명령을 설명하고 `{ |
이를 관찰한 후, 독립적인 검토자가 동일한 사후 추출 규칙을 저장된 192개 응답 전체에 적용했습니다: 응답 전체에서 정확히 하나의 유효한 포즈 JSON 객체를 요구하며, 이 객체는 터미널(terminal)이어야 하고 선택적으로 감싸져 있어야 합니다. 그 앞의 설명은 무시됩니다. 이것은 기존 출력에 대한 분석일 뿐 모델 재실행이 아니며, 고정된 리더보드 점수를 대체하지 않습니다:
| 모델 | 사후 정확 포즈 수 / 48 | 사후 정확 쌍 수 / 24 |
|---|---|---|
| Gemini 3.7 Flash | 48 | 24 |
| ... | ||
| Claude의 나머지 네 가지 포즈 오류는 모두 로컬(LOCAL) 위치 오류입니다. 모든 헤딩과 24개의 월드(WORLD) 위치는 정확합니다. Flash-Lite의 엄격한 성공 사례는 모두 WORLD 케이스이며, 모두 두 개의 명령어 프로그램입니다. 따라서 약한 엄격 점수는 서로 다른 원인을 가집니다: Claude의 출력 준수 여부와 이 실행에서 두 가지 더 작은 모델들의 상당한 포즈 오류입니다. Gemini 3.7 Flash는 이 코퍼스의 한계에 도달했습니다. 그 마진을 측정하려면 더 어려운 확장이 필요할 것입니다. |
쌍 정확도(Pair accuracy)는 고정된 프레임 단축 경로를 방지합니다. 항상 WORLD 점수를 사용하여 24/48의 개별 케이스를 해결하지만 쌍은 0/24만 해결하는 결정론적 프로그램이 있습니다. Always-LOCAL도 같은 패턴을 보입니다: 정확한 오라클(oracle)은 48/48 케이스와 24/24 쌍을 해결합니다. 이것들은 LLM 결과가 아닌 로컬 코드 기준선입니다.
출력들이 더 약한 모델들이 그 단축 경로를 사용했다는 것을 입증하지는 않습니다. GPT-5.4 nano는 정확히 반대 프레임 일치(opposite-frame match) 사례가 하나 있습니다: n2-h180-r0-local의 경우, (0,6,90)을 반환하여 (0,4,90) 대신 WORLD 반사실과 일치합니다. 다른 오류에는 부정확한 헤딩과 관련 없는 위치들이 포함됩니다. 반대 프레임 일치는 내부 추론의 증거가 아니라 관찰 가능한 특징입니다. WORLD는 LOCAL보다 계산적으로 간단하며, 쌍을 이루는 설계는 동등한 추론 난이도가 아닌 숫자와 명령어를 제어합니다.
이것은 2D 쿼터-턴 모션에 대한 작은 합성 테스트일 뿐이며 로봇 공학 신뢰성 인증서가 아닙니다. 쌍을 이루는 멤버들은 수학적으로 종속적이며, 케이스당 하나의 응답으로는 실행 간 분산(run-to-run variance)을 추정할 수 없습니다. 다양한 플랫폼 기본 설정과 Flash-Lite 검증/서버 불일치 또한 광범위한 모델 순위를 제한합니다. 향후 버전에서는 혼합된 명령어별 프레임, 3D 회전 및 별도로 보고되는 도구 활성화 조건 등을 추가하여, 그 출력을 검사하기 전에 동결할 수 있을 것입니다.
나의 벤치마크
FrameFlip48 공개 Kaggle 벤치마크 컬렉션
이 컬렉션에는 소유한 태스크 버전 1과 네 가지 완성된 모델이 포함되어 있습니다. 이는 수치 태스크를 _평균 태스크 점수(Average of task scores)_로 집계합니다. 소스 노트북과 실행 결과, 그리고 원래 케이스, 프롬프트 및 정답을 사용하여 재현하거나 검사할 수 있습니다.
원본 코드는 MIT이며, 원본 합성 데이터는 CC0-1.0입니다. 공개 컬렉션 역시 Kaggle의 Apache 2.0 발행 약관 하에 있습니다. 외부 데이터셋, 비공개 정보 또는 참가자 응답은 사용되지 않았습니다. 이 태스크는 Kaggle Benchmarks SDK를 사용합니다. 일곱 개의 로컬 테스트가 통과했으며, 독립적인 정수 행렬 오라클이 48개의 모든 정답 및 48개의 반대 프레임 자세를 검사했습니다. 별도의 검토는 모든 엄격한 지표를 재현하고 192개의 점수가 매겨진 프롬프트/응답이 네이티브 SDK 추적과 일치함을 확인했습니다.
자율 워크플로우 공개: Codex 에이전트가 저를 대신하여 이 항목을 설계, 구현, 평가, 검토 및 작성했습니다. 저는 계정에 필요한 개인 인증을 완료했습니다. 벤치마크, 출력 및 해석은 공개적이므로 독자들이 직접 작업을 평가할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기