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 wandb: bool = False )

参数

  • output_dir (str) — 您希望保存结果的本地文件夹路径。
  • save_details (bool, 默认为 True) — 如果为 True,详细信息将保存到 output_dir
  • push_to_hub (bool, 默认为 False) — 如果为 True,详细信息将推送到 Hub。对于模型 model_name,结果将被推送到 {hub_results_org}/details__{sanitized model_name}(如果 public 为 True,则为公共数据集),否则推送到 {hub_results_org}/details__{sanitized model_name}_private(私有数据集)。
  • push_to_tensorboard (bool, 默认为 False) — 如果为 True,将在 Hub 上创建并推送一个 TensorBoard 文件夹的结果。
  • 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) — 用于少样本采样的种子数量。如果等于或小于 1,实验仅进行一次,使用单个少样本种子(等于 0)。如果大于此值,实验将重复多次,每次使用不同的少样本示例采样/洗牌,这与 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) — 模型权重的数据类型,在加载模型配置时获得。
  • model_size (str) — 模型大小,在加载模型配置时获得。

评估参数的日志记录器。

log_args_info

< >

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

参数

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

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

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)指标时,包含传递给评判者的提示以及对当前样本的评判结果的元组。

将一个任务的一个样本的相关信息存储到 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 上更新