นำทางข้อพระ คัมภีร์ ของแบบจำลอง การแพร่กระจาย ด้วยเวิร์กโฟลว์ แบบหนึ่ง

UniDiffusion เป็นกล่องเครื่องมือที่ให้การฝึกอบรมที่ทันสมัยและอัลกอริธึมการอนุมานโดยใช้ diffusers UniDiffusion มีวัตถุประสงค์เพื่อนักวิจัยและผู้ใช้ที่ต้องการปรับแต่งการฝึกอบรมการแพร่กระจายที่มั่นคง เราหวังว่าพื้นที่เก็บข้อมูลรหัสนี้สามารถให้การสนับสนุนที่ยอดเยี่ยมสำหรับการวิจัยในอนาคตและส่วนขยายแอปพลิเคชัน
หากคุณต้องการนำสิ่งต่อไปนี้มาใช้ให้สนุกกับความไม่พร้อมด้วย
cross attention เท่านั้น (หรือเลเยอร์ convolution / feedforward / ... )lr / weight decay ที่แตกต่างกัน / ... สำหรับเลเยอร์ที่แตกต่างกันหมายเหตุ: UniDiffusion ยังอยู่ระหว่างการพัฒนา โมดูลบางอย่างถูกยืมมาจากที่เก็บรหัสอื่น ๆ และยังไม่ได้รับการทดสอบโดยเฉพาะอย่างยิ่งส่วนประกอบที่ไม่ได้เปิดใช้งานโดยค่าเริ่มต้นในระบบการกำหนดค่า เรากำลังทำงานอย่างหนักเพื่อปรับปรุงโครงการนี้
ในการแยกส่วนวิธีการฝึกทั้งหมดจะถูกย่อยสลายเป็นสามมิติ
ช่วยให้เราดำเนินการท่อฝึกอบรมแบบครบวงจรด้วยระบบกำหนดค่าที่แข็งแกร่ง
นี่คือตัวอย่างง่ายๆ ใน diffusers การฝึกอบรม text-to-image finetune และ dreambooth ชอบ:
python train_dreambooth.py --arg ......
python train_finetune.py --arg ......และการรวมหรือปรับวิธีการบางอย่างเป็นเรื่องยาก (เช่นการฝึกอบรมข้ามความสนใจระหว่าง Dreambooth) เท่านั้น
ในแบบแยกส่วนเราสามารถออกแบบอาร์กิวเมนต์การฝึกอบรมของเราเองในไฟล์กำหนดค่า:
# text-to-image finetune
unet . training_args = { '' : { 'mode' : 'finetune' }}
# text-to-image finetune with lora
unet . training_args = { '' : { 'mode' : 'lora' }}
# update cross attention with lora
unet . training_args = { 'attn2' : { 'mode' : 'lora' }}
# dreambooth
unet . training_args = { '' : { 'mode' : 'finetune' }}
text_encoder . training_args = { 'text_embedding' : { 'initial' : True }}
# dreambooth with small lr for text-encoder
unet . training_args = { '' : { 'mode' : 'finetune' }}
text_encoder . training_args = { 'text_embedding' : { 'initial' : True , 'optim_kwargs' : { 'lr' : 1e-6 }}}แล้ววิ่ง
accelerate launch scripts/train.py --config-file /path/to/your/configสิ่งนี้อำนวยความสะดวกในการปรับแต่งการรวมกันและการปรับปรุงวิธีการที่ง่ายขึ้นและยังช่วยให้การเปรียบเทียบความคล้ายคลึงและความแตกต่างระหว่างวิธีการผ่านไฟล์การกำหนดค่า
ในแบบแยกส่วนเรามีระบบการจับคู่ปกติสำหรับการเลือกโมดูล ช่วยให้เราสามารถเลือกโมดูลโดยการจับคู่ปกติ ดูการจับคู่ปกติสำหรับการเลือกโมดูลสำหรับรายละเอียดเพิ่มเติม
เราให้การสนับสนุนที่มีประสิทธิภาพสำหรับวิธี PEFT/PETL ดูวิธี PEFT/PETL สำหรับรายละเอียดเพิ่มเติม
pip install -e requirements.txtaccelerate config
wandb loginดูรถไฟผกผันที่เป็นข้อความ / dreambooth / lora / text-to-image finetune สำหรับรายละเอียด
accelerate launch scrits/common.py --config-file configs/train/text_to_image_finetune.pyหมายเหตุ: วิธีการตั้งค่าส่วนบุคคลจะสลายตัวในพารามิเตอร์ที่สามารถฝึกอบรมได้วิธีการ PEFT/PETL และกระบวนการฝึกอบรมในการแยก ดูไฟล์กำหนดค่าสำหรับรายละเอียดเพิ่มเติม
เราจะเพิ่มคุณสมบัติต่อไปนี้ในอนาคต นอกจากนี้เรายังยินดีต้อนรับการมีส่วนร่วมจากชุมชน อย่าลังเลที่จะดึงคำขอหรือเปิดปัญหาเพื่อหารือเกี่ยวกับแนวคิดสำหรับคุณสมบัติใหม่
เรายินดีต้อนรับการมีส่วนร่วมจากชุมชนโอเพ่นซอร์ส!
หากคุณใช้กล่องเครื่องมือนี้ในการวิจัยของคุณหรือต้องการอ้างถึงผลลัพธ์พื้นฐานที่เผยแพร่ที่นี่โปรดใช้รายการ BIBTEX ต่อไปนี้:
@misc { pu2022diffusion ,
author = { Pu Cao, Tianrui Huang, Lu Yang, Qing Song } ,
title = { UniDiffusion } ,
howpublished = { url{https://github.com/PRIV-Creation/UniDiffusion} } ,
year = { 2023 }
}