docs/source/en/model_doc/bert.md
This model was released on 2018-10-11 and added to Hugging Face Transformers on 2020-11-16.
<div style="float: right;"> <div class="flex flex-wrap space-x-1"></div>
BERT is a bidirectional transformer pretrained on unlabeled text to predict masked tokens in a sentence and to predict whether one sentence follows another. The main idea is that by randomly masking some tokens, the model can train on text to the left and right, giving it a more thorough understanding. BERT is also very versatile because its learned language representations can be adapted for other NLP tasks by fine-tuning an additional layer or head.
You can find all the original BERT checkpoints under the BERT collection.
[!TIP] Click on the BERT models in the right sidebar for more examples of how to apply BERT to different language tasks.
The example below demonstrates how to predict the [MASK] token with [Pipeline], [AutoModel], and from the command line.
from transformers import pipeline
pipeline = pipeline(
task="fill-mask",
model="google-bert/bert-base-uncased",
device=0
)
pipeline("Plants create [MASK] through a process known as photosynthesis.")
import torch
from transformers import AutoModelForMaskedLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(
"google-bert/bert-base-uncased",
)
model = AutoModelForMaskedLM.from_pretrained(
"google-bert/bert-base-uncased",
device_map="auto",
attn_implementation="sdpa"
)
inputs = tokenizer("Plants create [MASK] through a process known as photosynthesis.", return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model(**inputs)
predictions = outputs.logits
masked_index = torch.where(inputs['input_ids'] == tokenizer.mask_token_id)[1]
predicted_token_id = predictions[0, masked_index].argmax(dim=-1)
predicted_token = tokenizer.decode(predicted_token_id)
print(f"The predicted token is: {predicted_token}")
[[autodoc]] BertConfig - all
[[autodoc]] BertTokenizer - get_special_tokens_mask - save_vocabulary
[[autodoc]] BertTokenizerLegacy
[[autodoc]] BertTokenizerFast
[[autodoc]] BertModel - forward
[[autodoc]] BertForPreTraining - forward
[[autodoc]] BertLMHeadModel - forward
[[autodoc]] BertForMaskedLM - forward
[[autodoc]] BertForNextSentencePrediction - forward
[[autodoc]] BertForSequenceClassification - forward
[[autodoc]] BertForMultipleChoice - forward
[[autodoc]] BertForTokenClassification - forward
[[autodoc]] BertForQuestionAnswering - forward
[[autodoc]] models.bert.modeling_bert.BertForPreTrainingOutput