# AutoModel

[AutoModel](/docs/diffusers/v0.43.0/ru/api/models/auto_model#diffusers.AutoModel) автоматически определяет правильный класс модели из файла `config.json` в контрольной точке.

## AutoModel[[diffusers.AutoModel]]

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

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

[Источник](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)
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/auto_model.py#L155)

**Параметры:**

pretrained_model_name_or_path (`str` или `os.PathLike`, *необязательный*) : Может быть одним из:  - строка, *идентификатор модели* (например, `google/ddpm-celebahq-256`) предобученной модели, размещенной на Hub. - путь к *каталогу* (например, `./my_model_directory`), содержащему веса модели, сохраненные с помощью [save_pretrained()](/docs/diffusers/v0.43.0/ru/api/models/overview#diffusers.ModelMixin.save_pretrained).

cache_dir (`str | os.PathLike`, *необязательный*) : Путь к каталогу, в котором кэшируется конфигурация загруженной предобученной модели, если стандартный кэш не используется.

dtype (`torch.dtype`, *необязательный*) : Переопределяет значение по умолчанию `torch.dtype` и загружает модель с другим dtype.

force_download (`bool`, *необязательный*, по умолчанию `False`) : Указывает, следует ли принудительно (пере)скачивать веса модели и файлы конфигурации, заменяя кэшированные версии, если они существуют.

proxies (`dict[str, str]`, *необязательный*) : Словарь прокси-серверов для использования по протоколу или конечной точке, например, `{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}`. Прокси используются при каждом запросе.

output_loading_info (`bool`, *необязательный*, по умолчанию `False`) : Нужно ли также возвращать словарь, содержащий отсутствующие ключи, неожиданные ключи и сообщения об ошибках.

local_files_only(`bool`, *необязательный*, по умолчанию `False`) : Загружать только локальные веса модели и файлы конфигурации или нет. Если установлено в `True`, модель не будет скачана с Hub.

token (`str` или *bool*, *необязательный*) : Токен, используемый в качестве HTTP bearer-авторизации для удалённых файлов. Если `True`, используется токен, сгенерированный командой `diffusers-cli login` (сохранённый в `~/.huggingface`).

revision (`str`, *необязательный*, по умолчанию `"main"`) : Конкретная версия модели, которую следует использовать. Может быть именем ветки, именем тега, идентификатором коммита или любым другим идентификатором, поддерживаемым Git.

subfolder (`str`, *необязательный*, по умолчанию `""`) : Путь к подпапке, в которой находится файл модели в составе более крупного репозитория моделей на Hub или локально.

mirror (`str`, *необязательный*) : Зеркальный источник для решения проблем с доступностью при загрузке модели в Китае. Мы не гарантируем актуальность или безопасность источника, поэтому за дополнительной информацией обращайтесь на сайт зеркала.

device_map (`str` или `dict[str, int | str | torch.device]`, *необязательный*) : Карта, указывающая, на какое устройство следует поместить каждый подмодуль. Её не обязательно задавать для каждого имени параметра/буфера; как только имя модуля указано, все его подмодули будут отправлены на то же устройство. По умолчанию `None`, что означает загрузку модели на CPU. Установите `device_map="auto"`, чтобы 🤗 Accelerate автоматически вычислила наиболее оптимизированную `device_map`. Подробнее о каждом варианте см. [проектирование карты устройств](https://hf.co/docs/accelerate/main/en/usage_guides/big_modeling#designing-a-device-map).

max_memory (`Dict`, *необязательный*) : Словарь идентификаторов устройств для максимальной памяти. Если не задано, по умолчанию используется максимальная доступная память для каждого GPU и доступная оперативная память CPU.

offload_folder (`str` или `os.PathLike`, *необязательный*) : Путь для выгрузки весов, если `device_map` содержит значение `"disk"`.

offload_state_dict (`bool`, *необязательный*) : Если `True`, состояние CPU state dict временно выгружается на диск, чтобы избежать нехватки оперативной памяти CPU, если вес CPU state dict и крупнейший фрагмент контрольной точки не помещаются в неё. По умолчанию `True`, если используется выгрузка на диск.

low_cpu_mem_usage (`bool`, *необязательный*, по умолчанию `True`, если версия torch >= 1.9.0, иначе `False`) : Ускоряет загрузку модели, загружая только предобученные веса и не инициализируя их. Также это позволяет не использовать больше 1x размера модели в оперативной памяти (включая пиковое потребление) при загрузке модели. Поддерживается только для PyTorch >= 1.9.0. Если вы используете более старую версию PyTorch, установка этого аргумента в `True` вызовет ошибку.

variant (`str`, *необязательный*) : Загружает веса из файла с указанным `variant`, например `"fp16"` или `"ema"`.

use_safetensors (`bool`, *необязательный*, по умолчанию `None`) : Если установлено в `None`, веса `safetensors` будут загружены, если они доступны **и** если библиотека `safetensors` установлена. Если установлено в `True`, модель принудительно загружается из весов `safetensors`. Если установлено в `False`, веса `safetensors` не загружаются.

disable_mmap ('bool', *optional*, по умолчанию 'False') : Отключает ли использование mmap при загрузке модели Safetensors. Этот параметр может обеспечить лучшую производительность, если модель находится на сетевом диске или жёстком диске, которые могут плохо справляться с частыми операциями перемотки, характерными для mmap.

trust_remote_cocde (`bool`, *необязательный*, по умолчанию `False`) : Нужно ли доверять удалённому коду

Создайте предобученную модель PyTorch на основе конфигурации предобученной модели.

Модель по умолчанию находится в режиме оценки - `model.eval()` - и модули dropout отключены. Для обучения модели верните её в режим обучения с помощью `model.train()`.

> [!TIP] > Для использования частных или [gated models](https://huggingface.co/docs/hub/models-gated#gated-models) выполните вход
с помощью `hf > auth login`. Вы также можете активировать специальный режим > ["offline-mode"](https://huggingface.co/diffusers/installation.html#offline-mode), чтобы использовать этот метод в > среде с файрволом.

Пример:

```py
from diffusers import AutoModel

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

Если вы получаете сообщение об ошибке, приведённое ниже, вам необходимо дообучить веса для вашей целевой задачи:

```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)
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/auto_model.py#L38)

**Параметры:**

pretrained_model_name_or_path_or_dict (`str`, `os.PathLike` или `dict`) : Может быть одним из следующих:  - строка, *model id* (например, `google/ddpm-celebahq-256`) конфигурации предобученной модели, размещенной на Hub. - путь к *каталогу* (например, `./my_model_directory`), содержащему файл конфигурации модели. - словарь конфигурации.

cache_dir (`Union[str, os.PathLike]`, *необязательный*) : Путь к каталогу, в котором кэшируется конфигурация загруженной предобученной модели, если стандартный кэш не используется.

force_download (`bool`, *необязательный*, по умолчанию `False`) : Указывает, следует ли принудительно (пере)скачивать конфигурацию модели, заменяя кэшированную версию, если она существует.

proxies (`Dict[str, str]`, *необязательный*) : Словарь прокси-серверов для использования по протоколу или конечной точке.

local_files_only(`bool`, *необязательный*, по умолчанию `False`) : Загружать только локальные файлы конфигурации модели или нет.

token (`str` или *bool*, *необязательный*) : Токен, используемый в качестве HTTP bearer-авторизации для удалённых файлов.

revision (`str`, *необязательный*, по умолчанию `"main"`) : Конкретная версия модели, которую следует использовать.

trust_remote_code (`bool`, *необязательный*, по умолчанию `False`) : Нужно ли доверять удалённому коду.

subfolder (`str`, *необязательный*, по умолчанию `""`) : Путь к подпапке, в которой находится файл модели в составе более крупного репозитория моделей на Hub или локально.

**Возвращает:**

Объект модели, созданный из конфигурации со случайными весами.

Создайте модель из словаря конфигурации или файла конфигурации предобученной модели со случайными весами (предобученные веса не загружаются).

Пример:

```py
from diffusers import AutoModel

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

