--- license: apache-2.0 datasets: - nicholasKluge/reward-aira-dataset language: - en 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.