ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

lm-evaluation-harness 如何用 --log_samples 与 wandb_args 把评估结果记录到 Weights Biases?

2026/9/15 16:03:24 拓冰建站 浏览量
lm-evaluation-harness 如何用 --log_samples 与 wandb_args 把评估结果记录到 Weights  Biases? lm-evaluation-harness 如何用 --log_samples 与 wandb_args 把评估结果记录到 Weights Biases【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness跑完一次 lm-evaluation-harness 评估后如果只想把指标留在终端里很难在多模型、多任务之间对比。项目内置的 Weights BiasesWB集成可以解决这件事安装lm_eval[wandb]extra 并完成 WB 鉴权后在评估命令上加--wandb_args和--log_samples两个参数评估指标、results.json以及逐样本数据都会自动上传到你的 WB run。本文覆盖这条路径的准备、执行与验证方式。准备安装 [wandb] extra 并完成鉴权第一步是安装包含 WB 依赖的 package extraREADME Weights and Biases 一节pip install lm_eval[wandb]在 pyproject.toml 中[wandb]extra 实际拉入wandb0.16.3、pandas和numpy三个依赖。然后是鉴权。README 给出的流程是先到 WB 授权页wandb.ai/authorize获取你自己的 token再在终端执行wandb login如果在 Python 环境里操作等价于调用wandb.login()examples/visualize-wandb.ipynb 的写法。一个版本相关的细节WandbLogger 初始化时会检查wandb.__version__若低于0.13.6会打印警告提示报告功能需要wandb0.13.6可用pip install wandb --upgrade升级。正常按lm_eval[wandb]安装要求wandb0.16.3则不会触发。执行带 --wandb_args 与 --log_samples 运行评估README 给出的主路径命令如下lm_eval是 CLI 入口lm-eval run形式见 docs/interface.md参数一致lm_eval \ --model hf \ --model_args pretrainedmicrosoft/phi-2,trust_remote_codeTrue \ --tasks hellaswag,mmlu_abstract_algebra \ --device cuda:0 \ --batch_size 8 \ --output_path output/phi-2 \ --limit 10 \ --wandb_args projectlm-eval-harness-integration \ --log_samples与 WB 记录直接相关的参数及其作用依据 lm_eval/_cli/run.py 与 docs/interface.md--wandb_args以逗号分隔的keyval形式传给wandb.init用于初始化一个 WB run。示例中projectlm-eval-harness-integration即把 run 归入指定项目。这是整个集成唯一的开关——CLI 中只有当wandb_args非空时才会创建WandbLogger并上传数据。--log_samples保存所有模型输出与文档用于 post-hoc 分析。它决定了样本级别的日志是否产生run.py中wandb_logger.log_eval_samples(samples)只在log_samples为真时调用。--output_path结果及样本的输出目录。按 docs/interface.md 的说明使用--log_samples时此项是必需的。--limit 10把每个任务的样本数限制到 10 条适合先小规模跑通流程再放开。--wandb_config_args可选的额外 WB config 参数写入wandb.config与--wandb_args相互独立。评估完成后哪些内容被上传评估结束后CLI 会依次执行post_init(results)、log_eval_result()并在--log_samples生效时执行log_eval_samples(samples)最后run.finish()关闭 run见 lm_eval/_cli/run.py。按 README 的说明与 lm_eval/loggers/wandb_logger.py 的实现上传内容包括评估指标以 WB Table 形式记录tasks 与 groups 各一张表results.json作为 artifact用于版本管理若记录了样本则记录task_name_eval_samples.json文件并把每个任务的样本生成 WB Table带 group 的任务会合并成一张按 group 聚合的表任务与 CLI 配置、运行评估所用的命令、GPU/CPU 数量、时间戳等。同一份结果会同时保存在本地--output_path目录中WB 侧不是唯一的副本。验证结果判断这次集成是否成功按 README 与 CLI 代码给出两个检查点stdout 中的链接评估运行后标准输出里会出现指向 WB run 页面的链接以及指向生成报告的链接README 原话In the stdout, you will find the link to the WB run page as well as link to the generated report。拿到这两个链接即说明 run 初始化与上传完成。平台上的内容打开 run 页面应能看到上述指标表、results.jsonartifact 以及各任务的样本表。如果 WB 侧出问题CLI 会把异常以Logging to WB failed: ...的形式打印出来并继续执行lm_eval/_cli/run.py 中 WB 日志逻辑包在 try/except 内也就是说 WB 上传失败不会中断评估本地output_path的保存逻辑照常进行——此时应回到鉴权与wandb版本上排查而不是重跑整个评估。可选分支用 YAML 配置文件承载 wandb_args如果不想每次手写命令行可以把参数放进 YAML 配置文件。docs/config_files.md 给出的示例# basic_eval.yaml model: hf model_args: pretrained: gpt2 dtype: float32 tasks: - hellaswag - arc_easy num_fewshot: 0 batch_size: auto device: cuda:0 output_path: ./results/gpt2/ log_samples: true wandb_args: project: llm-evals name: mistral-7b-instruct tags: - mistral - instruct - production然后运行lm-eval run --config basic_eval.yaml。CLI 参数会覆盖配置文件中的同名值如lm-eval run --config eval_config.yaml --tasks mmlu --limit 100适合在配置文件里放默认值、实验时只在命令行覆盖个别项。可选分支CLI 之外的程序化集成README 指出 examples/visualize-wandb.ipynb 展示了 CLI 之外的集成方式。其核心序列是先wandb.login()再实例化WandbLogger若此前已调用过wandb.init(...)则可复用已有 run然后在拿到simple_evaluate的results后依次调用wandb_logger.post_init(results) wandb_logger.log_eval_result() wandb_logger.log_eval_samples(results[samples])注意这里的前提是results中包含samples对应评估时开启了log_samplesTruedocs/python-api.md 的返回值说明中注明samples仅在log_samplesTrue时出现。限制小结不传--wandb_args就不会创建 WB logger什么都不上传这是集成唯一的启用开关。样本表WB Table 与task_name_eval_samples.json依赖--log_samples缺省时只有指标与results.json会上传。报告功能要求wandb0.13.6官方 extra 安装约束为wandb0.16.3版本不足时 CLI 只会打印警告并提示升级。WB 上传失败不阻断评估本身但 run 页面不会出现完整内容需按Logging to WB failed: ...提示排查鉴权或版本问题。【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考