Lighteval 文档

日志记录

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

日志记录

EvaluationTracker

class lighteval.logging.evaluation_tracker.EvaluationTracker

< >

( output_dir: str save_details: bool = True push_to_hub: bool = False push_to_tensorboard: bool = False hub_results_org: str | None = '' tensorboard_metric_prefix: str = 'eval' public: bool = False nanotron_run_info: GeneralArgs = None )

参数

  • output_dir (str) — 您希望结果保存到的本地文件夹路径。
  • save_details (bool, 默认为 True) — 如果为 True,则详细信息将保存到 output_dir
  • push_to_hub (bool, 默认为 False) — 如果为 True,则详细信息将推送到 hub。结果将推送到 {hub_results_org}/details__{sanitized model_name} (对于模型 model_name,一个公共数据集,如果 public 为 True,否则为 {hub_results_org}/details__{sanitized model_name}_private,一个私有数据集)。
  • push_to_tensorboard (bool, 默认为 False) — 如果为 True,将创建 tensorboard 文件夹的结果并推送到 hub。
  • hub_results_org (str, 可选) — 将结果推送到的组织。有关数据集组织的更多详细信息,请参阅 EvaluationTracker.save
  • tensorboard_metric_prefix (str, 默认为 “eval”) — tensorboard 日志中指标的前缀。
  • public (bool, 默认为 False) — 如果为 True,则结果和详细信息将推送到公共组织。
  • nanotron_run_info (~nanotron.config.GeneralArgs, 可选) — 指向有关 Nanotron 模型运行的信息的引用。

跟踪整体评估过程和相关信息。

EvaluationTracker 包含用于实验详细信息 (DetailsLogger)、指标 (MetricsLogger)、任务版本 (VersionsLogger) 以及特定任务 (TaskConfigLogger) 和整体评估运行 (GeneralConfigLogger) 的常规配置的特定记录器。它汇编来自这些记录器的数据并将其写入文件,如果请求,这些文件可以发布到 Hugging Face hub。

属性:

generate_final_dict

< >

( )

聚合并返回字典中所有记录器的实验信息。

此函数应用于在评估运行结束时收集和显示所述信息。

push_to_hub

< >

( date_id: str details: dict results_dict: dict )

将实验详细信息(每个步骤的所有模型预测)推送到 hub。

recreate_metadata_card

< >

( repo_id: str )

参数

  • repo_id (str) — hub 上详细信息数据集存储库路径 (org/dataset)

完全更新当前评估模型的详细信息存储库元数据卡

save

< >

( )

将实验信息和结果保存到文件,并在请求时保存到 hub。

GeneralConfigLogger

class lighteval.logging.info_loggers.GeneralConfigLogger

< >

( )

参数

  • lighteval_sha (str) — 用于评估的 lighteval 的当前提交 sha(用于可重现性目的)
  • num_fewshot_seeds (int) — few-shot 采样的种子数。如果等于或低于 1,则实验仅完成一次,使用单个 few-shot 种子(等于 0)。如果高于 1,则实验会重复多次,few-shot 示例使用不同的采样/洗牌,这遵循例如 HELM 中的做法。
  • override_batch_size (int) — 管理批次大小。如果严格为正数,则其值将用作所有实验的批次大小。否则,批次大小将根据内存容量自动推断。
  • max_samples (int) — 如果设置,则将每个任务的样本数减少到 max_samples。注意:这应该仅用于调试目的!
  • job_id (int) — 如果评估套件作为 slurm 作业启动,则存储当前作业 ID。纯粹的信息性参数,用于检索调度程序日志。
  • start_time (float) — 实验的开始时间。在类初始化时记录。
  • end_time (float) — 实验的结束时间。在调用 GeneralConfigLogger.log_end_time 时记录。
  • total_evaluation_time_secondes (str) — 推断的总评估时间(秒)(从开始时间和结束时间)。
  • model_name (str) — 当前评估模型的名称。
  • model_sha (str) — 如果可用,则为 hub 上当前评估模型的提交哈希值。
  • model_dtype (str) — 模型权重的 Dtype,从加载模型配置时获得。
  • model_size (str) — 从加载模型配置时获得的模型大小。

评估参数的记录器。

log_args_info

< >

( num_fewshot_seeds: int override_batch_size: typing.Optional[int] max_samples: typing.Optional[int] job_id: str config: Config = None )

