Upload HCL open-source release
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +3 -0
- .gitignore +26 -0
- LICENSE +21 -0
- README.md +305 -0
- configs/README.md +62 -0
- configs/coco_stability_125_50_250_local.json +137 -0
- configs/deepseek_flash_reasoning_hcl_plasticity_250_50_500.json +142 -0
- configs/deepseek_flash_reasoning_hcl_stability_250_50_500.json +142 -0
- configs/deepseek_flash_reasoning_raw_zero_shot_500.json +29 -0
- configs/deepseek_v4_flash_textual_budget_b0_300_80_80_600.json +142 -0
- configs/deepseek_v4_flash_textual_budget_b1_300_80_80_600.json +142 -0
- configs/deepseek_v4_flash_textual_budget_b3_300_80_80_600.json +142 -0
- configs/deepseek_v4_flash_textual_budget_binf_300_80_80_600.json +142 -0
- configs/full_coco_stability_250_50_500_local.json +137 -0
- configs/qwen36_27b_coco_gpu1_direct_raw_zero_shot_500.json +27 -0
- configs/qwen36_27b_coco_gpu1_hcl_plasticity_250_50_500.json +137 -0
- configs/qwen36_27b_coco_gpu1_hcl_stability_250_50_500.json +137 -0
- configs/qwen36_27b_coco_gpu1_v0_harness_500.json +99 -0
- configs/qwen36_27b_reasoning_hcl_stability_capabilities_250_50_500.json +153 -0
- configs/run_stability_hcl_01_4b.json +96 -0
- configs/run_stability_hcl_02_4b_opt27b.json +108 -0
- configs/run_stability_hcl_03_4b_teacher27b.json +120 -0
- configs/taskstream_multimodal_main_250_50_500.json +50 -0
- configs/taskstream_multimodal_recovered_500_100_500.json +55 -0
- configs/taskstream_textual_budget_300_80_80_600.json +50 -0
- configs/taskstream_textual_main_250_50_500.json +50 -0
- configs/validation_coco_distill_01_limit1.json +100 -0
- configs/validation_coco_distill_02_limit1.json +116 -0
- configs/validation_coco_distill_03_limit1.json +132 -0
- configs/validation_coco_stability_limit1.json +137 -0
- configs/validation_distill_01_limit1.json +96 -0
- configs/validation_distill_02_limit1.json +112 -0
- configs/validation_distill_03_limit1.json +128 -0
- data/README.md +69 -0
- docs/assets/capability-aware-results.png +0 -0
- docs/assets/controlled-forgetting.png +0 -0
- docs/assets/distillation-results.png +0 -0
- docs/assets/logo.png +3 -0
- docs/assets/method-overview.png +3 -0
- docs/assets/teaser.png +3 -0
- examples/data/test.jsonl +1 -0
- examples/data/train.jsonl +1 -0
- examples/task_stream.json +13 -0
- experiments/HCL_ALFworld/README.md +25 -0
- experiments/HCL_ALFworld/configs/ablations/no_capabilities.yaml +5 -0
- experiments/HCL_ALFworld/configs/ablations/no_gate.yaml +5 -0
- experiments/HCL_ALFworld/configs/ablations/no_memory.yaml +5 -0
- experiments/HCL_ALFworld/configs/ablations/stability_gate.yaml +6 -0
- experiments/HCL_ALFworld/configs/ablations/static.yaml +16 -0
- experiments/HCL_ALFworld/configs/baselines/alfworld_standard.yaml +13 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,6 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
docs/assets/logo.png filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
docs/assets/method-overview.png filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
docs/assets/teaser.png filter=lfs diff=lfs merge=lfs -text
|
.gitignore
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
__pycache__/
|
| 2 |
+
.pytest_cache/
|
| 3 |
+
*.py[cod]
|
| 4 |
+
*.egg-info/
|
| 5 |
+
.venv/
|
| 6 |
+
venv/
|
| 7 |
+
.env
|
| 8 |
+
.env.*
|
| 9 |
+
build/
|
| 10 |
+
dist/
|
| 11 |
+
|
| 12 |
+
# Local credentials and machine-specific configuration
|
| 13 |
+
**/conf/config.json
|
| 14 |
+
|
| 15 |
+
# Runtime artifacts
|
| 16 |
+
storage/
|
| 17 |
+
outputs/
|
| 18 |
+
reports/
|
| 19 |
+
logs/
|
| 20 |
+
*.log
|
| 21 |
+
llm_calls.txt
|
| 22 |
+
llm_calls.jsonl
|
| 23 |
+
checkpoint*.json
|
| 24 |
+
prediction_cache/
|
| 25 |
+
node_modules/
|
| 26 |
+
.DS_Store
|
LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) 2026 HCL Contributors
|
| 4 |
+
|
| 5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
+
in the Software without restriction, including without limitation the rights
|
| 8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
+
furnished to do so, subject to the following conditions:
|
| 11 |
+
|
| 12 |
+
The above copyright notice and this permission notice shall be included in all
|
| 13 |
+
copies or substantial portions of the Software.
|
| 14 |
+
|
| 15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
+
SOFTWARE.
|
README.md
ADDED
|
@@ -0,0 +1,305 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<h1 align="center">
|
| 2 |
+
<img src="docs/assets/logo.png" alt="HCL logo" height="48" align="absmiddle">
|
| 3 |
+
Harness Continual Learning
|
| 4 |
+
</h1>
|
| 5 |
+
|
| 6 |
+
<p align="center"><strong>Continual Adaptation Beyond Model Parameters</strong></p>
|
| 7 |
+
|
| 8 |
+
Official implementation of **Harness Continual Learning (HCL)**, a framework that enables frozen foundation-model agents to continually adapt their memory, routing, task interfaces, reusable capabilities, and optimization policies.
|
| 9 |
+
|
| 10 |
+
<p align="center">
|
| 11 |
+
<img src="docs/assets/teaser.png" alt="Overview of Harness Continual Learning" width="900">
|
| 12 |
+
</p>
|
| 13 |
+
|
| 14 |
+
## Abstract
|
| 15 |
+
|
| 16 |
+
Continual learning has largely focused on model parameters, yet modern agents can also adapt through a harness of prompts, memories, tools, skills, and routing rules. We introduce **Harness Continual Learning (HCL)**, a paradigm in which this harness evolves around a frozen foundation model, and define the resulting loss of previously acquired behavior as **harness-level forgetting**. HCL comprises four execution-facing components: the Task Interface, Experience Memory, Capability Map, and Adaptive Router. To balance adaptation and retention, **guarded harness evolution** separates update generation from state commitment: a Continual Optimizer proposes candidate harnesses from execution feedback, while a Continual Evaluator commits an update only after checking current improvement, historical retention, and validity. Across open-world capability accumulation, textual reasoning, and multimodal perception, HCL supports capability growth and failure recovery, exceeds corresponding baselines by more than 10% in multiple settings, and provides a controllable stability–plasticity trade-off.
|
| 17 |
+
|
| 18 |
+
## Key contributions
|
| 19 |
+
|
| 20 |
+
We evaluate HCL across textual reasoning, multimodal perception, and open-world interaction, and further study retention control, harness-level distillation, and component contributions. Our main contributions are:
|
| 21 |
+
|
| 22 |
+
- **Harness Continual Learning:** We propose and formalize HCL as a new continual learning paradigm, shifting the object of continual learning from model state to the harness state surrounding a frozen foundation model.
|
| 23 |
+
- **Guarded harness evolution:** We identify harness-level forgetting and make current improvement, historical retention, and validity explicit conditions for committing a harness update.
|
| 24 |
+
- **Capability accumulation and controlled retention:** Across reasoning, multimodal, and interactive task streams, we show that harness evolution supports capability accumulation. Component ablations and retention sweeps reveal the contributions of individual harness components, measurable forgetting, and controllable stability–plasticity trade-offs, with exploratory evidence of knowledge transfer.
|
| 25 |
+
|
| 26 |
+
<p align="center">
|
| 27 |
+
<img src="docs/assets/method-overview.png" alt="HCL method overview" width="900">
|
| 28 |
+
</p>
|
| 29 |
+
|
| 30 |
+
## Repository layout
|
| 31 |
+
|
| 32 |
+
```text
|
| 33 |
+
HCL/
|
| 34 |
+
├── hcl/ # Core HCL implementation
|
| 35 |
+
│ ├── capability/ # Reusable skills, tools, and capability services
|
| 36 |
+
│ ├── memory/ # Raw, abstract, and anchor memories
|
| 37 |
+
│ ├── optimizer/ # Candidate harness-update generation
|
| 38 |
+
│ ├── router/ # Workflow and artifact selection prompts
|
| 39 |
+
│ └── task_interface/ # Shared task structuring interface
|
| 40 |
+
├── configs/ # Paper experiment and task-stream profiles
|
| 41 |
+
├── data/ # Expected external dataset layout
|
| 42 |
+
├── examples/ # Minimal synthetic task-stream fixtures
|
| 43 |
+
├── tests/ # Offline unit and regression tests
|
| 44 |
+
├── scripts/ # Utility and integration scripts
|
| 45 |
+
├── experiments/
|
| 46 |
+
│ ├── HCL_ALFworld/ # ALFWorld integration
|
| 47 |
+
│ └── Odyssey/ # Minecraft/Odyssey integration
|
| 48 |
+
├── docs/assets/ # README figures
|
| 49 |
+
├── main.py # Main experiment entry point
|
| 50 |
+
├── run.sh # Reference launch script
|
| 51 |
+
├── requirements.txt
|
| 52 |
+
└── pyproject.toml
|
| 53 |
+
```
|
| 54 |
+
|
| 55 |
+
The core implementation is exposed at the repository root, following the same entry-point-oriented layout as DFA-MoE. ALFWorld and Odyssey retain isolated environments because their simulator dependencies are incompatible with parts of the core stack.
|
| 56 |
+
|
| 57 |
+
## Installation
|
| 58 |
+
|
| 59 |
+
### Core environment
|
| 60 |
+
|
| 61 |
+
Python 3.10 or later is required.
|
| 62 |
+
|
| 63 |
+
```bash
|
| 64 |
+
git clone https://github.com/RL-MIND/Harness-Continual-Learning.git
|
| 65 |
+
cd HCL
|
| 66 |
+
python3 -m venv .venv
|
| 67 |
+
source .venv/bin/activate
|
| 68 |
+
python -m pip install --upgrade pip
|
| 69 |
+
python -m pip install -r requirements.txt
|
| 70 |
+
```
|
| 71 |
+
|
| 72 |
+
Install optional dependencies only when needed:
|
| 73 |
+
|
| 74 |
+
```bash
|
| 75 |
+
# Local Transformers models
|
| 76 |
+
python -m pip install -e '.[local-model]'
|
| 77 |
+
|
| 78 |
+
# COCO metrics and development tests
|
| 79 |
+
python -m pip install -e '.[coco-eval,test]'
|
| 80 |
+
```
|
| 81 |
+
|
| 82 |
+
Verify the installation without model or dataset downloads:
|
| 83 |
+
|
| 84 |
+
```bash
|
| 85 |
+
python -m unittest discover -s tests -v
|
| 86 |
+
```
|
| 87 |
+
|
| 88 |
+
## Supported task streams
|
| 89 |
+
|
| 90 |
+
| Modality | Task stream | Tasks |
|
| 91 |
+
| --- | --- | --- |
|
| 92 |
+
| Textual reasoning | `configs/taskstream_textual_main_250_50_500.json` | MuSiQue, ProofWriter, GSM8K, HotpotQA |
|
| 93 |
+
| Multimodal | `configs/taskstream_multimodal_main_250_50_500.json` | COCO detection, COCO captioning, RefCOCO grounding, VQAv2 |
|
| 94 |
+
| Embodied | `experiments/HCL_ALFworld/` | ALFWorld domain-incremental sequences |
|
| 95 |
+
| Open world | `experiments/Odyssey/` | Minecraft/Odyssey curriculum tasks |
|
| 96 |
+
|
| 97 |
+
Datasets and model checkpoints are not redistributed. Prepare them under `data/` according to [the data layout](data/README.md), or update the project-relative paths in the selected task-stream file.
|
| 98 |
+
|
| 99 |
+
## Quick start
|
| 100 |
+
|
| 101 |
+
### Run a textual HCL experiment
|
| 102 |
+
|
| 103 |
+
The following profile runs Stability-HCL with a Qwen3-4B main model:
|
| 104 |
+
|
| 105 |
+
```bash
|
| 106 |
+
python main.py \
|
| 107 |
+
--config configs/run_stability_hcl_01_4b.json \
|
| 108 |
+
--splits train,test
|
| 109 |
+
```
|
| 110 |
+
|
| 111 |
+
The equivalent installed command is:
|
| 112 |
+
|
| 113 |
+
```bash
|
| 114 |
+
hcl run \
|
| 115 |
+
--config configs/run_stability_hcl_01_4b.json \
|
| 116 |
+
--splits train,test
|
| 117 |
+
```
|
| 118 |
+
|
| 119 |
+
Use `--limit-per-task` for a small integration run, and use `--method` to override the method declared by a profile:
|
| 120 |
+
|
| 121 |
+
```bash
|
| 122 |
+
python main.py \
|
| 123 |
+
--config configs/deepseek_flash_reasoning_hcl_stability_250_50_500.json \
|
| 124 |
+
--splits train,test \
|
| 125 |
+
--limit-per-task 5 \
|
| 126 |
+
--method hcl
|
| 127 |
+
```
|
| 128 |
+
|
| 129 |
+
`run.sh` is a reference wrapper around the same entry point. Its first argument may be a configuration path; remaining arguments are forwarded to `main.py`.
|
| 130 |
+
|
| 131 |
+
### Run the baselines
|
| 132 |
+
|
| 133 |
+
Use the checked-in baseline profiles directly:
|
| 134 |
+
|
| 135 |
+
```bash
|
| 136 |
+
# Zero-shot
|
| 137 |
+
python main.py --config configs/deepseek_flash_reasoning_raw_zero_shot_500.json --splits test
|
| 138 |
+
```
|
| 139 |
+
|
| 140 |
+
See [the configuration inventory](configs/README.md) for the complete reasoning, multimodal, budget-sweep, and distillation profile list.
|
| 141 |
+
|
| 142 |
+
## Important configuration options
|
| 143 |
+
|
| 144 |
+
HCL experiments use JSON configurations. The main options are:
|
| 145 |
+
|
| 146 |
+
```json
|
| 147 |
+
{
|
| 148 |
+
"method": "hcl",
|
| 149 |
+
"task_stream_path": "configs/taskstream_textual_main_250_50_500.json",
|
| 150 |
+
"storage_dir": "storage/experiments/example",
|
| 151 |
+
"model": {
|
| 152 |
+
"backend": "chat_completions",
|
| 153 |
+
"name": "model-name",
|
| 154 |
+
"base_url": "http://127.0.0.1:8000",
|
| 155 |
+
"api_key_env": "MODEL_API_KEY"
|
| 156 |
+
},
|
| 157 |
+
"optimizer": {
|
| 158 |
+
"historical_loss_budget": 0
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
```
|
| 162 |
+
|
| 163 |
+
- `model` generates final answers. `judge_model`, `selection_model`, and `memory_model` can assign optimizer, online-selection, and memory operations to different models.
|
| 164 |
+
- `method` selects the HCL update mode. Supported CLI overrides are `hcl` and `hcl_memory`.
|
| 165 |
+
- `optimizer.historical_loss_budget` controls accepted historical degradation; `null` represents $b=\infty$.
|
| 166 |
+
- `storage_dir` contains generated state, metrics, predictions, and checkpoints and must remain under `storage/` when automatic reset is enabled.
|
| 167 |
+
- `task_flow` controls the named train/test phases selected with `--splits`.
|
| 168 |
+
|
| 169 |
+
For hosted OpenAI-compatible endpoints, export the credential named by `api_key_env`; do not place secrets in configuration files:
|
| 170 |
+
|
| 171 |
+
```bash
|
| 172 |
+
export MODEL_API_KEY="your-key"
|
| 173 |
+
```
|
| 174 |
+
|
| 175 |
+
## Experiments
|
| 176 |
+
|
| 177 |
+
### ALFWorld
|
| 178 |
+
|
| 179 |
+
```bash
|
| 180 |
+
cd experiments/HCL_ALFworld
|
| 181 |
+
python3 -m venv .venv
|
| 182 |
+
source .venv/bin/activate
|
| 183 |
+
python -m pip install -e '.[llm]'
|
| 184 |
+
hcl-alfworld --help
|
| 185 |
+
```
|
| 186 |
+
|
| 187 |
+
Use the `local` extra for a local Transformers backend. Profiles are in `configs/`, and domain-incremental sequences are in `sequences/`.
|
| 188 |
+
|
| 189 |
+
### Odyssey / Minecraft
|
| 190 |
+
|
| 191 |
+
```bash
|
| 192 |
+
cd experiments/Odyssey/Odyssey
|
| 193 |
+
python3 -m venv .venv
|
| 194 |
+
source .venv/bin/activate
|
| 195 |
+
python -m pip install -e .
|
| 196 |
+
cp conf/config.example.json conf/config.json
|
| 197 |
+
python harness_cli.py --help
|
| 198 |
+
python harness_curriculum_cli.py --help
|
| 199 |
+
```
|
| 200 |
+
|
| 201 |
+
Odyssey additionally requires its Node/Mineflayer bridge, a reachable Minecraft server, and an OpenAI-compatible model endpoint. Local values can be supplied with `ODYSSEY_*` environment variables; `conf/config.json` is ignored by version control.
|
| 202 |
+
|
| 203 |
+
## Main results
|
| 204 |
+
|
| 205 |
+
The results below follow the order of the experiments in the main paper. Additional analyses reported only in the appendix are not included here.
|
| 206 |
+
|
| 207 |
+
### Open-world capability accumulation
|
| 208 |
+
|
| 209 |
+
#### ALFWorld
|
| 210 |
+
|
| 211 |
+
We evaluate six sequential ALFWorld task categories with a frozen Qwen3.5-9B model. Plasticity-HCL achieves the highest final average success rate, while Stability-HCL retains comparable performance with substantially less forgetting.
|
| 212 |
+
|
| 213 |
+
| Method | Pick | Look | Clean | Heat | Cool | Two-object | Final Avg. $\uparrow$ | Avg. Fgt. (%) $\downarrow$ |
|
| 214 |
+
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
|
| 215 |
+
| Static Harness | 95.80 | 66.70 | 25.80 | 26.10 | 9.50 | 58.80 | 47.12 | — |
|
| 216 |
+
| RAG Baseline | 95.80 | 83.30 | 41.90 | 39.10 | 14.30 | 58.80 | 55.56 | **1.74** |
|
| 217 |
+
| **Stability-HCL (Ours)** | **100.00** | 83.30 | **51.60** | 30.40 | 28.60 | 76.50 | 61.74 | 2.64 |
|
| 218 |
+
| **Plasticity-HCL (Ours)** | **100.00** | 77.80 | 41.90 | 39.10 | 19.00 | **100.00** | **62.98** | 10.94 |
|
| 219 |
+
|
| 220 |
+
#### Minecraft
|
| 221 |
+
|
| 222 |
+
On a 50-task Minecraft curriculum, Plasticity-HCL completes the full sequence in 83 environment actions.
|
| 223 |
+
|
| 224 |
+
### Controlled-stream continual learning
|
| 225 |
+
|
| 226 |
+
We next evaluate HCL on textual reasoning and multimodal perception streams. Each task contains 250 adaptation examples, 50 validation examples, and 500 disjoint test examples.
|
| 227 |
+
|
| 228 |
+
#### Textual reasoning
|
| 229 |
+
|
| 230 |
+
The stream order is MuSiQue $\rightarrow$ ProofWriter $\rightarrow$ GSM8K $\rightarrow$ HotpotQA, using frozen DeepSeek-V4.1-Flash. Plasticity-HCL obtains the best final average performance of 76.10%.
|
| 231 |
+
|
| 232 |
+
| Method | MuSiQue | ProofWriter | GSM8K | HotpotQA | Final Avg. $\uparrow$ | Avg. Fgt. (%) $\downarrow$ |
|
| 233 |
+
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
|
| 234 |
+
| Zero-shot | 48.00 | 79.20 | 65.20 | 62.20 | 63.65 | — |
|
| 235 |
+
| **Plasticity-HCL (Ours)** | **58.60** | **85.60** | **96.00** | **64.20** | **76.10** | 0.40 |
|
| 236 |
+
| **Stability-HCL (Ours)** | 53.60 | 82.80 | 82.60 | 63.60 | 70.65 | 0.27 |
|
| 237 |
+
|
| 238 |
+
#### Multimodal perception
|
| 239 |
+
|
| 240 |
+
The stream order is COCO detection $\rightarrow$ COCO captioning $\rightarrow$ RefCOCO grounding $\rightarrow$ VQAv2, using frozen Qwen3.6-27B. Stability-HCL achieves the best final mean of 68.92 with only 0.22% average forgetting.
|
| 241 |
+
|
| 242 |
+
| Method | Detection | Caption | Grounding | VQAv2 | Final Mean $\uparrow$ | Avg. Fgt. (%) $\downarrow$ |
|
| 243 |
+
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
|
| 244 |
+
| Zero-shot | 37.52 | 21.10 | 43.00 | **85.47** | 46.77 | — |
|
| 245 |
+
| **Plasticity-HCL (Ours)** | 64.14 | 37.31 | 90.60 | 79.80 | 67.96 | 0.81 |
|
| 246 |
+
| **Stability-HCL (Ours)** | **65.34** | **39.41** | **91.60** | 79.33 | **68.92** | 0.22 |
|
| 247 |
+
|
| 248 |
+
### Stability–plasticity control
|
| 249 |
+
|
| 250 |
+
We vary the historical-loss budget over $b\in\{0,1,3,\infty\}$ while holding the current-improvement and validity criteria fixed. The strict setting $b=0$ minimizes forgetting, whereas a small tolerance of $b=1$ produces the best final average accuracy. Further relaxation degrades both final accuracy and retention.
|
| 251 |
+
|
| 252 |
+
| Historical-loss budget $b$ | MuSiQue | ProofWriter | GSM8K | HotpotQA | Final Avg. $\uparrow$ | Avg. Fgt. (%) $\downarrow$ |
|
| 253 |
+
| ---: | ---: | ---: | ---: | ---: | ---: | ---: |
|
| 254 |
+
| $0$ | 27.83 | 73.33 | 84.33 | **59.50** | 61.25 | **0.39** |
|
| 255 |
+
| $1$ | 24.83 | 77.50 | **92.33** | 59.17 | **63.46** | 1.22 |
|
| 256 |
+
| $3$ | 26.83 | **79.83** | 83.00 | 58.50 | 62.04 | 2.00 |
|
| 257 |
+
| $\infty$ | **28.33** | 71.00 | 82.00 | 59.17 | 60.13 | 3.45 |
|
| 258 |
+
|
| 259 |
+
### External-model assistance
|
| 260 |
+
|
| 261 |
+
Base-HCL uses Qwen3-4B throughout. Opt-HCL uses Qwen3.6-27B only to generate candidate harness updates, whereas Online-HCL uses the stronger model for per-example online harness operations. Opt-HCL improves final average accuracy from 35.10% to 45.75% while maintaining latency comparable to Base-HCL; Online-HCL reaches 44.80% but incurs substantially higher online latency.
|
| 262 |
+
|
| 263 |
+
<p align="center">
|
| 264 |
+
<img src="docs/assets/distillation-results.png" alt="Accuracy and latency under different placements of stronger-model assistance" width="900">
|
| 265 |
+
</p>
|
| 266 |
+
|
| 267 |
+
### Component ablation
|
| 268 |
+
|
| 269 |
+
On the controlled multimodal stream with frozen Qwen3.5-4B, each ablation keeps one component available during execution but freezes its persistent updates. All four components contribute to continual adaptation, with freezing Experience Memory causing the largest reduction in final average performance and the most forgetting.
|
| 270 |
+
|
| 271 |
+
| Variant | Interface | Memory | Capability | Router | Final Avg. $\uparrow$ | Avg. Fgt. (%) $\downarrow$ |
|
| 272 |
+
| --- | :---: | :---: | :---: | :---: | ---: | ---: |
|
| 273 |
+
| Zero-shot | — | — | — | — | 34.84 | — |
|
| 274 |
+
| w/o Interface update | ✗ | ✓ | ✓ | ✓ | 62.37 | 0.11 |
|
| 275 |
+
| w/o Memory update | ✓ | ✗ | ✓ | ✓ | 62.28 | 0.83 |
|
| 276 |
+
| w/o Capability update | ✓ | ✓ | ✗ | ✓ | 63.12 | **0.06** |
|
| 277 |
+
| w/o Router update | ✓ | ✓ | ✓ | ✗ | 62.77 | 0.14 |
|
| 278 |
+
| **Plasticity-HCL** | ✓ | ✓ | ✓ | ✓ | **63.41** | 0.45 |
|
| 279 |
+
|
| 280 |
+
## Notes
|
| 281 |
+
|
| 282 |
+
- `main.py`, the installed `hcl` command, and `run.sh` are the recommended core entry points.
|
| 283 |
+
- Generated logs, predictions, checkpoints, caches, simulator state, and credentials are intentionally excluded.
|
| 284 |
+
- Some configuration filenames retain original GPU scheduling labels; the configurations themselves use portable paths and do not require that device index.
|
| 285 |
+
- The ALFWorld and Odyssey environments should be installed separately from the core environment.
|
| 286 |
+
|
| 287 |
+
## Citation
|
| 288 |
+
|
| 289 |
+
If you find this repository useful, please cite the HCL paper:
|
| 290 |
+
|
| 291 |
+
```bibtex
|
| 292 |
+
@misc{kang2026harnesscontinuallearning,
|
| 293 |
+
title = {Harness Continual Learning: Continual Adaptation Beyond Model Parameters},
|
| 294 |
+
author = {Borui Kang and Jinrui Gu and Junhan Lv and Wenbin Li and Lei Wang and Yang Gao},
|
| 295 |
+
year = {2026},
|
| 296 |
+
eprint = {2608.19013},
|
| 297 |
+
archivePrefix = {arXiv},
|
| 298 |
+
primaryClass = {cs.LG},
|
| 299 |
+
url = {https://arxiv.org/abs/2608.19013}
|
| 300 |
+
}
|
| 301 |
+
```
|
| 302 |
+
|
| 303 |
+
## License and acknowledgements
|
| 304 |
+
|
| 305 |
+
The core HCL implementation is released under the [MIT License](LICENSE). The integrations under `experiments/` build on ALFWorld, Odyssey, Mineflayer, and related third-party components; consult their respective licenses before redistribution.
|
configs/README.md
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Experiment configuration inventory
|
| 2 |
+
|
| 3 |
+
This directory contains the textual-reasoning and multimodal configurations retained for reproducibility. Interactive ALFWorld and Minecraft configurations live under the repository's `experiments/` directory. No metrics, predictions, logs, checkpoints, figures, or other prior-run outputs are included.
|
| 4 |
+
|
| 5 |
+
## Path convention
|
| 6 |
+
|
| 7 |
+
- `configs/taskstream_textual_main_250_50_500.json`: included portable manifest for MuSiQue, ProofWriter, GSM8K, and HotpotQA.
|
| 8 |
+
- `configs/taskstream_multimodal_main_250_50_500.json`: included portable manifest for COCO detection, COCO captioning, RefCOCO grounding, and VQAv2.
|
| 9 |
+
- `data/datasets/`: externally supplied dataset splits.
|
| 10 |
+
- `storage/experiments/<configuration-name>/`: generated logs, caches, checkpoints, manifests, and predictions. `storage/` is ignored by Git.
|
| 11 |
+
|
| 12 |
+
Relative paths are resolved from the repository root by the CLI configuration loader.
|
| 13 |
+
|
| 14 |
+
## HCL reasoning experiments
|
| 15 |
+
|
| 16 |
+
- `deepseek_flash_reasoning_hcl_plasticity_250_50_500.json`
|
| 17 |
+
- `deepseek_flash_reasoning_hcl_stability_250_50_500.json`
|
| 18 |
+
- `qwen36_27b_reasoning_hcl_stability_capabilities_250_50_500.json`
|
| 19 |
+
|
| 20 |
+
## Independent textual historical-loss-budget sweep
|
| 21 |
+
|
| 22 |
+
- `deepseek_v4_flash_textual_budget_b0_300_80_80_600.json`
|
| 23 |
+
- `deepseek_v4_flash_textual_budget_b1_300_80_80_600.json`
|
| 24 |
+
- `deepseek_v4_flash_textual_budget_b3_300_80_80_600.json`
|
| 25 |
+
- `deepseek_v4_flash_textual_budget_binf_300_80_80_600.json`
|
| 26 |
+
- `taskstream_textual_budget_300_80_80_600.json`
|
| 27 |
+
|
| 28 |
+
These four runnable profiles use frozen DeepSeek-V4-Flash, the paper's 300 adaptation / 80 validation / 80 historical-anchor / 600 test allocation, and ten 30-example update batches per task stage. The profiles are identical in experimental settings except for `optimizer.historical_loss_budget`, which is 0, 1, 3, or `null` ($B_n=\infty$). The optimizer generates three alternatives inside each update opportunity, matching the recovered experiment configuration; that internal multiplicity is distinct from the paper's count of ten proposal opportunities per task stage.
|
| 29 |
+
|
| 30 |
+
## Distillation comparison experiments
|
| 31 |
+
|
| 32 |
+
- `run_stability_hcl_01_4b.json` (`Base-HCL`): Qwen3-4B performs final answering, online structuring and selection, optimizer candidate generation, and memory operations.
|
| 33 |
+
- `run_stability_hcl_02_4b_opt27b.json` (`Opt-HCL`): Qwen3.6-27B generates optimizer candidates; Qwen3-4B retains all online and memory roles.
|
| 34 |
+
- `run_stability_hcl_03_4b_teacher27b.json` (`Online-HCL`): Qwen3.6-27B performs online task structuring, workflow and artifact selection, and memory operations; Qwen3-4B retains final answering and optimizer candidate generation.
|
| 35 |
+
- `taskstream_textual_main_250_50_500.json`: the portable MuSiQue, ProofWriter, GSM8K, and HotpotQA task stream shared by all three runs.
|
| 36 |
+
|
| 37 |
+
The three profiles share the same Stability-HCL gate, three optimizable components, candidate budget, task stream, data allocation, memory limits, and update schedule. With a batch size of 300 and 250 adaptation examples per task, each task stage has one optimizer update opportunity. The `selection_model` and `memory_model` fields make the Online-HCL role split explicit; when absent, both roles fall back to the main model.
|
| 38 |
+
|
| 39 |
+
The local checkpoints are expected at `models/Qwen3-4B/` and `models/Qwen3.6-27B/`. These directories are not included. Paths can be changed to checkpoints supplied by the evaluation environment without changing the experimental method or hyperparameters.
|
| 40 |
+
|
| 41 |
+
## Reasoning baselines
|
| 42 |
+
|
| 43 |
+
- `deepseek_flash_reasoning_raw_zero_shot_500.json`
|
| 44 |
+
|
| 45 |
+
## Multimodal experiments and baselines
|
| 46 |
+
|
| 47 |
+
- `qwen36_27b_coco_gpu1_direct_raw_zero_shot_500.json`
|
| 48 |
+
- `qwen36_27b_coco_gpu1_v0_harness_500.json`
|
| 49 |
+
- `qwen36_27b_coco_gpu1_hcl_plasticity_250_50_500.json`
|
| 50 |
+
- `qwen36_27b_coco_gpu1_hcl_stability_250_50_500.json`
|
| 51 |
+
|
| 52 |
+
## Task-stream configurations
|
| 53 |
+
|
| 54 |
+
- `taskstream_textual_main_250_50_500.json`
|
| 55 |
+
- `taskstream_multimodal_main_250_50_500.json`
|
| 56 |
+
- `taskstream_textual_budget_300_80_80_600.json`
|
| 57 |
+
|
| 58 |
+
Configuration filenames containing a GPU number preserve the original experiment-to-device scheduling label. They contain no hostname, username, institution, filesystem location, or hardware identifier unique to the authors, and do not require that same device number when reproduced.
|
| 59 |
+
|
| 60 |
+
The previous component-ablation matrix is intentionally not included as a paper configuration: it used Qwen3.6-27B and disabled runtime components, whereas the paper specifies Qwen3.5-4B and freezes only persistent updates while keeping each component available. A search of the additional experiment server found no Qwen3.5-4B four-way persistent-update-freeze configuration, so this remains unresolved rather than being approximated.
|
| 61 |
+
|
| 62 |
+
The stronger-model comparison is the Stability-HCL series above. Earlier `run_paper_*` profiles represented a separate four-run study and are intentionally excluded to avoid conflating that study with the paper's Base/Opt/Online comparison.
|
configs/coco_stability_125_50_250_local.json
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "Qwen3.6-27B COCO HCL stability 125-50-250 local validation",
|
| 3 |
+
"model": {
|
| 4 |
+
"backend": "chat_completions",
|
| 5 |
+
"name": "qwen3.6-27b-coco-ablation-gpu3",
|
| 6 |
+
"paper_model_name": "Qwen3.6-27B",
|
| 7 |
+
"base_url": "http://127.0.0.1:8017",
|
| 8 |
+
"api_key": "EMPTY",
|
| 9 |
+
"max_new_tokens": 2048,
|
| 10 |
+
"answer_max_new_tokens": 1024,
|
| 11 |
+
"temperature": 0.0,
|
| 12 |
+
"cleanup_output": true,
|
| 13 |
+
"enable_image_input": true,
|
| 14 |
+
"chat_template_kwargs": {
|
| 15 |
+
"enable_thinking": false
|
| 16 |
+
},
|
| 17 |
+
"json_object_for_structured_phases": true,
|
| 18 |
+
"system_prompt": "You are a concise multimodal reasoning assistant. Inspect the supplied image directly, follow the requested output schema exactly, and output only the final answer.",
|
| 19 |
+
"timeout_seconds": 600,
|
| 20 |
+
"max_retries": 20,
|
| 21 |
+
"log_path": "storage/experiments/coco_stability_125_50_250_local/llm_calls.txt",
|
| 22 |
+
"log_prompt_chars": 8000
|
| 23 |
+
},
|
| 24 |
+
"execution": {
|
| 25 |
+
"read_only_workers": 2,
|
| 26 |
+
"run_train_final": true
|
| 27 |
+
},
|
| 28 |
+
"task_interface": {
|
| 29 |
+
"mode": "auto",
|
| 30 |
+
"max_new_tokens": 640,
|
| 31 |
+
"invalid_output_retries": 1,
|
| 32 |
+
"retry_max_new_tokens": 1024,
|
| 33 |
+
"fallback_to_rules_on_invalid": true
|
| 34 |
+
},
|
| 35 |
+
"router": {
|
| 36 |
+
"route_name": "qwen36_27b_coco_gpu3_hcl_stability",
|
| 37 |
+
"strip_output": true,
|
| 38 |
+
"use_llm_workflow_selector": true,
|
| 39 |
+
"use_memory_selector": true,
|
| 40 |
+
"memory_always_on": true,
|
| 41 |
+
"use_skill_selector": true,
|
| 42 |
+
"use_tool_selector": false,
|
| 43 |
+
"tool_auto_select": false,
|
| 44 |
+
"use_chat_tool_calls": false,
|
| 45 |
+
"memory_selector_max_new_tokens": 256,
|
| 46 |
+
"memory_selector_invalid_output_retries": 1,
|
| 47 |
+
"memory_selector_retry_max_new_tokens": 256,
|
| 48 |
+
"skill_selector_max_new_tokens": 256,
|
| 49 |
+
"skill_selector_invalid_output_retries": 1,
|
| 50 |
+
"skill_selector_retry_max_new_tokens": 256,
|
| 51 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 52 |
+
"capability_enabled": false,
|
| 53 |
+
"capability_execution_mode": "disabled"
|
| 54 |
+
},
|
| 55 |
+
"optimizer": {
|
| 56 |
+
"candidate_count": 3,
|
| 57 |
+
"selection_objective": "plasticity",
|
| 58 |
+
"commit_policy": "plasticity_first",
|
| 59 |
+
"historical_loss_budget": 0,
|
| 60 |
+
"max_forget_count": 0,
|
| 61 |
+
"min_primary_score_delta": 1e-09,
|
| 62 |
+
"min_correct_gain": 0,
|
| 63 |
+
"min_format_compliance_rate": 1.0,
|
| 64 |
+
"recover_reward": 1.0,
|
| 65 |
+
"forget_penalty": 1.5,
|
| 66 |
+
"min_anchor_score": -5.0,
|
| 67 |
+
"min_anchor_net_score": -0.1,
|
| 68 |
+
"max_anchor_forget_rate": 0.2,
|
| 69 |
+
"components": [
|
| 70 |
+
"task_interface_structuring",
|
| 71 |
+
"router_workflow",
|
| 72 |
+
"memory_selector",
|
| 73 |
+
"router_context"
|
| 74 |
+
]
|
| 75 |
+
},
|
| 76 |
+
"memory": {
|
| 77 |
+
"enabled": true,
|
| 78 |
+
"raw_capacity_per_task": 10,
|
| 79 |
+
"abstract_capacity_per_task": 2,
|
| 80 |
+
"anchor_capacity_per_task": 25,
|
| 81 |
+
"retrieval_top_k": 2,
|
| 82 |
+
"reset_on_start": false,
|
| 83 |
+
"abstract_mode": "llm",
|
| 84 |
+
"abstract_max_new_tokens": 512,
|
| 85 |
+
"anchor_selection_mode": "llm",
|
| 86 |
+
"anchor_count_per_batch": 2,
|
| 87 |
+
"anchor_candidate_limit": 10,
|
| 88 |
+
"anchor_selection_max_new_tokens": 128,
|
| 89 |
+
"skill_enabled": true,
|
| 90 |
+
"skill_mode": "llm",
|
| 91 |
+
"abstract_prompt_max_chars": 12000
|
| 92 |
+
},
|
| 93 |
+
"forgetting_probe": {
|
| 94 |
+
"enabled": true,
|
| 95 |
+
"interval_batches": 2,
|
| 96 |
+
"samples_per_task": 100,
|
| 97 |
+
"target_correct_ratio": 0.8,
|
| 98 |
+
"seed": 20260726,
|
| 99 |
+
"split": "test",
|
| 100 |
+
"historical_tasks_only": true,
|
| 101 |
+
"reuse_probe_set": true,
|
| 102 |
+
"record_predictions": false
|
| 103 |
+
},
|
| 104 |
+
"task_stream_path": "configs/taskstream_multimodal_main_250_50_500.json",
|
| 105 |
+
"reset_run_on_start": false,
|
| 106 |
+
"storage_dir": "storage/experiments/coco_stability_125_50_250_local",
|
| 107 |
+
"prediction_cache": {
|
| 108 |
+
"enabled": true,
|
| 109 |
+
"path": "storage/experiments/coco_stability_125_50_250_local/prediction_cache/read_only_predictions.jsonl"
|
| 110 |
+
},
|
| 111 |
+
"checkpoint": {
|
| 112 |
+
"enabled": true,
|
| 113 |
+
"path": "storage/experiments/coco_stability_125_50_250_local/checkpoint.json",
|
| 114 |
+
"resume": true
|
| 115 |
+
},
|
| 116 |
+
"task_flow": [
|
| 117 |
+
{
|
| 118 |
+
"name": "train",
|
| 119 |
+
"phase": "train",
|
| 120 |
+
"train_split": "train",
|
| 121 |
+
"val_split": "validation",
|
| 122 |
+
"test_split": "test",
|
| 123 |
+
"continual": true,
|
| 124 |
+
"batchsize": 25,
|
| 125 |
+
"train_limit_per_task": 125,
|
| 126 |
+
"validation_limit_per_task": 50,
|
| 127 |
+
"test_limit_per_task": 250
|
| 128 |
+
},
|
| 129 |
+
{
|
| 130 |
+
"name": "test",
|
| 131 |
+
"phase": "test",
|
| 132 |
+
"test_split": "test",
|
| 133 |
+
"test_limit_per_task": 250,
|
| 134 |
+
"group_by_task": true
|
| 135 |
+
}
|
| 136 |
+
]
|
| 137 |
+
}
|
configs/deepseek_flash_reasoning_hcl_plasticity_250_50_500.json
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "DeepSeek-V4.1-Flash reasoning HCL plasticity 250-50-500",
|
| 3 |
+
"model": {
|
| 4 |
+
"backend": "chat_completions",
|
| 5 |
+
"name": "deepseek-flash",
|
| 6 |
+
"paper_model_name": "DeepSeek-V4.1-Flash",
|
| 7 |
+
"base_url": "https://api.deepseek.com",
|
| 8 |
+
"api_key_env": "DEEPSEEK_API_KEY",
|
| 9 |
+
"max_new_tokens": 1024,
|
| 10 |
+
"answer_max_new_tokens": 512,
|
| 11 |
+
"temperature": 0.0,
|
| 12 |
+
"thinking": {
|
| 13 |
+
"type": "disabled"
|
| 14 |
+
},
|
| 15 |
+
"cleanup_output": true,
|
| 16 |
+
"json_object_for_structured_phases": false,
|
| 17 |
+
"system_prompt": "You are a concise reasoning assistant. Follow the requested output schema and return only the final answer.",
|
| 18 |
+
"timeout_seconds": 600,
|
| 19 |
+
"max_retries": 10,
|
| 20 |
+
"log_path": "storage/experiments/deepseek_flash_reasoning_hcl_plasticity_250_50_500/llm_calls.txt",
|
| 21 |
+
"log_prompt_chars": 12000
|
| 22 |
+
},
|
| 23 |
+
"execution": {
|
| 24 |
+
"read_only_workers": 1,
|
| 25 |
+
"run_train_final": true
|
| 26 |
+
},
|
| 27 |
+
"task_interface": {
|
| 28 |
+
"mode": "llm",
|
| 29 |
+
"max_new_tokens": 768,
|
| 30 |
+
"invalid_output_retries": 1,
|
| 31 |
+
"retry_max_new_tokens": 768,
|
| 32 |
+
"fallback_to_rules_on_invalid": true,
|
| 33 |
+
"long_context_rule_threshold_chars": 8192
|
| 34 |
+
},
|
| 35 |
+
"router": {
|
| 36 |
+
"route_name": "deepseek_flash_reasoning_hcl_plasticity",
|
| 37 |
+
"strip_output": true,
|
| 38 |
+
"use_llm_workflow_selector": true,
|
| 39 |
+
"use_memory_selector": true,
|
| 40 |
+
"memory_always_on": false,
|
| 41 |
+
"use_skill_selector": true,
|
| 42 |
+
"use_tool_selector": false,
|
| 43 |
+
"tool_auto_select": false,
|
| 44 |
+
"use_chat_tool_calls": false,
|
| 45 |
+
"tool_max_rounds": 0,
|
| 46 |
+
"workflow_selector_max_new_tokens": 512,
|
| 47 |
+
"memory_selector_max_new_tokens": 256,
|
| 48 |
+
"memory_selector_invalid_output_retries": 1,
|
| 49 |
+
"memory_selector_retry_max_new_tokens": 256,
|
| 50 |
+
"skill_selector_max_new_tokens": 256,
|
| 51 |
+
"skill_selector_invalid_output_retries": 1,
|
| 52 |
+
"skill_selector_retry_max_new_tokens": 256,
|
| 53 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 54 |
+
"capability_enabled": false,
|
| 55 |
+
"capability_execution_mode": "disabled",
|
| 56 |
+
"capability_service_url": null,
|
| 57 |
+
"semantic_search_enabled": false,
|
| 58 |
+
"cross_modal_match_enabled": false
|
| 59 |
+
},
|
| 60 |
+
"optimizer": {
|
| 61 |
+
"candidate_count": 3,
|
| 62 |
+
"selection_objective": "plasticity",
|
| 63 |
+
"commit_policy": "plasticity_first",
|
| 64 |
+
"historical_loss_budget": null,
|
| 65 |
+
"min_primary_score_delta": 1e-09,
|
| 66 |
+
"min_correct_gain": 0,
|
| 67 |
+
"max_forget_count": 0,
|
| 68 |
+
"min_format_compliance_rate": 1.0,
|
| 69 |
+
"recover_reward": 1.0,
|
| 70 |
+
"forget_penalty": 1.5,
|
| 71 |
+
"min_anchor_score": -5.0,
|
| 72 |
+
"min_anchor_net_score": -0.1,
|
| 73 |
+
"max_anchor_forget_rate": 0.2,
|
| 74 |
+
"components": [
|
| 75 |
+
"task_interface_structuring",
|
| 76 |
+
"router_workflow",
|
| 77 |
+
"memory_selector",
|
| 78 |
+
"router_context"
|
| 79 |
+
]
|
| 80 |
+
},
|
| 81 |
+
"memory": {
|
| 82 |
+
"enabled": true,
|
| 83 |
+
"raw_capacity_per_task": 10,
|
| 84 |
+
"abstract_capacity_per_task": 2,
|
| 85 |
+
"anchor_capacity_per_task": 25,
|
| 86 |
+
"retrieval_top_k": 2,
|
| 87 |
+
"reset_on_start": false,
|
| 88 |
+
"abstract_mode": "llm",
|
| 89 |
+
"abstract_max_new_tokens": 512,
|
| 90 |
+
"anchor_selection_mode": "llm",
|
| 91 |
+
"anchor_count_per_batch": 2,
|
| 92 |
+
"anchor_candidate_limit": 10,
|
| 93 |
+
"anchor_selection_max_new_tokens": 256,
|
| 94 |
+
"skill_enabled": true,
|
| 95 |
+
"skill_mode": "llm",
|
| 96 |
+
"abstract_prompt_max_chars": 12000
|
| 97 |
+
},
|
| 98 |
+
"forgetting_probe": {
|
| 99 |
+
"enabled": true,
|
| 100 |
+
"interval_batches": 2,
|
| 101 |
+
"samples_per_task": 100,
|
| 102 |
+
"target_correct_ratio": 0.8,
|
| 103 |
+
"seed": 20260726,
|
| 104 |
+
"split": "test",
|
| 105 |
+
"historical_tasks_only": true,
|
| 106 |
+
"reuse_probe_set": true,
|
| 107 |
+
"record_predictions": false
|
| 108 |
+
},
|
| 109 |
+
"task_stream_path": "configs/taskstream_textual_main_250_50_500.json",
|
| 110 |
+
"reset_run_on_start": false,
|
| 111 |
+
"storage_dir": "storage/experiments/deepseek_flash_reasoning_hcl_plasticity_250_50_500",
|
| 112 |
+
"prediction_cache": {
|
| 113 |
+
"enabled": true,
|
| 114 |
+
"path": "storage/experiments/deepseek_flash_reasoning_hcl_plasticity_250_50_500/prediction_cache/prediction_cache.jsonl"
|
| 115 |
+
},
|
| 116 |
+
"checkpoint": {
|
| 117 |
+
"enabled": true,
|
| 118 |
+
"path": "storage/experiments/deepseek_flash_reasoning_hcl_plasticity_250_50_500/checkpoint.json",
|
| 119 |
+
"resume": true
|
| 120 |
+
},
|
| 121 |
+
"task_flow": [
|
| 122 |
+
{
|
| 123 |
+
"name": "train",
|
| 124 |
+
"phase": "train",
|
| 125 |
+
"train_split": "train",
|
| 126 |
+
"val_split": "validation",
|
| 127 |
+
"test_split": "test",
|
| 128 |
+
"continual": true,
|
| 129 |
+
"batchsize": 25,
|
| 130 |
+
"train_limit_per_task": 250,
|
| 131 |
+
"validation_limit_per_task": 50,
|
| 132 |
+
"test_limit_per_task": 500
|
| 133 |
+
},
|
| 134 |
+
{
|
| 135 |
+
"name": "test",
|
| 136 |
+
"phase": "test",
|
| 137 |
+
"test_split": "test",
|
| 138 |
+
"test_limit_per_task": 500,
|
| 139 |
+
"group_by_task": true
|
| 140 |
+
}
|
| 141 |
+
]
|
| 142 |
+
}
|
configs/deepseek_flash_reasoning_hcl_stability_250_50_500.json
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "DeepSeek-V4.1-Flash reasoning HCL stability 250-50-500",
|
| 3 |
+
"model": {
|
| 4 |
+
"backend": "chat_completions",
|
| 5 |
+
"name": "deepseek-flash",
|
| 6 |
+
"paper_model_name": "DeepSeek-V4.1-Flash",
|
| 7 |
+
"base_url": "https://api.deepseek.com",
|
| 8 |
+
"api_key_env": "DEEPSEEK_API_KEY",
|
| 9 |
+
"max_new_tokens": 1024,
|
| 10 |
+
"answer_max_new_tokens": 512,
|
| 11 |
+
"temperature": 0.0,
|
| 12 |
+
"thinking": {
|
| 13 |
+
"type": "disabled"
|
| 14 |
+
},
|
| 15 |
+
"cleanup_output": true,
|
| 16 |
+
"json_object_for_structured_phases": false,
|
| 17 |
+
"system_prompt": "You are a concise reasoning assistant. Follow the requested output schema and return only the final answer.",
|
| 18 |
+
"timeout_seconds": 600,
|
| 19 |
+
"max_retries": 10,
|
| 20 |
+
"log_path": "storage/experiments/deepseek_flash_reasoning_hcl_stability_250_50_500/llm_calls.txt",
|
| 21 |
+
"log_prompt_chars": 12000
|
| 22 |
+
},
|
| 23 |
+
"execution": {
|
| 24 |
+
"read_only_workers": 1,
|
| 25 |
+
"run_train_final": true
|
| 26 |
+
},
|
| 27 |
+
"task_interface": {
|
| 28 |
+
"mode": "llm",
|
| 29 |
+
"max_new_tokens": 768,
|
| 30 |
+
"invalid_output_retries": 1,
|
| 31 |
+
"retry_max_new_tokens": 768,
|
| 32 |
+
"fallback_to_rules_on_invalid": true,
|
| 33 |
+
"long_context_rule_threshold_chars": 8192
|
| 34 |
+
},
|
| 35 |
+
"router": {
|
| 36 |
+
"route_name": "deepseek_flash_reasoning_hcl_stability",
|
| 37 |
+
"strip_output": true,
|
| 38 |
+
"use_llm_workflow_selector": true,
|
| 39 |
+
"use_memory_selector": true,
|
| 40 |
+
"memory_always_on": false,
|
| 41 |
+
"use_skill_selector": true,
|
| 42 |
+
"use_tool_selector": false,
|
| 43 |
+
"tool_auto_select": false,
|
| 44 |
+
"use_chat_tool_calls": false,
|
| 45 |
+
"tool_max_rounds": 0,
|
| 46 |
+
"workflow_selector_max_new_tokens": 512,
|
| 47 |
+
"memory_selector_max_new_tokens": 256,
|
| 48 |
+
"memory_selector_invalid_output_retries": 1,
|
| 49 |
+
"memory_selector_retry_max_new_tokens": 256,
|
| 50 |
+
"skill_selector_max_new_tokens": 256,
|
| 51 |
+
"skill_selector_invalid_output_retries": 1,
|
| 52 |
+
"skill_selector_retry_max_new_tokens": 256,
|
| 53 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 54 |
+
"capability_enabled": false,
|
| 55 |
+
"capability_execution_mode": "disabled",
|
| 56 |
+
"capability_service_url": null,
|
| 57 |
+
"semantic_search_enabled": false,
|
| 58 |
+
"cross_modal_match_enabled": false
|
| 59 |
+
},
|
| 60 |
+
"optimizer": {
|
| 61 |
+
"candidate_count": 3,
|
| 62 |
+
"selection_objective": "plasticity",
|
| 63 |
+
"commit_policy": "plasticity_first",
|
| 64 |
+
"historical_loss_budget": 0,
|
| 65 |
+
"min_primary_score_delta": 1e-09,
|
| 66 |
+
"min_correct_gain": 0,
|
| 67 |
+
"max_forget_count": 0,
|
| 68 |
+
"min_format_compliance_rate": 1.0,
|
| 69 |
+
"recover_reward": 1.0,
|
| 70 |
+
"forget_penalty": 1.5,
|
| 71 |
+
"min_anchor_score": -5.0,
|
| 72 |
+
"min_anchor_net_score": -0.1,
|
| 73 |
+
"max_anchor_forget_rate": 0.2,
|
| 74 |
+
"components": [
|
| 75 |
+
"task_interface_structuring",
|
| 76 |
+
"router_workflow",
|
| 77 |
+
"memory_selector",
|
| 78 |
+
"router_context"
|
| 79 |
+
]
|
| 80 |
+
},
|
| 81 |
+
"memory": {
|
| 82 |
+
"enabled": true,
|
| 83 |
+
"raw_capacity_per_task": 10,
|
| 84 |
+
"abstract_capacity_per_task": 2,
|
| 85 |
+
"anchor_capacity_per_task": 25,
|
| 86 |
+
"retrieval_top_k": 2,
|
| 87 |
+
"reset_on_start": false,
|
| 88 |
+
"abstract_mode": "llm",
|
| 89 |
+
"abstract_max_new_tokens": 512,
|
| 90 |
+
"anchor_selection_mode": "llm",
|
| 91 |
+
"anchor_count_per_batch": 2,
|
| 92 |
+
"anchor_candidate_limit": 10,
|
| 93 |
+
"anchor_selection_max_new_tokens": 256,
|
| 94 |
+
"skill_enabled": true,
|
| 95 |
+
"skill_mode": "llm",
|
| 96 |
+
"abstract_prompt_max_chars": 12000
|
| 97 |
+
},
|
| 98 |
+
"forgetting_probe": {
|
| 99 |
+
"enabled": true,
|
| 100 |
+
"interval_batches": 2,
|
| 101 |
+
"samples_per_task": 100,
|
| 102 |
+
"target_correct_ratio": 0.8,
|
| 103 |
+
"seed": 20260726,
|
| 104 |
+
"split": "test",
|
| 105 |
+
"historical_tasks_only": true,
|
| 106 |
+
"reuse_probe_set": true,
|
| 107 |
+
"record_predictions": false
|
| 108 |
+
},
|
| 109 |
+
"task_stream_path": "configs/taskstream_textual_main_250_50_500.json",
|
| 110 |
+
"reset_run_on_start": false,
|
| 111 |
+
"storage_dir": "storage/experiments/deepseek_flash_reasoning_hcl_stability_250_50_500",
|
| 112 |
+
"prediction_cache": {
|
| 113 |
+
"enabled": true,
|
| 114 |
+
"path": "storage/experiments/deepseek_flash_reasoning_hcl_stability_250_50_500/prediction_cache/prediction_cache.jsonl"
|
| 115 |
+
},
|
| 116 |
+
"checkpoint": {
|
| 117 |
+
"enabled": true,
|
| 118 |
+
"path": "storage/experiments/deepseek_flash_reasoning_hcl_stability_250_50_500/checkpoint.json",
|
| 119 |
+
"resume": true
|
| 120 |
+
},
|
| 121 |
+
"task_flow": [
|
| 122 |
+
{
|
| 123 |
+
"name": "train",
|
| 124 |
+
"phase": "train",
|
| 125 |
+
"train_split": "train",
|
| 126 |
+
"val_split": "validation",
|
| 127 |
+
"test_split": "test",
|
| 128 |
+
"continual": true,
|
| 129 |
+
"batchsize": 25,
|
| 130 |
+
"train_limit_per_task": 250,
|
| 131 |
+
"validation_limit_per_task": 50,
|
| 132 |
+
"test_limit_per_task": 500
|
| 133 |
+
},
|
| 134 |
+
{
|
| 135 |
+
"name": "test",
|
| 136 |
+
"phase": "test",
|
| 137 |
+
"test_split": "test",
|
| 138 |
+
"test_limit_per_task": 500,
|
| 139 |
+
"group_by_task": true
|
| 140 |
+
}
|
| 141 |
+
]
|
| 142 |
+
}
|
configs/deepseek_flash_reasoning_raw_zero_shot_500.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "DeepSeek Flash reasoning raw zero-shot 4-task 500-test",
|
| 3 |
+
"task_stream_path": "configs/taskstream_textual_main_250_50_500.json",
|
| 4 |
+
"split": "test",
|
| 5 |
+
"limit_per_task": 500,
|
| 6 |
+
"workers": 4,
|
| 7 |
+
"resume": true,
|
| 8 |
+
"output_dir": "storage/experiments/deepseek_flash_reasoning_raw_zero_shot_500",
|
| 9 |
+
"model": {
|
| 10 |
+
"backend": "chat_completions",
|
| 11 |
+
"name": "deepseek-flash",
|
| 12 |
+
"paper_model_name": "DeepSeek-V4.1-Flash",
|
| 13 |
+
"base_url": "https://api.deepseek.com",
|
| 14 |
+
"api_key_env": "DEEPSEEK_API_KEY",
|
| 15 |
+
"max_new_tokens": 2048,
|
| 16 |
+
"answer_max_new_tokens": 512,
|
| 17 |
+
"temperature": 0.0,
|
| 18 |
+
"thinking": {
|
| 19 |
+
"type": "disabled"
|
| 20 |
+
},
|
| 21 |
+
"cleanup_output": true,
|
| 22 |
+
"enable_image_input": false,
|
| 23 |
+
"system_prompt": "You are a concise reasoning assistant. Follow the requested output format and return only the final answer.",
|
| 24 |
+
"timeout_seconds": 600,
|
| 25 |
+
"max_retries": 10,
|
| 26 |
+
"log_path": "storage/experiments/deepseek_flash_reasoning_raw_zero_shot_500/llm_calls.txt",
|
| 27 |
+
"log_prompt_chars": 12000
|
| 28 |
+
}
|
| 29 |
+
}
|
configs/deepseek_v4_flash_textual_budget_b0_300_80_80_600.json
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "DeepSeek-V4-Flash textual budget sweep b=0 300-80-80-600",
|
| 3 |
+
"model": {
|
| 4 |
+
"backend": "chat_completions",
|
| 5 |
+
"name": "deepseek-v4-flash",
|
| 6 |
+
"paper_model_name": "DeepSeek-V4-Flash",
|
| 7 |
+
"base_url": "https://api.deepseek.com",
|
| 8 |
+
"api_key_env": "DEEPSEEK_API_KEY",
|
| 9 |
+
"max_new_tokens": 2048,
|
| 10 |
+
"answer_max_new_tokens": 512,
|
| 11 |
+
"temperature": 0.0,
|
| 12 |
+
"thinking": {"type": "disabled"},
|
| 13 |
+
"reasoning_effort": null,
|
| 14 |
+
"system_prompt": "You are a concise reasoning assistant. Reason internally and return only the final answer in the requested format.",
|
| 15 |
+
"timeout_seconds": 300,
|
| 16 |
+
"max_retries": 3,
|
| 17 |
+
"cleanup_output": true
|
| 18 |
+
},
|
| 19 |
+
"execution": {
|
| 20 |
+
"read_only_workers": 8,
|
| 21 |
+
"run_train_final": false
|
| 22 |
+
},
|
| 23 |
+
"task_interface": {
|
| 24 |
+
"mode": "llm",
|
| 25 |
+
"max_new_tokens": 2048,
|
| 26 |
+
"invalid_output_retries": 2,
|
| 27 |
+
"retry_max_new_tokens": 2048,
|
| 28 |
+
"fallback_to_rules_on_invalid": true,
|
| 29 |
+
"long_context_rule_threshold_chars": 5000,
|
| 30 |
+
"visible_context_max_chars": 12000,
|
| 31 |
+
"visible_context_max_items": 8
|
| 32 |
+
},
|
| 33 |
+
"router": {
|
| 34 |
+
"route_name": "direct",
|
| 35 |
+
"strip_output": true,
|
| 36 |
+
"use_llm_workflow_selector": true,
|
| 37 |
+
"use_memory_selector": true,
|
| 38 |
+
"memory_always_on": true,
|
| 39 |
+
"use_skill_selector": true,
|
| 40 |
+
"use_tool_selector": true,
|
| 41 |
+
"tool_auto_select": true,
|
| 42 |
+
"use_chat_tool_calls": false,
|
| 43 |
+
"tool_max_rounds": 2,
|
| 44 |
+
"tool_strict_schema": false,
|
| 45 |
+
"tool_js_timeout_seconds": 8.0,
|
| 46 |
+
"skill_selector_max_new_tokens": 512,
|
| 47 |
+
"skill_selector_invalid_output_retries": 2,
|
| 48 |
+
"skill_selector_retry_max_new_tokens": 512,
|
| 49 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 50 |
+
"tool_selector_max_new_tokens": 512,
|
| 51 |
+
"tool_selector_invalid_output_retries": 2,
|
| 52 |
+
"tool_selector_retry_max_new_tokens": 512,
|
| 53 |
+
"tool_selector_fallback_to_empty_on_invalid": true,
|
| 54 |
+
"memory_selector_max_new_tokens": 512,
|
| 55 |
+
"memory_selector_invalid_output_retries": 2,
|
| 56 |
+
"memory_selector_retry_max_new_tokens": 512,
|
| 57 |
+
"memory_selector_fallback_to_empty_on_invalid": true
|
| 58 |
+
},
|
| 59 |
+
"optimizer": {
|
| 60 |
+
"candidate_count": 3,
|
| 61 |
+
"selection_objective": "plasticity",
|
| 62 |
+
"commit_policy": "paper_historical_loss_budget",
|
| 63 |
+
"historical_loss_budget": 0,
|
| 64 |
+
"min_primary_score_delta": 1e-09,
|
| 65 |
+
"min_correct_gain": 2,
|
| 66 |
+
"min_format_compliance_rate": 0.9,
|
| 67 |
+
"selection_mode": "argmax",
|
| 68 |
+
"min_historical_anchor_count": 80,
|
| 69 |
+
"min_historical_anchors_per_task": 80,
|
| 70 |
+
"require_all_historical_tasks": true,
|
| 71 |
+
"min_anchor_evaluation_coverage": 1.0,
|
| 72 |
+
"components": [
|
| 73 |
+
"task_interface_structuring",
|
| 74 |
+
"router_workflow",
|
| 75 |
+
"memory_selector",
|
| 76 |
+
"router_context"
|
| 77 |
+
]
|
| 78 |
+
},
|
| 79 |
+
"memory": {
|
| 80 |
+
"enabled": true,
|
| 81 |
+
"raw_capacity_per_task": 15,
|
| 82 |
+
"abstract_capacity_per_task": 2,
|
| 83 |
+
"abstract_mode": "llm",
|
| 84 |
+
"abstract_max_new_tokens": 512,
|
| 85 |
+
"anchor_capacity_per_task": 80,
|
| 86 |
+
"anchor_selection_mode": "llm",
|
| 87 |
+
"anchor_count_per_batch": 8,
|
| 88 |
+
"anchor_candidate_limit": 80,
|
| 89 |
+
"anchor_selection_max_new_tokens": 256,
|
| 90 |
+
"retrieval_top_k": 2,
|
| 91 |
+
"retrieval_candidate_limit": 12,
|
| 92 |
+
"reset_on_start": true,
|
| 93 |
+
"skill_enabled": true,
|
| 94 |
+
"skill_mode": "llm",
|
| 95 |
+
"skill_max_count": 6,
|
| 96 |
+
"skill_min_source_tasks": 2
|
| 97 |
+
},
|
| 98 |
+
"forgetting_probe": {
|
| 99 |
+
"enabled": true,
|
| 100 |
+
"interval_batches": 2,
|
| 101 |
+
"samples_per_task": 80,
|
| 102 |
+
"target_correct_ratio": 0.8,
|
| 103 |
+
"seed": 20260713,
|
| 104 |
+
"split": "test",
|
| 105 |
+
"historical_tasks_only": true,
|
| 106 |
+
"reuse_probe_set": true,
|
| 107 |
+
"record_predictions": false
|
| 108 |
+
},
|
| 109 |
+
"task_stream_path": "configs/taskstream_textual_budget_300_80_80_600.json",
|
| 110 |
+
"reset_run_on_start": true,
|
| 111 |
+
"storage_dir": "storage/textual_budget_sweep/b0",
|
| 112 |
+
"checkpoint": {
|
| 113 |
+
"enabled": true,
|
| 114 |
+
"path": "storage/textual_budget_sweep/b0/checkpoint.json",
|
| 115 |
+
"resume": true
|
| 116 |
+
},
|
| 117 |
+
"prediction_cache": {
|
| 118 |
+
"enabled": true,
|
| 119 |
+
"path": "storage/textual_budget_sweep/b0/prediction_cache/read_only_predictions.jsonl"
|
| 120 |
+
},
|
| 121 |
+
"task_flow": [
|
| 122 |
+
{
|
| 123 |
+
"name": "train",
|
| 124 |
+
"phase": "train",
|
| 125 |
+
"train_split": "train",
|
| 126 |
+
"val_split": "validation",
|
| 127 |
+
"test_split": "test",
|
| 128 |
+
"continual": true,
|
| 129 |
+
"batchsize": 30,
|
| 130 |
+
"train_limit_per_task": 300,
|
| 131 |
+
"validation_limit_per_task": 80,
|
| 132 |
+
"test_limit_per_task": 600
|
| 133 |
+
},
|
| 134 |
+
{
|
| 135 |
+
"name": "test",
|
| 136 |
+
"phase": "test",
|
| 137 |
+
"test_split": "test",
|
| 138 |
+
"test_limit_per_task": 600,
|
| 139 |
+
"group_by_task": true
|
| 140 |
+
}
|
| 141 |
+
]
|
| 142 |
+
}
|
configs/deepseek_v4_flash_textual_budget_b1_300_80_80_600.json
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "DeepSeek-V4-Flash textual budget sweep b=1 300-80-80-600",
|
| 3 |
+
"model": {
|
| 4 |
+
"backend": "chat_completions",
|
| 5 |
+
"name": "deepseek-v4-flash",
|
| 6 |
+
"paper_model_name": "DeepSeek-V4-Flash",
|
| 7 |
+
"base_url": "https://api.deepseek.com",
|
| 8 |
+
"api_key_env": "DEEPSEEK_API_KEY",
|
| 9 |
+
"max_new_tokens": 2048,
|
| 10 |
+
"answer_max_new_tokens": 512,
|
| 11 |
+
"temperature": 0.0,
|
| 12 |
+
"thinking": {"type": "disabled"},
|
| 13 |
+
"reasoning_effort": null,
|
| 14 |
+
"system_prompt": "You are a concise reasoning assistant. Reason internally and return only the final answer in the requested format.",
|
| 15 |
+
"timeout_seconds": 300,
|
| 16 |
+
"max_retries": 3,
|
| 17 |
+
"cleanup_output": true
|
| 18 |
+
},
|
| 19 |
+
"execution": {
|
| 20 |
+
"read_only_workers": 8,
|
| 21 |
+
"run_train_final": false
|
| 22 |
+
},
|
| 23 |
+
"task_interface": {
|
| 24 |
+
"mode": "llm",
|
| 25 |
+
"max_new_tokens": 2048,
|
| 26 |
+
"invalid_output_retries": 2,
|
| 27 |
+
"retry_max_new_tokens": 2048,
|
| 28 |
+
"fallback_to_rules_on_invalid": true,
|
| 29 |
+
"long_context_rule_threshold_chars": 5000,
|
| 30 |
+
"visible_context_max_chars": 12000,
|
| 31 |
+
"visible_context_max_items": 8
|
| 32 |
+
},
|
| 33 |
+
"router": {
|
| 34 |
+
"route_name": "direct",
|
| 35 |
+
"strip_output": true,
|
| 36 |
+
"use_llm_workflow_selector": true,
|
| 37 |
+
"use_memory_selector": true,
|
| 38 |
+
"memory_always_on": true,
|
| 39 |
+
"use_skill_selector": true,
|
| 40 |
+
"use_tool_selector": true,
|
| 41 |
+
"tool_auto_select": true,
|
| 42 |
+
"use_chat_tool_calls": false,
|
| 43 |
+
"tool_max_rounds": 2,
|
| 44 |
+
"tool_strict_schema": false,
|
| 45 |
+
"tool_js_timeout_seconds": 8.0,
|
| 46 |
+
"skill_selector_max_new_tokens": 512,
|
| 47 |
+
"skill_selector_invalid_output_retries": 2,
|
| 48 |
+
"skill_selector_retry_max_new_tokens": 512,
|
| 49 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 50 |
+
"tool_selector_max_new_tokens": 512,
|
| 51 |
+
"tool_selector_invalid_output_retries": 2,
|
| 52 |
+
"tool_selector_retry_max_new_tokens": 512,
|
| 53 |
+
"tool_selector_fallback_to_empty_on_invalid": true,
|
| 54 |
+
"memory_selector_max_new_tokens": 512,
|
| 55 |
+
"memory_selector_invalid_output_retries": 2,
|
| 56 |
+
"memory_selector_retry_max_new_tokens": 512,
|
| 57 |
+
"memory_selector_fallback_to_empty_on_invalid": true
|
| 58 |
+
},
|
| 59 |
+
"optimizer": {
|
| 60 |
+
"candidate_count": 3,
|
| 61 |
+
"selection_objective": "plasticity",
|
| 62 |
+
"commit_policy": "paper_historical_loss_budget",
|
| 63 |
+
"historical_loss_budget": 1,
|
| 64 |
+
"min_primary_score_delta": 1e-09,
|
| 65 |
+
"min_correct_gain": 2,
|
| 66 |
+
"min_format_compliance_rate": 0.9,
|
| 67 |
+
"selection_mode": "argmax",
|
| 68 |
+
"min_historical_anchor_count": 80,
|
| 69 |
+
"min_historical_anchors_per_task": 80,
|
| 70 |
+
"require_all_historical_tasks": true,
|
| 71 |
+
"min_anchor_evaluation_coverage": 1.0,
|
| 72 |
+
"components": [
|
| 73 |
+
"task_interface_structuring",
|
| 74 |
+
"router_workflow",
|
| 75 |
+
"memory_selector",
|
| 76 |
+
"router_context"
|
| 77 |
+
]
|
| 78 |
+
},
|
| 79 |
+
"memory": {
|
| 80 |
+
"enabled": true,
|
| 81 |
+
"raw_capacity_per_task": 15,
|
| 82 |
+
"abstract_capacity_per_task": 2,
|
| 83 |
+
"abstract_mode": "llm",
|
| 84 |
+
"abstract_max_new_tokens": 512,
|
| 85 |
+
"anchor_capacity_per_task": 80,
|
| 86 |
+
"anchor_selection_mode": "llm",
|
| 87 |
+
"anchor_count_per_batch": 8,
|
| 88 |
+
"anchor_candidate_limit": 80,
|
| 89 |
+
"anchor_selection_max_new_tokens": 256,
|
| 90 |
+
"retrieval_top_k": 2,
|
| 91 |
+
"retrieval_candidate_limit": 12,
|
| 92 |
+
"reset_on_start": true,
|
| 93 |
+
"skill_enabled": true,
|
| 94 |
+
"skill_mode": "llm",
|
| 95 |
+
"skill_max_count": 6,
|
| 96 |
+
"skill_min_source_tasks": 2
|
| 97 |
+
},
|
| 98 |
+
"forgetting_probe": {
|
| 99 |
+
"enabled": true,
|
| 100 |
+
"interval_batches": 2,
|
| 101 |
+
"samples_per_task": 80,
|
| 102 |
+
"target_correct_ratio": 0.8,
|
| 103 |
+
"seed": 20260713,
|
| 104 |
+
"split": "test",
|
| 105 |
+
"historical_tasks_only": true,
|
| 106 |
+
"reuse_probe_set": true,
|
| 107 |
+
"record_predictions": false
|
| 108 |
+
},
|
| 109 |
+
"task_stream_path": "configs/taskstream_textual_budget_300_80_80_600.json",
|
| 110 |
+
"reset_run_on_start": true,
|
| 111 |
+
"storage_dir": "storage/textual_budget_sweep/b1",
|
| 112 |
+
"checkpoint": {
|
| 113 |
+
"enabled": true,
|
| 114 |
+
"path": "storage/textual_budget_sweep/b1/checkpoint.json",
|
| 115 |
+
"resume": true
|
| 116 |
+
},
|
| 117 |
+
"prediction_cache": {
|
| 118 |
+
"enabled": true,
|
| 119 |
+
"path": "storage/textual_budget_sweep/b1/prediction_cache/read_only_predictions.jsonl"
|
| 120 |
+
},
|
| 121 |
+
"task_flow": [
|
| 122 |
+
{
|
| 123 |
+
"name": "train",
|
| 124 |
+
"phase": "train",
|
| 125 |
+
"train_split": "train",
|
| 126 |
+
"val_split": "validation",
|
| 127 |
+
"test_split": "test",
|
| 128 |
+
"continual": true,
|
| 129 |
+
"batchsize": 30,
|
| 130 |
+
"train_limit_per_task": 300,
|
| 131 |
+
"validation_limit_per_task": 80,
|
| 132 |
+
"test_limit_per_task": 600
|
| 133 |
+
},
|
| 134 |
+
{
|
| 135 |
+
"name": "test",
|
| 136 |
+
"phase": "test",
|
| 137 |
+
"test_split": "test",
|
| 138 |
+
"test_limit_per_task": 600,
|
| 139 |
+
"group_by_task": true
|
| 140 |
+
}
|
| 141 |
+
]
|
| 142 |
+
}
|
configs/deepseek_v4_flash_textual_budget_b3_300_80_80_600.json
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "DeepSeek-V4-Flash textual budget sweep b=3 300-80-80-600",
|
| 3 |
+
"model": {
|
| 4 |
+
"backend": "chat_completions",
|
| 5 |
+
"name": "deepseek-v4-flash",
|
| 6 |
+
"paper_model_name": "DeepSeek-V4-Flash",
|
| 7 |
+
"base_url": "https://api.deepseek.com",
|
| 8 |
+
"api_key_env": "DEEPSEEK_API_KEY",
|
| 9 |
+
"max_new_tokens": 2048,
|
| 10 |
+
"answer_max_new_tokens": 512,
|
| 11 |
+
"temperature": 0.0,
|
| 12 |
+
"thinking": {"type": "disabled"},
|
| 13 |
+
"reasoning_effort": null,
|
| 14 |
+
"system_prompt": "You are a concise reasoning assistant. Reason internally and return only the final answer in the requested format.",
|
| 15 |
+
"timeout_seconds": 300,
|
| 16 |
+
"max_retries": 3,
|
| 17 |
+
"cleanup_output": true
|
| 18 |
+
},
|
| 19 |
+
"execution": {
|
| 20 |
+
"read_only_workers": 8,
|
| 21 |
+
"run_train_final": false
|
| 22 |
+
},
|
| 23 |
+
"task_interface": {
|
| 24 |
+
"mode": "llm",
|
| 25 |
+
"max_new_tokens": 2048,
|
| 26 |
+
"invalid_output_retries": 2,
|
| 27 |
+
"retry_max_new_tokens": 2048,
|
| 28 |
+
"fallback_to_rules_on_invalid": true,
|
| 29 |
+
"long_context_rule_threshold_chars": 5000,
|
| 30 |
+
"visible_context_max_chars": 12000,
|
| 31 |
+
"visible_context_max_items": 8
|
| 32 |
+
},
|
| 33 |
+
"router": {
|
| 34 |
+
"route_name": "direct",
|
| 35 |
+
"strip_output": true,
|
| 36 |
+
"use_llm_workflow_selector": true,
|
| 37 |
+
"use_memory_selector": true,
|
| 38 |
+
"memory_always_on": true,
|
| 39 |
+
"use_skill_selector": true,
|
| 40 |
+
"use_tool_selector": true,
|
| 41 |
+
"tool_auto_select": true,
|
| 42 |
+
"use_chat_tool_calls": false,
|
| 43 |
+
"tool_max_rounds": 2,
|
| 44 |
+
"tool_strict_schema": false,
|
| 45 |
+
"tool_js_timeout_seconds": 8.0,
|
| 46 |
+
"skill_selector_max_new_tokens": 512,
|
| 47 |
+
"skill_selector_invalid_output_retries": 2,
|
| 48 |
+
"skill_selector_retry_max_new_tokens": 512,
|
| 49 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 50 |
+
"tool_selector_max_new_tokens": 512,
|
| 51 |
+
"tool_selector_invalid_output_retries": 2,
|
| 52 |
+
"tool_selector_retry_max_new_tokens": 512,
|
| 53 |
+
"tool_selector_fallback_to_empty_on_invalid": true,
|
| 54 |
+
"memory_selector_max_new_tokens": 512,
|
| 55 |
+
"memory_selector_invalid_output_retries": 2,
|
| 56 |
+
"memory_selector_retry_max_new_tokens": 512,
|
| 57 |
+
"memory_selector_fallback_to_empty_on_invalid": true
|
| 58 |
+
},
|
| 59 |
+
"optimizer": {
|
| 60 |
+
"candidate_count": 3,
|
| 61 |
+
"selection_objective": "plasticity",
|
| 62 |
+
"commit_policy": "paper_historical_loss_budget",
|
| 63 |
+
"historical_loss_budget": 3,
|
| 64 |
+
"min_primary_score_delta": 1e-09,
|
| 65 |
+
"min_correct_gain": 2,
|
| 66 |
+
"min_format_compliance_rate": 0.9,
|
| 67 |
+
"selection_mode": "argmax",
|
| 68 |
+
"min_historical_anchor_count": 80,
|
| 69 |
+
"min_historical_anchors_per_task": 80,
|
| 70 |
+
"require_all_historical_tasks": true,
|
| 71 |
+
"min_anchor_evaluation_coverage": 1.0,
|
| 72 |
+
"components": [
|
| 73 |
+
"task_interface_structuring",
|
| 74 |
+
"router_workflow",
|
| 75 |
+
"memory_selector",
|
| 76 |
+
"router_context"
|
| 77 |
+
]
|
| 78 |
+
},
|
| 79 |
+
"memory": {
|
| 80 |
+
"enabled": true,
|
| 81 |
+
"raw_capacity_per_task": 15,
|
| 82 |
+
"abstract_capacity_per_task": 2,
|
| 83 |
+
"abstract_mode": "llm",
|
| 84 |
+
"abstract_max_new_tokens": 512,
|
| 85 |
+
"anchor_capacity_per_task": 80,
|
| 86 |
+
"anchor_selection_mode": "llm",
|
| 87 |
+
"anchor_count_per_batch": 8,
|
| 88 |
+
"anchor_candidate_limit": 80,
|
| 89 |
+
"anchor_selection_max_new_tokens": 256,
|
| 90 |
+
"retrieval_top_k": 2,
|
| 91 |
+
"retrieval_candidate_limit": 12,
|
| 92 |
+
"reset_on_start": true,
|
| 93 |
+
"skill_enabled": true,
|
| 94 |
+
"skill_mode": "llm",
|
| 95 |
+
"skill_max_count": 6,
|
| 96 |
+
"skill_min_source_tasks": 2
|
| 97 |
+
},
|
| 98 |
+
"forgetting_probe": {
|
| 99 |
+
"enabled": true,
|
| 100 |
+
"interval_batches": 2,
|
| 101 |
+
"samples_per_task": 80,
|
| 102 |
+
"target_correct_ratio": 0.8,
|
| 103 |
+
"seed": 20260713,
|
| 104 |
+
"split": "test",
|
| 105 |
+
"historical_tasks_only": true,
|
| 106 |
+
"reuse_probe_set": true,
|
| 107 |
+
"record_predictions": false
|
| 108 |
+
},
|
| 109 |
+
"task_stream_path": "configs/taskstream_textual_budget_300_80_80_600.json",
|
| 110 |
+
"reset_run_on_start": true,
|
| 111 |
+
"storage_dir": "storage/textual_budget_sweep/b3",
|
| 112 |
+
"checkpoint": {
|
| 113 |
+
"enabled": true,
|
| 114 |
+
"path": "storage/textual_budget_sweep/b3/checkpoint.json",
|
| 115 |
+
"resume": true
|
| 116 |
+
},
|
| 117 |
+
"prediction_cache": {
|
| 118 |
+
"enabled": true,
|
| 119 |
+
"path": "storage/textual_budget_sweep/b3/prediction_cache/read_only_predictions.jsonl"
|
| 120 |
+
},
|
| 121 |
+
"task_flow": [
|
| 122 |
+
{
|
| 123 |
+
"name": "train",
|
| 124 |
+
"phase": "train",
|
| 125 |
+
"train_split": "train",
|
| 126 |
+
"val_split": "validation",
|
| 127 |
+
"test_split": "test",
|
| 128 |
+
"continual": true,
|
| 129 |
+
"batchsize": 30,
|
| 130 |
+
"train_limit_per_task": 300,
|
| 131 |
+
"validation_limit_per_task": 80,
|
| 132 |
+
"test_limit_per_task": 600
|
| 133 |
+
},
|
| 134 |
+
{
|
| 135 |
+
"name": "test",
|
| 136 |
+
"phase": "test",
|
| 137 |
+
"test_split": "test",
|
| 138 |
+
"test_limit_per_task": 600,
|
| 139 |
+
"group_by_task": true
|
| 140 |
+
}
|
| 141 |
+
]
|
| 142 |
+
}
|
configs/deepseek_v4_flash_textual_budget_binf_300_80_80_600.json
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "DeepSeek-V4-Flash textual budget sweep b=inf 300-80-80-600",
|
| 3 |
+
"model": {
|
| 4 |
+
"backend": "chat_completions",
|
| 5 |
+
"name": "deepseek-v4-flash",
|
| 6 |
+
"paper_model_name": "DeepSeek-V4-Flash",
|
| 7 |
+
"base_url": "https://api.deepseek.com",
|
| 8 |
+
"api_key_env": "DEEPSEEK_API_KEY",
|
| 9 |
+
"max_new_tokens": 2048,
|
| 10 |
+
"answer_max_new_tokens": 512,
|
| 11 |
+
"temperature": 0.0,
|
| 12 |
+
"thinking": {"type": "disabled"},
|
| 13 |
+
"reasoning_effort": null,
|
| 14 |
+
"system_prompt": "You are a concise reasoning assistant. Reason internally and return only the final answer in the requested format.",
|
| 15 |
+
"timeout_seconds": 300,
|
| 16 |
+
"max_retries": 3,
|
| 17 |
+
"cleanup_output": true
|
| 18 |
+
},
|
| 19 |
+
"execution": {
|
| 20 |
+
"read_only_workers": 8,
|
| 21 |
+
"run_train_final": false
|
| 22 |
+
},
|
| 23 |
+
"task_interface": {
|
| 24 |
+
"mode": "llm",
|
| 25 |
+
"max_new_tokens": 2048,
|
| 26 |
+
"invalid_output_retries": 2,
|
| 27 |
+
"retry_max_new_tokens": 2048,
|
| 28 |
+
"fallback_to_rules_on_invalid": true,
|
| 29 |
+
"long_context_rule_threshold_chars": 5000,
|
| 30 |
+
"visible_context_max_chars": 12000,
|
| 31 |
+
"visible_context_max_items": 8
|
| 32 |
+
},
|
| 33 |
+
"router": {
|
| 34 |
+
"route_name": "direct",
|
| 35 |
+
"strip_output": true,
|
| 36 |
+
"use_llm_workflow_selector": true,
|
| 37 |
+
"use_memory_selector": true,
|
| 38 |
+
"memory_always_on": true,
|
| 39 |
+
"use_skill_selector": true,
|
| 40 |
+
"use_tool_selector": true,
|
| 41 |
+
"tool_auto_select": true,
|
| 42 |
+
"use_chat_tool_calls": false,
|
| 43 |
+
"tool_max_rounds": 2,
|
| 44 |
+
"tool_strict_schema": false,
|
| 45 |
+
"tool_js_timeout_seconds": 8.0,
|
| 46 |
+
"skill_selector_max_new_tokens": 512,
|
| 47 |
+
"skill_selector_invalid_output_retries": 2,
|
| 48 |
+
"skill_selector_retry_max_new_tokens": 512,
|
| 49 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 50 |
+
"tool_selector_max_new_tokens": 512,
|
| 51 |
+
"tool_selector_invalid_output_retries": 2,
|
| 52 |
+
"tool_selector_retry_max_new_tokens": 512,
|
| 53 |
+
"tool_selector_fallback_to_empty_on_invalid": true,
|
| 54 |
+
"memory_selector_max_new_tokens": 512,
|
| 55 |
+
"memory_selector_invalid_output_retries": 2,
|
| 56 |
+
"memory_selector_retry_max_new_tokens": 512,
|
| 57 |
+
"memory_selector_fallback_to_empty_on_invalid": true
|
| 58 |
+
},
|
| 59 |
+
"optimizer": {
|
| 60 |
+
"candidate_count": 3,
|
| 61 |
+
"selection_objective": "plasticity",
|
| 62 |
+
"commit_policy": "paper_historical_loss_budget",
|
| 63 |
+
"historical_loss_budget": null,
|
| 64 |
+
"min_primary_score_delta": 1e-09,
|
| 65 |
+
"min_correct_gain": 2,
|
| 66 |
+
"min_format_compliance_rate": 0.9,
|
| 67 |
+
"selection_mode": "argmax",
|
| 68 |
+
"min_historical_anchor_count": 80,
|
| 69 |
+
"min_historical_anchors_per_task": 80,
|
| 70 |
+
"require_all_historical_tasks": true,
|
| 71 |
+
"min_anchor_evaluation_coverage": 1.0,
|
| 72 |
+
"components": [
|
| 73 |
+
"task_interface_structuring",
|
| 74 |
+
"router_workflow",
|
| 75 |
+
"memory_selector",
|
| 76 |
+
"router_context"
|
| 77 |
+
]
|
| 78 |
+
},
|
| 79 |
+
"memory": {
|
| 80 |
+
"enabled": true,
|
| 81 |
+
"raw_capacity_per_task": 15,
|
| 82 |
+
"abstract_capacity_per_task": 2,
|
| 83 |
+
"abstract_mode": "llm",
|
| 84 |
+
"abstract_max_new_tokens": 512,
|
| 85 |
+
"anchor_capacity_per_task": 80,
|
| 86 |
+
"anchor_selection_mode": "llm",
|
| 87 |
+
"anchor_count_per_batch": 8,
|
| 88 |
+
"anchor_candidate_limit": 80,
|
| 89 |
+
"anchor_selection_max_new_tokens": 256,
|
| 90 |
+
"retrieval_top_k": 2,
|
| 91 |
+
"retrieval_candidate_limit": 12,
|
| 92 |
+
"reset_on_start": true,
|
| 93 |
+
"skill_enabled": true,
|
| 94 |
+
"skill_mode": "llm",
|
| 95 |
+
"skill_max_count": 6,
|
| 96 |
+
"skill_min_source_tasks": 2
|
| 97 |
+
},
|
| 98 |
+
"forgetting_probe": {
|
| 99 |
+
"enabled": true,
|
| 100 |
+
"interval_batches": 2,
|
| 101 |
+
"samples_per_task": 80,
|
| 102 |
+
"target_correct_ratio": 0.8,
|
| 103 |
+
"seed": 20260713,
|
| 104 |
+
"split": "test",
|
| 105 |
+
"historical_tasks_only": true,
|
| 106 |
+
"reuse_probe_set": true,
|
| 107 |
+
"record_predictions": false
|
| 108 |
+
},
|
| 109 |
+
"task_stream_path": "configs/taskstream_textual_budget_300_80_80_600.json",
|
| 110 |
+
"reset_run_on_start": true,
|
| 111 |
+
"storage_dir": "storage/textual_budget_sweep/binf",
|
| 112 |
+
"checkpoint": {
|
| 113 |
+
"enabled": true,
|
| 114 |
+
"path": "storage/textual_budget_sweep/binf/checkpoint.json",
|
| 115 |
+
"resume": true
|
| 116 |
+
},
|
| 117 |
+
"prediction_cache": {
|
| 118 |
+
"enabled": true,
|
| 119 |
+
"path": "storage/textual_budget_sweep/binf/prediction_cache/read_only_predictions.jsonl"
|
| 120 |
+
},
|
| 121 |
+
"task_flow": [
|
| 122 |
+
{
|
| 123 |
+
"name": "train",
|
| 124 |
+
"phase": "train",
|
| 125 |
+
"train_split": "train",
|
| 126 |
+
"val_split": "validation",
|
| 127 |
+
"test_split": "test",
|
| 128 |
+
"continual": true,
|
| 129 |
+
"batchsize": 30,
|
| 130 |
+
"train_limit_per_task": 300,
|
| 131 |
+
"validation_limit_per_task": 80,
|
| 132 |
+
"test_limit_per_task": 600
|
| 133 |
+
},
|
| 134 |
+
{
|
| 135 |
+
"name": "test",
|
| 136 |
+
"phase": "test",
|
| 137 |
+
"test_split": "test",
|
| 138 |
+
"test_limit_per_task": 600,
|
| 139 |
+
"group_by_task": true
|
| 140 |
+
}
|
| 141 |
+
]
|
| 142 |
+
}
|
configs/full_coco_stability_250_50_500_local.json
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "Qwen3.6-27B COCO HCL stability full 250-50-500 local validation",
|
| 3 |
+
"model": {
|
| 4 |
+
"backend": "chat_completions",
|
| 5 |
+
"name": "qwen3.6-27b-coco-ablation-gpu3",
|
| 6 |
+
"paper_model_name": "Qwen3.6-27B",
|
| 7 |
+
"base_url": "http://127.0.0.1:8017",
|
| 8 |
+
"api_key": "EMPTY",
|
| 9 |
+
"max_new_tokens": 2048,
|
| 10 |
+
"answer_max_new_tokens": 1024,
|
| 11 |
+
"temperature": 0.0,
|
| 12 |
+
"cleanup_output": true,
|
| 13 |
+
"enable_image_input": true,
|
| 14 |
+
"chat_template_kwargs": {
|
| 15 |
+
"enable_thinking": false
|
| 16 |
+
},
|
| 17 |
+
"json_object_for_structured_phases": true,
|
| 18 |
+
"system_prompt": "You are a concise multimodal reasoning assistant. Inspect the supplied image directly, follow the requested output schema exactly, and output only the final answer.",
|
| 19 |
+
"timeout_seconds": 600,
|
| 20 |
+
"max_retries": 20,
|
| 21 |
+
"log_path": "storage/experiments/full_coco_stability_250_50_500_local/llm_calls.txt",
|
| 22 |
+
"log_prompt_chars": 8000
|
| 23 |
+
},
|
| 24 |
+
"execution": {
|
| 25 |
+
"read_only_workers": 2,
|
| 26 |
+
"run_train_final": true
|
| 27 |
+
},
|
| 28 |
+
"task_interface": {
|
| 29 |
+
"mode": "auto",
|
| 30 |
+
"max_new_tokens": 640,
|
| 31 |
+
"invalid_output_retries": 1,
|
| 32 |
+
"retry_max_new_tokens": 1024,
|
| 33 |
+
"fallback_to_rules_on_invalid": true
|
| 34 |
+
},
|
| 35 |
+
"router": {
|
| 36 |
+
"route_name": "qwen36_27b_coco_gpu3_hcl_stability",
|
| 37 |
+
"strip_output": true,
|
| 38 |
+
"use_llm_workflow_selector": true,
|
| 39 |
+
"use_memory_selector": true,
|
| 40 |
+
"memory_always_on": true,
|
| 41 |
+
"use_skill_selector": true,
|
| 42 |
+
"use_tool_selector": false,
|
| 43 |
+
"tool_auto_select": false,
|
| 44 |
+
"use_chat_tool_calls": false,
|
| 45 |
+
"memory_selector_max_new_tokens": 256,
|
| 46 |
+
"memory_selector_invalid_output_retries": 1,
|
| 47 |
+
"memory_selector_retry_max_new_tokens": 256,
|
| 48 |
+
"skill_selector_max_new_tokens": 256,
|
| 49 |
+
"skill_selector_invalid_output_retries": 1,
|
| 50 |
+
"skill_selector_retry_max_new_tokens": 256,
|
| 51 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 52 |
+
"capability_enabled": false,
|
| 53 |
+
"capability_execution_mode": "disabled"
|
| 54 |
+
},
|
| 55 |
+
"optimizer": {
|
| 56 |
+
"candidate_count": 3,
|
| 57 |
+
"selection_objective": "plasticity",
|
| 58 |
+
"commit_policy": "plasticity_first",
|
| 59 |
+
"historical_loss_budget": 0,
|
| 60 |
+
"max_forget_count": 0,
|
| 61 |
+
"min_primary_score_delta": 1e-09,
|
| 62 |
+
"min_correct_gain": 0,
|
| 63 |
+
"min_format_compliance_rate": 1.0,
|
| 64 |
+
"recover_reward": 1.0,
|
| 65 |
+
"forget_penalty": 1.5,
|
| 66 |
+
"min_anchor_score": -5.0,
|
| 67 |
+
"min_anchor_net_score": -0.1,
|
| 68 |
+
"max_anchor_forget_rate": 0.2,
|
| 69 |
+
"components": [
|
| 70 |
+
"task_interface_structuring",
|
| 71 |
+
"router_workflow",
|
| 72 |
+
"memory_selector",
|
| 73 |
+
"router_context"
|
| 74 |
+
]
|
| 75 |
+
},
|
| 76 |
+
"memory": {
|
| 77 |
+
"enabled": true,
|
| 78 |
+
"raw_capacity_per_task": 10,
|
| 79 |
+
"abstract_capacity_per_task": 2,
|
| 80 |
+
"anchor_capacity_per_task": 25,
|
| 81 |
+
"retrieval_top_k": 2,
|
| 82 |
+
"reset_on_start": false,
|
| 83 |
+
"abstract_mode": "llm",
|
| 84 |
+
"abstract_max_new_tokens": 512,
|
| 85 |
+
"anchor_selection_mode": "llm",
|
| 86 |
+
"anchor_count_per_batch": 2,
|
| 87 |
+
"anchor_candidate_limit": 10,
|
| 88 |
+
"anchor_selection_max_new_tokens": 128,
|
| 89 |
+
"skill_enabled": true,
|
| 90 |
+
"skill_mode": "llm",
|
| 91 |
+
"abstract_prompt_max_chars": 12000
|
| 92 |
+
},
|
| 93 |
+
"forgetting_probe": {
|
| 94 |
+
"enabled": true,
|
| 95 |
+
"interval_batches": 2,
|
| 96 |
+
"samples_per_task": 100,
|
| 97 |
+
"target_correct_ratio": 0.8,
|
| 98 |
+
"seed": 20260726,
|
| 99 |
+
"split": "test",
|
| 100 |
+
"historical_tasks_only": true,
|
| 101 |
+
"reuse_probe_set": true,
|
| 102 |
+
"record_predictions": false
|
| 103 |
+
},
|
| 104 |
+
"task_stream_path": "configs/taskstream_multimodal_main_250_50_500.json",
|
| 105 |
+
"reset_run_on_start": false,
|
| 106 |
+
"storage_dir": "storage/experiments/full_coco_stability_250_50_500_local",
|
| 107 |
+
"prediction_cache": {
|
| 108 |
+
"enabled": true,
|
| 109 |
+
"path": "storage/experiments/full_coco_stability_250_50_500_local/prediction_cache/read_only_predictions.jsonl"
|
| 110 |
+
},
|
| 111 |
+
"checkpoint": {
|
| 112 |
+
"enabled": true,
|
| 113 |
+
"path": "storage/experiments/full_coco_stability_250_50_500_local/checkpoint.json",
|
| 114 |
+
"resume": true
|
| 115 |
+
},
|
| 116 |
+
"task_flow": [
|
| 117 |
+
{
|
| 118 |
+
"name": "train",
|
| 119 |
+
"phase": "train",
|
| 120 |
+
"train_split": "train",
|
| 121 |
+
"val_split": "validation",
|
| 122 |
+
"test_split": "test",
|
| 123 |
+
"continual": true,
|
| 124 |
+
"batchsize": 25,
|
| 125 |
+
"train_limit_per_task": 250,
|
| 126 |
+
"validation_limit_per_task": 50,
|
| 127 |
+
"test_limit_per_task": 500
|
| 128 |
+
},
|
| 129 |
+
{
|
| 130 |
+
"name": "test",
|
| 131 |
+
"phase": "test",
|
| 132 |
+
"test_split": "test",
|
| 133 |
+
"test_limit_per_task": 500,
|
| 134 |
+
"group_by_task": true
|
| 135 |
+
}
|
| 136 |
+
]
|
| 137 |
+
}
|
configs/qwen36_27b_coco_gpu1_direct_raw_zero_shot_500.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "Qwen3.6-27B COCO corrected multimodal raw zero-shot 500-test",
|
| 3 |
+
"task_stream_path": "configs/taskstream_multimodal_main_250_50_500.json",
|
| 4 |
+
"split": "test",
|
| 5 |
+
"limit_per_task": 500,
|
| 6 |
+
"resume": true,
|
| 7 |
+
"output_dir": "storage/experiments/qwen36_27b_coco_gpu1_direct_raw_zero_shot_500",
|
| 8 |
+
"model": {
|
| 9 |
+
"backend": "chat_completions",
|
| 10 |
+
"name": "qwen3.6-27b-coco-ablation-gpu3",
|
| 11 |
+
"paper_model_name": "Qwen3.6-27B",
|
| 12 |
+
"base_url": "http://127.0.0.1:8007",
|
| 13 |
+
"api_key": "EMPTY",
|
| 14 |
+
"max_new_tokens": 1024,
|
| 15 |
+
"answer_max_new_tokens": 1024,
|
| 16 |
+
"temperature": 0.0,
|
| 17 |
+
"cleanup_output": true,
|
| 18 |
+
"enable_image_input": true,
|
| 19 |
+
"chat_template_kwargs": {
|
| 20 |
+
"enable_thinking": false
|
| 21 |
+
},
|
| 22 |
+
"system_prompt": "You are a concise multimodal reasoning assistant. Inspect the supplied image directly and output only the final answer in the requested format.",
|
| 23 |
+
"timeout_seconds": 600,
|
| 24 |
+
"max_retries": 20,
|
| 25 |
+
"log_prompt_chars": 8000
|
| 26 |
+
}
|
| 27 |
+
}
|
configs/qwen36_27b_coco_gpu1_hcl_plasticity_250_50_500.json
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "Qwen3.6-27B COCO HCL plasticity 250-50-500 migrated",
|
| 3 |
+
"model": {
|
| 4 |
+
"backend": "chat_completions",
|
| 5 |
+
"name": "qwen3.6-27b-coco-ablation-gpu3",
|
| 6 |
+
"paper_model_name": "Qwen3.6-27B",
|
| 7 |
+
"base_url": "http://127.0.0.1:8007",
|
| 8 |
+
"api_key": "EMPTY",
|
| 9 |
+
"max_new_tokens": 2048,
|
| 10 |
+
"answer_max_new_tokens": 1024,
|
| 11 |
+
"temperature": 0.0,
|
| 12 |
+
"cleanup_output": true,
|
| 13 |
+
"enable_image_input": true,
|
| 14 |
+
"chat_template_kwargs": {
|
| 15 |
+
"enable_thinking": false
|
| 16 |
+
},
|
| 17 |
+
"json_object_for_structured_phases": true,
|
| 18 |
+
"system_prompt": "You are a concise multimodal reasoning assistant. Inspect the supplied image directly, follow the requested output schema exactly, and output only the final answer.",
|
| 19 |
+
"timeout_seconds": 600,
|
| 20 |
+
"max_retries": 20,
|
| 21 |
+
"log_path": "storage/experiments/qwen36_27b_coco_gpu1_hcl_plasticity_250_50_500/llm_calls.txt",
|
| 22 |
+
"log_prompt_chars": 8000
|
| 23 |
+
},
|
| 24 |
+
"execution": {
|
| 25 |
+
"read_only_workers": 2,
|
| 26 |
+
"run_train_final": true
|
| 27 |
+
},
|
| 28 |
+
"task_interface": {
|
| 29 |
+
"mode": "auto",
|
| 30 |
+
"max_new_tokens": 640,
|
| 31 |
+
"invalid_output_retries": 1,
|
| 32 |
+
"retry_max_new_tokens": 1024,
|
| 33 |
+
"fallback_to_rules_on_invalid": true
|
| 34 |
+
},
|
| 35 |
+
"router": {
|
| 36 |
+
"route_name": "qwen36_27b_coco_gpu3_hcl_plasticity",
|
| 37 |
+
"strip_output": true,
|
| 38 |
+
"use_llm_workflow_selector": true,
|
| 39 |
+
"use_memory_selector": true,
|
| 40 |
+
"memory_always_on": true,
|
| 41 |
+
"use_skill_selector": true,
|
| 42 |
+
"use_tool_selector": false,
|
| 43 |
+
"tool_auto_select": false,
|
| 44 |
+
"use_chat_tool_calls": false,
|
| 45 |
+
"memory_selector_max_new_tokens": 256,
|
| 46 |
+
"memory_selector_invalid_output_retries": 1,
|
| 47 |
+
"memory_selector_retry_max_new_tokens": 256,
|
| 48 |
+
"skill_selector_max_new_tokens": 256,
|
| 49 |
+
"skill_selector_invalid_output_retries": 1,
|
| 50 |
+
"skill_selector_retry_max_new_tokens": 256,
|
| 51 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 52 |
+
"capability_enabled": false,
|
| 53 |
+
"capability_execution_mode": "disabled"
|
| 54 |
+
},
|
| 55 |
+
"optimizer": {
|
| 56 |
+
"candidate_count": 3,
|
| 57 |
+
"selection_objective": "plasticity",
|
| 58 |
+
"commit_policy": "plasticity_first",
|
| 59 |
+
"historical_loss_budget": null,
|
| 60 |
+
"max_forget_count": 0,
|
| 61 |
+
"min_primary_score_delta": 1e-09,
|
| 62 |
+
"min_correct_gain": 0,
|
| 63 |
+
"min_format_compliance_rate": 1.0,
|
| 64 |
+
"recover_reward": 1.0,
|
| 65 |
+
"forget_penalty": 1.5,
|
| 66 |
+
"min_anchor_score": -5.0,
|
| 67 |
+
"min_anchor_net_score": -0.1,
|
| 68 |
+
"max_anchor_forget_rate": 0.2,
|
| 69 |
+
"components": [
|
| 70 |
+
"task_interface_structuring",
|
| 71 |
+
"router_workflow",
|
| 72 |
+
"memory_selector",
|
| 73 |
+
"router_context"
|
| 74 |
+
]
|
| 75 |
+
},
|
| 76 |
+
"memory": {
|
| 77 |
+
"enabled": true,
|
| 78 |
+
"raw_capacity_per_task": 10,
|
| 79 |
+
"abstract_capacity_per_task": 2,
|
| 80 |
+
"anchor_capacity_per_task": 25,
|
| 81 |
+
"retrieval_top_k": 2,
|
| 82 |
+
"reset_on_start": false,
|
| 83 |
+
"abstract_mode": "llm",
|
| 84 |
+
"abstract_max_new_tokens": 512,
|
| 85 |
+
"anchor_selection_mode": "llm",
|
| 86 |
+
"anchor_count_per_batch": 2,
|
| 87 |
+
"anchor_candidate_limit": 10,
|
| 88 |
+
"anchor_selection_max_new_tokens": 128,
|
| 89 |
+
"skill_enabled": true,
|
| 90 |
+
"skill_mode": "llm",
|
| 91 |
+
"abstract_prompt_max_chars": 12000
|
| 92 |
+
},
|
| 93 |
+
"forgetting_probe": {
|
| 94 |
+
"enabled": true,
|
| 95 |
+
"interval_batches": 2,
|
| 96 |
+
"samples_per_task": 100,
|
| 97 |
+
"target_correct_ratio": 0.8,
|
| 98 |
+
"seed": 20260726,
|
| 99 |
+
"split": "test",
|
| 100 |
+
"historical_tasks_only": true,
|
| 101 |
+
"reuse_probe_set": true,
|
| 102 |
+
"record_predictions": false
|
| 103 |
+
},
|
| 104 |
+
"task_stream_path": "configs/taskstream_multimodal_main_250_50_500.json",
|
| 105 |
+
"reset_run_on_start": false,
|
| 106 |
+
"storage_dir": "storage/experiments/qwen36_27b_coco_gpu1_hcl_plasticity_250_50_500",
|
| 107 |
+
"prediction_cache": {
|
| 108 |
+
"enabled": true,
|
| 109 |
+
"path": "storage/experiments/qwen36_27b_coco_gpu1_hcl_plasticity_250_50_500/prediction_cache/read_only_predictions.jsonl"
|
| 110 |
+
},
|
| 111 |
+
"checkpoint": {
|
| 112 |
+
"enabled": true,
|
| 113 |
+
"path": "storage/experiments/qwen36_27b_coco_gpu1_hcl_plasticity_250_50_500/checkpoint.json",
|
| 114 |
+
"resume": true
|
| 115 |
+
},
|
| 116 |
+
"task_flow": [
|
| 117 |
+
{
|
| 118 |
+
"name": "train",
|
| 119 |
+
"phase": "train",
|
| 120 |
+
"train_split": "train",
|
| 121 |
+
"val_split": "validation",
|
| 122 |
+
"test_split": "test",
|
| 123 |
+
"continual": true,
|
| 124 |
+
"batchsize": 25,
|
| 125 |
+
"train_limit_per_task": 250,
|
| 126 |
+
"validation_limit_per_task": 50,
|
| 127 |
+
"test_limit_per_task": 500
|
| 128 |
+
},
|
| 129 |
+
{
|
| 130 |
+
"name": "test",
|
| 131 |
+
"phase": "test",
|
| 132 |
+
"test_split": "test",
|
| 133 |
+
"test_limit_per_task": 500,
|
| 134 |
+
"group_by_task": true
|
| 135 |
+
}
|
| 136 |
+
]
|
| 137 |
+
}
|
configs/qwen36_27b_coco_gpu1_hcl_stability_250_50_500.json
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "Qwen3.6-27B COCO HCL stability 250-50-500 migrated",
|
| 3 |
+
"model": {
|
| 4 |
+
"backend": "chat_completions",
|
| 5 |
+
"name": "qwen3.6-27b-coco-ablation-gpu3",
|
| 6 |
+
"paper_model_name": "Qwen3.6-27B",
|
| 7 |
+
"base_url": "http://127.0.0.1:8007",
|
| 8 |
+
"api_key": "EMPTY",
|
| 9 |
+
"max_new_tokens": 2048,
|
| 10 |
+
"answer_max_new_tokens": 1024,
|
| 11 |
+
"temperature": 0.0,
|
| 12 |
+
"cleanup_output": true,
|
| 13 |
+
"enable_image_input": true,
|
| 14 |
+
"chat_template_kwargs": {
|
| 15 |
+
"enable_thinking": false
|
| 16 |
+
},
|
| 17 |
+
"json_object_for_structured_phases": true,
|
| 18 |
+
"system_prompt": "You are a concise multimodal reasoning assistant. Inspect the supplied image directly, follow the requested output schema exactly, and output only the final answer.",
|
| 19 |
+
"timeout_seconds": 600,
|
| 20 |
+
"max_retries": 20,
|
| 21 |
+
"log_path": "storage/experiments/qwen36_27b_coco_gpu1_hcl_stability_250_50_500/llm_calls.txt",
|
| 22 |
+
"log_prompt_chars": 8000
|
| 23 |
+
},
|
| 24 |
+
"execution": {
|
| 25 |
+
"read_only_workers": 2,
|
| 26 |
+
"run_train_final": true
|
| 27 |
+
},
|
| 28 |
+
"task_interface": {
|
| 29 |
+
"mode": "auto",
|
| 30 |
+
"max_new_tokens": 640,
|
| 31 |
+
"invalid_output_retries": 1,
|
| 32 |
+
"retry_max_new_tokens": 1024,
|
| 33 |
+
"fallback_to_rules_on_invalid": true
|
| 34 |
+
},
|
| 35 |
+
"router": {
|
| 36 |
+
"route_name": "qwen36_27b_coco_gpu3_hcl_stability",
|
| 37 |
+
"strip_output": true,
|
| 38 |
+
"use_llm_workflow_selector": true,
|
| 39 |
+
"use_memory_selector": true,
|
| 40 |
+
"memory_always_on": true,
|
| 41 |
+
"use_skill_selector": true,
|
| 42 |
+
"use_tool_selector": false,
|
| 43 |
+
"tool_auto_select": false,
|
| 44 |
+
"use_chat_tool_calls": false,
|
| 45 |
+
"memory_selector_max_new_tokens": 256,
|
| 46 |
+
"memory_selector_invalid_output_retries": 1,
|
| 47 |
+
"memory_selector_retry_max_new_tokens": 256,
|
| 48 |
+
"skill_selector_max_new_tokens": 256,
|
| 49 |
+
"skill_selector_invalid_output_retries": 1,
|
| 50 |
+
"skill_selector_retry_max_new_tokens": 256,
|
| 51 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 52 |
+
"capability_enabled": false,
|
| 53 |
+
"capability_execution_mode": "disabled"
|
| 54 |
+
},
|
| 55 |
+
"optimizer": {
|
| 56 |
+
"candidate_count": 3,
|
| 57 |
+
"selection_objective": "plasticity",
|
| 58 |
+
"commit_policy": "plasticity_first",
|
| 59 |
+
"historical_loss_budget": 0,
|
| 60 |
+
"max_forget_count": 0,
|
| 61 |
+
"min_primary_score_delta": 1e-09,
|
| 62 |
+
"min_correct_gain": 0,
|
| 63 |
+
"min_format_compliance_rate": 1.0,
|
| 64 |
+
"recover_reward": 1.0,
|
| 65 |
+
"forget_penalty": 1.5,
|
| 66 |
+
"min_anchor_score": -5.0,
|
| 67 |
+
"min_anchor_net_score": -0.1,
|
| 68 |
+
"max_anchor_forget_rate": 0.2,
|
| 69 |
+
"components": [
|
| 70 |
+
"task_interface_structuring",
|
| 71 |
+
"router_workflow",
|
| 72 |
+
"memory_selector",
|
| 73 |
+
"router_context"
|
| 74 |
+
]
|
| 75 |
+
},
|
| 76 |
+
"memory": {
|
| 77 |
+
"enabled": true,
|
| 78 |
+
"raw_capacity_per_task": 10,
|
| 79 |
+
"abstract_capacity_per_task": 2,
|
| 80 |
+
"anchor_capacity_per_task": 25,
|
| 81 |
+
"retrieval_top_k": 2,
|
| 82 |
+
"reset_on_start": false,
|
| 83 |
+
"abstract_mode": "llm",
|
| 84 |
+
"abstract_max_new_tokens": 512,
|
| 85 |
+
"anchor_selection_mode": "llm",
|
| 86 |
+
"anchor_count_per_batch": 2,
|
| 87 |
+
"anchor_candidate_limit": 10,
|
| 88 |
+
"anchor_selection_max_new_tokens": 128,
|
| 89 |
+
"skill_enabled": true,
|
| 90 |
+
"skill_mode": "llm",
|
| 91 |
+
"abstract_prompt_max_chars": 12000
|
| 92 |
+
},
|
| 93 |
+
"forgetting_probe": {
|
| 94 |
+
"enabled": true,
|
| 95 |
+
"interval_batches": 2,
|
| 96 |
+
"samples_per_task": 100,
|
| 97 |
+
"target_correct_ratio": 0.8,
|
| 98 |
+
"seed": 20260726,
|
| 99 |
+
"split": "test",
|
| 100 |
+
"historical_tasks_only": true,
|
| 101 |
+
"reuse_probe_set": true,
|
| 102 |
+
"record_predictions": false
|
| 103 |
+
},
|
| 104 |
+
"task_stream_path": "configs/taskstream_multimodal_main_250_50_500.json",
|
| 105 |
+
"reset_run_on_start": false,
|
| 106 |
+
"storage_dir": "storage/experiments/qwen36_27b_coco_gpu1_hcl_stability_250_50_500",
|
| 107 |
+
"prediction_cache": {
|
| 108 |
+
"enabled": true,
|
| 109 |
+
"path": "storage/experiments/qwen36_27b_coco_gpu1_hcl_stability_250_50_500/prediction_cache/read_only_predictions.jsonl"
|
| 110 |
+
},
|
| 111 |
+
"checkpoint": {
|
| 112 |
+
"enabled": true,
|
| 113 |
+
"path": "storage/experiments/qwen36_27b_coco_gpu1_hcl_stability_250_50_500/checkpoint.json",
|
| 114 |
+
"resume": true
|
| 115 |
+
},
|
| 116 |
+
"task_flow": [
|
| 117 |
+
{
|
| 118 |
+
"name": "train",
|
| 119 |
+
"phase": "train",
|
| 120 |
+
"train_split": "train",
|
| 121 |
+
"val_split": "validation",
|
| 122 |
+
"test_split": "test",
|
| 123 |
+
"continual": true,
|
| 124 |
+
"batchsize": 25,
|
| 125 |
+
"train_limit_per_task": 250,
|
| 126 |
+
"validation_limit_per_task": 50,
|
| 127 |
+
"test_limit_per_task": 500
|
| 128 |
+
},
|
| 129 |
+
{
|
| 130 |
+
"name": "test",
|
| 131 |
+
"phase": "test",
|
| 132 |
+
"test_split": "test",
|
| 133 |
+
"test_limit_per_task": 500,
|
| 134 |
+
"group_by_task": true
|
| 135 |
+
}
|
| 136 |
+
]
|
| 137 |
+
}
|
configs/qwen36_27b_coco_gpu1_v0_harness_500.json
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "Qwen3.6-27B COCO fixed v0 harness 500-test migrated",
|
| 3 |
+
"model": {
|
| 4 |
+
"backend": "chat_completions",
|
| 5 |
+
"name": "qwen3.6-27b-coco-ablation-gpu3",
|
| 6 |
+
"paper_model_name": "Qwen3.6-27B",
|
| 7 |
+
"base_url": "http://127.0.0.1:8007",
|
| 8 |
+
"api_key": "EMPTY",
|
| 9 |
+
"max_new_tokens": 1024,
|
| 10 |
+
"answer_max_new_tokens": 1024,
|
| 11 |
+
"temperature": 0.0,
|
| 12 |
+
"cleanup_output": true,
|
| 13 |
+
"enable_image_input": true,
|
| 14 |
+
"chat_template_kwargs": {
|
| 15 |
+
"enable_thinking": false
|
| 16 |
+
},
|
| 17 |
+
"json_object_for_structured_phases": true,
|
| 18 |
+
"system_prompt": "You are a concise multimodal reasoning assistant. Inspect the supplied image directly, follow the requested output schema exactly, and output only the final answer.",
|
| 19 |
+
"timeout_seconds": 600,
|
| 20 |
+
"max_retries": 20,
|
| 21 |
+
"log_path": "storage/experiments/qwen36_27b_coco_gpu1_v0_harness_500/llm_calls.txt",
|
| 22 |
+
"log_prompt_chars": 8000
|
| 23 |
+
},
|
| 24 |
+
"execution": {
|
| 25 |
+
"read_only_workers": 2,
|
| 26 |
+
"run_train_final": false
|
| 27 |
+
},
|
| 28 |
+
"task_interface": {
|
| 29 |
+
"mode": "auto",
|
| 30 |
+
"max_new_tokens": 640,
|
| 31 |
+
"invalid_output_retries": 1,
|
| 32 |
+
"retry_max_new_tokens": 1024,
|
| 33 |
+
"fallback_to_rules_on_invalid": true
|
| 34 |
+
},
|
| 35 |
+
"router": {
|
| 36 |
+
"route_name": "qwen36_27b_coco_gpu3_v0_harness",
|
| 37 |
+
"strip_output": true,
|
| 38 |
+
"use_llm_workflow_selector": true,
|
| 39 |
+
"use_memory_selector": true,
|
| 40 |
+
"memory_always_on": true,
|
| 41 |
+
"use_skill_selector": true,
|
| 42 |
+
"use_tool_selector": false,
|
| 43 |
+
"tool_auto_select": false,
|
| 44 |
+
"use_chat_tool_calls": false,
|
| 45 |
+
"memory_selector_max_new_tokens": 256,
|
| 46 |
+
"memory_selector_invalid_output_retries": 1,
|
| 47 |
+
"memory_selector_retry_max_new_tokens": 256,
|
| 48 |
+
"skill_selector_max_new_tokens": 256,
|
| 49 |
+
"skill_selector_invalid_output_retries": 1,
|
| 50 |
+
"skill_selector_retry_max_new_tokens": 256,
|
| 51 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 52 |
+
"capability_enabled": false,
|
| 53 |
+
"capability_execution_mode": "disabled"
|
| 54 |
+
},
|
| 55 |
+
"optimizer": {
|
| 56 |
+
"candidate_count": 0,
|
| 57 |
+
"components": []
|
| 58 |
+
},
|
| 59 |
+
"memory": {
|
| 60 |
+
"enabled": true,
|
| 61 |
+
"raw_capacity_per_task": 10,
|
| 62 |
+
"abstract_capacity_per_task": 2,
|
| 63 |
+
"anchor_capacity_per_task": 25,
|
| 64 |
+
"retrieval_top_k": 2,
|
| 65 |
+
"reset_on_start": true,
|
| 66 |
+
"abstract_mode": "llm",
|
| 67 |
+
"abstract_max_new_tokens": 512,
|
| 68 |
+
"anchor_selection_mode": "llm",
|
| 69 |
+
"anchor_count_per_batch": 2,
|
| 70 |
+
"anchor_candidate_limit": 10,
|
| 71 |
+
"anchor_selection_max_new_tokens": 128,
|
| 72 |
+
"skill_enabled": true,
|
| 73 |
+
"skill_mode": "llm"
|
| 74 |
+
},
|
| 75 |
+
"forgetting_probe": {
|
| 76 |
+
"enabled": false
|
| 77 |
+
},
|
| 78 |
+
"task_stream_path": "configs/taskstream_multimodal_main_250_50_500.json",
|
| 79 |
+
"reset_run_on_start": false,
|
| 80 |
+
"storage_dir": "storage/experiments/qwen36_27b_coco_gpu1_v0_harness_500",
|
| 81 |
+
"prediction_cache": {
|
| 82 |
+
"enabled": true,
|
| 83 |
+
"path": "storage/experiments/qwen36_27b_coco_gpu1_v0_harness_500/prediction_cache/read_only_predictions.jsonl"
|
| 84 |
+
},
|
| 85 |
+
"checkpoint": {
|
| 86 |
+
"enabled": true,
|
| 87 |
+
"path": "storage/experiments/qwen36_27b_coco_gpu1_v0_harness_500/checkpoint.json",
|
| 88 |
+
"resume": true
|
| 89 |
+
},
|
| 90 |
+
"task_flow": [
|
| 91 |
+
{
|
| 92 |
+
"name": "test",
|
| 93 |
+
"phase": "test",
|
| 94 |
+
"test_split": "test",
|
| 95 |
+
"test_limit_per_task": 500,
|
| 96 |
+
"group_by_task": true
|
| 97 |
+
}
|
| 98 |
+
]
|
| 99 |
+
}
|
configs/qwen36_27b_reasoning_hcl_stability_capabilities_250_50_500.json
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "Qwen3.6-27B Stability-HCL with router-selected external capabilities reasoning 250-50-500",
|
| 3 |
+
"model": {
|
| 4 |
+
"backend": "chat_completions",
|
| 5 |
+
"name": "qwen3.6-27b-capabilities-gpu0",
|
| 6 |
+
"paper_model_name": "Qwen3.6-27B",
|
| 7 |
+
"base_url": "http://127.0.0.1:8006",
|
| 8 |
+
"api_key": "EMPTY",
|
| 9 |
+
"max_new_tokens": 2048,
|
| 10 |
+
"answer_max_new_tokens": 1024,
|
| 11 |
+
"temperature": 0.0,
|
| 12 |
+
"thinking": null,
|
| 13 |
+
"reasoning_effort": null,
|
| 14 |
+
"system_prompt": "You are a concise reasoning assistant. Reason internally, use relevant tool evidence when available, follow the requested output schema exactly, and return only the final answer.",
|
| 15 |
+
"timeout_seconds": 600,
|
| 16 |
+
"max_retries": 20,
|
| 17 |
+
"cleanup_output": true,
|
| 18 |
+
"log_path": "storage/experiments/qwen36_27b_reasoning_hcl_stability_capabilities_250_50_500/llm_calls.txt",
|
| 19 |
+
"log_prompt_chars": 8000
|
| 20 |
+
},
|
| 21 |
+
"execution": {
|
| 22 |
+
"read_only_workers": 1,
|
| 23 |
+
"run_train_final": true
|
| 24 |
+
},
|
| 25 |
+
"task_interface": {
|
| 26 |
+
"mode": "llm",
|
| 27 |
+
"max_new_tokens": 1024,
|
| 28 |
+
"invalid_output_retries": 1,
|
| 29 |
+
"retry_max_new_tokens": 1024,
|
| 30 |
+
"fallback_to_rules_on_invalid": true,
|
| 31 |
+
"long_context_rule_threshold_chars": 8192
|
| 32 |
+
},
|
| 33 |
+
"router": {
|
| 34 |
+
"route_name": "qwen36_27b_reasoning_hcl_stability_capabilities_router_fixed",
|
| 35 |
+
"strip_output": true,
|
| 36 |
+
"use_llm_workflow_selector": true,
|
| 37 |
+
"use_memory_selector": true,
|
| 38 |
+
"memory_always_on": false,
|
| 39 |
+
"use_skill_selector": true,
|
| 40 |
+
"use_tool_selector": true,
|
| 41 |
+
"tool_auto_select": true,
|
| 42 |
+
"use_chat_tool_calls": false,
|
| 43 |
+
"tool_max_rounds": 0,
|
| 44 |
+
"tool_strict_schema": false,
|
| 45 |
+
"tool_js_timeout_seconds": 8.0,
|
| 46 |
+
"tool_selector_max_new_tokens": 512,
|
| 47 |
+
"tool_selector_invalid_output_retries": 1,
|
| 48 |
+
"tool_selector_retry_max_new_tokens": 512,
|
| 49 |
+
"tool_selector_fallback_to_empty_on_invalid": true,
|
| 50 |
+
"skill_selector_max_new_tokens": 512,
|
| 51 |
+
"skill_selector_invalid_output_retries": 1,
|
| 52 |
+
"skill_selector_retry_max_new_tokens": 512,
|
| 53 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 54 |
+
"memory_selector_max_new_tokens": 512,
|
| 55 |
+
"memory_selector_invalid_output_retries": 1,
|
| 56 |
+
"memory_selector_retry_max_new_tokens": 512,
|
| 57 |
+
"capability_enabled": true,
|
| 58 |
+
"capability_execution_mode": "router_managed",
|
| 59 |
+
"capability_service_url": "http://127.0.0.1:8091",
|
| 60 |
+
"capability_timeout_seconds": 30,
|
| 61 |
+
"capability_allowed_corpora": [
|
| 62 |
+
"reasoning_train_corpus"
|
| 63 |
+
],
|
| 64 |
+
"capability_default_corpus_id": "reasoning_train_corpus",
|
| 65 |
+
"capability_default_top_k": 5,
|
| 66 |
+
"capability_continue_on_error": true,
|
| 67 |
+
"capability_force_semantic_search": false,
|
| 68 |
+
"semantic_search_enabled": true,
|
| 69 |
+
"cross_modal_match_enabled": true
|
| 70 |
+
},
|
| 71 |
+
"optimizer": {
|
| 72 |
+
"candidate_count": 3,
|
| 73 |
+
"selection_objective": "stability",
|
| 74 |
+
"commit_policy": "strict_no_forgetting",
|
| 75 |
+
"min_accuracy_delta": 0.0,
|
| 76 |
+
"min_correct_gain": 0,
|
| 77 |
+
"max_forget_count": 0,
|
| 78 |
+
"min_format_compliance_rate": 0.85,
|
| 79 |
+
"recover_reward": 1.0,
|
| 80 |
+
"forget_penalty": 2.0,
|
| 81 |
+
"min_anchor_score": 0.0,
|
| 82 |
+
"min_anchor_net_score": 0.0,
|
| 83 |
+
"max_anchor_forget_rate": 0.0,
|
| 84 |
+
"components": [
|
| 85 |
+
"task_interface_structuring",
|
| 86 |
+
"router_workflow",
|
| 87 |
+
"memory_selector",
|
| 88 |
+
"tool_selector",
|
| 89 |
+
"router_context"
|
| 90 |
+
]
|
| 91 |
+
},
|
| 92 |
+
"memory": {
|
| 93 |
+
"enabled": true,
|
| 94 |
+
"raw_capacity_per_task": 10,
|
| 95 |
+
"abstract_capacity_per_task": 2,
|
| 96 |
+
"anchor_capacity_per_task": 25,
|
| 97 |
+
"retrieval_top_k": 2,
|
| 98 |
+
"reset_on_start": false,
|
| 99 |
+
"abstract_mode": "llm",
|
| 100 |
+
"abstract_max_new_tokens": 512,
|
| 101 |
+
"anchor_selection_mode": "llm",
|
| 102 |
+
"anchor_count_per_batch": 2,
|
| 103 |
+
"anchor_candidate_limit": 10,
|
| 104 |
+
"anchor_selection_max_new_tokens": 256,
|
| 105 |
+
"skill_enabled": true,
|
| 106 |
+
"skill_mode": "llm",
|
| 107 |
+
"abstract_prompt_max_chars": 12000
|
| 108 |
+
},
|
| 109 |
+
"forgetting_probe": {
|
| 110 |
+
"enabled": true,
|
| 111 |
+
"interval_batches": 2,
|
| 112 |
+
"samples_per_task": 100,
|
| 113 |
+
"target_correct_ratio": 0.8,
|
| 114 |
+
"seed": 20260726,
|
| 115 |
+
"split": "test",
|
| 116 |
+
"historical_tasks_only": true,
|
| 117 |
+
"reuse_probe_set": true,
|
| 118 |
+
"record_predictions": false
|
| 119 |
+
},
|
| 120 |
+
"task_stream_path": "configs/taskstream_textual_main_250_50_500.json",
|
| 121 |
+
"reset_run_on_start": false,
|
| 122 |
+
"storage_dir": "storage/experiments/qwen36_27b_reasoning_hcl_stability_capabilities_250_50_500",
|
| 123 |
+
"prediction_cache": {
|
| 124 |
+
"enabled": true,
|
| 125 |
+
"path": "storage/experiments/qwen36_27b_reasoning_hcl_stability_capabilities_250_50_500/prediction_cache/read_only_predictions.jsonl"
|
| 126 |
+
},
|
| 127 |
+
"checkpoint": {
|
| 128 |
+
"enabled": true,
|
| 129 |
+
"path": "storage/experiments/qwen36_27b_reasoning_hcl_stability_capabilities_250_50_500/checkpoint.json",
|
| 130 |
+
"resume": true
|
| 131 |
+
},
|
| 132 |
+
"task_flow": [
|
| 133 |
+
{
|
| 134 |
+
"name": "train",
|
| 135 |
+
"phase": "train",
|
| 136 |
+
"train_split": "train",
|
| 137 |
+
"val_split": "validation",
|
| 138 |
+
"test_split": "test",
|
| 139 |
+
"continual": true,
|
| 140 |
+
"batchsize": 25,
|
| 141 |
+
"train_limit_per_task": 250,
|
| 142 |
+
"validation_limit_per_task": 50,
|
| 143 |
+
"test_limit_per_task": 500
|
| 144 |
+
},
|
| 145 |
+
{
|
| 146 |
+
"name": "test",
|
| 147 |
+
"phase": "test",
|
| 148 |
+
"test_split": "test",
|
| 149 |
+
"test_limit_per_task": 500,
|
| 150 |
+
"group_by_task": true
|
| 151 |
+
}
|
| 152 |
+
]
|
| 153 |
+
}
|
configs/run_stability_hcl_01_4b.json
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "hcl_stability_01_4b",
|
| 3 |
+
"task_stream_path": "configs/taskstream_textual_main_250_50_500.json",
|
| 4 |
+
"storage_dir": "storage/experiments/stability_hcl_01_4b",
|
| 5 |
+
"reset_run_on_start": true,
|
| 6 |
+
"batchsize": 300,
|
| 7 |
+
"model": {
|
| 8 |
+
"backend": "local_transformers",
|
| 9 |
+
"name": "Qwen3-4B",
|
| 10 |
+
"path": "models/Qwen3-4B",
|
| 11 |
+
"device_map": "cuda:0",
|
| 12 |
+
"torch_dtype": "bfloat16",
|
| 13 |
+
"max_new_tokens": 2048,
|
| 14 |
+
"answer_max_new_tokens": 200,
|
| 15 |
+
"temperature": 0.0,
|
| 16 |
+
"enable_thinking": false,
|
| 17 |
+
"log_path": "storage/experiments/stability_hcl_01_4b/llm_calls.txt"
|
| 18 |
+
},
|
| 19 |
+
"task_interface": {
|
| 20 |
+
"mode": "auto",
|
| 21 |
+
"long_context_rule_threshold_chars": 24000,
|
| 22 |
+
"visible_context_max_chars": 24000,
|
| 23 |
+
"visible_context_max_items": 12
|
| 24 |
+
},
|
| 25 |
+
"router": {
|
| 26 |
+
"use_llm_workflow_selector": true,
|
| 27 |
+
"use_memory_selector": true,
|
| 28 |
+
"use_skill_selector": true,
|
| 29 |
+
"use_tool_selector": true,
|
| 30 |
+
"capability_enabled": false,
|
| 31 |
+
"memory_selector_fallback_to_empty_on_invalid": true,
|
| 32 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 33 |
+
"tool_selector_fallback_to_empty_on_invalid": true,
|
| 34 |
+
"memory_selector_invalid_output_retries": 2,
|
| 35 |
+
"skill_selector_invalid_output_retries": 2,
|
| 36 |
+
"tool_selector_invalid_output_retries": 2
|
| 37 |
+
},
|
| 38 |
+
"optimizer": {
|
| 39 |
+
"candidate_count": 3,
|
| 40 |
+
"components": [
|
| 41 |
+
"task_interface_structuring",
|
| 42 |
+
"router_workflow",
|
| 43 |
+
"router_context"
|
| 44 |
+
],
|
| 45 |
+
"selection_objective": "stability",
|
| 46 |
+
"min_accuracy_delta": 0.0,
|
| 47 |
+
"min_correct_gain": 1,
|
| 48 |
+
"max_forget_count": 0,
|
| 49 |
+
"min_format_compliance_rate": 0.0,
|
| 50 |
+
"min_historical_anchor_count": 1,
|
| 51 |
+
"min_historical_anchors_per_task": 1
|
| 52 |
+
},
|
| 53 |
+
"memory": {
|
| 54 |
+
"enabled": true,
|
| 55 |
+
"reset_on_start": true,
|
| 56 |
+
"abstract_mode": "llm",
|
| 57 |
+
"anchor_selection_mode": "llm",
|
| 58 |
+
"anchor_count_per_batch": 5,
|
| 59 |
+
"anchor_capacity_per_task": 15,
|
| 60 |
+
"skill_mode": "llm"
|
| 61 |
+
},
|
| 62 |
+
"prediction_cache": {
|
| 63 |
+
"enabled": true
|
| 64 |
+
},
|
| 65 |
+
"checkpoint": {
|
| 66 |
+
"enabled": true,
|
| 67 |
+
"resume": true
|
| 68 |
+
},
|
| 69 |
+
"execution": {
|
| 70 |
+
"read_only_workers": 1,
|
| 71 |
+
"run_train_final": false
|
| 72 |
+
},
|
| 73 |
+
"forgetting_probe": {
|
| 74 |
+
"enabled": false
|
| 75 |
+
},
|
| 76 |
+
"task_flow": [
|
| 77 |
+
{
|
| 78 |
+
"name": "train",
|
| 79 |
+
"phase": "train",
|
| 80 |
+
"train_split": "train",
|
| 81 |
+
"val_split": "validation",
|
| 82 |
+
"test_split": "test",
|
| 83 |
+
"continual": true,
|
| 84 |
+
"batchsize": 300,
|
| 85 |
+
"train_limit_per_task": 250,
|
| 86 |
+
"validation_limit_per_task": 50,
|
| 87 |
+
"test_limit_per_task": 500
|
| 88 |
+
},
|
| 89 |
+
{
|
| 90 |
+
"name": "test",
|
| 91 |
+
"phase": "test",
|
| 92 |
+
"test_split": "test",
|
| 93 |
+
"test_limit_per_task": 500
|
| 94 |
+
}
|
| 95 |
+
]
|
| 96 |
+
}
|
configs/run_stability_hcl_02_4b_opt27b.json
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "hcl_stability_02_4b_opt27b",
|
| 3 |
+
"task_stream_path": "configs/taskstream_textual_main_250_50_500.json",
|
| 4 |
+
"storage_dir": "storage/experiments/stability_hcl_02_4b_opt27b",
|
| 5 |
+
"reset_run_on_start": true,
|
| 6 |
+
"batchsize": 300,
|
| 7 |
+
"model": {
|
| 8 |
+
"backend": "local_transformers",
|
| 9 |
+
"name": "Qwen3-4B",
|
| 10 |
+
"path": "models/Qwen3-4B",
|
| 11 |
+
"device_map": "cuda:0",
|
| 12 |
+
"torch_dtype": "bfloat16",
|
| 13 |
+
"max_new_tokens": 2048,
|
| 14 |
+
"answer_max_new_tokens": 200,
|
| 15 |
+
"temperature": 0.0,
|
| 16 |
+
"enable_thinking": false,
|
| 17 |
+
"log_path": "storage/experiments/stability_hcl_02_4b_opt27b/llm_calls.txt"
|
| 18 |
+
},
|
| 19 |
+
"judge_model": {
|
| 20 |
+
"backend": "local_transformers",
|
| 21 |
+
"name": "Qwen3.6-27B",
|
| 22 |
+
"path": "models/Qwen3.6-27B",
|
| 23 |
+
"device_map": "cuda:0",
|
| 24 |
+
"torch_dtype": "bfloat16",
|
| 25 |
+
"max_new_tokens": 2048,
|
| 26 |
+
"answer_max_new_tokens": 200,
|
| 27 |
+
"temperature": 0.0,
|
| 28 |
+
"enable_thinking": false,
|
| 29 |
+
"log_path": "storage/experiments/stability_hcl_02_4b_opt27b/judge_llm_calls.txt"
|
| 30 |
+
},
|
| 31 |
+
"task_interface": {
|
| 32 |
+
"mode": "auto",
|
| 33 |
+
"long_context_rule_threshold_chars": 24000,
|
| 34 |
+
"visible_context_max_chars": 24000,
|
| 35 |
+
"visible_context_max_items": 12
|
| 36 |
+
},
|
| 37 |
+
"router": {
|
| 38 |
+
"use_llm_workflow_selector": true,
|
| 39 |
+
"use_memory_selector": true,
|
| 40 |
+
"use_skill_selector": true,
|
| 41 |
+
"use_tool_selector": true,
|
| 42 |
+
"capability_enabled": false,
|
| 43 |
+
"memory_selector_fallback_to_empty_on_invalid": true,
|
| 44 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 45 |
+
"tool_selector_fallback_to_empty_on_invalid": true,
|
| 46 |
+
"memory_selector_invalid_output_retries": 2,
|
| 47 |
+
"skill_selector_invalid_output_retries": 2,
|
| 48 |
+
"tool_selector_invalid_output_retries": 2
|
| 49 |
+
},
|
| 50 |
+
"optimizer": {
|
| 51 |
+
"candidate_count": 3,
|
| 52 |
+
"components": [
|
| 53 |
+
"task_interface_structuring",
|
| 54 |
+
"router_workflow",
|
| 55 |
+
"router_context"
|
| 56 |
+
],
|
| 57 |
+
"selection_objective": "stability",
|
| 58 |
+
"min_accuracy_delta": 0.0,
|
| 59 |
+
"min_correct_gain": 1,
|
| 60 |
+
"max_forget_count": 0,
|
| 61 |
+
"min_format_compliance_rate": 0.0,
|
| 62 |
+
"min_historical_anchor_count": 1,
|
| 63 |
+
"min_historical_anchors_per_task": 1
|
| 64 |
+
},
|
| 65 |
+
"memory": {
|
| 66 |
+
"enabled": true,
|
| 67 |
+
"reset_on_start": true,
|
| 68 |
+
"abstract_mode": "llm",
|
| 69 |
+
"anchor_selection_mode": "llm",
|
| 70 |
+
"anchor_count_per_batch": 5,
|
| 71 |
+
"anchor_capacity_per_task": 15,
|
| 72 |
+
"skill_mode": "llm"
|
| 73 |
+
},
|
| 74 |
+
"prediction_cache": {
|
| 75 |
+
"enabled": true
|
| 76 |
+
},
|
| 77 |
+
"checkpoint": {
|
| 78 |
+
"enabled": true,
|
| 79 |
+
"resume": true
|
| 80 |
+
},
|
| 81 |
+
"execution": {
|
| 82 |
+
"read_only_workers": 1,
|
| 83 |
+
"run_train_final": false
|
| 84 |
+
},
|
| 85 |
+
"forgetting_probe": {
|
| 86 |
+
"enabled": false
|
| 87 |
+
},
|
| 88 |
+
"task_flow": [
|
| 89 |
+
{
|
| 90 |
+
"name": "train",
|
| 91 |
+
"phase": "train",
|
| 92 |
+
"train_split": "train",
|
| 93 |
+
"val_split": "validation",
|
| 94 |
+
"test_split": "test",
|
| 95 |
+
"continual": true,
|
| 96 |
+
"batchsize": 300,
|
| 97 |
+
"train_limit_per_task": 250,
|
| 98 |
+
"validation_limit_per_task": 50,
|
| 99 |
+
"test_limit_per_task": 500
|
| 100 |
+
},
|
| 101 |
+
{
|
| 102 |
+
"name": "test",
|
| 103 |
+
"phase": "test",
|
| 104 |
+
"test_split": "test",
|
| 105 |
+
"test_limit_per_task": 500
|
| 106 |
+
}
|
| 107 |
+
]
|
| 108 |
+
}
|
configs/run_stability_hcl_03_4b_teacher27b.json
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "hcl_stability_03_4b_teacher27b",
|
| 3 |
+
"task_stream_path": "configs/taskstream_textual_main_250_50_500.json",
|
| 4 |
+
"storage_dir": "storage/experiments/stability_hcl_03_4b_teacher27b",
|
| 5 |
+
"reset_run_on_start": true,
|
| 6 |
+
"batchsize": 300,
|
| 7 |
+
"model": {
|
| 8 |
+
"backend": "local_transformers",
|
| 9 |
+
"name": "Qwen3-4B",
|
| 10 |
+
"path": "models/Qwen3-4B",
|
| 11 |
+
"device_map": "cuda:0",
|
| 12 |
+
"torch_dtype": "bfloat16",
|
| 13 |
+
"max_new_tokens": 2048,
|
| 14 |
+
"answer_max_new_tokens": 200,
|
| 15 |
+
"temperature": 0.0,
|
| 16 |
+
"enable_thinking": false,
|
| 17 |
+
"log_path": "storage/experiments/stability_hcl_03_4b_teacher27b/llm_calls.txt"
|
| 18 |
+
},
|
| 19 |
+
"selection_model": {
|
| 20 |
+
"backend": "local_transformers",
|
| 21 |
+
"name": "Qwen3.6-27B",
|
| 22 |
+
"path": "models/Qwen3.6-27B",
|
| 23 |
+
"device_map": "cuda:0",
|
| 24 |
+
"torch_dtype": "bfloat16",
|
| 25 |
+
"max_new_tokens": 2048,
|
| 26 |
+
"answer_max_new_tokens": 200,
|
| 27 |
+
"temperature": 0.0,
|
| 28 |
+
"enable_thinking": false,
|
| 29 |
+
"log_path": "storage/experiments/stability_hcl_03_4b_teacher27b/teacher_llm_calls.txt"
|
| 30 |
+
},
|
| 31 |
+
"memory_model": {
|
| 32 |
+
"backend": "local_transformers",
|
| 33 |
+
"name": "Qwen3.6-27B",
|
| 34 |
+
"path": "models/Qwen3.6-27B",
|
| 35 |
+
"device_map": "cuda:0",
|
| 36 |
+
"torch_dtype": "bfloat16",
|
| 37 |
+
"max_new_tokens": 2048,
|
| 38 |
+
"answer_max_new_tokens": 200,
|
| 39 |
+
"temperature": 0.0,
|
| 40 |
+
"enable_thinking": false,
|
| 41 |
+
"log_path": "storage/experiments/stability_hcl_03_4b_teacher27b/teacher_llm_calls.txt"
|
| 42 |
+
},
|
| 43 |
+
"task_interface": {
|
| 44 |
+
"mode": "auto",
|
| 45 |
+
"long_context_rule_threshold_chars": 24000,
|
| 46 |
+
"visible_context_max_chars": 24000,
|
| 47 |
+
"visible_context_max_items": 12
|
| 48 |
+
},
|
| 49 |
+
"router": {
|
| 50 |
+
"use_llm_workflow_selector": true,
|
| 51 |
+
"use_memory_selector": true,
|
| 52 |
+
"use_skill_selector": true,
|
| 53 |
+
"use_tool_selector": true,
|
| 54 |
+
"capability_enabled": false,
|
| 55 |
+
"memory_selector_fallback_to_empty_on_invalid": true,
|
| 56 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 57 |
+
"tool_selector_fallback_to_empty_on_invalid": true,
|
| 58 |
+
"memory_selector_invalid_output_retries": 2,
|
| 59 |
+
"skill_selector_invalid_output_retries": 2,
|
| 60 |
+
"tool_selector_invalid_output_retries": 2
|
| 61 |
+
},
|
| 62 |
+
"optimizer": {
|
| 63 |
+
"candidate_count": 3,
|
| 64 |
+
"components": [
|
| 65 |
+
"task_interface_structuring",
|
| 66 |
+
"router_workflow",
|
| 67 |
+
"router_context"
|
| 68 |
+
],
|
| 69 |
+
"selection_objective": "stability",
|
| 70 |
+
"min_accuracy_delta": 0.0,
|
| 71 |
+
"min_correct_gain": 1,
|
| 72 |
+
"max_forget_count": 0,
|
| 73 |
+
"min_format_compliance_rate": 0.0,
|
| 74 |
+
"min_historical_anchor_count": 1,
|
| 75 |
+
"min_historical_anchors_per_task": 1
|
| 76 |
+
},
|
| 77 |
+
"memory": {
|
| 78 |
+
"enabled": true,
|
| 79 |
+
"reset_on_start": true,
|
| 80 |
+
"abstract_mode": "llm",
|
| 81 |
+
"anchor_selection_mode": "llm",
|
| 82 |
+
"anchor_count_per_batch": 5,
|
| 83 |
+
"anchor_capacity_per_task": 15,
|
| 84 |
+
"skill_mode": "llm"
|
| 85 |
+
},
|
| 86 |
+
"prediction_cache": {
|
| 87 |
+
"enabled": true
|
| 88 |
+
},
|
| 89 |
+
"checkpoint": {
|
| 90 |
+
"enabled": true,
|
| 91 |
+
"resume": true
|
| 92 |
+
},
|
| 93 |
+
"execution": {
|
| 94 |
+
"read_only_workers": 1,
|
| 95 |
+
"run_train_final": false
|
| 96 |
+
},
|
| 97 |
+
"forgetting_probe": {
|
| 98 |
+
"enabled": false
|
| 99 |
+
},
|
| 100 |
+
"task_flow": [
|
| 101 |
+
{
|
| 102 |
+
"name": "train",
|
| 103 |
+
"phase": "train",
|
| 104 |
+
"train_split": "train",
|
| 105 |
+
"val_split": "validation",
|
| 106 |
+
"test_split": "test",
|
| 107 |
+
"continual": true,
|
| 108 |
+
"batchsize": 300,
|
| 109 |
+
"train_limit_per_task": 250,
|
| 110 |
+
"validation_limit_per_task": 50,
|
| 111 |
+
"test_limit_per_task": 500
|
| 112 |
+
},
|
| 113 |
+
{
|
| 114 |
+
"name": "test",
|
| 115 |
+
"phase": "test",
|
| 116 |
+
"test_split": "test",
|
| 117 |
+
"test_limit_per_task": 500
|
| 118 |
+
}
|
| 119 |
+
]
|
| 120 |
+
}
|
configs/taskstream_multimodal_main_250_50_500.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"description": "Paper-aligned multimodal stream manifest. Images and the exact sampled JSONL records are external data and are not redistributed.",
|
| 3 |
+
"paper_order": ["coco_detection", "coco_caption", "refcoco_grounding", "vqav2"],
|
| 4 |
+
"tasks": [
|
| 5 |
+
{
|
| 6 |
+
"task_name": "coco_detection",
|
| 7 |
+
"task_type": "coco_detection",
|
| 8 |
+
"modality": ["text", "image"],
|
| 9 |
+
"splits": {
|
| 10 |
+
"train": "data/datasets/coco_detection/train.jsonl",
|
| 11 |
+
"validation": "data/datasets/coco_detection/validation.jsonl",
|
| 12 |
+
"anchor": "data/datasets/coco_detection/validation.jsonl",
|
| 13 |
+
"test": "data/datasets/coco_detection/test.jsonl"
|
| 14 |
+
}
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"task_name": "coco_caption",
|
| 18 |
+
"task_type": "coco_caption",
|
| 19 |
+
"modality": ["text", "image"],
|
| 20 |
+
"splits": {
|
| 21 |
+
"train": "data/datasets/coco_caption/train.jsonl",
|
| 22 |
+
"validation": "data/datasets/coco_caption/validation.jsonl",
|
| 23 |
+
"anchor": "data/datasets/coco_caption/validation.jsonl",
|
| 24 |
+
"test": "data/datasets/coco_caption/test.jsonl"
|
| 25 |
+
}
|
| 26 |
+
},
|
| 27 |
+
{
|
| 28 |
+
"task_name": "refcoco_grounding",
|
| 29 |
+
"task_type": "refcoco_grounding",
|
| 30 |
+
"modality": ["text", "image"],
|
| 31 |
+
"splits": {
|
| 32 |
+
"train": "data/datasets/refcoco_grounding/train.jsonl",
|
| 33 |
+
"validation": "data/datasets/refcoco_grounding/validation.jsonl",
|
| 34 |
+
"anchor": "data/datasets/refcoco_grounding/validation.jsonl",
|
| 35 |
+
"test": "data/datasets/refcoco_grounding/test.jsonl"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
{
|
| 39 |
+
"task_name": "vqav2",
|
| 40 |
+
"task_type": "vqa",
|
| 41 |
+
"modality": ["text", "image"],
|
| 42 |
+
"splits": {
|
| 43 |
+
"train": "data/datasets/vqav2/train.jsonl",
|
| 44 |
+
"validation": "data/datasets/vqav2/validation.jsonl",
|
| 45 |
+
"anchor": "data/datasets/vqav2/validation.jsonl",
|
| 46 |
+
"test": "data/datasets/vqav2/test.jsonl"
|
| 47 |
+
}
|
| 48 |
+
}
|
| 49 |
+
]
|
| 50 |
+
}
|
configs/taskstream_multimodal_recovered_500_100_500.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"stream_name": "multimodal_hcl_stream",
|
| 3 |
+
"description": "Recovered four-task multimodal 500/100/500 split manifest. Dataset records and images are external.",
|
| 4 |
+
"paper_order": ["coco_detection", "coco_caption", "refcoco_grounding", "vqav2"],
|
| 5 |
+
"tasks": [
|
| 6 |
+
{
|
| 7 |
+
"task_name": "coco_detection",
|
| 8 |
+
"task_type": "coco_detection",
|
| 9 |
+
"modality": ["image", "text"],
|
| 10 |
+
"interactions": 1,
|
| 11 |
+
"splits": {
|
| 12 |
+
"train": "data/datasets_multimodal_500_100_500/coco_detection/train.json",
|
| 13 |
+
"validation": "data/datasets_multimodal_500_100_500/coco_detection/validation.json",
|
| 14 |
+
"anchor": "data/datasets_multimodal_500_100_500/coco_detection/validation.json",
|
| 15 |
+
"test": "data/datasets_multimodal_500_100_500/coco_detection/test.json"
|
| 16 |
+
}
|
| 17 |
+
},
|
| 18 |
+
{
|
| 19 |
+
"task_name": "coco_caption",
|
| 20 |
+
"task_type": "coco_caption",
|
| 21 |
+
"modality": ["image", "text"],
|
| 22 |
+
"interactions": 1,
|
| 23 |
+
"splits": {
|
| 24 |
+
"train": "data/datasets_multimodal_500_100_500/coco_caption/train.json",
|
| 25 |
+
"validation": "data/datasets_multimodal_500_100_500/coco_caption/validation.json",
|
| 26 |
+
"anchor": "data/datasets_multimodal_500_100_500/coco_caption/validation.json",
|
| 27 |
+
"test": "data/datasets_multimodal_500_100_500/coco_caption/test.json"
|
| 28 |
+
}
|
| 29 |
+
},
|
| 30 |
+
{
|
| 31 |
+
"task_name": "refcoco_grounding",
|
| 32 |
+
"task_type": "refcoco_grounding",
|
| 33 |
+
"modality": ["image", "text"],
|
| 34 |
+
"interactions": 1,
|
| 35 |
+
"splits": {
|
| 36 |
+
"train": "data/datasets_multimodal_500_100_500/refcoco_grounding/train.json",
|
| 37 |
+
"validation": "data/datasets_multimodal_500_100_500/refcoco_grounding/validation.json",
|
| 38 |
+
"anchor": "data/datasets_multimodal_500_100_500/refcoco_grounding/validation.json",
|
| 39 |
+
"test": "data/datasets_multimodal_500_100_500/refcoco_grounding/test.json"
|
| 40 |
+
}
|
| 41 |
+
},
|
| 42 |
+
{
|
| 43 |
+
"task_name": "vqav2",
|
| 44 |
+
"task_type": "vqa",
|
| 45 |
+
"modality": ["image", "text"],
|
| 46 |
+
"interactions": 1,
|
| 47 |
+
"splits": {
|
| 48 |
+
"train": "data/datasets_multimodal_500_100_500/vqav2/train.json",
|
| 49 |
+
"validation": "data/datasets_multimodal_500_100_500/vqav2/validation.json",
|
| 50 |
+
"anchor": "data/datasets_multimodal_500_100_500/vqav2/validation.json",
|
| 51 |
+
"test": "data/datasets_multimodal_500_100_500/vqav2/test.json"
|
| 52 |
+
}
|
| 53 |
+
}
|
| 54 |
+
]
|
| 55 |
+
}
|
configs/taskstream_textual_budget_300_80_80_600.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"description": "Paper-aligned independent textual budget-sweep stream. Exact split files are external; their provenance and fingerprints are documented in data/README.md.",
|
| 3 |
+
"paper_order": ["musique", "proofwriter", "gsm8k", "hotpotqa"],
|
| 4 |
+
"tasks": [
|
| 5 |
+
{
|
| 6 |
+
"task_name": "musique",
|
| 7 |
+
"task_type": "compositional_multi_hop_qa",
|
| 8 |
+
"modality": ["text"],
|
| 9 |
+
"splits": {
|
| 10 |
+
"train": "data/datasets_budget_300_80_80_600/musique/train.jsonl",
|
| 11 |
+
"validation": "data/datasets_budget_300_80_80_600/musique/validation.jsonl",
|
| 12 |
+
"anchor": "data/datasets_budget_300_80_80_600/musique/anchor.jsonl",
|
| 13 |
+
"test": "data/datasets_budget_300_80_80_600/musique/test.jsonl"
|
| 14 |
+
}
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"task_name": "proofwriter",
|
| 18 |
+
"task_type": "logical_reasoning",
|
| 19 |
+
"modality": ["text"],
|
| 20 |
+
"splits": {
|
| 21 |
+
"train": "data/datasets_budget_300_80_80_600/proofwriter/train.jsonl",
|
| 22 |
+
"validation": "data/datasets_budget_300_80_80_600/proofwriter/validation.jsonl",
|
| 23 |
+
"anchor": "data/datasets_budget_300_80_80_600/proofwriter/anchor.jsonl",
|
| 24 |
+
"test": "data/datasets_budget_300_80_80_600/proofwriter/test.jsonl"
|
| 25 |
+
}
|
| 26 |
+
},
|
| 27 |
+
{
|
| 28 |
+
"task_name": "gsm8k",
|
| 29 |
+
"task_type": "math_word_problem",
|
| 30 |
+
"modality": ["text"],
|
| 31 |
+
"splits": {
|
| 32 |
+
"train": "data/datasets_budget_300_80_80_600/gsm8k/train.jsonl",
|
| 33 |
+
"validation": "data/datasets_budget_300_80_80_600/gsm8k/validation.jsonl",
|
| 34 |
+
"anchor": "data/datasets_budget_300_80_80_600/gsm8k/anchor.jsonl",
|
| 35 |
+
"test": "data/datasets_budget_300_80_80_600/gsm8k/test.jsonl"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
{
|
| 39 |
+
"task_name": "hotpotqa",
|
| 40 |
+
"task_type": "knowledge_intensive_multi_hop_qa",
|
| 41 |
+
"modality": ["text"],
|
| 42 |
+
"splits": {
|
| 43 |
+
"train": "data/datasets_budget_300_80_80_600/hotpotqa/train.jsonl",
|
| 44 |
+
"validation": "data/datasets_budget_300_80_80_600/hotpotqa/validation.jsonl",
|
| 45 |
+
"anchor": "data/datasets_budget_300_80_80_600/hotpotqa/anchor.jsonl",
|
| 46 |
+
"test": "data/datasets_budget_300_80_80_600/hotpotqa/test.jsonl"
|
| 47 |
+
}
|
| 48 |
+
}
|
| 49 |
+
]
|
| 50 |
+
}
|
configs/taskstream_textual_main_250_50_500.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"description": "Paper-aligned textual stream manifest. The exact sampled JSONL records are external data and are not redistributed.",
|
| 3 |
+
"paper_order": ["musique", "proofwriter", "gsm8k", "hotpotqa"],
|
| 4 |
+
"tasks": [
|
| 5 |
+
{
|
| 6 |
+
"task_name": "musique",
|
| 7 |
+
"task_type": "compositional_multi_hop_qa",
|
| 8 |
+
"modality": ["text"],
|
| 9 |
+
"splits": {
|
| 10 |
+
"train": "data/datasets/musique/train.jsonl",
|
| 11 |
+
"validation": "data/datasets/musique/validation.jsonl",
|
| 12 |
+
"anchor": "data/datasets/musique/anchor.jsonl",
|
| 13 |
+
"test": "data/datasets/musique/test.jsonl"
|
| 14 |
+
}
|
| 15 |
+
},
|
| 16 |
+
{
|
| 17 |
+
"task_name": "proofwriter",
|
| 18 |
+
"task_type": "logical_reasoning",
|
| 19 |
+
"modality": ["text"],
|
| 20 |
+
"splits": {
|
| 21 |
+
"train": "data/datasets/proofwriter/train.jsonl",
|
| 22 |
+
"validation": "data/datasets/proofwriter/validation.jsonl",
|
| 23 |
+
"anchor": "data/datasets/proofwriter/anchor.jsonl",
|
| 24 |
+
"test": "data/datasets/proofwriter/test.jsonl"
|
| 25 |
+
}
|
| 26 |
+
},
|
| 27 |
+
{
|
| 28 |
+
"task_name": "gsm8k",
|
| 29 |
+
"task_type": "math_word_problem",
|
| 30 |
+
"modality": ["text"],
|
| 31 |
+
"splits": {
|
| 32 |
+
"train": "data/datasets/gsm8k/train.jsonl",
|
| 33 |
+
"validation": "data/datasets/gsm8k/validation.jsonl",
|
| 34 |
+
"anchor": "data/datasets/gsm8k/anchor.jsonl",
|
| 35 |
+
"test": "data/datasets/gsm8k/test.jsonl"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
{
|
| 39 |
+
"task_name": "hotpotqa",
|
| 40 |
+
"task_type": "knowledge_intensive_multi_hop_qa",
|
| 41 |
+
"modality": ["text"],
|
| 42 |
+
"splits": {
|
| 43 |
+
"train": "data/datasets/hotpotqa/train.jsonl",
|
| 44 |
+
"validation": "data/datasets/hotpotqa/validation.jsonl",
|
| 45 |
+
"anchor": "data/datasets/hotpotqa/anchor.jsonl",
|
| 46 |
+
"test": "data/datasets/hotpotqa/test.jsonl"
|
| 47 |
+
}
|
| 48 |
+
}
|
| 49 |
+
]
|
| 50 |
+
}
|
configs/validation_coco_distill_01_limit1.json
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "coco_distill_01_smoke",
|
| 3 |
+
"task_stream_path": "configs/taskstream_multimodal_main_250_50_500.json",
|
| 4 |
+
"storage_dir": "storage/validation/coco_distill_01_limit1",
|
| 5 |
+
"reset_run_on_start": true,
|
| 6 |
+
"batchsize": 300,
|
| 7 |
+
"model": {
|
| 8 |
+
"backend": "local_transformers",
|
| 9 |
+
"name": "Qwen3.5-4B",
|
| 10 |
+
"path": "models/Qwen3.5-4B",
|
| 11 |
+
"device_map": "cuda:0",
|
| 12 |
+
"torch_dtype": "bfloat16",
|
| 13 |
+
"max_new_tokens": 2048,
|
| 14 |
+
"answer_max_new_tokens": 512,
|
| 15 |
+
"temperature": 0.0,
|
| 16 |
+
"enable_thinking": false,
|
| 17 |
+
"log_path": "storage/validation/coco_distill_01_limit1/student_calls.txt"
|
| 18 |
+
},
|
| 19 |
+
"task_interface": {
|
| 20 |
+
"mode": "auto",
|
| 21 |
+
"long_context_rule_threshold_chars": 24000,
|
| 22 |
+
"visible_context_max_chars": 24000,
|
| 23 |
+
"visible_context_max_items": 12,
|
| 24 |
+
"max_new_tokens": 640,
|
| 25 |
+
"retry_max_new_tokens": 1024,
|
| 26 |
+
"invalid_output_retries": 1,
|
| 27 |
+
"fallback_to_rules_on_invalid": true
|
| 28 |
+
},
|
| 29 |
+
"router": {
|
| 30 |
+
"use_llm_workflow_selector": true,
|
| 31 |
+
"use_memory_selector": true,
|
| 32 |
+
"use_skill_selector": true,
|
| 33 |
+
"use_tool_selector": true,
|
| 34 |
+
"capability_enabled": false,
|
| 35 |
+
"memory_selector_fallback_to_empty_on_invalid": true,
|
| 36 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 37 |
+
"tool_selector_fallback_to_empty_on_invalid": true,
|
| 38 |
+
"memory_selector_invalid_output_retries": 2,
|
| 39 |
+
"skill_selector_invalid_output_retries": 2,
|
| 40 |
+
"tool_selector_invalid_output_retries": 2
|
| 41 |
+
},
|
| 42 |
+
"optimizer": {
|
| 43 |
+
"candidate_count": 1,
|
| 44 |
+
"components": [
|
| 45 |
+
"task_interface_structuring",
|
| 46 |
+
"router_workflow",
|
| 47 |
+
"router_context"
|
| 48 |
+
],
|
| 49 |
+
"selection_objective": "stability",
|
| 50 |
+
"min_accuracy_delta": 0.0,
|
| 51 |
+
"min_correct_gain": 1,
|
| 52 |
+
"max_forget_count": 0,
|
| 53 |
+
"min_format_compliance_rate": 0.0,
|
| 54 |
+
"min_historical_anchor_count": 1,
|
| 55 |
+
"min_historical_anchors_per_task": 1
|
| 56 |
+
},
|
| 57 |
+
"memory": {
|
| 58 |
+
"enabled": true,
|
| 59 |
+
"reset_on_start": true,
|
| 60 |
+
"abstract_mode": "llm",
|
| 61 |
+
"anchor_selection_mode": "llm",
|
| 62 |
+
"anchor_count_per_batch": 5,
|
| 63 |
+
"anchor_capacity_per_task": 15,
|
| 64 |
+
"skill_mode": "llm"
|
| 65 |
+
},
|
| 66 |
+
"prediction_cache": {
|
| 67 |
+
"enabled": true
|
| 68 |
+
},
|
| 69 |
+
"checkpoint": {
|
| 70 |
+
"enabled": true,
|
| 71 |
+
"resume": true
|
| 72 |
+
},
|
| 73 |
+
"execution": {
|
| 74 |
+
"read_only_workers": 1,
|
| 75 |
+
"run_train_final": false
|
| 76 |
+
},
|
| 77 |
+
"forgetting_probe": {
|
| 78 |
+
"enabled": false
|
| 79 |
+
},
|
| 80 |
+
"task_flow": [
|
| 81 |
+
{
|
| 82 |
+
"name": "train",
|
| 83 |
+
"phase": "train",
|
| 84 |
+
"train_split": "train",
|
| 85 |
+
"val_split": "validation",
|
| 86 |
+
"test_split": "test",
|
| 87 |
+
"continual": true,
|
| 88 |
+
"batchsize": 300,
|
| 89 |
+
"train_limit_per_task": 1,
|
| 90 |
+
"validation_limit_per_task": 1,
|
| 91 |
+
"test_limit_per_task": 1
|
| 92 |
+
},
|
| 93 |
+
{
|
| 94 |
+
"name": "test",
|
| 95 |
+
"phase": "test",
|
| 96 |
+
"test_split": "test",
|
| 97 |
+
"test_limit_per_task": 1
|
| 98 |
+
}
|
| 99 |
+
]
|
| 100 |
+
}
|
configs/validation_coco_distill_02_limit1.json
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "coco_distill_02_smoke",
|
| 3 |
+
"task_stream_path": "configs/taskstream_multimodal_main_250_50_500.json",
|
| 4 |
+
"storage_dir": "storage/validation/coco_distill_02_limit1",
|
| 5 |
+
"reset_run_on_start": true,
|
| 6 |
+
"batchsize": 300,
|
| 7 |
+
"model": {
|
| 8 |
+
"backend": "local_transformers",
|
| 9 |
+
"name": "Qwen3.5-4B",
|
| 10 |
+
"path": "models/Qwen3.5-4B",
|
| 11 |
+
"device_map": "cuda:0",
|
| 12 |
+
"torch_dtype": "bfloat16",
|
| 13 |
+
"max_new_tokens": 2048,
|
| 14 |
+
"answer_max_new_tokens": 512,
|
| 15 |
+
"temperature": 0.0,
|
| 16 |
+
"enable_thinking": false,
|
| 17 |
+
"log_path": "storage/validation/coco_distill_02_limit1/student_calls.txt"
|
| 18 |
+
},
|
| 19 |
+
"judge_model": {
|
| 20 |
+
"backend": "chat_completions",
|
| 21 |
+
"name": "qwen3.6-27b-coco-ablation-gpu3",
|
| 22 |
+
"max_new_tokens": 2048,
|
| 23 |
+
"answer_max_new_tokens": 512,
|
| 24 |
+
"temperature": 0.0,
|
| 25 |
+
"enable_thinking": false,
|
| 26 |
+
"log_path": "storage/validation/coco_distill_02_limit1/judge_model_calls.txt",
|
| 27 |
+
"base_url": "http://127.0.0.1:8017",
|
| 28 |
+
"api_key": "EMPTY",
|
| 29 |
+
"chat_template_kwargs": {
|
| 30 |
+
"enable_thinking": false
|
| 31 |
+
},
|
| 32 |
+
"timeout_seconds": 600,
|
| 33 |
+
"max_retries": 1
|
| 34 |
+
},
|
| 35 |
+
"task_interface": {
|
| 36 |
+
"mode": "auto",
|
| 37 |
+
"long_context_rule_threshold_chars": 24000,
|
| 38 |
+
"visible_context_max_chars": 24000,
|
| 39 |
+
"visible_context_max_items": 12,
|
| 40 |
+
"max_new_tokens": 640,
|
| 41 |
+
"retry_max_new_tokens": 1024,
|
| 42 |
+
"invalid_output_retries": 1,
|
| 43 |
+
"fallback_to_rules_on_invalid": true
|
| 44 |
+
},
|
| 45 |
+
"router": {
|
| 46 |
+
"use_llm_workflow_selector": true,
|
| 47 |
+
"use_memory_selector": true,
|
| 48 |
+
"use_skill_selector": true,
|
| 49 |
+
"use_tool_selector": true,
|
| 50 |
+
"capability_enabled": false,
|
| 51 |
+
"memory_selector_fallback_to_empty_on_invalid": true,
|
| 52 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 53 |
+
"tool_selector_fallback_to_empty_on_invalid": true,
|
| 54 |
+
"memory_selector_invalid_output_retries": 2,
|
| 55 |
+
"skill_selector_invalid_output_retries": 2,
|
| 56 |
+
"tool_selector_invalid_output_retries": 2
|
| 57 |
+
},
|
| 58 |
+
"optimizer": {
|
| 59 |
+
"candidate_count": 1,
|
| 60 |
+
"components": [
|
| 61 |
+
"task_interface_structuring",
|
| 62 |
+
"router_workflow",
|
| 63 |
+
"router_context"
|
| 64 |
+
],
|
| 65 |
+
"selection_objective": "stability",
|
| 66 |
+
"min_accuracy_delta": 0.0,
|
| 67 |
+
"min_correct_gain": 1,
|
| 68 |
+
"max_forget_count": 0,
|
| 69 |
+
"min_format_compliance_rate": 0.0,
|
| 70 |
+
"min_historical_anchor_count": 1,
|
| 71 |
+
"min_historical_anchors_per_task": 1
|
| 72 |
+
},
|
| 73 |
+
"memory": {
|
| 74 |
+
"enabled": true,
|
| 75 |
+
"reset_on_start": true,
|
| 76 |
+
"abstract_mode": "llm",
|
| 77 |
+
"anchor_selection_mode": "llm",
|
| 78 |
+
"anchor_count_per_batch": 5,
|
| 79 |
+
"anchor_capacity_per_task": 15,
|
| 80 |
+
"skill_mode": "llm"
|
| 81 |
+
},
|
| 82 |
+
"prediction_cache": {
|
| 83 |
+
"enabled": true
|
| 84 |
+
},
|
| 85 |
+
"checkpoint": {
|
| 86 |
+
"enabled": true,
|
| 87 |
+
"resume": true
|
| 88 |
+
},
|
| 89 |
+
"execution": {
|
| 90 |
+
"read_only_workers": 1,
|
| 91 |
+
"run_train_final": false
|
| 92 |
+
},
|
| 93 |
+
"forgetting_probe": {
|
| 94 |
+
"enabled": false
|
| 95 |
+
},
|
| 96 |
+
"task_flow": [
|
| 97 |
+
{
|
| 98 |
+
"name": "train",
|
| 99 |
+
"phase": "train",
|
| 100 |
+
"train_split": "train",
|
| 101 |
+
"val_split": "validation",
|
| 102 |
+
"test_split": "test",
|
| 103 |
+
"continual": true,
|
| 104 |
+
"batchsize": 300,
|
| 105 |
+
"train_limit_per_task": 1,
|
| 106 |
+
"validation_limit_per_task": 1,
|
| 107 |
+
"test_limit_per_task": 1
|
| 108 |
+
},
|
| 109 |
+
{
|
| 110 |
+
"name": "test",
|
| 111 |
+
"phase": "test",
|
| 112 |
+
"test_split": "test",
|
| 113 |
+
"test_limit_per_task": 1
|
| 114 |
+
}
|
| 115 |
+
]
|
| 116 |
+
}
|
configs/validation_coco_distill_03_limit1.json
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "coco_distill_03_smoke",
|
| 3 |
+
"task_stream_path": "configs/taskstream_multimodal_main_250_50_500.json",
|
| 4 |
+
"storage_dir": "storage/validation/coco_distill_03_limit1",
|
| 5 |
+
"reset_run_on_start": true,
|
| 6 |
+
"batchsize": 300,
|
| 7 |
+
"model": {
|
| 8 |
+
"backend": "local_transformers",
|
| 9 |
+
"name": "Qwen3.5-4B",
|
| 10 |
+
"path": "models/Qwen3.5-4B",
|
| 11 |
+
"device_map": "cuda:0",
|
| 12 |
+
"torch_dtype": "bfloat16",
|
| 13 |
+
"max_new_tokens": 2048,
|
| 14 |
+
"answer_max_new_tokens": 512,
|
| 15 |
+
"temperature": 0.0,
|
| 16 |
+
"enable_thinking": false,
|
| 17 |
+
"log_path": "storage/validation/coco_distill_03_limit1/student_calls.txt"
|
| 18 |
+
},
|
| 19 |
+
"selection_model": {
|
| 20 |
+
"backend": "chat_completions",
|
| 21 |
+
"name": "qwen3.6-27b-coco-ablation-gpu3",
|
| 22 |
+
"max_new_tokens": 2048,
|
| 23 |
+
"answer_max_new_tokens": 512,
|
| 24 |
+
"temperature": 0.0,
|
| 25 |
+
"enable_thinking": false,
|
| 26 |
+
"log_path": "storage/validation/coco_distill_03_limit1/selection_model_calls.txt",
|
| 27 |
+
"base_url": "http://127.0.0.1:8017",
|
| 28 |
+
"api_key": "EMPTY",
|
| 29 |
+
"chat_template_kwargs": {
|
| 30 |
+
"enable_thinking": false
|
| 31 |
+
},
|
| 32 |
+
"timeout_seconds": 600,
|
| 33 |
+
"max_retries": 1
|
| 34 |
+
},
|
| 35 |
+
"memory_model": {
|
| 36 |
+
"backend": "chat_completions",
|
| 37 |
+
"name": "qwen3.6-27b-coco-ablation-gpu3",
|
| 38 |
+
"max_new_tokens": 2048,
|
| 39 |
+
"answer_max_new_tokens": 512,
|
| 40 |
+
"temperature": 0.0,
|
| 41 |
+
"enable_thinking": false,
|
| 42 |
+
"log_path": "storage/validation/coco_distill_03_limit1/memory_model_calls.txt",
|
| 43 |
+
"base_url": "http://127.0.0.1:8017",
|
| 44 |
+
"api_key": "EMPTY",
|
| 45 |
+
"chat_template_kwargs": {
|
| 46 |
+
"enable_thinking": false
|
| 47 |
+
},
|
| 48 |
+
"timeout_seconds": 600,
|
| 49 |
+
"max_retries": 1
|
| 50 |
+
},
|
| 51 |
+
"task_interface": {
|
| 52 |
+
"mode": "auto",
|
| 53 |
+
"long_context_rule_threshold_chars": 24000,
|
| 54 |
+
"visible_context_max_chars": 24000,
|
| 55 |
+
"visible_context_max_items": 12,
|
| 56 |
+
"max_new_tokens": 640,
|
| 57 |
+
"retry_max_new_tokens": 1024,
|
| 58 |
+
"invalid_output_retries": 1,
|
| 59 |
+
"fallback_to_rules_on_invalid": true
|
| 60 |
+
},
|
| 61 |
+
"router": {
|
| 62 |
+
"use_llm_workflow_selector": true,
|
| 63 |
+
"use_memory_selector": true,
|
| 64 |
+
"use_skill_selector": true,
|
| 65 |
+
"use_tool_selector": true,
|
| 66 |
+
"capability_enabled": false,
|
| 67 |
+
"memory_selector_fallback_to_empty_on_invalid": true,
|
| 68 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 69 |
+
"tool_selector_fallback_to_empty_on_invalid": true,
|
| 70 |
+
"memory_selector_invalid_output_retries": 2,
|
| 71 |
+
"skill_selector_invalid_output_retries": 2,
|
| 72 |
+
"tool_selector_invalid_output_retries": 2
|
| 73 |
+
},
|
| 74 |
+
"optimizer": {
|
| 75 |
+
"candidate_count": 1,
|
| 76 |
+
"components": [
|
| 77 |
+
"task_interface_structuring",
|
| 78 |
+
"router_workflow",
|
| 79 |
+
"router_context"
|
| 80 |
+
],
|
| 81 |
+
"selection_objective": "stability",
|
| 82 |
+
"min_accuracy_delta": 0.0,
|
| 83 |
+
"min_correct_gain": 1,
|
| 84 |
+
"max_forget_count": 0,
|
| 85 |
+
"min_format_compliance_rate": 0.0,
|
| 86 |
+
"min_historical_anchor_count": 1,
|
| 87 |
+
"min_historical_anchors_per_task": 1
|
| 88 |
+
},
|
| 89 |
+
"memory": {
|
| 90 |
+
"enabled": true,
|
| 91 |
+
"reset_on_start": true,
|
| 92 |
+
"abstract_mode": "llm",
|
| 93 |
+
"anchor_selection_mode": "llm",
|
| 94 |
+
"anchor_count_per_batch": 5,
|
| 95 |
+
"anchor_capacity_per_task": 15,
|
| 96 |
+
"skill_mode": "llm"
|
| 97 |
+
},
|
| 98 |
+
"prediction_cache": {
|
| 99 |
+
"enabled": true
|
| 100 |
+
},
|
| 101 |
+
"checkpoint": {
|
| 102 |
+
"enabled": true,
|
| 103 |
+
"resume": true
|
| 104 |
+
},
|
| 105 |
+
"execution": {
|
| 106 |
+
"read_only_workers": 1,
|
| 107 |
+
"run_train_final": false
|
| 108 |
+
},
|
| 109 |
+
"forgetting_probe": {
|
| 110 |
+
"enabled": false
|
| 111 |
+
},
|
| 112 |
+
"task_flow": [
|
| 113 |
+
{
|
| 114 |
+
"name": "train",
|
| 115 |
+
"phase": "train",
|
| 116 |
+
"train_split": "train",
|
| 117 |
+
"val_split": "validation",
|
| 118 |
+
"test_split": "test",
|
| 119 |
+
"continual": true,
|
| 120 |
+
"batchsize": 300,
|
| 121 |
+
"train_limit_per_task": 1,
|
| 122 |
+
"validation_limit_per_task": 1,
|
| 123 |
+
"test_limit_per_task": 1
|
| 124 |
+
},
|
| 125 |
+
{
|
| 126 |
+
"name": "test",
|
| 127 |
+
"phase": "test",
|
| 128 |
+
"test_split": "test",
|
| 129 |
+
"test_limit_per_task": 1
|
| 130 |
+
}
|
| 131 |
+
]
|
| 132 |
+
}
|
configs/validation_coco_stability_limit1.json
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "Qwen3.6-27B COCO HCL stability 250-50-500 migrated",
|
| 3 |
+
"model": {
|
| 4 |
+
"backend": "chat_completions",
|
| 5 |
+
"name": "qwen3.6-27b-coco-ablation-gpu3",
|
| 6 |
+
"paper_model_name": "Qwen3.6-27B",
|
| 7 |
+
"base_url": "http://127.0.0.1:8017",
|
| 8 |
+
"api_key": "EMPTY",
|
| 9 |
+
"max_new_tokens": 2048,
|
| 10 |
+
"answer_max_new_tokens": 1024,
|
| 11 |
+
"temperature": 0.0,
|
| 12 |
+
"cleanup_output": true,
|
| 13 |
+
"enable_image_input": true,
|
| 14 |
+
"chat_template_kwargs": {
|
| 15 |
+
"enable_thinking": false
|
| 16 |
+
},
|
| 17 |
+
"json_object_for_structured_phases": true,
|
| 18 |
+
"system_prompt": "You are a concise multimodal reasoning assistant. Inspect the supplied image directly, follow the requested output schema exactly, and output only the final answer.",
|
| 19 |
+
"timeout_seconds": 600,
|
| 20 |
+
"max_retries": 1,
|
| 21 |
+
"log_path": "storage/validation/coco_stability_limit1/llm_calls.txt",
|
| 22 |
+
"log_prompt_chars": 8000
|
| 23 |
+
},
|
| 24 |
+
"execution": {
|
| 25 |
+
"read_only_workers": 2,
|
| 26 |
+
"run_train_final": true
|
| 27 |
+
},
|
| 28 |
+
"task_interface": {
|
| 29 |
+
"mode": "auto",
|
| 30 |
+
"max_new_tokens": 640,
|
| 31 |
+
"invalid_output_retries": 1,
|
| 32 |
+
"retry_max_new_tokens": 1024,
|
| 33 |
+
"fallback_to_rules_on_invalid": true
|
| 34 |
+
},
|
| 35 |
+
"router": {
|
| 36 |
+
"route_name": "qwen36_27b_coco_gpu3_hcl_stability",
|
| 37 |
+
"strip_output": true,
|
| 38 |
+
"use_llm_workflow_selector": true,
|
| 39 |
+
"use_memory_selector": true,
|
| 40 |
+
"memory_always_on": true,
|
| 41 |
+
"use_skill_selector": true,
|
| 42 |
+
"use_tool_selector": false,
|
| 43 |
+
"tool_auto_select": false,
|
| 44 |
+
"use_chat_tool_calls": false,
|
| 45 |
+
"memory_selector_max_new_tokens": 256,
|
| 46 |
+
"memory_selector_invalid_output_retries": 1,
|
| 47 |
+
"memory_selector_retry_max_new_tokens": 256,
|
| 48 |
+
"skill_selector_max_new_tokens": 256,
|
| 49 |
+
"skill_selector_invalid_output_retries": 1,
|
| 50 |
+
"skill_selector_retry_max_new_tokens": 256,
|
| 51 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 52 |
+
"capability_enabled": false,
|
| 53 |
+
"capability_execution_mode": "disabled"
|
| 54 |
+
},
|
| 55 |
+
"optimizer": {
|
| 56 |
+
"candidate_count": 3,
|
| 57 |
+
"selection_objective": "plasticity",
|
| 58 |
+
"commit_policy": "plasticity_first",
|
| 59 |
+
"historical_loss_budget": 0,
|
| 60 |
+
"max_forget_count": 0,
|
| 61 |
+
"min_primary_score_delta": 1e-09,
|
| 62 |
+
"min_correct_gain": 0,
|
| 63 |
+
"min_format_compliance_rate": 1.0,
|
| 64 |
+
"recover_reward": 1.0,
|
| 65 |
+
"forget_penalty": 1.5,
|
| 66 |
+
"min_anchor_score": -5.0,
|
| 67 |
+
"min_anchor_net_score": -0.1,
|
| 68 |
+
"max_anchor_forget_rate": 0.2,
|
| 69 |
+
"components": [
|
| 70 |
+
"task_interface_structuring",
|
| 71 |
+
"router_workflow",
|
| 72 |
+
"memory_selector",
|
| 73 |
+
"router_context"
|
| 74 |
+
]
|
| 75 |
+
},
|
| 76 |
+
"memory": {
|
| 77 |
+
"enabled": true,
|
| 78 |
+
"raw_capacity_per_task": 10,
|
| 79 |
+
"abstract_capacity_per_task": 2,
|
| 80 |
+
"anchor_capacity_per_task": 25,
|
| 81 |
+
"retrieval_top_k": 2,
|
| 82 |
+
"reset_on_start": false,
|
| 83 |
+
"abstract_mode": "llm",
|
| 84 |
+
"abstract_max_new_tokens": 512,
|
| 85 |
+
"anchor_selection_mode": "llm",
|
| 86 |
+
"anchor_count_per_batch": 2,
|
| 87 |
+
"anchor_candidate_limit": 10,
|
| 88 |
+
"anchor_selection_max_new_tokens": 128,
|
| 89 |
+
"skill_enabled": true,
|
| 90 |
+
"skill_mode": "llm",
|
| 91 |
+
"abstract_prompt_max_chars": 12000
|
| 92 |
+
},
|
| 93 |
+
"forgetting_probe": {
|
| 94 |
+
"enabled": true,
|
| 95 |
+
"interval_batches": 2,
|
| 96 |
+
"samples_per_task": 100,
|
| 97 |
+
"target_correct_ratio": 0.8,
|
| 98 |
+
"seed": 20260726,
|
| 99 |
+
"split": "test",
|
| 100 |
+
"historical_tasks_only": true,
|
| 101 |
+
"reuse_probe_set": true,
|
| 102 |
+
"record_predictions": false
|
| 103 |
+
},
|
| 104 |
+
"task_stream_path": "configs/taskstream_multimodal_main_250_50_500.json",
|
| 105 |
+
"reset_run_on_start": true,
|
| 106 |
+
"storage_dir": "storage/validation/coco_stability_limit1",
|
| 107 |
+
"prediction_cache": {
|
| 108 |
+
"enabled": true,
|
| 109 |
+
"path": "storage/validation/coco_stability_limit1/prediction_cache/read_only_predictions.jsonl"
|
| 110 |
+
},
|
| 111 |
+
"checkpoint": {
|
| 112 |
+
"enabled": true,
|
| 113 |
+
"path": "storage/validation/coco_stability_limit1/checkpoint.json",
|
| 114 |
+
"resume": true
|
| 115 |
+
},
|
| 116 |
+
"task_flow": [
|
| 117 |
+
{
|
| 118 |
+
"name": "train",
|
| 119 |
+
"phase": "train",
|
| 120 |
+
"train_split": "train",
|
| 121 |
+
"val_split": "validation",
|
| 122 |
+
"test_split": "test",
|
| 123 |
+
"continual": true,
|
| 124 |
+
"batchsize": 25,
|
| 125 |
+
"train_limit_per_task": 1,
|
| 126 |
+
"validation_limit_per_task": 1,
|
| 127 |
+
"test_limit_per_task": 1
|
| 128 |
+
},
|
| 129 |
+
{
|
| 130 |
+
"name": "test",
|
| 131 |
+
"phase": "test",
|
| 132 |
+
"test_split": "test",
|
| 133 |
+
"test_limit_per_task": 1,
|
| 134 |
+
"group_by_task": true
|
| 135 |
+
}
|
| 136 |
+
]
|
| 137 |
+
}
|
configs/validation_distill_01_limit1.json
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "hcl_stability_01_4b",
|
| 3 |
+
"task_stream_path": "configs/taskstream_textual_main_250_50_500.json",
|
| 4 |
+
"storage_dir": "storage/validation/distill_01_limit1_full_output",
|
| 5 |
+
"reset_run_on_start": true,
|
| 6 |
+
"batchsize": 300,
|
| 7 |
+
"model": {
|
| 8 |
+
"backend": "local_transformers",
|
| 9 |
+
"name": "Qwen3-4B",
|
| 10 |
+
"path": "models/Qwen3-4B",
|
| 11 |
+
"device_map": "cuda:0",
|
| 12 |
+
"torch_dtype": "bfloat16",
|
| 13 |
+
"max_new_tokens": 2048,
|
| 14 |
+
"answer_max_new_tokens": 200,
|
| 15 |
+
"temperature": 0.0,
|
| 16 |
+
"enable_thinking": false,
|
| 17 |
+
"log_path": "storage/validation/distill_01_limit1_full_output/model_calls.txt"
|
| 18 |
+
},
|
| 19 |
+
"task_interface": {
|
| 20 |
+
"mode": "auto",
|
| 21 |
+
"long_context_rule_threshold_chars": 24000,
|
| 22 |
+
"visible_context_max_chars": 24000,
|
| 23 |
+
"visible_context_max_items": 12
|
| 24 |
+
},
|
| 25 |
+
"router": {
|
| 26 |
+
"use_llm_workflow_selector": true,
|
| 27 |
+
"use_memory_selector": true,
|
| 28 |
+
"use_skill_selector": true,
|
| 29 |
+
"use_tool_selector": true,
|
| 30 |
+
"capability_enabled": false,
|
| 31 |
+
"memory_selector_fallback_to_empty_on_invalid": true,
|
| 32 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 33 |
+
"tool_selector_fallback_to_empty_on_invalid": true,
|
| 34 |
+
"memory_selector_invalid_output_retries": 2,
|
| 35 |
+
"skill_selector_invalid_output_retries": 2,
|
| 36 |
+
"tool_selector_invalid_output_retries": 2
|
| 37 |
+
},
|
| 38 |
+
"optimizer": {
|
| 39 |
+
"candidate_count": 3,
|
| 40 |
+
"components": [
|
| 41 |
+
"task_interface_structuring",
|
| 42 |
+
"router_workflow",
|
| 43 |
+
"router_context"
|
| 44 |
+
],
|
| 45 |
+
"selection_objective": "stability",
|
| 46 |
+
"min_accuracy_delta": 0.0,
|
| 47 |
+
"min_correct_gain": 1,
|
| 48 |
+
"max_forget_count": 0,
|
| 49 |
+
"min_format_compliance_rate": 0.0,
|
| 50 |
+
"min_historical_anchor_count": 1,
|
| 51 |
+
"min_historical_anchors_per_task": 1
|
| 52 |
+
},
|
| 53 |
+
"memory": {
|
| 54 |
+
"enabled": true,
|
| 55 |
+
"reset_on_start": true,
|
| 56 |
+
"abstract_mode": "llm",
|
| 57 |
+
"anchor_selection_mode": "llm",
|
| 58 |
+
"anchor_count_per_batch": 5,
|
| 59 |
+
"anchor_capacity_per_task": 15,
|
| 60 |
+
"skill_mode": "llm"
|
| 61 |
+
},
|
| 62 |
+
"prediction_cache": {
|
| 63 |
+
"enabled": true
|
| 64 |
+
},
|
| 65 |
+
"checkpoint": {
|
| 66 |
+
"enabled": true,
|
| 67 |
+
"resume": true
|
| 68 |
+
},
|
| 69 |
+
"execution": {
|
| 70 |
+
"read_only_workers": 1,
|
| 71 |
+
"run_train_final": false
|
| 72 |
+
},
|
| 73 |
+
"forgetting_probe": {
|
| 74 |
+
"enabled": false
|
| 75 |
+
},
|
| 76 |
+
"task_flow": [
|
| 77 |
+
{
|
| 78 |
+
"name": "train",
|
| 79 |
+
"phase": "train",
|
| 80 |
+
"train_split": "train",
|
| 81 |
+
"val_split": "validation",
|
| 82 |
+
"test_split": "test",
|
| 83 |
+
"continual": true,
|
| 84 |
+
"batchsize": 300,
|
| 85 |
+
"train_limit_per_task": 1,
|
| 86 |
+
"validation_limit_per_task": 1,
|
| 87 |
+
"test_limit_per_task": 1
|
| 88 |
+
},
|
| 89 |
+
{
|
| 90 |
+
"name": "test",
|
| 91 |
+
"phase": "test",
|
| 92 |
+
"test_split": "test",
|
| 93 |
+
"test_limit_per_task": 1
|
| 94 |
+
}
|
| 95 |
+
]
|
| 96 |
+
}
|
configs/validation_distill_02_limit1.json
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "hcl_stability_02_4b_opt27b",
|
| 3 |
+
"task_stream_path": "configs/taskstream_textual_main_250_50_500.json",
|
| 4 |
+
"storage_dir": "storage/validation/distill_02_limit1",
|
| 5 |
+
"reset_run_on_start": true,
|
| 6 |
+
"batchsize": 300,
|
| 7 |
+
"model": {
|
| 8 |
+
"backend": "local_transformers",
|
| 9 |
+
"name": "Qwen3-4B",
|
| 10 |
+
"path": "models/Qwen3-4B",
|
| 11 |
+
"device_map": "cuda:0",
|
| 12 |
+
"torch_dtype": "bfloat16",
|
| 13 |
+
"max_new_tokens": 2048,
|
| 14 |
+
"answer_max_new_tokens": 200,
|
| 15 |
+
"temperature": 0.0,
|
| 16 |
+
"enable_thinking": false,
|
| 17 |
+
"log_path": "storage/validation/distill_02_limit1/model_calls.txt"
|
| 18 |
+
},
|
| 19 |
+
"judge_model": {
|
| 20 |
+
"backend": "chat_completions",
|
| 21 |
+
"name": "qwen3.6-27b-coco-ablation-gpu3",
|
| 22 |
+
"max_new_tokens": 2048,
|
| 23 |
+
"answer_max_new_tokens": 200,
|
| 24 |
+
"temperature": 0.0,
|
| 25 |
+
"enable_thinking": false,
|
| 26 |
+
"log_path": "storage/validation/distill_02_limit1/judge_model_calls.txt",
|
| 27 |
+
"base_url": "http://127.0.0.1:8017",
|
| 28 |
+
"api_key": "EMPTY",
|
| 29 |
+
"timeout_seconds": 600,
|
| 30 |
+
"max_retries": 1,
|
| 31 |
+
"chat_template_kwargs": {
|
| 32 |
+
"enable_thinking": false
|
| 33 |
+
}
|
| 34 |
+
},
|
| 35 |
+
"task_interface": {
|
| 36 |
+
"mode": "auto",
|
| 37 |
+
"long_context_rule_threshold_chars": 24000,
|
| 38 |
+
"visible_context_max_chars": 24000,
|
| 39 |
+
"visible_context_max_items": 12
|
| 40 |
+
},
|
| 41 |
+
"router": {
|
| 42 |
+
"use_llm_workflow_selector": true,
|
| 43 |
+
"use_memory_selector": true,
|
| 44 |
+
"use_skill_selector": true,
|
| 45 |
+
"use_tool_selector": true,
|
| 46 |
+
"capability_enabled": false,
|
| 47 |
+
"memory_selector_fallback_to_empty_on_invalid": true,
|
| 48 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 49 |
+
"tool_selector_fallback_to_empty_on_invalid": true,
|
| 50 |
+
"memory_selector_invalid_output_retries": 2,
|
| 51 |
+
"skill_selector_invalid_output_retries": 2,
|
| 52 |
+
"tool_selector_invalid_output_retries": 2
|
| 53 |
+
},
|
| 54 |
+
"optimizer": {
|
| 55 |
+
"candidate_count": 3,
|
| 56 |
+
"components": [
|
| 57 |
+
"task_interface_structuring",
|
| 58 |
+
"router_workflow",
|
| 59 |
+
"router_context"
|
| 60 |
+
],
|
| 61 |
+
"selection_objective": "stability",
|
| 62 |
+
"min_accuracy_delta": 0.0,
|
| 63 |
+
"min_correct_gain": 1,
|
| 64 |
+
"max_forget_count": 0,
|
| 65 |
+
"min_format_compliance_rate": 0.0,
|
| 66 |
+
"min_historical_anchor_count": 1,
|
| 67 |
+
"min_historical_anchors_per_task": 1
|
| 68 |
+
},
|
| 69 |
+
"memory": {
|
| 70 |
+
"enabled": true,
|
| 71 |
+
"reset_on_start": true,
|
| 72 |
+
"abstract_mode": "llm",
|
| 73 |
+
"anchor_selection_mode": "llm",
|
| 74 |
+
"anchor_count_per_batch": 5,
|
| 75 |
+
"anchor_capacity_per_task": 15,
|
| 76 |
+
"skill_mode": "llm"
|
| 77 |
+
},
|
| 78 |
+
"prediction_cache": {
|
| 79 |
+
"enabled": true
|
| 80 |
+
},
|
| 81 |
+
"checkpoint": {
|
| 82 |
+
"enabled": true,
|
| 83 |
+
"resume": true
|
| 84 |
+
},
|
| 85 |
+
"execution": {
|
| 86 |
+
"read_only_workers": 1,
|
| 87 |
+
"run_train_final": false
|
| 88 |
+
},
|
| 89 |
+
"forgetting_probe": {
|
| 90 |
+
"enabled": false
|
| 91 |
+
},
|
| 92 |
+
"task_flow": [
|
| 93 |
+
{
|
| 94 |
+
"name": "train",
|
| 95 |
+
"phase": "train",
|
| 96 |
+
"train_split": "train",
|
| 97 |
+
"val_split": "validation",
|
| 98 |
+
"test_split": "test",
|
| 99 |
+
"continual": true,
|
| 100 |
+
"batchsize": 300,
|
| 101 |
+
"train_limit_per_task": 1,
|
| 102 |
+
"validation_limit_per_task": 1,
|
| 103 |
+
"test_limit_per_task": 1
|
| 104 |
+
},
|
| 105 |
+
{
|
| 106 |
+
"name": "test",
|
| 107 |
+
"phase": "test",
|
| 108 |
+
"test_split": "test",
|
| 109 |
+
"test_limit_per_task": 1
|
| 110 |
+
}
|
| 111 |
+
]
|
| 112 |
+
}
|
configs/validation_distill_03_limit1.json
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"project_name": "hcl_stability_03_4b_teacher27b",
|
| 3 |
+
"task_stream_path": "configs/taskstream_textual_main_250_50_500.json",
|
| 4 |
+
"storage_dir": "storage/validation/distill_03_limit1",
|
| 5 |
+
"reset_run_on_start": true,
|
| 6 |
+
"batchsize": 300,
|
| 7 |
+
"model": {
|
| 8 |
+
"backend": "local_transformers",
|
| 9 |
+
"name": "Qwen3-4B",
|
| 10 |
+
"path": "models/Qwen3-4B",
|
| 11 |
+
"device_map": "cuda:0",
|
| 12 |
+
"torch_dtype": "bfloat16",
|
| 13 |
+
"max_new_tokens": 2048,
|
| 14 |
+
"answer_max_new_tokens": 200,
|
| 15 |
+
"temperature": 0.0,
|
| 16 |
+
"enable_thinking": false,
|
| 17 |
+
"log_path": "storage/validation/distill_03_limit1/model_calls.txt"
|
| 18 |
+
},
|
| 19 |
+
"selection_model": {
|
| 20 |
+
"backend": "chat_completions",
|
| 21 |
+
"name": "qwen3.6-27b-coco-ablation-gpu3",
|
| 22 |
+
"max_new_tokens": 2048,
|
| 23 |
+
"answer_max_new_tokens": 200,
|
| 24 |
+
"temperature": 0.0,
|
| 25 |
+
"enable_thinking": false,
|
| 26 |
+
"log_path": "storage/validation/distill_03_limit1/selection_model_calls.txt",
|
| 27 |
+
"base_url": "http://127.0.0.1:8017",
|
| 28 |
+
"api_key": "EMPTY",
|
| 29 |
+
"timeout_seconds": 600,
|
| 30 |
+
"max_retries": 1,
|
| 31 |
+
"chat_template_kwargs": {
|
| 32 |
+
"enable_thinking": false
|
| 33 |
+
}
|
| 34 |
+
},
|
| 35 |
+
"memory_model": {
|
| 36 |
+
"backend": "chat_completions",
|
| 37 |
+
"name": "qwen3.6-27b-coco-ablation-gpu3",
|
| 38 |
+
"max_new_tokens": 2048,
|
| 39 |
+
"answer_max_new_tokens": 200,
|
| 40 |
+
"temperature": 0.0,
|
| 41 |
+
"enable_thinking": false,
|
| 42 |
+
"log_path": "storage/validation/distill_03_limit1/memory_model_calls.txt",
|
| 43 |
+
"base_url": "http://127.0.0.1:8017",
|
| 44 |
+
"api_key": "EMPTY",
|
| 45 |
+
"timeout_seconds": 600,
|
| 46 |
+
"max_retries": 1,
|
| 47 |
+
"chat_template_kwargs": {
|
| 48 |
+
"enable_thinking": false
|
| 49 |
+
}
|
| 50 |
+
},
|
| 51 |
+
"task_interface": {
|
| 52 |
+
"mode": "auto",
|
| 53 |
+
"long_context_rule_threshold_chars": 24000,
|
| 54 |
+
"visible_context_max_chars": 24000,
|
| 55 |
+
"visible_context_max_items": 12
|
| 56 |
+
},
|
| 57 |
+
"router": {
|
| 58 |
+
"use_llm_workflow_selector": true,
|
| 59 |
+
"use_memory_selector": true,
|
| 60 |
+
"use_skill_selector": true,
|
| 61 |
+
"use_tool_selector": true,
|
| 62 |
+
"capability_enabled": false,
|
| 63 |
+
"memory_selector_fallback_to_empty_on_invalid": true,
|
| 64 |
+
"skill_selector_fallback_to_empty_on_invalid": true,
|
| 65 |
+
"tool_selector_fallback_to_empty_on_invalid": true,
|
| 66 |
+
"memory_selector_invalid_output_retries": 2,
|
| 67 |
+
"skill_selector_invalid_output_retries": 2,
|
| 68 |
+
"tool_selector_invalid_output_retries": 2
|
| 69 |
+
},
|
| 70 |
+
"optimizer": {
|
| 71 |
+
"candidate_count": 3,
|
| 72 |
+
"components": [
|
| 73 |
+
"task_interface_structuring",
|
| 74 |
+
"router_workflow",
|
| 75 |
+
"router_context"
|
| 76 |
+
],
|
| 77 |
+
"selection_objective": "stability",
|
| 78 |
+
"min_accuracy_delta": 0.0,
|
| 79 |
+
"min_correct_gain": 1,
|
| 80 |
+
"max_forget_count": 0,
|
| 81 |
+
"min_format_compliance_rate": 0.0,
|
| 82 |
+
"min_historical_anchor_count": 1,
|
| 83 |
+
"min_historical_anchors_per_task": 1
|
| 84 |
+
},
|
| 85 |
+
"memory": {
|
| 86 |
+
"enabled": true,
|
| 87 |
+
"reset_on_start": true,
|
| 88 |
+
"abstract_mode": "llm",
|
| 89 |
+
"anchor_selection_mode": "llm",
|
| 90 |
+
"anchor_count_per_batch": 5,
|
| 91 |
+
"anchor_capacity_per_task": 15,
|
| 92 |
+
"skill_mode": "llm"
|
| 93 |
+
},
|
| 94 |
+
"prediction_cache": {
|
| 95 |
+
"enabled": true
|
| 96 |
+
},
|
| 97 |
+
"checkpoint": {
|
| 98 |
+
"enabled": true,
|
| 99 |
+
"resume": true
|
| 100 |
+
},
|
| 101 |
+
"execution": {
|
| 102 |
+
"read_only_workers": 1,
|
| 103 |
+
"run_train_final": false
|
| 104 |
+
},
|
| 105 |
+
"forgetting_probe": {
|
| 106 |
+
"enabled": false
|
| 107 |
+
},
|
| 108 |
+
"task_flow": [
|
| 109 |
+
{
|
| 110 |
+
"name": "train",
|
| 111 |
+
"phase": "train",
|
| 112 |
+
"train_split": "train",
|
| 113 |
+
"val_split": "validation",
|
| 114 |
+
"test_split": "test",
|
| 115 |
+
"continual": true,
|
| 116 |
+
"batchsize": 300,
|
| 117 |
+
"train_limit_per_task": 1,
|
| 118 |
+
"validation_limit_per_task": 1,
|
| 119 |
+
"test_limit_per_task": 1
|
| 120 |
+
},
|
| 121 |
+
{
|
| 122 |
+
"name": "test",
|
| 123 |
+
"phase": "test",
|
| 124 |
+
"test_split": "test",
|
| 125 |
+
"test_limit_per_task": 1
|
| 126 |
+
}
|
| 127 |
+
]
|
| 128 |
+
}
|
data/README.md
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# External data layout
|
| 2 |
+
|
| 3 |
+
Datasets are not redistributed in this repository. After obtaining each dataset according to its license and the paper's preprocessing protocol, place the generated task-stream files and splits under this directory.
|
| 4 |
+
|
| 5 |
+
The task-stream manifests are included under `configs/`. Supply the external splits in this layout:
|
| 6 |
+
|
| 7 |
+
```text
|
| 8 |
+
data/
|
| 9 |
+
└── datasets/
|
| 10 |
+
├── musique/{train,validation,anchor,test}.jsonl
|
| 11 |
+
├── proofwriter/{train,validation,anchor,test}.jsonl
|
| 12 |
+
├── gsm8k/{train,validation,anchor,test}.jsonl
|
| 13 |
+
├── hotpotqa/{train,validation,anchor,test}.jsonl
|
| 14 |
+
├── coco_detection/{train,validation,test}.jsonl
|
| 15 |
+
├── coco_caption/{train,validation,test}.jsonl
|
| 16 |
+
├── refcoco_grounding/{train,validation,test}.jsonl
|
| 17 |
+
└── vqav2/{train,validation,test}.jsonl
|
| 18 |
+
```
|
| 19 |
+
|
| 20 |
+
Prepare disjoint splits according to the paper protocol. The main run configurations apply per-task limits of 250 adaptation examples, 50 validation examples, and 500 test examples.
|
| 21 |
+
|
| 22 |
+
## Reproducible split builders
|
| 23 |
+
|
| 24 |
+
The recovered textual-reasoning stream builder is integrated as
|
| 25 |
+
`scripts/build_textual_stream.py`. It preserves the experiment seed and the
|
| 26 |
+
task-specific stratified sampling protocol. The default output is `data/datasets/`:
|
| 27 |
+
|
| 28 |
+
```bash
|
| 29 |
+
python scripts/build_textual_stream.py \
|
| 30 |
+
--source-root /path/to/existing/gsm8k-proofwriter-hotpotqa/splits \
|
| 31 |
+
--musique-root /path/to/musique/data
|
| 32 |
+
```
|
| 33 |
+
|
| 34 |
+
For a task-stream manifest whose train files have not yet been split, use the
|
| 35 |
+
generic deterministic JSON/JSONL splitter. It resolves dataset paths the same
|
| 36 |
+
way as the runtime loader and does not overwrite files unless requested:
|
| 37 |
+
|
| 38 |
+
```bash
|
| 39 |
+
python scripts/split_task_stream.py \
|
| 40 |
+
--config configs/my_taskstream.json \
|
| 41 |
+
--output-config configs/my_taskstream_split.json \
|
| 42 |
+
--val-ratio 0.2
|
| 43 |
+
```
|
| 44 |
+
|
| 45 |
+
The recovered multimodal 500/100/500 manifest is available at
|
| 46 |
+
`configs/taskstream_multimodal_recovered_500_100_500.json`. Place its JSON split files under
|
| 47 |
+
`data/datasets_multimodal_500_100_500/`. Validation is explicitly reused as the
|
| 48 |
+
anchor split, matching the recovered experiment directory. Image paths inside
|
| 49 |
+
the external records may need relocation for the local COCO installation.
|
| 50 |
+
|
| 51 |
+
The exact sampled record files for the independent textual budget sweep were recovered from the experiment server. They are not redistributed here because benchmark data remain subject to their original licenses. Place them under `data/datasets_budget_300_80_80_600/` using the layout in `configs/taskstream_textual_budget_300_80_80_600.json`.
|
| 52 |
+
|
| 53 |
+
The recovered budget-sweep counts are 300 train, 80 validation, 80 anchor, and 600 test records for every task. For GSM8K, ProofWriter, and HotpotQA, the recovered anchor file is byte-identical to the validation file; MuSiQue uses separate validation and anchor samples. This is recorded explicitly rather than silently claiming all evaluator subsets are mutually disjoint. Test records remain separate.
|
| 54 |
+
|
| 55 |
+
The additional server also contains larger ordered source pools for the main textual and multimodal runs. Because no dedicated 250/50/500 manifest was present, the exact main-run sampled record IDs remain unconfirmed in this release instead of being inferred from those larger pools.
|
| 56 |
+
|
| 57 |
+
The included single-task textual stream expects:
|
| 58 |
+
|
| 59 |
+
```text
|
| 60 |
+
data/
|
| 61 |
+
└── datasets/
|
| 62 |
+
└── musique/
|
| 63 |
+
├── train.jsonl
|
| 64 |
+
├── validation.jsonl
|
| 65 |
+
├── test.jsonl
|
| 66 |
+
└── anchor.jsonl
|
| 67 |
+
```
|
| 68 |
+
|
| 69 |
+
Task-stream JSON files can point to any project-relative layout. Avoid adding personal absolute paths to committed configurations.
|
docs/assets/capability-aware-results.png
ADDED
|
docs/assets/controlled-forgetting.png
ADDED
|
docs/assets/distillation-results.png
ADDED
|
docs/assets/logo.png
ADDED
|
Git LFS Details
|
docs/assets/method-overview.png
ADDED
|
Git LFS Details
|
docs/assets/teaser.png
ADDED
|
Git LFS Details
|
examples/data/test.jsonl
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"id":"test-1","question":"What is 2+2?","answer":"4"}
|
examples/data/train.jsonl
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"id":"train-1","question":"What is 2+2?","answer":"4"}
|
examples/task_stream.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"tasks": [
|
| 3 |
+
{
|
| 4 |
+
"task_name": "arithmetic_smoke",
|
| 5 |
+
"task_type": "question_answering",
|
| 6 |
+
"modality": ["text"],
|
| 7 |
+
"splits": {
|
| 8 |
+
"train": "data/train.jsonl",
|
| 9 |
+
"test": "data/test.jsonl"
|
| 10 |
+
}
|
| 11 |
+
}
|
| 12 |
+
]
|
| 13 |
+
}
|
experiments/HCL_ALFworld/README.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# HCL ALFWorld experiments
|
| 2 |
+
|
| 3 |
+
This module contains the ALFWorld experiment implementation, configurations, task sequences, and command-line entry point used with the unified HCL submission.
|
| 4 |
+
|
| 5 |
+
## Installation
|
| 6 |
+
|
| 7 |
+
Python 3.9 through 3.12 is supported by the package metadata.
|
| 8 |
+
|
| 9 |
+
```bash
|
| 10 |
+
python -m venv .venv
|
| 11 |
+
source .venv/bin/activate
|
| 12 |
+
python -m pip install -e '.[llm]'
|
| 13 |
+
```
|
| 14 |
+
|
| 15 |
+
Use the `local` extra instead of `llm` when running a local Transformers model, or install both extras when both backends are needed.
|
| 16 |
+
|
| 17 |
+
## Usage
|
| 18 |
+
|
| 19 |
+
```bash
|
| 20 |
+
hcl-alfworld --help
|
| 21 |
+
```
|
| 22 |
+
|
| 23 |
+
Experiment definitions are under `configs/`, and the supplied domain-incremental task sequences are under `sequences/`. External ALFWorld assets and model credentials are intentionally not bundled. API credentials should be supplied through the environment variable named by the selected configuration's `api_key_env` field.
|
| 24 |
+
|
| 25 |
+
The `scripts/bootstrap.sh` helper documents the environment bootstrap expected by this module.
|
experiments/HCL_ALFworld/configs/ablations/no_capabilities.yaml
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
extends: ../hcl.yaml
|
| 2 |
+
output_dir: outputs/ablation_no_capabilities_seed42
|
| 3 |
+
harness:
|
| 4 |
+
capabilities_enabled: false
|
| 5 |
+
|
experiments/HCL_ALFworld/configs/ablations/no_gate.yaml
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
extends: ../hcl.yaml
|
| 2 |
+
output_dir: outputs/ablation_no_gate_seed42
|
| 3 |
+
harness:
|
| 4 |
+
gate_enabled: false
|
| 5 |
+
|
experiments/HCL_ALFworld/configs/ablations/no_memory.yaml
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
extends: ../hcl.yaml
|
| 2 |
+
output_dir: outputs/ablation_no_memory_seed42
|
| 3 |
+
harness:
|
| 4 |
+
memory_enabled: false
|
| 5 |
+
|
experiments/HCL_ALFworld/configs/ablations/stability_gate.yaml
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
extends: ../hcl_abstract_only.yaml
|
| 2 |
+
output_dir: outputs/hcl_abstract_only_stability_llm_seed42
|
| 3 |
+
|
| 4 |
+
harness:
|
| 5 |
+
# Reproduce the original whole-candidate gate used by completed historical runs.
|
| 6 |
+
gate_mode: stability
|
experiments/HCL_ALFworld/configs/ablations/static.yaml
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
extends: ../hcl.yaml
|
| 2 |
+
|
| 3 |
+
# Frozen pass@1 baseline on the complete official valid_unseen split.
|
| 4 |
+
run_mode: standard_evaluation
|
| 5 |
+
output_dir: outputs/ablation_static_llm_seed42
|
| 6 |
+
|
| 7 |
+
standard_evaluation:
|
| 8 |
+
game_source: full_split
|
| 9 |
+
split: valid_unseen
|
| 10 |
+
expected_game_count: 134
|
| 11 |
+
|
| 12 |
+
harness:
|
| 13 |
+
updates_enabled: false
|
| 14 |
+
# The frozen baseline evaluates the base action model without learned or
|
| 15 |
+
# environment-grounded capability descriptions in its prompt.
|
| 16 |
+
capabilities_enabled: false
|
experiments/HCL_ALFworld/configs/baselines/alfworld_standard.yaml
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
extends: ../hcl.yaml
|
| 2 |
+
|
| 3 |
+
# Frozen pass@1 evaluation on the complete official ALFWorld valid_unseen split.
|
| 4 |
+
run_mode: standard_evaluation
|
| 5 |
+
output_dir: outputs/baseline_alfworld_standard_seed42
|
| 6 |
+
|
| 7 |
+
standard_evaluation:
|
| 8 |
+
game_source: full_split
|
| 9 |
+
split: valid_unseen
|
| 10 |
+
expected_game_count: 134
|
| 11 |
+
|
| 12 |
+
harness:
|
| 13 |
+
updates_enabled: false
|