File size: 7,574 Bytes
932708d
 
5c62c77
 
 
 
 
 
7dcacc1
 
5c62c77
 
 
 
 
 
 
 
9ab78df
d388917
932708d
023e719
08a3607
5c62c77
243d308
5c62c77
 
023e719
08a3607
5c62c77
243d308
99677b3
f4d42de
 
243d308
99677b3
 
347e432
 
 
e582c02
99677b3
efc19b8
e582c02
f4d42de
 
99677b3
243d308
99677b3
 
243d308
99677b3
0f3518f
 
99677b3
 
466756e
243d308
 
 
 
99677b3
243d308
99677b3
 
 
 
 
 
 
 
 
 
 
 
 
243d308
87460cd
243d308
99677b3
 
 
 
 
 
243d308
99677b3
 
466756e
0f48285
 
 
 
 
 
 
 
 
 
 
 
 
 
3766ff6
312f0ce
3766ff6
 
 
 
99677b3
bff6b01
 
 
 
79aedc8
99677b3
bff6b01
79aedc8
99677b3
bff6b01
99677b3
bff6b01
79aedc8
99677b3
 
 
bff6b01
99677b3
79aedc8
 
 
 
 
bff6b01
 
 
99677b3
 
 
 
4e14902
99677b3
 
 
9ab78df
b58f25f
99677b3
 
 
 
 
 
 
 
 
 
 
 
9ab78df
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
---
license: mit
language:
- pt
tags:
- gervasio-pt*
- gervasio-ptpt
- gervasio-ptbr
- gervasio-7b-portuguese-ptpt-decoder
- gervasio-7b-portuguese-ptbr-decoder
- portulan
- albertina-pt*
- clm
- gpt
- portuguese
- decoder
- foundation model
datasets:
- PORTULAN/extraglue
- PORTULAN/extraglue-instruct
---
</br>
</br>
<img align="left" width="40" height="40" src="https://github.githubassets.com/images/icons/emoji/unicode/1f917.png">
<p style="text-align: center;">&nbsp;&nbsp;&nbsp;&nbsp;This is the model card for Gervásio 7B PTPT Decoder. 
  You may be interested in some of the other models in the <a href="https://huggingface.co/PORTULAN">Albertina (encoders) and Gervásio (decoders) families</a>.
</p>
</br>
</br>

# Gervásio 7B PTPT

</br>

**Gervásio PT*** is a **fully open** decoder for the **Portuguese language**. 


