agent-l / docs /reference /repo_map.md
zhou777's picture
Add files using upload-large-folder tool
0525670 verified
|
Raw
History Blame Contribute Delete
10.2 kB
# Repo Map
这个文档用于帮助后续代理快速识别仓库中的关键目录、关键脚本和推荐调用入口。
## 最高优先级上下文
新会话开始时优先阅读:
1. `AGENTS.md`
2. `README.md`
3. `docs/architecture.md`
4. `docs/roadmap.md`
5. `docs/current_status.md`
6. `docs/paper_alignment.md`
7. `docs/reference/repo_map.md`
8. `docs/deployment/deploy_linux.md`
## 论文对齐文档
- `docs/paper_alignment.md`
记录 AgriAgent 论文构想、当前仓库可支撑的材料、尚未完成的实验,以及下一步最应该补齐的证据链。后续写论文或设计实验时应优先查看。
## 截至 2026-03-31 的关键新增定位
- 实验 A 正式训练日志:`runs/logs/tomato-exp-a-official_20260323-201257.log`
- 实验 A merged 模型:`runs/mid/qwen3_5_35b_a3b_exp_a_official/v4-20260323-201311/checkpoint-151-merged/`
- 实验 A 验证结果目录:`runs/validation_eval/qwen3_5_35b_a3b_exp_a_official/`
- 实验 B 正式训练日志:`runs/logs/tomato-exp-b-attr_20260331-192847.log`
- 实验 B merged 模型:`runs/mid/qwen3_5_35b_a3b_exp_b_attr/v1-20260331-192847/checkpoint-145-merged/`
- 实验 B 首轮验证结果目录:`runs/validation_eval/qwen3_5_35b_a3b_exp_b_attr/`
- 实验 A/B 三联对比图目录:`runs/validation_compare/exp_a_vs_b_20260331_201545/`
- 当前验证推理入口:`pipelines/run_validation_inference.py`,默认支持 `vllm``transformers` 双后端,且已修复 assistant 输出模板丢失问题
- 当前可视化入口:`pipelines/visualize_validation_comparison.py`
- 当前重要回归测试:`tests/test_semantic_evaluator.py`,已覆盖字符串 bbox + think 包裹输出,以及 assistant 模板转显式 JSON 约束
## 顶层目录说明
### `agents/`
放置核心智能体实现。
关键文件:
- `agents/cognitive_annotator.py`
云端多模态标注智能体。输入图像,输出单图多目标结构化结果。
- `agents/multimodal_reviewer.py`
审核智能体。负责 bbox 坐标转换、业务校验、超小框过滤。
- `agents/vlm_operator.py`
训练操作器骨架;训练命令模板已先落在 `scripts/`,后续应回填这里。
- `agents/semantic_evaluator.py`
语义评估器;当前已支持结构化 prediction vs reference 对比。
- `agents/orchestrator.py`
闭环编排器骨架。
### `schemas/`
放置当前数据契约定义。
关键文件:
- `schemas/annotation.py`
Raw annotation 相关 TypedDict。
- `schemas/review.py`
Silver record 相关 TypedDict。
- `schemas/dataset_record.py`
Gold 和训练样本相关 TypedDict。
说明:
- 当前所有实现都应优先遵守这里的最新数据契约。
### `pipelines/`
放置当前最重要的可执行数据流程脚本。
关键文件:
- `pipelines/gold_builder.py`
从 Silver 聚合生成 Gold,并输出发布摘要与抽样检查。
- `pipelines/check_gold_regression.py`
对比两版 Gold 发布摘要,输出回归检查结论。
- `pipelines/manual_qc.py`
对 Silver 做按图抽样人工复核。
- `pipelines/evaluate_silver_dataset.py`
对 Silver 做结构化评估和风险样本导出。
- `pipelines/clean_silver_dataset.py`
对既有 Silver 做规则清洗和重建。
- `pipelines/evaluate_semantic_predictions.py`
对结构化预测结果做逐图语义评估。
- `pipelines/export_swift_sft_dataset.py`
将 Gold 导出为 Swift / Megatron-SWIFT grounding 训练数据,支持 `official``attr_enhanced` 两种实验模式。
- `pipelines/run_validation_inference.py`
对 Swift `val.jsonl` 运行真实模型验证推理,当前已支持把 `assistant` 模板转成显式输出约束。
- `pipelines/visualize_validation_comparison.py`
生成 GT / 实验 A / 实验 B 的三联对比图,便于肉眼排查空框、漏检和属性差异。
### `runs/`
放置所有运行快照和产物。
当前重要子目录:
- `runs/silver/`
Silver 主链路运行快照和数据集输出。
- `runs/evaluation/`
Silver 评估摘要、报告和风险预览图。
- `runs/silver_cleaning/`
Silver 清洗摘要和被丢弃记录。
- `runs/manual_qc/`
人工复核清单和预览图。
- `runs/gold/`
正式 Gold 发布目录。
- `runs/gold_regression/`
Gold 回归检查报告。
- `runs/swift_data/`
训练数据导出结果,包括实验 A / B 两套 grounding 数据。
### `tests/`
放置当前最小测试。
关键文件:
- `tests/test_reviewer.py`
reviewer 的 bbox 换算和超小框过滤测试。
- `tests/test_gold_builder.py`
Gold 聚合行为测试。
- `tests/test_gold_regression.py`
Gold 回归检查测试。
- `tests/test_semantic_evaluator.py`
结构化语义评估测试。
- `tests/test_swift_sft_export.py`
Swift / Megatron-SWIFT 训练数据导出测试。
### `docs/`
放置项目说明和协作文档。
关键文件:
- `docs/architecture.md`
- `docs/roadmap.md`
- `docs/current_status.md`
- `docs/paper_alignment.md`
- `docs/reference/repo_map.md`
- `docs/deployment/deploy_linux.md`
## 当前最重要的数据资产
### 原始全量新版 Silver
- `runs/silver/full_rerun_20260311_210637/silver_dataset.jsonl`
### 当前推荐优先使用的 cleaned Silver
- `runs/silver/full_rerun_20260311_210637_cleaned/silver_dataset.jsonl`
### 最近一次 Silver 清洗摘要
- `runs/silver_cleaning/silver_clean_20260311_223551/summary.json`
### 最近一次 cleaned Silver 评估摘要
- `runs/evaluation/silver_eval_20260311_223604/summary.json`
### 当前正式 Gold 基线
- `runs/gold/gold_release_v1/gold_dataset.jsonl`
### 当前 Qwen3.5 训练数据
- `runs/swift_data/qwen3_5_35b_a3b_exp_a_official_v2/`
- `runs/swift_data/qwen3_5_35b_a3b_exp_b_attr_v2/`
### 当前训练脚本
- `scripts/train_qwen3_5_35b_a3b_exp_a_official.sh`
- `scripts/train_qwen3_5_35b_a3b_exp_b_attr.sh`
## 推荐调用入口
### 1. Silver 主链路
```bash
python run_pipeline_silver.py --process-limit 10
```
常用环境变量:
- `QWEN_API_KEY`
- `QWEN_BASE_URL`
- `QWEN_MODEL`
- `PROCESS_LIMIT`
- `MIN_BBOX_1000_SIDE`
- `MIN_BBOX_1000_AREA`
### 2. 评估 Silver 数据集
```bash
python -m pipelines.evaluate_silver_dataset \
--silver-dataset-path <silver_jsonl_path> \
--risk-sample-size 12
```
建议用途:
- 新 Silver 重跑后第一时间做结构测评。
- 导出高风险图做人工复核。
- 对比原始 Silver 和 cleaned Silver 的质量变化。
### 3. 清洗既有 Silver 数据集
```bash
python -m pipelines.clean_silver_dataset \
--input <source_silver_jsonl> \
--output <target_silver_jsonl> \
--min-bbox-1000-side 20 \
--min-bbox-1000-area 400
```
建议用途:
- reviewer 规则升级后快速重建 Silver。
- 不重新请求模型 API 的情况下发布 cleaned Silver 新版本。
### 4. 人工复核
```bash
python -m pipelines.manual_qc \
--silver-dataset-path <silver_jsonl_path> \
--sample-size 12
```
建议用途:
- 对小样本或高风险图做人工复核。
- 重点检查 bbox grounding、target selection、成熟度与漏标/乱标。
### 5. Gold 构建
```bash
python -m pipelines.gold_builder \
--silver-dataset-path <silver_jsonl_path> \
--output-dir runs/gold/gold_release_v1
```
建议用途:
- 在 cleaned Silver 稳定后生成正式 Gold。
- 统一产出 `gold_dataset.jsonl``summary.json``report.md``sample_check.jsonl`
- 保持训练格式生成逻辑不回流污染 Silver 阶段。
### 6. Gold 回归检查
```bash
python -m pipelines.check_gold_regression \
--baseline runs/gold/gold_release_v1 \
--candidate runs/gold/gold_release_v2
```
建议用途:
- 发布新 Gold 前后对比图像数、目标数和分布漂移。
- 检查路径重写和质量检查布尔项是否退化。
- 生成 `summary.json``report.md` 作为版本说明附件。
### 7. Semantic Evaluator
```bash
python -m pipelines.evaluate_semantic_predictions \
--reference-dataset-path runs/gold/gold_release_v1/gold_dataset.jsonl \
--prediction-dataset-path runs/predictions/model_a_predictions.jsonl
```
建议用途:
- 比较模型结构化预测结果与 Gold 基线的差异。
- 输出逐图结果、风险样本和整体摘要。
- 为后续漏标挖掘与伪标签筛选提供基础评估层。
### 8. 导出 Qwen3.5 训练数据
```bash
python -m pipelines.export_swift_sft_dataset \
--gold-dataset-path runs/gold/gold_release_v1/gold_dataset.jsonl \
--output-dir runs/swift_data/qwen3_5_35b_a3b_exp_a_official_v1 \
--export-mode official
```
```bash
python -m pipelines.export_swift_sft_dataset \
--gold-dataset-path runs/gold/gold_release_v1/gold_dataset.jsonl \
--output-dir runs/swift_data/qwen3_5_35b_a3b_exp_b_attr_v1 \
--export-mode attr_enhanced
```
建议用途:
- 将正式 Gold 转成 Swift / Megatron-SWIFT grounding 训练输入。
- 保持训练格式转换与 Gold 发布逻辑解耦。
- 对比官方一致版和属性增强版的训练收益。
### 9. 启动 Qwen3.5-35B-A3B 训练
```bash
conda activate lsy-agent
bash scripts/train_qwen3_5_35b_a3b_exp_a_official.sh
```
```bash
conda activate lsy-agent
bash scripts/train_qwen3_5_35b_a3b_exp_b_attr.sh
```
建议用途:
- 当前优先跟踪实验 A 的正式训练,并统一查看 `runs/logs/` 中的日志。
- 实验 A 跑通后,再做实验 B 对照。
- 训练相关命令、依赖安装与版本检查统一在 `lsy-agent` 中执行。
- 正式训练默认使用 `--attention_backend unfused`
## 后续代理必须遵守的事实
- 当前任务是单图多目标,不是单图单目标。
- 当前主链路不再包含病害字段。
- bbox 在模型侧统一按 `0-1000` 相对坐标理解。
- Silver 是每目标一行,Gold 是按图聚合。
- 当前更推荐使用 cleaned Silver 作为后续构建和复核输入。
- 评估与清洗都已有可直接调用的脚本,不需要重复手写临时分析逻辑。
- 正式 Gold 基线已经是 `runs/gold/gold_release_v1/`,不是待完成事项。
- 当前 `Qwen3.5-35B-A3B` 训练数据和训练脚本都已准备完成。
- 训练环境 `lsy-agent` 已验收通过,实验 A 正式训练已进入 step 级训练循环。
- Linux 迁移前后的标准运行说明见 `docs/deployment/deploy_linux.md`