bert.rst 7.77 KB
Newer Older
Sylvain Gugger's avatar
Sylvain Gugger committed
1
2
3
4
5
6
7
8
9
10
11
12
.. 
    Copyright 2020 The HuggingFace Team. All rights reserved.

    Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
    the License. You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
    an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
    specific language governing permissions and limitations under the License.

13
BERT
Sylvain Gugger's avatar
Sylvain Gugger committed
14
-----------------------------------------------------------------------------------------------------------------------
15

Lysandre's avatar
Lysandre committed
16
Overview
Sylvain Gugger's avatar
Sylvain Gugger committed
17
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lysandre's avatar
Lysandre committed
18

Sylvain Gugger's avatar
Sylvain Gugger committed
19
20
21
22
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

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
40
41
- 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
42
43
- 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
44

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

Lysandre's avatar
Lysandre committed
47
BertConfig
Sylvain Gugger's avatar
Sylvain Gugger committed
48
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
49

50
.. autoclass:: transformers.BertConfig
51
    :members:
52
53


Lysandre's avatar
Lysandre committed
54
BertTokenizer
Sylvain Gugger's avatar
Sylvain Gugger committed
55
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
56

57
.. autoclass:: transformers.BertTokenizer
Lysandre Debut's avatar
Lysandre Debut committed
58
59
    :members: build_inputs_with_special_tokens, get_special_tokens_mask,
        create_token_type_ids_from_sequences, save_vocabulary
60
61


62
BertTokenizerFast
Sylvain Gugger's avatar
Sylvain Gugger committed
63
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
64
65
66
67
68

.. autoclass:: transformers.BertTokenizerFast
    :members:


69
Bert specific outputs
Sylvain Gugger's avatar
Sylvain Gugger committed
70
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71

Sylvain Gugger's avatar
Sylvain Gugger committed
72
.. autoclass:: transformers.models.bert.modeling_bert.BertForPreTrainingOutput
Sylvain Gugger's avatar
Sylvain Gugger committed
73
74
    :members:

Sylvain Gugger's avatar
Sylvain Gugger committed
75
.. autoclass:: transformers.models.bert.modeling_tf_bert.TFBertForPreTrainingOutput
76
77
78
    :members:


Lysandre's avatar
Lysandre committed
79
BertModel
Sylvain Gugger's avatar
Sylvain Gugger committed
80
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
81

82
.. autoclass:: transformers.BertModel
Sylvain Gugger's avatar
Sylvain Gugger committed
83
    :members: forward
84
85


Lysandre's avatar
Lysandre committed
86
BertForPreTraining
Sylvain Gugger's avatar
Sylvain Gugger committed
87
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
88

89
.. autoclass:: transformers.BertForPreTraining
Sylvain Gugger's avatar
Sylvain Gugger committed
90
    :members: forward
91
92


93
BertModelLMHeadModel
Sylvain Gugger's avatar
Sylvain Gugger committed
94
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
95
96

.. autoclass:: transformers.BertLMHeadModel
Sylvain Gugger's avatar
Sylvain Gugger committed
97
    :members: forward
98
99


Lysandre's avatar
Lysandre committed
100
BertForMaskedLM
Sylvain Gugger's avatar
Sylvain Gugger committed
101
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
102

103
.. autoclass:: transformers.BertForMaskedLM
Sylvain Gugger's avatar
Sylvain Gugger committed
104
    :members: forward
105
106


Lysandre's avatar
Lysandre committed
107
BertForNextSentencePrediction
Sylvain Gugger's avatar
Sylvain Gugger committed
108
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
109

110
.. autoclass:: transformers.BertForNextSentencePrediction
Sylvain Gugger's avatar
Sylvain Gugger committed
111
    :members: forward
112
113


Lysandre's avatar
Lysandre committed
114
BertForSequenceClassification
Sylvain Gugger's avatar
Sylvain Gugger committed
115
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
116

117
.. autoclass:: transformers.BertForSequenceClassification
Sylvain Gugger's avatar
Sylvain Gugger committed
118
    :members: forward
119
120


Lysandre's avatar
Lysandre committed
121
BertForMultipleChoice
Sylvain Gugger's avatar
Sylvain Gugger committed
122
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
123

