How good are LLMs at fixing their mistakes? A chatbot arena experiment with Keras and TPUs
Quick Summary
간단한 일정 관리 대화 실험에서 대규모 언어 모델의 실수 수정 능력을 비교한 결과, 최신 3B~9B급 모델은 대체로 피드백을 반영했지만 소형·구형 모델은 형식 준수와 문맥 유지에서 반복적으로 실패했으며 모델 크기만으로 성능이 보장되지는 않았다.
🖼️ 인포그래픽

🖼️ 4컷 인포그래픽

💡 한 줄 요약
간단한 일정 관리 대화 실험에서 대규모 언어 모델의 실수 수정 능력을 비교한 결과, 최신 3B~9B급 모델은 대체로 피드백을 반영했지만 소형·구형 모델은 형식 준수와 문맥 유지에서 반복적으로 실패했으며 모델 크기만으로 성능이 보장되지는 않았다.
📌 핵심 요약
- 저자는 대규모 언어 모델이 어려운 문제를 대신 해결하는 것보다 반복적이고 지루한 코딩 작업을 처리하고, 실수했을 때 짧은 자연어 피드백만으로 결과를 고치는 보조 도구가 되기를 기대한다.
- 실험에서는 일정 추가·삭제 요청을 정해진 파이썬 API 호출 한 줄로 변환하게 하고, 연도 수정, 같은 날의 후속 일정, 일정 시간 변경, 다음 날 계산, 기존 일정 취소까지 이어지는 대화 문맥을 평가했다.
- 여러 모델을 나란히 대화시키기 위해 Spaces와 Gradio로 챗봇 아레나를 구성하고, TPU의 메모리에 모델을 분산 배치해 Keras·JAX 기반의 여러 소형 언어 모델을 동시에 적재했다.
- 첫 요청을 다섯 번 반복한 신뢰성 평가에서는 Gemma 2 9B, Llama 3.1 8B, Llama 3.2 3B, CodeGemma 7B가 매번 올바른 API 호출을 생성했지만 1B~2B급 모델과 Vicuna 같은 구형 모델은 크게 흔들렸다.
- 전체 대화에서는 Gemma 2 9B와 Llama 3.1 8B가 실수를 수정하며 끝까지 과제를 수행했지만, 소형 모델은 불필요한 설명, 날짜·시간 혼동, 형식 오류를 반복했고 Gemini도 여러 차례 추가 지시가 필요해 큰 모델이 항상 더 낫지는 않음을 보여주었다.
🧩 주요 포인트
- 저자는 대규모 언어 모델이 어려운 문제를 대신 해결하는 것보다 반복적이고 지루한 코딩 작업을 처리하고, 실수했을 때 짧은 자연어 피드백만으로 결과를 고치는 보조 도구가 되기를 기대한다.
- 실험에서는 일정 추가·삭제 요청을 정해진 파이썬 API 호출 한 줄로 변환하게 하고, 연도 수정, 같은 날의 후속 일정, 일정 시간 변경, 다음 날 계산, 기존 일정 취소까지 이어지는 대화 문맥을 평가했다.
- 여러 모델을 나란히 대화시키기 위해 Spaces와 Gradio로 챗봇 아레나를 구성하고, TPU의 메모리에 모델을 분산 배치해 Keras·JAX 기반의 여러 소형 언어 모델을 동시에 적재했다.
- 첫 요청을 다섯 번 반복한 신뢰성 평가에서는 Gemma 2 9B, Llama 3.1 8B, Llama 3.2 3B, CodeGemma 7B가 매번 올바른 API 호출을 생성했지만 1B~2B급 모델과 Vicuna 같은 구형 모델은 크게 흔들렸다.
- 전체 대화에서는 Gemma 2 9B와 Llama 3.1 8B가 실수를 수정하며 끝까지 과제를 수행했지만, 소형 모델은 불필요한 설명, 날짜·시간 혼동, 형식 오류를 반복했고 Gemini도 여러 차례 추가 지시가 필요해 큰 모델이 항상 더 낫지는 않음을 보여주었다.
🧠 상세 정리
1. 지루한 작업을 맡기는 대화형 코딩 보조 도구
저자가 원하는 것은 대규모 언어 모델이 거대한 문제를 통째로 해결하는 시스템이 아니라, 사람이 하기 싫어하는 반복 작업을 빠르게 처리하는 보조 도구다. 소개된 연구에서는 캐글 문제를 데이터 형식 확인이나 표 형식 변환 같은 작은 작업으로 수동 분해하고, 모델이 각 작업의 코드를 생성한 뒤 단위 테스트를 통과할 때까지 반복하게 했다. 저자는 이런 방식이라면 사람이 문제를 올바르게 정의하고 해결 단계를 설계하는 데 집중하면서 데이터 재구성 같은 단순한 코드는 인공지능에 맡길 수 있다고 본다. 다만 이런 작업 방식이 실제로 효율적이려면 모델이 처음부터 완벽해야 하는 것이 아니라, 코드의 문제를 평범한 문장으로 알려주었을 때 지시를 이해하고 정확히 수정할 수 있어야 한다.
2. 일정 관리 API로 구성한 단순한 수정 실험
실험의 시스템 지시는 모바일 음성 비서가 사용자의 요청을 일정 추가와 삭제를 위한 파이썬 API 호출로 변환한다는 설정이며, 모든 답변은 실행 가능한 코드 한 줄이어야 한다. 일정 추가에는 제목, 연월일, 시각, 분 단위 지속 시간이 필요하고, 지속 시간이 주어지지 않으면 30분을 기본값으로 사용하게 했다. 대화는 11월 11일 오후 5시에 프레드와의 회의를 추가하는 요청으로 시작한 뒤, 현재 연도가 2024년이라는 피드백을 주어 기존 호출의 연도를 고치도록 요구한다. 이어 같은 날 오후 8시 록 콘서트를 추가하고 지속 시간을 3시간으로 바꾸며, 다음 날 오전 8시에 폴과의 30분 회의를 넣은 다음 프레드와의 회의를 취소하게 한다. 따라서 평가는 단순한 문장 변환뿐 아니라 이전 일정의 날짜를 재사용하고, 상대적인 날짜를 계산하며, 수정 대상과 새 요청을 구분하고, 엄격한 출력 형식을 계속 유지하는 능력까지 확인한다.
3. 두 모델을 나란히 평가하는 챗봇 아레나
저자는 서로 다른 모델과 두 개의 대화를 동시에 진행하고, 한쪽 모델이 틀렸을 때 그 대화만 멈춰 추가 피드백을 주며 수정 과정을 관찰할 수 있는 환경을 원했다. 이를 위해 Spaces 위에 Gradio 인터페이스를 구축하고 Keras, JAX, TPU를 연결해 여러 챗봇을 선택하며 대화할 수 있는 아레나를 만들었다. 이 구성은 첫 답변의 정답 여부만 비교하는 데 그치지 않고, 동일한 대화 흐름 안에서 모델이 지적을 받아들이는 방식과 이전 오류를 되풀이하는지를 직접 확인하게 해준다. 또한 여러 모델을 메모리에 미리 적재해 둠으로써 실험 도중 모델을 빠르게 전환할 수 있고, 사용자가 공개된 아레나를 직접 실행하며 같은 시나리오를 시험할 수 있도록 했다.
4. TPU 메모리와 Keras·JAX 기반의 모델 분산
TPU를 선택한 이유는 빠른 추론 속도와 여러 모델을 함께 올릴 수 있는 큰 메모리 용량이다. 사용된 TPU v5e 2x4 구성은 8개 코어마다 16GB 메모리를 제공해 전체 128GB를 사용할 수 있으며, 모델을 모든 코어에 분산하면 여러 개의 약 8B급 및 약 2B급 모델을 bfloat16 형식으로 동시에 적재할 수 있었다. JAX는 XLA 컴파일러를 바탕으로 TPU에 적합한 실행 환경을 제공하고, Keras는 JAX뿐 아니라 파이토치와 텐서플로 위에서도 동작하면서 KerasHub의 사전 학습 언어 모델과 일부 허깅페이스 체크포인트를 불러올 수 있게 한다. Keras의 모델 병렬화 기능은 장치 격자에 맞는 기본 배치 지도를 제공해 모델 가중치를 8개 코어의 메모리에 나누는 작업을 단순화했다. 다만 실제 적재 과정에서는 적용된 분산 상태를 시각화하며 디버깅해야 했고, 일부 모델에는 배치 지도 조정도 필요했다.
5. 실용성을 고려한 10B 미만 모델 선정
실험 대상은 대부분 매개변수 10B 미만의 모델로 제한되었는데, 여러 모델을 같은 TPU 메모리에 동시에 적재하기에 실용적이기 때문이다. 일정 요청을 API 호출로 바꾸고 오류 지시를 반영하는 과제 자체가 비교적 단순하므로, 저자는 이런 규모의 모델도 충분히 처리할 수 있어야 한다고 보았다. 모든 대상은 대화가 가능하도록 지시 조정된 모델이며, Gemma, Llama 3, Mistral, Vicuna 계열과 코딩에 초점을 둔 CodeGemma가 포함되었다. 모델마다 대화 입력을 구성하는 방식이 다르기 때문에 구현에는 각 모델의 채팅 템플릿이 사용되었고, 공개된 데모 코드를 다른 Keras 기반 챗봇 실험에도 재사용할 수 있도록 했다.
6. 첫 요청을 다섯 번 반복한 신뢰성 평가
첫 번째 평가는 프레드와의 회의를 11월 11일 오후 5시에 추가하라는 동일한 요청을 각 모델에 다섯 번씩 제시해 결과의 일관성을 확인하는 방식이었다. 정확한 일정 추가 호출은 성공으로, API 형태는 갖췄지만 날짜 등 한 가지 오류가 있으면 부분 실패로, 알아볼 수 있는 API 호출이 없으면 완전한 실패로 표시했다. Gemma 2 9B, Llama 3.1 8B, Llama 3.2 3B, CodeGemma 7B는 다섯 번 모두 기대한 호출을 생성했지만, Llama 3.2 1B는 대부분 알아볼 수 없는 답을 내놓았고 Gemma 2B도 완전한 정답이 한 번뿐이었다. Vicuna 1.5 7B는 성공과 완전한 실패가 번갈아 나타났고 Mistral 7B도 일부 시도에서 날짜 등의 오류를 냈으며, 이 결과는 한 번 성공할 수 있다는 사실과 반복해서 신뢰할 수 있다는 사실이 다름을 보여준다.
7. 전체 대화에서 나타난 수정 능력과 대형 모델의 한계
전체 대화 평가는 처음 요청에서 연도를 의도적으로 생략해 모든 모델이 적어도 한 번은 수정 요청을 받도록 설계되었다. Gemma 2 9B와 Llama 3.1 8B는 연도 오류를 고친 뒤 록 콘서트 추가, 3시간 지속 시간 설정, 다음 날 폴과의 회의 추가, 프레드 회의 취소까지 유효한 API 호출로 수행했으며, Llama는 연도 수정에 한 번의 추가 지시가 필요했다. 비교 대상으로 사용한 온라인 Gemini는 실제 구글 캘린더 기능을 사용할 수 있어 매번 제공된 API만 사용하라는 별도 지시를 받아야 했고, 지속 시간 누락과 날짜 오류 등 여러 실수를 냈다. 일부 오류는 추가 피드백으로 고쳤지만 마지막 요청에서도 날짜를 잘못 처리해, 이 단순한 과제에서는 훨씬 큰 모델이라고 해서 가장 안정적인 결과를 내는 것이 아님을 드러냈다. 핵심 평가지표는 처음의 실수 자체보다 짧고 구체적인 지적을 받은 뒤 올바른 한 줄의 호출로 돌아올 수 있는지였다.
8. 소형·구형 모델에서 반복된 형식 및 문맥 오류
Llama 3.2 3B, Llama 3.2 1B, Gemma 2B를 대상으로 한 대화에서는 날짜 형식, 시각, 지속 시간, 괄호, API 선택, 한 줄 출력 제약이 연쇄적으로 무너지는 사례가 나타났다. 특히 1B급 모델은 한 오류를 고치라는 지시를 받은 뒤 다른 부분을 망가뜨리거나 여러 오류가 섞인 답을 생성해, 문제를 하나씩 지적하는 방식으로는 대화를 회복하기 어려웠다. 소형 모델 가운데 Gemma 2B만 전체 대화를 마쳤지만, 요청된 API 호출 외에 설명을 덧붙이는 습관을 억제하지 못했고 날짜와 시각을 계속 혼동했으며 같은 종류의 실수를 반복했다. 그럼에도 Gemma 2B는 구체적으로 오류를 지적하면 해당 부분을 고칠 수 있어 제한적인 수정 능력은 보여주었다. 이어진 비교에서는 구형 Vicuna 1.5 7B와 Mistral 7B, 코딩 작업에 적합할 것으로 기대된 CodeGemma 7B까지 모두 이 과제에서 어려움을 겪는 것으로 소개되며, 매개변수 수뿐 아니라 모델의 세대와 지시 준수 특성도 결과에 중요하게 나타났다.
🧾 핵심 주장 / 시사점
- 대규모 언어 모델의 실용성은 한 번 정답을 생성하는 능력보다 동일한 요청에 일관되게 응답하고, 자연어로 지적된 오류를 다른 부분을 훼손하지 않으면서 수정하는 능력에 달려 있다.
- 출력 형식이 엄격한 API 변환 작업에서는 날짜와 시각의 문맥 추적뿐 아니라 설명을 덧붙이지 않는 절제, 올바른 함수 선택, 필수 인자 유지가 동시에 요구되며 소형 모델은 이 제약들이 결합될 때 크게 흔들렸다.
- Gemma 2 9B와 Llama 3.1 8B가 전체 대화를 성공적으로 마친 반면 훨씬 큰 Gemini도 여러 수정 지시를 필요로 했으므로, 이 실험에서는 모델의 절대적인 크기가 단순한 도구 호출 작업의 신뢰성과 직접 일치하지 않았다.
✅ 액션 아이템
- 일정 추가·삭제, 연도 수정, 후속 일정, 시간 변경, 취소가 포함된 대화 흐름을 기준 시나리오로 고정해 실수수정 실험을 수행한다.
- 다섯 회 반복 요청 지표를 기준으로 Gemma 2 9B·Llama 3.1 8B·Llama 3.2 3B·CodeGemma 7B의 API 호출 신뢰도를 비교해 모델군별 성능 기준선을 정한다.
- 1B~2B급 및 구형 모델에서 나타난 불필요한 설명, 날짜·시간 혼동, 형식 오류를 분리해 실사용 적합성 평가 항목으로 점검한다.
❓ 열린 질문
- 모델 크기가 클수록 항상 유리하지 않다는 결과에서, 어느 지점부터 추가 파라미터가 실질 성능 개선으로 체감되지 않는가?
- 짧은 자연어 피드백 반복 수정을 할 때, 형식 준수와 문맥 유지 중 어느 실패 기준이 과제 완수 판정에서 더 엄격해야 하는가?
- TPU 메모리 분산 배치로 다중 모델을 동시에 적재했을 때, 응답 품질 저하 없이 안정적으로 유지되는 모델 수의 상한은 무엇인가?