RewardModelPT / README.md
nicholasKluge's picture
Update README.md
fb4d5dc
|
raw
history blame
5.56 kB
metadata
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 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 framework.

Details

  • Size: 109,038,209 parameters
  • Dataset: 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:

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:

>>> 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 file for more details.