It is a **decoder** of the LLaMA family, based on the neural architecture Transformer and developed over the LLaMA-2 7B model.
Its further improvement through additional training was done over language resources that include new instruction data sets of Portuguese prepared for this purpose ([extraGLUE-Instruct
](https://huggingface.co/datasets/PORTULAN/extraglue-instruct)).

It has different versions that were trained for different variants of Portuguese (PT), 
namely for the European variant, spoken in Portugal ([**gervasio-7b-portuguese-ptpt-decoder**](https://huggingface.co/PORTULAN/gervasio-7b-portuguese-ptpt-decoder)), and for the American variant, spoken in Brazil ([**gervasio-7b-portuguese-ptbr-decoder**](https://huggingface.co/PORTULAN/gervasio-7b-portuguese-ptbr-decoder)).

All versions of Gervásio are **openly distributed for free under an open license**, including thus for research and commercial purposes, and given its size, can 
be run on consumer-grade hardware.

**Gervásio 7B PTPT** is developed by NLX-Natural Language and Speech Group, at the University of Lisbon, Faculty of Sciences, Department of Informatics, Portugal.

For the record, its full name is **Gervásio Produz Textos em Português**, to which corresponds the natural acronym **GPT PT**, 
and which is known more shortly as **Gervásio PT*** or, even more briefly, just as **Gervásio**, among its acquaintances.

Gervásio 7B PTPT is developed by a team from the University of Lisbon, Portugal. 
For a fully detailed description, check the respective [publication](https://arxiv.org/abs/2402.18766):

``` latex
@misc{gervasio,
      title={Advancing Generative AI for Portuguese with
             Open Decoder Gervásio PT-*}, 
      author={Rodrigo Santos, João Silva, Luís Gomes,
              João Rodrigues, António Branco},
      year={2024},
      eprint={2402.18766},
      archivePrefix={arXiv},
      primaryClass={cs.CL}
}
```

Please use the above cannonical reference when using or citing this model.


<br>


# Model Description

**This model card is for Gervásio 7B PTPT**, with 7 billion parameters, a hidden size of 4,096 units, an intermediate size of 11,008 units, 32 attention heads, 32 hidden layers, and a tokenizer obtained using the Byte-Pair Encoding (BPE) algorithm implemented with SentencePiece, featuring a vocabulary size of 32,000.

Gervásio 7B PTPT is distributed under an [MIT license](https://huggingface.co/PORTULAN/gervasio-7b-portuguese-ptbr-decoder/blob/main/LICENSE).


<br>

# Training Data

**Gervásio 7B PTPT** was trained over standard supervised fine-tuning, and to keep some alignment with mainstream benchmarks for English, we resorted to tasks and respective datasets in the GLUE and the SuperGLUE collections.


We selected those datasets where the outcome of their machine translation into European Portuguese could preserve, in the target language, the linguistic properties at stake.

From GLUE, we resorted to the following four tasks:
- MRPC (paraphrase Detection).
- RTE (recognizing Textual Entailment).
- STS-B (semantic textual similarity).
- WNLI (coreference and natural language inference).

And from SuperGLUE, we included these other four tasks: 
- BoolQ (yes/no question answering).
- CB (inference with 3 labels).
- COPA (reasoning)
- MultiRC (question answering).



These datasets were machine translated into European Portuguese and from the [extraGLUE](https://huggingface.co/datasets/PORTULAN/extraglue) dataset.


Furthermore, instruction templates have been manually crafted for each task.
These take the various fields in the dataset and arrange them into prompts, which were collected into the [extraGLUE-instruct](https://huggingface.co/datasets/PORTULAN/extraglue-instruct) dataset.

We also employed data augmentation techniques to enhance the size and diversity of our dataset.
This involved repurposing the tasks in various ways, such as generation of answers from MultiRC, question generation from BoolQ, and other relevant modifications.


# Training Details

We applied supervised fine-tuning with a causal language modeling training objective following a zero-out technique during the fine-tuning process.
Specifically, while the entire prompt received attention during fine-tuning, only the response tokens were subjected to back-propagation.

In terms of hyper-parameters, the model was trained with a learning rate of 2 * 10^-5, a weight decay of 0.1, a two-epoch training regime without warm-up, and to ensure the same number of tokens back-propagated per step, we employed an input sequence of 512 tokens with a batch size of 16 and 16 accumulation steps.

Due to hardware limitations that imposed a shorter sequence length (512) compared to the base model (4096), instead of the typical practice of concatenating all training examples and then dividing them into batches with the same input sequence length, we separated each example individually.
In other words, each example occupies the full input sequence length.



# Performance

For testing, we reserved the translated datasets MRPC (similarity) and RTE (inference), from GLUE, and COPA (reasoning/qa), from SuperGLUE, which were taking as representatives of three major types of tasks, and were not seen during training.


| Model                    | MRPC (F1)      | RTE (F1)       | COPA (F1) |
|--------------------------|----------------|----------------|-----------|
| **Gervásio 7B PTPT**    | **0.7273**     | **0.8291**     | **0.5459**| 
| **LLaMA-2 (English)**              | 0.0328         | 0.0482         | 0.3844    |
| **LLaMA-2 Chat (English)**         | 0.5703         | 0.4697         | 0.4737    |
<br>

# How to use

You can use this model directly with a pipeline for causal language modeling:

```python3
>>> from transformers import pipeline
>>> generator = pipeline(model='PORTULAN/gervasio-7b-portuguese-ptpt-decoder')
>>> generator("A comida portuguesa é", max_new_tokens=10)

```
<br>

# Acknowledgments

The research reported here was partially supported by: PORTULAN CLARIN—Research Infrastructure for the Science and Technology of Language,
funded by Lisboa 2020, Alentejo 2020 and FCT—Fundação para a Ciência e Tecnologia under the
grant PINFRA/22117/2016; research project GPT-PT - Transformer-based Decoder for the Portuguese Language, funded by FCT—Fundação para a Ciência e Tecnologia under the
grant CPCA-IAC/AV/478395/2022; innovation project 
ACCELERAT.AI - Multilingual Intelligent Contact Centers, funded by IAPMEI, I.P. - Agência para a Competitividade e Inovação 
under the grant C625734525-00462629, of Plano de Recuperação e Resiliência, 
call RE-C05-i01.01 – Agendas/Alianças Mobilizadoras para a Reindustrialização.