피아놀라 작동 중" style="max-width: 100%;">
pianola 는 AI가 생성한 피아노 음악을 연주하는 애플리케이션입니다. 사용자는 키보드에서 음을 연주하거나 클래식 곡에서 예제 조각을 선택하여 AI 모델을 시드(즉, "프롬프트")합니다.
이 추가 정보에서는 AI의 작동 방식을 설명하고 모델 아키텍처에 대해 자세히 설명합니다.
음악은 원시 오디오 파형부터 반구조화된 MIDI 표준에 이르기까지 다양한 방식으로 표현될 수 있습니다. pianola 에서는 음악 비트를 규칙적이고 균일한 간격(예: 16분음표/반분음표)으로 나눕니다. 간격 내에서 연주되는 음표는 동일한 시간 단계에 속하는 것으로 간주되며 일련의 시간 단계가 시퀀스를 형성합니다. AI 모델은 그리드 기반 시퀀스를 입력으로 사용하여 다음 단계의 음표를 예측하고, 이는 자동 회귀 방식으로 후속 시간 단계를 예측하기 위한 입력으로 사용됩니다.
연주할 음표 외에도 모델은 각 음표의 지속 시간 (음을 누르고 있는 시간)과 속도 (건반을 누르는 강도)도 예측합니다.
이 모델은 임베더(Embedder), 트랜스포머(Transformer), 디코더(Decoder)의 세 가지 모듈로 구성됩니다. 이러한 모듈은 Inception 네트워크, LLaMA 변환기 및 다중 레이블 분류자 체인과 같은 잘 알려진 아키텍처를 차용했지만 음악 데이터와 함께 작동하도록 조정되고 새로운 접근 방식으로 결합되었습니다.
임베더는 모양 (num_notes, num_features)
의 각 입력 시간 단계를 변환기에 공급할 수 있는 임베딩 벡터로 변환합니다. 그러나 원-핫 벡터를 다른 차원 공간에 매핑하는 텍스트 임베딩과 달리 입력에 컨벌루션 및 풀링 레이어를 적용하여 귀납적 바이어스를 제공합니다. 우리가 이를 수행하는 이유는 다음과 같습니다.
2^num_notes
, 여기서 num_notes
짧은 피아노에서 일반 피아노의 경우 64 또는 88임) 이를 원-핫 벡터로 표현하는 것은 불가능합니다.임베더가 어떤 거리가 유용한지 알 수 있도록 Inception 네트워크와 다양한 커널 크기의 스택 컨볼루션에서 영감을 얻었습니다.
변환기 모듈은 입력 임베딩 벡터 시퀀스에 self-attention을 적용하는 LLaMA 변환기 레이어로 구성됩니다.
많은 생성 AI 모델과 마찬가지로 이 모듈은 Vaswani 등의 원래 Transformers 모델의 "디코더" 부분만 사용합니다. (2017). 여기서는 "변환기"라는 레이블을 사용하여 이 모듈을 self-attention 레이어에서 생성된 상태를 실제로 디코딩하는 다음 모듈과 구별합니다.
다른 유형의 변환기보다 LLaMA 아키텍처를 선택한 이유는 RoPE(회전식 위치 임베딩)를 사용하기 때문입니다. RoPE는 시간 단계에 따른 거리 감소로 상대 위치를 인코딩합니다. 음악 데이터를 고정된 간격으로 표현한다는 점을 고려하면, 시간 단계 사이의 상대 위치와 거리는 변환기가 일관된 리듬으로 음악을 이해하고 생성하는 데 명시적으로 사용할 수 있는 중요한 정보입니다.
디코더는 참여 상태를 받아들여 지속 시간 및 속도와 함께 연주될 음표를 예측합니다. 이 모듈은 노트 예측을 위한 분류기 체인과 특징 예측을 위한 MLP(다층 퍼셉트론) 등 여러 하위 구성 요소로 구성됩니다.
분류자 체인은 다중 레이블 분류자를 생성하기 위해 num_notes
개의 이진 분류자로 구성됩니다(예: 피아노의 각 건반에 대해 하나씩). 노트 간의 상관 관계를 활용하기 위해 이진 분류자는 이전 노트의 결과가 다음 노트에 대한 예측에 영향을 미치도록 함께 연결됩니다. 예를 들어, 옥타브 음표 사이에 긍정적인 상관관계가 있는 경우 활성 낮은 음표(예: C3
)는 높은 음표(예: C4
)가 예측될 확률이 더 높아집니다. 이는 또한 장음계 또는 단음계(예: CDE
대 CD-Eb
)가 발생하지만 둘 다는 아닌 두 개의 인접한 음표 중에서 선택할 수 있는 음의 상관 관계의 경우에도 유용합니다.
계산 효율성을 위해 체인 길이를 12개 링크, 즉 1옥타브로 제한합니다. 마지막으로 샘플링 디코딩 전략을 사용하여 예측 확률과 관련된 노트를 선택합니다.
기간 및 속도 기능은 회귀 문제로 처리되며 바닐라 MLP를 사용하여 예측됩니다. 특징은 모든 노트에 대해 예측되지만, 현지화 작업을 통해 이미지 분류에 사용되는 손실 함수와 유사하게 활성 노트의 특징 손실만 집계하는 교육 중에 사용자 정의 손실 함수를 사용합니다.
음악 데이터를 그리드로 표현하기로 한 선택에는 장점과 단점이 있습니다. 우리는 Oore 등이 제안한 이벤트 기반 어휘와 비교하여 이러한 점을 논의합니다. (2018), 음악 세대에서 많이 인용된 공헌입니다.
우리 접근 방식의 주요 장점 중 하나는 음악에 대한 미시적 이해와 거시적 이해를 분리하여 임베더와 트랜스포머 간의 임무를 명확하게 분리한다는 것입니다. 전자의 역할은 음표 사이의 상대적인 거리가 어떻게 화음과 같은 음악적 관계를 형성하는지 등 미시적 수준에서 음표의 상호작용을 해석하는 것이고, 후자의 역할은 이 정보를 시간 차원에 걸쳐 종합하여 음악 스타일을 거시적으로 이해하는 것입니다. 수준.
대조적으로, 이벤트 기반 표현은 세 가지 별개의 개념인 피치, 타이밍 또는 속도를 나타낼 수 있는 원-핫 토큰을 해석하기 위해 시퀀스 모델에 전체 부담을 둡니다. Huang et al. (2018)은 일관성 있는 연속성을 생성하기 위해 Transformer 모델에 상대적인 주의 메커니즘을 추가할 필요가 있음을 발견했습니다. 이는 모델이 이 표현을 잘 수행하려면 귀납적 편향이 필요함을 시사합니다.
그리드 표현에서 간격 길이의 선택은 데이터 충실도와 희소성 사이의 균형입니다. 간격이 길수록 음표 타이밍의 세분성이 줄어들어 음악적 표현력이 줄어들고 트릴 및 반복되는 음표와 같은 빠른 요소가 잠재적으로 압축됩니다. 반면, 간격이 짧을수록 빈 시간 단계가 많이 발생하여 희소성이 기하급수적으로 증가합니다. 이는 시퀀스 길이가 제한되어 있는 Transformer 모델의 경우 중요한 문제입니다.
또한 음악 데이터는 시간 경과( 1 timestep == X milliseconds
)를 통해 또는 악보에 기록된 방식( 1 timestep == 1 sixteenth note/semiquaver
)을 통해 그리드에 매핑될 수 있으며 각각 고유한 절충점이 있습니다. . 이벤트 기반 표현은 시간 경과를 이벤트로 지정하여 이러한 문제를 완전히 방지합니다.
단점에도 불구하고 그리드 표현은 pianola 개발 시 작업하기가 훨씬 쉽다는 점에서 실용적인 이점이 있습니다. 모델 출력은 사람이 읽을 수 있으며 시간 단계 수는 고정된 시간에 해당하므로 새로운 기능을 훨씬 빠르게 개발할 수 있습니다.
또한 Transformer 모델의 시퀀스 길이 확장에 대한 연구와 지속적인 하드웨어 개선을 통해 데이터 희소성으로 인한 문제가 점진적으로 줄어들 것이며, 2023년 말 현재 수만 개의 토큰을 처리할 수 있는 대규모 언어 모델을 볼 수 있습니다. 기술이 최적화되고 강력한 하드웨어에 대한 접근성이 높아짐에 따라 이미지 생성에서 그랬던 것처럼 충실도가 계속 향상되어 AI 생성 음악의 표현력과 뉘앙스가 더욱 높아질 것이라고 믿습니다.
이 프로젝트의 소스 코드는 학술 연구 및 지식 공유를 위해 공개적으로 표시됩니다. 권한이 명시적으로 부여되지 않는 한 모든 권리는 작성자가 보유합니다.
Freepik - Flaticon에서 수정된 사이트 아이콘입니다.
outlook.com 주소 bruce <dot> ckc
로 연락하세요.