Views
No views yet
1{
2 "learning_rate": 6e-05,
3 "num_train_epochs": 8,
4 "per_device_train_batch_size": 32,
5 "gradient_accumulation_steps": 1,
6 "lora_r": 128,
7 "lora_alpha": 256,
8 "lora_alpha_ratio": 2,
9 "lora_dropout": 0.05,
10 "target_modules": "Wqkv"
11}1{
2 "test_loss": 0.3013608753681183,
3 "test_spearman": 0.7058525835607535,
4 "test_kendall_tau": 0.5102838725418962,
5 "test_pearson": 0.6425724592223252,
6 "test_rmse": 0.5489634825472827,
7 "test_r2": 0.38694407752977733,
8 "test_runtime": 5.3284,
9 "test_samples_per_second": 24.397,
10 "test_steps_per_second": 0.938
11}1import torch
2from transformers import AutoTokenizer, AutoModelForSequenceClassification
3from peft import PeftModel
4
5
6####################
7# Load Model
8####################
9
10BASE_MODEL = "answerdotai/ModernBERT-base"
11ADAPTER = "JoshuaAshkinaze/argument-support"
12
13base_model = AutoModelForSequenceClassification.from_pretrained(
14 BASE_MODEL,
15 num_labels=1,
16)
17model = PeftModel.from_pretrained(base_model, ADAPTER)
18tokenizer = AutoTokenizer.from_pretrained(BASE_MODEL)
19
20device = "cuda" if torch.cuda.is_available() else "cpu"
21model = model.to(device)
22model.eval()
23
24
25####################
26# Inference
27####################
28
29def score_arguments(model, tokenizer, texts, max_length=1024):
30 """Score a list of argument texts. Higher = the argument supports its claims."""
31 device = next(model.parameters()).device
32
33 inputs = tokenizer(
34 texts,
35 truncation=True,
36 padding="max_length",
37 max_length=max_length,
38 return_tensors="pt",
39 ).to(device)
40
41 with torch.no_grad():
42 logits = model(**inputs).logits
43
44 return logits.squeeze(-1).tolist()
45
46
47####################
48# Example
49####################
50
51args = [
52 "This is an argument right here",
53 "And this is an argument too"
54]
55
56scores = score_arguments(model, tokenizer, args)
57for arg, score in zip(args, scores):
58 print(f"{score:.4f}: {arg[:80]}...")