Transformers documentation

FlauBERT

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Model ini dipublikasikan di HF papers pada 2019-12-11 dan disumbangkan ke Hugging Face Transformers pada 2020-11-16.

FlauBERT

Ikhtisar

Model FlauBERT diusulkan dalam makalah FlauBERT: Unsupervised Language Model Pre-training for French oleh Hang Le dkk. Ini adalah model transformer yang dilatih sebelumnya menggunakan tujuan pemodelan bahasa yang disamarkan (masked language modeling/MLM) (seperti BERT).

Abstrak dari makalah tersebut adalah sebagai berikut:

Model bahasa telah menjadi langkah kunci untuk mencapai hasil state-of-the-art dalam berbagai tugas Pemrosesan Bahasa Alami (NLP). Dengan memanfaatkan jumlah besar teks tanpa label yang tersedia saat ini, model ini menyediakan cara yang efisien untuk melatih ulang (pre-train) representasi kata kontinu yang dapat disesuaikan (fine-tuned) untuk tugas hilir, beserta kontekstualisasinya pada tingkat kalimat. Hal ini telah banyak dibuktikan untuk bahasa Inggris menggunakan representasi kontekstual (Dai dan Le, 2015; Peters et al., 2018; Howard dan Ruder, 2018; Radford et al., 2018; Devlin et al., 2019; Yang et al., 2019b). Dalam makalah ini, kami memperkenalkan dan membagikan FlauBERT, sebuah model yang dipelajari pada korpus Prancis yang sangat besar dan heterogen. Model dengan ukuran berbeda dilatih menggunakan superkomputer Jean Zay milik CNRS (French National Centre for Scientific Research) yang baru. Kami menerapkan model bahasa Prancis kami pada berbagai tugas NLP (klasifikasi teks, parafrase, inferensi bahasa alami, parsing, disambiguasi makna kata) dan menunjukkan bahwa sebagian besar waktu mereka melampaui pendekatan pretraining lainnya. Versi berbeda dari FlauBERT serta protokol evaluasi terpadu untuk tugas hilir, yang disebut FLUE (French Language Understanding Evaluation), dibagikan kepada komunitas penelitian untuk eksperimen yang dapat direproduksi lebih lanjut dalam NLP Prancis.

Model ini disumbangkan oleh formiel. Kode aslinya dapat ditemukan di sini.

Tips:

  • Seperti RoBERTa, tanpa prediksi urutan kalimat (jadi hanya dilatih pada tujuan MLM).

Sumber daya

FlaubertConfig

kelas transformers.FlaubertConfig

< >

( 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 = Nonepre_norm: bool = Falselayerdrop: float | int = 0.0vocab_size: int = 30145emb_dim: int = 2048n_layers: int = 12n_heads: int = 16dropout: float | int = 0.1attention_dropout: float | int = 0.1gelu_activation: bool = Truesinusoidal_embeddings: bool = Falsecausal: bool = Falseasm: bool = Falsen_langs: int = 1use_lang_emb: bool = Truemax_position_embeddings: int = 512embed_init_std: float = 0.02209708691207961layer_norm_eps: float = 1e-12init_std: float = 0.02bos_index: int = 0eos_index: int = 1pad_index: int = 2unk_index: int = 3mask_index: int = 5is_encoder: bool = Truesummary_type: str = 'first'summary_use_proj: bool = Truesummary_activation: str | None = Nonesummary_proj_to_labels: bool = Truesummary_first_dropout: float | int = 0.1start_n_top: int = 5end_n_top: int = 5mask_token_id: int = 0lang_id: int = 0pad_token_id: int | None = 2bos_token_id: int | None = 0eos_token_id: int | list[int] | None = 1tie_word_embeddings: bool = True )

