OLMo-Eval
OLMo-Eval 是一个用于评估开放语言模型的代码库。
概述
olmo_eval
框架是一种在自然语言处理任务上运行语言模型评估流程的方法。该代码库具有可扩展性,包含 task_sets
和示例配置,它们运行一系列 tango
步骤来计算模型输出和指标。
使用此流程,您可以在 t 个任务集上评估 m 个模型,每个任务集由一个或多个单独的任务组成。使用任务集可以让您计算多个任务的聚合指标。可选的 google-sheet
集成可用于报告。
该流程基于 ai2-tango 和 ai2-catwalk 构建。
安装
克隆仓库后,请运行以下命令:
conda create -n eval-pipeline python=3.10
conda activate eval-pipeline
cd OLMo-Eval
pip install -e .
快速开始
当前的 task_sets
可以在 configs/task_sets 中找到。在这个例子中,我们在 EleutherAI/pythia-1b
上运行 gen_tasks
。示例配置在这里。
可以按以下方式运行配置:
tango --settings tango.yml run configs/example_config.jsonnet --workspace my-eval-workspace
这将执行配置中定义的所有步骤,并将它们保存在名为 my-eval-workspace
的本地 tango
工作空间中。如果您向配置中添加新的任务集或模型并再次运行相同的命令,它将重用之前的输出,只计算新的输出。
输出应该如下所示:
可以通过修改示例配置来添加新的模型和数据集。
加载流程输出
from tango import Workspace
workspace = Workspace.from_url("local://my-eval-workspace")
result = workspace.step_result("combine-all-outputs")
加载带有每个实例输出的单个任务结果
result = workspace.step_result("outputs_pythia-1bstep140000_gen_tasks_drop")
在标准基准测试上评估常见模型
eval_table 配置在 standard_benchmarks
和 MMLU
上评估 falcon-7b
、mpt-7b
、llama2-7b
和 llama2-13b
。运行方式如下:
tango --settings tango.yml run configs/eval_table.jsonnet --workspace my-eval-workspace
PALOMA
这个仓库也用于运行 PALOMA 论文 的评估。
关于在 PALOMA 上运行评估的详细信息可以在这里找到。