17 Apr, 2026

1 commit

  • 【方案落地】
    - 配置层:在 config/config.yaml 中注册 core_queries(原53条)和 clothing_top771(771条)
      核心改动:config/schema.py (line 410) 增加 EvaluationDataset 模型;
                config/loader.py (line 304) 提供 get_dataset/list_datasets,兼容旧配置;
                新增 scripts/evaluation/eval_framework/datasets.py 作为 dataset registry 辅助模块
    - 存储与框架:所有 artifact 按 dataset_id 隔离,标注缓存跨数据集共享
      核心改动:store.py (line 1) 增加 dataset_id 字段到 build_runs/batch_runs;
                framework.py (line 1) build/batch_evaluate 接受 dataset_id 并固化 snapshot
    - CLI 与调参:所有子命令增加 --dataset-id 参数
      核心改动:cli.py (line 1)、tune_fusion.py (line 1) 及启动脚本
    - Web 与前端:支持动态切换评估集,History 按 dataset 过滤
      核心改动:web_app.py (line 1) 新增 /api/datasets,/api/history 支持 dataset_id;
                static/index.html 和 eval_web.js (line 1) 增加下拉选择器
    
    【验证与测试】
    - 新增 tests/test_search_evaluation_datasets.py,pytest 通过 2 passed
    - 编译检查通过(pyflakes/mypy 核心模块)
    - eval-web 已按新模型重启并通过健康检查(后续因资源占用不稳定,不影响标注)
    
    【LLM 标注运行状态】
    - 目标 dataset:clothing_top771(771条query)
    - 手动拉起 reranker(因 search.rerank.enabled=false),确认 /health 正常
    - 执行 rebuild --dataset-id clothing_top771,当前已进入第1个 query "白色oversized T-shirt" 的批量标注阶段(llm_batch=24/40)
    - 日志:logs/eval.log(主进度),logs/verbose/eval_verbose.log(详细 LLM I/O)
    tangwang
     

01 Apr, 2026

9 commits

  • tangwang
     
  • tangwang
     
  • tangwang
     
  • 现在的行为(按你的路径)
    用途	路径(相对仓库根 PROJECT_ROOT)
    评估主日志(CLI + framework 的 INFO)	logs/eval.log
    LLM 全量 prompt / 原始响应	logs/verbose/eval_verbose.log
    实现要点:
    
    constants.py:EVAL_LOG_DIR、EVAL_VERBOSE_LOG_DIR、EVAL_LOG_FILE、EVAL_VERBOSE_LOG_FILE。
    logging_setup.py:setup_eval_logging() 给名为 search_eval 的 logger 挂
    文件 + stderr,只初始化一次;build_annotation_set.py / serve_eval_web.py
    走的 eval_framework.cli.main() 开头会先调用。
    cli.py:原来的 print 改为 search_eval.cli 的 logging.info;启动时写一条
    CLI start command=... log_file=... 到 logs/eval.log。
    framework.py:rebuild 相关 print 改为 search_eval.framework 的
    logging.info。
    clients.py:verbose 改为写入
    logs/verbose/eval_verbose.log;首次需要时调用 setup_eval_logging(),并用
    search_eval.info 提示 verbose 文件路径(不再用 print)。
    tangwang
     
  • tangwang
     
  • scripts/evaluation/eval_framework/constants.py:500 → 200
    Rebuild 里 rank <= recall_n 的 rerank_score: 1.0 仍按该 K 生效。
    2. LLM 批次上下限
    最少批次:DEFAULT_REBUILD_MIN_LLM_BATCHES 20 → 10
    最多批次:仍为 40(未改)
    3. 提前结束条件(_annotate_rebuild_batches)
    在已跑满 min_batches 之后,对每个批次:
    
    本批无 Exact(exact_n == 0),且满足其一即视为 bad batch:
    irrelevant_ratio >= 0.94
    或 (irrelevant + Low Relevant) / n >= 0.96(弱相关用 RELEVANCE_LOW)
    连续 2 个 bad batch 则 early stop(原先是连续 3 次、irrelevant >
    0.92)。
    
    批次日志里增加了 low_ratio、irrelevant_plus_low_ratio;rebuild
    元数据里增加了 rebuild_irrel_low_combined_stop_ratio。
    
    4. CLI
    --search-recall-top-k 说明改为默认 200
    --rebuild-min-batches 说明改为默认 10
    --rebuild-irrelevant-stop-ratio / --rebuild-irrelevant-stop-streak
    说明与新逻辑一致
    新增 --rebuild-irrel-low-combined-stop-ratio(默认 0.96)
    tangwang
     
  • tangwang
     
  • tangwang
     
  • tangwang
     

31 Mar, 2026

2 commits