Transformers documentation
Konfigurasi
Konfigurasi
Kelas dasar PreTrainedConfig mengimplementasikan metode umum untuk memuat/menyimpan konfigurasi baik dari file atau direktori lokal, maupun dari konfigurasi model pretrained yang disediakan oleh pustaka (diunduh dari repositori AWS S3 HuggingFace).
Setiap kelas config turunan mengimplementasikan atribut spesifik model. Atribut umum yang ada di semua kelas config adalah: hidden_size, num_attention_heads, dan num_hidden_layers. Model teks lebih lanjut mengimplementasikan: vocab_size.
PreTrainedConfig
kelas 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 )
Parameter
- name_or_path (
str, opsional, defaultnya"") — Simpan string yang diteruskan ke PreTrainedModel.from_pretrained() sebagaipretrained_model_name_or_pathjika konfigurasi dibuat dengan metode tersebut. - output_hidden_states (
bool, opsional, defaultFalse) — Apakah model harus mengembalikan semua hidden-states. - output_attentions (
bool, opsional, defaultFalse) — Apakah model harus mengembalikan semua perhatian (attentions). - return_dict (
bool, opsional, defaultnyaTrue) — Apakah model harus mengembalikan ModelOutput alih-alih tuple biasa. - is_encoder_decoder (
bool, opsional, defaultFalse) — Apakah model digunakan sebagai encoder/decoder atau tidak. - chunk_size_feed_forward (
int, opsional, defaultnya0) — Ukuran chunk dari semua lapisan feed forward dalam blok residual attention. Ukuran chunk0berarti lapisan feed forward tidak di-chunk. Ukuran chunk n berarti lapisan feed forward memprosesn< sequence_length embeddings pada satu waktu. Untuk informasi lebih lanjut tentang feed forward chunking, lihat Bagaimana cara kerja Feed Forward Chunking?. - per_layer_config (
dict[int | str, dict[str, Any]], opsional) — Pemetaan jarang (sparse mapping) dari indeks layer ke penimpaan atribut konfigurasi. Setiap kunci adalah indeks layer, dan setiap nilai berisi atribut yang berbeda dari konfigurasi global untuk layer tersebut. - tie_last_hidden_states (
bool, opsional) — Apakahhidden_states[-1]harus berupalast_hidden_statepasca-norm-final, bukan hidden state pra-norm-final. Jika tidak diset, nilai bawaan bawaan model yang digunakan.
Parameter untuk tugas fine-tuning
- architectures (
list[str], opsional) — Arsitektur model yang dapat digunakan dengan bobot pralatih model. - id2label (
dict[int, str], opsional) — Peta dari indeks (misalnya indeks prediksi, atau indeks target) ke label. - label2id (
dict[str, int], opsional) — Peta dari label ke indeks untuk model. - num_labels (
int, opsional) — Jumlah label yang digunakan pada lapisan terakhir yang ditambahkan ke model, biasanya untuk tugas klasifikasi. - problem_type (
str, opsional) — Jenis masalah untuk modelXxxForSequenceClassification. Bisa berupa salah satu dari"regression","single_label_classification"atau"multi_label_classification".
Parameter khusus PyTorch
- dtype (
str, opsional) —dtypedari bobot. Atribut ini dapat digunakan untuk menginisialisasi model kedtypenon-default (yang biasanyafloat32) sehingga memungkinkan alokasi penyimpanan yang optimal. Misalnya, jika model yang disimpan adalahfloat16, idealnya kita ingin memuatnya kembali menggunakan jumlah memori minimal yang dibutuhkan untuk memuat bobotfloat16.
Kelas dasar untuk semua kelas konfigurasi. Menangani beberapa parameter yang umum untuk semua konfigurasi model serta metode untuk memuat/mengunduh/menyimpan konfigurasi.
File konfigurasi dapat dimuat dan disimpan ke disk. Memuat file konfigurasi dan menggunakan file ini untuk menginisialisasi model tidak memuat bobot model. Hal ini hanya memengaruhi konfigurasi model.
Atribut kelas (ditimpa oleh kelas turunan):
- model_type (
str) — Pengidentifikasi untuk tipe model, yang diserialisasi ke file JSON dan digunakan untuk membuat ulang objek yang benar di AutoConfig. - attribute_map (
dict[str, str]) — Dict yang memetakan nama atribut spesifik model ke penamaan atribut yang distandardisasi. - base_model_tp_plan (
dict[str, Any]) — Dict yang memetakan FQN sub-modul dari model dasar ke rencana paralel tensor yang diterapkan pada sub-modul tersebut ketikamodel.tensor_paralleldipanggil. - base_model_fsdp_plan (
dict[Any, str]) — Dict yang memetakan sub-modul dari model dasar ke strategi sharding FSDP2 (misalnya"free_full_weight"/"keep_full_weight"). Kunci dapat berupa jalur modul wildcard (misalnya"layers.*") atau tuple dari jalur (dikelompokkan ke dalam satu panggilanfully_shard). - base_model_pp_plan (
dict[str, tuple[list[str]]]) — Dict yang memetakan modul anak dari model dasar ke rencana paralel pipeline yang memungkinkan pengguna menempatkan modul anak pada perangkat yang sesuai.
Atribut umum (ada di semua subkelas):
- vocab_size (
int) — Jumlah token dalam kosakata, yang juga merupakan dimensi pertama dari matriks embeddings (atribut ini mungkin tidak ada untuk model yang tidak memiliki modalitas teks seperti ViT). - hidden_size (
int) — Ukuran tersembunyi (hidden size) dari model. - num_attention_heads (
int) — Jumlah kepala perhatian yang digunakan pada lapisan multi-head attention dari model. - num_hidden_layers (
int) — Jumlah blok dalam model.
Menetapkan parameter untuk generasi sekuens dalam konfigurasi model sudah tidak didukung lagi. Demi kompatibilitas mundur, memuat beberapa parameter tersebut masih mungkin, tetapi mencoba menimpanya akan melempar pengecualian — Anda harus menyetelnya di [~transformers.GenerationConfig]. Periksa dokumentasi [~transformers.GenerationConfig] untuk informasi lebih lanjut tentang parameter individual.
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 )
Parameter
- repo_id (
str) — Nama repositori tempat Anda ingin mendorong konfigurasi Anda. Seharusnya berisi nama organisasi Anda saat mendorong ke organisasi tertentu. - commit_message (
str, opsional) — Pesan untuk commit saat push. Secara default akan menjadi"Upload config". - commit_description (
str, opsional) — Deskripsi dari commit yang akan dibuat - private (
bool, opsional) — Apakah membuat repo menjadi privat. JikaNone(default), repo akan menjadi publik kecuali default organisasi adalah privat. Nilai ini diabaikan jika repo sudah ada. - token (
boolataustr, opsional) — Token yang digunakan sebagai otorisasi bearer HTTP untuk file jarak jauh. JikaTrue(default), akan menggunakan token yang dihasilkan saat menjalankanhf auth login(disimpan di~/.huggingface). - revision (
str, opsional) — Cabang untuk mendorong file yang diunggah. - create_pr (
bool, opsional, defaultFalse) — Apakah akan membuat PR dengan file yang diunggah atau langsung melakukan commit. - max_shard_size (
intataustr, opsional, default"50GB") — Hanya berlaku untuk model. Ukuran maksimum checkpoint sebelum di-shard. Setiap shard checkpoint akan memiliki ukuran lebih kecil dari nilai ini. Jika dinyatakan sebagai string, harus berupa angka diikuti satuan (seperti"5MB"). - tags (
list[str], opsional) — Daftar tag untuk didorong ke Hub.
Unggah file konfigurasi ke 🤗 Model Hub.
Contoh:
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")Mengambil nilai default untuk setiap field yang di-annotate dalam dataclass, digunakan untuk menyimpan diff-dict.
Untuk konfigurasi yang dibuat di v4 dengan __init__ kustom, fungsi ini akan mengembalikan
dict kosong, sehingga menyimpan semua kunci dalam self.__dict__. Untuk konfigurasi yang lebih baru, fungsi ini akan
mengembalikan kunci yang memiliki default yang dideklarasikan sebagai field, bukan di __post_init__,
yang memfilter hanya field spesifik tersebut dari file json yang diserialisasi.
Memeriksa apakah kamus yang diberikan dan kamus bersarangnya memiliki kunci dtype dan jika nilainya bukan None,
mengubah torch.dtype menjadi string yang hanya berisi tipe. Misalnya, torch.float32 diubah menjadi string “float32”, yang kemudian dapat disimpan dalam format json.
from_dict
< source >( config_dict: dict[str, Any]**kwargs ) → PreTrainedConfig
Parameter
- config_dict (
dict[str, Any]) — Kamus yang akan digunakan untuk menginstansiasi objek konfigurasi. Kamus semacam itu dapat diperoleh dari checkpoint pretrained dengan memanfaatkan metode get_config_dict(). - kwargs (
dict[str, Any]) — Parameter tambahan untuk menginisialisasi objek konfigurasi.
Mengembalikan
Objek konfigurasi yang diinstansiasi dari parameter tersebut.
Membuat instans PreTrainedConfig dari kamus Python berisi parameter.
from_json_file
< source >( json_file: str | os.PathLike ) → PreTrainedConfig
Parameter
Mengembalikan
Objek konfigurasi yang diinstansiasi dari file JSON tersebut.
Membuat instans PreTrainedConfig dari path ke file JSON berisi parameter.
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
Parameter
- pretrained_model_name_or_path (
stratauos.PathLike) — Ini bisa berupa:- sebuah string, model id dari konfigurasi model pretrained yang dihosting di dalam repo model di huggingface.co.
- path ke direktori yang berisi file konfigurasi yang disimpan menggunakan metode
save_pretrained(), misalnya
./my_model_directory/. - path ke file JSON konfigurasi yang disimpan file, misalnya
./my_model_directory/configuration.json.
- cache_dir (
stratauos.PathLike, opsional) — Path ke direktori tempat konfigurasi model pretrained yang diunduh harus di-cache jika cache standar tidak digunakan. - force_download (
bool, opsional, defaultFalse) — Apakah akan memaksa (mengunduh ulang) file konfigurasi dan menimpa versi yang di-cache jika sudah ada. - proxies (
dict[str, str], opsional) — Kamus server proxy untuk digunakan berdasarkan protokol atau endpoint, misalnya{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}.Proxy digunakan pada setiap permintaan. - token (
strataubool, opsional) — Token yang digunakan sebagai otorisasi bearer HTTP untuk file jarak jauh. JikaTrue, atau tidak ditentukan, akan menggunakan token yang dihasilkan saat menjalankanhf auth login(disimpan di~/.huggingface). - revision (
str, opsional, default ke"main") — Versi model spesifik yang akan digunakan. Bisa berupa nama branch, nama tag, atau commit id, karena kami menggunakan sistem berbasis git untuk menyimpan model dan artefak lainnya di huggingface.co, jadirevisionbisa berupa identifikasi apa pun yang diizinkan oleh git.Untuk menguji pull request yang Anda buat di Hub, Anda dapat meneruskan
revision="refs/pr/<pr_number>". - return_unused_kwargs (
bool, opsional, defaultnyaFalse) — JikaFalse, maka fungsi ini hanya mengembalikan objek konfigurasi akhir.Jika
True, maka fungsi ini mengembalikanTuple(config, unused_kwargs)di mana unused_kwargs adalah kamus yang terdiri dari pasangan kunci/nilai yang kuncinya bukan atribut konfigurasi: yaitu, bagian darikwargsyang tidak digunakan untuk memperbaruiconfigdan diabaikan. - subfolder (
str, opsional, defaultnya"") — Jika file yang relevan berada di dalam subfolder dari repo model di huggingface.co, Anda dapat menentukan nama folder di sini. - kwargs (
dict[str, Any], opsional) — Nilai dalam kwargs untuk kunci mana pun yang merupakan atribut konfigurasi akan digunakan untuk menimpa nilai yang dimuat. Perilaku terkait pasangan kunci/nilai yang kuncinya bukan atribut konfigurasi dikendalikan oleh parameter kata kuncireturn_unused_kwargs.
Mengembalikan
Objek konfigurasi yang diinstansiasi dari model pretrained ini.
Instansiasi PreTrainedConfig (atau kelas turunan) dari konfigurasi model pretrained.
Contoh:
# 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]
Dari pretrained_model_name_or_path, selesaikan menjadi kamus parameter, untuk digunakan dalam menginstansiasi PreTrainedConfig menggunakan from_dict.
Mengembalikan konfigurasi teks mtp yang akan digunakan untuk membuat model MTP. Karena lapisan MTP dibuat dengan menginstansiasi kelas yang sama seperti model utama, kita perlu menimpa properti yang spesifik terhadap indeks dari konfigurasi seperti layer_types atau mtp_layer_types untuk membuat lapisan mtp yang benar dan menghindari masalah indeksasi pada lapisan (karena lapisan MTP memulai ulang indeksasi lapisan dari 0).
get_text_config
< source >( decoder = Noneencoder = None )
Mengembalikan konfigurasi teks yang terkait dengan input teks (encoder) atau output teks (decoder) dari model. Argumen input decoder dan encoder dapat digunakan untuk menentukan sisi model mana yang menjadi perhatian, yang berguna pada model yang memiliki modalitas input dan output teks.
Ada tiga kemungkinan hasil dari penggunaan metode ini:
- Pada sebagian besar model, fungsi ini mengembalikan instance config aslinya.
- Pada model komposit yang lebih baru (2024+), ia mengembalikan bagian teks dari konfigurasi, yang bersarang di bawah serangkaian nama yang valid.
- Pada model komposit yang lebih lama (2023-), parameter decoder-only dibuang saat
encoder=Truedan sebaliknya.
Mengembalikan apakah konfigurasi saat ini adalah kode kustom, yaitu kode yang dimuat dari hub atau didefinisikan di modul/sesi khusus pengguna mana pun.
Mengembalikan apakah konfigurasi saat ini adalah kode kustom, yaitu kode yang dimuat dari hub, atau kelas yang baru saja kami daftarkan melalui register_for_auto_class.
register_for_auto_class
< source >( auto_class = 'AutoConfig' )
Daftarkan kelas ini dengan kelas auto yang diberikan. Ini hanya harus digunakan untuk konfigurasi kustom karena yang ada di pustaka sudah dipetakan dengan AutoConfig.
save_pretrained
< source >( save_directory: str | os.PathLikepush_to_hub: bool = False**kwargs )
Parameter
- save_directory (
stratauos.PathLike) — Direktori tempat file konfigurasi JSON akan disimpan (akan dibuat jika belum ada). - push_to_hub (
bool, opsional, defaultFalse) — Apakah model Anda akan didorong ke Hugging Face model hub setelah disimpan. Anda dapat menentukan repository yang ingin Anda tuju denganrepo_id(defaultnya adalah namasave_directorydi namespace Anda). - kwargs (
dict[str, Any], opsional) — Argumen kata kunci tambahan yang diteruskan ke metode push_to_hub().
Simpan objek konfigurasi ke direktori save_directory agar dapat dimuat ulang menggunakan metode kelas from_pretrained().
to_dict
< source >( ) → dict[str, Any]
Mengembalikan
dict[str, Any]
Kamus dari semua atribut yang membentuk instance konfigurasi ini.
Menserialisasi instance ini ke dalam kamus Python.
to_diff_dict
< source >( ) → dict[str, Any]
Mengembalikan
dict[str, Any]
Kamus dari semua atribut yang membentuk instance konfigurasi ini.
Menghapus semua atribut dari konfigurasi yang sesuai dengan atribut konfigurasi default untuk keterbacaan yang lebih baik, sambil selalu mempertahankan atribut config dari kelas. Diserialisasi ke dalam kamus Python.
to_json_file
< source >( json_file_path: str | os.PathLikeuse_diff: bool = True )
Simpan instance ini ke file JSON.
to_json_string
< source >( use_diff: bool = True ) → str
Menserialisasi instance ini ke string JSON.
perbarui
< source >( config_dict: dict[str, Any] )
Memperbarui atribut kelas ini dengan atribut dari config_dict.
update_from_string
< source >( update_str: str )
Memperbarui atribut kelas ini dengan atribut dari update_str.
Format yang diharapkan adalah ints, floats, dan strings apa adanya, dan untuk booleans gunakan true atau false. Sebagai contoh:
“n_embd=10,resid_pdrop=0.2,scale_attn_weights=false,summary_type=cls_index”
Kunci yang akan diubah harus sudah ada di dalam objek config.
Jalankan validator kelas pada instance.
Bagian dari validasi yang didukung oleh @strict. Memvalidasi arsitektur dari config.
Periksa bahwa mlp_layer_types dan layer_types didefinisikan dengan benar.
Bagian dari validasi yang didukung oleh @strict. Memvalidasi isi dari token khusus.