Transformers documentation
BARTpho
Model ini dipublikasikan di HF papers pada 2021-09-20 dan disumbangkan ke Hugging Face Transformers pada 2021-10-18.
BARTpho
BARTpho adalah model sequence-to-sequence berskala besar untuk bahasa Vietnam. Model ini menyediakan versi berbasis kata dan versi berbasis suku kata. Model ini dibangun di atas arsitektur besar BART dengan pra-pelatihan denoising-nya.
Anda dapat menemukan semua checkpoint asli di bawah organisasi VinAI.
Model ini disumbangkan oleh dqnguyen. Lihat bilah sisi kanan untuk contoh cara menerapkan BARTpho ke berbagai tugas bahasa.
Contoh di bawah ini menunjukkan cara merangkum teks dengan Pipeline atau kelas AutoModel.
from transformers import AutoTokenizer, BartForConditionalGeneration
tokenizer = AutoTokenizer.from_pretrained(
"vinai/bartpho-word",
)
model = BartForConditionalGeneration.from_pretrained(
"vinai/bartpho-word",
device_map="auto",
)
text = """
Quang tổng hợp hay gọi tắt là quang hợp là quá trình thu nhận và chuyển hóa năng lượng ánh sáng Mặt trời của thực vật,
tảo và một số vi khuẩn để tạo ra hợp chất hữu cơ phục vụ bản thân cũng như làm nguồn thức ăn cho hầu hết các sinh vật
trên Trái Đất. Quang hợp trong thực vật thường liên quan đến chất tố diệp lục màu xanh lá cây và tạo ra oxy như một sản phẩm phụ
"""
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(inputs["input_ids"], num_beams=2, min_length=0, max_length=20)
tokenizer.batch_decode(outputs, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]Catatan
- BARTpho menggunakan arsitektur besar BART dengan lapisan normalisasi tambahan di atas encoder dan decoder. Kelas-kelas spesifik BART harus diganti dengan kelas-kelas spesifik mBART.
- Implementasi ini hanya menangani tokenisasi melalui file
monolingual_vocab_file. Ini adalah subset tipe token khusus bahasa Vietnam yang diambil dari kosakata multibahasa tersebut. Jika Anda ingin menggunakan tokenizer ini untuk bahasa lain, gantimonolingual_vocab_filedengan file yang khusus untuk bahasa target Anda.
BartphoTokenizer
kelas transformers.BartphoTokenizer
< source >( vocab_filemonolingual_vocab_filebos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'mask_token = '<mask>'sp_model_kwargs: dict[str, typing.Any] | None = None**kwargs )
Parameter
- vocab_file (
str) — Path ke file kosakata. Kosakata ini adalah model SentencePiece yang telah dilatih sebelumnya yang tersedia dari multilingual XLM-RoBERTa, juga digunakan dalam mBART, yang terdiri dari 250K tipe. - monolingual_vocab_file (
str) — Path ke file kosakata monolingual. Kosakata monolingual ini terdiri dari tipe-tipe yang dikhususkan untuk bahasa Vietnam, yang diekstrak dari kosakata multilingual vocab_file yang berisi 250K tipe. - 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. - eos_token (
str, opsional, defaultnya"</s>") — Token akhir urutan.Saat membangun sebuah urutan menggunakan token khusus, token ini bukan yang digunakan untuk akhir urutan. Token yang digunakan adalah
sep_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. - 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. - 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. - pad_token (
str, opsional, defaultnya"<pad>") — Token yang digunakan untuk padding, misalnya saat membatching urutan dengan panjang yang berbeda. - mask_token (
str, opsional, default"<mask>") — 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 diprediksi oleh model. - sp_model_kwargs (
dict, opsional) — Akan diteruskan keSentencePieceProcessor.__init__()metode. Python wrapper untuk SentencePiece dapat digunakan, di antara hal-hal lain, untuk mengatur:-
enable_sampling: Aktifkan regularisasi subword. -
nbest_size: Parameter sampling untuk unigram. Tidak valid untuk BPE-Dropout.nbest_size = {0,1}: Tidak ada sampling yang dilakukan.nbest_size > 1: mengambil sampel dari hasil nbest_size.nbest_size < 0: diasumsikan bahwa nbest_size tak hingga dan mengambil sampel dari semua hipotesis (lattice) menggunakan algoritma forward-filtering-and-backward-sampling.
-
alpha: Parameter penghalusan untuk pengambilan sampel unigram, dan probabilitas dropout untuk operasi penggabungan pada BPE-dropout.
-
- sp_model (
SentencePieceProcessor) — Pemroses SentencePiece yang digunakan untuk setiap konversi (string, token, dan ID).
Diadaptasi dari XLMRobertaTokenizer. Berbasis pada SentencePiece.
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
< source >( 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 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 BARTPho memiliki format berikut:
- satu urutan:
<s> X </s> - pasangan sekuens:
<s> A </s></s> B </s>
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Buat mask dari dua urutan yang diteruskan untuk digunakan dalam tugas klasifikasi pasangan urutan. BARTPho tidak menggunakan id tipe token, oleh karena itu daftar nol dikembalikan.
get_special_tokens_mask
< source >( 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 opsional untuk pasangan sekuens. - already_has_special_tokens (
bool, opsional, defaultFalse) — 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.
Override untuk menggunakan kosakata fairseq