งานวิจัย

เจาะลึกชุดข้อมูลเบื้องหลัง AI ทำแมพ osu! mania

ManiaGAI v2 เรียนรู้จากชาร์ต osu! mania ที่คนทำ 150,622 ชาร์ต โดย mapper ราว 14,500 คน — ไกลกว่าแค่แมพ ranked ในคลังข้อมูลมีอะไรบ้าง แยกตามจำนวนคีย์ ความยาก และแหล่งที่มา และทำไมถึงสร้างแบบนี้

งานส่วนใหญ่ของ AI สร้าง beatmap ไม่ได้อยู่ที่ตัวโมเดล แต่อยู่ที่ข้อมูล: ตัดสินว่าชาร์ตไหนควรค่าแก่การเรียนรู้ ทำให้แน่ใจว่าตัวอย่างฝึกทุกตัวตั้งไทมมิ่งถูกต้อง และแทนชาร์ตในรูปแบบที่จับได้ว่าอะไรทำให้มันเล่นได้ บทความนี้พาไปดูข้างในคลังข้อมูลที่โมเดลของ ManiaGAI v2 ใช้เรียนรู้ — ข้างในมีอะไร และทำไมถึงเป็นแบบนี้

ภาพรวมของคลังข้อมูล

ชาร์ต
150,622
เพลง
86,255
Mapper
~14,500
เสียงที่ไม่ซ้ำกัน
4,227 ชม.

นั่นคือชาร์ต osu! mania ที่คนทำ 150,622 ชาร์ต จาก 86,255 เพลง เขียนโดย mapper ราว 14,500 คน — เป็นเสียงที่ไม่ซ้ำกัน 4,227 ชั่วโมง ตอนเริ่มไม่ได้ใหญ่ขนาดนี้: ชุดฝึกเติบโตจากราว 83,000 ชาร์ตมาเป็นขนาดปัจจุบัน ระหว่างงานที่กลายมาเป็นเวอร์ชัน 2

ไม่ใช่แค่แมพ ranked

ทางเลือกที่ชัดที่สุดคือฝึกเฉพาะกับแมพ ranked — ผ่านการรีวิว ไทมมิ่งถูกตรวจแล้ว และเป็นตัวแทนมาตรฐานคุณภาพของคอมมูนิตี้ แต่เราตั้งใจไม่ทำแบบนั้น แมพ ranked เป็นเพียงส่วนเล็ก ๆ และแคบในเชิงสไตล์ของสิ่งที่ผู้คนทำแมพและเล่นกันจริง: ในคลังข้อมูลนี้ มีเพียงหนึ่งในหกชาร์ต

ชาร์ตที่ใช้ฝึกแยกตามสถานะบน osu!
สถานะบน osu!ชาร์ตสัดส่วน
Ranked / Qualified24,89616.5%
Loved2,5301.7%
Pending, WIP และ Graveyard114,21275.8%
ไม่เคยส่งขึ้น osu! (ส่วนใหญ่แปลงมาจาก BMS / O2Jam)8,9846.0%

สถานะจาก osu! ณ เดือนตุลาคม 2026

สามในสี่ของชาร์ตอยู่ในสถานะ pending, WIP หรือ graveyard — แมพที่ไม่เคยผ่านกระบวนการ ranking ซึ่งไม่ได้แปลว่าเป็นแมพที่แย่: มันแปลว่ายังไม่มีใครรีวิว ไม่ใช่ว่ารีวิวแล้วไม่ผ่าน โมเดลที่เรียนจากแมพ ranked อย่างเดียวจะเรียนนิสัยของสาย ranked ส่วนโมเดลที่เรียนจากทั้งคอมมูนิตี้จะเห็นวิธีทำแมพของผู้คนครบทุกแบบ

ไกลกว่า osu!: BMS และ O2Jam

คลังข้อมูลนี้ครอบคลุมระบบนิเวศเกมจังหวะแบบเลื่อนแนวตั้งมากกว่าหนึ่งแห่งอยู่แล้ว 21,379 ชาร์ต — 14% ของทั้งชุด ในทุกสถานะ — ถูกแท็กว่ามีต้นทางจาก BMS หรือ O2Jam: 16,188 ชาร์ตจาก BMS และ 5,491 ชาร์ตจาก O2Jam โดยมี 300 ชาร์ตที่ถูกแท็กทั้งสองแบบ เกมเหล่านี้มีขนบการทำชาร์ตของตัวเอง และช่วยขยายสิ่งที่โมเดลได้เห็น

แยกตามจำนวนคีย์

ชาร์ตที่ใช้ฝึกแยกตามจำนวนคีย์
คีย์ชาร์ตสัดส่วน
4K72,36248.0%
5K8,4425.6%
6K13,2358.8%
7K49,12932.6%
8K5,0903.4%
9K2,3641.6%

4K และ 7K ครองส่วนใหญ่ — รวมกันราว 80% ของคลังข้อมูล ส่วน 8K และ 9K มีน้อย: อย่างละไม่กี่พันชาร์ต ความไม่สมดุลนี้มีผลต่อการฝึก ระหว่างฝึกจึงปรับสมดุลตัวอย่างตามจำนวนคีย์ (และระดับความยาก) เพื่อไม่ให้ชาร์ต 8K และ ★10 ถูกกลบด้วย 4K และ ★4

แยกตามระดับความยาก

ค่าดาววัดด้วยอัลกอริทึมของ osu! เอง มัธยฐาน ★4.2 ช่วง ★0.5–13

