bert.rst 6.95 KB
Newer Older
1
BERT
Sylvain Gugger's avatar
Sylvain Gugger committed
2
-----------------------------------------------------------------------------------------------------------------------
3

Lysandre's avatar
Lysandre committed
4
Overview
Sylvain Gugger's avatar
Sylvain Gugger committed
5
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lysandre's avatar
Lysandre committed
6

Sylvain Gugger's avatar
Sylvain Gugger committed
7
8
9
10
The BERT model was proposed in `BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
<https://arxiv.org/abs/1810.04805>`__ by Jacob Devlin, Ming-Wei Chang, Kenton Lee and Kristina Toutanova. It's a
bidirectional transformer pretrained using a combination of masked language modeling objective and next sentence
prediction on a large corpus comprising the Toronto Book Corpus and Wikipedia.
Lysandre's avatar
Lysandre committed
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

The abstract from the paper is the following:

*We introduce a new language representation model called BERT, which stands for Bidirectional Encoder Representations
from Transformers. Unlike recent language representation models, BERT is designed to pre-train deep bidirectional
representations from unlabeled text by jointly conditioning on both left and right context in all layers. As a result,
the pre-trained BERT model can be fine-tuned with just one additional output layer to create state-of-the-art models
for a wide range of tasks, such as question answering and language inference, without substantial task-specific
architecture modifications.*

*BERT is conceptually simple and empirically powerful. It obtains new state-of-the-art results on eleven natural
language processing tasks, including pushing the GLUE score to 80.5% (7.7% point absolute improvement), MultiNLI
accuracy to 86.7% (4.6% absolute improvement), SQuAD v1.1 question answering Test F1 to 93.2 (1.5 point absolute
improvement) and SQuAD v2.0 Test F1 to 83.1 (5.1 point absolute improvement).*

Tips:

Sylvain Gugger's avatar
Sylvain Gugger committed
28
29
- BERT is a model with absolute position embeddings so it's usually advised to pad the inputs on the right rather than
  the left.
Sylvain Gugger's avatar
Sylvain Gugger committed
30
31
- BERT was trained with the masked language modeling (MLM) and next sentence prediction (NSP) objectives. It is
  efficient at predicting masked tokens and at NLU in general, but is not optimal for text generation.
Lysandre's avatar
Lysandre committed
32

Sylvain Gugger's avatar
Sylvain Gugger committed
33
The original code can be found `here <https://github.com/google-research/bert>`__.
34

Lysandre's avatar
Lysandre committed
35
BertConfig
Sylvain Gugger's avatar
Sylvain Gugger committed
36
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37

38
.. autoclass:: transformers.BertConfig
39
    :members:
40
41


Lysandre's avatar
Lysandre committed
42
BertTokenizer
Sylvain Gugger's avatar
Sylvain Gugger committed
43
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44

45
.. autoclass:: transformers.BertTokenizer
Lysandre Debut's avatar
Lysandre Debut committed
46
47
    :members: build_inputs_with_special_tokens, get_special_tokens_mask,
        create_token_type_ids_from_sequences, save_vocabulary
48
49


50
BertTokenizerFast
Sylvain Gugger's avatar
Sylvain Gugger committed
51
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52
53
54
55
56

.. autoclass:: transformers.BertTokenizerFast
    :members:


57
Bert specific outputs
Sylvain Gugger's avatar
Sylvain Gugger committed
58
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
59

Sylvain Gugger's avatar
Sylvain Gugger committed
60
61
62
63
.. autoclass:: transformers.modeling_bert.BertForPreTrainingOutput
    :members:

.. autoclass:: transformers.modeling_tf_bert.TFBertForPreTrainingOutput
64
65
66
    :members:


Lysandre's avatar
Lysandre committed
67
BertModel
Sylvain Gugger's avatar
Sylvain Gugger committed
68
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69

70
.. autoclass:: transformers.BertModel
Sylvain Gugger's avatar
Sylvain Gugger committed
71
    :members: forward
72
73


Lysandre's avatar
Lysandre committed
74
BertForPreTraining
Sylvain Gugger's avatar
Sylvain Gugger committed
75
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
76

77
.. autoclass:: transformers.BertForPreTraining
Sylvain Gugger's avatar
Sylvain Gugger committed
78
    :members: forward
79
80


81
BertModelLMHeadModel
Sylvain Gugger's avatar
Sylvain Gugger committed
82
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
83
84

.. autoclass:: transformers.BertLMHeadModel
Sylvain Gugger's avatar
Sylvain Gugger committed
85
    :members: forward
86
87


Lysandre's avatar
Lysandre committed
88
BertForMaskedLM
Sylvain Gugger's avatar
Sylvain Gugger committed
89
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
90

91
.. autoclass:: transformers.BertForMaskedLM
Sylvain Gugger's avatar
Sylvain Gugger committed
92
    :members: forward
