Repository navigation
Calibrate three retrieval tasks and fix verifier timing and isolation - #25
Merged
hanhainebula merged 4 commits intoOct 23, 2026
Conversation
Replace the single-run latency score with five alternating measurements and a continuous 4x-to-16x speedup reward, retaining per-round quality gates. Freeze indexes, isolate invocations, repair Python/thread limits, and export verifier diagnostics. Preserve the evaluated v0.5.2 package and regression coverage. The recorded Luna/max trial is a valid zero with a passing integrity judge; 16x full-score feasibility remains unproven.
Replace the unsupported quality anchor with a frozen public ridge baseline measured at A0=0.62. Exclude self-document text copies, retain the 60% runtime gate, and isolate deterministic offline evaluation. Select a single GPU explicitly in both phases and update the shared image test to accept validated device_ids reservations. Preserve the evaluated v0.2.0 package; the recorded Luna/max score is 18.4211 with a passing integrity judge.
Set 512 MiB memory, a 64 MiB persisted index workspace, and one logical CPU for online queries. Require deployment restart, at least 95% Accuracy@3, and a P95 latency factor targeting 30 ms; allow 150 seconds for construction. Fix exit timing, completed-output snapshots, and verifier file limits. Preserve the evaluated v0.7.0 package with task regressions; the recorded Luna/max score is 20.4719 and the frozen reference reaches 95 on hidden queries.
Address the P1 and P2 findings from the PR VectorSpaceLab#25 review. Wait for live submission processes to exit, remove submission-owned System V shared memory, message queues and semaphores, and reject incomplete cleanup. Retain the existing POSIX shared-memory cleanup. Include protected output capture in both query latency and the 0.5-second deadline. Record process-exit and capture durations separately, and prevent failed or late captures from earning query credit. Add regressions for IPC cleanup and retained-file-descriptor writes after client exit. Bump the task to v0.7.1 and correct the timing/IPC descriptions. Data, interfaces, resource limits and the scoring formula are unchanged. Validation: isolated release and merge-ready checks; 174 shared tests; 20 task tests with 14 passed and 6 Docker-only cases skipped on the host. The author's frozen v0.7.1 evidence records all 20 Docker regressions passing. The original Luna/max submission and trajectory were regraded, not solved again: 19.027635/100, Accuracy@3 0.95, P95 149.782145 ms, judge=1, with no trial exception or OOM. Preserve the original v0.7.0 result.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Revise three existing retrieval tasks so their quality baselines, resource budgets, timing, and scores match the documented optimization objectives. This changes task settings and graders together. Fixed input assets, splits, and asset manifests are unchanged.
tasks/sparse-retrieval-pruning— v0.5.2, CPU: Replace the old 4× full-score threshold with normalized rewardclip((speedup - 4) / 12, 0, 1). Measure speedup using the ratio of medians from five complete search calls, alternating starter/candidate order, and require NDCG@10 ≥ 0.89 and Recall@100 ≥ 0.99 in every round. Isolate each invocation with fresh writable directories and frozen inputs/indexes. Fix interpreter/dependency setup, process-exit timing, resource accounting, and persistent diagnostic export. Budgets remain one CPU, 32 GiB RAM, and no swap or GPU.tasks/query-encoder-alignment— v0.2.0, one GPU: Replace the unsupported quality anchor with a reproducible Qwen3-Embedding-0.6B plus centered-ridge baseline, fitted without relevance labels and recomputed from locked inputs/code. Exclude both identical IDs and normalized identical text from retrieval results. Scoreclip((A - A0) / (1 - A0), 0, 1)when candidate runtime is at most 60% of the 4B reference runtime; the verified hidden baseline isA0 = 0.62. Repair external timing, isolated determinism checks, offline execution, and credential isolation. Both phases use an explicit GPU device mapping; the shared image test now validates either a singledevice_idsentry orcount: 1, rejecting their combination.tasks/memory-constrained-dense-retrieval— v0.7.0, CPU: Set 512 MiB total memory with no swap, a kernel-enforced 64 MiB persisted-index workspace, 16 CPUs for building, and one logical CPU for queries and descendants. Restart the submission after building and include cold-start cost. Allow 150 seconds to build and 0.5 seconds per query. Require Accuracy@3 ≥ 0.95 and score normalized rewardA * min(1, 0.030 / P95). Fix process-exit timing, completed-output snapshots, two-phase file limits, cleanup, and reward finalization.This is the second PR, following the separate Docker lifecycle-timeout fix (
1bd88b5). It contains these three task commits:cc49163— Calibrate sparse retrieval speedup scoring and isolate repeated runs.29b4686— Calibrate query encoder quality and repair verifier execution.de82d40— Revise dense retrieval resource limits and latency grading.Existing
task.tomlauthor records (Search-SWE) and prior history are preserved. The only shared-file change in these commits is the GPU reservation regression test required by query-encoder-alignment. The two lifecycle-timeout files belong to the preceding PR.Validation evidence
Checks rerun for this PR preparation: An isolated worktree contained exactly the 68 committed files over
21ab7a32ed75d4d463b6bc91deb0f304bcb3e3b5, excluding unrelated local changes and unfinished task directories.Release: zero errors/warnings; merge-ready: zero errors; shared tests: 174 passed; scaffolder: 5 passed; maintainer helper suite: 12 passed. Task regressions: sparse 9 passed, query 14 passed, dense 11 passed with 5 Docker-only cases skipped on the host. Asset
--verify-onlychecks passed for all three packages (5, 30, and 8 files respectively). Committed content hashes match the reviewed scope and frozen task handoffs.Existing runtime evidence retained and reviewed: Both task images were built during task revision. Dense's final Docker regression suite passed all 16 cases; negative cases include a 65 MiB index rejected with ENOSPC and a 700 MiB allocation killed for OOM. Its frozen reference scored 100 on public queries and 95 on hidden queries. Sparse has a quality-passing frozen reference at 7.499× speedup (29.1591/100). Query's two independent baseline fits and public predictions were byte-identical; its baseline, isolation, and grading boundary checks are documented in the task README.
All three formal trials used Codex + OpenRouter
openai/gpt-6-luna, reasoning effortmax. Their saved agent trajectories and verifier outputs were inspected; all completed without trial exceptions and received integrity-judge value 1.Archived trial directories under local
jobs/(outputs are intentionally excluded from Git):sparse-retrieval-pruning-codex-openrouter-luna-max-v051-20261022-r2/2026-10-22__19-57-28/sparse-retrieval-pruning__qMd8Mowquery-encoder-alignment-codex-openrouter-luna-max-v020-20261022-r2/2026-10-22__20-15-17/query-encoder-alignment__bBNpj6kmemory-constrained-dense-retrieval-codex-openrouter-luna-max-v070-20261023/2026-10-23__04-01-17/memory-constrained-dense-retriev__yqhYBm5Each contains
agent/trajectory.json,result.json, and verifier evidence. Sparse's agent ran v0.5.1 and its verifier ran v0.5.2 after removing an invalid UID-wide process limit; the task inputs and scoring were unchanged. The subsequent diagnostic-export-only change was checked by replaying the same submission with the final package, with 47 exported-file hashes verified; that replay was not a new model/judge trial. Query's evaluated v0.2.0 code remained frozen, with only README updates afterward. Dense's v0.7.0 source remained unchanged across its formal run.Validation limits: Docker builds and paid model trials were not repeated while preparing these commits because the evaluated task implementations were preserved. Historical trials used the shared harness recorded in their handoffs. The Docker lifecycle-timeout fix is submitted in the preceding PR; the checks above cover the isolated task-only snapshot, and the historical trials are not fresh end-to-end runs of the combined PRs. Full-score feasibility remains unproven for sparse's 16× target, query, and dense's hidden workload (reference: 95/100). Dense's 20-query gate is a fixed-workload acceptance criterion, and shared-CPU timing may vary. General storage declarations are not filesystem quotas; dense's 64 MiB index limit is enforced. Query does not claim a container-level no-swap guarantee. CI and integration against the latest upstream base still require the normal PR review checks.
Contributor checklist
Maintainer merge checklist