Buckets:

hf-doc-build/doc / diffusers /main /vi /training /distributed_inference.md
mishig's picture
|
download
raw
3.54 kB

Suy luận phân tán

Suy luận phân tán chia nhỏ khối lượng công việc trên nhiều GPU. Nó hữu ích để nạp các mô hình lớn hơn vào bộ nhớ và để xử lý nhiều prompt cùng lúc.

Diffusers hỗ trợ bốn chiến lược. Mỗi chiến lược có hướng dẫn riêng, và trang này giúp bạn chọn một chiến lược.

Chọn một chiến lược

Mỗi chiến lược giải quyết một vấn đề khác nhau, vì vậy hãy chọn một chiến lược dựa trên tài nguyên đang giới hạn bạn.

Chiến lược Các phần chia Giảm Độ trễ cho một prompt Phù hợp nhất khi
Song song dữ liệu prompts giữa các bản sao không có gì, vì mỗi GPU giữ một bản sao đầy đủ không thay đổi mô hình đã vừa vặn và bạn có nhiều prompt
device_map các thành phần trên các thiết bị bộ nhớ trọng số kém hơn một chút mô hình không vừa và kết nối giữa các thành phần chậm
Song song ngữ cảnh chuỗi đầu vào bộ nhớ kích hoạt thấp hơn các chuỗi là dài, chẳng hạn như hình ảnh độ phân giải cao hoặc video
Song song tensor các ma trận trọng số bộ nhớ trọng số thấp hơn trọng số của một thành phần không vừa và kết nối giữa các thành phần rất nhanh

Một số hướng dẫn thực tế:

  • Nếu model đã vừa vặn và bạn có nhiều prompts, hãy dùng data parallelism. Nó tăng throughput theo số lượng GPU mà không cần đụng vào model, và giữ nguyên latency của single-prompt. Hãy thiết lập nó bằng Accelerate hoặc PyTorch Distributed.
  • Nếu trọng số của một thành phần đơn lẻ không vừa, hãy thử tensor parallelism trước, vì nó giảm cả bộ nhớ lẫn độ trễ. Tensor parallelism trao đổi thông tin tại mọi ranh giới khối, do đó cần một liên kết nhanh như NVLink. Trên PCIe, lưu lượng truyền dữ liệu cho mỗi lớp có thể lớn hơn lượng tính toán mà nó tiết kiệm được, và device_map sẽ là lựa chọn tốt hơn. device_map cũng xử lý được trường hợp các thành phần riêng lẻ đều ổn nhưng tổng thể lại quá lớn.
  • Nếu vấn đề nằm ở activations chứ không phải weights, hãy dùng context parallelism. Cách này hữu ích cho các chuỗi dài, chẳng hạn như ảnh lớn và video có nhiều khung hình. Hãy chọn một backend từ các benchmark trong hướng dẫn Context parallelism.
  • Nếu cả trọng số lẫn chuỗi đều quá lớn, Diffusers không thể áp dụng song song hóa tensor và song song hóa ngữ cảnh cho cùng một mô hình. ParallelConfig sẽ gây ra lỗi nếu bạn truyền cả hai cấu hình, và enable_parallelism không thể được gọi lần thứ hai trên một mô hình đã được song song hóa.

Các tích hợp cộng đồng xDiT và ParaAttention cung cấp các triển khai song song ngữ cảnh riêng của chúng.

Xet Storage Details

Size:
3.54 kB
·
Xet hash:
8b15f2b00619feee220254ba2e952c89ff28bb80d2cc8d4779a20228b39d4e17

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.