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 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.