内容提要
本文介绍在Amazon Bedrock上使用lm-evaluation-harness框架评估LLM编程能力的方法,以HumanEval基准测试为例。通过LiteLLM适配层集成,对GPT-5.6 Sol、Claude Opus 4.8和Claude Sonnet 5进行测试,三者pass@1均达97-98%。同时利用Bedrock Prompt Caching技术,在批量评估中实现84%以上的输入token成本节省,并支持配置扫描优化参数。
延伸解读
评估结果接近饱和,选型需结合其他维度
三个模型在 HumanEval 上的 pass@1 均达 97-98%,差距很小,说明该基准对当前一线模型已接近饱和。因此,仅凭 HumanEval 分数难以区分模型优劣,选型时应结合延迟、成本、上下文窗口等实际需求。例如,GPT-5.6 Sol 速度最快,而 Claude Sonnet 5 在同等分数下可能更具性价比。
Prompt Caching 的触发条件与成本节省
Bedrock 的 Prompt Caching 要求缓存前缀至少 4096 tokens,本文使用约 5500 tokens 的系统提示确保稳定命中。在 164 题评估中,缓存命中率达 93.6%,成本从 $203.10 降至 $31.99,节省超 84%。但需注意,缓存仅在重复前缀场景有效,且首次请求按更高价格计费,实际节省取决于请求次数和前缀长度。
API 差异与适配技巧
Claude 模型在 Bedrock 上不支持 assistant prefill 和 temperature 参数,本文通过 monkey-patch 将 prefill 内容转移到用户消息,并自动丢弃 temperature 设置。这提示开发者在集成不同模型时需关注 API 差异,并采用类似适配手段,避免因参数不支持导致评估失败或结果偏差。
Q&A
如何在Amazon Bedrock上使用lm-evaluation-harness评估模型?
通过LiteLLM适配层将lm-evaluation-harness的调用转换为Bedrock Converse API,然后运行脚本(如run_humaneval_bedrock.py)即可。需要先配置AWS CLI、安装依赖并启用模型访问。
在HumanEval基准测试中,GPT-5.6 Sol、Claude Opus 4.8和Claude Sonnet 5的pass@1得分分别是多少?
GPT-5.6 Sol为98.2%,Claude Opus 4.8为97.0%,Claude Sonnet 5为97.0%。
Bedrock Prompt Caching如何帮助节省成本?在批量评估中能节省多少?
Bedrock Prompt Caching会缓存重复的系统提示前缀,后续请求以较低价格读取缓存。在HumanEval评估中,Claude Opus 4.8的缓存命中率达93.6%,节省了84.3%的输入token成本(从$203.10降至$31.99)。
使用Bedrock评估模型时,Claude Opus有哪些API限制?如何解决?
Claude Opus不支持assistant prefill和temperature参数。脚本通过monkey-patch将prefill内容转移到user消息中,并添加drop_temperature=True参数来跳过temperature设置。
lm-evaluation-harness的Sweep模式有什么作用?
Sweep模式自动测试12种配置组合(apply_chat_template、thinking、max_gen_toks),按pass@1排序推荐最佳参数组合,避免手动试错。
评估完成后会生成哪些报告文件?
生成results.json(结构化数据)、report.html(可视化报告,包含性能面板、缓存节省面板、逐题结果等)和sweep_results.json(配置对比)。
为什么在Bedrock上评估模型很重要?
因为需要验证模型在托管环境中的实际表现,包括与官方基准的一致性、跨区域路由和API参数限制的影响,以及Prompt Caching的真实成本节省效果。