MusicGen เป็นโมเดลที่เรียบง่ายและควบคุมได้สำหรับการสร้างเพลง เป็นโมเดล Transformer แบบถดถอยอัตโนมัติขั้นตอนเดียวที่ได้รับการฝึกบนโทเค็นไนเซอร์ EnCodec 32kHz พร้อมด้วยสมุดโค้ด 4 เล่มที่สุ่มตัวอย่างที่ 50 Hz MusicGen แตกต่างจากวิธีการที่มีอยู่เช่น MusicLM ตรงที่ไม่ต้องการการแสดงความหมายแบบควบคุมตนเอง และสร้าง Codebooks ทั้ง 4 เล่มในการส่งผ่านครั้งเดียว ด้วยการแนะนำความล่าช้าเล็กน้อยระหว่าง codebooks ผู้เขียนแสดงให้เห็นว่าพวกเขาสามารถคาดเดาได้ในแบบคู่ขนาน จึงมีขั้นตอนถอยหลังอัตโนมัติเพียง 50 ขั้นตอนต่อวินาทีของเสียง พวกเขาใช้เพลงลิขสิทธิ์ 20,000 ชั่วโมงในการฝึก MusicGen โดยเฉพาะอย่างยิ่ง พวกเขาอาศัยชุดข้อมูลภายในของแทร็กเพลงคุณภาพสูง 10K และข้อมูลเพลงของ ShutterStock และ Pond5
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรุ่นนี้ โปรดดูที่นี่
คุณสามารถสาธิตโมเดลนี้หรือเรียนรู้วิธีใช้กับ API ของ Replicate ได้ที่นี่
Cog เป็นเครื่องมือโอเพ่นซอร์สที่บรรจุโมเดล Machine Learning ไว้ในคอนเทนเนอร์มาตรฐานที่พร้อมใช้งานจริง คุณสามารถปรับใช้โมเดลแพ็กเกจของคุณกับโครงสร้างพื้นฐานของคุณเอง หรือเพื่อจำลอง ซึ่งผู้ใช้สามารถโต้ตอบกับโมเดลดังกล่าวผ่านทางอินเทอร์เฟซเว็บหรือ API
ฟันเฟือง. ทำตามคำแนะนำเหล่านี้เพื่อติดตั้ง Cog หรือเพียงแค่เรียกใช้:
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
หมายเหตุ หากต้องการใช้ Cog คุณจะต้องติดตั้ง Docker ด้วย
git clone https://github.com/replicate/cog-musicgen-melody
หากต้องการรันโมเดล คุณต้องมีสำเนาอิมเมจ Docker ของโมเดลในเครื่อง คุณสามารถปฏิบัติตามข้อกำหนดนี้ได้โดยการระบุรหัสรูปภาพในการเรียกของคุณเพื่อ predict
ดังนี้:
cog predict r8.im/joehoover/musicgen-melody@sha256:1a53415e6c4549e3022a0af82f4bd22b9ae2e747a8193af91b0bdffe63f93dfd -i description=tense staccato strings. plucked strings. dissonant. scary movie. -i duration=8
สำหรับข้อมูลเพิ่มเติม โปรดดูส่วน Cog ที่นี่
อีกทางหนึ่ง คุณสามารถสร้างอิมเมจด้วยตัวเองได้ โดยการรัน cog build
หรือปล่อยให้ cog predict
เกอร์กระบวนการ build โดยปริยาย ตัวอย่างเช่น สิ่งต่อไปนี้จะทริกเกอร์กระบวนการสร้างแล้วดำเนินการคาดการณ์:
cog predict -i description="tense staccato strings. plucked strings. dissonant. scary movie." -i duration=8
หมายเหตุ ครั้งแรกที่คุณรัน cog predict
น้ำหนักโมเดลและสินทรัพย์ที่จำเป็นอื่นๆ จะถูกดาวน์โหลดหากไม่มีในเครื่อง การดาวน์โหลดนี้จะต้องดำเนินการเพียงครั้งเดียวเท่านั้น
หากคุณยังไม่ได้ดำเนินการ คุณควรตรวจสอบให้แน่ใจว่าโมเดลของคุณทำงานภายในเครื่องด้วย cog predict
สิ่งนี้จะรับประกันว่าทรัพย์สินทั้งหมดจะสามารถเข้าถึงได้ เช่นรัน:
cog predict -i description=tense staccato strings. plucked strings. dissonant. scary movie. -i duration=8
ไปที่ Replicate.com/create เพื่อสร้างโมเดลจำลอง หากคุณต้องการเก็บโมเดลไว้เป็นส่วนตัว อย่าลืมระบุ "ส่วนตัว"
Replicate รองรับโมเดลที่ทำงานบนการกำหนดค่า CPU และ GPU ที่หลากหลาย เพื่อประสิทธิภาพที่ดีที่สุด คุณจะต้องใช้งานโมเดลนี้บนอินสแตนซ์ A100
คลิกแท็บ "การตั้งค่า" บนหน้ารุ่นของคุณ เลื่อนลงไปที่ "ฮาร์ดแวร์ GPU" และเลือก "A100" จากนั้นคลิก "บันทึก"
เข้าสู่ระบบเพื่อทำซ้ำ:
cog login
พุชเนื้อหาของไดเร็กทอรีปัจจุบันของคุณเพื่อทำซ้ำ โดยใช้ชื่อโมเดลที่คุณระบุไว้ในขั้นตอนที่ 1:
cog push r8.im/username/modelname
เรียนรู้เพิ่มเติมเกี่ยวกับการผลักดันโมเดลเพื่อทำซ้ำ
การรองรับการปรับแต่ง MusicGen อย่างละเอียดอยู่ในการพัฒนา ในปัจจุบัน มีการนำการสนับสนุนขั้นต่ำไปใช้ผ่านการดัดแปลงเทรนเนอร์ music_gen
ของ @chavez
สมมติว่าคุณได้กำหนดค่าสภาพแวดล้อมในเครื่องแล้ว (เช่น คุณได้ทำตามขั้นตอนที่ระบุไว้ใน Run with Cog เรียบร้อยแล้ว) คุณสามารถดำเนินการฝึกอบรมด้วยคำสั่งเช่น:
cog train -i dataset_path=@<path-to-your-data> <additional hyperparameters>
Cog ต้องการให้ข้อมูลอินพุตเป็นไฟล์ อย่างไรก็ตาม สคริปต์การฝึกอบรมของเราต้องการไดเร็กทอรี ดังนั้นในการผลิต ข้อมูลการฝึกอบรมควรจัดทำเป็น tarball ของไดเร็กทอรีของข้อมูลการฝึกอบรมที่มีรูปแบบเหมาะสม อย่างไรก็ตาม คุณสามารถข้ามข้อกำหนดนี้ได้โดยการตั้งชื่อไดเร็กทอรีข้อมูลการฝึกของคุณ . ./train_data
หากมีไดเร็กทอรีดังกล่าว สคริปต์การฝึกอบรมจะพยายามโหลดข้อมูลจากไดเร็กทอรีนั้น (ดูบรรทัดที่ 140-147 ใน train.py
)
ปัจจุบันการฝึกอบรมรองรับเฉพาะการสร้างเพลงด้วยข้อความแจ้งเท่านั้น
หากต้องการฝึกโมเดลด้วยข้อมูลของคุณเอง ให้ทำตามขั้นตอนเหล่านี้:
.txt
ที่สอดคล้องกันและมีชื่อไฟล์เหมือนกัน ไฟล์ข้อความเหล่านี้ควรมีข้อความแจ้งที่คุณต้องการเชื่อมโยงกับไฟล์เสียงที่เกี่ยวข้อง ตัวอย่างเช่น หากคุณมี audio_1.wav
คุณต้องมี audio_1.txt
ด้วย และไฟล์ข้อความนั้นควรมีข้อความแจ้งสำหรับ audio_1.wav
./train_data
คุณสามารถรันสคริปต์การฝึกอบรมได้ดังนี้: cog train -i dataset_path=@./train_data/ <additional hyperparameters>
train_data
คุณสามารถ tarball ไดเร็กทอรีข้อมูลของคุณและส่งเส้นทางไปยัง tarball ไปยัง cog train ...
สคริปต์รถไฟจะยกเลิกข้อมูลของคุณและพยายามโหลดเรียกใช้สิ่งนี้เพื่อฝึกในคลิปเดียว:
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
จากนั้น คุณสามารถโหลดโมเดลของคุณเช่น model.lm.load_state_dict(torch.load('model_outdir/lm_final.pt'))
และสร้างสิ่งต่อไปนี้:
model.set_generation_params(
duration=8,
top_k=250,
top_p=0,
temperature=1,
cfg_coef=3,
)
wav = model.generate(descriptions=[''], progress=True)