93
94


Lysandre's avatar
Lysandre committed
95
BertForNextSentencePrediction
Sylvain Gugger's avatar
Sylvain Gugger committed
96
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
97

98
.. autoclass:: transformers.BertForNextSentencePrediction
Sylvain Gugger's avatar
Sylvain Gugger committed
99
    :members: forward
100
101


Lysandre's avatar
Lysandre committed
102
BertForSequenceClassification
Sylvain Gugger's avatar
Sylvain Gugger committed
103
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
104

105
.. autoclass:: transformers.BertForSequenceClassification
Sylvain Gugger's avatar
Sylvain Gugger committed
106
    :members: forward
107
108


Lysandre's avatar
Lysandre committed
109
BertForMultipleChoice
Sylvain Gugger's avatar
Sylvain Gugger committed
110
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
111

112
.. autoclass:: transformers.BertForMultipleChoice
Sylvain Gugger's avatar
Sylvain Gugger committed
113
    :members: forward
114
115


Lysandre's avatar
Lysandre committed
116
BertForTokenClassification
Sylvain Gugger's avatar
Sylvain Gugger committed
117
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
118

119
.. autoclass:: transformers.BertForTokenClassification
Sylvain Gugger's avatar
Sylvain Gugger committed
120
    :members: forward
121
122


Lysandre's avatar
Lysandre committed
123
BertForQuestionAnswering
Sylvain Gugger's avatar
Sylvain Gugger committed
124
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
125

126
.. autoclass:: transformers.BertForQuestionAnswering
Sylvain Gugger's avatar
Sylvain Gugger committed
127
    :members: forward
128

LysandreJik's avatar
LysandreJik committed
129

Lysandre's avatar
Lysandre committed
130
TFBertModel
Sylvain Gugger's avatar
Sylvain Gugger committed
131
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
132

133
.. autoclass:: transformers.TFBertModel
Sylvain Gugger's avatar
Sylvain Gugger committed
134
    :members: call
LysandreJik's avatar
LysandreJik committed
135
136


Lysandre's avatar
Lysandre committed
137
TFBertForPreTraining
Sylvain Gugger's avatar
Sylvain Gugger committed
138
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
139

140
.. autoclass:: transformers.TFBertForPreTraining
Sylvain Gugger's avatar
Sylvain Gugger committed
141
    :members: call
LysandreJik's avatar
LysandreJik committed
142
143


144
TFBertModelLMHeadModel
Sylvain Gugger's avatar
Sylvain Gugger committed
145
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
146
147

.. autoclass:: transformers.TFBertLMHeadModel
Sylvain Gugger's avatar
Sylvain Gugger committed
148
    :members: call
149
150


Lysandre's avatar
Lysandre committed
151
TFBertForMaskedLM
Sylvain Gugger's avatar
Sylvain Gugger committed
152
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
153

154
.. autoclass:: transformers.TFBertForMaskedLM
Sylvain Gugger's avatar
Sylvain Gugger committed
155
    :members: call
LysandreJik's avatar
LysandreJik committed
156
157


Lysandre's avatar
Lysandre committed
158
TFBertForNextSentencePrediction
Sylvain Gugger's avatar
Sylvain Gugger committed
159
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
160

161
.. autoclass:: transformers.TFBertForNextSentencePrediction
Sylvain Gugger's avatar
Sylvain Gugger committed
162
    :members: call
LysandreJik's avatar
LysandreJik committed
163
164


Lysandre's avatar
Lysandre committed
165
TFBertForSequenceClassification
Sylvain Gugger's avatar
Sylvain Gugger committed
166
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
167

168
.. autoclass:: transformers.TFBertForSequenceClassification
Sylvain Gugger's avatar
Sylvain Gugger committed
169
    :members: call
LysandreJik's avatar
LysandreJik committed
170
171


Lysandre's avatar
Lysandre committed
172
TFBertForMultipleChoice
Sylvain Gugger's avatar
Sylvain Gugger committed
173
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
174

175
.. autoclass:: transformers.TFBertForMultipleChoice
Sylvain Gugger's avatar
Sylvain Gugger committed
176
    :members: call
LysandreJik's avatar
LysandreJik committed
177
178


Lysandre's avatar
Lysandre committed
179
TFBertForTokenClassification
Sylvain Gugger's avatar
Sylvain Gugger committed
180
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
181

182
.. autoclass:: transformers.TFBertForTokenClassification
Sylvain Gugger's avatar
Sylvain Gugger committed
183
    :members: call
LysandreJik's avatar
LysandreJik committed
184
185


Lysandre's avatar
Lysandre committed
186
TFBertForQuestionAnswering
Sylvain Gugger's avatar
Sylvain Gugger committed
187
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
188

189
.. autoclass:: transformers.TFBertForQuestionAnswering
Sylvain Gugger's avatar
Sylvain Gugger committed
190
    :members: call