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
的不同引數。