DanceGAIOsuGAI의 작동 방식

OsuGAI의 작동 방식

OsuGAI는 노래를 osu! standard 맵셋 (mapset)으로 바꾸고 플레이필드에 히트 서클, 슬라이더, 스피너를 배치합니다. 곡을 계획하고 리듬과 위치를 생성한 뒤 결과를 검사합니다. 이 페이지는 2026년 10월 30일 공개된 v3.0을 설명합니다.

페이지 목차
  1. 01음악 이해
  2. 02곡 전체 계획
  3. 03리듬과 오브젝트
  4. 04배치와 기하 처리
  5. 05다운로드 전 검사

v3.0 측정 요약

학습 비트맵
157,209
모델 매개변수
~77M
학습 연산량
~78 GPU·h
보정 테스트의 평균 별점 오차
0.28★
유효성 테스트 통과 맵
36 / 36
Flower Dance · 난이도 6개 · T4
79 s

별점 테스트는 3곡, 목표 4개, 목표당 시드 하나를 사용했으며 2곡은 학습 데이터에 포함됐습니다. 별도의 유효성 테스트는 시드 3개를 사용했습니다. 작은 표본이므로 전반적인 품질을 보장하지 않습니다.

음악 이해

Beat This가 박과 마디의 첫 박을 감지하고 자체 타이밍 그리드 처리로 BPM과 오프셋을 구합니다. 변속 곡도 처리합니다. MERT-v1-95M의 음악 특징을 박마다 정렬하며 학습 맵에도 같은 종류의 그리드를 사용합니다. 조용한 도입부, 끝부분과 페이드아웃을 감지해 무음 구간을 비웁니다.

Beat This · MERT-v1-95M

곡 전체 계획

약 5.9M 매개변수의 가우시안 확산 플래너가 오브젝트를 놓기 전에 곡 전체를 구간별로 설명합니다. 음악과 요청 설정에 맞춰 난이도, 스타일, 휴식 구간을 함께 계획하므로 후렴은 촘촘하게, 조용한 간주는 휴식으로 만들 수 있습니다.

리듬과 오브젝트

주 모델은 누르기와 떼기, 오브젝트 종류, 슬라이더 반전, 새 콤보, 휴식과 슬라이더 속도를 생성합니다. MaskGIT 방식의 비자기회귀 Transformer로, 왼쪽에서 오른쪽으로만 쓰지 않고 여러 번 전체 맵을 다듬습니다. 리듬을 생성하고 정리한 뒤 세부 오브젝트와 속도를 추가합니다.

배치와 기하 처리

약 71M 매개변수의 공유 네트워크가 같은 음악 이해를 리듬과 배치에 재사용합니다. 제약 해결기가 오브젝트를 플레이필드 안에 두고 필요한 길이에 슬라이더 곡선을 맞추며 속도 변화를 기록합니다. 올바르게 만들 수 없는 난이도는 깨진 파일 대신 실패로 처리합니다. 24,000회 스트레스 테스트에서는 이 실패 경로가 필요하지 않았습니다.

조절할 수 있는 항목

★1~★10 목표를 고르고 난이도별로 설정합니다. 9개 스타일 조절은 슬라이더, 각도, 간격, 리듬, aim과 speed 등을 다룹니다. 맵 설정에는 CS, AR, OD, HP와 슬라이더 속도가 있습니다. 모델은 CS, AR, OD와 속도를 읽고 HP는 파일에 기록합니다. 선택한 난이도를 하나의 mapset으로 함께 생성합니다.

선택한 별점은 목표이고, 완성된 맵에는 실제 측정 난이도가 표시됩니다.

다운로드 전 검사

너무 가까운 입력과 지나치게 짧은 홀드를 정리하고 무음 속 오브젝트를 제거하며 기하를 검사합니다. osu! 알고리즘으로 측정한 별점을 난이도 이름에 사용합니다. 테스트에서는 osu!lazer로 맵을 파싱합니다. 같은 곡, 설정, 시드로 10회 반복했을 때 바이트 단위로 동일한 .osu 파일이 나왔습니다.

학습 데이터

총 157,209개 맵으로, ranked·approved·loved 132,032개와 ranked 영역 밖의 고난도 추가 맵 25,177개입니다. 기본 자료에는 약 56M 오브젝트가 있습니다. 고난도 선별에서 기믹 맵, AI 생성 맵과 검증·테스트 곡에 겹치는 자료를 제외합니다. 한 곡의 모든 난이도와 음원 버전은 같은 분할에 둡니다. 2026년에 ranked가 된 200곡은 학습에서 제외한 블라인드 테스트용으로 남겨 둡니다.