Parameter

  • pre_norm (bool, opsional, default False) — Apakah menerapkan normalisasi lapisan sebelum atau sesudah lapisan feed forward yang mengikuti perhatian di setiap lapisan (Vaswani et al., Tensor2Tensor for Neural Machine Translation. 2018)
  • layerdrop (Union[float, int], opsional, default 0.0) — Probabilitas LayerDrop. Lihat [makalah LayerDrop](lihat https://huggingface.co/papers/1909.11556) untuk detail lebih lanjut.
  • vocab_size (int, opsional, default 30145) — Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan oleh input_ids.
  • emb_dim (int, opsional, default 2048) — Dimensi dari lapisan embedding.
  • n_layers (int, opsional, default 12) — Jumlah lapisan tersembunyi dalam decoder Transformer.
  • n_heads (int, opsional, default 16) — Jumlah kepala perhatian untuk setiap lapisan perhatian dalam decoder Transformer.
  • dropout (Union[float, int], opsional, default 0.1) — Rasio untuk semua lapisan dropout.
  • attention_dropout (Union[float, int], opsional, default 0.1) — Rasio dropout untuk probabilitas perhatian.
  • gelu_activation (bool, opsional, default True) — Apakah akan menggunakan fungsi aktivasi GeLU.
  • sinusoidal_embeddings (bool, opsional, default False) — Apakah akan menggunakan sinusoidal positional embeddings alih-alih absolute positional embeddings.
  • causal (bool, opsional, default False) — Apakah model harus berperilaku secara kausal. Model kausal menggunakan mask perhatian segitiga agar hanya memperhatikan konteks di sisi kiri, bukan konteks bidireksional.
  • asm (bool, opsional, defaultnya False) — Apakah akan menggunakan lapisan proyeksi log softmax adaptif alih-alih lapisan linear untuk lapisan prediksi.
  • n_langs (int, opsional, defaultnya 1) — Jumlah bahasa yang ditangani oleh model. Atur ke 1 untuk model monolingual.
  • use_lang_emb (bool, opsional, default True) — Apakah akan menggunakan language embeddings. Beberapa model menggunakan language embeddings tambahan, lihat halaman model multibahasa untuk informasi tentang cara menggunakannya.
  • embed_init_std (float, opsional, default 2048^-0.5) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi matriks embedding.
  • max_position_embeddings (int, opsional, default 512) — Panjang maksimum urutan yang mungkin digunakan dengan model ini.
  • embed_init_std (float, opsional, defaultnya 2048**-0.5) — Std inisialisasi untuk lapisan embedding.
  • layer_norm_eps (float, opsional, defaultnya 1e-12) — Epsilon yang digunakan oleh lapisan normalisasi lapisan.
  • init_std (float, opsional, defaultnya 0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.
  • bos_index (int, opsional, default 0) — Indeks token awal kalimat dalam kosakata.
  • eos_index (int, opsional, defaultnya 1) — Indeks token akhir kalimat dalam kosakata.
  • pad_index (int, opsional, defaultnya 2) — Indeks token padding dalam kosakata.
  • unk_index (int, opsional, defaultnya 3) — Indeks token yang tidak diketahui dalam kosakata.
  • mask_index (int, opsional, defaultnya 5) — Indeks token masking dalam kosakata.
  • is_encoder (bool, opsional, default True) — Apakah model digunakan sebagai encoder.
  • summary_type (string, opsional, defaultnya “first”) — Argumen yang digunakan saat melakukan ringkasan urutan. Digunakan dalam model klasifikasi urutan dan pilihan ganda. Harus menjadi salah satu dari opsi berikut:
    • "last": Ambil hidden state token terakhir (seperti XLNet).
    • "first": Ambil hidden state token pertama (seperti BERT).
    • "mean": Ambil rata-rata dari semua hidden states token.
    • "cls_index": Berikan Tensor posisi token klasifikasi (seperti GPT/GPT-2).
    • "attn": Belum diimplementasikan saat ini, gunakan multi-head attention.
  • summary_use_proj (bool, opsional, default True) — Argumen yang digunakan saat melakukan ringkasan urutan. Dipakai pada model klasifikasi urutan dan pilihan ganda. Apakah akan menambahkan proyeksi setelah ekstraksi vektor.
  • summary_activation (str, opsional) — Argumen yang digunakan saat melakukan ringkasan urutan. Digunakan dalam model klasifikasi urutan dan pilihan ganda. Lewati "tanh" untuk aktivasi tanh pada output, nilai lain akan menghasilkan tanpa aktivasi.
  • summary_proj_to_labels (bool, opsional, default True) — Digunakan dalam model klasifikasi urutan dan pilihan ganda. Apakah output proyeksi harus memiliki config.num_labels atau config.hidden_size kelas.
  • summary_first_dropout (float, opsional, default 0.1) — Digunakan dalam model klasifikasi urutan dan pilihan ganda. Rasio dropout yang digunakan setelah proyeksi dan aktivasi.
  • start_n_top (int, opsional, default 5) — Digunakan dalam skrip evaluasi SQuAD.
  • end_n_top (int, opsional, default 5) — Digunakan dalam skrip evaluasi SQuAD.
  • mask_token_id (int, opsional, default 0) — Parameter yang tidak bergantung pada model untuk mengidentifikasi token yang dimasker saat menghasilkan teks dalam konteks MLM.
  • lang_id (int, opsional, default 1) — ID bahasa yang digunakan oleh model. Parameter ini digunakan saat menghasilkan teks dalam bahasa tertentu.
  • pad_token_id (int, opsional, default 2) — ID token yang digunakan untuk padding dalam kosakata.
  • bos_token_id (int, opsional, default 0) — ID token yang digunakan untuk awal aliran (beginning-of-stream) dalam kosakata.
  • eos_token_id (Union[int, list[int]], opsional, default 1) — ID token yang digunakan untuk end-of-stream dalam kosakata.
  • tie_word_embeddings (bool, opsional, default True) — Apakah akan mengikat bobot embedding sesuai dengan pemetaan tied_weights_keys model.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari FlaubertModel. Kelas ini digunakan untuk membuat instans model Flaubert berdasarkan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari flaubert/flaubert_base_uncased

Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.

FlaubertTokenizer

kelas transformers.FlaubertTokenizer

< >

( vocab_filemerges_filedo_lowercase = Falseunk_token = '<unk>'bos_token = '<s>'sep_token = '</s>'pad_token = '<pad>'cls_token = '</s>'mask_token = '<special1>'additional_special_tokens = ['<special0>', '<special1>', '<special2>', '<special3>', '<special4>', '<special5>', '<special6>', '<special7>', '<special8>', '<special9>']lang2id = Noneid2lang = None**kwargs )

Parameter

  • vocab_file (str) — File kosakata.
  • merges_file (str) — File merges.
  • do_lowercase (bool, opsional, default False) — Mengontrol konversi ke huruf kecil.
  • unk_token (str, opsional, default "<unk>") — Token yang tidak diketahui. Token yang tidak ada dalam kosakata tidak dapat dikonversi menjadi ID dan akan diset sebagai token ini sebagai gantinya.
  • bos_token (str, opsional, defaultnya "<s>") — Token awal urutan yang digunakan selama pretraining. Dapat digunakan sebagai token klasifikator urutan. Saat membangun urutan menggunakan token khusus, ini bukan token yang digunakan untuk awal urutan. Token yang digunakan adalah cls_token.

    Saat membangun sebuah sekuens menggunakan token khusus, token ini bukan token yang digunakan untuk awal sekuens. Token yang digunakan adalah cls_token.

  • sep_token (str, opsional, default "</s>") — Token pemisah, yang digunakan saat membangun satu rangkaian dari beberapa rangkaian, misalnya dua rangkaian untuk klasifikasi rangkaian atau untuk teks dan pertanyaan untuk penjawaban pertanyaan. Token ini juga digunakan sebagai token terakhir dari rangkaian yang dibangun dengan token khusus.
  • pad_token (str, opsional, defaultnya "<pad>") — Token yang digunakan untuk padding, misalnya saat membatching urutan dengan panjang yang berbeda.
  • cls_token (str, opsional, default "</s>") — Token klasifikator yang digunakan saat melakukan klasifikasi sekuens (klasifikasi seluruh sekuens, bukan klasifikasi per-token). Token ini merupakan token pertama dari sekuens ketika dibangun dengan token khusus.
  • mask_token (str, opsional, defaultnya "<special1>") — Token yang digunakan untuk memask nilai. Ini adalah token yang digunakan saat melatih model ini dengan pemodelan bahasa ter-mask. Ini adalah token yang akan coba diprediksi oleh model.
  • additional_special_tokens (List[str], opsional, defaultnya ['<special0>', '<special1>', '<special2>', '<special3>', '<special4>', '<special5>', '<special6>', '<special7>', '<special8>', '<special9>']) — Daftar token khusus tambahan.
  • lang2id (Dict[str, int], opsional) — Kamus yang memetakan pengidentifikasi string bahasa ke ID mereka.
  • id2lang (Dict[int, str], opsional) — Kamus yang memetakan ID bahasa ke pengenal string-nya.

Konstruksi tokenizer Flaubert. Berbasis pada Byte-Pair Encoding. Proses tokenisasi adalah sebagai berikut:

  • Pra-pemrosesan dan tokenisasi Moses.
  • Menormalisasi semua teks input.
  • Argumen special_tokens dan fungsi set_special_tokens dapat digunakan untuk menambahkan simbol tambahan (seperti ”classify”) ke dalam kosakata.
  • Argumen do_lowercase mengontrol konversi ke huruf kecil (diatur secara otomatis untuk kosakata pretrained).

Tokenizer ini mewarisi dari PreTrainedTokenizer yang berisi sebagian besar metode utama. Pengguna harus merujuk ke superclass ini untuk informasi lebih lanjut mengenai metode-metode tersebut.

build_inputs_with_special_tokens

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → List[int]

Parameter

  • token_ids_0 (List[int]) — Daftar ID tempat token khusus akan ditambahkan.
  • token_ids_1 (List[int], opsional) — Daftar ID kedua yang opsional untuk pasangan sekuens.

Mengembalikan

List[int]

Daftar ID input dengan token khusus yang sesuai.

Bangun input model dari satu urutan atau sepasang urutan untuk tugas klasifikasi urutan dengan menggabungkan dan menambahkan token khusus. Urutan XLM memiliki format berikut:

  • satu urutan: <s> X </s>
  • pasangan sekuens: <s> A </s> B </s>

convert_tokens_to_string

< >

( tokens )

Mengonversi urutan token (string) dalam satu string.

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → List[int]

Parameter

  • token_ids_0 (List[int]) — Daftar ID.
  • token_ids_1 (List[int], opsional) — Daftar ID kedua yang opsional untuk pasangan sekuens.
  • already_has_special_tokens (bool, opsional, default False) — Apakah daftar token sudah diformat dengan token khusus untuk model.

Mengembalikan

List[int]

Daftar bilangan bulat dalam rentang [0, 1]: 1 untuk token khusus, 0 untuk token urutan.

Ambil id urutan dari daftar token yang tidak memiliki token khusus yang ditambahkan. Metode ini dipanggil saat menambahkan token khusus menggunakan metode prepare_for_model tokenizer.

FlaubertModel

kelas transformers.FlaubertModel

< >

( config: FlaubertConfig )

Parameter

  • config (FlaubertConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model Flaubert polos yang menghasilkan hidden-states mentah tanpa head spesifik di atasnya.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonelengths: typing.Optional[torch.LongTensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → BaseModelOutput or tuple(torch.Tensor)

Parameter

  • input_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.

    Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.

    Apa itu input ID?

  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • langs (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Sebuah urutan paralel token yang digunakan untuk menunjukkan bahasa dari setiap token dalam input. Indeks adalah id bahasa yang dapat diperoleh dari nama bahasa dengan menggunakan dua pemetaan konversi yang disediakan dalam konfigurasi model (hanya disediakan untuk model multibahasa). Secara lebih spesifik, pemetaan nama bahasa ke id bahasa ada di model.config.lang2id (yang merupakan kamus string ke int) dan pemetaan id bahasa ke nama bahasa ada di model.config.id2lang (kamus int ke string). Lihat contoh penggunaan yang dijelaskan dalam dokumentasi multibahasa.

    Lihat contoh penggunaan yang dijelaskan secara rinci dalam dokumentasi multibahasa.

  • token_type_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dari [0, 1]:
    • 0 sesuai dengan token sentence A,
    • 1 sesuai dengan token sentence B.

    Apa itu token type ID?

  • position_ids (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang [0, config.n_positions - 1].

    Apa itu ID posisi?

  • lengths (torch.LongTensor dengan bentuk (batch_size,), opsional) — Panjang setiap kalimat yang dapat digunakan untuk menghindari pelaksanaan perhatian pada indeks token padding. Anda juga dapat menggunakan attention_mask untuk hasil yang sama (lihat di atas), dipertahankan di sini untuk kompatibilitas. Indeks yang dipilih dalam [0, ..., input_ids.size(-1)]:
  • cache (dict[str, torch.Tensor], opsional) — Kamus string ke torch.Tensor yang berisi hidden-states (key dan values dalam blok attention) yang telah dihitung sebelumnya oleh model (lihat output cache di bawah). Dapat digunakan untuk mempercepat pembentukan urutan (sequential decoding). Objek kamus ini akan dimodifikasi secara in-place selama forward pass untuk menambahkan hidden-states yang baru dihitung.
  • inputs_embeds (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeks input_ids menjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model.
  • output_attentions (bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihat attentions di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • output_hidden_states (bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihat hidden_states di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • return_dict (bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.

Mengembalikan

BaseModelOutput atau tuple(torch.Tensor)

A BaseModelOutput atau tuple dari torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (FlaubertConfig) dan input.

Metode forward dari FlaubertModel menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • last_hidden_state (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

FlaubertWithLMHeadModel

kelas transformers.FlaubertWithLMHeadModel

< >

( config: FlaubertConfig )

Parameter

  • config (FlaubertConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model transformer Flaubert dengan kepala pemodelan bahasa di atasnya (lapisan linear dengan bobot yang terikat ke embedding input).

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → MaskedLMOutput or tuple(torch.Tensor)

Parameter

  • input_ids (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.

    Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.

    Apa itu input ID?

  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • langs (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Sebuah urutan paralel token yang digunakan untuk menunjukkan bahasa dari setiap token dalam input. Indeks adalah id bahasa yang dapat diperoleh dari nama bahasa dengan menggunakan dua pemetaan konversi yang disediakan dalam konfigurasi model (hanya disediakan untuk model multibahasa). Secara lebih spesifik, pemetaan nama bahasa ke id bahasa ada di model.config.lang2id (yang merupakan kamus string ke int) dan pemetaan id bahasa ke nama bahasa ada di model.config.id2lang (kamus int ke string). Lihat contoh penggunaan yang dijelaskan dalam dokumentasi multibahasa.

    Lihat contoh penggunaan yang dijelaskan secara rinci dalam dokumentasi multibahasa.

  • token_type_ids (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dari [0, 1]:
    • 0 sesuai dengan token sentence A,
    • 1 sesuai dengan token sentence B.

    Apa itu token type ID?

  • position_ids (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang [0, config.n_positions - 1].

    Apa itu ID posisi?

  • lengths (torch.LongTensor dengan bentuk (batch_size,), opsional) — Panjang setiap kalimat yang dapat digunakan untuk menghindari pelaksanaan perhatian pada indeks token padding. Anda juga dapat menggunakan attention_mask untuk hasil yang sama (lihat di atas), dipertahankan di sini untuk kompatibilitas. Indeks yang dipilih dalam [0, ..., input_ids.size(-1)]:
  • cache (dict[str, torch.Tensor], opsional) — Kamus string ke torch.Tensor yang berisi hidden-states (key dan values dalam blok attention) yang telah dihitung sebelumnya oleh model (lihat output cache di bawah). Dapat digunakan untuk mempercepat pembentukan urutan (sequential decoding). Objek kamus ini akan dimodifikasi secara in-place selama forward pass untuk menambahkan hidden-states yang baru dihitung.
  • inputs_embeds (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeks input_ids menjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model.
  • labels (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Label untuk pemodelan bahasa. Perhatikan bahwa label digeser di dalam model, yaitu Anda dapat mengatur labels = input_ids Indeks dipilih dalam [-100, 0, ..., config.vocab_size] Semua label yang diatur ke -100 diabaikan (dipertahankan), loss hanya dihitung untuk label dalam [0, ..., config.vocab_size]
  • output_attentions (bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihat attentions di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • output_hidden_states (bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihat hidden_states di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • return_dict (bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.

Mengembalikan

MaskedLMOutput atau tuple(torch.Tensor)

A MaskedLMOutput atau tuple dari torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (FlaubertConfig) dan input.

Metode forward dari FlaubertWithLMHeadModel menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • loss (torch.Tensor dengan bentuk (1,), opsional, dikembalikan ketika labels disediakan) — Masked language modeling (MLM) loss.

  • logits (torch.Tensor dengan bentuk (batch_size, sequence_length, config.vocab_size)) — Skor prediksi dari kepala pemodelan bahasa (skor untuk setiap token kosakata sebelum SoftMax).

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

Contoh:

>>> import torch
>>> from transformers import AutoTokenizer, FlaubertWithLMHeadModel

>>> tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_uncased")
>>> model = FlaubertWithLMHeadModel.from_pretrained("flaubert/flaubert_base_uncased")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> outputs = model(**inputs, labels=inputs["input_ids"])
>>> loss = outputs.loss
>>> logits = outputs.logits

FlaubertForSequenceClassification

kelas transformers.FlaubertForSequenceClassification

< >

( config: FlaubertConfig )

Parameter

  • config (FlaubertConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model Flaubert dengan kepala klasifikasi/regresi urutan di atasnya (lapisan linear di atas output yang dipooling) misalnya untuk tugas GLUE.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → SequenceClassifierOutput or tuple(torch.Tensor)

Parameter

  • input_ids (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.

    Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.

    Apa itu input ID?

  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • langs (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Sebuah urutan paralel token yang digunakan untuk menunjukkan bahasa dari setiap token dalam input. Indeks adalah id bahasa yang dapat diperoleh dari nama bahasa dengan menggunakan dua pemetaan konversi yang disediakan dalam konfigurasi model (hanya disediakan untuk model multibahasa). Secara lebih spesifik, pemetaan nama bahasa ke id bahasa ada di model.config.lang2id (yang merupakan kamus string ke int) dan pemetaan id bahasa ke nama bahasa ada di model.config.id2lang (kamus int ke string). Lihat contoh penggunaan yang dijelaskan dalam dokumentasi multibahasa.

    Lihat contoh penggunaan yang dijelaskan secara rinci dalam dokumentasi multibahasa.

  • token_type_ids (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dari [0, 1]:
    • 0 sesuai dengan token sentence A,
    • 1 sesuai dengan token sentence B.

    Apa itu token type ID?

  • position_ids (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang [0, config.n_positions - 1].

    Apa itu ID posisi?

  • lengths (torch.LongTensor dengan bentuk (batch_size,), opsional) — Panjang setiap kalimat yang dapat digunakan untuk menghindari pelaksanaan perhatian pada indeks token padding. Anda juga dapat menggunakan attention_mask untuk hasil yang sama (lihat di atas), dipertahankan di sini untuk kompatibilitas. Indeks yang dipilih dalam [0, ..., input_ids.size(-1)].
  • cache (dict[str, torch.Tensor], opsional) — Instans dari EncoderDecoderCache yang berisi keadaan KV yang telah dihitung sebelumnya. Dapat digunakan untuk mempercepat decoding berurutan.
  • inputs_embeds (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeks input_ids menjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model.
  • labels (torch.LongTensor dengan bentuk (batch_size,), opsional) — Label untuk menghitung loss klasifikasi/regresi urutan. Indeks harus berada dalam [0, ..., config.num_labels - 1]. Jika config.num_labels == 1, loss regresi dihitung (Mean-Square loss). Jika config.num_labels > 1, loss klasifikasi dihitung (Cross-Entropy).
  • output_attentions (bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihat attentions di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • output_hidden_states (bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihat hidden_states di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • return_dict (bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.

Mengembalikan

SequenceClassifierOutput atau tuple(torch.Tensor)

A SequenceClassifierOutput atau tuple dari torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (FlaubertConfig) dan input.

Metode forward dari FlaubertForSequenceClassification menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • loss (torch.Tensor dengan bentuk (1,), opsional, dikembalikan saat labels disediakan) — Loss klasifikasi (atau regresi jika config.num_labels==1).

  • logits (torch.Tensor dengan bentuk (batch_size, config.num_labels)) — Skor klasifikasi (atau regresi jika config.num_labels==1) (sebelum SoftMax).

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

Contoh klasifikasi label tunggal:

>>> import torch
>>> from transformers import AutoTokenizer, FlaubertForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_uncased")
>>> model = FlaubertForSequenceClassification.from_pretrained("flaubert/flaubert_base_uncased")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_class_id = logits.argmax().item()
>>> model.config.id2label[predicted_class_id]
...

>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = FlaubertForSequenceClassification.from_pretrained("flaubert/flaubert_base_uncased", num_labels=num_labels)

>>> labels = torch.tensor([1])
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...

Contoh klasifikasi multi-label:

>>> import torch
>>> from transformers import AutoTokenizer, FlaubertForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_uncased")
>>> model = FlaubertForSequenceClassification.from_pretrained("flaubert/flaubert_base_uncased", problem_type="multi_label_classification")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_class_ids = torch.arange(0, logits.shape[-1])[torch.sigmoid(logits).squeeze(dim=0) > 0.5]

>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = FlaubertForSequenceClassification.from_pretrained(
...     "flaubert/flaubert_base_uncased", num_labels=num_labels, problem_type="multi_label_classification"
... )

>>> labels = torch.sum(
...     torch.nn.functional.one_hot(predicted_class_ids[None, :].clone(), num_classes=num_labels), dim=1
... ).to(torch.float)
>>> loss = model(**inputs, labels=labels).loss

FlaubertForMultipleChoice

kelas transformers.FlaubertForMultipleChoice

< >

( config: FlaubertConfig*inputs**kwargs )

Parameter

  • config (FlaubertConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model Flaubert dengan kepala klasifikasi pilihan ganda di atasnya (lapisan linear di atas output yang dipool dan softmax), misalnya untuk tugas RocStories/SWAG.

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → MultipleChoiceModelOutput or tuple(torch.Tensor)

Parameter

  • input_ids (torch.LongTensor dengan bentuk (batch_size, num_choices, sequence_length)) — Indeks token dari urutan input dalam kosakata.

    Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.

    Apa itu input ID?

  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • langs (torch.LongTensor dengan bentuk (batch_size, num_choices, sequence_length), opsional) — Sebuah urutan paralel token yang digunakan untuk menunjukkan bahasa dari setiap token dalam input. Indeks adalah id bahasa yang dapat diperoleh dari nama bahasa dengan menggunakan dua pemetaan konversi yang disediakan dalam konfigurasi model (hanya disediakan untuk model multibahasa). Secara lebih spesifik, pemetaan nama bahasa ke id bahasa ada di model.config.lang2id (yang merupakan kamus string ke int) dan pemetaan id bahasa ke nama bahasa ada di model.config.id2lang (kamus int ke string). Lihat contoh penggunaan yang dijelaskan dalam dokumentasi multibahasa.

    Lihat contoh penggunaan yang dijelaskan secara rinci dalam dokumentasi multibahasa.

  • token_type_ids (torch.LongTensor dengan bentuk (batch_size, num_choices, sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dari [0, 1]:
    • 0 sesuai dengan token sentence A,
    • 1 sesuai dengan token sentence B.

    Apa itu token type ID?

  • position_ids (torch.LongTensor dengan bentuk (batch_size, num_choices, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang [0, config.max_position_embeddings - 1].

    Apa itu ID posisi?

  • lengths (torch.LongTensor dengan bentuk (batch_size,), opsional) — Panjang setiap kalimat yang dapat digunakan untuk menghindari pelaksanaan perhatian pada indeks token padding. Anda juga dapat menggunakan attention_mask untuk hasil yang sama (lihat di atas), dipertahankan di sini untuk kompatibilitas. Indeks yang dipilih dalam [0, ..., input_ids.size(-1)].
  • cache (dict[str, torch.Tensor], opsional) — Instans dari EncoderDecoderCache yang berisi keadaan KV yang telah dihitung sebelumnya. Dapat digunakan untuk mempercepat decoding berurutan.
  • inputs_embeds (torch.Tensor dengan bentuk (batch_size, num_choices, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeks input_ids menjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model.
  • labels (torch.LongTensor dengan bentuk (batch_size,), opsional) — Label untuk menghitung loss klasifikasi pilihan ganda. Indeks harus berada dalam [0, ..., num_choices-1] di mana num_choices adalah ukuran dimensi kedua dari tensor input. (Lihat input_ids di atas)
  • output_attentions (bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihat attentions di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • output_hidden_states (bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihat hidden_states di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • return_dict (bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.

Mengembalikan

MultipleChoiceModelOutput atau tuple(torch.Tensor)

A MultipleChoiceModelOutput atau tuple dari torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (FlaubertConfig) dan input.

Metode forward dari FlaubertForMultipleChoice menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • loss (torch.Tensor dengan bentuk (1,), opsional, dikembalikan saat labels disediakan) — Loss klasifikasi.

  • logits (torch.Tensor dengan bentuk (batch_size, num_choices)) — num_choices adalah dimensi kedua dari tensor input. (lihat input_ids di atas).

    Skor klasifikasi (sebelum SoftMax).

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

Contoh:

>>> from transformers import AutoTokenizer, FlaubertForMultipleChoice
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_uncased")
>>> model = FlaubertForMultipleChoice.from_pretrained("flaubert/flaubert_base_uncased")

>>> prompt = "In Italy, pizza served in formal settings, such as at a restaurant, is presented unsliced."
>>> choice0 = "It is eaten with a fork and a knife."
>>> choice1 = "It is eaten while held in the hand."
>>> labels = torch.tensor(0).unsqueeze(0)  # choice0 is correct (according to Wikipedia ;)), batch size 1

>>> encoding = tokenizer([prompt, prompt], [choice0, choice1], return_tensors="pt", padding=True)
>>> outputs = model(**{k: v.unsqueeze(0) for k, v in encoding.items()}, labels=labels)  # batch size is 1

>>> # the linear classifier still needs to be trained
>>> loss = outputs.loss
>>> logits = outputs.logits

FlaubertForTokenClassification

kelas transformers.FlaubertForTokenClassification

< >

( config: FlaubertConfig )

Parameter

  • config (FlaubertConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Transformer Flaubert dengan kepala klasifikasi token di atasnya (lapisan linear di atas output hidden-states), misalnya untuk tugas Named-Entity-Recognition (NER).

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → TokenClassifierOutput or tuple(torch.Tensor)

Parameter

  • input_ids (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.

    Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.

    Apa itu input ID?

  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • langs (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Sebuah urutan paralel token yang digunakan untuk menunjukkan bahasa dari setiap token dalam input. Indeks adalah id bahasa yang dapat diperoleh dari nama bahasa dengan menggunakan dua pemetaan konversi yang disediakan dalam konfigurasi model (hanya disediakan untuk model multibahasa). Secara lebih spesifik, pemetaan nama bahasa ke id bahasa ada di model.config.lang2id (yang merupakan kamus string ke int) dan pemetaan id bahasa ke nama bahasa ada di model.config.id2lang (kamus int ke string). Lihat contoh penggunaan yang dijelaskan dalam dokumentasi multibahasa.

    Lihat contoh penggunaan yang dijelaskan secara rinci dalam dokumentasi multibahasa.

  • token_type_ids (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dari [0, 1]:
    • 0 sesuai dengan token sentence A,
    • 1 sesuai dengan token sentence B.

    Apa itu token type ID?

  • position_ids (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang [0, config.n_positions - 1].

    Apa itu ID posisi?

  • lengths (torch.LongTensor dengan bentuk (batch_size,), opsional) — Panjang setiap kalimat yang dapat digunakan untuk menghindari pelaksanaan perhatian pada indeks token padding. Anda juga dapat menggunakan attention_mask untuk hasil yang sama (lihat di atas), dipertahankan di sini untuk kompatibilitas. Indeks yang dipilih dalam [0, ..., input_ids.size(-1)].
  • cache (dict[str, torch.Tensor], opsional) — Instans dari EncoderDecoderCache yang berisi keadaan KV yang telah dihitung sebelumnya. Dapat digunakan untuk mempercepat decoding berurutan.
  • inputs_embeds (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeks input_ids menjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model.
  • labels (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Label untuk menghitung kerugian klasifikasi token. Indeks harus berada dalam [0, ..., config.num_labels - 1].
  • output_attentions (bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihat attentions di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • output_hidden_states (bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihat hidden_states di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • return_dict (bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.

Mengembalikan

TokenClassifierOutput atau tuple(torch.Tensor)

A TokenClassifierOutput atau tuple dari torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (FlaubertConfig) dan input.

Metode forward dari FlaubertForTokenClassification menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • loss (torch.Tensor dengan bentuk (1,), opsional, dikembalikan saat labels disediakan) — Loss klasifikasi.

  • logits (torch.Tensor dengan bentuk (batch_size, sequence_length, config.num_labels)) — Skor klasifikasi (sebelum SoftMax).

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

Contoh:

>>> from transformers import AutoTokenizer, FlaubertForTokenClassification
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_uncased")
>>> model = FlaubertForTokenClassification.from_pretrained("flaubert/flaubert_base_uncased")

>>> inputs = tokenizer(
...     "HuggingFace is a company based in Paris and New York", add_special_tokens=False, return_tensors="pt"
... )

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_token_class_ids = logits.argmax(-1)

>>> # Note that tokens are classified rather then input words which means that
>>> # there might be more predicted token classes than words.
>>> # Multiple token classes might account for the same word
>>> predicted_tokens_classes = [model.config.id2label[t.item()] for t in predicted_token_class_ids[0]]
>>> predicted_tokens_classes
...

>>> labels = predicted_token_class_ids
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...

FlaubertForQuestionAnsweringSimple

kelas transformers.FlaubertForQuestionAnsweringSimple

< >

( config: FlaubertConfig )

Parameter

  • config (FlaubertConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Model Flaubert dengan kepala klasifikasi span di atasnya untuk tugas tanya-jawab ekstraktif seperti SQuAD (lapisan linear di atas keluaran hidden-states untuk menghitung span start logits dan span end logits).

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonestart_positions: typing.Optional[torch.Tensor] = Noneend_positions: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → QuestionAnsweringModelOutput or tuple(torch.Tensor)

Parameter

  • input_ids (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.

    Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.

    Apa itu input ID?

  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • langs (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Sebuah urutan paralel token yang digunakan untuk menunjukkan bahasa dari setiap token dalam input. Indeks adalah id bahasa yang dapat diperoleh dari nama bahasa dengan menggunakan dua pemetaan konversi yang disediakan dalam konfigurasi model (hanya disediakan untuk model multibahasa). Secara lebih spesifik, pemetaan nama bahasa ke id bahasa ada di model.config.lang2id (yang merupakan kamus string ke int) dan pemetaan id bahasa ke nama bahasa ada di model.config.id2lang (kamus int ke string). Lihat contoh penggunaan yang dijelaskan dalam dokumentasi multibahasa.

    Lihat contoh penggunaan yang dijelaskan secara rinci dalam dokumentasi multibahasa.

  • token_type_ids (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dari [0, 1]:
    • 0 sesuai dengan token sentence A,
    • 1 sesuai dengan token sentence B.

    Apa itu token type ID?

  • position_ids (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang [0, config.n_positions - 1].

    Apa itu ID posisi?

  • lengths (torch.LongTensor dengan bentuk (batch_size,), opsional) — Panjang setiap kalimat yang dapat digunakan untuk menghindari pelaksanaan perhatian pada indeks token padding. Anda juga dapat menggunakan attention_mask untuk hasil yang sama (lihat di atas), dipertahankan di sini untuk kompatibilitas. Indeks yang dipilih dalam [0, ..., input_ids.size(-1)].
  • cache (dict[str, torch.Tensor], opsional) — Instans dari EncoderDecoderCache yang berisi keadaan KV yang telah dihitung sebelumnya. Dapat digunakan untuk mempercepat decoding berurutan.
  • inputs_embeds (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeks input_ids menjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model.
  • start_positions (torch.Tensor dengan bentuk (batch_size,), opsional) — Label untuk posisi (indeks) awal span berlabel untuk menghitung kerugian klasifikasi token. Posisi dibatasi pada panjang sekuens (sequence_length). Posisi di luar sekuens tidak diperhitungkan dalam perhitungan kerugian.
  • end_positions (torch.Tensor dengan bentuk (batch_size,), opsional) — Label untuk posisi (indeks) akhir span berlabel untuk menghitung kerugian klasifikasi token. Posisi dibatasi pada panjang sekuens (sequence_length). Posisi di luar sekuens tidak diperhitungkan dalam perhitungan kerugian.
  • output_attentions (bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihat attentions di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • output_hidden_states (bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihat hidden_states di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • return_dict (bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.

Mengembalikan

QuestionAnsweringModelOutput atau tuple(torch.Tensor)

A QuestionAnsweringModelOutput atau tuple dari torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (FlaubertConfig) dan input.

Metode forward dari FlaubertForQuestionAnsweringSimple menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • loss (torch.Tensor dengan bentuk (1,), opsional, dikembalikan saat labels disediakan) — Total loss ekstraksi span adalah jumlah dari Cross-Entropy untuk posisi awal dan akhir.

  • start_logits (torch.Tensor dengan bentuk (batch_size, sequence_length)) — Skor awal span (sebelum SoftMax).

  • end_logits (torch.Tensor dengan bentuk (batch_size, sequence_length)) — Skor akhir span (sebelum SoftMax).

  • hidden_states (tuple(torch.Tensor), opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple(torch.Tensor), opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

Contoh:

>>> from transformers import AutoTokenizer, FlaubertForQuestionAnsweringSimple
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_uncased")
>>> model = FlaubertForQuestionAnsweringSimple.from_pretrained("flaubert/flaubert_base_uncased")

>>> question, text = "Who was Jim Henson?", "Jim Henson was a nice puppet"

>>> inputs = tokenizer(question, text, return_tensors="pt")
>>> with torch.no_grad():
...     outputs = model(**inputs)

>>> answer_start_index = outputs.start_logits.argmax()
>>> answer_end_index = outputs.end_logits.argmax()

>>> predict_answer_tokens = inputs.input_ids[0, answer_start_index : answer_end_index + 1]
>>> tokenizer.decode(predict_answer_tokens, skip_special_tokens=True)
...

>>> # target is "nice puppet"
>>> target_start_index = torch.tensor([14])
>>> target_end_index = torch.tensor([15])

>>> outputs = model(**inputs, start_positions=target_start_index, end_positions=target_end_index)
>>> loss = outputs.loss
>>> round(loss.item(), 2)
...

FlaubertForQuestionAnswering

kelas transformers.FlaubertForQuestionAnswering

< >

( config: FlaubertConfig )

Parameter

  • config (FlaubertConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.

Transformer Flaubert dengan kepala klasifikasi span di atasnya untuk tugas tanya-jawab ekstraktif seperti SQuAD (lapisan linear di atas keluaran hidden-states untuk menghitung span start logits dan span end logits).

Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)

Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonestart_positions: typing.Optional[torch.Tensor] = Noneend_positions: typing.Optional[torch.Tensor] = Noneis_impossible: typing.Optional[torch.Tensor] = Nonecls_index: typing.Optional[torch.Tensor] = Nonep_mask: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → FlaubertForQuestionAnsweringOutput or tuple(torch.Tensor)

Parameter

  • input_ids (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.

    Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.

    Apa itu input ID?

  • attention_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari [0, 1]:
    • 1 untuk token yang tidak dimasker,
    • 0 untuk token yang dimasker.

    Apa itu attention mask?

  • langs (torch.LongTensor dengan bentuk (batch_size, sequence_length), opsional) — Sebuah urutan paralel token yang digunakan untuk menunjukkan bahasa dari setiap token dalam input. Indeks adalah id bahasa yang dapat diperoleh dari nama bahasa dengan menggunakan dua pemetaan konversi yang disediakan dalam konfigurasi model (hanya disediakan untuk model multibahasa). Secara lebih spesifik, pemetaan nama bahasa ke id bahasa ada di model.config.lang2id (yang merupakan kamus string ke int) dan pemetaan id bahasa ke nama bahasa ada di model.config.id2lang (kamus int ke string). Lihat contoh penggunaan yang dijelaskan dalam dokumentasi multibahasa.

    Lihat contoh penggunaan yang dijelaskan secara rinci dalam dokumentasi multibahasa.

  • token_type_ids (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks token segmen untuk menunjukkan bagian pertama dan kedua dari input. Indeks dipilih dari [0, 1]:
    • 0 sesuai dengan token sentence A,
    • 1 sesuai dengan token sentence B.

    Apa itu token type ID?

  • position_ids (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang [0, config.n_positions - 1].

    Apa itu ID posisi?

  • lengths (torch.LongTensor dengan bentuk (batch_size,), opsional) — Panjang setiap kalimat yang dapat digunakan untuk menghindari pelaksanaan perhatian pada indeks token padding. Anda juga dapat menggunakan attention_mask untuk hasil yang sama (lihat di atas), dipertahankan di sini untuk kompatibilitas. Indeks yang dipilih dalam [0, ..., input_ids.size(-1)].
  • cache (dict[str, torch.Tensor], opsional) — Instans dari EncoderDecoderCache yang berisi keadaan KV yang telah dihitung sebelumnya. Dapat digunakan untuk mempercepat decoding berurutan.
  • inputs_embeds (torch.Tensor dengan bentuk (batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskan input_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeks input_ids menjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model.
  • start_positions (torch.Tensor dengan bentuk (batch_size,), opsional) — Label untuk posisi (indeks) awal span berlabel untuk menghitung kerugian klasifikasi token. Posisi dibatasi pada panjang sekuens (sequence_length). Posisi di luar sekuens tidak diperhitungkan dalam perhitungan kerugian.
  • end_positions (torch.Tensor dengan bentuk (batch_size,), opsional) — Label untuk posisi (indeks) akhir span berlabel untuk menghitung kerugian klasifikasi token. Posisi dibatasi pada panjang sekuens (sequence_length). Posisi di luar sekuens tidak diperhitungkan dalam perhitungan kerugian.
  • is_impossible (torch.LongTensor dengan bentuk (batch_size,), opsional) — Label apakah sebuah pertanyaan memiliki jawaban atau tidak (SQuAD 2.0)
  • cls_index (torch.LongTensor dengan bentuk (batch_size,), opsional) — Label untuk posisi (indeks) token klasifikasi yang digunakan sebagai input untuk menghitung plausibilitas jawaban.
  • p_mask (torch.Tensor dengan bentuk (batch_size, sequence_length), opsional) — Mask opsional untuk token yang tidak dapat menjadi jawaban (mis. [CLS], [PAD], …). 1.0 berarti token harus di-mask. 0.0 berarti token tidak di-mask.
  • output_attentions (bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihat attentions di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • output_hidden_states (bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihat hidden_states di bawah tensor yang dikembalikan untuk detail lebih lanjut.
  • return_dict (bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.

Mengembalikan

FlaubertForQuestionAnsweringOutput atau tuple(torch.Tensor)

FlaubertForQuestionAnsweringOutput atau tuple dari torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi (FlaubertConfig) dan input.

Metode forward dari FlaubertForQuestionAnswering menimpa metode khusus __call__.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance Module setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

  • loss (torch.Tensor dengan bentuk (1,), opsional, dikembalikan jika start_positions dan end_positions keduanya disediakan) — Klasifikasi loss sebagai jumlah dari start token, end token (dan is_impossible jika disediakan) klasifikasi losses.

  • start_top_log_probs (torch.Tensor dengan bentuk (batch_size, config.start_n_top), opsional, dikembalikan jika start_positions atau end_positions tidak disediakan) — Probabilitas log untuk kemungkinan token awal teratas config.start_n_top (beam-search).

  • start_top_index (torch.LongTensor dengan bentuk (batch_size, config.start_n_top), opsional, dikembalikan jika start_positions atau end_positions tidak disediakan) — Indeks untuk kemungkinan token awal teratas config.start_n_top (beam-search).

  • end_top_log_probs (torch.Tensor dengan bentuk (batch_size, config.start_n_top * config.end_n_top), opsional, dikembalikan jika start_positions atau end_positions tidak disediakan) — Probabilitas log untuk config.start_n_top * config.end_n_top kemungkinan token akhir teratas (beam-search).

  • end_top_index (torch.LongTensor dengan bentuk (batch_size, config.start_n_top * config.end_n_top), opsional, dikembalikan jika start_positions atau end_positions tidak disediakan) — Indeks untuk kemungkinan token akhir teratas config.start_n_top * config.end_n_top (beam-search).

  • cls_logits (torch.Tensor dengan bentuk (batch_size,), opsional, dikembalikan jika start_positions atau end_positions tidak disediakan) — Probabilitas log untuk label is_impossible dari jawaban.

  • hidden_states (tuple[torch.Tensor], opsional, dikembalikan saat output_hidden_states=True dilewatkan atau saat config.output_hidden_states=True) — Tuple dari torch.Tensor (satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk (batch_size, sequence_length, hidden_size).

    Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.

  • attentions (tuple[torch.Tensor], opsional, dikembalikan saat output_attentions=True dilewatkan atau saat config.output_attentions=True) — Tuple dari torch.Tensor (satu untuk setiap layer) dengan bentuk (batch_size, num_heads, sequence_length, sequence_length).

    Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).

Contoh:

>>> from transformers import AutoTokenizer, FlaubertForQuestionAnswering
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-mlm-en-2048")
>>> model = FlaubertForQuestionAnswering.from_pretrained("FacebookAI/xlm-mlm-en-2048")

>>> input_ids = torch.tensor(tokenizer.encode("Hello, my dog is cute", add_special_tokens=True)).unsqueeze(
...     0
... )  # Batch size 1
>>> start_positions = torch.tensor([1])
>>> end_positions = torch.tensor([3])

>>> outputs = model(input_ids, start_positions=start_positions, end_positions=end_positions)
>>> loss = outputs.loss
Update on GitHub