# AutoModel

[AutoModel](/docs/diffusers/v0.43.0/vi/api/models/auto_model#diffusers.AutoModel) tự động lấy đúng lớp mô hình từ tệp `config.json` của checkpoint.

## AutoModel[[diffusers.AutoModel]]

#### diffusers.AutoModel[[diffusers.AutoModel]]

```python
diffusers.AutoModel(*args, **kwargs)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/auto_model.py#L27)

#### from_pretrained[[diffusers.AutoModel.from_pretrained]]

```python
from_pretrained(pretrained_model_or_path: str | os.PathLike | None = None, **kwargs)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/auto_model.py#L155)

**Tham số:**

pretrained_model_name_or_path (`str` hoặc `os.PathLike`, *tùy chọn*) : Có thể là:  - Một chuỗi, *model id* (ví dụ `google/ddpm-celebahq-256`) của một model được huấn luyện trước lưu trên Hub. - Một đường dẫn đến *thư mục* (ví dụ `./my_model_directory`) chứa các trọng số model đã được lưu bằng [save_pretrained()](/docs/diffusers/v0.43.0/vi/api/models/overview#diffusers.ModelMixin.save_pretrained).

cache_dir (`str | os.PathLike`, *tùy chọn*) : Đường dẫn đến thư mục nơi cấu hình mô hình được huấn luyện trước đã tải xuống được lưu đệm nếu không sử dụng bộ lưu đệm tiêu chuẩn.

dtype (`torch.dtype`, *tùy chọn*) : Ghi đè `torch.dtype` mặc định và tải mô hình với dtype khác.

force_download (`bool`, *tùy chọn*, mặc định là `False`) : Xác định có nên ép buộc tải lại (re-download) trọng số mô hình và các tệp cấu hình hay không, ghi đè lên các phiên bản đã được lưu trong bộ nhớ đệm nếu chúng tồn tại.

proxies (`dict[str, str]`, *tùy chọn*) : Một từ điển các máy chủ proxy để sử dụng theo giao thức hoặc điểm cuối, ví dụ, `{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}`. Các proxy được sử dụng cho mỗi yêu cầu.

output_loading_info (`bool`, *tùy chọn*, mặc định là `False`) : Có nên trả về một từ điển chứa các khóa bị thiếu, các khóa không mong đợi và các thông báo lỗi hay không.

local_files_only(`bool`, *tùy chọn*, mặc định là `False`) : Xác định xem có chỉ tải các tệp trọng số và cấu hình mô hình cục bộ hay không. Nếu đặt thành `True`, mô hình sẽ không được tải xuống từ Hub.

token (`str` hoặc *bool*, *tùy chọn*) : Token được sử dụng làm HTTP bearer authorization cho các tệp từ xa. Nếu là `True`, token được tạo từ `diffusers-cli login` (được lưu trong `~/.huggingface`) sẽ được sử dụng.

revision (`str`, *tùy chọn*, mặc định là `"main"`) : Phiên bản mô hình cụ thể cần sử dụng. Nó có thể là tên nhánh, tên thẻ, id commit, hoặc bất kỳ định danh nào được Git cho phép.

subfolder (`str`, *tùy chọn*, mặc định là `""`) : Vị trí của thư mục con chứa tệp mô hình bên trong một kho lưu trữ mô hình lớn hơn trên Hub hoặc cục bộ.

mirror (`str`, *tùy chọn*) : Nguồn mirror để giải quyết các vấn đề về khả năng truy cập nếu bạn đang tải xuống một model ở Trung Quốc. Chúng tôi không đảm bảo tính kịp thời hay an toàn của nguồn, và bạn nên tham khảo trang mirror để biết thêm thông tin.

device_map (`str` hoặc `dict[str, int | str | torch.device]`, *tùy chọn*) : Một bản đồ chỉ định vị trí của từng submodule. Không cần định nghĩa cho từng tên parameter/buffer; một khi tên module nhất định đã có trong bản đồ, mọi submodule của nó sẽ được chuyển đến cùng một thiết bị. Mặc định là `None`, có nghĩa là mô hình sẽ được tải trên CPU. Đặt `device_map="auto"` để 🤗 Accelerate tự động tính toán `device_map` tối ưu nhất. Để biết thêm thông tin về từng tùy chọn, xem [thiết kế một device map](https://hf.co/docs/accelerate/main/en/usage_guides/big_modeling#designing-a-device-map).

max_memory (`Dict`, *tùy chọn*) : Một từ điển định danh thiết bị cho bộ nhớ tối đa. Nếu không được đặt, giá trị mặc định sẽ là bộ nhớ tối đa khả dụng cho mỗi GPU và RAM CPU khả dụng.

offload_folder (`str` hoặc `os.PathLike`, *tùy chọn*) : Đường dẫn để offload trọng số nếu `device_map` chứa giá trị `"disk"`.

offload_state_dict (`bool`, *tùy chọn*) : Nếu `True`, sẽ tạm thời offload state dict trên CPU xuống ổ cứng để tránh hết RAM CPU nếu trọng số của state dict trên CPU + shard lớn nhất của checkpoint không vừa. Mặc định là `True` khi có offload xuống đĩa.

low_cpu_mem_usage (`bool`, *tuỳ chọn*, mặc định là `True` nếu phiên bản torch >= 1.9.0, ngược lại là `False`) : Tăng tốc quá trình tải mô hình bằng cách chỉ tải các trọng số được huấn luyện trước và không khởi tạo các trọng số. Đồng thời, tham số này cũng cố gắng không sử dụng quá 1 lần kích thước mô hình trong bộ nhớ CPU (bao gồm cả bộ nhớ đỉnh) trong khi tải mô hình. Chỉ hỗ trợ cho PyTorch >= 1.9.0. Nếu bạn đang sử dụng phiên bản PyTorch cũ hơn, việc đặt tham số này thành `True` sẽ gây ra lỗi.

variant (`str`, *tùy chọn*) : Nạp trọng số từ tên tệp `variant` được chỉ định, chẳng hạn như `"fp16"` hoặc `"ema"`.

use_safetensors (`bool`, *tùy chọn*, mặc định là `None`) : Nếu được đặt thành `None`, các trọng số `safetensors` sẽ được tải xuống nếu chúng có sẵn **và** nếu thư viện `safetensors` đã được cài đặt. Nếu được đặt thành `True`, mô hình sẽ được tải bắt buộc từ các trọng số `safetensors`. Nếu được đặt thành `False`, các trọng số `safetensors` sẽ không được tải.

disable_mmap ('bool', *optional*, mặc định là 'False') : Có vô hiệu hóa mmap khi tải một mô hình Safetensors hay không. Tùy chọn này có thể cho hiệu suất tốt hơn khi mô hình nằm trên ổ đĩa mạng hoặc ổ cứng, những nơi có thể không xử lý tốt tính chất truy cập ngẫu nhiên (seeky) của mmap.

trust_remote_cocde (`bool`, *tùy chọn*, mặc định là `False`) : Có tin tưởng mã từ xa hay không

Tạo một mô hình PyTorch được huấn luyện trước từ cấu hình của một mô hình được huấn luyện trước.

Mô hình được đặt ở chế độ đánh giá - `model.eval()` - theo mặc định, và các module dropout bị vô hiệu hóa. Để huấn luyện mô hình, hãy đặt lại nó ở chế độ huấn luyện bằng `model.train()`.

> [!TIP] > Để sử dụng các mô hình riêng tư hoặc [gated models](https://huggingface.co/docs/hub/models-gated#gated-models), hãy đăng nhập
với `hf > auth login`. Bạn cũng có thể kích hoạt chế độ đặc biệt > ["offline-mode"](https://huggingface.co/diffusers/installation.html#offline-mode) để sử dụng phương pháp này trong môi trường > có tường lửa.

Ví dụ:

```py
from diffusers import AutoModel

unet = AutoModel.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5", subfolder="unet")
```

Nếu bạn nhận được thông báo lỗi bên dưới, bạn cần tinh chỉnh trọng số cho tác vụ hạ nguồn của mình:

```bash
Some weights of UNet2DConditionModel were not initialized from the model checkpoint at stable-diffusion-v1-5/stable-diffusion-v1-5 and are newly initialized because the shapes did not match:
- conv_in.weight: found shape torch.Size([320, 4, 3, 3]) in the checkpoint and torch.Size([320, 9, 3, 3]) in the model instantiated
You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.
```

#### from_config[[diffusers.AutoModel.from_config]]

```python
from_config(pretrained_model_name_or_path_or_dict: str | os.PathLike | dict | None = None, **kwargs)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/auto_model.py#L38)

**Tham số:**

pretrained_model_name_or_path_or_dict (`str`, `os.PathLike`, hoặc `dict`) : Có thể là:  - Một chuỗi, *model id* (ví dụ `google/ddpm-celebahq-256`) của một cấu hình model được huấn luyện trước có trên Hub. - Một đường dẫn đến *thư mục* (ví dụ `./my_model_directory`) chứa tệp cấu hình model. - Một từ điển cấu hình.

cache_dir (`Union[str, os.PathLike]`, *tùy chọn*) : Đường dẫn đến thư mục nơi cấu hình mô hình được huấn luyện trước đã tải xuống được lưu đệm nếu không sử dụng bộ lưu đệm tiêu chuẩn.

force_download (`bool`, *tùy chọn*, mặc định là `False`) : Xác định có nên ép buộc tải lại cấu hình mô hình hay không, ghi đè lên phiên bản được lưu trong bộ nhớ đệm nếu có.

proxies (`Dict[str, str]`, *tùy chọn*) : Một từ điển các máy chủ proxy để sử dụng theo giao thức hoặc điểm cuối.

local_files_only(`bool`, *tùy chọn*, mặc định là `False`) : Xác định xem có chỉ tải các tệp cấu hình mô hình cục bộ hay không.

token (`str` hoặc *bool*, *tùy chọn*) : Token được sử dụng làm xác thực HTTP bearer cho các tệp từ xa.

revision (`str`, *tùy chọn*, mặc định là `"main"`) : Phiên bản mô hình cụ thể cần sử dụng.

trust_remote_code (`bool`, *tùy chọn*, mặc định là `False`) : Có tin tưởng mã từ xa hay không.

subfolder (`str`, *tùy chọn*, mặc định là `""`) : Vị trí của thư mục con chứa tệp mô hình bên trong một kho lưu trữ mô hình lớn hơn trên Hub hoặc cục bộ.

**Trả về:**

Một đối tượng mô hình được khởi tạo từ cấu hình với các trọng số ngẫu nhiên.

Tạo một mô hình từ một từ điển cấu hình hoặc một tệp cấu hình mô hình được huấn luyện trước với các trọng số ngẫu nhiên (không tải các trọng số được huấn luyện trước).

Ví dụ:

```py
from diffusers import AutoModel

model = AutoModel.from_config("stable-diffusion-v1-5/stable-diffusion-v1-5", subfolder="unet")
```

