De evaluate-bibliotheek

Introductie tot LLM’s in Python

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

De evaluate-bibliotheek

import evaluate

accuracy = evaluate.load("accuracy")
print(accuracy.description)
Accuracy is the proportion of correct
predictions among the total number of cases
processed. It can be computed with:
Accuracy = (TP + TN) / (TP + TN + FP + FN)
Where:
TP: True positive
TN: True negative
FP: False positive
FN: False negative

 

  • Metriek: prestaties van model t.o.v. ground truth

 

  • Vergelijking: vergelijk twee modellen

 

  • Meten: inzicht in dataseteigenschappen
Introductie tot LLM’s in Python

Features-attribuut

print(accuracy.features)
{'predictions': Value(dtype='int32', id=None),
 'references': Value(dtype='int32', id=None)}

Vereiste inputs van een metric bekijken

  • 'predictions': modeluitvoer
  • 'references': ground truth
  • .features: toont het type voor klasselabels, bv. 'int32' of 'float32'
f1 = evaluate.load("f1")
print(f1.features)
{'predictions': Value(dtype='int32', id=None),
 'references': Value(dtype='int32', id=None)}
pearson_corr = evaluate.load("pearsonr")
print(pearson_corr.features)
{'predictions': Value(dtype='float32', id=None),
'references': Value(dtype='float32', id=None)}
Introductie tot LLM’s in Python

LLM-taken en -metrics

 

Evaluatiemaatstaven voor taal taken

Introductie tot LLM’s in Python

LLM-taken en -metrics

 

Evaluatiemaatstaven voor taal taken

Introductie tot LLM’s in Python

Classificatiemetrics

accuracy = evaluate.load("accuracy")
precision = evaluate.load("precision")
recall = evaluate.load("recall")
f1 = evaluate.load("f1")
from transformers import pipeline

classifier = pipeline("text-classification", model=model, tokenizer=tokenizer)

predictions = classifier(evaluation_text)

predicted_labels = [1 if pred["label"] == "POSITIVE" else 0 for pred in predictions]
Introductie tot LLM’s in Python

Metric-uitvoer

real_labels = [0,1,0,1,1]
predicted_labels = [0,0,0,1,1]

print(accuracy.compute(references=real_labels, predictions=predicted_labels))
print(precision.compute(references=real_labels, predictions=predicted_labels))
print(recall.compute(references=real_labels, predictions=predicted_labels))
print(f1.compute(references=real_labels, predictions=predicted_labels))
{'accuracy': 0.8}
{'precision': 1.0}
{'recall': 0.6666666666666666}
{'f1': 0.8}
Introductie tot LLM’s in Python

Ons fijn-afgestemd model evalueren

# Laad opgeslagen model en tokenizer met 
# .from_pretrained("my_finetuned_files")


new_data = ["This is movie was disappointing!", "This is the best movie ever!"] new_input = tokenizer(new_data, return_tensors="pt", padding=True, truncation=True, max_length=64) with torch.no_grad(): outputs = model(**new_input) predicted = torch.argmax(outputs.logits, dim=1).tolist()
real = [0,1]
print(accuracy.compute(references=real,
                       predictions=predicted))
print(precision.compute(references=real,
                        predictions=predicted))
print(recall.compute(references=real,
                     predictions=predicted))
print(f1.compute(references=real, 
                 predictions=predicted))
{'accuracy': 1.0}
{'precision': 1.0}
{'recall': 1.0}
{'f1': 1.0}
Introductie tot LLM’s in Python

De juiste metric kiezen

 

  • Wees bewust: elke metric geeft inzichten, maar heeft ook beperkingen

 

  • Wees compleet: gebruik een combinatie van metrics (en domeinspecifieke KPI's waar mogelijk)

Illustratie van een brein met een gloeilamp om bewustzijn, nadenken en beslissen te tonen.

Introductie tot LLM’s in Python

Laten we oefenen!

Introductie tot LLM’s in Python

Preparing Video For Download...