Saya mendapatkan kesalahan ini "PipelineException: No mask_token ([MASK]) ditemukan pada input" ketika saya menjalankan baris ini. fill_mask("Mobil Otomatis .")

Saya menjalankannya di Colab. Kode saya:

from transformers import BertTokenizer, BertForMaskedLM
from pathlib import Path
from tokenizers import ByteLevelBPETokenizer
from transformers import BertTokenizer, BertForMaskedLM


paths = [str(x) for x in Path(".").glob("**/*.txt")]
print(paths)

bert_tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')

from transformers import BertModel, BertConfig

configuration = BertConfig()
model = BertModel(configuration)
configuration = model.config
print(configuration)

model = BertForMaskedLM.from_pretrained("bert-base-uncased")

from transformers import LineByLineTextDataset
dataset = LineByLineTextDataset(
    tokenizer=bert_tokenizer,
    file_path="./kant.txt",
    block_size=128,
)

from transformers import DataCollatorForLanguageModeling
data_collator = DataCollatorForLanguageModeling(
    tokenizer=bert_tokenizer, mlm=True, mlm_probability=0.15
)

from transformers import Trainer, TrainingArguments

training_args = TrainingArguments(
    output_dir="./KantaiBERT",
    overwrite_output_dir=True,
    num_train_epochs=1,
    per_device_train_batch_size=64,
    save_steps=10_000,
    save_total_limit=2,
    )

trainer = Trainer(
    model=model,
    args=training_args,
    data_collator=data_collator,
    train_dataset=dataset,
)

trainer.train()

from transformers import pipeline

fill_mask = pipeline(
    "fill-mask",
    model=model,
    tokenizer=bert_tokenizer,
    device=0,
)

fill_mask("Auto Car <mask>.").     # This line is giving me the error...

Baris terakhir memberi saya kesalahan yang disebutkan di atas. Tolong beri tahu saya apa yang saya lakukan salah atau apa yang harus saya lakukan untuk menghapus kesalahan ini.

Kesalahan lengkap: "f"Tidak ada mask_token ({self.tokenizer.mask_token}) yang ditemukan pada input","

1
Naqi 13 Mei 2021, 01:35

1 menjawab

Jawaban Terbaik

Bahkan jika Anda sudah menemukan kesalahan, rekomendasi untuk menghindarinya di masa mendatang. Alih-alih menelepon

fill_mask("Auto Car <mask>.")

Anda dapat melakukan hal berikut agar lebih fleksibel saat menggunakan model yang berbeda:

MASK_TOKEN = tokenizer.mask_token

fill_mask("Auto Car {}.".format(MASK_TOKEN))
1
cronoik 12 Mei 2021, 22:45