온디바이스에서 피아노를 자동 완성하는 1억 2,500만 매개변수 모델

1 day ago 3

MIDI 건반으로 연주한 몇 음을 실시간으로 이어가는 RollTab을 14차례 실험 끝에 개발했으며, iPhone 15에서 초당 약 108개 음표를 생성함 음높이·시작 간격·길이·세기를 하나의 복합 토큰으로 묶어 Transformer를 음표당 한 번만 실행함으로써 note-on/off 상태 이탈과 필드별 자동회귀 지연을 줄임 수십만 개 MIDI 파일과 약 3억 개 음표 이벤트를 정제해 학습했으며, 데이터를 약 5배 늘리는 것보다 피아노 중심 선별·중복 제거·오염된 다중 트랙 제거가 효과적이었음 Gemini 3.5 Flash의 쌍대 비교로 선호 데이터를 만들고 DPO를 적용한 결과, 합의된 평가 데이터로 학습한 모델이 사전학습 기본 모델보다 69.05%의 선호를 얻음 PyTorch 모델을 Core ML로 변환하고 INT8 양자화해 iPhone·iPad에서 전 과정을 실행하지만, 짧은 프롬프트와 반복 생성은 여전히 어렵고 첫 실행 시 최적화 지연도 남아 있음 MIDI 기반 피아노 자동 완성 MIDI 피아노를 휴대전화에 연결해 몇 음을 연주하면 AI가 곡을 이어가는, 피아노용 GitHub Copilot과 같은 시스템을 목표로 함 14차례 실험을 거쳐 만든 앱 RollTab은 MIDI 건반과 iPhone 또는 iPad가 있으면 무료로 사용할 수 있음 첫 버전은 App Store 승인에 11일이 걸림 검토 중인 새 버전은 top-k, top-p, min-p, XTC, top-h, Mirostat v2 샘플링 선택을 지원함 Pokémon의 Pallet Town은 8개 음표, Final Fantasy VI의 Terra’s Theme와 Für Elise는 16개 음표를 프롬프트로 사용한 샘플을 제공함 MIDI를 모델 입력으로 바꾸는 문제 MIDI는 MP3처럼 녹음된 소리를 저장하지 않고, 건반의 음높이와 세기, 누르고 떼는 시점, 서스테인 페달 상태, 악기·음량 변경 등을 이벤트 열로 저장함 팝이나 게임 MIDI는 멜로디·화음·베이스·드럼·현악기·신시사이저 등이 여러 트랙에 나뉠 수 있어, 피아노 연속 생성에 맞는 트랙만 유지하거나 나머지를 축소함 초기 토큰 표현의 한계 NOTE_ON_60_80, NOTE_OFF_60, TIME_SHIFT_12처럼 이벤트마다 토큰을 만들면 128개 음높이와 128개 세기의 조합 때문에 note-on/off에만 최대 16,512개 토큰이 필요함 세기를 구간화할 수 있지만 희소한 조합이 많아 모...

Read Entire Article