Transformers documentation
Configuração
Configuração
A classe base PreTrainedConfig implementa os métodos comuns para carregar/salvar uma configuração, seja de um arquivo ou diretório local, seja de uma configuração de modelo pré-treinado fornecida pela biblioteca (baixada do repositório AWS S3 da HuggingFace).
Cada classe de configuração derivada implementa atributos específicos do modelo. Os atributos comuns presentes em todas as classes de configuração são: hidden_size, num_attention_heads e num_hidden_layers. Os modelos de texto implementam, além disso: vocab_size.
PreTrainedConfig
classe transformers.PreTrainedConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None )
Parâmetros
- name_or_path (
str, opcional, padrão"") — Armazena a string que foi passada para PreTrainedModel.from_pretrained() comopretrained_model_name_or_pathse a configuração foi criada com esse método. - output_hidden_states (
bool, opcional, padrãoFalse) — Se o modelo deve ou não retornar todos os hidden-states. - output_attentions (
bool, opcional, padrãoFalse) — Se o modelo deve retornar todas as atenções. - return_dict (
bool, opcional, padrãoTrue) — Se o modelo deve retornar um ModelOutput em vez de uma tupla simples. - is_encoder_decoder (
bool, opcional, padrãoFalse) — Indica se o modelo é usado como encoder/decoder ou não. - chunk_size_feed_forward (
int, opcional, padrão0) — O tamanho do bloco de todas as camadas feed forward nos blocos de atenção residual. Um tamanho de bloco de0significa que a camada feed forward não é dividida em blocos. Um tamanho de bloco de n significa que a camada feed forward processan< sequence_length embeddings por vez. Para mais informações sobre a divisão em blocos de feed forward, consulte Como funciona a divisão em blocos de Feed Forward?. - per_layer_config (
dict[int | str, dict[str, Any]], opcional) — Um mapeamento esparsa de índices de camadas para substituições de atributos de configuração. Cada chave é um índice de camada, e cada valor contém os atributos que diferem da configuração global para aquela camada. - tie_last_hidden_states (
bool, opcional) — Sehidden_states[-1]deve ser olast_hidden_stateapós a normalização final, em vez do estado oculto antes da normalização final. Se não definido, o padrão embutido do modelo é utilizado.
Parâmetros para tarefas de fine-tuning
- architectures (
list[str], opcional) — Arquiteturas de modelo que podem ser usadas com os pesos pré-treinados do modelo. - id2label (
dict[int, str], opcional) — Um mapa de índice (por exemplo, índice de previsão ou índice de alvo) para rótulo. - label2id (
dict[str, int], opcional) — Um mapa de rótulo para índice do modelo. - num_labels (
int, opcional) — Número de rótulos a serem usados na última camada adicionada ao modelo, tipicamente para uma tarefa de classificação. - problem_type (
str, opcional) — Tipo de problema para modelosXxxForSequenceClassification. Pode ser um de"regression","single_label_classification"ou"multi_label_classification".
Parâmetros específicos do PyTorch
- dtype (
str, opcional) — Odtypedos pesos. Este atributo pode ser usado para inicializar o modelo com umdtypenão padrão (normalmentefloat32), permitindo assim uma alocação de armazenamento otimizada. Por exemplo, se o modelo salvo forfloat16, idealmente queremos carregá-lo de volta usando a quantidade mínima de memória necessária para carregar pesosfloat16.
Classe base para todas as classes de configuração. Trata alguns parâmetros comuns a todas as configurações de modelos, bem como métodos para carregar/baixar/salvar configurações.
Um arquivo de configuração pode ser carregado e salvo no disco. Carregar o arquivo de configuração e usar esse arquivo para inicializar um modelo não carrega os pesos do modelo. Ele afeta apenas a configuração do modelo.
Atributos de classe (substituídos por classes derivadas):
- model_type (
str) — Um identificador para o tipo de modelo, serializado no arquivo JSON e usado para recriar o objeto correto no AutoConfig. - attribute_map (
dict[str, str]) — Um dicionário que mapeia os nomes de atributos específicos do modelo para a nomenclatura padronizada dos atributos. - base_model_tp_plan (
dict[str, Any]) — Um dicionário que mapeia os FQNs dos submódulos de um modelo base para um plano de paralelismo de tensor aplicado ao submódulo quandomodel.tensor_parallelé chamado. - base_model_fsdp_plan (
dict[Any, str]) — Um dicionário que mapeia submódulos de um modelo base para uma estratégia de sharding do FSDP2 (por exemplo,"free_full_weight"/"keep_full_weight"). As chaves podem ser caminhos de módulos com curinga (por exemplo,"layers.*") ou tuplas de caminhos (agrupados em uma única chamada defully_shard). - base_model_pp_plan (
dict[str, tuple[list[str]]]) — Um dicionário que mapeia os submódulos de um modelo base para um plano de paralelismo de pipeline que permite aos usuários posicionar o submódulo no dispositivo apropriado.
Atributos comuns (presentes em todas as subclasses):
- vocab_size (
int) — O número de tokens no vocabulário, que também é a primeira dimensão da matriz de embeddings (esse atributo pode estar ausente em modelos que não possuem uma modalidade de texto, como o ViT). - hidden_size (
int) — O tamanho oculto do modelo. - num_attention_heads (
int) — O número de cabeças de atenção usadas nas camadas de atenção multi-cabeça do modelo. - num_hidden_layers (
int) — O número de blocos no modelo.
Definir parâmetros para a geração de sequência na configuração do modelo está obsoleto. Por compatibilidade reversa, o carregamento de alguns deles ainda será possível, mas tentar sobrescrevê-los lançará uma exceção — você deve defini-los em um [~transformers.GenerationConfig]. Consulte a documentação de [~transformers.GenerationConfig] para mais informações sobre os parâmetros individuais.
push_to_hub
< source >( repo_id: strcommit_message: str | None = Nonecommit_description: str | None = Noneprivate: bool | None = Nonetoken: bool | str | None = Nonerevision: str | None = Nonecreate_pr: bool = Falsemax_shard_size: int | str | None = '50GB'tags: list[str] | None = None )
Parâmetros
- repo_id (
str) — O nome do repositório para o qual você deseja enviar sua configuração. Deve conter o nome da sua organização ao enviar para uma organização específica. - commit_message (
str, opcional) — Mensagem de commit ao fazer push. O valor padrão é"Upload config". - commit_description (
str, opcional) — A descrição do commit que será criado - private (
bool, opcional) — Se deve tornar o repositório privado. SeNone(padrão), o repositório será público, a menos que o padrão da organização seja privado. Este valor é ignorado se o repositório já existir. - token (
booloustr, opcional) — O token a ser usado como autorização de bearer HTTP para arquivos remotos. SeTrue(padrão), usará o token gerado ao executarhf auth login(armazenado em~/.huggingface). - revision (
str, opcional) — Branch para a qual os arquivos enviados serão enviados. - create_pr (
bool, opcional, padrãoFalse) — Se deve ou não criar um PR com os arquivos enviados ou fazer o commit diretamente. - max_shard_size (
intoustr, opcional, padrão"50GB") — Aplicável apenas a modelos. O tamanho máximo de um checkpoint antes de ser dividido em shards. Os shards do checkpoint terão, então, cada um um tamanho menor que esse valor. Se expresso como string, deve ser composto por dígitos seguidos de uma unidade (como"5MB"). - tags (
list[str], opcional) — Lista de tags para enviar no Hub.
Envie o arquivo de configuração para o 🤗 Model Hub.
Exemplos:
from transformers import AutoConfig
config = AutoConfig.from_pretrained("google-bert/bert-base-cased")
# Push the config to your namespace with the name "my-finetuned-bert".
config.push_to_hub("my-finetuned-bert")
# Push the config to an organization with the name "my-finetuned-bert".
config.push_to_hub("huggingface/my-finetuned-bert")Obtém os valores padrão de cada campo anotado em uma dataclass, usado para salvar o diff-dict.
Para configs criadas na v4 com __init__ personalizado, ele retornará
um dict vazio, salvando assim todas as chaves em self.__dict__. Para configs mais recentes, ele
retornará as chaves que possuem padrões declarados como campos, em vez de em __post_init__,
o que filtra apenas esses campos específicos do arquivo json serializado.
Verifica se o dicionário passado e seus dicionários aninhados possuem uma chave dtype e, se ela não for None, converte torch.dtype em uma string contendo apenas o tipo. Por exemplo, torch.float32 é convertido na string “float32”, que pode então ser armazenada no formato json.
from_dict
< source >( config_dict: dict[str, Any]**kwargs ) → PreTrainedConfig
Parâmetros
- config_dict (
dict[str, Any]) — Dicionário que será usado para instanciar o objeto de configuração. Esse dicionário pode ser obtido de um checkpoint pré-treinado utilizando o método get_config_dict(). - kwargs (
dict[str, Any]) — Parâmetros adicionais a partir dos quais inicializar o objeto de configuração.
Retorna
O objeto de configuração instanciado a partir desses parâmetros.
Instancia um PreTrainedConfig a partir de um dicionário Python de parâmetros.
from_json_file
< source >( json_file: str | os.PathLike ) → PreTrainedConfig
Parâmetros
Retorna
O objeto de configuração instanciado a partir desse arquivo JSON.
Instancia um PreTrainedConfig a partir do caminho para um arquivo JSON de parâmetros.
from_pretrained
< source >( pretrained_model_name_or_path: str | os.PathLikecache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'**kwargs ) → PreTrainedConfig
Parâmetros
- pretrained_model_name_or_path (
strouos.PathLike) — Pode ser:- uma string, o model id de uma configuração de modelo pré-treinado hospedada em um repositório de modelos no huggingface.co.
- um caminho para um diretório contendo um arquivo de configuração salvo usando o método
save_pretrained(), por exemplo,
./my_model_directory/. - um caminho para um arquivo JSON de configuração salvo arquivo, por exemplo,
./my_model_directory/configuration.json.
- cache_dir (
strouos.PathLike, opcional) — Caminho para um diretório em que a configuração de um modelo pré-treinado baixado deve ser armazenada em cache, caso o cache padrão não deva ser usado. - force_download (
bool, opcional, padrãoFalse) — Indica se deve forçar o (re)download dos arquivos de configuração e substituir 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. - token (
stroubool, opcional) — O token a ser usado como autorização bearer HTTP para arquivos remotos. SeTrue, ou não especificado, usará o token gerado ao executarhf auth login(armazenado em~/.huggingface). - revision (
str, opcional, padrão é"main") — A versão específica do modelo a ser usada. Pode ser o nome de uma branch, o nome de uma tag ou um commit id, pois usamos um sistema baseado em git para armazenar modelos e outros artefatos no huggingface.co, portantorevisionpode ser qualquer identificador permitido pelo git.Para testar um pull request que você fez no Hub, você pode passar
revision="refs/pr/<pr_number>". - return_unused_kwargs (
bool, opcional, padrão éFalse) — SeFalse, então esta função retorna apenas o objeto de configuração final.Se
True, esta função retorna umaTuple(config, unused_kwargs)em que unused_kwargs é um dicionário composto pelos pares de chave/valor cujas chaves não são atributos de configuração: ou seja, a parte dekwargsque não foi usada para atualizarconfige é, de outra forma, ignorada. - subfolder (
str, opcional, padrão"") — Caso os arquivos relevantes estejam localizados em uma subpasta do repositório do modelo no huggingface.co, você pode especificar o nome da pasta aqui. - kwargs (
dict[str, Any], opcional) — Os valores em kwargs de quaisquer chaves que sejam atributos de configuração serão usados para substituir os valores carregados. O comportamento em relação a pares de chave/valor cujas chaves não são atributos de configuração é controlado pelo parâmetro de palavra-chavereturn_unused_kwargs.
Retorna
O objeto de configuração instanciado a partir deste modelo pré-treinado.
Instancie um PreTrainedConfig (ou uma classe derivada) a partir de uma configuração de modelo pré-treinado.
Exemplos:
# We can't instantiate directly the base class *PreTrainedConfig* so let's show the examples on a
# derived class: BertConfig
config = BertConfig.from_pretrained(
"google-bert/bert-base-uncased"
) # Download configuration from huggingface.co and cache.
config = BertConfig.from_pretrained(
"./test/saved_model/"
) # E.g. config (or model) was saved using *save_pretrained('./test/saved_model/')*
config = BertConfig.from_pretrained("./test/saved_model/my_configuration.json")
config = BertConfig.from_pretrained("google-bert/bert-base-uncased", output_attentions=True, foo=False)
assert config.output_attentions == True
config, unused_kwargs = BertConfig.from_pretrained(
"google-bert/bert-base-uncased", output_attentions=True, foo=False, return_unused_kwargs=True
)
assert config.output_attentions == True
assert unused_kwargs == {"foo": False}get_config_dict
< source >( pretrained_model_name_or_path: str | os.PathLike**kwargs ) → tuple[Dict, Dict]
A partir de um pretrained_model_name_or_path, resolve para um dicionário de parâmetros, a ser usado para instanciar um PreTrainedConfig usando from_dict.
Retorna a configuração de texto mtp a ser usada para criar o modelo MTP. Como as camadas MTP são criadas instanciando as mesmas classes do modelo principal, é necessário sobrescrever as propriedades específicas de índice da configuração, como layer_types ou mtp_layer_types, para criar as camadas mtp corretas e evitar problemas de indexação nas camadas (pois as camadas MTP reiniciam a indexação das camadas em 0).
get_text_config
< source >( decoder = Noneencoder = None )
Retorna a configuração de texto relacionada à entrada de texto (encoder) ou à saída de texto (decoder) do modelo. Os argumentos de entrada decoder e encoder podem ser usados para especificar em qual extremidade do modelo estamos interessados, o que é útil em modelos que possuem tanto a modalidade de entrada de texto quanto a de saída de texto.
Há três possíveis resultados ao usar este método:
- Na maioria dos modelos, ele retorna a própria instância de configuração original.
- Em modelos compostos mais recentes (2024+), ele retorna a seção de texto da configuração, que está aninhada sob um conjunto de nomes válidos.
- Em modelos compostos mais antigos (2023-), ele descarta os parâmetros apenas de decodificador quando
encoder=Truee vice-versa.
Indica se a configuração atual é de código personalizado, ou seja, se o código foi carregado do hub ou definido em qualquer módulo/sessão específico do usuário.
Retorna se a configuração atual é de código personalizado, ou seja, código carregado do hub, ou uma classe que acabamos de registrar via register_for_auto_class.
register_for_auto_class
< source >( auto_class = 'AutoConfig' )
Registre esta classe em uma classe auto específica. Isso deve ser usado apenas para configurações personalizadas, pois as da biblioteca já estão mapeadas com AutoConfig.
save_pretrained
< source >( save_directory: str | os.PathLikepush_to_hub: bool = False**kwargs )
Parâmetros
- save_directory (
strouos.PathLike) — Diretório onde o arquivo JSON de configuração será salvo (será criado se não existir). - push_to_hub (
bool, opcional, padrãoFalse) — Indica se o modelo deve ser enviado para o Hugging Face model hub após ser salvo. Você pode especificar o repositório de destino comrepo_id(por padrão, será usado o nome desave_directoryno seu namespace). - kwargs (
dict[str, Any], opcional) — Argumentos de palavra-chave adicionais passados ao método push_to_hub().
Salve um objeto de configuração no diretório save_directory para que ele possa ser recarregado usando o método de classe from_pretrained().
to_dict
< source >( ) → dict[str, Any]
Retorna
dict[str, Any]
Dicionário de todos os atributos que compõem esta instância de configuração.
Serializa esta instância em um dicionário Python.
to_diff_dict
< source >( ) → dict[str, Any]
Retorna
dict[str, Any]
Dicionário de todos os atributos que compõem esta instância de configuração.
Remove todos os atributos da configuração que correspondem aos atributos padrão da configuração, para uma melhor legibilidade, mantendo sempre o atributo config da classe. Serializa para um dicionário Python.
to_json_file
< source >( json_file_path: str | os.PathLikeuse_diff: bool = True )
Parâmetros
- json_file_path (
strouos.PathLike) — Caminho para o arquivo JSON em que os parâmetros desta instância de configuração serão salvos. - use_diff (
bool, opcional, padrãoTrue) — Se definido comoTrue, apenas a diferença entre a instância de config e o padrãoPreTrainedConfig()é serializada para o arquivo JSON.
Salve esta instância em um arquivo JSON.
to_json_string
< source >( use_diff: bool = True ) → str
Parâmetros
- use_diff (
bool, opcional, padrãoTrue) — Se definido comoTrue, apenas a diferença entre a instância de configuração e o padrãoPreTrainedConfig()é serializada para uma string JSON.
Retorna
str
String contendo todos os atributos que compõem esta instância de configuração em formato JSON.
Serializa esta instância em uma string JSON.
atualizar
< source >( config_dict: dict[str, Any] )
Atualiza os atributos desta classe com os atributos de config_dict.
update_from_string
< source >( update_str: str )
Atualiza os atributos desta classe com os atributos de update_str.
O formato esperado é ints, floats e strings como estão, e para booleans use true ou false. Por exemplo:
“n_embd=10,resid_pdrop=0.2,scale_attn_weights=false,summary_type=cls_index”
As chaves a serem alteradas devem já existir no objeto de configuração.
Execute os validadores de classe na instância.
Parte da validação habilitada por @strict. Valida a arquitetura da configuração.
Verifique se mlp_layer_types e layer_types estão definidos corretamente.
Parte da validação impulsionada por @strict. Valida o conteúdo dos tokens especiais.