Update README.md
Browse files
README.md
CHANGED
|
@@ -1,15 +1,22 @@
|
|
| 1 |
---
|
| 2 |
language: en
|
| 3 |
-
tags:
|
| 4 |
- deberta
|
| 5 |
- fill-mask
|
| 6 |
-
thumbnail: https://huggingface.co/front/thumbnails/microsoft.png
|
| 7 |
license: mit
|
|
|
|
| 8 |
---
|
| 9 |
|
| 10 |
-
|
| 11 |
|
| 12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
|
| 14 |
```python
|
| 15 |
from transformers import AutoTokenizer, AutoModelForCausalLM
|
|
@@ -37,79 +44,16 @@ prediction = tokenizer.decode(prediction).rstrip('\\')
|
|
| 37 |
print(prediction)
|
| 38 |
```
|
| 39 |
|
| 40 |
-
## Old README below:
|
| 41 |
-
|
| 42 |
-
[DeBERTa](https://arxiv.org/abs/2006.03654) improves the BERT and RoBERTa models using disentangled attention and enhanced mask decoder. It outperforms BERT and RoBERTa on majority of NLU tasks with 80GB training data.
|
| 43 |
-
|
| 44 |
-
Please check the [official repository](https://github.com/microsoft/DeBERTa) for more details and updates.
|
| 45 |
-
|
| 46 |
-
This is the DeBERTa V2 xxlarge model with 48 layers, 1536 hidden size. The total parameters are 1.5B and it is trained with 160GB raw data.
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
### Fine-tuning on NLU tasks
|
| 50 |
-
|
| 51 |
-
We present the dev results on SQuAD 1.1/2.0 and several GLUE benchmark tasks.
|
| 52 |
|
| 53 |
-
|
| 54 |
-
|---------------------------|-----------|-----------|-------------|-------|------|------|--------|-------|-------|------|
|
| 55 |
-
| | F1/EM | F1/EM | Acc | Acc | Acc | MCC | Acc |Acc/F1 |Acc/F1 |P/S |
|
| 56 |
-
| BERT-Large | 90.9/84.1 | 81.8/79.0 | 86.6/- | 93.2 | 92.3 | 60.6 | 70.4 | 88.0/- | 91.3/- |90.0/- |
|
| 57 |
-
| RoBERTa-Large | 94.6/88.9 | 89.4/86.5 | 90.2/- | 96.4 | 93.9 | 68.0 | 86.6 | 90.9/- | 92.2/- |92.4/- |
|
| 58 |
-
| XLNet-Large | 95.1/89.7 | 90.6/87.9 | 90.8/- | 97.0 | 94.9 | 69.0 | 85.9 | 90.8/- | 92.3/- |92.5/- |
|
| 59 |
-
| [DeBERTa-Large](https://huggingface.co/microsoft/deberta-large)<sup>1</sup> | 95.5/90.1 | 90.7/88.0 | 91.3/91.1| 96.5|95.3| 69.5| 91.0| 92.6/94.6| 92.3/- |92.8/92.5 |
|
| 60 |
-
| [DeBERTa-XLarge](https://huggingface.co/microsoft/deberta-xlarge)<sup>1</sup> | -/- | -/- | 91.5/91.2| 97.0 | - | - | 93.1 | 92.1/94.3 | - |92.9/92.7|
|
| 61 |
-
| [DeBERTa-V2-XLarge](https://huggingface.co/microsoft/deberta-v2-xlarge)<sup>1</sup>|95.8/90.8| 91.4/88.9|91.7/91.6| **97.5**| 95.8|71.1|**93.9**|92.0/94.2|92.3/89.8|92.9/92.9|
|
| 62 |
-
|**[DeBERTa-V2-XXLarge](https://huggingface.co/microsoft/deberta-v2-xxlarge)<sup>1,2</sup>**|**96.1/91.4**|**92.2/89.7**|**91.7/91.9**|97.2|**96.0**|**72.0**| 93.5| **93.1/94.9**|**92.7/90.3** |**93.2/93.1** |
|
| 63 |
-
--------
|
| 64 |
-
#### Notes.
|
| 65 |
-
- <sup>1</sup> Following RoBERTa, for RTE, MRPC, STS-B, we fine-tune the tasks based on [DeBERTa-Large-MNLI](https://huggingface.co/microsoft/deberta-large-mnli), [DeBERTa-XLarge-MNLI](https://huggingface.co/microsoft/deberta-xlarge-mnli), [DeBERTa-V2-XLarge-MNLI](https://huggingface.co/microsoft/deberta-v2-xlarge-mnli), [DeBERTa-V2-XXLarge-MNLI](https://huggingface.co/microsoft/deberta-v2-xxlarge-mnli). The results of SST-2/QQP/QNLI/SQuADv2 will also be slightly improved when start from MNLI fine-tuned models, however, we only report the numbers fine-tuned from pretrained base models for those 4 tasks.
|
| 66 |
-
- <sup>2</sup> To try the **XXLarge** model with **[HF transformers](https://huggingface.co/transformers/main_classes/trainer.html)**, we recommand using **deepspeed** as it's faster and saves memory.
|
| 67 |
-
|
| 68 |
-
Run with `Deepspeed`,
|
| 69 |
|
| 70 |
-
|
| 71 |
-
pip install datasets
|
| 72 |
-
pip install deepspeed
|
| 73 |
-
|
| 74 |
-
# Download the deepspeed config file
|
| 75 |
-
wget https://huggingface.co/microsoft/deberta-v2-xxlarge/resolve/main/ds_config.json -O ds_config.json
|
| 76 |
|
| 77 |
-
|
| 78 |
-
output_dir="ds_results"
|
| 79 |
-
num_gpus=8
|
| 80 |
-
batch_size=8
|
| 81 |
-
python -m torch.distributed.launch --nproc_per_node=${num_gpus} \\
|
| 82 |
-
run_glue.py \\
|
| 83 |
-
--model_name_or_path microsoft/deberta-v2-xxlarge \\
|
| 84 |
-
--task_name $TASK_NAME \\
|
| 85 |
-
--do_train \\
|
| 86 |
-
--do_eval \\
|
| 87 |
-
--max_seq_length 256 \\
|
| 88 |
-
--per_device_train_batch_size ${batch_size} \\
|
| 89 |
-
--learning_rate 3e-6 \\
|
| 90 |
-
--num_train_epochs 3 \\
|
| 91 |
-
--output_dir $output_dir \\
|
| 92 |
-
--overwrite_output_dir \\
|
| 93 |
-
--logging_steps 10 \\
|
| 94 |
-
--logging_dir $output_dir \\
|
| 95 |
-
--deepspeed ds_config.json
|
| 96 |
-
```
|
| 97 |
|
| 98 |
-
You can also run with `--sharded_ddp`
|
| 99 |
-
```bash
|
| 100 |
-
cd transformers/examples/text-classification/
|
| 101 |
-
export TASK_NAME=mnli
|
| 102 |
-
python -m torch.distributed.launch --nproc_per_node=8 run_glue.py --model_name_or_path microsoft/deberta-v2-xxlarge \\
|
| 103 |
-
--task_name $TASK_NAME --do_train --do_eval --max_seq_length 256 --per_device_train_batch_size 8 \\
|
| 104 |
-
--learning_rate 3e-6 --num_train_epochs 3 --output_dir /tmp/$TASK_NAME/ --overwrite_output_dir --sharded_ddp --fp16
|
| 105 |
```
|
| 106 |
|
| 107 |
-
|
| 108 |
-
### Citation
|
| 109 |
-
|
| 110 |
-
If you find DeBERTa useful for your work, please cite the following paper:
|
| 111 |
-
|
| 112 |
-
``` latex
|
| 113 |
@inproceedings{
|
| 114 |
he2021deberta,
|
| 115 |
title={DEBERTA: DECODING-ENHANCED BERT WITH DISENTANGLED ATTENTION},
|
|
@@ -118,4 +62,4 @@ booktitle={International Conference on Learning Representations},
|
|
| 118 |
year={2021},
|
| 119 |
url={https://openreview.net/forum?id=XPZIaotutsD}
|
| 120 |
}
|
| 121 |
-
```
|
|
|
|
| 1 |
---
|
| 2 |
language: en
|
| 3 |
+
tags:
|
| 4 |
- deberta
|
| 5 |
- fill-mask
|
|
|
|
| 6 |
license: mit
|
| 7 |
+
pipeline_tag: text-generation
|
| 8 |
---
|
| 9 |
|
| 10 |
+
# DeBERTa-fixed: from paper "BERTs are Generative In-Context Learners"
|
| 11 |
|
| 12 |
+
This is [**deberta-v2-xxlarge**](https://huggingface.co/microsoft/deberta-v2-xxlarge) updated to implement the `AutoModelForCausalLM` class, enabling it to generate text. This implementation is based on our paper "BERTs are Generative In-Context Learners".
|
| 13 |
+
|
| 14 |
+
This repository also fixes three bugs in the original HF implementation of DeBERTa:
|
| 15 |
+
1. We fixed the incorrect name of the output embedding weights in the checkpoint file;
|
| 16 |
+
2. We fixed the implementation of the enhanced mask decoder (EMD), based on [the original GitHub repository](https://github.com/microsoft/DeBERTa);
|
| 17 |
+
3. We clamp the positional embeddings so that they work with long sequence lengths.
|
| 18 |
+
|
| 19 |
+
## Example code
|
| 20 |
|
| 21 |
```python
|
| 22 |
from transformers import AutoTokenizer, AutoModelForCausalLM
|
|
|
|
| 44 |
print(prediction)
|
| 45 |
```
|
| 46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
|
| 48 |
+
## Citation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 49 |
|
| 50 |
+
If you find DeBERTa useful for your work, please cite the following paper:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
|
| 52 |
+
```bibtex
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 54 |
```
|
| 55 |
|
| 56 |
+
``` bibtex
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 57 |
@inproceedings{
|
| 58 |
he2021deberta,
|
| 59 |
title={DEBERTA: DECODING-ENHANCED BERT WITH DISENTANGLED ATTENTION},
|
|
|
|
| 62 |
year={2021},
|
| 63 |
url={https://openreview.net/forum?id=XPZIaotutsD}
|
| 64 |
}
|
| 65 |
+
```
|