参数

  • num_fewshot_seeds (int) — few-shot 种子的数量。
  • override_batch_size (Union[None, int]) — 覆盖的批次大小。如果严格为正数,则其值将用作所有实验的批次大小。否则,批次大小将根据内存容量自动推断。
  • max_samples (Union[None, int]) — 最大样本数,如果为 None,则使用所有可用样本。
  • job_id (str) — 作业 ID,用于检索日志。
  • config (optional) — Nanotron Config

记录关于传递给方法的参数的信息。

log_model_info

< >

( generation_parameters: dict model_info: ModelInfo )

参数

  • model_config — 用于初始化模型的模型配置。
  • model_info (ModelInfo) — 要记录的模型信息。

记录模型信息。

DetailsLogger

class lighteval.logging.info_loggers.DetailsLogger

< >

( hashes: dict = <factory> compiled_hashes: dict = <factory> details: dict = <factory> compiled_details: dict = <factory> compiled_details_over_all_tasks: DetailsLogger.CompiledDetailOverAllTasks = <factory> )

参数

  • hashes (dict[str, listHash) — 将每个任务名称映射到其所有样本的 Hash 列表。
  • compiled_hashes (dict[str, CompiledHash) — 将每个任务名称映射到其 CompiledHas,即所有单个样本哈希的聚合。
  • details (dict[str, listDetail]) — 将每个任务名称映射到其样本详细信息的列表。示例:winogrande: [sample1_details, sample2_details, …]
  • compiled_details (dict[str, CompiledDetail]) — : 将每个任务名称映射到其样本的编译详细信息列表。
  • compiled_details_over_all_tasks (CompiledDetailOverAllTasks) — 所有任务的聚合详细信息。

实验详细信息的记录器。

存储并记录任务级别和样本级别的实验信息。

aggregate

< >

( )

聚合每个任务以及所有任务的详细信息和哈希值。我们最终得到每个任务的编译详细信息字典和所有任务的编译详细信息字典。

log

< >

( task_name: str task: LightevalTask doc: Doc outputs: list metrics: dict llm_as_prompt_judgement: typing.Optional[tuple[str, str]] = None )

参数

  • task_name (str) — 当前关注的任务的名称。
  • task (LightevalTask) — 当前关注的任务。
  • doc (Doc) — 我们想要存储的当前样本。
  • outputs (list[ModelResponse]) — 当前样本的模型输出。
  • metrics (type) — 模型在当前任务的指标上的得分。
  • llm_as_prompt_judgement (tuple[str, str]) — 当使用 llm-as-judge 指标时,包含传递给 judge 的 prompt 和当前样本的判断结果的元组。

将一个任务的一个样本的相关信息存储到 DetailsLogger 中存储的样本总列表中。

MetricsLogger

class lighteval.logging.info_loggers.MetricsLogger

< >

( metrics_values: dict = <factory> metric_aggregated: dict = <factory> )

参数

  • metrics_value (dict[str, dict[str, list[float]]]) — 将每个任务映射到其指标字典,再映射到该任务所有示例的分数。示例: {“winogrande|winogrande_xl”: {“accuracy”: [0.5, 0.5, 0.5, 0.5, 0.5, 0.5]}‌}
  • metric_aggregated (dict[str, dict[str, float]]) — 将每个任务映射到其指标字典,再映射到该任务所有示例的聚合分数。示例: {“winogrande|winogrande_xl”: {“accuracy”: 0.5}‌}

记录每个任务的每个指标的实际分数。

aggregate

< >

( task_dict: dict bootstrap_iters: int = 1000 )

参数

  • task_dict (dict[str, LightevalTask]) — 用于确定每个指标使用哪种聚合函数。
  • bootstrap_iters (int, optional) — 用于运行统计 bootstrap 的运行次数。默认为 1000。

聚合每个任务的指标,然后聚合所有任务的指标。

VersionsLogger

class lighteval.logging.info_loggers.VersionsLogger

< >

( versions: dict = <factory> )

参数

  • version (dict[str, int]) — 将任务名称映射到任务版本的字典。

任务版本的记录器。

任务可以有一个版本号/日期,指示用于评估的精确指标定义和数据集版本。

TaskConfigLogger

class lighteval.logging.info_loggers.TaskConfigLogger

< >

( tasks_configs: dict = <factory> )

参数

  • tasks_config (dict[str, LightevalTaskConfig]) — 将每个任务映射到其关联的 LightevalTaskConfig

记录当前关注的 LightevalTask 的不同参数。

< > 在 GitHub 上更新