
클라우드 AI는 바둑 게임을 순식간에 만들었지만, 로컬 LLM은 2시간 반 동안 방황했다 — '계속'을 입력하며 보낸 아침의 기록
요약
클라우드 AI와 로컬 LLM을 이용해 바둑 게임을 구현하는 과정을 비교한 실험 기록입니다. 클라우드 AI는 단번에 완성한 반면, 로컬 LLM은 출력 토큰 제한 문제로 인해 긴 코드를 생성하는 데 실패하며 구조적 한계를 드러냈습니다.
핵심 포인트
- 클라우드 AI는 몬테카를로 알고리즘을 포함한 완성도 높은 코드를 즉시 생성함
- 로컬 LLM은 출력 토큰 제한(max output tokens)으로 인해 긴 코드 생성 시 오류 발생
- 단일 응답 길이가 긴 태스크에서는 모델의 지능보다 출력 상한이 결정적 요인임
- 복잡한 작업 시에는 작업을 세분화하여 요청하는 전략이 필요함
바둑을 두고 싶다. 단, 인터넷에는 연결하고 싶지 않다.
……라는 수요가 세상에 얼마나 있을지는 모르겠습니다. 다만, 적어도 저는 그랬습니다. 온라인 대전은 상대가 있다는 사실에 기가 빨리고, 무료 바둑 사이트는 광고투성이입니다. 그렇다고 근처에 바둑을 둘 상대도 없습니다. 옛날 방식의 패키지 소프트웨어를 살 정도도 아닙니다. "광고가 없고, 오프라인으로 완결되며, 적당한 실력을 가진 AI와 둘 수 있는 바둑"이 파일 하나로 손에 있다면 그것으로 충분합니다.
AI에게 바둑 게임 구현은 그리 어렵지 않을 것이다——라고 생각하여, AI에게 만들어 보게 했습니다. 클라우드 AI와 내 PC에서 돌아가는 로컬 LLM 양쪽 모두에게 말이죠.
결과는 상상 이상으로 잔혹한 비대칭이 되었습니다.
클라우드 측: 순식간이었다
먼저 결론부터 말하자면, 클라우드 AI(Gemini)는 순식간에 만들었습니다.
손에 남은 것은 2,049행의 단일 HTML 파일입니다. 브라우저로 열기만 하면 작동합니다. 판의 묘사, 착수의 합법성 판정, 집 계산, 그리고 AI의 실력 3단계. 놀라운 점은 Level 3의 구현이었는데, 코드를 열어보니 getLevel3Move(game, simulations = 300)라는 함수가 있었습니다.
즉, 종국까지의 랜덤 시뮬레이션을 수백 번 실행하여 승률이 높은 수를 선택하는 몬테카를로 방법(Monte Carlo method)의 바둑 AI가 JavaScript로 직접 작성되어 있었습니다. 9로판(9x9)이라면 350회, 그 이상이라면 250회와 같이 보드 크기에 따라 시뮬레이션 횟수를 조정하는 섬세함까지 갖추고 있었습니다.
프로 기사에게 이길 정도의 수준은 아닙니다. 하지만 "광고 없이 오프라인으로 바둑을 두고 싶은 사람"의 요구는 완벽하게 충족합니다. 대화는 몇 번 주고받는 정도였고, 체감상으로는 "순식간"이었습니다.
로컬 측: 2시간 반의 미궁
같은 주제를 내 PC에서 돌아가는 로컬 LLM에게 던졌습니다. 클라우드가 할 수 있다면, 시간이 걸리더라도 로컬에서도 할 수 있을 것이다——당시의 저는 그렇게 생각했습니다.
그날 아침의 조작 로그가 남아 있습니다. 제가 AI에게 보낸 입력만을 타임스탬프와 함께 그대로 인용하겠습니다 (에이전트의 응답은 길어서 생략하지만, 흐름은 입력 쪽만으로도 충분히 전달될 것이라 생각합니다).
07:41 너 바둑 알아 일본 게임 만들 수 있어 난이도 조절 가능한 거
07:42 계속
07:43 Response truncated (finish_reason='length') - model hit max output tokens
...
07:41에 시작하여 10:11에 "실패한 원인이 뭐야?"로 끝납니다. 2시간 반입니다. 오타(heml)를 고칠 기력조차 잃어버린 점을 보면 당시의 정신 상태가 드러납니다.
무엇에 패배했는가: 지능이 아니라 "출력의 상한"
로그를 다시 살펴보니 패인은 명확했습니다. 로컬 LLM이 바둑 규칙을 모르는 것이 아니었습니다. 벽은 finish_reason='length' ——한 번의 응답으로 내보낼 수 있는 토큰(Token) 수의 상한이었습니다.
2,000행의 HTML은 로컬의 작은 출력 상한에 도저히 담기지 않습니다. 그러면 어떤 일이 벌어지는가.
- 코드가 중간에 끊긴다
- 내가 "계속"이라고 입력한다
- 이어서 나오는 내용은 이전 조각과 미묘하게 어긋나는 형태로 생성된다
- 어딘가에서 망가져서
/reset을 하고 처음부터 다시 시작한다 - 다시 1번으로 돌아간다
클라우드 모델이 같은 주제를 단번에 완성할 수 있는 것은 똑똑함도 있겠지만, 한 번에 내뱉을 수 있는 길이가 애초에 차원이 다르기 때문입니다. 방대한 하나의 결과물을 만드는 태스크에서는 이 차이가 "시간을 들여 따라잡을 수 있는" 종류의 것이 아니라, 구조적으로 메울 수 없는 것이었습니다.
아이러니한 것은 로그의 07:49에서 저 스스로 정답을 말하고 있었다는 점입니다. "네가 스스로 작업을 세분화해서 만들어라". 그 말이 맞습니다. 판 로직, 묘사, AI, UI를 부품으로 나누어 하나씩 생성하고 결합했다면 로컬 LLM으로도 완성에 가까워질 수 있었을 것입니다. 다만 당시의 셋업에는 그 분할 정복(Divide and Conquer)을 자율적으로 완수할 메커니즘이 없었습니다. 세분화 지시를 내려도 부품 간의 정합성을 가로질러 관리할 "설계자"가 부재했던 것입니다.
그 후의 운용에 어떻게 활용되었나
이 실패는 현재 저희의 AI 운용의 원형이 되었습니다. 현재는 여러 AI를 계층화하여 사용하고 있으며, 배분의 원칙은 바로 이 아침에 배운 것 그 자체입니다.
- 하나의 거대한 결과물을 한 번에 만들어내는 작업은 클라우드의 거대 모델에게 맡긴다.
- 로컬 LLM에는 출력 제한 (output limit) 범위 내에 들어오는 입도(granularity)로 쪼개진 작업만을 맡긴다 (요약·선별·정형 처리 등은 로컬에서도 충분히 수행 가능합니다. 실제로 매일 아침 정보 수집을 위한 선별 작업은 지금도 로컬이 무료로 수행하고 있습니다). 쪼개는 작업(=설계와 통합)은 상위 AI나 인간이 담당한다.
"로컬에서 전부 할 수 있다면 무료일 텐데"라는 꿈은, 이 2시간 반 동안 한 번 제대로 깨져버려서 다행이라고 생각합니다. 깨진 파편들을 어디에 둘지 결정하는 것이 곧 운용 설계가 되었기 때문입니다.
마치며: 게임은, 존재한다
참고로 바둑 게임 본체는 지금도 제 수중에 있습니다. 광고는 나오지 않습니다. 인터넷에도 연결되지 않습니다. 실행하면 네온 톤의 바둑판이 나타나며, Level 3는 가끔 제가 감탄할 만한 수를 두기도 합니다.
"인터넷에는 거부감이 있지만 바둑은 두고 싶은 사람"이 이 세상에 몇 명이나 있을지는 여전히 알 수 없습니다. 다만, 그런 니치(niche)한 단 한 사람을 위한 도구를 대화 몇 번의 왕복만으로 만들 수 있는 시대가 되었다는 사실 자체가, 이 이야기의 가장 밝은 결론이라고 생각합니다.
(그리고 그 이면에서 "계속", "계속"이라고 계속 입력했던 2시간 반이, 가장 인간적인 기록으로 남았습니다)
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기