MusicGen adalah model generasi musik yang sederhana dan dapat dikontrol. Ini adalah model Transformer auto-regresif satu tahap yang dilatih melalui tokenizer EnCodec 32kHz dengan 4 buku kode yang diambil sampelnya pada 50 Hz. Tidak seperti metode yang sudah ada seperti MusicLM, MusicGen tidak memerlukan representasi semantik yang diawasi sendiri, dan menghasilkan keempat buku kode dalam satu proses. Dengan memperkenalkan sedikit penundaan di antara buku kode, penulis menunjukkan bahwa mereka dapat memprediksinya secara paralel, sehingga hanya memiliki 50 langkah regresi otomatis per detik audio. Mereka menggunakan 20 ribu jam musik berlisensi untuk melatih MusicGen. Secara khusus, mereka mengandalkan kumpulan data internal yang berisi 10 ribu trek musik berkualitas tinggi, serta data musik ShutterStock dan Pond5.
Untuk informasi lebih lanjut tentang model ini, lihat di sini.
Anda dapat mendemonstrasikan model ini atau mempelajari cara menggunakannya dengan API Replikasi di sini.
Cog adalah alat sumber terbuka yang mengemas model pembelajaran mesin dalam wadah standar yang siap produksi. Anda dapat menerapkan model paket Anda ke infrastruktur Anda sendiri, atau ke Replikasi, tempat pengguna dapat berinteraksi dengannya melalui antarmuka web atau API.
Gigi. Ikuti petunjuk berikut untuk menginstal Cog, atau jalankan saja:
sudo curl -o /usr/local/bin/cog -L "https://github.com/replicate/cog/releases/latest/download/cog_$(uname -s)_$(uname -m)"
sudo chmod +x /usr/local/bin/cog
Catatan, untuk menggunakan Cog, Anda juga memerlukan instalasi Docker.
git clone https://github.com/replicate/cog-musicgen-melody
Untuk menjalankan model, Anda memerlukan salinan lokal image Docker model. Anda dapat memenuhi persyaratan ini dengan menentukan ID gambar dalam panggilan Anda untuk predict
seperti:
cog predict r8.im/joehoover/musicgen-melody@sha256:1a53415e6c4549e3022a0af82f4bd22b9ae2e747a8193af91b0bdffe63f93dfd -i description=tense staccato strings. plucked strings. dissonant. scary movie. -i duration=8
Untuk informasi lebih lanjut, lihat bagian Roda Gigi di sini
Alternatifnya, Anda dapat membuat image sendiri, baik dengan menjalankan cog build
atau membiarkan cog predict
memicu proses build secara implisit. Misalnya, hal berikut akan memicu proses pembangunan dan kemudian mengeksekusi prediksi:
cog predict -i description="tense staccato strings. plucked strings. dissonant. scary movie." -i duration=8
Catatan, pertama kali Anda menjalankan cog predict
, bobot model dan aset lain yang diperlukan akan diunduh jika tidak tersedia secara lokal. Pengunduhan ini hanya perlu dijalankan satu kali.
Jika Anda belum melakukannya, Anda harus memastikan bahwa model Anda berjalan secara lokal dengan cog predict
. Ini akan menjamin bahwa semua aset dapat diakses. Misalnya, jalankan:
cog predict -i description=tense staccato strings. plucked strings. dissonant. scary movie. -i duration=8
Buka replica.com/create untuk membuat model Replikasi. Jika Anda ingin menjadikan model tetap pribadi, pastikan untuk menentukan "pribadi".
Replikasi mendukung model yang berjalan pada berbagai konfigurasi CPU dan GPU. Untuk performa terbaik, Anda sebaiknya menjalankan model ini pada instans A100.
Klik pada tab "Pengaturan" di halaman model Anda, gulir ke bawah ke "Perangkat keras GPU", dan pilih "A100". Kemudian klik "Simpan".
Masuk ke Replikasi:
cog login
Dorong konten direktori Anda saat ini ke Replikasi, menggunakan nama model yang Anda tentukan di langkah 1:
cog push r8.im/username/modelname
Pelajari lebih lanjut cara mendorong model ke Replikasi.
Dukungan untuk menyempurnakan MusicGen sedang dalam pengembangan. Saat ini, dukungan minimal telah diterapkan melalui adaptasi pelatih music_gen
@chavez.
Dengan asumsi Anda memiliki lingkungan lokal yang dikonfigurasi (yaitu Anda telah menyelesaikan langkah-langkah yang ditentukan dalam Jalankan dengan Cog), Anda dapat menjalankan pelatihan dengan perintah seperti:
cog train -i dataset_path=@<path-to-your-data> <additional hyperparameters>
Cog memerlukan data masukan berupa file; namun, skrip pelatihan kami mengharapkan sebuah direktori. Oleh karena itu, dalam produksi, data pelatihan harus disediakan sebagai tarball dari direktori data pelatihan yang diformat dengan benar. Namun, Anda dapat mengabaikan persyaratan ini dengan memberi nama direktori data pelatihan Anda ./train_data
. Jika direktori tersebut ada, skrip pelatihan akan mencoba memuat data dari direktori tersebut (lihat baris 140-147 di train.py
).
Saat ini, pelatihan hanya mendukung pembuatan musik dengan perintah teks.
Untuk melatih model pada data Anda sendiri, ikuti langkah-langkah berikut:
.txt
yang sesuai dengan nama file yang sama. File teks ini harus berisi perintah teks yang ingin Anda kaitkan dengan file audio yang sesuai. Misalnya, jika Anda memiliki audio_1.wav
, Anda juga harus memiliki audio_1.txt
dan file teks tersebut harus berisi perintah untuk audio_1.wav
../train_data
, Anda cukup menjalankan skrip pelatihan seperti: cog train -i dataset_path=@./train_data/ <additional hyperparameters>
train_data
tidak ada, Anda dapat melakukan tarball pada direktori data Anda dan meneruskan jalur ke tarball ke cog train ...
. Skrip kereta kemudian akan menghapus data Anda dan mencoba memuatnya.Jalankan ini untuk berlatih dalam satu klip:
mkdir ./train_data/
wget -P ./train_data/ https://github.com/facebookresearch/audiocraft/raw/main/assets/bach.mp3
echo bach > ./train_data/bach.txt
tar -cvzf train_data.tar.gz train_data/
cog train -i dataset_path=@./data.tar.gz -i epochs=10
Kemudian, Anda dapat memuat model Anda seperti model.lm.load_state_dict(torch.load('model_outdir/lm_final.pt'))
dan menghasilkan seperti:
model.set_generation_params(
duration=8,
top_k=250,
top_p=0,
temperature=1,
cfg_coef=3,
)
wav = model.generate(descriptions=[''], progress=True)