겜조뉴스

copyright 2009(c) GAMECHOSUN

게임조선 네트워크

주요 서비스 메뉴 펼치기

커뮤니티 펼치기

게임조선

[NDC 26] 데이터도 커뮤니티도 없었다... 합성 데이터로 키운 AI, 메이플스토리 월드 '단풍' 개발기

 

 
넥슨이 주최하는 국내 최대 규모의 게임 개발자 콘퍼런스, '넥슨 개발자 콘퍼런스(이하 NDC)'가 6월 16일부터 18일까지 사흘간 판교 넥슨 사옥에서 개최됐다. 게임 기획, 프로그래밍, 비주얼아트&사운드 프로덕션 등 게임 개발과 서비스에 대한 경험을 공유하는 주제는 물론 특히, 올해는 인공지능(AI) 시대를 맞아 IP, 블록체인 트렌드, 글로벌 사례에 이르기까지 광범위한 주제를 다룬다.
 
 
넥슨코리아 메이플스토리 월드 퓨처유닛 한지성 개발자는 16일 '메이플스토리 월드 자체 LLM 단풍 개발기' 세션을 통해 AI 코드 어시스턴트 '단풍'의 개발 과정과 시행착오, 향후 개선 방향을 소개했다. 특히 개발 커뮤니티와 학습 데이터가 사실상 존재하지 않는 환경에서 합성 데이터를 활용해 모델을 학습시키고 실제 서비스까지 연결한 사례라는 점에서 관심을 모았다.
 

메이플스토리 월드는 이용자가 직접 콘텐츠를 제작하는 UGC 플랫폼이다. 이용자들은 메이플스토리 IP를 활용해 자신만의 게임과 월드를 제작할 수 있으며, 이를 위해 메이플스토리 월드 전용 스크립팅 언어인 mLua와 500개 이상의 네이티브 API를 이해해야 한다.
 
 
문제는 범용 생성형 AI가 이러한 개발 환경을 제대로 이해하지 못한다는 점이었다. 한 개발자는 "메이플스토리 월드 개발을 위해서는 mLua 문법과 수백 개의 네이티브 API, 플랫폼 특유의 컨텍스트를 알아야 하지만 범용 코드 생성 모델은 이를 충분히 이해하지 못했다"고 설명했다. 범용 AI는 메이플스토리 월드의 독자적인 컨텍스트와 mLua 문법을 제대로 이해하지 못해 잦은 문법 오류를 내거나 없는 이벤트를 만들어내는 등 실질적인 도움을 주기 어려웠다"며 도메인 특화 LLM인 '단풍'을 직접 개발하게 된 배경을 밝혔다.
 

단풍은 API 사용법 안내는 물론 특정 기능 구현 방법, 스크립트 작성 지원, 개발 관련 질의응답 등을 제공하는 메이플스토리 월드 전용 챗봇이다.
 
모델 개발의 가장 큰 걸림돌은 학습 데이터의 부재였다. 오픈된 대규모 개발 커뮤니티가 없어 크리에이터 센터, 공식 유튜브, API 문서 등 제한된 컨텍스트로부터 데이터를 스스로 확보해야 했다.
 
 
일반적인 프로그래밍 언어는 깃허브나 스택오버플로우, 오픈소스 커뮤니티 등을 통해 방대한 학습 데이터를 확보할 수 있다. 반면 메이플스토리 월드는 독자적인 플랫폼인 만큼 공개된 개발 커뮤니티 규모가 크지 않았고, 모델 학습에 활용할 만한 데이터도 충분하지 않았다.

넥슨은 이 문제를 합성 데이터로 돌파했다. 개발진은 크리에이터 센터 문서와 API 가이드, 공식 유튜브 콘텐츠 등 메이플스토리 월드 관련 자료를 기반으로 토픽과 서브 토픽을 추출한 뒤 질문 데이터를 자동 생성하는 파이프라인을 구축했다.
 
 
이후 생성된 질문에 대한 답변은 여러 AI 전문가 모델이 협업하는 'Expert Orchestration' 방식을 활용해 작성했다. 스크립트 생성에 필요한 API를 탐색하고, mLua 문법에 맞게 코드를 수정하며, 서버와 클라이언트 실행 환경을 고려해 검증하는 과정을 거친 뒤 최종적으로 챗봇 답변 형태로 변환하는 구조다.
 