คลังข้อมูลส่วนใหญ่อยู่ระหว่าง ★1 ถึง ★7 และมีหางยาวของชาร์ตยากที่สูงกว่า ★9 ช่วงความยากของ ManiaGAI คือ ★1 ถึง ★10 ซึ่งตรงกับช่วงที่มีตัวอย่าง: ทุกระดับดาวที่ต่ำกว่า ★10 มีชาร์ตมากกว่าหนึ่งพันชาร์ต เหนือจากนั้นจำนวนลดลงอย่างรวดเร็ว และ 15.8% ของชาร์ตเปลี่ยนจังหวะกลางเพลง จังหวะที่เปลี่ยนไปมาจึงเป็นส่วนหนึ่งของสิ่งที่โมเดลเรียนรู้ ไม่ใช่กรณีพิเศษ

สิ่งที่เราคัดออก

ความกว้างไม่ได้แปลว่ารับทุกอย่าง บางชาร์ตถูกคัดออกเพราะจะสอนสิ่งที่ผิด:

  • ชาร์ตที่ทำไม่เสร็จ — เพลงที่ทำแมพไว้ครึ่งเดียวจะสอนให้โมเดลหยุดทำแมพกลางทาง
  • ชาร์ตซ้ำแบบ rate-edit — ชาร์ตเดียวกันที่ถูกเร่งหรือลดความเร็วจะทำให้แพทเทิร์นของ mapper คนเดียวถูกนับซ้ำหลายครั้ง
  • ชาร์ตที่สร้างด้วย AI รวมถึงของเราเอง — โมเดลที่ฝึกด้วยแมพที่ถูกสร้างขึ้นจะเรียนรู้การเลียนแบบตัวสร้าง ไม่ใช่ mapper

กริดไทมมิ่งเดียวสำหรับทุกอย่าง

ทุกชาร์ตในคลังข้อมูลถูกตั้งไทมมิ่งใหม่ลงบนกริดไทมมิ่งแบบเดียวกับที่ตัวสร้างทำจากเสียง ฟังดูเหมือนรายละเอียดเล็ก ๆ แต่เป็นหนึ่งในการตัดสินใจที่สำคัญที่สุดของชุดข้อมูล ตอนสร้างแมพ โมเดลวางโน้ตตามไทมมิ่งที่ ManiaGAI ตรวจจับได้ ไม่ใช่ตามไทมมิ่งของคน — จึงควรเรียนการวางโน้ตบนกริดแบบเดียวกันนั้น ถ้าฝึกด้วยไทมมิ่งของ mapper แต่สร้างด้วยไทมมิ่งที่ตรวจจับได้ ก็เท่ากับสอนโมเดลด้วยกริดหนึ่ง แล้วยื่นอีกกริดให้ใช้งานจริง (ไทมมิ่งที่ตรวจจับได้นั้นแม่นแค่ไหน มีบทความแยกของมันเอง: เบนช์มาร์กไทมมิ่ง)

ต้องใช้อะไรบ้างในการเรียนรู้จากข้อมูลนี้

เสียงถูกเข้ารหัสครั้งเดียวเป็นฟีเจอร์ทางดนตรีที่จัดแนวตรงกับกริด — ใช้พื้นที่ดิสก์ราว 0.7 TB การฝึกทั้งหมดรันบน NVIDIA RTX 4070 Ti SUPER ตัวเดียวที่มีหน่วยความจำ 16 GB แทนที่จะฝึกใหม่ตั้งแต่ศูนย์ทุกครั้งที่มีการเปลี่ยนแปลง โมเดลโน้ตจะถูก fine-tune ต่อเนื่องไปเรื่อย ๆ ตามที่ข้อมูลและกริดไทมมิ่งพัฒนาไป และเมื่อเราเปลี่ยนวิธีเริ่มต้นของกริด ทั้งสองโมเดลก็ถูกฝึกใหม่บนกริดนั้น สายการฝึกทั้งหมดของโมเดลโน้ต v2 ใช้ไปราว 540 GPU-ชั่วโมงที่บันทึกไว้ — รอบสุดท้ายรอบเดียวก็ใช้เวลาราวสี่วัน และวนผ่านหน้าต่างฝึก 16.9 ล้านหน้าต่างราวห้ารอบ — ส่วนของ planner เพิ่มอีกราว 40 ชั่วโมง

ไม่มีอะไรถูกตัดสินจาก training loss อย่างเดียว ทุกการเปลี่ยนแปลงถูกตรวจบนชาร์ตที่สร้างออกมาจริง: ความแม่นยำของไทมมิ่ง ความยากที่วัดได้เทียบกับเป้าหมาย และความเล่นได้

ข้อมูลที่กว้างให้อะไร — และไม่ให้อะไร

ความกว้างคือสิ่งที่ทำให้โมเดลเดียวเขียนได้ทั้ง 4K และ 9K, ★1 และ ★10, ชาร์ตที่เน้น long note และชาร์ตที่เน้น jack และทำตามสไตล์ที่คุณขอได้: แพทเทิร์นเหล่านั้นมีอยู่ที่ไหนสักแห่งในคลังข้อมูล สิ่งที่ความกว้างไม่ได้ให้คือมาตรฐานคุณภาพที่เท่ากันทั้งหมด — ในคลังข้อมูลของคอมมูนิตี้ บางชาร์ตดีกว่าชาร์ตอื่น และโมเดลก็เรียนจากทั้งหมดนั้น

เราเปิดเผยว่าในข้อมูลมีอะไรและทำไม แต่ไม่เปิดเผยรายละเอียดว่าได้มา คัดกรอง และสร้างขึ้นอย่างไร หน้าเทคโนโลยี อธิบายว่าข้อมูลอยู่ตรงไหนในระบบทั้งหมด และบทความ Planner + Noter เล่าถึงสองโมเดลที่เรียนรู้จากข้อมูลนี้