auto-sync 2026-07-02T14:08:40Z workspace
Browse files
workspace/docs/hf_sync.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Hugging Face Sync
|
| 2 |
+
|
| 3 |
+
Target repo: `anhtld/vla`.
|
| 4 |
+
|
| 5 |
+
One-shot push:
|
| 6 |
+
|
| 7 |
+
```bash
|
| 8 |
+
PATH="$PWD/.venv/bin:$PATH" HF_REPO_ID=anhtld/vla scripts/hf_push_once.sh
|
| 9 |
+
```
|
| 10 |
+
|
| 11 |
+
Continuous push every 15 minutes:
|
| 12 |
+
|
| 13 |
+
```bash
|
| 14 |
+
setsid env PATH="$PWD/.venv/bin:$PATH" \
|
| 15 |
+
HF_REPO_ID=anhtld/vla \
|
| 16 |
+
HF_REPO_TYPE=model \
|
| 17 |
+
HF_SYNC_INTERVAL_SECONDS=900 \
|
| 18 |
+
scripts/hf_push_every_15m.sh \
|
| 19 |
+
>> outputs/hf_sync/hf_push_daemon_login.out 2>&1 < /dev/null &
|
| 20 |
+
echo $! > outputs/hf_sync/hf_push_daemon_login.pid
|
| 21 |
+
```
|
| 22 |
+
|
| 23 |
+
Stop the login-node daemon:
|
| 24 |
+
|
| 25 |
+
```bash
|
| 26 |
+
kill "$(cat outputs/hf_sync/hf_push_daemon_login.pid)"
|
| 27 |
+
```
|
| 28 |
+
|
| 29 |
+
Monitor:
|
| 30 |
+
|
| 31 |
+
```bash
|
| 32 |
+
tail -f outputs/hf_sync/hf_push_daemon_login.out
|
| 33 |
+
tail -f outputs/hf_sync/hf_sync.log
|
| 34 |
+
```
|
| 35 |
+
|
| 36 |
+
The sync excludes `.env`, token-like files, keys, `.git`, virtualenvs, containers,
|
| 37 |
+
and build caches. It includes code, `latex/`, results, logs, outputs, checkpoints,
|
| 38 |
+
selected scratch experiment roots, and cache roots configured in
|
| 39 |
+
`scripts/hf_push_once.sh`.
|
| 40 |
+
|
workspace/dovla_cil/eval/maniskill_policy_rollout.py
CHANGED
|
@@ -111,6 +111,7 @@ def evaluate_maniskill_policy_rollout(
|
|
| 111 |
lattice_exclude_types: tuple[str, ...] = (),
|
| 112 |
lattice_exclude_type_tasks: dict[str, tuple[str, ...]] | None = None,
|
| 113 |
candidate_type_bonuses: dict[str, float] | None = None,
|
|
|
|
| 114 |
candidate_type_bonus_components: bool = False,
|
| 115 |
field_rank_biases_by_task: dict[str, list[float]] | None = None,
|
| 116 |
candidate_oracle_rollouts: int = 0,
|
|
@@ -294,6 +295,13 @@ def evaluate_maniskill_policy_rollout(
|
|
| 294 |
str(candidate_type): float(bonus)
|
| 295 |
for candidate_type, bonus in (candidate_type_bonuses or {}).items()
|
| 296 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 297 |
field_rank_biases_by_task = {
|
| 298 |
str(task_id): [float(value) for value in values]
|
| 299 |
for task_id, values in (field_rank_biases_by_task or {}).items()
|
|
@@ -412,6 +420,11 @@ def evaluate_maniskill_policy_rollout(
|
|
| 412 |
task_summaries: dict[str, dict[str, Any]] = {}
|
| 413 |
with torch.no_grad():
|
| 414 |
for task_id, task_cases in sorted(by_task.items()):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 415 |
task_rows = _evaluate_task_cases(
|
| 416 |
task_id,
|
| 417 |
task_cases,
|
|
@@ -458,7 +471,7 @@ def evaluate_maniskill_policy_rollout(
|
|
| 458 |
),
|
| 459 |
lattice_exclude_types=lattice_exclude_types,
|
| 460 |
lattice_exclude_type_tasks=lattice_exclude_type_tasks,
|
| 461 |
-
candidate_type_bonuses=
|
| 462 |
candidate_type_bonus_components=candidate_type_bonus_components,
|
| 463 |
field_rank_biases=(
|
| 464 |
field_rank_biases_by_task.get(task_id)
|
|
@@ -624,6 +637,7 @@ def evaluate_maniskill_policy_rollout(
|
|
| 624 |
for candidate_type, tasks in lattice_exclude_type_tasks.items()
|
| 625 |
},
|
| 626 |
"candidate_type_bonuses": candidate_type_bonuses,
|
|
|
|
| 627 |
"candidate_type_bonus_components": bool(candidate_type_bonus_components),
|
| 628 |
"field_rank_biases_by_task": field_rank_biases_by_task,
|
| 629 |
"candidate_oracle_rollouts": int(candidate_oracle_rollouts),
|
|
@@ -3112,6 +3126,18 @@ def _candidate_type_matches_exclusion(candidate_type: str, excluded: set[str]) -
|
|
| 3112 |
return any(part in excluded for part in candidate_type.split("+"))
|
| 3113 |
|
| 3114 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3115 |
def _lattice_candidate_type_bonus(
|
| 3116 |
batch: list[_RolloutCase],
|
| 3117 |
*,
|
|
|
|
| 111 |
lattice_exclude_types: tuple[str, ...] = (),
|
| 112 |
lattice_exclude_type_tasks: dict[str, tuple[str, ...]] | None = None,
|
| 113 |
candidate_type_bonuses: dict[str, float] | None = None,
|
| 114 |
+
candidate_type_bonuses_by_task: dict[str, dict[str, float]] | None = None,
|
| 115 |
candidate_type_bonus_components: bool = False,
|
| 116 |
field_rank_biases_by_task: dict[str, list[float]] | None = None,
|
| 117 |
candidate_oracle_rollouts: int = 0,
|
|
|
|
| 295 |
str(candidate_type): float(bonus)
|
| 296 |
for candidate_type, bonus in (candidate_type_bonuses or {}).items()
|
| 297 |
}
|
| 298 |
+
candidate_type_bonuses_by_task = {
|
| 299 |
+
str(task_id): {
|
| 300 |
+
str(candidate_type): float(bonus)
|
| 301 |
+
for candidate_type, bonus in bonuses.items()
|
| 302 |
+
}
|
| 303 |
+
for task_id, bonuses in (candidate_type_bonuses_by_task or {}).items()
|
| 304 |
+
}
|
| 305 |
field_rank_biases_by_task = {
|
| 306 |
str(task_id): [float(value) for value in values]
|
| 307 |
for task_id, values in (field_rank_biases_by_task or {}).items()
|
|
|
|
| 420 |
task_summaries: dict[str, dict[str, Any]] = {}
|
| 421 |
with torch.no_grad():
|
| 422 |
for task_id, task_cases in sorted(by_task.items()):
|
| 423 |
+
task_candidate_type_bonuses = _task_candidate_type_bonuses(
|
| 424 |
+
candidate_type_bonuses,
|
| 425 |
+
candidate_type_bonuses_by_task,
|
| 426 |
+
task_id=task_id,
|
| 427 |
+
)
|
| 428 |
task_rows = _evaluate_task_cases(
|
| 429 |
task_id,
|
| 430 |
task_cases,
|
|
|
|
| 471 |
),
|
| 472 |
lattice_exclude_types=lattice_exclude_types,
|
| 473 |
lattice_exclude_type_tasks=lattice_exclude_type_tasks,
|
| 474 |
+
candidate_type_bonuses=task_candidate_type_bonuses,
|
| 475 |
candidate_type_bonus_components=candidate_type_bonus_components,
|
| 476 |
field_rank_biases=(
|
| 477 |
field_rank_biases_by_task.get(task_id)
|
|
|
|
| 637 |
for candidate_type, tasks in lattice_exclude_type_tasks.items()
|
| 638 |
},
|
| 639 |
"candidate_type_bonuses": candidate_type_bonuses,
|
| 640 |
+
"candidate_type_bonuses_by_task": candidate_type_bonuses_by_task,
|
| 641 |
"candidate_type_bonus_components": bool(candidate_type_bonus_components),
|
| 642 |
"field_rank_biases_by_task": field_rank_biases_by_task,
|
| 643 |
"candidate_oracle_rollouts": int(candidate_oracle_rollouts),
|
|
|
|
| 3126 |
return any(part in excluded for part in candidate_type.split("+"))
|
| 3127 |
|
| 3128 |
|
| 3129 |
+
def _task_candidate_type_bonuses(
|
| 3130 |
+
global_bonuses: dict[str, float],
|
| 3131 |
+
bonuses_by_task: dict[str, dict[str, float]],
|
| 3132 |
+
*,
|
| 3133 |
+
task_id: str,
|
| 3134 |
+
) -> dict[str, float]:
|
| 3135 |
+
bonuses = dict(global_bonuses)
|
| 3136 |
+
bonuses.update(bonuses_by_task.get("*", {}))
|
| 3137 |
+
bonuses.update(bonuses_by_task.get(task_id, {}))
|
| 3138 |
+
return bonuses
|
| 3139 |
+
|
| 3140 |
+
|
| 3141 |
def _lattice_candidate_type_bonus(
|
| 3142 |
batch: list[_RolloutCase],
|
| 3143 |
*,
|
workspace/latex/main.log
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021 Gentoo Linux) (preloaded format=pdflatex 2023.8.23) 2 JUL 2026
|
| 2 |
entering extended mode
|
| 3 |
restricted \write18 enabled.
|
| 4 |
%&-line parsing enabled.
|
|
@@ -494,11 +494,11 @@ Package rerunfilecheck Info: File `main.out' has not changed.
|
|
| 494 |
Here is how much of TeX's memory you used:
|
| 495 |
9876 strings out of 480884
|
| 496 |
146359 string characters out of 5900692
|
| 497 |
-
|
| 498 |
26968 multiletter control sequences out of 15000+600000
|
| 499 |
412837 words of font info for 63 fonts, out of 8000000 for 9000
|
| 500 |
36 hyphenation exceptions out of 8191
|
| 501 |
-
71i,8n,74p,308b,
|
| 502 |
{/cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/usr/share/texmf-dist/font
|
| 503 |
s/enc/dvips/cm-super/cm-super-ts1.enc}</cvmfs/soft.computecanada.ca/gentoo/2023
|
| 504 |
/x86-64-v3/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></cvm
|
|
@@ -521,7 +521,7 @@ e1/public/amsfonts/cm/cmr9.pfb></cvmfs/soft.computecanada.ca/gentoo/2023/x86-64
|
|
| 521 |
.computecanada.ca/gentoo/2023/x86-64-v3/usr/share/texmf-dist/fonts/type1/public
|
| 522 |
/amsfonts/cm/cmsy7.pfb></cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/usr/
|
| 523 |
share/texmf-dist/fonts/type1/public/cm-super/sfrm1000.pfb>
|
| 524 |
-
Output written on main.pdf (3 pages,
|
| 525 |
PDF statistics:
|
| 526 |
118 PDF objects out of 1000 (max. 8388607)
|
| 527 |
98 compressed objects within 1 object stream
|
|
|
|
| 1 |
+
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021 Gentoo Linux) (preloaded format=pdflatex 2023.8.23) 2 JUL 2026 10:04
|
| 2 |
entering extended mode
|
| 3 |
restricted \write18 enabled.
|
| 4 |
%&-line parsing enabled.
|
|
|
|
| 494 |
Here is how much of TeX's memory you used:
|
| 495 |
9876 strings out of 480884
|
| 496 |
146359 string characters out of 5900692
|
| 497 |
+
454089 words of memory out of 5000000
|
| 498 |
26968 multiletter control sequences out of 15000+600000
|
| 499 |
412837 words of font info for 63 fonts, out of 8000000 for 9000
|
| 500 |
36 hyphenation exceptions out of 8191
|
| 501 |
+
71i,8n,74p,308b,393s stack positions out of 5000i,500n,10000p,200000b,80000s
|
| 502 |
{/cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/usr/share/texmf-dist/font
|
| 503 |
s/enc/dvips/cm-super/cm-super-ts1.enc}</cvmfs/soft.computecanada.ca/gentoo/2023
|
| 504 |
/x86-64-v3/usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></cvm
|
|
|
|
| 521 |
.computecanada.ca/gentoo/2023/x86-64-v3/usr/share/texmf-dist/fonts/type1/public
|
| 522 |
/amsfonts/cm/cmsy7.pfb></cvmfs/soft.computecanada.ca/gentoo/2023/x86-64-v3/usr/
|
| 523 |
share/texmf-dist/fonts/type1/public/cm-super/sfrm1000.pfb>
|
| 524 |
+
Output written on main.pdf (3 pages, 165984 bytes).
|
| 525 |
PDF statistics:
|
| 526 |
118 PDF objects out of 1000 (max. 8388607)
|
| 527 |
98 compressed objects within 1 object stream
|
workspace/latex/main.pdf
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:3e7ce55c19c43e3c61971e97798bf2d886218188b5d2ea5bb1311718b14d525d
|
| 3 |
+
size 165984
|
workspace/latex/main.tex
CHANGED
|
@@ -34,6 +34,9 @@ manipulation tasks, direct h=16 behavior cloning reaches 29.74\% success,
|
|
| 34 |
whereas the best deployment-clean transported residual field reaches 38.84\%
|
| 35 |
without same-state validation proposals or expert proposals. Same-state
|
| 36 |
no-expert lattices reach 56.99\%, exposing a remaining proposal-generation gap.
|
|
|
|
|
|
|
|
|
|
| 37 |
Negative ablations show that simply increasing measured support, using
|
| 38 |
rank-only calibration, or optimizing the field off-manifold does not explain
|
| 39 |
the gain; the strongest clean result comes from a tiny train-source utility
|
|
@@ -135,7 +138,11 @@ transported residual field reaches 38.84\%. This gap is the paper's most useful
|
|
| 135 |
tension: \cil{} supervision reveals a strong local selector, but deployment
|
| 136 |
still needs better proposal generation. The clean gain is nonetheless large:
|
| 137 |
the best clean row improves over direct h=16 behavior cloning by 9.10
|
| 138 |
-
percentage points.
|
|
|
|
|
|
|
|
|
|
|
|
|
| 139 |
|
| 140 |
Several negative results sharpen the claim. B24 measured support reaches only
|
| 141 |
38.61\%, below the B12 exact-support row. Rank-only calibration reaches 38.72\%,
|
|
@@ -157,4 +164,3 @@ yet justify an unqualified SOTA claim.
|
|
| 157 |
\bibliographystyle{plain}
|
| 158 |
\bibliography{references}
|
| 159 |
\end{document}
|
| 160 |
-
|
|
|
|
| 34 |
whereas the best deployment-clean transported residual field reaches 38.84\%
|
| 35 |
without same-state validation proposals or expert proposals. Same-state
|
| 36 |
no-expert lattices reach 56.99\%, exposing a remaining proposal-generation gap.
|
| 37 |
+
Within the current clean proposal prefix, a diagnostic top-8 candidate oracle
|
| 38 |
+
reaches 44.35\%, showing that conditional selector calibration still leaves
|
| 39 |
+
measurable headroom.
|
| 40 |
Negative ablations show that simply increasing measured support, using
|
| 41 |
rank-only calibration, or optimizing the field off-manifold does not explain
|
| 42 |
the gain; the strongest clean result comes from a tiny train-source utility
|
|
|
|
| 138 |
tension: \cil{} supervision reveals a strong local selector, but deployment
|
| 139 |
still needs better proposal generation. The clean gain is nonetheless large:
|
| 140 |
the best clean row improves over direct h=16 behavior cloning by 9.10
|
| 141 |
+
percentage points. A diagnostic candidate oracle over the top-8 clean proposal
|
| 142 |
+
prefix for this best row reaches 44.35\%, with mean best branch rank 2.48 and a
|
| 143 |
+
mean oracle score gain of 0.107 over the selected branch. This keeps the
|
| 144 |
+
proposal source deployment-clean and isolates selector headroom rather than
|
| 145 |
+
relying on same-state validation candidates.
|
| 146 |
|
| 147 |
Several negative results sharpen the claim. B24 measured support reaches only
|
| 148 |
38.61\%, below the B12 exact-support row. Rank-only calibration reaches 38.72\%,
|
|
|
|
| 164 |
\bibliographystyle{plain}
|
| 165 |
\bibliography{references}
|
| 166 |
\end{document}
|
|
|
workspace/latex/tables/main_results.tex
CHANGED
|
@@ -15,10 +15,10 @@ K4 compatible tangent near-miss challenger & yes & 36.06 & +6.32 \\
|
|
| 15 |
K6 transported residual field, exact support & yes & 38.78 & +9.04 \\
|
| 16 |
K6 transported residual field + source-score 0.01 & yes & \textbf{38.84} & \textbf{+9.10} \\
|
| 17 |
\midrule
|
|
|
|
| 18 |
Same-state no-expert lattice & diagnostic & 56.99 & +27.25 \\
|
| 19 |
Same-state full lattice & diagnostic & 69.33 & +39.59 \\
|
| 20 |
Oracle ceiling & diagnostic & 86.78 & +57.04 \\
|
| 21 |
\bottomrule
|
| 22 |
\end{tabular}
|
| 23 |
\end{table}
|
| 24 |
-
|
|
|
|
| 15 |
K6 transported residual field, exact support & yes & 38.78 & +9.04 \\
|
| 16 |
K6 transported residual field + source-score 0.01 & yes & \textbf{38.84} & \textbf{+9.10} \\
|
| 17 |
\midrule
|
| 18 |
+
K6 source-score top-8 candidate oracle & diagnostic & 44.35 & +14.61 \\
|
| 19 |
Same-state no-expert lattice & diagnostic & 56.99 & +27.25 \\
|
| 20 |
Same-state full lattice & diagnostic & 69.33 & +39.59 \\
|
| 21 |
Oracle ceiling & diagnostic & 86.78 & +57.04 \\
|
| 22 |
\bottomrule
|
| 23 |
\end{tabular}
|
| 24 |
\end{table}
|
|
|