여기에 Linter 기반 자동 필터링과 규칙 기반 수동 검수를 병행해 데이터 품질을 관리했다. 모델 학습은 CPT(Continued Pre-Training), SFT(Supervised Fine-Tuning), GRPO(Group Relative Policy Optimization)의 3단계를 거치며 성장했다.
 

첫 번째 단계인 CPT에서는 메이플스토리 월드의 API 문서와 튜토리얼을 학습시키고, mLua 문법 이해를 위해 FIM(Fill In the Middle) 방식을 활용했다. 이와 함께 논리 추론 능력을 키우기 위해 수학 문제를 함께 학습시켰다.

FIM은 코드 중간의 일부를 비워두고 AI가 빈칸을 채우도록 학습하는 기법으로, 실제 코드 문맥을 이해하는 능력을 높이는 데 효과적이다.

두 번째 단계인 SFT에서는 이용자의 의도를 이해하고 적절한 답변을 생성하도록 학습했다. 다만 이 과정에서 예상치 못한 문제가 발생했다. 메이플스토리 월드와 관련 없는 질문에도 답변을 시도하면서 과도한 환각(Hallucination)이 발생한 것이다.
 
 
이를 해결하기 위해 개발진은 강화학습 기법인 GRPO를 도입했다. GRPO는 동일한 질문에 대해 생성된 여러 답변을 비교 평가해 상대적으로 더 우수한 답변에 보상을 부여하는 방식이다. 이를 통해 모델이 단순히 답변을 생성하는 것을 넘어 스스로 생각하고 판단하는 과정을 학습하도록 설계했다. "수학 문제를 암산으로 한 번에 답을 내는 것보다 노트에 풀이 과정을 적어가며 푸는 것이 더 정확한 것과 같다"며, 이 생각하는 과정을 통해 단풍이 메이플스토리 월드와 무관한 질문은 유연하게 거절하고 정확도를 획기적으로 높일 수 있었다고 설명했다.
 

실제 서비스 이후 확인된 사용자 행동도 흥미로웠다. 개발진은 이용자들이 구체적인 구현 목표를 설명할 것으로 예상했지만 실제 질문은 "디펜스 게임 만들어줘", "UI 만들어줘", "캐릭터 이동은 어떻게 구현해?" 같은 단순 요청이 훨씬 많았다. 또한 전체 질문의 약 70%는 "이거 왜 안 돼?", "이거 어떻게 써?"와 같은 사용법 문의와 디버깅 관련 질문이었다.
 
초기 버전의 단풍은 안전성 확보를 위해 거절 응답 비율을 높게 설정했지만, 실제 이용 과정에서는 지나치게 많은 질문을 거절하는 문제가 확인됐다. 이후 개선 작업을 통해 사용자의 의도를 보다 적극적으로 파악하고 답변할 수 있도록 조정했다고 밝혔다.
 

한지성 개발자는 발표를 마무리하며 "합성 데이터를 활용해 데이터가 부족한 상황에서도 학습 데이터를 확보할 수 있었고, 단계별 학습을 통해 모델이 점진적으로 성장하는 과정을 확인할 수 있었다"고 설명했다.

이어 "현재의 단풍 역시 아직 부족한 점이 많다"며 "실제 이용자 피드백을 기반으로 모델을 지속적으로 개선하고, 보다 실질적인 개발 지원 도구로 발전시켜 나갈 계획"이라고 밝혔다.
 
[홍이표 기자 siriused@chosun.com] [gamechosun.co.kr]

ⓒ기사의 저작권은 게임조선에 있습니다. 허락없이 무단으로 기사 내용 전제 및 다운로드 링크배포를 금지합니다.

홍이표 기자의

댓글 0