lance: match zarr's split and frame order, add the flagship recipe - #754
Open
SaveAanchal wants to merge 2 commits into
Open
SaveAanchal wants to merge 2 commits into
SaveAanchal wants to merge 2 commits into
Conversation
Shuffle and order Lance recordings on their aliased zarr episode_hash, so a
recipe holds out the same episodes as on zarr, its pinned validation videos
stay in the right split, and a global index means the same frame. Zarr's
behavior does not change. Recordings with several clips or no alias still use
their recording_id.
Add the flagship HPT 6D recipe on Lance, with annotations: {} so the prompt is
empty like zarr's, and fix check_zarr_to_lance's import of the renamed
steps_columns.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
train_zarr_mecka_flagship_6d_rdt read through the Lance catalog. Same model, action space, evaluators and norm stats as the zarr recipe. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Why
On the Mecka flagship recipe, Lance and zarr hold out different episodes, because Lance shuffles recording IDs and zarr shuffles episode hashes. The flagship's pinned seen-val video episode (
692e771c) lands in train on Lance, so the run stops with aPinError. Episode order also differs, so the same global index gives a different frame on each format.What changed
LanceEpisodeResolver.split_keys()maps each recording with exactly one aliased clip to its zarrepisode_hash.MultiDatasetshuffles and orders on those keys. Recordings with several clips or no alias still use theirrecording_id, and two recordings mapping to one key raiseValueError.split_keys.train_lance_mecka_flagship_6d_hpt,train_lance_mecka_flagship_6d_rdtanddata/mecka_fold_flagship_lance_hpt_6d, with all video pins unchanged. SetEGOVERSE_LANCE_PILOTto the folder containinglance_v2, as inaria_pilot_lance.yaml.annotations: {}, so the prompt is empty like zarr's.check_zarr_to_lance.pyimportedzarr_to_lance, which doesn't exist on this branch. It now usessteps_columns.For you to decide
With
annotations=None,LanceEpisodeResolversilently falls back to the task name as the prompt ("fold_clothes"here), while zarr gives an empty prompt on this data. I setannotations: {}in this recipe and didn't change the fallback. Other Lance recipes that leave it unset could hit the same mismatch.check_zarr_to_lancedoesn't compare the annotation key, so it won't catch this.Testing
Unit tests:
tests/unitgives 1672 passed, 19 skipped, 1 failed. The failure istest_pi_loss_is_reduced_over_the_packed_width, which also fails on853c113b4here becauseopenpiisn't installed. New tests intest_lance_dataset.pycover the split, ordering, fallback, duplicate-key error and the unchanged no-split_keysbehavior.Real flagship data (1,607 episodes on ICE), using the same split and order logic:
692e771cis back in seen-val.check_zarr_to_lance.Zarr vs Lance training (ICE, H100, same starting weights and batches at all 5,000 steps):
Not tested:
lance_rootdiffer (a fixed path there,EGOVERSE_LANCE_PILOThere), so the recipes haven't run from this exact checkout.skimageisn't installed here. The 128 checks ran with an aliased import of the same function.🤖 Generated with Claude Code