跳转到内容

快速入门

快速入门指南

本指南将引导您使用 FreeEval 进行第一次语言模型评估。在几分钟内,您将了解如何使用我们基于 JSON 的配置系统来配置和执行评估流水线。

评估理念

FreeEval 建立在可重现性和透明度的理念上。所有评估参数都在单个 JSON 配置文件中定义,确保评估可以轻松共享、重现和比较。

这种方法将所有配置细节保存在一个地方,使其简单易行:

  • 跟踪评估设置的变化
  • 与他人共享精确的评估条件
  • 确保在不同环境中的评估一致性

理解配置文件

让我们来分析一个典型的 FreeEval 配置文件,并通过详细注释解释每个部分:

{
// 评估结果保存位置
"results_output_path": "./result/results-llama-2-7b-chat-hf-arc_challenge.json",
// 要执行的评估步骤数组
"steps": [
{
// 评估类型(在这种情况下为多项选择题)
"step_type": "simple_multiple_choice",
// 此评估步骤的描述性名称
"step_name": "Simple MCP on ARC Challenge",
// 是否保存处理后的数据集
"save_dataset": true,
// 数据集配置
"dataset_config": {
// 数据集类型标识符
"type": "arc_challenge",
// 数据集特定参数
"dataset_kwargs": {
// 用于可重现性的随机种子
"seed": 2,
// 使用数据集的哪个分割
"split": "test",
// 数据集标识符(HuggingFace 数据集路径)
"name_or_path": "allenai/ai2_arc",
// 数据集的特定配置
"config_name": "ARC-Challenge",
// 对于少样本评估,从哪个分割中抽取示例
"fewshot_split": "train",
// 在少样本提示中使用的示例数量
"fewshot_num": 5
}
},
// 模型推理配置
"inference_config": {
// 模型类型(在这种情况下为远程 HuggingFace 模型)
"type": "remote_hf",
// 中间结果保存位置
"output_path": "./result",
// 模型特定参数
"inference_kwargs": {
// 模型名称
"model_name": "llama-2-7b-chat-hf",
// 模型部署的 URL 数组
// 可以提供多个端点进行负载均衡
"base_url": [
"http://your-tgi-url:port"
],
// 请求超时(秒)
"timeout": 60,
// 评估的并行工作进程数
"num_workers": 4,
// 速率限制参数
"request_limit": 100000,
"request_limit_period": 60,
// 是否保存单独的模型响应
"dump_individual_rsp": true,
// 模型生成参数
"generation_config": {
"max_new_tokens": 20
}
}
}
}
]
}

基本评估工作流

FreeEval 工作流包含三个简单步骤:

  1. 创建 包含特定评估设置的 JSON 配置文件
  2. 运行 使用 run.py 脚本进行评估
  3. 分析 保存到指定输出路径的结果

运行您的第一次评估

步骤 1:创建配置文件

首先复制我们的示例配置文件并根据您的需求进行自定义。创建一个名为 my_evaluation.json 的文件:

{
"results_output_path": "./result/my_first_evaluation.json",
"steps": [
{
"step_type": "simple_multiple_choice",
"step_name": "ARC Challenge 评估",
"save_dataset": true,
"dataset_config": {
"type": "arc_challenge",
"dataset_kwargs": {
"seed": 42,
"split": "test",
"name_or_path": "allenai/ai2_arc",
"config_name": "ARC-Challenge",
"fewshot_split": "train",
"fewshot_num": 5
}
},
"inference_config": {
"type": "remote_hf",
"output_path": "./result",
"inference_kwargs": {
"model_name": "llama-2-7b-chat-hf",
"base_url": [
"http://localhost:8080" // 替换为您的模型端点
],
"timeout": 60,
"num_workers": 4,
"dump_individual_rsp": true,
"generation_config": {
"max_new_tokens": 20
}
}
}
}
]
}

确保将 "http://localhost:8080" 替换为您部署模型的实际 URL。

步骤 2:运行评估

使用您的配置文件执行评估:

Terminal window
python run.py -c my_evaluation.json

与某些框架不同,FreeEval 不需要为 API 密钥设置环境变量,因为所有必要的配置都直接包含在 JSON 文件中。

评估运行时,您将看到进度指示器。

步骤 3:检查结果

评估完成后,您可以在 results_output_path 指定的路径找到结果:

Terminal window
cat ./result/my_first_evaluation.json

探索示例配置

FreeEval 附带了几个示例配置,帮助您入门:

Terminal window
ls config/examples/

这些示例配置涵盖了各种评估场景,可以作为您自己评估的模板。

部署您自己的模型

如果您想评估自己的模型,可以使用 FreeEval 附带的 deploy_model.py 脚本进行部署:

Terminal window
python deploy_model.py --model meta-llama/Llama-2-7b-chat-hf --gpus 0 --port 8080

这会将指定的模型部署为 HTTP 服务,可以在配置文件中引用。

下一步

恭喜!您已经使用 FreeEval 运行了第一次评估。要了解更多:

要深入了解特定功能,请查看我们的详细文档部分。