快速入门
快速入门指南
本指南将引导您使用 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 工作流包含三个简单步骤:
- 创建 包含特定评估设置的 JSON 配置文件
- 运行 使用
run.py脚本进行评估 - 分析 保存到指定输出路径的结果
运行您的第一次评估
步骤 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:运行评估
使用您的配置文件执行评估:
python run.py -c my_evaluation.json与某些框架不同,FreeEval 不需要为 API 密钥设置环境变量,因为所有必要的配置都直接包含在 JSON 文件中。
评估运行时,您将看到进度指示器。
步骤 3:检查结果
评估完成后,您可以在 results_output_path 指定的路径找到结果:
cat ./result/my_first_evaluation.json探索示例配置
FreeEval 附带了几个示例配置,帮助您入门:
ls config/examples/这些示例配置涵盖了各种评估场景,可以作为您自己评估的模板。
部署您自己的模型
如果您想评估自己的模型,可以使用 FreeEval 附带的 deploy_model.py 脚本进行部署:
python deploy_model.py --model meta-llama/Llama-2-7b-chat-hf --gpus 0 --port 8080这会将指定的模型部署为 HTTP 服务,可以在配置文件中引用。
下一步
恭喜!您已经使用 FreeEval 运行了第一次评估。要了解更多:
要深入了解特定功能,请查看我们的详细文档部分。