# DeepSpeed

[DeepSpeed](https://github.com/deepspeedai/DeepSpeed), được hỗ trợ bởi Zero Redundancy Optimizer (ZeRO), là một thư viện tối ưu hóa để huấn luyện và khớp các mô hình rất lớn lên GPU. Nó có sẵn ở một số giai đoạn ZeRO, trong đó mỗi giai đoạn tiết kiệm thêm bộ nhớ GPU bằng cách phân vùng trạng thái optimizer, gradient, tham số và cho phép offload sang CPU hoặc NVMe. DeepSpeed được tích hợp với lớp [Trainer](/docs/transformers/v5.23.0/vi/main_classes/trainer#transformers.Trainer) và phần lớn việc thiết lập sẽ được tự động xử lý cho bạn.

Tuy nhiên, nếu bạn muốn sử dụng DeepSpeed mà không dùng [Trainer](/docs/transformers/v5.23.0/vi/main_classes/trainer#transformers.Trainer), Transformers cung cấp lớp `HfDeepSpeedConfig`.

Tìm hiểu thêm về việc sử dụng DeepSpeed với [Trainer](/docs/transformers/v5.23.0/vi/main_classes/trainer#transformers.Trainer) trong hướng dẫn [DeepSpeed](../deepspeed).

## HfDeepSpeedConfig[[transformers.integrations.HfDeepSpeedConfig]]

#### transformers.integrations.HfDeepSpeedConfig[[transformers.integrations.HfDeepSpeedConfig]]

```python
transformers.integrations.HfDeepSpeedConfig(config_file_or_dict)
```

[Nguồn](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/integrations/deepspeed.py#L60)

**Tham số:**

config_file_or_dict (`Union[str, Dict]`) : đường dẫn đến tệp cấu hình DeepSpeed hoặc dict.

Đối tượng này chứa một từ điển cấu hình DeepSpeed và có thể được truy vấn nhanh chóng cho các thông tin như zero stage.

Một `weakref` của đối tượng này được lưu trong các biến toàn cục của module để có thể truy cập config từ những nơi mà các đối tượng như Trainer không khả dụng (ví dụ `from_pretrained` và `_get_resized_embeddings`). Do đó, điều quan trọng là đối tượng này phải tiếp tục tồn tại trong khi chương trình vẫn đang chạy.

[Trainer](/docs/transformers/v5.23.0/vi/main_classes/trainer#transformers.Trainer) sử dụng lớp con `HfTrainerDeepSpeedConfig` thay thế. Lớp con này có logic để đồng bộ cấu hình với các giá trị của [TrainingArguments](/docs/transformers/v5.23.0/vi/main_classes/trainer#transformers.TrainingArguments) bằng cách thay thế các giá trị placeholder đặc biệt: `"auto"`. Nếu không có logic đặc biệt này, cấu hình DeepSpeed sẽ không bị thay đổi dưới bất kỳ hình thức nào.