학습 방법

플래너와 주 네트워크를 처음부터 학습했습니다. 주 네트워크는 약 103만 스텝으로, ranked 자료부터 시작해 고난도 맵을 섞고 마지막에는 별점 균형 샘플링을 했습니다. 플래너는 60,000스텝입니다. RTX 4070 Ti SUPER 한 장에서 주 모델 약 68 GPU 시간, 플래너 약 10 GPU 시간을 사용했습니다. 검증 손실만이 아니라 생성된 맵을 보고 체크포인트를 선택했습니다.

측정 결과

아래 보정 테스트의 평균 절대 오차는 별 0.28개입니다. 작은 표본의 보정 확인이지 처음 보는 음악에 대한 성능 증명은 아니며 ★9~★10은 테스트하지 않았습니다. 별도의 3곡·목표 4개·시드 3개 테스트에서는 36개 모두 유효했습니다. 최종 평가에서 원본 모델의 오브젝트 1,000개당 리듬 문제 3.9건은 정리 과정으로 제거됐습니다.

보정 테스트 · v3.0 · 목표당 시드 하나
★Flower DanceRiver Flows in YouFREEDOM DiVE
21.921.892.38
43.633.904.61
65.495.536.02
88.278.108.38

24개 맵 테스트에서 사람이 넣은 휴식의 50%를 찾았고 휴식 시간의 35%를 덮었습니다. 생성한 휴식 약 60%가 사람의 휴식과 일치했습니다. 올바른 계획을 주면 24개 중 23개에서 휴식 개수가 정확했습니다. 이 측정은 출시된 플래너와 이전 네트워크를 사용했으므로 출시 시스템 전체 평가가 아닙니다.

생성 시작부터 플레이 가능한 맵까지

브라우저가 업로드 전에 오디오를 디코딩하고 정규화합니다. 서비스는 곡마다 타이밍과 음악 특징을 한 번 추출하고 선택한 난이도를 계획해 한 GPU 배치에서 함께 생성합니다. 정리, 별점 측정, 패키징을 거쳐 노래와 배경이 든 .osz를 만듭니다. 아래는 실제 서비스 NVIDIA T4의 Flower Dance 측정 예이며 대기 시간 보장이 아닙니다.

실서비스 T4 소요 시간 · Flower Dance
요청시간
난이도 1개21–32 s
난이도 3개42 s
난이도 4개54 s
난이도 6개 · 자동 분포79 s
난이도 9개116 s

v3.0의 변화

v2.0은 리듬과 배치 모델이 분리돼 있었습니다. v3.0은 네트워크를 공유하고 학습 맵을 10,428개에서 157,209개로 늘렸으며 휴식 계획, 가변 슬라이더 속도와 난이도별 스타일·맵 설정을 추가했습니다. T4의 Flower Dance 기록은 v2.0 난이도 4개 72초, v3.0 난이도 6개 79초입니다. 작업량이 다르므로 속도 배율로 비교할 수 없습니다.

알려진 한계

  • 작은 보정 테스트에서 ★4~★6은 목표보다 낮고 ★8은 조금 높았습니다. ★9~★10은 평가하지 않았습니다.
  • 사람의 휴식 약 절반을 놓치며 일부 생성 휴식 위치는 적절하지 않습니다.
  • 일부 곡은 특히 낮은 별점에서 스피너가 많습니다. 슬라이더 모양은 의도적으로 단순합니다.
  • 길고 빠른 곡에서 작은 타이밍 오차가 후반부 밀림으로 누적될 수 있습니다.
  • 새 콤보는 고정 규칙을 따릅니다. 커스텀 히트사운드, kiai 구간과 스토리보드는 없습니다.
  • 구조적 유효성이 재미나 좋은 설계를 증명하지는 않습니다. 생성 맵은 플레이와 연습용이며 ranked 영역용이 아닙니다.

앞으로의 작업

휴식 배치, 전체 별점 범위의 보정, 슬라이더 모양과 생성 속도를 개선하고 있습니다. v3.0의 블라인드 테스트와 슬라이더 자기 교차 측정은 아직 공개되지 않았습니다. TaikoGAI와 CatchGAI는 향후 제품입니다.

관련 기술 글

OsuGAI로 비트맵 만들기