엔지니어링

AI beatmap 생성을 인터랙티브하게 느껴질 만큼 빠르게 만든 방법

1분 이상 걸리던 osu! mania mapset 전체를 GPU 시간 약 20초로: ManiaGAI 요청에서 시간이 어디에 쓰이는지, 그리고 브라우저부터 배치 난이도 생성까지 그 시간을 줄인 결정들.

몇 분씩 기다려야 하는 생성기는 배치 작업입니다. 곡을 제출하고, 다른 일을 하다가, 돌아와서 나온 결과를 확인하죠. 마음에 들지 않으면 다른 스타일이나 다른 난이도 조합을 시도할 때마다 또 기다려야 합니다. 몇 초 만에 답하는 생성기는 도구입니다. 시도하고, 들어 보고, 조정하고, 다시 시도할 수 있습니다.

그 차이 때문에 ManiaGAI 버전 2에서는 지연 시간을 마지막에 최적화할 대상이 아니라 시스템 전체에 걸친 설계 제약으로 다뤘습니다. 버전 1은 mapset 하나에 1분 이상 걸렸습니다. 버전 2는 일반적인 곡의 mapset 전체에 GPU 시간 약 20초가 걸립니다. 곡과 요청한 난이도에 따라 보통 13초에서 25초입니다. 그 시간이 어디에 쓰이는지, 그리고 나머지 시간을 없앤 결정들을 소개합니다.

요청 하나의 구조

  1. 내 브라우저
  2. 타이밍 ∥ 음악 특징
  3. Planner
  4. Noter
  5. 검증
  6. 다운로드

v2 출시 당시 실제 운영 환경에서 측정한 실행 하나: 2:50 길이의 곡, 난이도 5개, NVIDIA T4 GPU에서 — 총 12.7초.

ManiaGAI v2 생성 1회의 단계별 소요 시간
단계시간
타이밍 + 음악 특징 (동시 실행)3.8 s
계획 (모든 난이도)1.0 s
노트 생성 (난이도 5개 전체)6.1 s
전체 실행12.7 s

v2 출시 시스템(2026년 10월 1일)에서 곡 하나에 대한 GPU 연산 시간이며, 업로드, 대기열, 다운로드 시간은 포함하지 않습니다.

1. 만들기 버튼을 누르기 전에 오디오 작업 끝내기

업로드된 모든 곡은 모델이 쓸 수 있도록 디코딩하고, 음량을 정규화하고, 하나의 일관된 형식으로 다시 인코딩해야 합니다. 서버에서라면 GPU가 기다려야 하는 몇 초짜리 작업입니다. ManiaGAI에서는 이 작업이 파일을 고르자마자 브라우저에서 진행됩니다. 아직 키 수와 난이도를 고르고 있는 동안에요. 만들기 버튼을 누를 즈음이면 대개 작업이 끝나 있습니다. 느린 기기에서 곡 준비가 20초 넘게 걸리면 서버가 대신 맡기 때문에, 이 최적화 때문에 누군가 기다리는 일은 없습니다.

2. 타이밍과 음악 이해를 나란히 실행하기

계획을 시작하기 전에 곡에 대해 알아야 할 것이 두 가지 있습니다. 타이밍 그리드(오픈소스 Beat This 모델과 저희의 자체 그리드 피팅)와 음악 특징(MERT 음악 모델)입니다. 둘은 서로 의존하지 않으므로 서로를 기다리지 않습니다. GPU가 Beat This와 MERT를 돌리는 동안 그리드 피팅은 CPU에서 동시에 진행됩니다. 위 실행에서 이해 단계 전체는 3.8초가 걸렸습니다.

3. 모든 난이도를 한 번에 생성하기

ManiaGAI mapset에는 난이도가 최대 열 개까지 들어갑니다. 하나씩 차례로 생성하면 시간이 난이도 수만큼 곱해집니다. 대신 요청한 모든 난이도를 하나의 배치 GPU 패스로 함께 계획하고 생성합니다. 같은 곡, 같은 음악 특징을 공유하고 목표만 다르기 때문입니다. 그래서 위 실행에서 난이도 다섯 개의 노트 생성이 6.1초 안에 끝났습니다.

4. 노트를 하나씩 쓰는 대신 채보 전체를 다듬기

노트 모델은 비자기회귀 방식입니다. 곡의 처음부터 끝까지 토큰을 하나씩 만드는 대신, 정해진 횟수의 정제 단계로 채보 전체를 만듭니다. 그래서 채보에 노트가 몇 개가 되든 모델 스텝 수는 고정입니다. (모델이 왜 이렇게 작동하는지는 따로 다룹니다: Planner + Noter 글.)

5. 처음부터가 아니라 스냅샷에서 시작하기

생성은 서버리스 GPU 워커에서 실행됩니다. 즉 요청이 도착했을 때 워커가 항상 실행 중인 것은 아닙니다. 아무것도 없는 상태에서 모델을 불러오고 모든 것을 준비하면 첫 요청에 몇 초가 더해집니다. 대신 모든 것을 불러오고 준비를 마친 뒤 찍어 둔 메모리 스냅샷에서 워커를 복원하기 때문에, 새 워커도 모델을 불러오느라 시간을 쓰지 않고 약 1초 만에 준비됩니다.

6. 결승선에서 기다리지 않기

예전에는 마지막 단계들이 저마다 지연을 더했습니다. 이제는 채보가 준비되는 순간 다운로드용 .osz가 만들어지고, 생성이 끝나는 즉시 완성된 맵이 내 채보에 저장됩니다. 페이지를 떠났더라도요. 생성기의 진행 표시는 각 생성이 실제로 어느 단계에 있는지 보여 주므로, 기다림이 수수께끼가 되는 일은 없습니다.

채보는 그대로, 속도는 다시 더 빠르게

2026년 10월 8일, 생성 시스템의 더 빠른 구현을 배포했습니다. 이제 맵 생성 속도가 약 두 배 빨라졌고, 채보는 완전히 동일합니다. 같은 입력, 같은 출력입니다. 이 변경에는 엄격한 원칙을 세웠습니다. 모델이 쓰는 결과를 바꾸는 속도 개선은 모델 변경이며, 모델 변경으로서 평가받아야 한다는 것입니다. 줄어든 것은 기다리는 시간뿐입니다.

속도가 가져다주는 것

속도는 ManiaGAI를 쓰는 방식을 바꿉니다. 두 번째 스타일이나 다른 난이도 조합을 시도하는 데 몇 초면 되고, 미리 보고 다운로드하는 흐름이 자연스러워지며, 무료 요금제를 계속 운영할 수 있게 됩니다. 저희가 모델만이 아니라 브라우저부터 다운로드까지 요청 전체를 최적화하는 이유도 여기에 있습니다. 플레이어가 체감하는 것은 GPU 시간이 아니라 기다리는 시간이니까요.

이 단계들이 시스템 안에서 어디에 있는지는 기술 페이지에서, 언제 무엇이 바뀌었는지는 변경 사항에서 확인하세요.