Pustaka evaluate

Pengantar LLM di Python

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Pustaka evaluate

import evaluate

accuracy = evaluate.load("accuracy")
print(accuracy.description)
Akurasi adalah proporsi prediksi yang benar
dari total kasus yang diproses. Dihitung dengan:
Accuracy = (TP + TN) / (TP + TN + FP + FN)
Dengan:
TP: True positive
TN: True negative
FP: False positive
FN: False negative

 

  • Metrik: menilai kinerja model berdasar ground truth

 

  • Perbandingan: membandingkan dua model

 

  • Pengukuran: memberi wawasan sifat dataset
Pengantar LLM di Python

Atribut features

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

Memeriksa input yang diperlukan oleh metrik

  • 'predictions': keluaran model
  • 'references': ground truth
  • .features: menunjukkan tipe label kelas yang didukung, mis. 'int32' atau '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)}
Pengantar LLM di Python

Tugas dan metrik LLM

 

Metrik evaluasi untuk tugas bahasa

Pengantar LLM di Python

Tugas dan metrik LLM

 

Metrik evaluasi untuk tugas bahasa

Pengantar LLM di Python

Metrik klasifikasi

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]
Pengantar LLM di Python

Keluaran metrik

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}
Pengantar LLM di Python

Evaluasi model yang kita fine-tune

# Muat model dan tokenizer tersimpan dengan 
# .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}
Pengantar LLM di Python

Memilih metrik yang tepat

 

  • Sadar: tiap metrik memberi wawasan dan punya batasan

 

  • Menyeluruh: gunakan kombinasi metrik (dan KPI khusus domain bila ada)

Ilustrasi otak dengan bola lampu untuk menunjukkan kesadaran, pemikiran, dan pengambilan keputusan.

Pengantar LLM di Python

Ayo berlatih!

Pengantar LLM di Python

Preparing Video For Download...