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 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。
属性:
- 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) — 用于少样本采样的种子数量。如果等于或小于 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 )
记录传递给方法的参数信息。
log_model_info
< 源代码 >( generation_parameters: dict 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, 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
< 源代码 >( 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
< 源代码 >( metrics_values: dict = <factory> metric_aggregated: dict = <factory> )
记录每个任务的每个指标的实际得分。
aggregate
< 源代码 >( task_dict: dict bootstrap_iters: int = 1000 )
聚合每个任务的指标,然后聚合所有任务的指标。
VersionsLogger
class lighteval.logging.info_loggers.VersionsLogger
< 源代码 >( versions: dict = <factory> )
任务版本的日志记录器。
任务可以有版本号/日期,这表示评估所使用的精确指标定义和数据集版本。
TaskConfigLogger
class lighteval.logging.info_loggers.TaskConfigLogger
< 源代码 >( tasks_configs: dict = <factory> )
记录当前相关 LightevalTask
的不同参数。