2.5 KiB
2.5 KiB
Spec: experiment-orchestration
ADDED Requirements
Requirement: 全因子实验矩阵生成
系统 SHALL 根据实验配置生成全因子实验矩阵:3 模型 × N 级提示词 × 12 commit × 3 次重复(N 为当前启用的提示词级别数),每个单元具有唯一 run_id。
Scenario: 生成 324 个单元
- WHEN 配置 3 模型 × 3 级别 × 12 commit × 3 重复并创建实验
- THEN 系统生成恰好 324 个实验单元且各自
run_id唯一
Requirement: 异步调度执行
系统 SHALL 基于 asyncio 的异步任务队列,按适配层并发额度分批执行实验单元。单次实验为五步流水线:加载样本 diff → 渲染提示词 → 调用模型适配层 → 采集原始结果 → 落库并更新进度。
Scenario: 批次执行完毕
- WHEN 一批实验单元被调度执行
- THEN 全部单元执行完毕(允许重试),进度实时更新
Requirement: 完整调用记录落库
系统 SHALL 完整记录每次调用:模型标识、策略标识与版本、commit 标识、重复序号、原始输出、token 用量、耗时、调用状态。模型采样参数(温度等)MUST 固定并随 run 记录持久化;每次重复实验 MUST 使用独立 run_id;原始输出 MUST 全量留痕。
Scenario: 还原历史实验
- WHEN 查询任意一次历史实验的数据库记录
- THEN 可还原其模型、采样参数、提示词模板及版本、样本与原始输出
Requirement: 失败重试与隔离
失败调用 SHALL 按指数退避自动重试;超过阈值标记失败并隔离;单个实验单元失败 MUST NOT 中断整体批次。
Scenario: 单单元失败不中断批次
- WHEN 人为制造 API 限流/超时导致部分单元持续失败
- THEN 失败单元重试后被标记失败并隔离,其余单元正常完成
Requirement: 断点续跑
系统 SHALL 支持断点续跑:批次执行中进程被强杀后重启,能从断点继续,已完成单元 MUST NOT 重复调用模型。
Scenario: 强杀后续跑
- WHEN 批次执行到一半强杀进程并重启
- THEN 系统从断点续跑,已完成单元不重复调用模型
Requirement: 异常输出处理
模型返回空内容或不合约定结构的内容时,该单元 SHALL 被标记为失败/无效并保留原文,MUST NOT 导致程序崩溃,MUST NOT 做模糊补救式猜测解析。
Scenario: 不合约定输出
- WHEN 模型返回无法按约定结构解析的内容
- THEN 该单元标记失败/无效并保留原文,批次继续