# Fine-tune mô hình video và hình ảnh ở quy mô lớn với NVIDIA NeMo Automodel và 🤗 Diffusers
Các mô hình diffusion đang thúc đẩy một số bản phát hành mã nguồn mở thú vị nhất trong hai năm qua — chẳng hạn như **FLUX.1-dev** cho text-to-image và **Wan 2.1** cùng **HunyuanVideo** cho text-to-video. Thư viện 🤗 **Diffusers** đã trở thành ngôi nhà thực sự cho các mô hình này, cung cấp cho các nhà nghiên cứu và nhà phát triển một giao diện nhất quán, thống nhất cho inference, adaptation và pipeline composition.
Ngoài ra, việc huấn luyện và fine-tune các mô hình diffusion cũng đang gia tăng, đòi hỏi các tiện ích hỗ trợ sharding tiết kiệm bộ nhớ, latent caching, multiresolution bucketing và các cấu hình có thể mở rộng linh hoạt từ một GPU đến hàng trăm GPU.
Để đáp ứng các yêu cầu kỹ thuật này, chúng tôi cung cấp thư viện mã nguồn mở **NVIDIA NeMo Automodel**. Hôm nay, chúng tôi giới thiệu sự hợp tác giữa NVIDIA và Hugging Face nhằm đưa khả năng huấn luyện diffusion phân tán cấp độ production đến mọi mô hình định dạng Diffusers trên Hugging Face Hub — không cần chuyển đổi checkpoint và không cần viết lại mô hình cho bất kỳ mô hình mới nào. Tích hợp này được ghi lại trong **hướng dẫn huấn luyện Diffusers** và hoàn toàn mã nguồn mở theo giấy phép Apache 2.0.
NeMo Automodel là thư viện huấn luyện native PyTorch DTensor mã nguồn mở, thuộc NVIDIA NeMo framework, được xây dựng xung quanh hai nguyên tắc thiết kế quan trọng cho hệ sinh thái Diffusers:
AutoModel hiện chỉ hỗ trợ các mô hình flow-matching. Về mặt kỹ thuật, nó sử dụng flow matching làm mục tiêu huấn luyện, kết hợp huấn luyện trong không gian latent (thông qua các đầu ra VAE được mã hóa trước) và multiresolution bucketed dataloading để tăng tốc throughput.
Tích hợp NeMo Automodel đi kèm với các recipe fine-tuning sẵn dùng cho các mô hình diffusion mã nguồn mở dưới đây. Danh sách phản ánh các recipe hiện có trong **examples/diffusion/finetune**.
Đối với người dùng Diffusers, những lợi ích thực tế được chia thành một số khả năng cụ thể:
**Không cần chuyển đổi checkpoint.** Các trọng số pretrained từ Hub hoạt động ngay lập tức. Không có "định dạng huấn luyện" riêng biệt nào cần chuyển đổi qua lại. Checkpoint đã fine-tune của bạn tải trực tiếp vào `DiffusionPipeline` để inference, hoặc đẩy lên Hub để chia sẻ. Các công cụ downstream — quantization, compilation, LoRA adapter, custom sampler — đều tiếp tục hoạt động bình thường.
**Con đường nhanh để hỗ trợ mô hình mới.** Khi một mô hình diffusion mới xuất hiện trong Diffusers, việc kích hoạt nó trong NeMo Automodel chỉ cần một bổ sung code nhỏ, gọn gàng — một data preprocessing handler và một model adapter — thay vì phải viết toàn bộ custom training script. Phần còn lại của recipe stack (FSDP2, bucketed dataloading, checkpointing, generation) được kế thừa nguyên vẹn, và cùng một quy trình làm việc dựa trên YAML được áp dụng.
**Fine-tuning đầy đủ và tiết kiệm tham số.** Cả full fine-tuning lẫn PEFT theo phong cách LoRA đều được hỗ trợ, cho phép bạn lựa chọn giữa chất lượng tối đa (full FT trên cluster lớn) hoặc hiệu quả tối đa (LoRA trên một node đơn). Cùng một cấu trúc recipe xử lý cả hai trường hợp.
**Huấn luyện có thể mở rộng vượt ra ngoài những gì các script tích hợp sẵn cung cấp.** NeMo Automodel bổ sung các sơ đồ sharding như FSDP2, tensor parallelism, context parallelism và pipeline parallelism, điều phối đa node (hiện hỗ trợ SLURM, Kubernetes sắp ra mắt), và m
## Phân chia độ phân giải đa cấp (Multiresolution Bucketing)
Các khả năng này giúp việc huấn luyện các mô hình lớn hơn như FLUX.1-dev (12B) và HunyuanVideo (13B) trở nên khả thi.
Trong phần này, chúng tôi hướng dẫn quy trình điển hình để fine-tune bất kỳ mô hình nào được hỗ trợ. Cách cài đặt Automodel được khuyến nghị là sử dụng Docker container NeMo Automodel (nvcr.io/nvidia/nemo-automodel:26.06), đi kèm với PyTorch, TransformerEngine và các dependency đã được biên dịch CUDA sẵn. Ngoài ra, có thể cài đặt bằng `pip3 install nemo-automodel` hoặc từ mã nguồn (`pip3 install git+https://github.com/NVIDIA-NeMo/Automodel.git`); xem *hướng dẫn cài đặt* để biết tất cả các tùy chọn.
Hướng dẫn này trình bày quá trình fine-tune toàn bộ transformer của FLUX.1-dev trên [bộ dữ liệu bài tarot Rider–Waite gồm 78 lá](link), sau đó tạo ảnh từ checkpoint kết quả. Hướng dẫn tái sử dụng các file cấu hình YAML có sẵn và áp dụng các thiết lập riêng cho từng lần chạy dưới dạng ghi đè dòng lệnh, do đó không cần tạo file cấu hình mới.
Recipe diffusion sử dụng các VAE latent và text embedding đã được cache thay vì mã hóa ảnh nguồn trong mỗi bước huấn luyện. Truyền trực tiếp 78 ảnh Rider–Waite từ Hugging Face và phân phối quá trình tiền xử lý trên tất cả GPU khả dụng:
Các caption đã chứa token kích hoạt `trtcrd`. Với ngân sách pixel này và tỷ lệ khung hình dọc của bộ dữ liệu, quá trình tiền xử lý phân bổ các mẫu vào bucket 384×640 được sử dụng trong lần chạy minh họa.
Đối với huấn luyện ảnh, quá trình tiền xử lý tạo ra các file `.ptcache` và metadata được phân mảnh:
Sử dụng trực tiếp `examples/diffusion/finetune/flux_t2i_flow.yaml`. File YAML đã chọn sẵn FLUX.1-dev, fine-tune toàn bộ transformer, FLUX flow-matching adapter, kích thước batch hiệu dụng là 32 và FSDP2 theo 8 chiều.
Cung cấp các đường dẫn và thiết lập riêng cho bộ dữ liệu tarot dưới dạng ghi đè dòng lệnh:
Quá trình chạy tạo ra các checkpoint tại các bước 50, 100, 150 và 200. Checkpoint cuối cùng được gán nhãn `epoch_66_step_199`; nhãn này bắt đầu từ 0 mặc dù thực tế đại diện cho bước tối ưu hóa thứ 200 đã hoàn thành.
Sử dụng file YAML tạo ảnh FLUX hiện có và trỏ `model.checkpoint` đến checkpoint huấn luyện hoàn chỉnh:
Thêm `trtcrd` để kích hoạt phong cách tarot đã học. Để so sánh đối chứng, giữ nguyên seed và cảnh nhưng bỏ token kích hoạt:
Tại bước 200, các prompt phi hành gia có token kích hoạt vẫn giữ nguyên nội dung được yêu cầu trong khi tiếp thu bảng màu cổ điển kem, đỏ và đen, nét mực đậm, các mảng màu phẳng, tông màu giấy cũ và bố cục thẻ bài mang tính ẩn dụ. Phi hành gia không có token kích hoạt vẫn giữ phong cách ảnh chụp, chứng minh rằng hiệu ứng đã học gắn liền đáng kể với `trtcrd` thay vì thay thế toàn bộ mô hình gốc.
Tất cả các phép đo được thực hiện trên một node với 8× GPU NVIDIA H100 80GB. Kết quả là giá trị trung bình ± độ lệch chuẩn mẫu trên ba cửa sổ 10 bước ở trạng thái ổn định.
Mỗi mẫu là một đoạn video 49 khung hình.
Kết quả từ fine-tuning và LoRA cho thấy sức mạnh của NeMo Automodel trong việc chuyên biệt hóa theo lĩnh vực. Ví dụ, fine-tune mô hình Wan 2.1 trên bộ dữ liệu video phong cách Ghibli đã thành công trong việc thích nghi phong cách đầu ra, được minh chứng qua sự thay đổi rõ rệt trong một fl
Chúng tôi cũng quan sát thấy tác động rõ rệt của việc sử dụng LoRA, trong đó việc áp dụng adapter cho Wan 2.1 khiến video mang phong cách Ghibli đặc trưng, đặc biệt thể hiện rõ qua cách làm nổi bật đôi mắt của các nhân vật.
Những ví dụ này, bao gồm cả các ví dụ cho FLUX.2, xác nhận rằng người dùng có thể đạt được cả chất lượng tối đa thông qua fine-tuning toàn bộ lẫn hiệu quả tối đa thông qua PEFT theo phong cách LoRA, tùy chỉnh đầu ra theo các miền phong cách cụ thể.
Tìm hiểu thêm về tích hợp này và xem thêm các ví dụ fine-tuning trong tài liệu NeMo Automodel.
YAML là lựa chọn phù hợp cho cấu hình có khả năng tái tạo, đặc biệt đối với các nhóm muốn có các tệp có thể check in, review và tái sử dụng, nhưng nhiều nhóm cũng cần một giao diện lập trình.
Trong bản phát hành NeMo Automodel sắp tới, chúng tôi có kế hoạch cung cấp các diffusion recipe thông qua một API Python có kiểu dữ liệu đầy đủ. Người dùng sẽ có thể kết hợp trực tiếp từ Python các thành phần model, data, optimizer, PEFT/LoRA, parallelism, checkpointing và generation.
Hướng tiếp cận theo Python được thiết kế để giúp các recipe dễ sử dụng hơn từ code training hiện có, notebook và quy trình thử nghiệm, đồng thời cung cấp giao diện Python hạng nhất song song với hướng khởi động nhanh bằng YAML.


