RewardModelPT / README.md
nicholasKluge's picture
Update README.md
21e0349
|
raw
history blame
5.59 kB
---
license: apache-2.0
datasets:
- nicholasKluge/reward-aira-dataset
language:
- pt
metrics:
- accuracy
library_name: transformers
pipeline_tag: text-classification
tags:
- reward model
- alignment
- preference model
- RLHF
widget:
- text: >-
Por que a ética da IA é importante? [SEP] Quem se importa com a ética da IA?
É apenas um monte de reclamações sobre os humanos que criam e usam IA e
reclamam do que as máquinas fazem.
example_title: Resposta Ruim
- text: >-
Por que a ética da IA é importante? [SEP] O campo da ética da IA se
aprofunda nas intrincadas considerações éticas que surgem com relação aos
sistemas de IA. Isso inclui o papel da humanidade na criação e implantação
desses sistemas, bem como a conduta das próprias máquinas. Em termos gerais,
a ética da IA pode ser dividida em duas categorias principais: preocupações
com a moralidade das ações humanas em relação à criação e ao uso da IA e
preocupações com as implicações morais do comportamento da máquina.
example_title: Resposta Boa
---
# RewardModel (Portuguese)
The `RewardModelPT` is a [BERT](https://huggingface.co/neuralmind/bert-base-portuguese-cased) model that can be used to score the quality of a completion for a given prompt.
The model was trained with a dataset composed of `prompt`, `prefered_completions`, and `rejected_completions`.
These prompt + completions are samples of intruction datasets created via the [Self-Instruct](https://github.com/yizhongw/self-instruct) framework.
## Details
- **Size:** 109,038,209 parameters
- **Dataset:** [Reward-Aira Dataset](https://huggingface.co/datasets/nicholasKluge/reward-aira-dataset)
- **Language:** Portuguese
- **Number of Epochs:** 5
- **Batch size:** 42
- **Optimizer:** `torch.optim.AdamW`
- **Learning Rate:** 5e-5
- **GPU:** 1 NVIDIA A100-SXM4-40GB
- **Emissions:** 0.23 KgCO2
- **Total Energy Consumption:** 0.48 kWh
| Step|Training Loss|Validation Loss|Accuracy|
|---|---|---|---|
| 200 |0.079500|0.043422|0.986357|
| 400 |0.043400|0.035848|0.986955|
| 600 |0.037500|0.034161|0.987674|
| 800 |0.011200|0.039309|0.988511|
| 1000 |0.008900|0.043876|0.987793|
| 1200 |0.011700|0.041023|0.989588|
| 1400 |0.002800|0.055005|0.989588|
| 1600 |0.001400|0.054428|0.988990|
| 1800 |0.001100|0.053148|0.989588|
| 2000 |0.000200|0.058280|0.989469|
| 2200 |0.000200|0.054245|0.989708|
| 2400 |0.000200|0.058009|0.989588|
| 2600 |0.000200|0.059581|0.989349|
| 2800 |0.001100|0.057820|0.989110|
This repository has the notebook used to train this model.
## Usage
Here's an example of how to use the `RewardModelPT` to score the quality of a response to a given prompt:
```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
tokenizer = AutoTokenizer.from_pretrained("nicholasKluge/RewardModelPT")
rewardModel = AutoModelForSequenceClassification.from_pretrained("nicholasKluge/RewardModelPT")
rewardModel.eval()
rewardModel.to(device)
# Define the question and response
prompt = "Por que a ética da IA é importante?"
response_good = "O campo da ética da IA se aprofunda nas intrincadas considerações éticas que surgem com relação aos sistemas de IA. Isso inclui o papel da humanidade na criação e implantação desses sistemas, bem como a conduta das próprias máquinas. Em termos gerais, a ética da IA pode ser dividida em duas categorias principais: preocupações com a moralidade das ações humanas em relação à criação e ao uso da IA e preocupações com as implicações morais do comportamento da máquina."
response_bad = "Quem se importa com a ética da IA? É apenas um monte de reclamações sobre os humanos que criam e usam IA e reclamam do que as máquinas fazem."
# Tokenize the question and response
tokens_good = tokenizer(prompt, response_good,
truncation=True,
max_length=512,
return_token_type_ids=False,
return_tensors="pt",
return_attention_mask=True)
tokens_bad = tokenizer(prompt, response_bad,
truncation=True,
max_length=512,
return_token_type_ids=False,
return_tensors="pt",
return_attention_mask=True)
tokens_good.to(device)
tokens_bad.to(device)
score_good = rewardModel(**tokens_good)[0].item()
score_bad = rewardModel(**tokens_bad)[0].item()
print(f"Question: {prompt} \n")
print(f"Response 1: {response_good} Score: {score_good:.3f}")
print(f"Response 2: {response_bad} Score: {score_bad:.3f}")
```
This will output the following:
```markdown
>>> Question: Por que a ética da IA é importante?
>>>Response 1: O campo da ética da IA se aprofunda nas intrincadas considerações éticas que surgem com relação aos sistemas de IA. Isso inclui o papel da humanidade na criação e implantação desses sistemas, bem como a conduta das próprias máquinas. Em termos gerais, a ética da IA pode ser dividida em duas categorias principais: preocupações com a moralidade das ações humanas em relação à criação e ao uso da IA e preocupações com as implicações morais do comportamento da máquina. Score: 10.622
>>>Response 2: Quem se importa com a ética da IA? É apenas um monte de reclamações sobre os humanos que criam e usam IA e reclamam do que as máquinas fazem. Score: -11.609
```
## License
The `RewardModelPT` is licensed under the Apache License, Version 2.0. See the [LICENSE](LICENSE) file for more details.