nicholasKluge commited on
Commit
fc8ef3d
1 Parent(s): bcb703b

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +135 -0
README.md CHANGED
@@ -1,3 +1,138 @@
1
  ---
2
  license: apache-2.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
  license: apache-2.0
3
+ datasets:
4
+ - nicholasKluge/fine-tuning-instruct-aira
5
+ - Dahoas/synthetic-instruct-gptj-pairwise
6
+ - databricks/databricks-dolly-15k
7
+ - HuggingFaceH4/instruction-dataset
8
+ language:
9
+ - en
10
+ metrics:
11
+ - bleu
12
+ library_name: transformers
13
+ tags:
14
+ - alignment
15
+ - instruction tuned
16
+ - text generation
17
+ - conversation
18
+ - assistant
19
+ pipeline_tag: text-generation
20
+ widget:
21
+ - text: "<|startoftext|>Olá! Qual o seu nome?<|endoftext|>"
22
+ example_title: "Olá"
23
+ - text: "<|startoftext|>Você pode me explicar o que é aprendizagem de máquina?<|endoftext|>"
24
+ example_title: "Aprendizagem de máquina"
25
+ - text: "<|startoftext|>Você sabe alguma coisa sobre ética das virtudes<|endoftext|>"
26
+ example_title: "Ética das virtudes"
27
+ - text: "<|startoftext|>O que posso fazer para alegrar minha namorada?<|endoftext|>"
28
+ example_title: "Conselho"
29
+ inference:
30
+ parameters:
31
+ temperature: 0.7
32
+ top_k: 50
33
+ max_length: 200
34
  ---
35
+ # Aira-Instruct-PT-124M (Portuguese)
36
+
37
+ `Aira-Instruct-PT-124M` is a instruction-tuned GPT-style model based on [GPT-2](https://huggingface.co/pierreguillou/gpt2-small-portuguese). The model was trained with a dataset composed of `prompt`, `completions`, generated via the [Self-Instruct](https://github.com/yizhongw/self-instruct) framework. `Aira-Instruct-PT-124M` instruction-tuning was achieved via conditional text generation.
38
+
39
+ The dataset used to train this model combines two main sources of data: the [`synthetic-instruct-gptj-pairwise`](https://huggingface.co/datasets/Dahoas/synthetic-instruct-gptj-pairwise) dataset and a subset of [Aira's](https://github.com/Nkluge-correa/Aira-EXPERT) fine-tuning dataset focused on Ethics, AI, AI safety, and related topics. The dataset is available in both Portuguese and English.
40
+
41
+ Check our gradio-demo in [Spaces](https://huggingface.co/spaces/nicholasKluge/Aira-Demo).
42
+
43
+ ## Details
44
+
45
+ - **Size:** 124,441,344 total parameters
46
+ - **Dataset:** [Instruct-Aira Dataset](https://huggingface.co/datasets/nicholasKluge/fine-tuning-instruct-aira)
47
+ - **Language:** Portuguese
48
+ - **Number of Epochs:** 5
49
+ - **Batch size:** 32
50
+ - **Optimizer:** `torch.optim.AdamW` (warmup_steps = 1e2, learning_rate = 5e-4, epsilon = 1e-8)
51
+ - **GPU:** 1 NVIDIA A100-SXM4-40GB
52
+ - **Emissions:** 0.22 KgCO2
53
+ - **Total Energy Consumption:** 0.68 kWh
54
+
55
+ | Epoch/Loss|Training|Validation|
56
+ |---|---|---|
57
+ | 1 |1.052499|0.673275|
58
+ | 2 |0.675395|0.642822|
59
+ | 3 |0.616321|0.630550|
60
+ | 4 |0.571597|0.626158|
61
+ | 5 |0.534876|0.626929|
62
+
63
+ > Note: This repository has the notebook used to train this model.
64
+
65
+ ## Usage
66
+
67
+ Two special tokens are used to mark the user side of the interaction and the model's response:
68
+
69
+ `<|startoftext|>`What is a language model?`<|endoftext|>`A language model is a probability distribution over a vocabulary.`<|endoftext|>`
70
+
71
+ ```python
72
+ from transformers import AutoTokenizer, AutoModelForCausalLM
73
+ import torch
74
+
75
+ device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
76
+
77
+ tokenizer = AutoTokenizer.from_pretrained('nicholasKluge/Aira-Instruct-PT-124M')
78
+ aira = AutoModelForCausalLM.from_pretrained('nicholasKluge/Aira-Instruct-PT-124M')
79
+
80
+ aira.eval()
81
+ aira.to(device)
82
+
83
+ question = input("Enter your question: ")
84
+
85
+ inputs = tokenizer(tokenizer.bos_token + question + tokenizer.eos_token, return_tensors="pt").to(device)
86
+
87
+ responses = aira.generate(**inputs,
88
+ bos_token_id=tokenizer.bos_token_id,
89
+ pad_token_id=tokenizer.pad_token_id,
90
+ eos_token_id=tokenizer.eos_token_id,
91
+ do_sample=True,
92
+ top_k=50,
93
+ max_length=200,
94
+ top_p=0.95,
95
+ temperature=0.7,
96
+ num_return_sequences=2)
97
+
98
+ print(f"Question: 👤 {question}\n")
99
+
100
+ for i, response in enumerate(responses):
101
+ # print only the response and remove the question
102
+ print(f'Response {i+1}: 🤖 {tokenizer.decode(response, skip_special_tokens=True).replace(question, "")}')
103
+ ```
104
+
105
+ The model will output something like:
106
+
107
+ ```markdown
108
+ >>> Question: 👤 Olá! Como você se chama?
109
+
110
+ >>>Response 1: 🤖 Olá! Meu nome é Aira e sou um chatbot projetado para conversar sobre Ética e Segurança da IA. Se você precisar de ajuda com um assunto diferente, por favor, peça "ajuda".
111
+ >>>Response 2: 🤖 Olá! Meu nome é Aira e sou um chatbot treinado para responder perguntas sobre Ética e Segurança da IA. Se você precisar de ajuda para navegar em nossa conversa, não hesite em pedir ajuda.
112
+ ```
113
+
114
+ ## Limitations
115
+
116
+ 🤥 Generative models can perpetuate the generation of pseudo-informative content, that is, false information that may appear truthful. For example, multi-modal generative models can be used to create images with untruthful content, while language models for text generation can automate the generation of misinformation.
117
+
118
+ 🤬 In certain types of tasks, generative models can generate toxic and discriminatory content inspired by historical stereotypes against sensitive attributes (for example, gender, race, and religion). Unfiltered public datasets may also contain inappropriate content, such as pornography, racist images, and social stereotypes, which can contribute to unethical biases in generative models. Furthermore, when prompted with non-English languages, some generative models may perform poorly.
119
+
120
+ ## Cite as 🤗
121
+
122
+ ```latex
123
+
124
+ @misc{nicholas22aira,
125
+ doi = {10.5281/zenodo.6989727},
126
+ url = {https://huggingface.co/nicholasKluge/Aira-Instruct-PT-124M},
127
+ author = {Nicholas Kluge Corrêa and Carolina Del Pino},
128
+ title = {Aira},
129
+ year = {2023},
130
+ publisher = {HuggingFace},
131
+ journal = {HuggingFace repository},
132
+ }
133
+
134
+ ```
135
+
136
+ ## License
137
+
138
+ The `Aira-Instruct-PT-124M` is licensed under the Apache License, Version 2.0. See the [LICENSE](LICENSE) file for more details.