๐Ÿค— Evaluate ํ€ต ํˆฌ์–ด โ€” evaluate.load()์™€ evaluator

๐Ÿค— Evaluate ํ€ต ํˆฌ์–ด

๐Ÿค— Evaluate๋Š” metricยทcomparisonยทmeasurement ๊ฐ™์€ ํ‰๊ฐ€ ๋ชจ๋“ˆ์„ Hub์—์„œ ๊ด€๋ฆฌํ•ด์š”. ์–ด๋–ค ๋ชจ๋“ˆ์ด๋“  ํ•˜๋‚˜์˜ ์ง„์ž…์  evaluate.load()๋กœ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ์–ด์š”. ์ด ํŽ˜์ด์ง€์—์„œ๋Š” ๊ทธ ์‚ฌ์šฉ๋ฒ•์„ ๋”ฐ๋ผ๊ฐ€ ๋ด…๋‹ˆ๋‹ค.

์ถœ์ฒ˜: https://huggingface.co/docs/evaluate/en/a_quick_tour

๋ชจ๋“ˆ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

๋ชจ๋“  metricยทcomparisonยทmeasurement๋Š” evaluate.load()๋กœ ๋ถˆ๋Ÿฌ์™€์š”. ์ด๋ฆ„ ์ถฉ๋Œ์ด ์šฐ๋ ค๋˜๋ฉด ํƒ€์ž…์„ ๋ช…์‹œํ•  ์ˆ˜๋„ ์žˆ์–ด์š”.

>>> import evaluate
>>> accuracy = evaluate.load("accuracy")

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“ˆ ๋ชฉ๋ก

list_evaluation_modules๋กœ ํƒ€์ž…๋ณ„ ๋ชจ๋“ˆ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

>>> evaluate.list_evaluation_modules(
...     module_type="comparison",
...     include_community=False,
...     with_details=True)

๋ชจ๋“ˆ ์†์„ฑ

๊ฐ ๋ชจ๋“ˆ์€ description, citation, features, license, reference_urls ๊ฐ™์€ ์†์„ฑ์„ ๊ฐ€์ ธ์š”. ์˜ˆ:

>>> accuracy.description
Accuracy is the proportion of correct predictions among the total number of cases processed.

Evaluator

evaluator()๋กœ transformers pipeline๊ณผ metric์„ ๋ฌถ์–ด ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์–ด์š”. ํ˜„์žฌ๋Š” text-classification ์ž‘์—…์„ ์ง€์›ํ•ด์š”.

from transformers import pipeline
from datasets import load_dataset
from evaluate import evaluator
import evaluate

pipe = pipeline("text-classification", model="lvwerra/distilbert-imdb", device=0)
data = load_dataset("imdb", split="test").shuffle().select(range(1000))
metric = evaluate.load("accuracy")

task_evaluator = evaluator("text-classification")
results = task_evaluator.compute(model_or_pipeline=pipe, data=data, metric=metric,
                                 label_mapping={"NEGATIVE": 0, "POSITIVE": 1})
print(results)  # {'accuracy': 0.934}

๋” ์•Œ์•„๋ณด๊ธฐ