2B 의사결정 모델을 파인튜닝하여 맥에서 둠(Doom) 플레이하기 (오픈 소스, MLX)
요약
오픈 소스 도구 mlx-decision을 활용하여 Apple Silicon 환경에서 의사결정 모델을 파인튜닝하고 게임 플레이를 구현했습니다. 이 모델은 텍스트 대신 입력 프레임과 질문에 대한 확률적 답변으로 행동을 결정합니다. ViZDoom 데이터로 학습한 결과, 실제 Doom 아레나에서 평균 23.2킬의 높은 성능을 기록하며 실용성을 입증했습니다.
핵심 포인트
- Apple Silicon (Mac) 환경에서 의사결정 모델 구동 및 LoRA 파인튜닝 가능.
- 모델은 텍스트가 아닌 확률적 답변으로 행동(움직임/발사)을 결정함.
- ViZDoom 데이터 학습 후, 실제 Doom 아레나에서 평균 23.2킬 기록.
- 성능 지표 개선: '총을 쏘면 맞을 것' 정밀도 0.79 → 0.92 달성.
여러분은 아마도 대규모(large) 의사결정 모델이 게임을 하는 것을 보셨을 겁니다. 저는 또한 Mac에서 게임 이미지를 사용하여 모델을 학습시켜 플레이할 수 있는지 확인하고 싶었기 때문에, Apple Silicon에서 의사결정 모델을 실행하고 훈련하는 저의 오픈 소스 도구인 mlx-decision에 이미지 LoRA 파인튜닝을 추가했습니다. 작동 방식은 이렇습니다: 의사결정 모델은 텍스트를 작성하지 않습니다. 사용자는 입력(여기서는 게임 프레임)과 타이핑된 질문을 제공하고, 모델은 한 번의 패스(one pass)로 허용된 모든 답변에 대한 확률을 반환합니다. 매 프레임마다 d1-2B는 세 가지 질문에 답합니다: - 현재 조준경 바로 앞에 괴물이 있어 지금 쏘면 맞을까요? (예/아니요) - 가장 가까운 괴물은 어디에 있나요: 왼쪽, 중앙, 오른쪽, 없음? - 위험할 정도로 가까이한 괴물이 있나요? (예/아니요) 작은 Python 루프가 이 답변들을 움직임으로 변환합니다: 괴물 쪽으로 방향을 틀거나, 쏘면 맞을 때 발사하는 식입니다. 이는 결정당 약 0.1초가 걸립니다.
훈련 과정은 다음과 같습니다: ViZDoom의 Defend the Center 아레나에서 가져온 약 3,000개의 프레임이 게임 엔진 자체의 괴물 위치를 기준으로 라벨링되었습니다. 먼저 리드아웃 피트(readout fit)가 진행되었고 (7분 소요), 그 다음 비전 타워는 고정하고 모델의 텍스트 레이어에 LoRA를 적용했습니다 (43분 소요, 2 에포크, M5 Pro 사용). 510개의 별도 테스트 프레임에서 성능은 다음과 같습니다:
- "총을 쏘면 맞을 것": 정밀도(precision) 0.79 → 0.92
- 가장 가까운 괴물이 있는 위치: 92.7% → 96.8%
- 위험할 정도로 가까움: 93.9% → 98.3%
실제 플레이에서는 20 에피소드 동안 평균 23.2킬을 기록했습니다. 클립 중 가장 좋은 것은 26발의 총알로 26킬을 달성한 것입니다. 모델이 훈련에서 본 적 없는 괴물 스프라이트를 사용하는 Freedoom에서도 여전히 19.7킬을 얻었습니다. 물론 이곳은 전체 Doom 레벨이 아니라 방향만 틀 수 있는 아레나입니다.
필요 조건: Free, MIT 라이선스, Apple Silicon, macOS 14 이상, Python 3.12 이상. 단순히 pip install mlx-decision을 실행하면 됩니다. 저장소(Repo): https://github.com/armbues/mlx-decision
어떤 작업을 의사결정 모델로 파인튜닝할지, 그리고 다음에 어떤 모델들을 지원받고 싶은지에 대한 의견을 듣고 싶습니다. /u/armbues 님이 제출했습니다. [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기