124
.. autoclass:: transformers.BertForMultipleChoice
Sylvain Gugger's avatar
Sylvain Gugger committed
125
    :members: forward
126
127


Lysandre's avatar
Lysandre committed
128
BertForTokenClassification
Sylvain Gugger's avatar
Sylvain Gugger committed
129
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
130

131
.. autoclass:: transformers.BertForTokenClassification
Sylvain Gugger's avatar
Sylvain Gugger committed
132
    :members: forward
133
134


Lysandre's avatar
Lysandre committed
135
BertForQuestionAnswering
Sylvain Gugger's avatar
Sylvain Gugger committed
136
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
137

138
.. autoclass:: transformers.BertForQuestionAnswering
Sylvain Gugger's avatar
Sylvain Gugger committed
139
    :members: forward
140

LysandreJik's avatar
LysandreJik committed
141

Lysandre's avatar
Lysandre committed
142
TFBertModel
Sylvain Gugger's avatar
Sylvain Gugger committed
143
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
144

145
.. autoclass:: transformers.TFBertModel
Sylvain Gugger's avatar
Sylvain Gugger committed
146
    :members: call
LysandreJik's avatar
LysandreJik committed
147
148


Lysandre's avatar
Lysandre committed
149
TFBertForPreTraining
Sylvain Gugger's avatar
Sylvain Gugger committed
150
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
151

152
.. autoclass:: transformers.TFBertForPreTraining
Sylvain Gugger's avatar
Sylvain Gugger committed
153
    :members: call
LysandreJik's avatar
LysandreJik committed
154
155


156
TFBertModelLMHeadModel
Sylvain Gugger's avatar
Sylvain Gugger committed
157
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
158
159

.. autoclass:: transformers.TFBertLMHeadModel
Sylvain Gugger's avatar
Sylvain Gugger committed
160
    :members: call
161
162


Lysandre's avatar
Lysandre committed
163
TFBertForMaskedLM
Sylvain Gugger's avatar
Sylvain Gugger committed
164
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
165

166
.. autoclass:: transformers.TFBertForMaskedLM
Sylvain Gugger's avatar
Sylvain Gugger committed
167
    :members: call
LysandreJik's avatar
LysandreJik committed
168
169


Lysandre's avatar
Lysandre committed
170
TFBertForNextSentencePrediction
Sylvain Gugger's avatar
Sylvain Gugger committed
171
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
172

173
.. autoclass:: transformers.TFBertForNextSentencePrediction
Sylvain Gugger's avatar
Sylvain Gugger committed
174
    :members: call
LysandreJik's avatar
LysandreJik committed
175
176


Lysandre's avatar
Lysandre committed
177
TFBertForSequenceClassification
Sylvain Gugger's avatar
Sylvain Gugger committed
178
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
179

180
.. autoclass:: transformers.TFBertForSequenceClassification
Sylvain Gugger's avatar
Sylvain Gugger committed
181
    :members: call
LysandreJik's avatar
LysandreJik committed
182
183


Lysandre's avatar
Lysandre committed
184
TFBertForMultipleChoice
Sylvain Gugger's avatar
Sylvain Gugger committed
185
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
186

187
.. autoclass:: transformers.TFBertForMultipleChoice
Sylvain Gugger's avatar
Sylvain Gugger committed
188
    :members: call
LysandreJik's avatar
LysandreJik committed
189
190


Lysandre's avatar
Lysandre committed
191
TFBertForTokenClassification
Sylvain Gugger's avatar
Sylvain Gugger committed
192
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
193

194
.. autoclass:: transformers.TFBertForTokenClassification
Sylvain Gugger's avatar
Sylvain Gugger committed
195
    :members: call
LysandreJik's avatar
LysandreJik committed
196
197


Lysandre's avatar
Lysandre committed
198
TFBertForQuestionAnswering
Sylvain Gugger's avatar
Sylvain Gugger committed
199
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
200

201
.. autoclass:: transformers.TFBertForQuestionAnswering
Sylvain Gugger's avatar
Sylvain Gugger committed
202
    :members: call
203
204
205
206
207
208
209


FlaxBertModel
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. autoclass:: transformers.FlaxBertModel
    :members: __call__