CoolFace
Modelpublic

littlebird13/bert-base-uncased-git

sourceHugging Faceapache-2.0updated 3y agoView on Hugging Face
0likes19downloads
README.md253 linesDownload Raw Back to root
1---2language: en3tags:4- exbert5- zh6license: apache-2.07datasets:8- bookcorpus9- wikipedia10---11 12# BERT base model (uncased)13 14Pretrained model on English language using a masked language modeling (MLM) objective. It was introduced in15[this paper](https://arxiv.org/abs/1810.04805) and first released in16[this repository](https://github.com/google-research/bert). This model is uncased: it does not make a difference17between english and English.18 19Disclaimer: The team releasing BERT did not write a model card for this model so this model card has been written by20the Hugging Face team.21 22## Model description23 24BERT is a transformers model pretrained on a large corpus of English data in a self-supervised fashion. This means it25was pretrained on the raw texts only, with no humans labeling them in any way (which is why it can use lots of26publicly available data) with an automatic process to generate inputs and labels from those texts. More precisely, it27was pretrained with two objectives:28 29- Masked language modeling (MLM): taking a sentence, the model randomly masks 15% of the words in the input then run30  the entire masked sentence through the model and has to predict the masked words. This is different from traditional31  recurrent neural networks (RNNs) that usually see the words one after the other, or from autoregressive models like32  GPT which internally masks the future tokens. It allows the model to learn a bidirectional representation of the33  sentence.34- Next sentence prediction (NSP): the models concatenates two masked sentences as inputs during pretraining. Sometimes35  they correspond to sentences that were next to each other in the original text, sometimes not. The model then has to36  predict if the two sentences were following each other or not.37 38This way, the model learns an inner representation of the English language that can then be used to extract features39useful for downstream tasks: if you have a dataset of labeled sentences, for instance, you can train a standard40classifier using the features produced by the BERT model as inputs.41 42## Model variations43 44BERT has originally been released in base and large variations, for cased and uncased input text. The uncased models also strips out an accent markers.  45Chinese and multilingual uncased and cased versions followed shortly after.  46Modified preprocessing with whole word masking has replaced subpiece masking in a following work, with the release of two models.  47Other 24 smaller models are released afterward.  48 49The detailed release history can be found on the [google-research/bert readme](https://github.com/google-research/bert/blob/master/README.md) on github.50 51| Model | #params | Language |52|------------------------|--------------------------------|-------|53| [`bert-base-uncased`](https://huggingface.co/bert-base-uncased) | 110M   | English |54| [`bert-large-uncased`](https://huggingface.co/bert-large-uncased)              | 340M    | English | sub 55| [`bert-base-cased`](https://huggingface.co/bert-base-cased)        | 110M    | English |56| [`bert-large-cased`](https://huggingface.co/bert-large-cased) | 340M    |  English |57| [`bert-base-chinese`](https://huggingface.co/bert-base-chinese) | 110M    | Chinese |58| [`bert-base-multilingual-cased`](https://huggingface.co/bert-base-multilingual-cased) | 110M | Multiple |59| [`bert-large-uncased-whole-word-masking`](https://huggingface.co/bert-large-uncased-whole-word-masking) | 340M | English |60| [`bert-large-cased-whole-word-masking`](https://huggingface.co/bert-large-cased-whole-word-masking) | 340M | English |61 62## Intended uses & limitations63 64You can use the raw model for either masked language modeling or next sentence prediction, but it's mostly intended to65be fine-tuned on a downstream task. See the [model hub](https://huggingface.co/models?filter=bert) to look for66fine-tuned versions of a task that interests you.67 68Note that this model is primarily aimed at being fine-tuned on tasks that use the whole sentence (potentially masked)69to make decisions, such as sequence classification, token classification or question answering. For tasks such as text70generation you should look at model like GPT2.71 72### How to use73 74You can use this model directly with a pipeline for masked language modeling:75 76```python77>>> from transformers import pipeline78>>> unmasker = pipeline('fill-mask', model='bert-base-uncased')79>>> unmasker("Hello I'm a [MASK] model.")80 81[{'sequence': "[CLS] hello i'm a fashion model. [SEP]",82  'score': 0.1073106899857521,83  'token': 4827,84  'token_str': 'fashion'},85 {'sequence': "[CLS] hello i'm a role model. [SEP]",86  'score': 0.08774490654468536,87  'token': 2535,88  'token_str': 'role'},89 {'sequence': "[CLS] hello i'm a new model. [SEP]",90  'score': 0.05338378623127937,91  'token': 2047,92  'token_str': 'new'},93 {'sequence': "[CLS] hello i'm a super model. [SEP]",94  'score': 0.04667217284440994,95  'token': 3565,96  'token_str': 'super'},97 {'sequence': "[CLS] hello i'm a fine model. [SEP]",98  'score': 0.027095865458250046,99  'token': 2986,100  'token_str': 'fine'}]101```102 103Here is how to use this model to get the features of a given text in PyTorch:104 105```python106from transformers import BertTokenizer, BertModel107tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')108model = BertModel.from_pretrained("bert-base-uncased")109text = "Replace me by any text you'd like."110encoded_input = tokenizer(text, return_tensors='pt')111output = model(**encoded_input)112```113 114and in TensorFlow:115 116```python117from transformers import BertTokenizer, TFBertModel118tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')119model = TFBertModel.from_pretrained("bert-base-uncased")120text = "Replace me by any text you'd like."121encoded_input = tokenizer(text, return_tensors='tf')122output = model(encoded_input)123```124 125### Limitations and bias126 127Even if the training data used for this model could be characterized as fairly neutral, this model can have biased128predictions:129 130```python131>>> from transformers import pipeline132>>> unmasker = pipeline('fill-mask', model='bert-base-uncased')133>>> unmasker("The man worked as a [MASK].")134 135[{'sequence': '[CLS] the man worked as a carpenter. [SEP]',136  'score': 0.09747550636529922,137  'token': 10533,138  'token_str': 'carpenter'},139 {'sequence': '[CLS] the man worked as a waiter. [SEP]',140  'score': 0.0523831807076931,141  'token': 15610,142  'token_str': 'waiter'},143 {'sequence': '[CLS] the man worked as a barber. [SEP]',144  'score': 0.04962705448269844,145  'token': 13362,146  'token_str': 'barber'},147 {'sequence': '[CLS] the man worked as a mechanic. [SEP]',148  'score': 0.03788609802722931,149  'token': 15893,150  'token_str': 'mechanic'},151 {'sequence': '[CLS] the man worked as a salesman. [SEP]',152  'score': 0.037680890411138535,153  'token': 18968,154  'token_str': 'salesman'}]155 156>>> unmasker("The woman worked as a [MASK].")157 158[{'sequence': '[CLS] the woman worked as a nurse. [SEP]',159  'score': 0.21981462836265564,160  'token': 6821,161  'token_str': 'nurse'},162 {'sequence': '[CLS] the woman worked as a waitress. [SEP]',163  'score': 0.1597415804862976,164  'token': 13877,165  'token_str': 'waitress'},166 {'sequence': '[CLS] the woman worked as a maid. [SEP]',167  'score': 0.1154729500412941,168  'token': 10850,169  'token_str': 'maid'},170 {'sequence': '[CLS] the woman worked as a prostitute. [SEP]',171  'score': 0.037968918681144714,172  'token': 19215,173  'token_str': 'prostitute'},174 {'sequence': '[CLS] the woman worked as a cook. [SEP]',175  'score': 0.03042375110089779,176  'token': 5660,177  'token_str': 'cook'}]178```179 180This bias will also affect all fine-tuned versions of this model.181 182## Training data183 184The BERT model was pretrained on [BookCorpus](https://yknzhu.wixsite.com/mbweb), a dataset consisting of 11,038185unpublished books and [English Wikipedia](https://en.wikipedia.org/wiki/English_Wikipedia) (excluding lists, tables and186headers).187 188## Training procedure189 190### Preprocessing191 192The texts are lowercased and tokenized using WordPiece and a vocabulary size of 30,000. The inputs of the model are193then of the form:194 195```196[CLS] Sentence A [SEP] Sentence B [SEP]197```198 199With probability 0.5, sentence A and sentence B correspond to two consecutive sentences in the original corpus, and in200the other cases, it's another random sentence in the corpus. Note that what is considered a sentence here is a201consecutive span of text usually longer than a single sentence. The only constrain is that the result with the two202"sentences" has a combined length of less than 512 tokens.203 204The details of the masking procedure for each sentence are the following:205- 15% of the tokens are masked.206- In 80% of the cases, the masked tokens are replaced by `[MASK]`.207- In 10% of the cases, the masked tokens are replaced by a random token (different) from the one they replace.208- In the 10% remaining cases, the masked tokens are left as is.209 210### Pretraining211 212The model was trained on 4 cloud TPUs in Pod configuration (16 TPU chips total) for one million steps with a batch size213of 256. The sequence length was limited to 128 tokens for 90% of the steps and 512 for the remaining 10%. The optimizer214used is Adam with a learning rate of 1e-4, \\(\beta_{1} = 0.9\\) and \\(\beta_{2} = 0.999\\), a weight decay of 0.01,215learning rate warmup for 10,000 steps and linear decay of the learning rate after.216 217## Evaluation results218 219When fine-tuned on downstream tasks, this model achieves the following results:220 221Glue test results:222 223| Task | MNLI-(m/mm) | QQP  | QNLI | SST-2 | CoLA | STS-B | MRPC | RTE  | Average |224|:----:|:-----------:|:----:|:----:|:-----:|:----:|:-----:|:----:|:----:|:-------:|225|      | 84.6/83.4   | 71.2 | 90.5 | 93.5  | 52.1 | 85.8  | 88.9 | 66.4 | 79.6    |226 227 228### BibTeX entry and citation info229 230```bibtex231@article{DBLP:journals/corr/abs-1810-04805,232  author    = {Jacob Devlin and233               Ming{-}Wei Chang and234               Kenton Lee and235               Kristina Toutanova},236  title     = {{BERT:} Pre-training of Deep Bidirectional Transformers for Language237               Understanding},238  journal   = {CoRR},239  volume    = {abs/1810.04805},240  year      = {2018},241  url       = {http://arxiv.org/abs/1810.04805},242  archivePrefix = {arXiv},243  eprint    = {1810.04805},244  timestamp = {Tue, 30 Oct 2018 20:39:56 +0100},245  biburl    = {https://dblp.org/rec/journals/corr/abs-1810-04805.bib},246  bibsource = {dblp computer science bibliography, https://dblp.org}247}248```249 250<a href="https://huggingface.co/exbert/?model=bert-base-uncased">251	<img width="300px" src="https://cdn-media.huggingface.co/exbert/button.png">252</a>253