Lighteval 文档
日志记录
并获得增强的文档体验
开始使用
日志记录
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。
属性:
- details_logger (DetailsLogger) — 实验详细信息记录器。
- metrics_logger (MetricsLogger) — 实验指标记录器。
- versions_logger (VersionsLogger) — 任务版本记录器。
- general_config_logger (GeneralConfigLogger) — 常规配置记录器。
- task_config_logger (TaskConfigLogger) — 任务配置记录器。
将实验详细信息(每个步骤的所有模型预测)推送到 hub。
完全更新当前评估模型的详细信息存储库元数据卡
将实验信息和结果保存到文件,并在请求时保存到 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
< source >( num_fewshot_seeds: int override_batch_size: typing.Optional[int] max_samples: typing.Optional[int] job_id: str config: Config = None )
记录关于传递给方法的参数的信息。
log_model_info
< source >( generation_parameters: dict model_info: ModelInfo )
记录模型信息。
DetailsLogger
class lighteval.logging.info_loggers.DetailsLogger
< source >( 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, list
Hash
) — 将每个任务名称映射到其所有样本的Hash
列表。 - compiled_hashes (dict[str, CompiledHash) — 将每个任务名称映射到其
CompiledHas
,即所有单个样本哈希的聚合。 - details (dict[str, list
Detail
]) — 将每个任务名称映射到其样本详细信息的列表。示例:winogrande: [sample1_details, sample2_details, …] - compiled_details (dict[str,
CompiledDetail
]) — : 将每个任务名称映射到其样本的编译详细信息列表。 - compiled_details_over_all_tasks (CompiledDetailOverAllTasks) — 所有任务的聚合详细信息。
实验详细信息的记录器。
存储并记录任务级别和样本级别的实验信息。
聚合每个任务以及所有任务的详细信息和哈希值。我们最终得到每个任务的编译详细信息字典和所有任务的编译详细信息字典。
log
< source >( task_name: str task: LightevalTask doc: Doc outputs: list metrics: dict llm_as_prompt_judgement: typing.Optional[tuple[str, str]] = None )
将一个任务的一个样本的相关信息存储到 DetailsLogger 中存储的样本总列表中。
MetricsLogger
class lighteval.logging.info_loggers.MetricsLogger
< source >( metrics_values: dict = <factory> metric_aggregated: dict = <factory> )
记录每个任务的每个指标的实际分数。
聚合每个任务的指标,然后聚合所有任务的指标。
VersionsLogger
任务版本的记录器。
任务可以有一个版本号/日期,指示用于评估的精确指标定义和数据集版本。
TaskConfigLogger
class lighteval.logging.info_loggers.TaskConfigLogger
< source >( tasks_configs: dict = <factory> )
记录当前关注的 LightevalTask
的不同参数。