วิศวกรรม
เราทำให้ AI สร้าง beatmap ได้เร็วจนรู้สึกเหมือนโต้ตอบได้ทันทีอย่างไร
mapset osu! mania เต็มชุดในเวลา GPU ราว 20 วินาที แทนที่จะเป็นหนึ่งนาทีหรือมากกว่า: เวลาในคำขอของ ManiaGAI ไปอยู่ที่ไหน และการตัดสินใจที่ตัดมันออก — ตั้งแต่เบราว์เซอร์จนถึงการสร้างทุกระดับความยากแบบ batch
ตัวสร้างที่ต้องรอเป็นนาทีคืองานแบบ batch คุณส่งเพลงไป ไปทำอย่างอื่น แล้วกลับมาดูว่ามันทำอะไรออกมา — และถ้าไม่ชอบ การลองสไตล์อื่นหรือชุดระดับความยากอื่นก็ต้องรออีกรอบ ตัวสร้างที่ตอบกลับในไม่กี่วินาทีคือเครื่องมือ: คุณลอง ฟัง ปรับ แล้วลองใหม่
ความแตกต่างนี้คือเหตุผลที่ใน ManiaGAI เวอร์ชัน 2 เราถือว่าความหน่วง (latency) เป็นข้อกำหนดในการออกแบบทั่วทั้งระบบ ไม่ใช่สิ่งที่ค่อยไปปรับให้เร็วตอนท้าย เวอร์ชัน 1 ใช้เวลาหนึ่งนาทีหรือมากกว่าต่อ mapset ส่วนเวอร์ชัน 2 ใช้เวลา GPU ราว 20 วินาทีสำหรับ mapset เต็มชุดของเพลงทั่วไป — ปกติ 13 ถึง 25 วินาที ขึ้นอยู่กับเพลงและระดับความยากที่ขอ นี่คือเวลาเหล่านั้นไปอยู่ที่ไหน และการตัดสินใจที่ตัดเวลาส่วนที่เหลือออกไป
กายวิภาคของคำขอหนึ่งครั้ง
- เบราว์เซอร์ของคุณ
- ไทมมิ่ง ∥ ฟีเจอร์ดนตรี
- Planner
- Noter
- ตรวจสอบ
- ดาวน์โหลด
การรันจริงที่วัดผลไว้หนึ่งครั้งจากช่วงเปิดตัว v2: เพลงยาว 2:50 จำนวน 5 ระดับความยาก บน GPU NVIDIA T4 — รวมทั้งหมด 12.7 วินาที
| ขั้นตอน | เวลา |
|---|---|
| ไทมมิ่ง + ฟีเจอร์ดนตรี (รันพร้อมกัน) | 3.8 s |
| การวางแผน (ทุกระดับความยาก) | 1.0 s |
| การสร้างโน้ต (ทั้ง 5 ระดับความยาก) | 6.1 s |
| ทั้งการรัน | 12.7 s |
เวลาประมวลผลบน GPU สำหรับเพลงหนึ่งเพลงบนระบบตอนเปิดตัว v2 (1 ตุลาคม 2026) ไม่รวมการอัปโหลด การรอคิว หรือการดาวน์โหลด
1. ทำงานด้านเสียงให้เสร็จก่อนที่ใครจะกดสร้าง
ทุกเพลงที่อัปโหลดต้องถูกถอดรหัส ปรับความดังให้เป็นมาตรฐาน และเข้ารหัสใหม่เป็นฟอร์แมตเดียวกันก่อนที่โมเดลจะใช้ได้ บนเซิร์ฟเวอร์ นั่นคืองานไม่กี่วินาทีที่ GPU ต้องนั่งรอ ใน ManiaGAI งานนี้เกิดขึ้นในเบราว์เซอร์ของคุณทันทีที่คุณเลือกไฟล์ — ระหว่างที่คุณยังเลือกจำนวนคีย์และระดับความยากอยู่ พอคุณกดสร้าง งานนี้ก็มักเสร็จไปแล้ว ถ้าการเตรียมเพลงบนอุปกรณ์ที่ช้าใช้เวลานานกว่า 20 วินาที เซิร์ฟเวอร์จะรับช่วงทำแทน การปรับให้เร็วนี้จึงไม่เคยทำให้ใครต้องรอ
2. รันไทมมิ่งและการทำความเข้าใจดนตรีคู่กัน
ก่อนเริ่มวางแผน ต้องรู้สองอย่างเกี่ยวกับเพลง: กริดไทมมิ่ง (จากโมเดลโอเพนซอร์ส Beat This บวกกับการฟิตกริดของเราเอง) และฟีเจอร์ทางดนตรี (จากโมเดลดนตรี MERT) ทั้งสองอย่างไม่ได้ขึ้นต่อกัน จึงไม่ต้องรอกัน: GPU รัน Beat This และ MERT ขณะที่การฟิตกริดรันบน CPU ไปพร้อมกัน ในการรันข้างต้น ขั้นตอนการทำความเข้าใจทั้งหมดใช้เวลา 3.8 วินาที
3. สร้างทุกระดับความยากในรอบเดียว
mapset ของ ManiaGAI มีได้สูงสุดสิบระดับความยาก ถ้าสร้างทีละระดับ เวลาก็จะคูณด้วยจำนวนระดับความยาก แต่ทุกระดับความยากที่ขอจะถูกวางแผนและสร้างพร้อมกันใน GPU pass เดียวแบบ batch — ใช้เพลงเดียวกันและฟีเจอร์ดนตรีชุดเดียวกัน ต่างกันแค่เป้าหมาย นั่นคือเหตุผลที่การสร้างโน้ตห้าระดับความยากใช้เวลาเพียง 6.1 วินาทีในการรันข้างต้น
4. ขัดเกลาทั้งชาร์ตแทนการเขียนทีละโน้ต
โมเดลโน้ตเป็นแบบ non-autoregressive: มันสร้างทั้งชาร์ตในจำนวนรอบการขัดเกลาที่ตายตัว แทนที่จะทีละโทเคนจากต้นเพลงไปท้ายเพลง — จำนวนขั้นของโมเดลจึงคงที่ ไม่ว่าชาร์ตจะมีโน้ตกี่ตัว (ทำไมโมเดลถึงทำงานแบบนี้เป็นอีกเรื่องหนึ่ง: บทความ Planner + Noter)
5. เริ่มจาก snapshot ไม่ใช่จากศูนย์
การสร้างรันบน GPU worker แบบ serverless ซึ่งหมายความว่าไม่ได้มี worker รันอยู่ตลอดเวลาเมื่อคำขอเข้ามา การโหลดโมเดลและวอร์มอัปทุกอย่างจากศูนย์จะเพิ่มเวลาหลายวินาทีให้คำขอแรกนั้น แทนที่จะทำแบบนั้น worker จะถูกกู้คืนจาก memory snapshot ที่ถ่ายไว้หลังโหลดและวอร์มอัปทุกอย่างเสร็จแล้ว worker ใหม่จึงพร้อมในราวหนึ่งวินาที แทนที่จะเสียเวลานั้นไปกับการโหลดโมเดล
6. ไม่ต้องรอที่เส้นชัย
ขั้นตอนสุดท้ายเคยเพิ่มความล่าช้าของมันเอง ตอนนี้ไฟล์ .osz สำหรับดาวน์โหลดถูกประกอบขึ้นทันทีที่ชาร์ตพร้อม และแมพที่เสร็จแล้วจะถูกบันทึกลงในชาร์ตของฉันทันทีที่การสร้างจบ — แม้คุณจะออกจากหน้าไปแล้วก็ตาม ความคืบหน้าบนหน้าสร้างแสดงขั้นตอนจริงที่การสร้างแต่ละครั้งกำลังทำอยู่ การรอจึงไม่เคยเป็นปริศนา
เร็วขึ้นอีก ด้วยชาร์ตที่เหมือนเดิมทุกประการ
วันที่ 8 ตุลาคม 2026 เราปล่อยระบบการสร้างเวอร์ชันที่เร็วขึ้น: ตอนนี้แมพสร้างเร็วขึ้นราวสองเท่า และชาร์ตเหมือนเดิมทุกประการ — อินพุตเดียวกัน เอาต์พุตเดียวกัน เราตั้งเป็นกฎเหล็กสำหรับการเปลี่ยนแปลงครั้งนั้น: การเร่งความเร็วที่เปลี่ยนสิ่งที่โมเดลเขียนถือเป็นการเปลี่ยนโมเดล และต้องถูกประเมินแบบนั้น สิ่งเดียวที่เปลี่ยนคือการรอสั้นลง
ความเร็วให้อะไร
ความเร็วเปลี่ยนวิธีใช้งาน ManiaGAI มันทำให้การลองสไตล์ที่สองหรือชุดระดับความยากอื่นเป็นเรื่องของไม่กี่วินาที ทำให้ขั้นตอนพรีวิวแล้วค่อยดาวน์โหลดเป็นเรื่องธรรมชาติ และทำให้เปิดแพ็กเกจฟรีต่อไปได้ นี่จึงเป็นเหตุผลที่เราปรับให้เร็วทั้งคำขอ — ตั้งแต่เบราว์เซอร์จนถึงการดาวน์โหลด — ไม่ใช่แค่ตัวโมเดล: ผู้เล่นรู้สึกถึงการรอ ไม่ใช่เวลา GPU
ขั้นตอนเหล่านี้อยู่ตรงไหนในระบบ ดูได้ที่หน้าเทคโนโลยี ส่วนอะไรเปลี่ยนเมื่อไร ดูที่บันทึกการเปลี่ยนแปลง