# AutoModel

[AutoModel](/docs/diffusers/v0.43.0/pt/api/models/auto_model#diffusers.AutoModel) recupera automaticamente a classe de modelo correta do arquivo `config.json` do checkpoint.

## AutoModel[[diffusers.AutoModel]]

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

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

[Fonte](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)
```

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

**Parâmetros:**

pretrained_model_name_or_path (`str` ou `os.PathLike`, *opcional*) : Pode ser:  - Uma string, o *id do modelo* (por exemplo `google/ddpm-celebahq-256`) de um modelo pré-treinado hospedado no Hub. - Um caminho para um *diretório* (por exemplo `./my_model_directory`) contendo os pesos do modelo salvos com [save_pretrained()](/docs/diffusers/v0.43.0/pt/api/models/overview#diffusers.ModelMixin.save_pretrained).

cache_dir (`str | os.PathLike`, *opcional*) : Caminho para um diretório onde a configuração de um modelo pré-treinado baixado é armazenada em cache, caso o cache padrão não seja utilizado.

dtype (`torch.dtype`, *opcional*) : Substitui o `torch.dtype` padrão e carrega o modelo com outro dtype.

force_download (`bool`, *opcional*, padrão `False`) : Se deve forçar o (re-)download dos pesos do modelo e dos arquivos de configuração, sobrescrevendo as versões em cache, caso existam.

proxies (`dict[str, str]`, *opcional*) : Um dicionário de servidores proxy a serem usados por protocolo ou endpoint, por exemplo, `{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}`. Os proxies são usados em cada solicitação.

output_loading_info (`bool`, *opcional*, padrão `False`) : Se deve ou não retornar também um dicionário contendo chaves ausentes, chaves inesperadas e mensagens de erro.

local_files_only(`bool`, *opcional*, padrão `False`) : Se deve carregar apenas os pesos e os arquivos de configuração do modelo localmente. Se definido como `True`, o modelo não será baixado do Hub.

token (`str` ou *bool*, *opcional*) : O token a ser usado como autorização HTTP bearer para arquivos remotos. Se `True`, o token gerado por `diffusers-cli login` (armazenado em `~/.huggingface`) é utilizado.

revision (`str`, *opcional*, padrão `"main"`) : A versão específica do modelo a ser usada. Pode ser o nome de um branch, o nome de uma tag, um id de commit ou qualquer identificador permitido pelo Git.

subfolder (`str`, *opcional*, padrão `""`) : A localização da subpasta de um arquivo de modelo dentro de um repositório de modelo maior no Hub ou localmente.

mirror (`str`, *opcional*) : Espelho de origem para resolver problemas de acessibilidade se você estiver baixando um modelo na China. Não garantimos a pontualidade ou a segurança da origem, e você deve consultar o site do espelho para obter mais informações.

device_map (`str` ou `dict[str, int | str | torch.device]`, *opcional*) : Um mapa que especifica para onde cada submódulo deve ser enviado. Não precisa ser definido para cada nome de parâmetro/buffer; uma vez que um determinado nome de módulo esteja incluído, todos os seus submódulos serão enviados para o mesmo dispositivo. O padrão é `None`, o que significa que o modelo será carregado na CPU. Defina `device_map="auto"` para que o 🤗 Accelerate calcule automaticamente o `device_map` mais otimizado. Para mais informações sobre cada opção, consulte [projetando um mapa de dispositivos](https://hf.co/docs/accelerate/main/en/usage_guides/big_modeling#designing-a-device-map).

max_memory (`Dict`, *opcional*) : Um dicionário com o identificador de dispositivo para a memória máxima. Se não for definido, o padrão será a memória máxima disponível para cada GPU e a RAM disponível na CPU.

offload_folder (`str` ou `os.PathLike`, *opcional*) : O caminho para descarregar os pesos se `device_map` contiver o valor `"disk"`.

offload_state_dict (`bool`, *opcional*) : Se `True`, descarrega temporariamente o state dict da CPU para o disco rígido para evitar a falta de RAM na CPU caso o peso do state dict da CPU + o maior shard do checkpoint não caiba. O padrão é `True` quando há algum offload para o disco.

low_cpu_mem_usage (`bool`, *opcional*, padrão é `True` se a versão do torch >= 1.9.0, caso contrário `False`) : Acelera o carregamento do modelo carregando apenas os pesos pré-treinados e não inicializando os pesos. Isso também tenta não usar mais do que 1x o tamanho do modelo na memória de CPU (incluindo a memória de pico) durante o carregamento do modelo. Suportado apenas para PyTorch >= 1.9.0. Se você estiver usando uma versão mais antiga do PyTorch, definir este argumento como `True` causará um erro.

variant (`str`, *opcional*) : Carrega os pesos de um nome de arquivo `variant` especificado, como `"fp16"` ou `"ema"`.

use_safetensors (`bool`, *opcional*, padrão `None`) : Se definido como `None`, os pesos `safetensors` são baixados se estiverem disponíveis **e** se a biblioteca `safetensors` estiver instalada. Se definido como `True`, o modelo é carregado forçadamente a partir dos pesos `safetensors`. Se definido como `False`, os pesos `safetensors` não são carregados.

disable_mmap ('bool', *opcional*, padrão 'False') : Se deve desabilitar o mmap ao carregar um modelo Safetensors. Essa opção pode ter um desempenho melhor quando o modelo está em uma montagem de rede ou em um disco rígido, que podem não lidar bem com a natureza de buscas do mmap.

trust_remote_cocde (`bool`, *opcional*, padrão `False`) : Se deve confiar em código remoto

Instanciar um modelo PyTorch pré-treinado a partir de uma configuração de modelo pré-treinado.

O modelo é definido no modo de avaliação - `model.eval()` - por padrão, e os módulos de dropout são desativados. Para treinar o modelo, defina-o novamente no modo de treinamento com `model.train()`.

> [!TIP] > Para usar modelos privados ou [gated models](https://huggingface.co/docs/hub/models-gated#gated-models), faça login
com `hf > auth login`. Você também pode ativar o modo especial > ["offline-mode"](https://huggingface.co/diffusers/installation.html#offline-mode) para usar este método em um > ambiente com firewall.

Exemplo:

```py
from diffusers import AutoModel

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

Se você receber a mensagem de erro abaixo, é necessário ajustar os pesos para sua tarefa de destino:

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

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

**Parâmetros:**

pretrained_model_name_or_path_or_dict (`str`, `os.PathLike` ou `dict`) : Pode ser:  - Uma string, o *model id* (por exemplo, `google/ddpm-celebahq-256`) de uma configuração de modelo pré-treinado hospedada no Hub. - Um caminho para um *diretório* (por exemplo, `./my_model_directory`) contendo um arquivo de configuração de modelo. - Um dicionário de configuração.

cache_dir (`Union[str, os.PathLike]`, *opcional*) : Caminho para um diretório onde a configuração de um modelo pré-treinado baixado é armazenada em cache, caso o cache padrão não seja utilizado.

force_download (`bool`, *opcional*, padrão `False`) : Se deve forçar o (re-)download da configuração do modelo, sobrescrevendo a versão em cache, caso exista.

proxies (`Dict[str, str]`, *opcional*) : Um dicionário de servidores proxy a serem usados por protocolo ou endpoint.

local_files_only(`bool`, *opcional*, padrão `False`) : Se deve carregar apenas os arquivos de configuração do modelo locais ou não.

token (`str` ou *bool*, *opcional*) : O token a ser usado como autorização de bearer HTTP para arquivos remotos.

revision (`str`, *opcional*, padrão `"main"`) : A versão específica do modelo a ser usada.

trust_remote_code (`bool`, *opcional*, padrão `False`) : Se deve confiar em código remoto.

subfolder (`str`, *opcional*, padrão `""`) : A localização da subpasta de um arquivo de modelo dentro de um repositório de modelo maior no Hub ou localmente.

**Retorna:**

Um objeto de modelo instanciado a partir da configuração com pesos aleatórios.

Instancie um modelo a partir de um dicionário de configuração ou de um arquivo de configuração de modelo pré-treinado com pesos aleatórios (nenhum peso pré-treinado é carregado).

Exemplo:

```py
from diffusers import AutoModel

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

