Transformers documentation
Yapılandırma
Yapılandırma
Taban sınıf PreTrainedConfig, bir yapılandırmanın yerel bir dosya veya dizinden ya da kütüphanenin sağladığı önceden eğitilmiş bir model yapılandırmasından (HuggingFace’in AWS S3 deposundan indirilen) yüklenmesi/kaydedilmesi için ortak yöntemleri uygular.
Her türetilmiş yapılandırma sınıfı, modele özgü öznitelikleri uygular. Tüm yapılandırma sınıflarında bulunan ortak öznitelikler şunlardır: hidden_size, num_attention_heads ve num_hidden_layers. Metin modelleri ayrıca şunu uygular: vocab_size.
PreTrainedConfig
sınıf 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 )
Parametreler
- name_or_path (
str, isteğe bağlı, varsayılan"") — Yapılandırma bu tür bir yöntemle oluşturulduysa, PreTrainedModel.from_pretrained()'e geçirilen dizeyipretrained_model_name_or_patholarak saklar. - output_hidden_states (
bool, isteğe bağlı, varsayılanFalse) — Modelin tüm gizli durumları (hidden-states) döndürüp döndürmeyeceği. - output_attentions (
bool, isteğe bağlı, varsayılanFalse) — Modelin tüm dikkatleri (attentions) döndürüp döndürmeyeceği. - return_dict (
bool, isteğe bağlı, varsayılanTrue) — Modelin düz bir tuple yerine ModelOutput döndürüp döndürmeyeceği. - is_encoder_decoder (
bool, isteğe bağlı, varsayılanFalse) — Modelin bir kodlayıcı/çözücü olarak kullanılıp kullanılmadığı. - chunk_size_feed_forward (
int, isteğe bağlı, varsayılan0) — Artımsal dikkat bloklarındaki tüm ileri besleme katmanlarının parça boyutu.0parça boyutu, ileri besleme katmanının parçalanmadığı anlamına gelir. n parça boyutu, ileri besleme katmanınınn< sequence_length gömme değerini bir seferde işlediği anlamına gelir. İleri besleme parçalama hakkında daha fazla bilgi için Feed Forward Chunking nasıl çalışır? bölümüne bakın. - per_layer_config (
dict[int | str, dict[str, Any]], isteğe bağlı) — Katman indekslerinden yapılandırma öznitelik geçersiz kılma değerlerine seyrek bir eşleme. Her anahtar bir katman indeksidir ve her değer, o katman için küresel yapılandırmadan farklı olan öznitelikleri içerir. - tie_last_hidden_states (
bool, isteğe bağlı) —hidden_states[-1]'in son norm öncesi gizli durum yerine son norm sonrasılast_hidden_stateolması gerekip gerekmediğini belirtir. Ayarlanmazsa, modelin yerleşik varsayılanı kullanılır.
İnce ayar görevleri için parametreler
- architectures (
list[str], isteğe bağlı) — Modelin önceden eğitilmiş ağırlıklarıyla kullanılabilen model mimarileri. - id2label (
dict[int, str], isteğe bağlı) — Dizin (örneğin tahmin dizini veya hedef dizini) ile etiket arasındaki eşleme. - label2id (
dict[str, int], isteğe bağlı) — Model için etiketten indekse giden bir eşleme. - num_labels (
int, isteğe bağlı) — Modelin sonuna eklenen katmanda kullanılacak etiket sayısı, genellikle bir sınıflandırma görevi için. - problem_type (
str, isteğe bağlı) —XxxForSequenceClassificationmodelleri için problem türü."regression","single_label_classification"veya"multi_label_classification"değerlerinden biri olabilir.
PyTorch'a özgü parametreler
- dtype (
str, isteğe bağlı) — Ağırlıklarındtypedeğeri. Bu öznitelik, modeli varsayılan olmayan birdtypeile (genelliklefloat32olan) başlatmak ve böylece optimal depolama tahsisi sağlamak için kullanılabilir. Örneğin, kaydedilen modelfloat16ise,float16ağırlıklarını yüklemek için gereken minimum bellek miktarını kullanarak geri yüklemek idealdir.
Tüm yapılandırma sınıfları için temel sınıf. Tüm modellerin yapılandırmalarına ortak olan birkaç parametrenin yanı sıra yapılandırmaları yükleme/indirme/kaydetme yöntemlerini de işler.
Bir yapılandırma dosyası yüklenebilir ve diske kaydedilebilir. Yapılandırma dosyasını yüklemek ve bu dosyayı bir modeli başlatmak için kullanmak, model ağırlıklarını yüklemez. Bu işlem yalnızca modelin yapılandırmasını etkiler.
Sınıf özellikleri (türetilen sınıflar tarafından geçersiz kılınır):
- model_type (
str) — Model türü için bir tanımlayıcıdır; JSON dosyasına serileştirilir ve AutoConfig içinde doğru nesnenin yeniden oluşturulmasında kullanılır. - attribute_map (
dict[str, str]) — Model spesifik öznitelik adlarını, özniteliklerin standartlaştırılmış adlandırmasına eşleyen bir sözlük. - base_model_tp_plan (
dict[str, Any]) —model.tensor_parallelçağrıldığında alt modüle uygulanan tensör paralel planını, temel modelin alt modül FQN'lerine eşleyen bir sözlük. - base_model_fsdp_plan (
dict[Any, str]) — Bir taban modelin alt modüllerini bir FSDP2 parçalama stratejisine (ör."free_full_weight"/"keep_full_weight") eşleyen bir sözlük. Anahtarlar, joker modül yolları (ör."layers.*") veya yolların bir demeti (tek birfully_shardçağrısında gruplanır) olabilir. - base_model_pp_plan (
dict[str, tuple[list[str]]]) — Temel modelin alt modüllerini, kullanıcıların alt modülü uygun cihaza yerleştirmesini sağlayan bir pipeline paralel planına eşleyen bir sözlük.
Ortak özellikler (tüm alt sınıflarda mevcut):
- vocab_size (
int) — Sözlükteki token sayısı, bu aynı zamanda gömme matrisinin ilk boyutudur (ViT gibi bir metin modalitesi olmayan modellerde bu öznitelik eksik olabilir). - hidden_size (
int) — Modelin gizli boyutu. - num_attention_heads (
int) — Modelin çok başlı dikkat katmanlarında kullanılan dikkat başlarının sayısı. - num_hidden_layers (
int) — Modeldeki blok sayısı.
Model yapılandırmasında dizi üretimi için parametre ayarlamak artık kullanımdan kaldırılmıştır. Geriye dönük uyumluluk için bunların bir kısmını yüklemeye devam edilebilir, ancak bunları üzerine yazmaya çalışmak bir istisna fırlatır — bunları bir [~transformers.GenerationConfig] içinde ayarlamanız gerekir. Bireysel parametreler hakkında daha fazla bilgi için [~transformers.GenerationConfig] belgesini kontrol edin.
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 )
Parametreler
- repo_id (
str) — Yapılandırmanızı göndermek istediğiniz depoyun adı. Belirli bir organizasyona gönderirken organizasyon adınızı içermelidir. - commit_message (
str, isteğe bağlı) — İterken iletilecek mesaj. Varsayılan olarak"Upload config"olur. - commit_description (
str, isteğe bağlı) — Oluşturulacak commit'in açıklaması - private (
bool, isteğe bağlı) — Deponun özel yapılıp yapılmayacağı.None(varsayılan) ise, organizasyonun varsayılanı özel değilse depo herkese açık olur. Depo zaten mevcutsa bu değer yok sayılır. - token (
boolveyastr, isteğe bağlı) — Uzak dosyalar için HTTP bearer yetkilendirmesi olarak kullanılacak jeton.True(varsayılan) ise,hf auth loginçalıştırıldığında oluşturulan jeton (~/.huggingfaceiçinde saklanır) kullanılır. - revision (
str, isteğe bağlı) — Yüklenen dosyaların itileceği dal. - create_pr (
bool, isteğe bağlı, varsayılanFalse) — Yüklenen dosyalarla bir PR oluşturulup oluşturulmayacağı veya doğrudan commit atılıp atılmayacağı. - max_shard_size (
intveyastr, isteğe bağlı, varsayılan"50GB") — Yalnızca modeller için geçerlidir. Bir kontrol noktasının parçalanmadan önceki maksimum boyutu. Parçalanan kontrol noktalarının her biri bu boyuttan küçük olacaktır. Bir dize olarak ifade ediliyorsa, birimden (ör."5MB") önce rakamlar içermelidir. - tags (
list[str], isteğe bağlı) — Hub'a itilecek etiketlerin listesi.
Yapılandırma dosyasını 🤗 Model Hub'a yükleyin.
Örnekler:
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")Bir dataclass'ta işaretlenmiş her alan için varsayılan değerleri alır, diff-dict'i kaydetmek için kullanılır.
Özel __init__ ile v4'te oluşturulan yapılandırmalar için boş bir dict döndürür, böylece self.__dict__ içindeki tüm anahtarlar kaydedilir. Daha yeni yapılandırmalar için, __post_init__ içinde değil de alanlar olarak varsayılanları beyan edilen anahtarları döndürür; bu da seri hale getirilmiş json dosyasından yalnızca bu belirli alanları filtreler.
Geçirilen sözlüğün ve iç içe geçmiş sözlüklerinin bir dtype anahtarı olup olmadığını ve bu anahtarın None olmadığını kontrol eder; bu durumda torch.dtype değerini yalnızca türü içeren bir dizeye dönüştürür. Örneğin, torch.float32 değeri “float32” dizesine dönüştürülür ve bu değer daha sonra json biçiminde saklanabilir.
from_dict
< source >( config_dict: dict[str, Any]**kwargs ) → PreTrainedConfig
Parametreler
- config_dict (
dict[str, Any]) — Yapılandırma nesnesini oluşturmak için kullanılacak sözlük. Böyle bir sözlük, get_config_dict() yöntemi kullanılarak önceden eğitilmiş bir kontrol noktasından alınabilir. - kwargs (
dict[str, Any]) — Yapılandırma nesnesini başlatmak için kullanılacak ek parametreler.
Dönüş değeri
Bu parametrelerden örneklenen yapılandırma nesnesi.
Parametrelerin Python sözlüğünden bir PreTrainedConfig örneği oluşturur.
from_json_file
< source >( json_file: str | os.PathLike ) → PreTrainedConfig
Parametreler
Dönüş değeri
O JSON dosyasından örneklenen yapılandırma nesnesi.
Parametrelerin JSON dosyasının yolundan bir PreTrainedConfig örneği oluşturur.
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
Parametreler
- pretrained_model_name_or_path (
strveyaos.PathLike) — Bunlardan biri olabilir:- bir dize, huggingface.co'daki bir model deposunda barındırılan önceden eğitilmiş bir model yapılandırmasının model kimliği.
- save_pretrained() yöntemi kullanılarak bir yapılandırma dosyası kaydedilen bir dizinin yolunu, örneğin
./my_model_directory/. - kaydedilmiş bir yapılandırma JSON dosyasına giden bir yol, örneğin
./my_model_directory/configuration.json.
- cache_dir (
strveyaos.PathLike, isteğe bağlı) — Standart önbellek kullanılmayacaksa, indirilen önceden eğitilmiş model yapılandırmasının önbelleğe alınacağı dizinin yolu. - force_download (
bool, isteğe bağlı, varsayılanFalse) — Yapılandırma dosyalarının (yeniden) indirilmesini zorlayıp mevcut ise önbellekteki sürümlerin üzerine yazılmasını belirtir. - proxies (
dict[str, str], isteğe bağlı) — Protokole veya uç noktaya göre kullanılacak vekil sunucuların sözlüğü, örn.{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}.Vekiller her istekte kullanılır. - token (
strveyabool, isteğe bağlı) — Uzak dosyalar için HTTP bearer yetkilendirmesi olarak kullanılacak jeton.Trueise veya belirtilmezse,hf auth loginçalıştırıldığında oluşturulan jeton (~/.huggingfaceiçinde saklanır) kullanılır. - revision (
str, isteğe bağlı, varsayılan olarak"main") — Kullanılacak belirli model sürümü. huggingface.co üzerinde modelleri ve diğer artefaktları depolamak için git tabanlı bir sistem kullandığımız için bir dal adı, etiket adı veya commit kimliği olabilir, bu nedenlerevisiongit tarafından izin verilen herhangi bir tanımlayıcı olabilir.Hub'da oluşturduğunuz bir çekme isteğini test etmek için
revision="refs/pr/<pr_number>"parametresini iletebilirsiniz. - return_unused_kwargs (
bool, isteğe bağlı, varsayılan olarakFalse) — eğerFalse, ise bu fonksiyon yalnızca son yapılandırma nesnesini döndürür.Trueise, bu fonksiyon unused_kwargs'nın yapılandırma öznitelikleri olmayan anahtar/değer çiftlerinden oluşan bir sözlük olduğuTuple(config, unused_kwargs)döndürür; yanikwargs'nınconfig'yi güncellemek için kullanılmamış ve aksi halde yok sayılan kısmıdır. - subfolder (
str, isteğe bağlı, varsayılan"") — İlgili dosyalar huggingface.co üzerindeki model deposunun bir alt klasöründe konumlanıyorsa, klasör adını burada belirleyebilirsiniz. - kwargs (
dict[str, Any], isteğe bağlı) — kwargs içindeki yapılandırma öznitelikleri olan anahtarların değerleri, yüklenen değerlerin üzerine yazmak için kullanılır. Anahtarı yapılandırma özniteliği olmayan anahtar/değer çiftleriyle ilgili davranış,return_unused_kwargsanahtar parametresi tarafından kontrol edilir.
Dönüş değeri
Bu önceden eğitilmiş modelden örneklenen yapılandırma nesnesi.
Önceden eğitilmiş bir model yapılandırmasından PreTrainedConfig (veya türetilmiş bir sınıf) örneği oluşturun.
Örnekler:
# 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]
pretrained_model_name_or_path'den, from_dict kullanılarak bir PreTrainedConfig örneği oluşturmak için kullanılacak parametre sözlüğüne çözümlenir.
MTP modelini oluşturmak için kullanılacak mtp metin yapılandırmasını döndürür. MTP katmanları, ana modelle aynı sınıfların örneklenmesiyle oluşturulduğundan, doğru mtp katmanlarını oluşturmak ve katmanlarda indeksleme sorunlarını önlemek için yapılandırmanın indeks-özel özelliklerini, örneğin layer_types veya mtp_layer_types gibi, geçersiz kılmamız gerekir (çünkü MTP katmanları katman indekslemesini 0'dan yeniden başlatır).
get_text_config
< source >( decoder = Noneencoder = None )
Modelin metin girişi (kodlayıcı) veya metin çıktısı (çözücü) ile ilgili metin yapılandırmasını döndürür. decoder ve encoder girdi argümanları, ilgilendiğimiz model ucunu belirtmek için kullanılabilir; bu, hem metin girdisi hem de metin çıktısı modalları olan modellerde faydalıdır.
Bu yöntemin kullanılmasının üç olası sonucu vardır:
- Çoğu modelde, kendisi olan orijinal yapılandırma örneğini döndürür.
- Daha yeni (2024+) bileşik modellerde, geçerli adların altında yerleşik olan config'in metin bölümünü döndürür.
- Daha eski (2023-) bileşik modellerde,
encoder=Trueolduğunda yalnızca decoder parametrelerini, aksi halde yalnızca encoder parametrelerini atar.
Mevcut yapılandırmanın özel kod olup olmadığını döndürür; yani hub'dan yüklenen kod veya herhangi bir kullanıcıya özel modül/oturumda tanımlanan kod.
Mevcut yapılandırmanın özel kod olup olmadığını, yani hub'dan yüklenen kod veya register_for_auto_class ile kaydettiğimiz sınıf olup olmadığını döndürür.
register_for_auto_class
< source >( auto_class = 'AutoConfig' )
Bu sınıfı, verilen bir otomatik sınıf ile kaydedin. Bu, yalnızca özel yapılandırmalar için kullanılmalıdır, çünkü kütüphanedekiler zaten AutoConfig ile eşlenmiştir.
save_pretrained
< source >( save_directory: str | os.PathLikepush_to_hub: bool = False**kwargs )
Parametreler
- save_directory (
strveyaos.PathLike) — Yapılandırma JSON dosyasının kaydedileceği dizin (varsa oluşturulur). - push_to_hub (
bool, isteğe bağlı, varsayılanFalse) — Modelinizi kaydettikten sonra Hugging Face model hub'ına gönderip göndermeyeceğinizi belirtir. Göndermek istediğiniz depoyurepo_idile belirtebilirsiniz (varsayılan olarak ad alanınızdakisave_directoryadını kullanır). - kwargs (
dict[str, Any], isteğe bağlı) — push_to_hub() yöntemine iletilen ek anahtar kelime argümanları.
Bir yapılandırma nesnesini, from_pretrained() sınıf yöntemiyle yeniden yüklenebilmesi için save_directory dizinine kaydedin.
to_dict
< source >( ) → dict[str, Any]
Dönüş değeri
dict[str, Any]
Bu yapılandırma örneğini oluşturan tüm özniteliklerin sözlüğü.
Bu örneği bir Python sözlüğüne serialize eder.
to_diff_dict
< source >( ) → dict[str, Any]
Dönüş değeri
dict[str, Any]
Bu yapılandırma örneğini oluşturan tüm özniteliklerin sözlüğü.
Daha iyi okunabilirlik için, varsayılan yapılandırma özniteliklerine karşılık gelen tüm öznitelikleri yapılandırmadan kaldırır; ancak sınıfın config özniteliğini her zaman korur. Bir Python sözlüğüne serileştirir.
Bu örneği bir JSON dosyasına kaydedin.
to_json_string
< source >( use_diff: bool = True ) → str
Bu örneği bir JSON dizgesine serialize eder.
güncelle
< source >( config_dict: dict[str, Any] )
Bu sınıfın özniteliklerini config_dict içindeki özniteliklerle günceller.
update_from_string
< source >( update_str: str )
Bu sınıfın özniteliklerini update_str içindeki özniteliklerle günceller.
Beklenen biçim, tamsayılar, ondalık sayılar ve dizgelerin olduğu gibi kullanılmasıdır; boole değerleri için ise true veya false kullanılır. Örneğin:
“n_embd=10,resid_pdrop=0.2,scale_attn_weights=false,summary_type=cls_index”
Değiştirilecek anahtarlar, yapılandırma nesnesinde zaten var olmalıdır.
Örnekte sınıf doğrulayıcılarını çalıştırın.
@strict destekli doğrulamanın bir parçasıdır. Yapılandırmanın mimarisini doğrular.
mlp_layer_types ve layer_types'in doğru şekilde tanımlandığından emin olun.
@strict destekli doğrulamanın bir parçasıdır. Özel jetonların içeriğini doğrular.