[ PROMPT_NODE_22386 ]
api-evaluation
[ SKILL_DOCUMENTATION ]
# API 评估
评估 OpenAI、Anthropic 及其他基于 API 的大语言模型的指南。
## 概述
lm-evaluation-harness 通过统一的 `TemplateAPI` 接口支持评估基于 API 的模型。这允许对以下模型进行基准测试:
- OpenAI 模型 (GPT-4, GPT-3.5 等)
- Anthropic 模型 (Claude 3, Claude 2 等)
- 本地兼容 OpenAI 的 API
- 自定义 API 端点
**为什么要评估 API 模型**:
- 对闭源模型进行基准测试
- 对比 API 模型与开源模型
- 验证 API 性能
- 持续跟踪模型更新
## 支持的 API 模型
| 提供商 | 模型类型 | 请求类型 | 对数概率 (Logprobs) |
|----------|------------|---------------|----------|
| OpenAI (补全) | `openai-completions` | 全部 | ✅ 是 |
| OpenAI (聊天) | `openai-chat-completions` | 仅 `generate_until` | ❌ 否 |
| Anthropic (补全) | `anthropic-completions` | 全部 | ❌ 否 |
| Anthropic (聊天) | `anthropic-chat` | 仅 `generate_until` | ❌ 否 |
| 本地 (兼容 OpenAI) | `local-completions` | 取决于服务器 | 不定 |
**注意**: 没有对数概率的模型只能在生成任务上进行评估,不能进行困惑度或对数似然任务评估。
## OpenAI 模型
### 设置
bash
export OPENAI_API_KEY=sk-...
### 补全模型 (旧版)
**可用模型**: `davinci-002`, `babbage-002`
bash
lm_eval --model openai-completions
--model_args model=davinci-002
--tasks lambada_openai,hellaswag
--batch_size auto
**支持**:
- `generate_until`: ✅
- `loglikelihood`: ✅
- `loglikelihood_rolling`: ✅
### 聊天模型
**可用模型**: `gpt-4`, `gpt-4-turbo`, `gpt-3.5-turbo`
bash
lm_eval --model openai-chat-completions
--model_args model=gpt-4-turbo
--tasks mmlu,gsm8k,humaneval
--num_fewshot 5
--batch_size auto
**支持**:
- `generate_until`: ✅
- `loglikelihood`: ❌ (无对数概率)
- `loglikelihood_rolling`: ❌
**重要**: 聊天模型不提供对数概率,因此只能用于生成任务(MMLU, GSM8K, HumanEval),不能用于困惑度任务。
### 配置选项
bash
lm_eval --model openai-chat-completions
--model_args
model=gpt-4-turbo,
base_url=https://api.openai.com/v1,
num_concurrent=5,
max_retries=3,
timeout=60,
batch_size=auto
**参数**:
- `model`: 模型标识符 (必填)
- `base_url`: API 端点 (默认: OpenAI)
- `num_concurrent`: 并发请求数 (默认: 5)
- `max_retries`: 失败请求重试次数 (默认: 3)
- `timeout`: 请求超时时间