import warnings
import logging
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
from peft import PeftModel
warnings.filterwarnings("ignore")
logging.getLogger("transformers").setLevel(logging.ERROR)
logging.getLogger("peft").setLevel(logging.ERROR)
base_model = "meta-llama/Llama-3.1-8B"
lora_model = "danielangelo1/llama-climate-change-stance-ptbr-lora"
HF_TOKEN = "your_token_here"
tokenizer = AutoTokenizer.from_pretrained(base_model, token=HF_TOKEN)
tokenizer.pad_token = tokenizer.eos_token
model = AutoModelForSequenceClassification.from_pretrained(
base_model,
num_labels=3,
torch_dtype=torch.float16,
device_map="auto",
token=HF_TOKEN,
)
model.config.pad_token_id = tokenizer.pad_token_id
model = PeftModel.from_pretrained(model, lora_model, token=HF_TOKEN)
model.eval()
label_map = {0: "Denier", 1: "Believer", 2: "Inconclusive"}
text = "O aquecimento global é uma ameaça real e precisamos agir agora."
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=512).to(model.device)
with torch.no_grad():
logits = model(**inputs).logits
predicted_class = logits.argmax(dim=-1).item()
print(f"Predicted class: {predicted_class} -> {label_map[predicted_class]}")