评估器
自动评估的评估器类。
评估器类
使用评估器的入口点
evaluate.evaluator
< source >( task: str = None ) → Evaluator
参数
- task (
str
) — 定义将返回哪个评估器的任务。当前接受的任务有:"image-classification"
: 将返回 ImageClassificationEvaluator。"question-answering"
: 将返回 QuestionAnsweringEvaluator。"text-classification"
(别名"sentiment-analysis"
可用): 将返回 TextClassificationEvaluator。"token-classification"
: 将返回 TokenClassificationEvaluator。
返回值
适合任务的评估器。
用于构建 Evaluator 的实用工厂方法。评估器封装一个任务和一个默认的度量名称。它们利用来自 transformers
的 pipeline
函数来简化给定任务中多组合模型、数据集和度量的评估。
所有评估器类的基类
Evaluator 类是从所有评估器继承的类。请参阅此类以获取不同评估器共享的方法。实现评估器操作的基类。
check_required_columns
< source >( data: typing.Union[str, datasets.arrow_dataset.Dataset] columns_names: typing.Dict[str, str] )
确保在数据集中存在用于评估所需的列。
compute_metric
< 来源 >( metric: 评估模块 metric_inputs: typing.Dict strategy: typing.Literal['simple', 'bootstrap'] = 'simple' confidence_level: float = 0.95 n_resamples: int = 9999 random_state: typing.Optional[int] = None )
计算并返回指标。
get_dataset_split
< source >( data subset = None split = None ) → split
如果 None,则推断使用的拆分。
加载数据
< 源代码 >( data: typing.Union[str, datasets.arrow_dataset.Dataset] subset: str = None split: str = None ) → 数据数据集
参数
- data (
Dataset
或str
,默认为 None) — 指定我们将在其上运行评估的数据集。如果为 - type
str
,我们将其视为数据集名称,并加载它。否则我们假设它表示预加载数据集 — - subset (
str
, 默认值为 None) — 指定要传递给load_dataset
中的name
的数据集子集。与具有多个配置的数据集(例如 glue/sst2)一起使用。 - split (
str
, 默认值为 None) — 用户定义的数据集划分名称(例如 train,validation,test)。支持切片划分(test[:n])。如果没有定义且数据是str
类型,将自动通过choose_split()
选择最佳选项。
返回值
data (Dataset
)
用于评估的加载的数据集。
按给定子集和划分加载数据集。
Evaluator
类的核心方法,用于处理管道输出来与指标兼容。
prepare_data
< 源码 >( data: 数据集 input_column: str label_column: str *args **kwargs ) → dict
准备数据。
prepare_metric
< source >( metric: typing.Union[str, evaluate.module.EvaluationModule] )
准备指标。
prepare_pipeline
< source >( 模型或流水线: typing.Union[str, ForwardRef('Pipeline'), typing.Callable, ForwardRef('PreTrainedModel'), ForwardRef('TFPreTrainedModel')] 分词器: typing.Union[ForwardRef('PreTrainedTokenizerBase'), ForwardRef('FeatureExtractionMixin')] = None 特征提取器: typing.Union[ForwardRef('PreTrainedTokenizerBase'), ForwardRef('FeatureExtractionMixin')] = None 设备: int = None )
参数
- 模型或流水线 (
str
或Pipeline
或Callable
或PreTrainedModel
或TFPreTrainedModel
, — - 默认值 为
None
) — 如果未指定此参数,我们将初始化与任务相关的默认流水线。如果参数是类型str
或为模型实例,我们将使用它初始化一个新的包含指定模型的Pipeline
。否则,我们假定该参数指定了一个已初始化的流水线。 - preprocessor(《预训练分词器基类》或
FeatureExtractionMixin
,可选,默认值None
)— 如果model_or_pipeline
代表我们将构建管道的模型,则可以使用此参数来覆盖默认预处理程序。如果model_or_pipeline
为None
或已初始化的管道,我们将忽略此参数。
准备管道。
特定任务的评估器
ImageClassificationEvaluator
图像分类评估器。当前此图像分类评估器可以通过使用默认任务名称 图像分类
指从 评估器() 加载。此类中的方法假定数据格式与 ImageClassificationPipeline
兼容。
compute
< 源代码 >( model_or_pipeline: typing.Union[str, ForwardRef('Pipeline'), typing.Callable, ForwardRef('PreTrainedModel'), ForwardRef('TFPreTrainedModel')] = None data: typing.Union[str, datasets.arrow_dataset.Dataset] = None subset: typing.Optional[str] = None split: typing.Optional[str] = None metric: typing.Union[str, evaluate.module.EvaluationModule] = None tokenizer: typing.Union[str, ForwardRef('PreTrainedTokenizer'), NoneType] = None feature_extractor: typing.Union[str, ForwardRef('FeatureExtractionMixin'), NoneType] = None strategy: typing.Literal['simple', 'bootstrap'] = 'simple' confidence_level: float = 0.95 n_resamples: int = 9999 device: int = None random_state: typing.Optional[int] = None input_column: str = 'image' label_column: str = 'label' label_mapping: typing.Union[typing.Dict[str, numbers.Number], NoneType] = None )
参数
- model_or_pipeline (
str
أوPipeline
أوCallable
أوPreTrainedModel
أوTFPreTrainedModel
،默認為None
) — 如果沒指定此參數,我們將初始化許可證的默認管道 (在本例中為text-classification
或其別名 -sentiment-analysis
)。如果參數為str
範圍或為模型實例,我們將其用於初始化帶有給定模型的新Pipeline
。否則,我們假設參數指定了一個預初始化的管道。 - data (
str
或Dataset
,默认为None
)— 指定我们在其上运行评估的数据集。如果是str
类型,我们将其视为数据集名称并加载。否则,我们假设它表示已预加载的数据集。 - subset (
str
,默认为None
)— 定义要加载的数据集子集。如果传入None
,则加载默认子集。 - split (
str
,默认为None
)— 定义要加载的数据集分割。如果传入None
,则根据choose_split
函数推断。 - metric (
str
orEvaluationModule
, 默认为None
) — 指定在评估器中使用的指标。如果它是str
类型,我们将其视为指标名称并加载。否则,我们假设它代表一个已预先加载的指标。 - tokenizer (
str
orPreTrainedTokenizer
, 可选,默认为None
) — 当model_or_pipeline
表示一个我们构建管道的模型时,可以使用此参数覆盖默认的 tokenizer。如果model_or_pipeline
为None
或已预初始化的管道,我们将忽略此参数。 - strategy (
Literal["simple", "bootstrap"]
, 默认为 “simple”) — 指定评估策略。可能的值有:"simple"
- 评估指标并返回分数。"bootstrap"
- 在计算指标分数的基础上,使用scipy
的bootstrap
方法计算每个返回的指标键的置信区间 https://docs.scipy.org.cn/doc/scipy/reference/generated/scipy.stats.bootstrap.html.
- 置信度 (
float
,默认值为0.95
) — 如果选择 “bootstrap” 策略,传递给bootstrap
的confidence_level
值。 - 重采样次数 (
int
,默认值为9999
) — 如果选择 “bootstrap” 策略,传递给bootstrap
的n_resamples
值。 - 设备 (
int
,默认值为None
) — 流程对 CPU/GPU 的支持对应的设备序号。将此设置为 -1 将利用 CPU,一个正整数将在相关 CUDA 设备 ID 上运行模型。如果提供None
,则将推断并使用可用的 CUDA:0,否则为 CPU。 - 随机数生成器 (
int
,可选,默认值为None
) — 如果选择 “bootstrap” 策略,传递给bootstrap
的random_state
值。用于调试。
计算给定管道和数据集组合的指标。
示例
>>> from evaluate import evaluator
>>> from datasets import load_dataset
>>> task_evaluator = evaluator("image-classification")
>>> data = load_dataset("beans", split="test[:40]")
>>> results = task_evaluator.compute(
>>> model_or_pipeline="nateraw/vit-base-beans",
>>> data=data,
>>> label_column="labels",
>>> metric="accuracy",
>>> label_mapping={'angular_leaf_spot': 0, 'bean_rust': 1, 'healthy': 2},
>>> strategy="bootstrap"
>>> )
QuestionAnsweringEvaluator
类 evaluate.QuestionAnsweringEvaluator
< source >( task = 'question-answering' default_metric_name = None )
问题回答评估器。此评估器处理从上下文中提取答案的提取型问题回答。
目前,可以使用默认任务名question-answering
通过evaluator()加载此问题回答评估器。
此类中的方法假定数据格式与QuestionAnsweringPipeline
兼容。
compute
< source >( 模型或流水线: typing.Union[str, ForwardRef('Pipeline'), typing.Callable, ForwardRef('PreTrainedModel'), ForwardRef('TFPreTrainedModel')] = None 数据: typing.Union[str, datasets.arrow_dataset.Dataset] = None 子集: typing.Optional[str] = None 拆分: typing.Optional[str] = None 度量标准: typing.Union[str, evaluate.module.EvaluationModule] = None 分词器: typing.Union[str, ForwardRef('PreTrainedTokenizer'), NoneType] = None 策略: typing.Literal['simple', 'bootstrap'] = 'simple' 置信度水平: float = 0.95 重采样次数: int = 9999 设备: int = None 随机数种子: typing.Optional[int] = None 问题列: str = 'question' 上下文列: str = 'context' ID列: str = 'id' 标签列: str = 'answers' SQuAD v2格式: typing.Optional[bool] = None )
参数
- 模型或流水线 (
str
或Pipeline
或Callable
或PreTrainedModel
或TFPreTrainedModel
,默认为None
) — 如果未指定参数,我们将初始化任务的默认流水线(在本例中为text-classification
或其别名 -sentiment-analysis
)。如果参数为str
类型或为模型实例,我们将使用它来初始化新的Pipeline
并使用提供的模型。否则,假设参数指定了一个已初始化的流水线。 - data (
str
或Dataset
,默认为None
) — 指定我们将运行评估的数据集。如果它是str
类型,我们将其视为数据集名称,并加载它。否则,我们假设它代表一个预加载的数据集。 - subset (
str
,默认为None
) — 定义要加载的数据集子集。如果传递None
,则加载默认子集。 - split (
str
,默认为None
) — 定义要加载的数据集分割。如果传递None
,则根据choose_split
函数进行推断。 - metric (
str
或EvaluationModule
,默认为None
) — 指定评估器中使用的指标。如果它是str
类型,我们将其视为指标名称,并加载它。否则,我们假设它代表一个预加载的指标。 - tokenizer (
str
或PreTrainedTokenizer
,可选,默认为None
)— 如果model_or_pipeline
表示一个需要构建管道的模型,可以使用此参数来覆盖默认的词元分割器。如果model_or_pipeline
为None
或预初始化的管道,则忽略此参数。 - strategy (
Literal["simple", "bootstrap"]
,默认为 “simple”)— 指定评估策略。可能的值包括: - confidence_level (
float
,默认为0.95
)— 如果选择 “bootstrap” 策略,将confidence_level
值传递给bootstrap
。 - n_resamples (
int
, 默认值9999
) — 当选择"bootstrap"
策略时,传递给bootstrap
的n_resamples
值。 - device (
int
, 默认值None
) — 支持pipeline的CPU/GPU设备序号。将此设置为-1将利用CPU,正整数将在相关CUDA设备ID上运行模型。如果提供None
,则将推断使用CUDA:0(如果有),否则使用CPU。 - random_state (
int
, 可选, 默认值None
) — 当选择"bootstrap"
策略时,传递给bootstrap
的random_state
值。用于调试。
计算给定管道和数据集组合的指标。
示例
>>> from evaluate import evaluator
>>> from datasets import load_dataset
>>> task_evaluator = evaluator("question-answering")
>>> data = load_dataset("squad", split="validation[:2]")
>>> results = task_evaluator.compute(
>>> model_or_pipeline="sshleifer/tiny-distilbert-base-cased-distilled-squad",
>>> data=data,
>>> metric="squad",
>>> )
支持的_dataset中,答案可能缺少上下文,例如SQuAD v2数据集。在这种情况下,安全起见,应将squad_v2_format=True
传递给compute()调用。
>>> from evaluate import evaluator
>>> from datasets import load_dataset
>>> task_evaluator = evaluator("question-answering")
>>> data = load_dataset("squad_v2", split="validation[:2]")
>>> results = task_evaluator.compute(
>>> model_or_pipeline="mrm8488/bert-tiny-finetuned-squadv2",
>>> data=data,
>>> metric="squad_v2",
>>> squad_v2_format=True,
>>> )
TextClassificationEvaluator
类 evaluate.TextClassificationEvaluator
< source >( task = 'text-classification' default_metric_name = None )
文本分类评估器。此文本分类评估器可以通过使用默认任务名 text-classification
或 "sentiment-analysis"
别名从 evaluator() 载入。此类中的方法假定数据格式与 TextClassificationPipeline
兼容 - 单一文本特征作为输入,分类标签作为输出。
compute
< source >( model_or_pipeline: typing.Union[str, ForwardRef('Pipeline'), typing.Callable, ForwardRef('PreTrainedModel'), ForwardRef('TFPreTrainedModel')] = None data: typing.Union[str, datasets.arrow_dataset.Dataset] = None subset: typing.Optional[str] = None split: typing.Optional[str] = None metric: typing.Union[str, evaluate.module.EvaluationModule] = None tokenizer: typing.Union[str, ForwardRef('PreTrainedTokenizer'), NoneType] = None feature_extractor: typing.Union[str, ForwardRef('FeatureExtractionMixin'), NoneType] = None strategy: typing.Literal['simple', 'bootstrap'] = 'simple' confidence_level: float = 0.95 n_resamples: int = 9999 device: int = None random_state: typing.Optional[int] = None input_column: str = 'text' second_input_column: typing.Optional[str] = None label_column: str = 'label' label_mapping: typing.Union[typing.Dict[str, numbers.Number], NoneType] = None )
参数
- model_or_pipeline (
str
或Pipeline
或Callable
或PreTrainedModel
或TFPreTrainedModel
,默认为None
) — 如果未指定参数,我们将初始化任务(在本例中为text-classification
或其别名 -情感分析
)的默认管道。如果参数为str
类型或为模型实例,我们将使用它初始化一个具有给定模型的新的Pipeline
。否则假设参数指定了一个已初始化的管道。 - 数据 (
str
或Dataset
,默认为None
) — 指定我们将对其进行评估的数据集。如果它是str
类型,我们将其视为数据集名称并加载它。否则,我们假设它表示一个已预载数据集。 - 子集 (
str
,默认为None
) — 定义要加载的数据集子集。如果传递了None
,则加载默认子集。 - 拆分 (
str
,默认为None
) — 定义要加载的数据集拆分。如果传递了None
,则基于choose_split
函数推断。 - metric (
str
或EvaluationModule
,默认为None
) — 指定评估器中使用的指标。如果它是str
类型,我们将其视为指标名称,并加载它。否则,我们假定它代表一个预加载的指标。 - tokenizer (
str
或PreTrainedTokenizer
,可选,默认为None
) — 可以用此参数重写默认词法分析器,如果model_or_pipeline
表示我们构建管道的模型。如果model_or_pipeline
是None
或预先初始化的管道,则忽略此参数。 - strategy (
Literal["simple", "bootstrap"]
,默认为 “simple”) — 指定评估策略。可能的值有:"simple"
- 我们评估指标,并返回分数。"bootstrap"
- 在计算指标分数的基础上,我们使用scipy
的bootstrap
方法计算每个返回的指标键的置信区间 https://docs.scipy.org.cn/doc/scipy/reference/generated/scipy.stats.bootstrap.html。
- 置信度(confidence_level) (
float
,默认值为0.95
) — 如果选择“bootstrap”策略,传递给“bootstrap”的confidence_level
值。 - 重采样次数(n_resamples) (
int
,默认值为9999
) — 如果选择“bootstrap”策略,传递给“bootstrap”的n_resamples
值。 - 设备(device) (
int
,默认值为None
) — 管道对CPU/GPU支持的设备序号。将此值设为-1将使用CPU,正整数将使用相关CUDA设备ID运行模型。如果提供None
,则将其推断为CUDA:0,否则为CPU。 - random_state (
int
, optional, defaults toNone
) — 当选择"bootstrap"
策略时,传递给bootstrap
的random_state
值。对调试很有用。
计算给定管道和数据集组合的指标。
示例
>>> from evaluate import evaluator
>>> from datasets import load_dataset
>>> task_evaluator = evaluator("text-classification")
>>> data = load_dataset("imdb", split="test[:2]")
>>> results = task_evaluator.compute(
>>> model_or_pipeline="huggingface/prunebert-base-uncased-6-finepruned-w-distil-mnli",
>>> data=data,
>>> metric="accuracy",
>>> label_mapping={"LABEL_0": 0.0, "LABEL_1": 1.0},
>>> strategy="bootstrap",
>>> n_resamples=10,
>>> random_state=0
>>> )
TokenClassificationEvaluator
class evaluate.TokenClassificationEvaluator
< source >( task = 'token-classification' default_metric_name = None )
标记分类评估器。
该标记分类评估器目前可以使用默认任务名称 token-classification
从 evaluator() 中加载。
此类中的方法假定数据格式与 TokenClassificationPipeline
兼容。
compute
< source >( model_or_pipeline: typing.Union[str, ForwardRef('Pipeline'), typing.Callable, ForwardRef('PreTrainedModel'), ForwardRef('TFPreTrainedModel')] = None data: typing.Union[str, datasets.arrow_dataset.Dataset] = None subset: typing.Optional[str] = None split: str = None metric: typing.Union[str, evaluate.module.EvaluationModule] = None tokenizer: typing.Union[str, ForwardRef('PreTrainedTokenizer'), NoneType] = None strategy: typing.Literal['simple', 'bootstrap'] = 'simple' confidence_level: float = 0.95 n_resamples: int = 9999 device: typing.Optional[int] = None random_state: typing.Optional[int] = None input_column: str = 'tokens' label_column: str = 'ner_tags' join_by: typing.Optional[str] = ' ' )
参数
- model_or_pipeline (
str
或Pipeline
或Callable
或PreTrainedModel
或TFPreTrainedModel
,默认为None
) — 如果未指定该参数,我们将为任务(在这种情况下为text-classification
或其别名sentiment-analysis
)初始化默认的流程。如果参数为类型str
或是模型实例,我们使用它来初始化一个带有指定模型的新的Pipeline
。否则,我们假设该参数指定了一个已初始化的流程。 - data (
str
或Dataset
,默认为None
) — 指定我们将运行评估的数据集。如果它是类型str
,我们将其视为数据集名称,并加载它。否则,我们假设它代表一个已预加载数据集。 - subset (
str
,默认为None
) — 定义要加载的数据集子集。如果传入None
,则加载默认子集。 - split (
str
, 默认为None
) — 定义要加载的数据集分割。如果传入None
,则基于choose_split
函数进行推断。 - metric (
str
或EvaluationModule
,默认为None
) — 指定评估器中使用的指标。如果是str
类型,则将其视为指标名称并加载。否则假设它表示一个已预加载的指标。 - tokenizer (
str
或PreTrainedTokenizer
,可选,默认为None
) — 此参数可用以覆盖默认分词器,如果model_or_pipeline
表示构建管道的模型。如果model_or_pipeline
为None
或已预初始化的管道,则忽略此参数。 - strategy (
Literal["simple", "bootstrap"]
, 默认为“simple”) — 指定评估策略。可能值有:"simple"
- 评估指标并返回得分。"bootstrap"
- 在计算指标分数的基础上,使用scipy
的bootstrap
方法计算返回的每个指标键的置信区间 https://docs.scipy.org.cn/doc/scipy/reference/generated/scipy.stats.bootstrap.html。
- confidence_level (
float
, 默认为0.95
) — 当选择“bootstrap”策略时传递给bootstrap
的confidence_level
值。 - n_resamples (
int
, 默认为9999
) — 当选择“bootstrap”策略时传递给bootstrap
的n_resamples
值。 - device (
int
, 默认为None
) — 管道的 CPU/GPU 支持的设备序号。将其设置为 -1 将利用 CPU,正整数将运行在相关 CUDA 设备 ID 上。如果没有提供None
,它将被推断出来,如果可用则使用 CUDA:0,否则使用 CPU。 - random_state (
int
, 可选,默认为None
) — 如果选择 "bootstrap" 策略,将random_state
值传递给bootstrap
。对调试很有用。
计算给定管道和数据集组合的指标。
数据集输入和标签列应以单词列表和标签列表的格式格式化,具体请参考 conll2003 数据集。不支持输入为单个字符串,标签为偏移列表的数据集。
示例
>>> from evaluate import evaluator
>>> from datasets import load_dataset
>>> task_evaluator = evaluator("token-classification")
>>> data = load_dataset("conll2003", split="validation[:2]")
>>> results = task_evaluator.compute(
>>> model_or_pipeline="elastic/distilbert-base-uncased-finetuned-conll03-english",
>>> data=data,
>>> metric="seqeval",
>>> )
例如,以下数据集格式是被评估器接受的:
dataset = Dataset.from_dict(
mapping={
"tokens": [["New", "York", "is", "a", "city", "and", "Felix", "a", "person", "."]],
"ner_tags": [[1, 2, 0, 0, 0, 0, 3, 0, 0, 0]],
},
features=Features({
"tokens": Sequence(feature=Value(dtype="string")),
"ner_tags": Sequence(feature=ClassLabel(names=["O", "B-LOC", "I-LOC", "B-PER", "I-PER"])),
}),
)
例如,以下数据集格式 不被 评估器接受:
dataset = Dataset.from_dict(
mapping={
"tokens": [["New York is a city and Felix a person."]],
"starts": [[0, 23]],
"ends": [[7, 27]],
"ner_tags": [["LOC", "PER"]],
},
features=Features({
"tokens": Value(dtype="string"),
"starts": Sequence(feature=Value(dtype="int32")),
"ends": Sequence(feature=Value(dtype="int32")),
"ner_tags": Sequence(feature=Value(dtype="string")),
}),
)
TextGenerationEvaluator
类 evaluate.TextGenerationEvaluator
< source >( task = 'text-generation' default_metric_name = None predictions_prefix: str = 'generated' )
文本生成评估器。目前可以从评估器()`通过默认任务名 text-generation
加载此文本生成评估器。此类中的方法假定与 TextGenerationPipeline
兼容的数据格式。
compute
< source >( model_or_pipeline: typing.Union[str, ForwardRef('Pipeline'), typing.Callable, ForwardRef('PreTrainedModel'), ForwardRef('TFPreTrainedModel')] = None data: typing.Union[str, datasets.arrow_dataset.Dataset] = None subset: typing.Optional[str] = None split: typing.Optional[str] = None metric: typing.Union[str, evaluate.module.EvaluationModule] = None tokenizer: typing.Union[str, ForwardRef('PreTrainedTokenizer'), NoneType] = None feature_extractor: typing.Union[str, ForwardRef('FeatureExtractionMixin'), NoneType] = None strategy: typing.Literal['simple', 'bootstrap'] = 'simple' confidence_level: float = 0.95 n_resamples: int = 9999 device: int = None random_state: typing.Optional[int] = None input_column: str = 'text' label_column: str = 'label' label_mapping: typing.Union[typing.Dict[str, numbers.Number], NoneType] = None )
Text2TextGenerationEvaluator
类 evaluate.Text2TextGenerationEvaluator
< source >( task = 'text2text-generation' default_metric_name = None )
Text2Text生成评估器。目前可以通过使用默认任务名text2text-generation
从评估器()加载此Text2Text生成评估器。此类中的方法假设数据格式与Text2TextGenerationPipeline
兼容。
compute
< source >( model_or_pipeline: typing.Union[str, ForwardRef('Pipeline'), typing.Callable, ForwardRef('PreTrainedModel'), ForwardRef('TFPreTrainedModel')] = None data: typing.Union[str, datasets.arrow_dataset.Dataset] = None subset: typing.Optional[str] = None split: typing.Optional[str] = None metric: typing.Union[str, evaluate.module.EvaluationModule] = None tokenizer: typing.Union[str, ForwardRef('PreTrainedTokenizer'), NoneType] = None strategy: typing.Literal['simple', 'bootstrap'] = 'simple' confidence_level: float = 0.95 n_resamples: int = 9999 device: int = None random_state: typing.Optional[int] = None input_column: str = 'text' label_column: str = 'label' generation_kwargs: dict = None )
参数
- model_or_pipeline (
str
或Pipeline
或Callable
或PreTrainedModel
或TFPreTrainedModel
, 默认值为None
) — 如果未指定此参数,将为任务(在本例中为text-classification
或其别名 -sentiment-analysis
)初始化默认流程。如果参数的类型为str
或是模型实例,我们使用它来初始化具有给定模型的新的Pipeline
。否则假定参数指定了一个已初始化的流程。 - data (
str
或Dataset
,默认为None
) — 指定我们将在其上运行评估的数据集。如果它是str
类型,我们将其视为数据集名称,并加载它。否则,我们假设它代表一个已预加载数据集。 - subset (
str
,默认为None
) — 定义要加载的数据集子集。如果传递None
,则加载默认子集。 - split (
str
,默认为None
) — 定义要加载的数据集分割。如果传递None
,则根据choose_split
函数推断。 - metric (
str
或EvaluationModule
,默认为None
) — 指定评估器使用的指标。如果是类型为str
,我们将其视为指标名称并加载它。否则,我们假设它代表一个已预加载的指标。 - tokenizer (
str
或PreTrainedTokenizer
,可选,默认为None
) — 当model_or_pipeline
表示构建管道的模型时,可以使用此参数覆盖默认分词器。如果model_or_pipeline
为None
或已预初始化的管道,我们将忽略此参数。 - strategy (
Literal["simple", "bootstrap"]
,默认为 “simple”) — 指定评估策略。可能的值有:"simple"
- 评估指标并返回分数。"bootstrap"
- 除了计算指标分数外,还使用scipy
的bootstrap
方法计算返回的每个指标键的置信区间 https://docs.scipy.org.cn/doc/scipy/reference/generated/scipy.stats.bootstrap.html。
- 置信水平 (
float
, 默认值为0.95
) — 选择"bootstrap"
策略时传递给bootstrap
的confidence_level
值。 - 重抽样数量 (
int
, 默认值为9999
) — 选择"bootstrap"
策略时传递给bootstrap
的n_resamples
值。 - 设备 (
int
, 默认值为None
) — 用于管道的 CPU/GPU 支持的设备序号。将此设置为 -1 将利用 CPU,正整数将在关联的 CUDA 设备 ID 上运行模型。如果提供None
,将推断并使用 CUDA:0(如果可用),否则使用 CPU。 - random_state (
int
, 可选, 默认为None
) — 如果选择“bootstrap”策略,则传递给bootstrap
的random_state
值。用于调试。 - input_column (
str
, 默认为"text"
) — 存在于data
指定的数据集中的输入文本所在的列的名称。 - label_column (
str
, 默认为"label"
) — 存在于data
指定的数据集中的标签所在的列的名称。 - generation_kwargs (
Dict
, 可选, 默认为None
) — 将生成参数字典传递到管道中,设置文本生成策略。
计算给定管道和数据集组合的指标。
SummarizationEvaluator
文本摘要评估器。当前可以通过使用默认任务名 summarization
从 evaluator() 加载此文本摘要评估器。该类中的方法假定数据格式与 SummarizationEvaluator 兼容。
compute
< source >( model_or_pipeline: typing.Union[str, ForwardRef('Pipeline'), typing.Callable, ForwardRef('PreTrainedModel'), ForwardRef('TFPreTrainedModel')] = None data: typing.Union[str, datasets.arrow_dataset.Dataset] = None subset: typing.Optional[str] = None split: typing.Optional[str] = None metric: typing.Union[str, evaluate.module.EvaluationModule] = None tokenizer: typing.Union[str, ForwardRef('PreTrainedTokenizer'), NoneType] = None strategy: typing.Literal['simple', 'bootstrap'] = 'simple' confidence_level: float = 0.95 n_resamples: int = 9999 device: int = None random_state: typing.Optional[int] = None input_column: str = 'text' label_column: str = 'label' generation_kwargs: dict = None )
参数
- model_or_pipeline (字符串
str
或Pipeline
或Callable
或PreTrainedModel
或TFPreTrainedModel
,默认为None
)— 如果未指定该参数,我们将初始化默认的管道以用于该任务(在这种情况下为text-classification
或其别名sentiment-analysis
)。如果该参数为字符串类型或为模型实例,我们将其用于初始化带有指定模型的新的Pipeline
。否则,我们假设参数指定了一个预初始化的管道。 - data (字符串
str
或Dataset
,默认为None
)— 指定我们要在其上运行评估的集合。如果该参数为字符串类型,我们将其视为数据集名称并加载它。否则,我们认为这表示一个已预加载数据集。 - subset (字符串
str
,默认为None
)— 定义要加载的数据集子集。如果传递None
,则加载默认子集。 - split (
str
, 默认为None
) — 定义要加载的数据集分割。如果传递None
,则根据choose_split
函数进行推断。 - metric (
str
或EvaluationModule
,默认为None
) — 指定在评估器中使用哪种度量标准。如果它是str
类型,我们将其视为度量标准名称并加载它。否则我们假设它代表一个已加载的度量标准。 - tokenizer (
str
或PreTrainedTokenizer
,可选,默认为None
) — 如果model_or_pipeline
代表我们构建管道的模型,则可以使用该参数覆盖默认分词器。如果model_or_pipeline
为None
或已初始化的管道,我们将忽略此参数。 - 策略 (
Literal["simple", "bootstrap"]
, 默认为 “simple”) — 指定评估策略。可能的值有:"simple"
- 我们评估指标并返回分数。"bootstrap"
- 在计算指标分数的基础上,我们还计算每个返回的指标键的置信区间,使用scipy
的bootstrap
方法 https://docs.scipy.org.cn/doc/scipy/reference/generated/scipy.stats.bootstrap.html。
- 置信水平 (
float
, 默认为0.95
) — 当选择"bootstrap"
策略时传递给bootstrap
的confidence_level
值。 - n_resamples (
int
, 默认为9999
) — 当选择"bootstrap"
策略时传递给bootstrap
的n_resamples
值。 - 设备(
int
,默认值为None
)— pipeline 的 CPU/GPU 支持的设备序数。将该值设置为 -1 将利用 CPU,正整数将运行在关联的 CUDA 设备 ID 上。如果提供None
,它将被推断并且如果可用,则使用 CUDA:0,否则使用 CPU。 - random_state(
int
,可选,默认值为None
)— 选择“bootstrap”策略时传递给bootstrap
的random_state
值。用于调试。 - input_column(
str
,默认值为"text"
)— 数据集中包含输入文本的列的名称,由data
指定。 - label_column (
str
,默认为"label"
) — 由data
指定的数据集中包含标签的列的名称。 - generation_kwargs (
Dict
,可选,默认为None
) — 生成kwargs传递给管道并设置文本生成策略。
计算给定管道和数据集组合的指标。
TranslationEvaluator
翻译评估器。当前可以通过使用默认任务名称 translation
从 evaluator() 加载此翻译生成评估器。此类的所有方法都假定了与 TranslationPipeline
兼容的数据格式。
compute
< source >( model_or_pipeline: typing.Union[str, ForwardRef('Pipeline'), typing.Callable, ForwardRef('PreTrainedModel'), ForwardRef('TFPreTrainedModel')] = None data: typing.Union[str, datasets.arrow_dataset.Dataset] = None subset: typing.Optional[str] = None split: typing.Optional[str] = None metric: typing.Union[str, evaluate.module.EvaluationModule] = None tokenizer: typing.Union[str, ForwardRef('PreTrainedTokenizer'), NoneType] = None strategy: typing.Literal['simple', 'bootstrap'] = 'simple' confidence_level: float = 0.95 n_resamples: int = 9999 device: int = None random_state: typing.Optional[int] = None input_column: str = 'text' label_column: str = 'label' generation_kwargs: dict = None )
参数
- model_or_pipeline (
str
或Pipeline
或Callable
或PreTrainedModel
或TFPreTrainedModel
,默认为None
) — 如果未指定此参数,则初始化与此任务(在这种情况下为text-classification
或其别名sentiment-analysis
)兼容的默认管道。如果参数是类型str
或模型实例,则使用它来初始化一个包含给定模型的新的Pipeline
。否则,假设参数指定了一个已初始化的管道。 - data (
str
或Dataset
,默认为None
) — 指定我们将运行评估的语料库。如果它是类型str
,我们认为它是语料库名称,然后加载它。否则,假设它表示一个已预加载的语料库。 - subset (
str
, 默认为None
) — 定义要加载的数据集子集。如果传入None
,则加载默认子集。 - split (
str
, 默认为None
) — 定义要加载的数据集分割。如果传入None
,则基于choose_split
函数进行推断。 - metric (
str
或EvaluationModule
,默认为None
) — 指定评估器中使用的指标。如果是类型str
,我们将它视为指标名称,并加载它。否则,我们假设它代表一个已预加载的指标。 - tokenizer (
str
或PreTrainedTokenizer
,可选,默认为None
) — 此参数可用于覆盖默认分词器,如果model_or_pipeline
代表一个我们为其构建管道的模型。如果model_or_pipeline
是None
或已预初始化的管道,则忽略此参数。 - strategy (
Literal["simple", "bootstrap"]
,默认为“simple”) — 指定评估策略。可能的值有:"simple"
- 评估指标并返回分数。"bootstrap"
- 在计算指标分数的基础上,使用scipy
的bootstrap
方法 https://docs.scipy.org.cn/doc/scipy/reference/generated/scipy.stats.bootstrap.html 计算每个返回指标键的置信区间。
- confidence_level (
float
,默认为0.95
) — 如果选择“bootstrap”策略,将传递给bootstrap
的confidence_level
值。 - n_resamples (
int
, 默认为9999
) — 若选择bootstrap
策略,则传递给bootstrap
的n_resamples
值。 - device (
int
, 默认为None
) — 支持管道的 CPU/GPU 设备序号。将此设置为 -1 将使用 CPU,正整数将运行于关联的 CUDA 设备 ID。如果没有提供None
,则将推断并使用 CUDA:0(如果可用),否则使用 CPU。 - random_state (
int
, 可选,默认为None
) — 若选择bootstrap
策略,则传递给bootstrap
的random_state
值。调试时很有用。 - input_column (
str
, 默认值为"text"
) — 在由data
指定的数据集包含输入文本的列的名称。 - label_column (
str
, 默认值为"label"
) — 在由data
指定的数据集包含标签的列的名称。 - generation_kwargs (
Dict
, 可选,默认值为None
) — 将生成kwargs传递给流水和设置文本生成策略。
计算给定管道和数据集组合的指标。
AutomaticSpeechRecognitionEvaluator
类 evaluate.AutomaticSpeechRecognitionEvaluator
< source >( task = 'automatic-speech-recognition' default_metric_name = None )
自动语音识别评估器。当前可以通过默认任务名称 automatic-speech-recognition
使用 evaluate.evaluator 方法加载此自动语音识别评估器。此类中的方法假定与 AutomaticSpeechRecognitionPipeline
兼容的数据格式。
compute
< source >( model_or_pipeline: typing.Union[str, ForwardRef('Pipeline'), typing.Callable, ForwardRef('PreTrainedModel'), ForwardRef('TFPreTrainedModel')] = None data: typing.Union[str, datasets.arrow_dataset.Dataset] = None subset: typing.Optional[str] = None split: typing.Optional[str] = None metric: typing.Union[str, evaluate.module.EvaluationModule] = None tokenizer: typing.Union[str, ForwardRef('PreTrainedTokenizer'), NoneType] = None strategy: typing.Literal['simple', 'bootstrap'] = 'simple' confidence_level: float = 0.95 n_resamples: int = 9999 device: int = None random_state: typing.Optional[int] = None input_column: str = 'path' label_column: str = 'sentence' generation_kwargs: dict = None )
参数
- model_or_pipeline (
str
或Pipeline
或Callable
或PreTrainedModel
或TFPreTrainedModel
,默认为None
) — 如果未指定此参数,我们将为任务初始化默认的管道(在本例中为text-classification
或其别名 -情感分析
)。如果参数为str
类型或为模型实例,我们将其用于初始化一个具有给定模型的新的Pipeline
。否则,我们假设参数指定的是一个已初始化的管道。 - data(《字符串》或《数据集》,默认为空)— 指定将在其上运行评估的数据集。如果它是《字符串》的类型,我们将其视为数据集名称并加载它。否则,我们假设它表示已加载的数据集。
- subset(《字符串》,默认为空)— 定义要加载的数据集子集。如果传递空值,则加载默认子集。
- split(《字符串》,默认为空)— 定义要加载的数据集分割。如果传递空值,则根据
choose_split
函数推断。 - metric (
str
或EvaluationModule
,默认为None
) — 指定在评估器中使用的度量。如果它是类型str
,我们将其视为度量名称并加载它。否则,我们假设它表示一个已加载的度量。 - tokenizer (
str
或PreTrainedTokenizer
,可选,默认为None
) — 可选参数,用于覆盖默认分词器,如果model_or_pipeline
表示一个需要建立管道的模型。如果model_or_pipeline
为None
或预初始化的管道,我们将忽略此参数。 - strategy (
Literal["simple", "bootstrap"]
,默认为 “simple”) — 指定评估策略。可能的值有:"simple"
- 我们评估度量并返回分数。"bootstrap"
- 除了计算度量得分之外,我们还使用 scipy 的bootstrap
方法计算每个返回的度量键的置信区间 https://docs.scipy.org.cn/doc/scipy/reference/generated/scipy.stats.bootstrap.html。
- confidence_level (
float
, 默认值为0.95
) — 当选择"bootstrap"
策略时传递给bootstrap
的confidence_level
值。 - n_resamples (
int
, 默认值为9999
) — 当选择"bootstrap"
策略时传递给bootstrap
的n_resamples
值。 - device (
int
, 默认值为None
) — 流程 CPU/GPU 支持的设备顺序。将此设置为-1
将使用 CPU,正整数将在关联的 CUDA 设备 ID 上运行模型。如果未提供None
,它将被推断,如果可用则使用 CUDA:0,否则使用 CPU。 - random_state (
int
,可选,默认为None
) — 在选择“bootstrap”策略时传递给bootstrap
的random_state
值。适用于调试。
计算给定管道和数据集组合的指标。
示例
>>> from evaluate import evaluator
>>> from datasets import load_dataset
>>> task_evaluator = evaluator("automatic-speech-recognition")
>>> data = load_dataset("mozilla-foundation/common_voice_11_0", "en", split="validation[:40]")
>>> results = task_evaluator.compute(
>>> model_or_pipeline="https://huggingface.co/openai/whisper-tiny.en",
>>> data=data,
>>> input_column="path",
>>> label_column="sentence",
>>> metric="wer",
>>> )