Pesquisa

Por dentro do dataset de um mapper de osu! mania com IA

O ManiaGAI v2 aprendeu com 150.622 charts de osu! mania feitos por cerca de 14.500 mappers, muito além dos ranqueados. O que há no corpus e por que ele é assim.

A maior parte do trabalho em um gerador de beatmaps com IA não é o modelo. São os dados: decidir de quais charts vale a pena aprender, garantir que cada exemplo de treinamento tenha o timing correto e representar um chart de uma forma que capture o que o torna jogável. Este post mostra por dentro o corpus com que os modelos do ManiaGAI v2 aprenderam — o que tem nele e por que ele é assim.

O corpus em números

Charts
150.622
Músicas
86.255
Mappers
~14.500
Áudio único
4.227 h

São 150.622 charts de osu! mania feitos por pessoas, em 86.255 músicas, escritos por cerca de 14.500 mappers diferentes — 4.227 horas de áudio único. E ele não começou tão grande: o conjunto de treinamento cresceu de cerca de 83.000 charts até o tamanho atual durante o trabalho que virou a versão 2.

Não só mapas ranqueados

A escolha óbvia seria treinar só com mapas ranqueados — eles são revisados, o timing é conferido e eles representam o padrão de qualidade da comunidade. Decidimos não fazer isso. Os mapas ranqueados são uma fatia pequena e estilisticamente estreita do que as pessoas realmente mapeiam e jogam: neste corpus, são um chart em cada seis.

Charts de treinamento por status no osu!
Status no osu!ChartsPorcentagem
Ranked / Qualified24.89616,5%
Loved2.5301,7%
Pending, WIP e Graveyard114.21275,8%
Nunca enviados ao osu! (na maioria conversões de BMS / O2Jam)8.9846,0%

Status no osu! em outubro de 2026.

Três quartos dos charts estão em pending, work-in-progress ou no graveyard — mapas que nunca passaram pelo ranqueamento, o que não é o mesmo que mapas ruins: significa que ninguém os revisou, não que foram reprovados na revisão. Um modelo que aprende só com mapas ranqueados aprende os hábitos da seção ranqueada; um modelo que aprende com a comunidade inteira vê toda a variedade de jeitos de mapear.

Além do osu!: BMS e O2Jam

O corpus já abrange mais de um ecossistema de jogos de ritmo de rolagem vertical. 21.379 charts — 14% do conjunto, em todos os status — estão marcados como vindos de BMS ou O2Jam: 16.188 de BMS e 5.491 de O2Jam, com 300 marcados como ambos. Esses jogos têm as suas próprias tradições de charting, e ampliam o que os modelos veem.

Por número de teclas

Charts de treinamento por número de teclas
TeclasChartsPorcentagem
4K72.36248,0%
5K8.4425,6%
6K13.2358,8%
7K49.12932,6%
8K5.0903,4%
9K2.3641,6%

4K e 7K dominam — juntos, cerca de 80% do corpus. 8K e 9K são raros: alguns milhares de charts cada. Esse desequilíbrio importa para o treinamento, por isso as amostras são balanceadas entre números de teclas (e níveis de dificuldade) durante o treinamento, para que os charts de 8K e ★10 não sejam abafados pelos de 4K e ★4.

Por dificuldade

Star rating medida com o próprio algoritmo do osu!; mediana ★4,2, faixa ★0,5–13.

A maior parte do corpus fica entre ★1 e ★7, com uma cauda longa de charts difíceis acima de ★9. A faixa de dificuldade do ManiaGAI, de ★1 a ★10, fica onde os exemplos estão: cada estrela abaixo de ★10 tem mais de mil charts; acima disso, eles rareiam rápido. E 15,8% dos charts mudam de tempo no meio da música, então o tempo variável faz parte do que os modelos aprendem, não é um caso raro.

O que deixamos de fora

Abrangência não significa pegar tudo. Alguns charts ficam de fora porque ensinariam a coisa errada:

  • Charts inacabados — uma música mapeada pela metade ensina o modelo a parar de mapear no meio.
  • Duplicatas com rate edit — o mesmo chart acelerado ou desacelerado contaria os padrões de um mapper muitas vezes.
  • Charts gerados por IA, incluindo os nossos — um modelo treinado com mapas gerados aprende a imitar geradores, não mappers.

Uma única grade de timing para tudo

Cada chart do corpus tem o timing refeito no mesmo tipo de grade de timing que o gerador produz a partir do áudio. Parece um detalhe; é uma das decisões mais importantes do dataset. Na hora de gerar, os modelos posicionam as notas em relação ao timing que o ManiaGAI detectou, não ao timing de uma pessoa — então eles devem aprender a posicionar notas nesse mesmo tipo de grade. Treinar com o timing dos próprios mappers e gerar com o timing detectado ensinaria uma grade aos modelos e depois entregaria outra. (A precisão desse timing detectado tem um artigo próprio: o benchmark de timing.)

O que é preciso para aprender com ele

O áudio é codificado uma única vez em features musicais alinhadas à grade — cerca de 0,7 TB delas em disco. Todo o treinamento roda em uma única NVIDIA RTX 4070 Ti SUPER com 16 GB de memória. Em vez de retreinar do zero a cada mudança, o modelo de notas passa por fine-tuning contínuo conforme os dados e a grade de timing evoluem; quando mudamos a forma como a grade começa, os dois modelos foram retreinados com ela. A linhagem completa do modelo de notas da v2 soma cerca de 540 horas de GPU registradas — só a execução final levou cerca de quatro dias e cerca de cinco passadas por 16,9 milhões de janelas de treinamento — e a do planejador soma cerca de 40 a mais.

Nada disso é avaliado só pela loss de treinamento. Cada mudança é conferida nos próprios charts gerados: precisão de timing, dificuldade medida em relação ao alvo, jogabilidade.

O que dados abrangentes trazem — e o que não trazem

A abrangência é o que permite que um único modelo escreva 4K e 9K, ★1 e ★10, charts cheios de long notes e charts cheios de jacks, e siga o estilo que você pedir: os padrões existem em algum lugar do corpus. O que a abrangência não dá é um padrão de qualidade uniforme — alguns charts de um corpus da comunidade são melhores que outros, e um modelo aprende com todos eles.

Publicamos o que há nos dados e por quê; não publicamos em detalhe como eles são obtidos, filtrados e construídos. A página de Tecnologia explica onde os dados entram no sistema como um todo, e o artigo sobre o Planner + Noter fala dos dois modelos que aprendem com eles.