From f2e31c72cfe80a4bab0ce818da859b5df7974e81 Mon Sep 17 00:00:00 2001 From: Angel Mau Date: Thu, 26 Feb 2026 08:02:01 -0800 Subject: [PATCH] Create v1 ocp.load_checkpointables backwards compatibility tests against static v0 and v1 checkpoints. PiperOrigin-RevId: 875725609 --- .../experimental/v1/_src/context/options.py | 4 +- .../v1/_src/handlers/global_registration.py | 32 +- .../v1/_src/handlers/registration.py | 183 ++++++--- .../v1/_src/handlers/registration_test.py | 238 ++++++++---- .../v1/_src/handlers/resolution.py | 40 +- .../v1/_src/layout/checkpoint_layout.py | 1 + .../v1/_src/layout/orbax_layout.py | 8 +- .../v1/_src/layout/orbax_v0_layout.py | 18 +- .../v1/_src/layout/registry_test.py | 13 +- .../experimental/v1/_src/loading/loading.py | 18 +- .../v1/_src/loading/validation.py | 19 +- .../v1/_src/loading/validation_test.py | 19 +- .../experimental/v1/_src/metadata/loading.py | 3 + .../experimental/v1/_src/saving/execution.py | 2 + .../experimental/v1/_src/saving/saving.py | 18 +- .../experimental/v1/_src/saving/validation.py | 46 +++ .../v1/_src/serialization/compatibility.py | 26 +- .../v1/_src/serialization/registry.py | 267 +++++++++---- .../v1/_src/serialization/registry_test.py | 139 +++++++ .../v1/_src/serialization/types.py | 32 ++ .../metadata/metadata | 1 + .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/5b31a4c00c276d62a117531fdd7b5723 | Bin 0 -> 240 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/8d0c7b1d0e04e6f2c1ecefbec1b27f3e | Bin 0 -> 233 bytes .../d/9dc71909855ce1a600ca339eb9c56ab7 | Bin 0 -> 240 bytes .../d/c849a5272459bc035df49c58d35eab1f | Bin 0 -> 194 bytes .../d/d8136fae139574aff7c058821933330e | Bin 0 -> 169 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 237 bytes .../metadata/metadata | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/a95f1a1850e830b968541b931158e0b5 | Bin 0 -> 240 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/274f1427d12f652dd0cd12759cd1ab16 | Bin 0 -> 194 bytes .../d/36dfbadc56b409927579369707f660d5 | Bin 0 -> 240 bytes .../d/3c86e78ae1725a45732a83d779339bc1 | Bin 0 -> 173 bytes .../d/aa4ffb671b2d8983ba0ddfb191368c4b | Bin 0 -> 221 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 236 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/metadata | 1 + .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/1434645abc2f96b5acc8423695c3944a | Bin 0 -> 240 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/643b1e5545ebdc2bcf46839f8533f30b | Bin 0 -> 240 bytes .../d/699bd23a19386358d9fdcb4f4c878176 | Bin 0 -> 233 bytes .../d/6f0bfe280d928c1c9c526694ec4ab790 | Bin 0 -> 169 bytes .../d/7529c5d552e466017b45cf1d7f25b6c6 | Bin 0 -> 194 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 234 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/metadata | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/c6493cb6502e3af7acb88fb4c78f3835 | Bin 0 -> 240 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/28c199a716dd3149a1522e8b9f6aab35 | Bin 0 -> 233 bytes .../d/bcf07c7cac91886d53523e42cbce5111 | Bin 0 -> 194 bytes .../d/cdbad12722d1017e7542a42a0dc5a371 | Bin 0 -> 240 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 202 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/metadata | 1 + .../missing_pytree_data_dir_d/state/_METADATA | 1 + .../missing_pytree_data_dir_d/state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/5a737d29cdea2a838c55e674267e7758 | Bin 0 -> 221 bytes .../d/a78d57915fe9c3311d1f4fa785847bfc | Bin 0 -> 173 bytes .../d/d87841fc650c25259b30d7f1b0d8a3ed | Bin 0 -> 194 bytes .../d/dd255bdde809d81b0c9d3b896f61e759 | Bin 0 -> 240 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 233 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/metadata | 1 + .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/0f376350852eafdf23fac0209d7d92bc | Bin 0 -> 240 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/metadata | 1 + .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/6ca5d28156cde87910897d1a41881ba8 | Bin 0 -> 240 bytes .../d/68e861cc6e83a32ec63ec635a2771ce5 | Bin 0 -> 233 bytes .../d/6a8d7c5227b45a2b20b7e3cbea161267 | Bin 0 -> 194 bytes .../d/a99d83fbc5e823f9b8a06279e76b4fd3 | Bin 0 -> 240 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 198 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/metadata | 1 + .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/8de6b588e74abf3e9d9cd174718bc403 | Bin 0 -> 240 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/1ad01886ce2f3bf7a2ad7c3f94c0cb43 | Bin 0 -> 240 bytes .../d/3632f0055b4eef4d0a0888d5698d31ab | Bin 0 -> 221 bytes .../d/49ad8c04d3abfa67ff1d8f4f4e142e9e | Bin 0 -> 194 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 201 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/metadata | 1 + .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/478cf05870116dbeaa0c336649e52848 | Bin 0 -> 240 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/0574f7f211bacb42e33046125088c6ba | Bin 0 -> 240 bytes .../d/6e993c00e6b71bc6ec8fb95da38f7a70 | Bin 0 -> 233 bytes .../d/76827f36359b8b7ddc0799513b05039a | Bin 0 -> 194 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 205 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/metadata | 1 + .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/76a7f8cbd0bd057adaf053373e2e5240 | Bin 0 -> 240 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/45240e15078082906311b81c59da1136 | Bin 0 -> 194 bytes .../d/78ea7fa47b48b21bf17ee2ac3088a417 | Bin 0 -> 233 bytes .../d/f959eb91f147c9eced2bafa4416563cf | Bin 0 -> 240 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 204 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/metadata | 1 + .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/efb349e15e400f769941a53dc0d9d672 | Bin 0 -> 240 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/1d0aedccdc37b5e53102002e01020889 | Bin 0 -> 240 bytes .../d/8cde27577aeeefe177ddcf980935efa7 | Bin 0 -> 194 bytes .../d/d6b3cd8627b23646d29f257d68ffcb27 | Bin 0 -> 233 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 202 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/metadata | 1 + .../missing_metrics_metadata/state/_METADATA | 1 + .../missing_metrics_metadata/state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/ea9feb9cc9078f4f1c9ac7b6532bfa9d | Bin 0 -> 240 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/1b23489ac3d2ba63615ac771ba83a8e5 | Bin 0 -> 240 bytes .../d/505d412d177dc71c680402fd819a9ebf | Bin 0 -> 221 bytes .../d/8e80557dcb32c2615a6579b783f4ec59 | Bin 0 -> 194 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 203 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/metadata | 1 + .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/c9e60c27d2984d2dd9c07d886d283aad | Bin 0 -> 240 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/6b1514a92a032a28f8ee2135d8eb124b | Bin 0 -> 221 bytes .../d/b708e33044a7925a2f7d57c1e0056d4a | Bin 0 -> 240 bytes .../d/d8eba4eb8f749c97d8bf47f2733231bb | Bin 0 -> 194 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 205 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/metadata | 1 + .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/d/a6c7017790d8c1557c9030393ebb8ff8 | Bin 0 -> 240 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/46529a06b4201b8999ff0b6f3996d78b | Bin 0 -> 240 bytes .../d/c015a1832485fc41fa466963977a4cb3 | Bin 0 -> 233 bytes .../d/cb10dea71b6d18074abb29acba80c070 | Bin 0 -> 194 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 205 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/metadata | 1 + .../state/_METADATA | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/80e11f222631e3e2f19ad3db46612a3d | Bin 0 -> 240 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/13e2967a2bb8dfc330e33bae71d3c906 | Bin 0 -> 240 bytes .../d/7957e32b946787f165cd6360b5b89780 | Bin 0 -> 194 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 166 bytes .../_METADATA | 1 + .../_sharding | 1 + .../array_metadatas/process_0 | 1 + .../d/223d208e07d70f4b098cdda880ac9543 | Bin 0 -> 240 bytes .../manifest.ocdbt | Bin 0 -> 113 bytes .../d/6a42e191c9d05896345d04091266e81a | Bin 0 -> 233 bytes .../d/7d7a9c34881683535a74a05776317032 | Bin 0 -> 169 bytes .../d/a29a3ec0f0a6b279c043b62cdadd0633 | Bin 0 -> 194 bytes .../d/fa2762f9465d31ad60af9e0a782a92f5 | Bin 0 -> 240 bytes .../ocdbt.process_0/manifest.ocdbt | Bin 0 -> 237 bytes .../_sharding | 1 + .../array_metadatas/process_0 | 1 + .../d/563e01b534c656172307279904b616c9 | Bin 0 -> 240 bytes .../manifest.ocdbt | Bin 0 -> 113 bytes .../d/0845f9fa5bceb80800a629bc36c0c12f | Bin 0 -> 240 bytes .../d/0cbeb8c6ae7499048e12e5f55e85d602 | Bin 0 -> 194 bytes .../d/7f5add099fb7e78b777bd8a8ef441efe | Bin 0 -> 233 bytes .../d/84482104fa42ff4c49644d510dabb69b | Bin 0 -> 169 bytes .../ocdbt.process_0/manifest.ocdbt | Bin 0 -> 232 bytes .../_CHECKPOINT_METADATA | 1 + .../_METADATA | 1 + .../_sharding | 1 + .../array_metadatas/process_0 | 1 + .../d/a2123ceed7461da4a184399412ac2d2a | Bin 0 -> 240 bytes .../manifest.ocdbt | Bin 0 -> 113 bytes .../d/13e9f9ac33d5eca6846e0e64af72d62e | Bin 0 -> 233 bytes .../d/26ecf1482b34eb3f6fa5c23d251d2469 | Bin 0 -> 194 bytes .../d/53d407ad7b2f319ecf3d0d98093cbb75 | Bin 0 -> 240 bytes .../ocdbt.process_0/manifest.ocdbt | Bin 0 -> 205 bytes .../_CHECKPOINT_METADATA | 1 + .../_sharding | 1 + .../array_metadatas/process_0 | 1 + .../d/3078d96010340714f061235f5f0799b3 | Bin 0 -> 240 bytes .../manifest.ocdbt | Bin 0 -> 113 bytes .../d/4430499bdd4eeb35c15ac812a7989606 | Bin 0 -> 240 bytes .../d/885efb8f0088ca10d121b3dc69c744b5 | Bin 0 -> 221 bytes .../d/b59a279eadf3b9be49b055a44206ae69 | Bin 0 -> 194 bytes .../ocdbt.process_0/manifest.ocdbt | Bin 0 -> 199 bytes .../_CHECKPOINT_METADATA | 1 + .../missing_pytree_data_dir_d/_METADATA | 1 + .../missing_pytree_data_dir_d/_sharding | 1 + .../array_metadatas/process_0 | 1 + .../missing_pytree_data_dir_d/manifest.ocdbt | Bin 0 -> 113 bytes .../d/2f618e31c5caff9d6d42d74ebd3c71e2 | Bin 0 -> 233 bytes .../d/6441a27b44facf04a3a19d6ff73c7f47 | Bin 0 -> 240 bytes .../d/c15f13053612606779557fab697ac866 | Bin 0 -> 194 bytes .../ocdbt.process_0/manifest.ocdbt | Bin 0 -> 206 bytes .../_CHECKPOINT_METADATA | 1 + .../_METADATA | 1 + .../_sharding | 1 + .../array_metadatas/process_0 | 1 + .../d/05a6bc5fd406a7069242f0a2e7021fbb | Bin 0 -> 240 bytes .../manifest.ocdbt | Bin 0 -> 113 bytes .../_CHECKPOINT_METADATA | 1 + .../_METADATA | 1 + .../_sharding | 1 + .../array_metadatas/process_0 | 1 + .../d/344eaa31a8be90c4a0db812554cebd5b | Bin 0 -> 240 bytes .../d/02b63cf4b9247da52acdca5639eeac34 | Bin 0 -> 233 bytes .../d/3e52b115ab5fc87129a40342cce6ca22 | Bin 0 -> 169 bytes .../d/68c7e82bec04a49d9e9ee40db9487df4 | Bin 0 -> 194 bytes .../d/97a8ab7b23429321c687014c0fe5eb40 | Bin 0 -> 240 bytes .../ocdbt.process_0/manifest.ocdbt | Bin 0 -> 235 bytes .../_CHECKPOINT_METADATA | 1 + .../_METADATA | 1 + .../_sharding | 1 + .../array_metadatas/process_0 | 1 + .../d/7480d75af0fd81a7671b017bd08f6cc6 | Bin 0 -> 240 bytes .../manifest.ocdbt | Bin 0 -> 113 bytes .../d/05de71cef2079b2d63250907e6ac5fe7 | Bin 0 -> 240 bytes .../d/4caeac5cec0ad441b5fa39cd557433df | Bin 0 -> 233 bytes .../d/f5ae9afb15e4d92fd06cd2768d712a26 | Bin 0 -> 194 bytes .../ocdbt.process_0/manifest.ocdbt | Bin 0 -> 204 bytes .../_CHECKPOINT_METADATA | 1 + .../_METADATA | 1 + .../_sharding | 1 + .../array_metadatas/process_0 | 1 + .../d/b09398e943668ebef3d4ef0285d24e96 | Bin 0 -> 240 bytes .../manifest.ocdbt | Bin 0 -> 113 bytes .../d/3e79d4ceab8ed5eeed5a279b636e756b | Bin 0 -> 194 bytes .../d/5eb2add0529a72de1e3706193be401c3 | Bin 0 -> 221 bytes .../d/940bbca7c7c8ed61e98530250b2f7428 | Bin 0 -> 240 bytes .../d/ce6eb178999759dfa283f4c7865a2fa4 | Bin 0 -> 173 bytes .../ocdbt.process_0/manifest.ocdbt | Bin 0 -> 233 bytes .../_CHECKPOINT_METADATA | 1 + .../_METADATA | 1 + .../_sharding | 1 + .../array_metadatas/process_0 | 1 + .../d/7ef8cf8fb55ba14b339b277be670f451 | Bin 0 -> 240 bytes .../manifest.ocdbt | Bin 0 -> 113 bytes .../d/a224ec72c56597b3ee516c965647aea5 | Bin 0 -> 240 bytes .../d/b6030d103c6c1c1e973e87d7ea6d5a16 | Bin 0 -> 221 bytes .../d/b782f74f7945545af9b8331ce44d4284 | Bin 0 -> 194 bytes .../ocdbt.process_0/manifest.ocdbt | Bin 0 -> 203 bytes .../_CHECKPOINT_METADATA | 1 + .../missing_item_handlers_metadata/_METADATA | 1 + .../missing_item_handlers_metadata/_sharding | 1 + .../array_metadatas/process_0 | 1 + .../d/02945215500221aaf3beaed88d9d3f36 | Bin 0 -> 240 bytes .../manifest.ocdbt | Bin 0 -> 113 bytes .../d/3ae83af3116744a1d3a47cfe0284cce6 | Bin 0 -> 221 bytes .../d/9fdc2d65c36cc87dece8b5e8430a7992 | Bin 0 -> 194 bytes .../d/e7728ce05b4d0bf3870b3e1a7c6c2d29 | Bin 0 -> 173 bytes .../d/f097856bb10a43428a37b04432218f7a | Bin 0 -> 240 bytes .../ocdbt.process_0/manifest.ocdbt | Bin 0 -> 234 bytes .../_CHECKPOINT_METADATA | 1 + .../missing_metrics_metadata/_METADATA | 1 + .../missing_metrics_metadata/_sharding | 1 + .../array_metadatas/process_0 | 1 + .../d/c277172d6ad673af0e045e44f6a90689 | Bin 0 -> 240 bytes .../missing_metrics_metadata/manifest.ocdbt | Bin 0 -> 113 bytes .../d/4173569a664690cc3c85c7f8784478a9 | Bin 0 -> 194 bytes .../d/63a31764e4037cd90b6a0ff37d0e26a3 | Bin 0 -> 221 bytes .../d/aa6aae4bbc71caf19387b601beb5541b | Bin 0 -> 173 bytes .../d/b64842def5e92520316b51fe42d0dd2f | Bin 0 -> 240 bytes .../ocdbt.process_0/manifest.ocdbt | Bin 0 -> 238 bytes .../_CHECKPOINT_METADATA | 1 + .../_METADATA | 1 + .../_sharding | 1 + .../array_metadatas/process_0 | 1 + .../d/77b68645e927e3131ee892b06d11658b | Bin 0 -> 240 bytes .../manifest.ocdbt | Bin 0 -> 113 bytes .../d/0e0dde7d360b52c73d6f72526c70c83b | Bin 0 -> 194 bytes .../d/9adab877b23da1350e5c6cf7d487f88e | Bin 0 -> 169 bytes .../d/c40cdefd0942065e1e6c912888310067 | Bin 0 -> 233 bytes .../d/d4d9deeaf252cabac334f1819fc1880a | Bin 0 -> 240 bytes .../ocdbt.process_0/manifest.ocdbt | Bin 0 -> 238 bytes .../_CHECKPOINT_METADATA | 1 + .../_METADATA | 1 + .../_sharding | 1 + .../d/5646044033c4f69203aad88e5abdd46b | Bin 0 -> 240 bytes .../manifest.ocdbt | Bin 0 -> 113 bytes .../d/022eafb26e1a8f7ee12d6cedc1b4b160 | Bin 0 -> 240 bytes .../d/9804309be9ea99e0fae92bb69aa40cf6 | Bin 0 -> 233 bytes .../d/9aed38c08a4b4d48ad2a8ab48d73f4a3 | Bin 0 -> 194 bytes .../ocdbt.process_0/manifest.ocdbt | Bin 0 -> 205 bytes .../_CHECKPOINT_METADATA | 1 + .../_METADATA | 1 + .../array_metadatas/process_0 | 1 + .../d/1821f7d01d2860693243ef6501c5ed2e | Bin 0 -> 240 bytes .../manifest.ocdbt | Bin 0 -> 113 bytes .../d/e33f406e4ae074cee3009029312e4151 | Bin 0 -> 240 bytes .../d/e90eabab331e9dc284df58dee39be592 | Bin 0 -> 233 bytes .../d/ef9ab5d4655be80ab431021c29304c3e | Bin 0 -> 194 bytes .../ocdbt.process_0/manifest.ocdbt | Bin 0 -> 201 bytes .../metadata/data.json | 1 + .../orbax.checkpoint | 0 .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/d9b5afb3c416ec8623a2b419989dae16 | Bin 0 -> 377 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/190c4bfc42a3ae266f3a2e99dd2ae37b | Bin 0 -> 358 bytes .../d/1ad36d5dd821b011ce056a3ee5801ba2 | Bin 0 -> 272 bytes .../d/31f01ad275b1b1e54cdde66521f9d9db | Bin 0 -> 377 bytes .../d/621d0812cde2a855a777b339a1c23a61 | Bin 0 -> 293 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 236 bytes .../metadata/data.json | 1 + .../orbax.checkpoint | 0 .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/6c7aea8f9accdea62a5f10618989117d | Bin 0 -> 377 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/8acd609f13d134de219a96213988ea33 | Bin 0 -> 293 bytes .../d/8ca408883ce73077531c683157194036 | Bin 0 -> 358 bytes .../d/c807ae5adaabb0c72f5eca21afbbe48c | Bin 0 -> 377 bytes .../d/ff8307a3b8cd814cabadf49d690662fa | Bin 0 -> 272 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 237 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/data.json | 1 + .../orbax.checkpoint | 0 .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/921d08d493a0394ca3d5a545160cb41b | Bin 0 -> 377 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/2c3c9c7e9dcbbd47a5178e2ab7104503 | Bin 0 -> 293 bytes .../d/3759038651edd833b9ae15e868698302 | Bin 0 -> 358 bytes .../d/e6f3ddf0be1d50c36af5ad4bab1a927f | Bin 0 -> 377 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 202 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/data.json | 1 + .../orbax.checkpoint | 0 .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/d4ad3d69c4c1daf2d00f57425b2a3031 | Bin 0 -> 377 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/4e0454187753b946c545d1721292e666 | Bin 0 -> 272 bytes .../d/69a737fda369b2d0b98579b2a414521e | Bin 0 -> 377 bytes .../d/8de9f30144eba86fadf966b87d206dd1 | Bin 0 -> 293 bytes .../d/d336e211f1af57fa2fee18b8069e134e | Bin 0 -> 358 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 236 bytes .../_CHECKPOINT_METADATA | 1 + .../dummy/_METADATA | 1 + .../metadata/data.json | 1 + .../orbax.checkpoint | 0 .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/13f91d771aa5e2d76e44efe78343baf1 | Bin 0 -> 377 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/21aef668aa959a1027f91da19fd1b697 | Bin 0 -> 377 bytes .../d/322d1d8343b8165a88d7928e8295f2ed | Bin 0 -> 272 bytes .../d/c75198f3da0ace2f1b3868c90ede9917 | Bin 0 -> 293 bytes .../d/d0cad5f7d0358dddc5a57ed695adf13b | Bin 0 -> 358 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 235 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/data.json | 1 + .../orbax.checkpoint | 0 .../missing_pytree_data_dir_d/state/_METADATA | 1 + .../missing_pytree_data_dir_d/state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/48aac3c310391f78fd97377d91358d78 | Bin 0 -> 343 bytes .../d/ad7295621bcdf89c021805edb9779740 | Bin 0 -> 377 bytes .../d/b8318d5446a76228a96bec7df8ec1298 | Bin 0 -> 293 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 207 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/data.json | 1 + .../orbax.checkpoint | 0 .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/91a1130caecb555e368b09b8c2da6d18 | Bin 0 -> 377 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/data.json | 1 + .../orbax.checkpoint | 0 .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/f79e218f9bfc7b0445533d9393e54c94 | Bin 0 -> 377 bytes .../d/194c2453a1371c4d329747c76b2e7fbc | Bin 0 -> 377 bytes .../d/1b9d325763818f7e996f9b146ccc0154 | Bin 0 -> 293 bytes .../d/c97a1234f11170dc7627bdd492c25084 | Bin 0 -> 358 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 204 bytes .../_CHECKPOINT_METADATA | 1 + .../deleted_checkpointable/metadata/data.json | 1 + .../deleted_checkpointable/orbax.checkpoint | 0 .../_CHECKPOINT_METADATA | 1 + .../metadata/data.json | 1 + .../orbax.checkpoint | 0 .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/cee2bf93255df95d8136b043e57c68ec | Bin 0 -> 377 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/113b8e7d9eac57427f9101f12256f073 | Bin 0 -> 293 bytes .../d/9436c28057afba0d610d23e485ccc013 | Bin 0 -> 377 bytes .../d/c531b7784ba5fade71eab9525ef65509 | Bin 0 -> 272 bytes .../d/dfaeaafeb8c976738e2c8bb68cc389cb | Bin 0 -> 358 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 237 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/data.json | 1 + .../orbax.checkpoint | 0 .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/5f6a36b4164e07cbdf0d1095d00d93c5 | Bin 0 -> 377 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/161ec67cc3a9ff8f39cfc336e9b9890d | Bin 0 -> 358 bytes .../d/9302fdc822c89f446161e63367e0d329 | Bin 0 -> 272 bytes .../d/9989fef5fca2569882f2a62c910595f6 | Bin 0 -> 377 bytes .../d/afa485b31165d6b61f5166c5c4d5b52c | Bin 0 -> 293 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 237 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/data.json | 1 + .../orbax.checkpoint | 0 .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/4630cf0783b4c7c1215ea0ded572fcd4 | Bin 0 -> 377 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/1fbe83284d882d67a5ee0606f10cc3c8 | Bin 0 -> 273 bytes .../d/b77928c522f20a599bfc67c819ecd261 | Bin 0 -> 377 bytes .../d/ba0176b263a27088794c31b0b5d17629 | Bin 0 -> 293 bytes .../d/d0a2406641f7d83b59efb67130cafdbe | Bin 0 -> 343 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 235 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/data.json | 1 + .../orbax.checkpoint | 0 .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/976456d7ae16a0ef86fdf5f09474660c | Bin 0 -> 377 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/09b05633ad865ece1a6a53d5f41ae7cd | Bin 0 -> 293 bytes .../d/0fd70a785df4c4731116abdbd7f19b4a | Bin 0 -> 272 bytes .../d/9e4a603d2956cc83ca493fac21a1d8c7 | Bin 0 -> 358 bytes .../d/a133e8fb265cd6540f5bc660aef295cb | Bin 0 -> 377 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 236 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/data.json | 1 + .../missing_metrics_metadata/orbax.checkpoint | 0 .../missing_metrics_metadata/state/_METADATA | 1 + .../missing_metrics_metadata/state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/d589c8aa9ac0d5cb8f48d96fc0376942 | Bin 0 -> 377 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/02378f842ce9ba483ddbdcea54c7e4d9 | Bin 0 -> 343 bytes .../d/86f9fc38b98c6e9362b4b8f7d27931af | Bin 0 -> 377 bytes .../d/e30cb27655f4581cf8ed5d8a0296a945 | Bin 0 -> 293 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 208 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/data.json | 1 + .../orbax.checkpoint | 0 .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/dc7912ed9c73cf98fc61a7596458bce3 | Bin 0 -> 377 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/87bb0d20fa744247dc2963c65f87bd50 | Bin 0 -> 377 bytes .../d/964357ae2ad3016f477eef90920fae11 | Bin 0 -> 272 bytes .../d/b32dc4367f669c51e6d9130483bc1884 | Bin 0 -> 293 bytes .../d/d9a66418253dec177e0e155287e9ab84 | Bin 0 -> 358 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 238 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/data.json | 1 + .../orbax.checkpoint | 0 .../state/_METADATA | 1 + .../state/_sharding | 1 + .../state/d/674f293c92c20ed5508335161032f7cc | Bin 0 -> 377 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/010a6a1bf570e415819a3fd62ce2de82 | Bin 0 -> 377 bytes .../d/1f380547fe67464ec4f1907f46e50ffb | Bin 0 -> 293 bytes .../d/b51c8d43bf2215144457455d1a2c8d42 | Bin 0 -> 358 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 203 bytes .../_CHECKPOINT_METADATA | 1 + .../metadata/data.json | 1 + .../orbax.checkpoint | 0 .../state/_METADATA | 1 + .../state/array_metadatas/process_0 | 1 + .../state/d/654a71183e9bfbec70174a0423a6e635 | Bin 0 -> 377 bytes .../state/manifest.ocdbt | Bin 0 -> 113 bytes .../d/45c9ae94d66f95a189b87bae6f2b81ee | Bin 0 -> 343 bytes .../d/4e60145b81ca93ef201dc0bc48fb0259 | Bin 0 -> 293 bytes .../d/c23a25f635d8b0211e83e2cfb7e79be6 | Bin 0 -> 377 bytes .../state/ocdbt.process_0/manifest.ocdbt | Bin 0 -> 208 bytes .../compatibility/generate_v0_checkpoints.py | 303 +++++++++++++++ .../compatibility/generate_v1_checkpoints.py | 289 ++++++++++++++ ...load_checkpointables_compatibility_test.py | 311 +++++++++++++++ .../load_pytree_compatibility_test.py | 356 ++++++++++++++++++ .../v1/_src/testing/handler_utils.py | 51 ++- .../v1/_src/testing/save_load_test_base.py | 63 ++++ .../v1/_src/training/checkpointer.py | 2 + .../_src/training/checkpointer_test_base.py | 6 +- ...v1_compatibility_checkpointer_test_base.py | 40 ++ 523 files changed, 2441 insertions(+), 306 deletions(-) create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/saving/validation.py create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/metadata/metadata create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/d/5b31a4c00c276d62a117531fdd7b5723 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/8d0c7b1d0e04e6f2c1ecefbec1b27f3e create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/9dc71909855ce1a600ca339eb9c56ab7 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/c849a5272459bc035df49c58d35eab1f create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/d8136fae139574aff7c058821933330e create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/metadata/metadata create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/d/a95f1a1850e830b968541b931158e0b5 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/274f1427d12f652dd0cd12759cd1ab16 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/36dfbadc56b409927579369707f660d5 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/3c86e78ae1725a45732a83d779339bc1 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/aa4ffb671b2d8983ba0ddfb191368c4b create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/metadata/metadata create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/d/1434645abc2f96b5acc8423695c3944a create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/643b1e5545ebdc2bcf46839f8533f30b create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/699bd23a19386358d9fdcb4f4c878176 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/6f0bfe280d928c1c9c526694ec4ab790 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/7529c5d552e466017b45cf1d7f25b6c6 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/metadata/metadata create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/d/c6493cb6502e3af7acb88fb4c78f3835 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/28c199a716dd3149a1522e8b9f6aab35 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/bcf07c7cac91886d53523e42cbce5111 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/cdbad12722d1017e7542a42a0dc5a371 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/metadata/metadata create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/d/5a737d29cdea2a838c55e674267e7758 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/d/a78d57915fe9c3311d1f4fa785847bfc create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/d/d87841fc650c25259b30d7f1b0d8a3ed create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/d/dd255bdde809d81b0c9d3b896f61e759 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/metadata/metadata create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/d/0f376350852eafdf23fac0209d7d92bc create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/metadata/metadata create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/d/6ca5d28156cde87910897d1a41881ba8 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/ocdbt.process_0/d/68e861cc6e83a32ec63ec635a2771ce5 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/ocdbt.process_0/d/6a8d7c5227b45a2b20b7e3cbea161267 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/ocdbt.process_0/d/a99d83fbc5e823f9b8a06279e76b4fd3 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/metadata/metadata create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/d/8de6b588e74abf3e9d9cd174718bc403 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/d/1ad01886ce2f3bf7a2ad7c3f94c0cb43 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/d/3632f0055b4eef4d0a0888d5698d31ab create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/d/49ad8c04d3abfa67ff1d8f4f4e142e9e create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/metadata/metadata create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/d/478cf05870116dbeaa0c336649e52848 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/ocdbt.process_0/d/0574f7f211bacb42e33046125088c6ba create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/ocdbt.process_0/d/6e993c00e6b71bc6ec8fb95da38f7a70 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/ocdbt.process_0/d/76827f36359b8b7ddc0799513b05039a create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/metadata/metadata create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/d/76a7f8cbd0bd057adaf053373e2e5240 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/ocdbt.process_0/d/45240e15078082906311b81c59da1136 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/ocdbt.process_0/d/78ea7fa47b48b21bf17ee2ac3088a417 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/ocdbt.process_0/d/f959eb91f147c9eced2bafa4416563cf create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/metadata/metadata create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/d/efb349e15e400f769941a53dc0d9d672 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/ocdbt.process_0/d/1d0aedccdc37b5e53102002e01020889 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/ocdbt.process_0/d/8cde27577aeeefe177ddcf980935efa7 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/ocdbt.process_0/d/d6b3cd8627b23646d29f257d68ffcb27 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/metadata/metadata create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/d/ea9feb9cc9078f4f1c9ac7b6532bfa9d create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/ocdbt.process_0/d/1b23489ac3d2ba63615ac771ba83a8e5 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/ocdbt.process_0/d/505d412d177dc71c680402fd819a9ebf create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/ocdbt.process_0/d/8e80557dcb32c2615a6579b783f4ec59 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/metadata/metadata create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/d/c9e60c27d2984d2dd9c07d886d283aad create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/ocdbt.process_0/d/6b1514a92a032a28f8ee2135d8eb124b create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/ocdbt.process_0/d/b708e33044a7925a2f7d57c1e0056d4a create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/ocdbt.process_0/d/d8eba4eb8f749c97d8bf47f2733231bb create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/metadata/metadata create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/d/a6c7017790d8c1557c9030393ebb8ff8 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/ocdbt.process_0/d/46529a06b4201b8999ff0b6f3996d78b create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/ocdbt.process_0/d/c015a1832485fc41fa466963977a4cb3 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/ocdbt.process_0/d/cb10dea71b6d18074abb29acba80c070 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/metadata/metadata create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/d/80e11f222631e3e2f19ad3db46612a3d create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/ocdbt.process_0/d/13e2967a2bb8dfc330e33bae71d3c906 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/ocdbt.process_0/d/7957e32b946787f165cd6360b5b89780 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/d/223d208e07d70f4b098cdda880ac9543 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/ocdbt.process_0/d/6a42e191c9d05896345d04091266e81a create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/ocdbt.process_0/d/7d7a9c34881683535a74a05776317032 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/ocdbt.process_0/d/a29a3ec0f0a6b279c043b62cdadd0633 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/ocdbt.process_0/d/fa2762f9465d31ad60af9e0a782a92f5 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/d/563e01b534c656172307279904b616c9 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/ocdbt.process_0/d/0845f9fa5bceb80800a629bc36c0c12f create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/ocdbt.process_0/d/0cbeb8c6ae7499048e12e5f55e85d602 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/ocdbt.process_0/d/7f5add099fb7e78b777bd8a8ef441efe create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/ocdbt.process_0/d/84482104fa42ff4c49644d510dabb69b create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/d/a2123ceed7461da4a184399412ac2d2a create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/ocdbt.process_0/d/13e9f9ac33d5eca6846e0e64af72d62e create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/ocdbt.process_0/d/26ecf1482b34eb3f6fa5c23d251d2469 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/ocdbt.process_0/d/53d407ad7b2f319ecf3d0d98093cbb75 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/d/3078d96010340714f061235f5f0799b3 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/ocdbt.process_0/d/4430499bdd4eeb35c15ac812a7989606 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/ocdbt.process_0/d/885efb8f0088ca10d121b3dc69c744b5 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/ocdbt.process_0/d/b59a279eadf3b9be49b055a44206ae69 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/ocdbt.process_0/d/2f618e31c5caff9d6d42d74ebd3c71e2 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/ocdbt.process_0/d/6441a27b44facf04a3a19d6ff73c7f47 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/ocdbt.process_0/d/c15f13053612606779557fab697ac866 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/d/05a6bc5fd406a7069242f0a2e7021fbb create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/d/344eaa31a8be90c4a0db812554cebd5b create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/ocdbt.process_0/d/02b63cf4b9247da52acdca5639eeac34 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/ocdbt.process_0/d/3e52b115ab5fc87129a40342cce6ca22 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/ocdbt.process_0/d/68c7e82bec04a49d9e9ee40db9487df4 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/ocdbt.process_0/d/97a8ab7b23429321c687014c0fe5eb40 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/d/7480d75af0fd81a7671b017bd08f6cc6 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/ocdbt.process_0/d/05de71cef2079b2d63250907e6ac5fe7 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/ocdbt.process_0/d/4caeac5cec0ad441b5fa39cd557433df create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/ocdbt.process_0/d/f5ae9afb15e4d92fd06cd2768d712a26 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/d/b09398e943668ebef3d4ef0285d24e96 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/ocdbt.process_0/d/3e79d4ceab8ed5eeed5a279b636e756b create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/ocdbt.process_0/d/5eb2add0529a72de1e3706193be401c3 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/ocdbt.process_0/d/940bbca7c7c8ed61e98530250b2f7428 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/ocdbt.process_0/d/ce6eb178999759dfa283f4c7865a2fa4 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/d/7ef8cf8fb55ba14b339b277be670f451 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/ocdbt.process_0/d/a224ec72c56597b3ee516c965647aea5 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/ocdbt.process_0/d/b6030d103c6c1c1e973e87d7ea6d5a16 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/ocdbt.process_0/d/b782f74f7945545af9b8331ce44d4284 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/d/02945215500221aaf3beaed88d9d3f36 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/ocdbt.process_0/d/3ae83af3116744a1d3a47cfe0284cce6 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/ocdbt.process_0/d/9fdc2d65c36cc87dece8b5e8430a7992 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/ocdbt.process_0/d/e7728ce05b4d0bf3870b3e1a7c6c2d29 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/ocdbt.process_0/d/f097856bb10a43428a37b04432218f7a create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/d/c277172d6ad673af0e045e44f6a90689 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/ocdbt.process_0/d/4173569a664690cc3c85c7f8784478a9 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/ocdbt.process_0/d/63a31764e4037cd90b6a0ff37d0e26a3 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/ocdbt.process_0/d/aa6aae4bbc71caf19387b601beb5541b create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/ocdbt.process_0/d/b64842def5e92520316b51fe42d0dd2f create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/d/77b68645e927e3131ee892b06d11658b create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/ocdbt.process_0/d/0e0dde7d360b52c73d6f72526c70c83b create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/ocdbt.process_0/d/9adab877b23da1350e5c6cf7d487f88e create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/ocdbt.process_0/d/c40cdefd0942065e1e6c912888310067 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/ocdbt.process_0/d/d4d9deeaf252cabac334f1819fc1880a create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/d/5646044033c4f69203aad88e5abdd46b create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/ocdbt.process_0/d/022eafb26e1a8f7ee12d6cedc1b4b160 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/ocdbt.process_0/d/9804309be9ea99e0fae92bb69aa40cf6 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/ocdbt.process_0/d/9aed38c08a4b4d48ad2a8ab48d73f4a3 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/d/1821f7d01d2860693243ef6501c5ed2e create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/ocdbt.process_0/d/e33f406e4ae074cee3009029312e4151 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/ocdbt.process_0/d/e90eabab331e9dc284df58dee39be592 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/ocdbt.process_0/d/ef9ab5d4655be80ab431021c29304c3e create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/metadata/data.json create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/orbax.checkpoint create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/d/d9b5afb3c416ec8623a2b419989dae16 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/190c4bfc42a3ae266f3a2e99dd2ae37b create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/1ad36d5dd821b011ce056a3ee5801ba2 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/31f01ad275b1b1e54cdde66521f9d9db create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/621d0812cde2a855a777b339a1c23a61 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/metadata/data.json create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/orbax.checkpoint create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/d/6c7aea8f9accdea62a5f10618989117d create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/8acd609f13d134de219a96213988ea33 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/8ca408883ce73077531c683157194036 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/c807ae5adaabb0c72f5eca21afbbe48c create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/ff8307a3b8cd814cabadf49d690662fa create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/metadata/data.json create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/orbax.checkpoint create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/d/921d08d493a0394ca3d5a545160cb41b create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/2c3c9c7e9dcbbd47a5178e2ab7104503 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/3759038651edd833b9ae15e868698302 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/e6f3ddf0be1d50c36af5ad4bab1a927f create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/metadata/data.json create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/orbax.checkpoint create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/d/d4ad3d69c4c1daf2d00f57425b2a3031 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/4e0454187753b946c545d1721292e666 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/69a737fda369b2d0b98579b2a414521e create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/8de9f30144eba86fadf966b87d206dd1 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/d336e211f1af57fa2fee18b8069e134e create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/dummy/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/metadata/data.json create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/orbax.checkpoint create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/state/d/13f91d771aa5e2d76e44efe78343baf1 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/state/ocdbt.process_0/d/21aef668aa959a1027f91da19fd1b697 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/state/ocdbt.process_0/d/322d1d8343b8165a88d7928e8295f2ed create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/state/ocdbt.process_0/d/c75198f3da0ace2f1b3868c90ede9917 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/state/ocdbt.process_0/d/d0cad5f7d0358dddc5a57ed695adf13b create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/metadata/data.json create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/orbax.checkpoint create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/d/48aac3c310391f78fd97377d91358d78 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/d/ad7295621bcdf89c021805edb9779740 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/d/b8318d5446a76228a96bec7df8ec1298 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/metadata/data.json create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/orbax.checkpoint create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/d/91a1130caecb555e368b09b8c2da6d18 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/metadata/data.json create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/orbax.checkpoint create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/d/f79e218f9bfc7b0445533d9393e54c94 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/ocdbt.process_0/d/194c2453a1371c4d329747c76b2e7fbc create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/ocdbt.process_0/d/1b9d325763818f7e996f9b146ccc0154 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/ocdbt.process_0/d/c97a1234f11170dc7627bdd492c25084 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_general_alterations/deleted_checkpointable/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_general_alterations/deleted_checkpointable/metadata/data.json create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_general_alterations/deleted_checkpointable/orbax.checkpoint create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/metadata/data.json create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/orbax.checkpoint create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/d/cee2bf93255df95d8136b043e57c68ec create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/d/113b8e7d9eac57427f9101f12256f073 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/d/9436c28057afba0d610d23e485ccc013 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/d/c531b7784ba5fade71eab9525ef65509 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/d/dfaeaafeb8c976738e2c8bb68cc389cb create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/metadata/data.json create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/orbax.checkpoint create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/d/5f6a36b4164e07cbdf0d1095d00d93c5 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/ocdbt.process_0/d/161ec67cc3a9ff8f39cfc336e9b9890d create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/ocdbt.process_0/d/9302fdc822c89f446161e63367e0d329 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/ocdbt.process_0/d/9989fef5fca2569882f2a62c910595f6 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/ocdbt.process_0/d/afa485b31165d6b61f5166c5c4d5b52c create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/metadata/data.json create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/orbax.checkpoint create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/d/4630cf0783b4c7c1215ea0ded572fcd4 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/ocdbt.process_0/d/1fbe83284d882d67a5ee0606f10cc3c8 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/ocdbt.process_0/d/b77928c522f20a599bfc67c819ecd261 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/ocdbt.process_0/d/ba0176b263a27088794c31b0b5d17629 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/ocdbt.process_0/d/d0a2406641f7d83b59efb67130cafdbe create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/metadata/data.json create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/orbax.checkpoint create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/d/976456d7ae16a0ef86fdf5f09474660c create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/ocdbt.process_0/d/09b05633ad865ece1a6a53d5f41ae7cd create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/ocdbt.process_0/d/0fd70a785df4c4731116abdbd7f19b4a create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/ocdbt.process_0/d/9e4a603d2956cc83ca493fac21a1d8c7 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/ocdbt.process_0/d/a133e8fb265cd6540f5bc660aef295cb create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/metadata/data.json create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/orbax.checkpoint create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/d/d589c8aa9ac0d5cb8f48d96fc0376942 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/ocdbt.process_0/d/02378f842ce9ba483ddbdcea54c7e4d9 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/ocdbt.process_0/d/86f9fc38b98c6e9362b4b8f7d27931af create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/ocdbt.process_0/d/e30cb27655f4581cf8ed5d8a0296a945 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/metadata/data.json create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/orbax.checkpoint create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/d/dc7912ed9c73cf98fc61a7596458bce3 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/ocdbt.process_0/d/87bb0d20fa744247dc2963c65f87bd50 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/ocdbt.process_0/d/964357ae2ad3016f477eef90920fae11 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/ocdbt.process_0/d/b32dc4367f669c51e6d9130483bc1884 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/ocdbt.process_0/d/d9a66418253dec177e0e155287e9ab84 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/metadata/data.json create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/orbax.checkpoint create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/_sharding create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/d/674f293c92c20ed5508335161032f7cc create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/ocdbt.process_0/d/010a6a1bf570e415819a3fd62ce2de82 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/ocdbt.process_0/d/1f380547fe67464ec4f1907f46e50ffb create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/ocdbt.process_0/d/b51c8d43bf2215144457455d1a2c8d42 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/_CHECKPOINT_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/metadata/data.json create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/orbax.checkpoint create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/_METADATA create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/array_metadatas/process_0 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/d/654a71183e9bfbec70174a0423a6e635 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/ocdbt.process_0/d/45c9ae94d66f95a189b87bae6f2b81ee create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/ocdbt.process_0/d/4e60145b81ca93ef201dc0bc48fb0259 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/ocdbt.process_0/d/c23a25f635d8b0211e83e2cfb7e79be6 create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/ocdbt.process_0/manifest.ocdbt create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/generate_v0_checkpoints.py create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/generate_v1_checkpoints.py create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/load_checkpointables_compatibility_test.py create mode 100644 checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/load_pytree_compatibility_test.py diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/context/options.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/context/options.py index 7bd096da6..d9a7cb6da 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/context/options.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/context/options.py @@ -380,9 +380,9 @@ def create_with_handlers( ) -> CheckpointablesOptions: registry = registration.local_registry(include_global_registry=True) for handler in handlers: - registry.add(handler, None) + registry.add(handler, checkpointable_name=None) for name, handler in named_handlers.items(): - registry.add(handler, name) + registry.add(handler, checkpointable_name=name) return cls(registry=registry) diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/handlers/global_registration.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/handlers/global_registration.py index 366fcfec2..8faed03a8 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/handlers/global_registration.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/handlers/global_registration.py @@ -20,7 +20,7 @@ given checkpointable will be used. """ -from typing import Type +from typing import Sequence, Type from orbax.checkpoint.experimental.v1._src.handlers import json_handler from orbax.checkpoint.experimental.v1._src.handlers import proto_handler @@ -34,15 +34,31 @@ def _try_register_handler( handler_type: Type[handler_types.CheckpointableHandler], name: str | None = None, + secondary_typestrs: Sequence[str] | None = None, ): + """Tries to register handler globally with name and secondary typestrs.""" try: - registration.global_registry().add(handler_type, name) + registration.global_registry().add( + handler_type, + checkpointable_name=name, + secondary_typestrs=secondary_typestrs, + ) except registration.AlreadyExistsError: pass -_try_register_handler(proto_handler.ProtoHandler) -_try_register_handler(json_handler.JsonHandler) +_try_register_handler( + proto_handler.ProtoHandler, + secondary_typestrs=[ + 'orbax.checkpoint._src.handlers.proto_checkpoint_handler.ProtoCheckpointHandler', + ], +) +_try_register_handler( + json_handler.JsonHandler, + secondary_typestrs=[ + 'orbax.checkpoint._src.handlers.json_checkpoint_handler.JsonCheckpointHandler', + ], +) _try_register_handler( stateful_checkpointable_handler.StatefulCheckpointableHandler ) @@ -50,7 +66,13 @@ def _try_register_handler( json_handler.MetricsHandler, checkpoint_layout.METRICS_CHECKPOINTABLE_KEY, ) -_try_register_handler(pytree_handler.PyTreeHandler) +_try_register_handler( + pytree_handler.PyTreeHandler, + secondary_typestrs=[ + 'orbax.checkpoint._src.handlers.pytree_checkpoint_handler.PyTreeCheckpointHandler', + 'orbax.checkpoint._src.handlers.standard_checkpoint_handler.StandardCheckpointHandler', + ], +) _try_register_handler( pytree_handler.PyTreeHandler, checkpoint_layout.PYTREE_CHECKPOINTABLE_KEY ) diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/handlers/registration.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/handlers/registration.py index dc480f585..fc9875ce5 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/handlers/registration.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/handlers/registration.py @@ -35,6 +35,9 @@ registry.add(BarHandler) # Scope this handler specifically to checkpointables named 'baz'. registry.add(BazHandler, 'baz') + # Secondary typestrs provide a way to map legacy handler typestr identifiers + # to a new v1 handler class. + registry.add(BazHandler, secondary_typestrs=['OldBazHandlerTypestr']) checkpointables_options = ocp.options.CheckpointablesOptions( registry=registry @@ -42,18 +45,21 @@ with ocp.Context(checkpointables_options=checkpointables_options): ocp.save_checkpointables(...) -If a registered handler is scoped to a specific name (e.g. -`registry.add(BazHandler, 'baz')`), then this handler will always be -prioritized for saving or loading the checkpointable with that name, even if -the handler is not capable of saving/loading the checkpointable. - -In the most common case, where a handler is not scoped to a specific name, -a given checkpointable (or abstract_checkpointable) will be resolved to a -handler returning True for `is_handleable` (or `is_abstract_handleable`), -respectively. If multiple handlers are usable, the first usable handler will be -returned. When loading, the handler type used for saving will be recorded in -the metadata, and will be used to resolve the handler, if a corresponding -handler is present in the registry. +Handler resolution for saving/loading follows this logic: + + 1. If a registered handler is scoped to a specific name + (e.g. `registry.add(BazHandler, 'baz')`), then this handler will always + be prioritized for saving or loading the checkpointable with that name, + even if the handler is not capable of saving/loading the checkpointable. + 2. In the absence of an explicit name match, the registry filters for + handlers returning `True` for `is_handleable` (during save) or + `is_abstract_handleable` (during load). + 3. [Pertains to loading only] The handler type used for saving will be + recorded in the metadata, and will be used to resolve the handler, if a + corresponding handler is present in the registry. If not, scan the + secondary typestrs of registered handlers for a match. + 4. If no metadata match is found (or during saving), the most recently + registered capable handler is returned. """ from __future__ import annotations @@ -72,8 +78,14 @@ def add_all( other_registry: CheckpointableHandlerRegistry, ) -> CheckpointableHandlerRegistry: """Adds all entries from `other_registry` to `registry`.""" - for handler, checkpointable in other_registry.get_all_entries(): - registry.add(handler, checkpointable) + for handler, name in other_registry.get_all_entries(): + registry.add( + handler, + checkpointable_name=name, + secondary_typestrs=other_registry.get_secondary_typestrs( + handler + ), + ) return registry @@ -142,21 +154,23 @@ def get_all_entries( def add( self, handler_type: Type[CheckpointableHandler], - checkpointable: str | None = None, + *, + checkpointable_name: str | None = None, + secondary_typestrs: Sequence[str] | None = None, ) -> CheckpointableHandlerRegistry: """Adds an entry to the registry.""" ... def get( self, - checkpointable: str, + checkpointable_name: str, ) -> Type[CheckpointableHandler]: """Gets the type of a :py:class:`~.v1.handlers.CheckpointableHandler` from the registry.""" ... def has( self, - checkpointable: str, + checkpointable_name: str, ) -> bool: """Checks if an entry exists in the registry.""" ... @@ -166,6 +180,13 @@ def get_all_entries( ) -> Sequence[RegistryEntry]: ... + def get_secondary_typestrs( + self, + handler_type: Type[CheckpointableHandler], + ) -> Sequence[str]: + """Returns all secondary typestrs associated with the given handler type.""" + ... + class AlreadyExistsError(ValueError): """Raised when an entry already exists in the registry.""" @@ -182,6 +203,9 @@ def __init__( self, other_registry: CheckpointableHandlerRegistry | None = None ): self._registry: list[RegistryEntry] = [] + self._secondary_typestrs: dict[ + Type[CheckpointableHandler], Sequence[str] + ] = {} # Initialize the registry with entries from other registry. if other_registry: @@ -190,15 +214,27 @@ def __init__( def add( self, handler_type: Type[CheckpointableHandler], - checkpointable: str | None = None, + *, + checkpointable_name: str | None = None, + secondary_typestrs: Sequence[str] | None = None, ) -> CheckpointableHandlerRegistry: """Adds an entry to the registry. + Adds a primary handler_type to the registry with an optional checkpointable + name and an optional sequence of secondary typestrs that can be used to + identify the handler. + + Note: We only guarantee unique handler type entries in the registry and do + not explicitly prevent a primary handler type from being registered and its + typestr being used as a secondary_typestr for itself or another handler. + Args: handler_type: The handler type. - checkpointable: The checkpointable name. If not-None, the registered + checkpointable_name: The checkpointable name. If not-None, the registered handler will be scoped to that specific name. Otherwise, the handler will be available for any checkpointable name. + secondary_typestrs: A sequence of alternate typestrs that serve as + secondary identifiers for the handler. Returns: The registry itself. @@ -215,27 +251,29 @@ def add( registered_handler_types = [ handler_type for handler_type, _ in self.get_all_entries() ] - if checkpointable: - if self.has(checkpointable): + if checkpointable_name: + if self.has(checkpointable_name): raise AlreadyExistsError( - f'Entry for checkpointable={checkpointable} already' + f'Entry for checkpointable_name={checkpointable_name} already' ' exists in the registry.' ) elif handler_type in registered_handler_types: raise AlreadyExistsError( f'Handler type {handler_type} already exists in the registry.' ) - self._registry.append((handler_type, checkpointable)) + self._registry.append((handler_type, checkpointable_name)) + if secondary_typestrs is not None: + self._secondary_typestrs[handler_type] = secondary_typestrs return self def get( self, - checkpointable: str, + checkpointable_name: str, ) -> Type[CheckpointableHandler]: """Returns the handler for the given checkpointable name. Args: - checkpointable: The checkpointable name. + checkpointable_name: The checkpointable name. Returns: The handler for the given checkpointable name. @@ -244,30 +282,31 @@ def get( NoEntryError: If no entry for the given checkpointable name exists in the registry. """ - for handler, checkpointable_name in self._registry: - if checkpointable == checkpointable_name: + for handler, name in self._registry: + if checkpointable_name == name: return handler raise NoEntryError( - f'No entry for checkpointable={checkpointable} in the registry.' + f'No entry for checkpointable_name={checkpointable_name} in the' + ' registry.' ) def has( self, - checkpointable: str, + checkpointable_name: str, ) -> bool: """Returns whether an entry for the given checkpointable name exists. Args: - checkpointable: A checkpointable name. + checkpointable_name: A checkpointable name. Returns: True if an entry for the given checkpointable name exists, False otherwise. """ return any( - checkpointable_name == checkpointable - for _, checkpointable_name in self._registry + name == checkpointable_name + for _, name in self._registry ) def get_all_entries( @@ -276,6 +315,13 @@ def get_all_entries( """Returns all entries in the registry.""" return self._registry + def get_secondary_typestrs( + self, + handler_type: Type[CheckpointableHandler], + ) -> Sequence[str]: + """Returns all secondary typestrs associated with the given handler type.""" + return self._secondary_typestrs.get(handler_type, []) + def __repr__(self): return f'_DefaultCheckpointableHandlerRegistry({self.get_all_entries()})' @@ -292,27 +338,35 @@ def __init__(self, registry: CheckpointableHandlerRegistry): def add( self, handler_type: Type[CheckpointableHandler], - checkpointable: str | None = None, + *, + checkpointable_name: str | None = None, + secondary_typestrs: Sequence[str] | None = None, ) -> CheckpointableHandlerRegistry: raise NotImplementedError('Adding not implemented for read-only registry.') def get( self, - checkpointable: str, + checkpointable_name: str, ) -> Type[CheckpointableHandler]: - return self._registry.get(checkpointable) + return self._registry.get(checkpointable_name) def has( self, - checkpointable: str, + checkpointable_name: str, ) -> bool: - return self._registry.has(checkpointable) + return self._registry.has(checkpointable_name) def get_all_entries( self, ) -> Sequence[RegistryEntry]: return self._registry.get_all_entries() + def get_secondary_typestrs( + self, + handler_type: Type[CheckpointableHandler], + ) -> Sequence[str]: + return self._registry.get_secondary_typestrs(handler_type) + def __repr__(self): return f'ReadOnlyCheckpointableHandlerRegistry({self.get_all_entries()})' @@ -399,6 +453,9 @@ class MyHandler(handlers.CheckpointableHandler): def register_handler( cls: CheckpointableHandlerType, + *, + checkpointable_name: str | None = None, + secondary_typestrs: Sequence[str] | None = None, ) -> CheckpointableHandlerType: """Registers a :py:class:`~.v1.handlers.CheckpointableHandler` globally. @@ -422,16 +479,25 @@ class BarHandler(handlers.CheckpointableHandler): Args: cls: The handler class to register globally. + checkpointable_name: The checkpointable name. If not-None, the registered + handler will be scoped to that specific name. Otherwise, the handler + will be available for any checkpointable name. + secondary_typestrs: A sequence of alternate handler typestrs that serve as + secondary identifiers for the handler. Returns: The handler class. """ - _GLOBAL_REGISTRY.add(cls) + _GLOBAL_REGISTRY.add( + cls, + checkpointable_name=checkpointable_name, + secondary_typestrs=secondary_typestrs, + ) return cls def _construct_handler_instance( - name: str, + name: str | None, handler_type: Type[CheckpointableHandler], ) -> CheckpointableHandler: """Attempts to default-construct a handler type if possible.""" @@ -545,7 +611,7 @@ def is_handleable_fn(handler: CheckpointableHandler, ckpt: Any) -> bool: registry, is_handleable_fn, checkpointable, name ) - # Prefer the first handler in the absence of any other information. + # Prefer the last handler in the absence of any other information. return possible_handlers[-1] @@ -566,8 +632,9 @@ def resolve_handler_for_load( 4. If multiple handlers are usable, return the handler with the matching typestr. If no matching typestr is found, then the handler used for saving may not be available now. - 4. Return the *last* usable handler. This allows us to resolve the most - recently-registered handler. + 5. Return the *last* usable handler. This allows us to resolve the most + recently-registered handler, unless abstract_checkpointable is None, in + which case raise a NoEntryError. Raises: NoEntryError: If no compatible @@ -605,15 +672,29 @@ def is_handleable_fn( ] if handler_typestr: - try: + if handler_typestr in possible_handler_typestrs: idx = possible_handler_typestrs.index(handler_typestr) return possible_handlers[idx] - except ValueError: - logging.warning( - 'No handler found for typestr %s. The checkpointable may be restored' - ' with different handler logic than was used for saving.', - handler_typestr, - ) + # Attempt to find a handler with a matching secondary typestr. + for i in reversed(range(len(possible_handlers))): + if handler_typestr in registry.get_secondary_typestrs( + type(possible_handlers[i]) + ): + return possible_handlers[i] + logging.warning( + 'No handler found for typestr %s (or its converted form). The ' + 'checkpointable may be restored with different handler logic ' + 'than was used for saving.', + handler_typestr, + ) - # Prefer the last handler in the absence of any other information. - return possible_handlers[-1] + if abstract_checkpointable: + # Prefer the last handler in the absence of any other information. + return possible_handlers[-1] + + raise NoEntryError( + f'No entry for checkpointable={name} in the registry, using' + f' handler_typestr={handler_typestr} and' + f' abstract_checkpointable={abstract_checkpointable}. Registry contents:' + f' {registry.get_all_entries()}' + ) diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/handlers/registration_test.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/handlers/registration_test.py index 667b5650b..5a4d604a6 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/handlers/registration_test.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/handlers/registration_test.py @@ -20,7 +20,19 @@ from orbax.checkpoint.experimental.v1._src.testing import handler_utils -class RegistrationTest(parameterized.TestCase): +class RegistrationTestBase(parameterized.TestCase): + + class HandlerOne(handler_utils.BazHandler): + def is_abstract_handleable( + self, abstract_checkpointable: handler_utils.AbstractBaz + ) -> bool: + return isinstance(abstract_checkpointable, handler_utils.AbstractBaz) + + class HandlerTwo(handler_utils.BazHandler): + def is_abstract_handleable( + self, abstract_checkpointable: handler_utils.AbstractBaz + ) -> bool: + return isinstance(abstract_checkpointable, handler_utils.AbstractBaz) def setUp(self): super().setUp() @@ -34,6 +46,9 @@ def setUp(self): ) registration.register_handler(handler_utils.BazHandler) + +class RegistryTest(RegistrationTestBase): + def test_global_registry(self): expected_types = [ handler @@ -49,7 +64,7 @@ def test_local_registry(self, include_global_registry): local_registry = registration.local_registry( include_global_registry=include_global_registry ) - local_registry.add(handler_utils.FooHandler, 'foo') + local_registry.add(handler_utils.FooHandler, checkpointable_name='foo') local_registry.add(handler_utils.BarHandler) self.assertTrue(local_registry.has('foo')) self.assertEqual(local_registry.get('foo'), handler_utils.FooHandler) @@ -60,14 +75,33 @@ def test_local_registry(self, include_global_registry): expected, [handler for handler, _ in local_registry.get_all_entries()], ) + self.assertEqual( + local_registry.get_secondary_typestrs( + handler_utils.FooHandler + ), + [], + ) + local_registry.add( + handler_utils.DictHandler, + secondary_typestrs=['dict_alt_typestr'], + ) + self.assertEqual( + local_registry.get_secondary_typestrs( + handler_utils.DictHandler + ), + ['dict_alt_typestr'], + ) def test_missing_handler(self): local_registry = registration.local_registry() - local_registry.add(handler_utils.FooHandler, 'foo') + local_registry.add(handler_utils.FooHandler, checkpointable_name='foo') local_registry.add(handler_utils.BarHandler) with self.assertRaises(registration.NoEntryError): local_registry.get('bar') + +class ResolveHandlerForSaveTest(RegistrationTestBase): + @parameterized.parameters( ( handler_utils.FooHandler, @@ -84,39 +118,36 @@ def test_missing_handler(self): ) def test_resolve_handler_for_save(self, handler_type, checkpointable, name): local_registry = registration.local_registry() - local_registry.add(handler_type, name) + local_registry.add(handler_type, checkpointable_name=name) name = name or 'checkpointable_name' resolved_handler = registration.resolve_handler_for_save( local_registry, checkpointable, name=name ) self.assertIsInstance(resolved_handler, handler_type) - def test_resolve_handler_for_save_resolution_order(self): - - class HandlerOne(handler_utils.DictHandler): - pass - - class HandlerTwo(handler_utils.DictHandler): - pass - - handlers_to_register = [HandlerOne, HandlerTwo] + def test_resolve_handler_for_save_resolution_order_in_order(self): + handlers_to_register = [self.HandlerOne, self.HandlerTwo] + local_registry = registration.local_registry() + for handler in handlers_to_register: + local_registry.add(handler) + resolved_handler = registration.resolve_handler_for_save( + local_registry, + handler_utils.Baz(int_val=1, str_val='baz'), + name='checkpointable_name', + ) + self.assertIsInstance(resolved_handler, self.HandlerTwo) - with self.subTest('in_order'): - local_registry = registration.local_registry() - for handler in handlers_to_register: - local_registry.add(handler) - resolved_handler = registration.resolve_handler_for_save( - local_registry, {'a': 1}, name='checkpointable_name' - ) - self.assertIsInstance(resolved_handler, HandlerTwo) - with self.subTest('reversed'): - local_registry = registration.local_registry() - for handler in reversed(handlers_to_register): - local_registry.add(handler) - resolved_handler = registration.resolve_handler_for_save( - local_registry, {'a': 1}, name='checkpointable_name' - ) - self.assertIsInstance(resolved_handler, HandlerOne) + def test_resolve_handler_for_save_resolution_order_reversed(self): + handlers_to_register = [self.HandlerOne, self.HandlerTwo] + local_registry = registration.local_registry() + for handler in reversed(handlers_to_register): + local_registry.add(handler) + resolved_handler = registration.resolve_handler_for_save( + local_registry, + handler_utils.Baz(int_val=1, str_val='baz'), + name='checkpointable_name', + ) + self.assertIsInstance(resolved_handler, self.HandlerOne) def test_resolve_handler_for_save_not_handleable(self): local_registry = registration.local_registry() @@ -128,7 +159,7 @@ def test_resolve_handler_for_save_not_handleable(self): def test_resolve_handler_for_save_no_matching_name(self): local_registry = registration.local_registry() - local_registry.add(handler_utils.FooHandler, 'foo') + local_registry.add(handler_utils.FooHandler, checkpointable_name='foo') with self.assertRaises(registration.NoEntryError): registration.resolve_handler_for_save( local_registry, handler_utils.Foo(1, 'hi'), name='foo1' @@ -142,6 +173,9 @@ def test_resolve_handler_for_save_abstract_checkpointable(self): local_registry, handler_utils.AbstractFoo(), name='foo' ) + +class ResolveHandlerForLoadTest(RegistrationTestBase): + @parameterized.parameters( ( handler_utils.FooHandler, @@ -185,7 +219,7 @@ def test_resolve_handler_for_load( self, handler_type, checkpointable, name, handler_typestr ): local_registry = registration.local_registry() - local_registry.add(handler_type, name) + local_registry.add(handler_type, checkpointable_name=name) name = name or 'checkpointable_name' resolved_handler = registration.resolve_handler_for_load( local_registry, @@ -195,61 +229,99 @@ def test_resolve_handler_for_load( ) self.assertIsInstance(resolved_handler, handler_type) - def test_resolve_handler_for_load_resolution_order(self): - - class HandlerOne(handler_utils.DictHandler): - pass - - class HandlerTwo(handler_utils.DictHandler): - pass - - handlers_to_register = [HandlerOne, HandlerTwo] - - with self.subTest('globally_registered'): - resolved_handler = registration.resolve_handler_for_load( + def test_resolve_handler_for_load_resolution_order_globally_registered(self): + with self.assertRaises(registration.NoEntryError): + registration.resolve_handler_for_load( registration.local_registry(), None, name='checkpointable_name', handler_typestr='unknown_class', ) - self.assertIsInstance(resolved_handler, handler_utils.BazHandler) - with self.subTest('in_order'): - local_registry = registration.local_registry( - include_global_registry=False - ) - for handler in handlers_to_register: - local_registry.add(handler) - resolved_handler = registration.resolve_handler_for_load( - local_registry, - None, - name='checkpointable_name', - handler_typestr='unknown_class', - ) - self.assertIsInstance(resolved_handler, HandlerTwo) - with self.subTest('with_typestr'): - local_registry = registration.local_registry() - for handler in handlers_to_register: - local_registry.add(handler) - resolved_handler = registration.resolve_handler_for_load( - local_registry, - None, - name='checkpointable_name', - handler_typestr=handler_types.typestr(HandlerTwo), - ) - self.assertIsInstance(resolved_handler, HandlerTwo) - with self.subTest('reversed'): - local_registry = registration.local_registry( - include_global_registry=False - ) - for handler in reversed(handlers_to_register): - local_registry.add(handler) - resolved_handler = registration.resolve_handler_for_load( + resolved_handler = registration.resolve_handler_for_load( + registration.local_registry(), + handler_utils.AbstractBaz(), + name='checkpointable_name', + handler_typestr='unknown_class', + ) + self.assertIsInstance(resolved_handler, handler_utils.BazHandler) + + def test_resolve_handler_for_load_resolution_order_in_order(self): + handlers_to_register = [self.HandlerOne, self.HandlerTwo] + local_registry = registration.local_registry( + include_global_registry=False + ) + for handler in handlers_to_register: + local_registry.add(handler) + resolved_handler = registration.resolve_handler_for_load( + local_registry, + handler_utils.AbstractBaz(), + name='checkpointable_name', + handler_typestr='unknown_class', + ) + self.assertIsInstance(resolved_handler, self.HandlerTwo) + + def test_resolve_handler_for_load_resolution_order_with_typestr(self): + handlers_to_register = [self.HandlerOne, self.HandlerTwo] + local_registry = registration.local_registry() + for handler in handlers_to_register: + local_registry.add(handler) + resolved_handler = registration.resolve_handler_for_load( + local_registry, + None, + name='checkpointable_name', + handler_typestr=handler_types.typestr(self.HandlerOne), + ) + self.assertIsInstance(resolved_handler, self.HandlerOne) + + def test_resolve_handler_for_load_resolution_order_reversed(self): + handlers_to_register = [self.HandlerOne, self.HandlerTwo] + local_registry = registration.local_registry( + include_global_registry=False + ) + for handler in reversed(handlers_to_register): + local_registry.add(handler) + with self.assertRaises(registration.NoEntryError): + registration.resolve_handler_for_load( local_registry, None, name='checkpointable_name', handler_typestr='unknown_class', ) - self.assertIsInstance(resolved_handler, HandlerOne) + resolved_handler = registration.resolve_handler_for_load( + local_registry, + handler_utils.AbstractBaz(), + name='checkpointable_name', + handler_typestr='unknown_class', + ) + self.assertIsInstance(resolved_handler, self.HandlerOne) + + def test_resolve_handler_for_load_resolution_order_with_secondary_typestrs( + self, + ): + local_registry = registration.local_registry( + include_global_registry=False + ) + local_registry.add( + self.HandlerOne, secondary_typestrs=['handler_one_alt_typestr'], + ) + local_registry.add( + self.HandlerTwo, secondary_typestrs=['handler_two_alt_typestr'] + ) + resolved_handler = registration.resolve_handler_for_load( + local_registry, + None, + name='checkpointable_name', + handler_typestr='handler_one_alt_typestr', + ) + self.assertIsInstance(resolved_handler, self.HandlerOne) + + resolved_handler = registration.resolve_handler_for_load( + local_registry, + None, + name='checkpointable_name', + handler_typestr='handler_two_alt_typestr', + ) + self.assertIsInstance(resolved_handler, self.HandlerTwo) def test_resolve_handler_for_load_not_handleable(self): local_registry = registration.local_registry() @@ -264,7 +336,7 @@ def test_resolve_handler_for_load_not_handleable(self): def test_resolve_handler_for_load_no_matching_name(self): local_registry = registration.local_registry() - local_registry.add(handler_utils.FooHandler, 'foo') + local_registry.add(handler_utils.FooHandler, checkpointable_name='foo') with self.assertRaises(registration.NoEntryError): registration.resolve_handler_for_load( local_registry, @@ -279,7 +351,7 @@ def test_resolve_handler_for_load_no_handler_typestr(self): resolved = registration.resolve_handler_for_load( local_registry, handler_utils.AbstractFoo(), - name='dummy_unregistered_nameame', + name='unregistered_name', handler_typestr=None, ) self.assertIsInstance(resolved, handler_utils.FooHandler) @@ -292,6 +364,16 @@ def test_resolve_handler_for_load_no_handler_typestr(self): handler_typestr=None, ) + def test_resolve_handler_for_load_no_checkpointable_no_metadata(self): + local_registry = registration.local_registry() + with self.assertRaises(registration.NoEntryError): + registration.resolve_handler_for_load( + local_registry, + None, + name='unregistered_name', + handler_typestr=None, + ) + if __name__ == '__main__': absltest.main() diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/handlers/resolution.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/handlers/resolution.py index 5f397ae6c..e55a51d03 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/handlers/resolution.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/handlers/resolution.py @@ -67,30 +67,20 @@ def _resolve_single_handler_for_load( registration.NoEntryError: If no handler is resolved and 'pytree' name is not registered. """ - # 1. Resolve the handler using handler_typestr and - # abstract_checkpointable type if either is specified. - if abstract_checkpointable or metadata_handler_typestr: - try: - return registration.resolve_handler_for_load( - handler_registry, - abstract_checkpointable, - name=checkpointable_name, - handler_typestr=metadata_handler_typestr, - ) - except registration.NoEntryError as e: - logging.warning( - "Failed to resolve handler for checkpointable: '%s'. Attempting to" - " load using pytree handler, otherwise defaulting to a None" - " return value. Error: %s", - checkpointable_name, - e, - ) - else: - logging.info( - "No metadata present in checkpoint and no abstract checkpointable" - " provided for checkpointable: '%s'. Attempting to load using" - " pytree handler, otherwise defaulting to a None return value.", + # 1. Resolve the checkpointable's handler using handler discovery. + try: + return registration.resolve_handler_for_load( + handler_registry, + abstract_checkpointable, + name=checkpointable_name, + handler_typestr=metadata_handler_typestr, + ) + except registration.NoEntryError as e: + logging.warning( + "Failed to resolve handler for checkpointable: '%s'. Attempting to" + " load using pytree handler. Error: %s", checkpointable_name, + e, ) # 2. If no handler is resolved yet, try to resolve using the default @@ -101,8 +91,8 @@ def _resolve_single_handler_for_load( if not pytree_handler: raise registration.NoEntryError( f"Could not resolve a handler for '{checkpointable_name}' and no" - f"'pytree' handler found in {handler_registry}).\n" - "Please inspect the checkpoint contents via" + f" 'pytree' handler found in {handler_registry})." + " Please inspect the checkpoint contents via" " `loading.checkpointables_metadata`. You may need to provide an" " abstract_checkpointable or register a missing handler for this name" " or for 'pytree' name which is used as a fallback." diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/layout/checkpoint_layout.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/layout/checkpoint_layout.py index 1e87127a9..f7676ea25 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/layout/checkpoint_layout.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/layout/checkpoint_layout.py @@ -25,6 +25,7 @@ ### Constants shared by all layouts. ### PYTREE_CHECKPOINTABLE_KEY = "pytree" +EMPTY_CHECKPOINTABLE_KEY = "" METRICS_CHECKPOINTABLE_KEY = "metrics" diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/layout/orbax_layout.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/layout/orbax_layout.py index f7416cb74..6afa4887c 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/layout/orbax_layout.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/layout/orbax_layout.py @@ -326,7 +326,6 @@ async def validate(self, path: Path): except BaseException as e: raise InvalidLayoutError( f"Failed to interpret path {path} as a V1 Orbax checkpoint." - f" due to error encountered during validation: {e}" ) from e async def validate_pytree( @@ -337,8 +336,7 @@ async def validate_pytree( await self._validate_pytree(path, checkpointable_name) except BaseException as e: raise InvalidLayoutError( - f"Failed to interpret path {path} as a V1 Orbax PyTree" - f" checkpoint. Encountered error during validation: {e}" + f"Failed to interpret path {path} as a V1 Orbax PyTree." ) from e async def load_pytree( @@ -568,8 +566,8 @@ async def _process_load_awaitables( except BaseException as e: # pylint:disable=broad-exception-caught raise registration.NoEntryError( f"Failed to load checkpointable: {name} due to incompatible" - f" handler: {handlers[name]} found in registry:" + f" handler: {type(handlers[name])} found in registry:" f" {self._handler_registry} for abstract checkpointable:" - f" {checkpointables_to_load[name]}.\nError details: {e}" + f" {checkpointables_to_load[name]}." ) from e return loaded_checkpointables diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/layout/orbax_v0_layout.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/layout/orbax_v0_layout.py index 17c4c522b..3797bff5a 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/layout/orbax_v0_layout.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/layout/orbax_v0_layout.py @@ -157,13 +157,11 @@ async def _validate(self, path: Path) -> None: ): raise ValueError(f"Found incomplete checkpoint at {path}.") - if await async_path.exists( - path.parent - ) and await orbax_layout.has_indicator_file(path.parent): + if await orbax_layout.has_checkpoint_metadata_file(path.parent): raise InvalidLayoutError( - f"You are currently reading in checkpointable {path.name}, which is" - " a subdirectory of a V1 Orbax checkpoint. Please consider loading" - f" from {path.parent} instead." + f"The path ({path}) configured for loading appears to be a" + " subdirectory of an Orbax checkpoint. Please try loading from the" + f" parent directory: {path.parent} instead." ) if not await orbax_layout.has_checkpoint_metadata_file(path): @@ -184,8 +182,8 @@ async def _validate(self, path: Path) -> None: ] if checkpoint_subdirectories: raise InvalidLayoutError( - "You are currently attempting to read a V0 checkpoint from a root" - " directory, please consider loading one of the following" + "You are currently attempting to read an Orbax checkpoint from a" + " root directory, please consider loading one of the following" f" checkpoint subdirectories: {checkpoint_subdirectories}" ) @@ -263,7 +261,6 @@ async def validate(self, path: Path) -> None: except BaseException as e: raise InvalidLayoutError( f"Failed to interpret path {path} as a V0 Orbax checkpoint." - f" due to error encountered during validation: {e}" ) from e async def validate_pytree( @@ -286,8 +283,7 @@ async def validate_pytree( await self._validate_pytree(path, checkpointable_name) except BaseException as e: raise InvalidLayoutError( - f"Failed to interpret path {path} as a V0 Orbax PyTree" - f" checkpoint. Encountered error during validation: {e}" + f"Failed to interpret path {path} as a V0 Orbax PyTree." ) from e async def load_pytree( diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/layout/registry_test.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/layout/registry_test.py index 146bc8f34..26627971a 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/layout/registry_test.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/layout/registry_test.py @@ -96,14 +96,11 @@ async def test_v1_direct_path(self): self.v1_directory / 'pytree', CheckpointLayoutEnum.ORBAX, None ) - async def test_v0_direct_path(self): - layout = await get_checkpoint_layout_pytree( - self.v0_directory / 'state', CheckpointLayoutEnum.ORBAX, None - ) - self.assertIsInstance(layout, orbax_v0_layout.OrbaxV0Layout) - self.assertFalse( - await orbax_layout.has_indicator_file(self.v0_directory / 'state') - ) + async def test_v0_child_path_load_failure(self): + with self.assertRaises(registry.InvalidLayoutError): + await get_checkpoint_layout_pytree( + self.v0_directory / 'state', CheckpointLayoutEnum.ORBAX, None + ) async def test_v1_missing_indicator_file(self): (self.v1_directory / orbax_layout.ORBAX_CHECKPOINT_INDICATOR_FILE).unlink() diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/loading/loading.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/loading/loading.py index 347d233f4..017e2ee0e 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/loading/loading.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/loading/loading.py @@ -132,6 +132,10 @@ def load_pytree( """ start_time = time.time() logging.info('Loading checkpoint from %s.', path) + + abstract_pytree = _standardize_abstract_checkpointables(abstract_pytree) + validation.validate_pytree_checkpointable_name(checkpointable_name) + ctx = context_lib.get_context() path = ctx.file_options.path_class(path) layout = asyncio_utils.run_sync( @@ -139,9 +143,6 @@ def load_pytree( path, ctx.checkpoint_layout, checkpointable_name ) ) - abstract_pytree = _standardize_abstract_checkpointables(abstract_pytree) - - validation.validate_pytree_checkpointable_name(checkpointable_name) loaded_pytree = _load_impl( path, @@ -257,17 +258,18 @@ def load_checkpointables( """ start_time = time.time() logging.info('Loading checkpoint from %s.', path) - ctx = context_lib.get_context() - path = ctx.file_options.path_class(path) - layout = asyncio_utils.run_sync( - layout_registry.get_checkpoint_layout(path, ctx.checkpoint_layout) - ) abstract_checkpointables = _standardize_abstract_checkpointables( abstract_checkpointables ) validation.validate_abstract_checkpointables(abstract_checkpointables) + ctx = context_lib.get_context() + path = ctx.file_options.path_class(path) + layout = asyncio_utils.run_sync( + layout_registry.get_checkpoint_layout(path, ctx.checkpoint_layout) + ) + if not hasattr(layout, 'load_checkpointables'): raise NotImplementedError( f'Layout {type(layout)} does not support loading checkpointables.' diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/loading/validation.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/loading/validation.py index a587f3ad9..6ffdc3d56 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/loading/validation.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/loading/validation.py @@ -16,6 +16,9 @@ from orbax.checkpoint.experimental.v1._src.layout import checkpoint_layout +RESERVED_CHECKPOINTABLE_KEYS = checkpoint_layout.RESERVED_CHECKPOINTABLE_KEYS +EMPTY_CHECKPOINTABLE_KEY = checkpoint_layout.EMPTY_CHECKPOINTABLE_KEY + def validate_pytree_checkpointable_name( checkpointable_name: str | None, @@ -30,7 +33,13 @@ def validate_pytree_checkpointable_name( """ if checkpointable_name is None: return - if checkpointable_name in checkpoint_layout.RESERVED_CHECKPOINTABLE_KEYS: + if checkpointable_name == EMPTY_CHECKPOINTABLE_KEY: + raise ValueError( + 'Empty string is not supported as a checkpointable name in' + ' `load_pytree`. Checkpointable name must be a valid non-empty string' + ' name or None if loading a legacy V0 direct pytree checkpoint.' + ) + if checkpointable_name in RESERVED_CHECKPOINTABLE_KEYS: raise ValueError( f'Provided reserved checkpointable key: {checkpointable_name}.' ) @@ -47,9 +56,15 @@ def validate_abstract_checkpointables(abstract_checkpointables): """ if abstract_checkpointables is None: return + if EMPTY_CHECKPOINTABLE_KEY in abstract_checkpointables: + raise ValueError( + 'Empty string is not supported as a checkpointable name in' + ' `load_checkpointables`. Each checkpointable name must be a valid' + ' non-empty string name.' + ) if ( provided_reserved_keys := abstract_checkpointables.keys() - & checkpoint_layout.RESERVED_CHECKPOINTABLE_KEYS + & RESERVED_CHECKPOINTABLE_KEYS ): raise ValueError( f'Provided reserved checkpointable keys: {provided_reserved_keys}.' diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/loading/validation_test.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/loading/validation_test.py index 342bce705..948546686 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/loading/validation_test.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/loading/validation_test.py @@ -15,19 +15,34 @@ from unittest import mock from absl.testing import absltest -from orbax.checkpoint.experimental.v1._src.layout import checkpoint_layout from orbax.checkpoint.experimental.v1._src.loading import validation class ValidationTest(absltest.TestCase): + def test_validate_pytree_checkpointable_name(self): + validation.validate_pytree_checkpointable_name(None) + validation.validate_pytree_checkpointable_name('pytree') + validation.validate_pytree_checkpointable_name('a') + + with self.assertRaisesRegex(ValueError, 'Empty string is not supported'): + validation.validate_pytree_checkpointable_name('') + + with mock.patch.object( + validation, 'RESERVED_CHECKPOINTABLE_KEYS', {'reserved'} + ): + with self.assertRaisesRegex(ValueError, 'reserved'): + validation.validate_pytree_checkpointable_name('reserved') def test_validate_abstract_checkpointables(self): validation.validate_abstract_checkpointables(None) validation.validate_abstract_checkpointables({}) validation.validate_abstract_checkpointables({'a': 1}) + with self.assertRaisesRegex(ValueError, 'Empty string is not supported'): + validation.validate_abstract_checkpointables({'': 1}) + with mock.patch.object( - checkpoint_layout, 'RESERVED_CHECKPOINTABLE_KEYS', {'reserved'} + validation, 'RESERVED_CHECKPOINTABLE_KEYS', {'reserved'} ): with self.assertRaisesRegex(ValueError, 'reserved'): validation.validate_abstract_checkpointables({'reserved': 1}) diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/metadata/loading.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/metadata/loading.py index 04a42941c..06f5a929d 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/metadata/loading.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/metadata/loading.py @@ -22,6 +22,7 @@ import orbax.checkpoint.experimental.v1._src.handlers.global_registration # pylint: disable=unused-import from orbax.checkpoint.experimental.v1._src.layout import checkpoint_layout from orbax.checkpoint.experimental.v1._src.layout import registry as layout_registry +from orbax.checkpoint.experimental.v1._src.loading import validation from orbax.checkpoint.experimental.v1._src.metadata import types as metadata_types from orbax.checkpoint.experimental.v1._src.path import types as path_types @@ -30,6 +31,7 @@ InvalidLayoutError = errors.InvalidLayoutError PyTreeMetadata = metadata_types.PyTreeMetadata PYTREE_CHECKPOINTABLE_KEY = checkpoint_layout.PYTREE_CHECKPOINTABLE_KEY +EMPTY_CHECKPOINTABLE_KEY = checkpoint_layout.EMPTY_CHECKPOINTABLE_KEY def pytree_metadata( @@ -85,6 +87,7 @@ def _get_abstract_array(arr): Returns: A `CheckpointMetadata[PyTreeMetadata]` object. """ + validation.validate_pytree_checkpointable_name(checkpointable_name) ctx = context_lib.get_context() path = ctx.file_options.path_class(path) diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/saving/execution.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/saving/execution.py index ad2f7ed7c..617fa5a5f 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/saving/execution.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/saving/execution.py @@ -39,6 +39,7 @@ from orbax.checkpoint.experimental.v1._src.path import async_utils as path_async_utils from orbax.checkpoint.experimental.v1._src.path import types as path_types from orbax.checkpoint.experimental.v1._src.saving import path_utils as saving_path_utils +from orbax.checkpoint.experimental.v1._src.saving import validation from orbax.checkpoint.experimental.v1._src.synchronization import multihost from orbax.checkpoint.experimental.v1._src.synchronization import thread_utils from orbax.checkpoint.experimental.v1._src.synchronization import types as async_types @@ -371,6 +372,7 @@ def save_checkpointables_impl( partial_save: bool = False, ) -> async_types.AsyncResponse[None]: """See caller docstrings.""" + validation.validate_abstract_checkpointables(checkpointables) start_time = time.time() event_tracking.record_save_start(path, async_origin=async_origin) # Ensure the operation ID is incremented as soon as possible. This must be diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/saving/saving.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/saving/saving.py index 37400e91e..0c7e481a7 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/saving/saving.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/saving/saving.py @@ -26,6 +26,7 @@ from orbax.checkpoint.experimental.v1._src.layout import checkpoint_layout from orbax.checkpoint.experimental.v1._src.path import types as path_types from orbax.checkpoint.experimental.v1._src.saving import execution +from orbax.checkpoint.experimental.v1._src.saving import validation from orbax.checkpoint.experimental.v1._src.synchronization import types as async_types from orbax.checkpoint.experimental.v1._src.tree import types as tree_types @@ -70,12 +71,13 @@ def save_pytree( JSON-serializable dictionary the user can use to store additional information. The field is treated as opaque by Orbax. """ - save_checkpointables( + execution.save_checkpointables_impl( path, {PYTREE_CHECKPOINTABLE_KEY: pytree}, overwrite=overwrite, custom_metadata=custom_metadata, - ) + async_origin=False, + ).result() def save_checkpointables( @@ -131,6 +133,7 @@ def save_checkpointables( JSON-serializable dictionary the user can use to store additional information. The field is treated as opaque by Orbax. """ + validation.validate_abstract_checkpointables(checkpointables) execution.save_checkpointables_impl( path, checkpointables, @@ -200,11 +203,12 @@ def save_pytree_async( An `AsyncResponse` that can be used to block until the save is complete. Blocking can be done using `response.result()`, which returns `None`. """ - return save_checkpointables_async( + return execution.save_checkpointables_impl( path, {PYTREE_CHECKPOINTABLE_KEY: pytree}, overwrite=overwrite, custom_metadata=custom_metadata, + async_origin=True, ) @@ -275,6 +279,7 @@ def save_checkpointables_async( An `AsyncResponse` that can be used to block until the save is complete. Blocking can be done using `response.result()`, which returns `None`. """ + validation.validate_abstract_checkpointables(checkpointables) return execution.save_checkpointables_impl( path, checkpointables, @@ -303,13 +308,6 @@ def get_v0_checkpointer_and_args( Returns: A tuple containing the V0 Checkpointer and Args. """ - if ( - provided_reserved_keys := checkpointables.keys() - & checkpoint_layout.RESERVED_CHECKPOINTABLE_KEYS - ): - raise ValueError( - f'Provided reserved checkpointable keys: {provided_reserved_keys}.' - ) checkpointables = execution.add_internal_checkpointables( checkpointables, context=context, metrics=metrics ) diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/saving/validation.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/saving/validation.py new file mode 100644 index 000000000..7ca0f68d1 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/saving/validation.py @@ -0,0 +1,46 @@ +# Copyright 2026 The Orbax Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Validation functions involved in saving.""" + +from orbax.checkpoint.experimental.v1._src.layout import checkpoint_layout + +RESERVED_CHECKPOINTABLE_KEYS = checkpoint_layout.RESERVED_CHECKPOINTABLE_KEYS +EMPTY_CHECKPOINTABLE_KEY = checkpoint_layout.EMPTY_CHECKPOINTABLE_KEY + + +def validate_abstract_checkpointables(abstract_checkpointables): + """Validates the abstract_checkpointables dictionary. + + Args: + abstract_checkpointables: A dictionary of abstract checkpointables. + + Raises: + ValueError: If any of the keys in abstract_checkpointables are reserved. + """ + if abstract_checkpointables is None: + return + if EMPTY_CHECKPOINTABLE_KEY in abstract_checkpointables: + raise ValueError( + 'Empty string is not supported as a checkpointable name in' + ' `save_checkpointables`. Each checkpointable name must be a valid' + ' non-empty string name.' + ) + if ( + provided_reserved_keys := abstract_checkpointables.keys() + & RESERVED_CHECKPOINTABLE_KEYS + ): + raise ValueError( + f'Provided reserved checkpointable keys: {provided_reserved_keys}.' + ) diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/serialization/compatibility.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/serialization/compatibility.py index 814d8b5f1..610d47d87 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/serialization/compatibility.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/serialization/compatibility.py @@ -437,22 +437,15 @@ def get_v0_type_handler_registry( type handler registry. context: The Context to be used to default construct the LeafHandlers. """ - - def _get_typestr(leaf_type: Any) -> str: - if leaf_type == jax.Array: - return type_handlers_v0.JAX_ARRAY_TYPE_STR - elif leaf_type == np.ndarray: - return 'np.ndarray' - elif leaf_type in (int, float, bytes, np.number): - return 'scalar' - elif leaf_type == str: - return 'string' - else: - return f'{leaf_type!r}' - # register standardard v1 leaf handlers to the v0 type handler registry. handlers = [] - for leaf_type, _, leaf_handler_type in leaf_handler_registry.get_all(): + # We must reverse the order of the leaf handlers to ensure that the last + # registered handler is the first one used as V1 registry is ordered by + # priority of generic to specific, while V0 type handler registry is ordered + # by the reverse. + for leaf_type, leaf_handler_type in reversed( + leaf_handler_registry.get_leaf_type_handler_pairs() + ): try: leaf_handler = leaf_handler_type(context=context) # pytype: disable=wrong-keyword-args except TypeError as e: @@ -460,11 +453,14 @@ def _get_typestr(leaf_type: Any) -> str: f'Failed to default construct LeafHandler[{leaf_type}]. All' ' LeafHandler types must be able to be constructed with a context.' ) from e + + typestrs = leaf_handler_registry.get_secondary_typestrs(leaf_handler_type) + typestr = typestrs[0] if typestrs else f'{leaf_type!r}' handlers.append(( leaf_type, CompatibleTypeHandler( leaf_handler, - typestr=_get_typestr(leaf_type), + typestr=typestr, ), )) return type_handler_registry.create_type_handler_registry(*handlers) diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/serialization/registry.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/serialization/registry.py index 78a347999..a29c2f026 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/serialization/registry.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/serialization/registry.py @@ -14,7 +14,8 @@ """Leaf Handler Registry.""" -from typing import Any, Dict, Sequence, Tuple, Type +import dataclasses +from typing import Any, Sequence, Type from absl import logging import jax @@ -28,62 +29,94 @@ import typing_extensions -# The standard type and abstract type to handler mapping. +# The standard type, abstract type, and optional typestrs to handler mapping. # The type to abstract type pairs are well defined standard and users should # rarely need to override the pair. -STANDARD_TYPE_AND_ABSTRACT_TYPE_TO_HANDLER = { +STANDARD_TYPE_AND_ABSTRACT_TYPE_AND_TYPESTR_TO_HANDLER = [ ( jax.Array, types.AbstractShardedArray, - ): array_leaf_handler.ArrayLeafHandler, + ['jax.Array'], + array_leaf_handler.ArrayLeafHandler, + ), ( np.ndarray, types.AbstractArray, - ): numpy_leaf_handler.NumpyLeafHandler, + ['np.ndarray'], + numpy_leaf_handler.NumpyLeafHandler, + ), ( int, int, - ): scalar_leaf_handler.ScalarLeafHandler, + ['scalar'], + scalar_leaf_handler.ScalarLeafHandler, + ), ( float, float, - ): scalar_leaf_handler.ScalarLeafHandler, + ['scalar'], + scalar_leaf_handler.ScalarLeafHandler, + ), ( bytes, bytes, - ): scalar_leaf_handler.ScalarLeafHandler, + ['scalar'], + scalar_leaf_handler.ScalarLeafHandler, + ), ( str, str, - ): string_leaf_handler.StringLeafHandler, -} + ['string'], + string_leaf_handler.StringLeafHandler, + ), +] + + +@dataclasses.dataclass +class _Registration: + leaf_type: Type[Any] + abstract_type: Type[Any] + handler_type: Type[types.LeafHandler[Any, Any]] + secondary_typestrs: Sequence[str] | None class BaseLeafHandlerRegistry: """Base Leaf Handler Registry that implements the LeafHandlerRegistry Protocol.""" def __init__(self): - self._leaf_type_registry: Dict[ - Type[Any], Type[types.LeafHandler[Any, Any]] - ] = {} - self._abstract_type_registry: Dict[ - Type[Any], Type[types.LeafHandler[Any, Any]] - ] = {} - - # for easy look up for replacement - self._handler_to_types: Dict[ - Type[types.LeafHandler[Any, Any]], Tuple[Type[Any], Type[Any]] - ] = {} + # Flat history for exact pairing and get_all(). + self._entries: list[_Registration] = [] + + # Sorted [Generic -> Specific] pairs of: (leaf_type, handler_type) + self._leaf_type_registry: list[ + tuple[Type[Any], Type[types.LeafHandler[Any, Any]]] + ] = [] + + # Sorted [Generic -> Specific] pairs of: (abstract_type, handler_type) + self._abstract_type_registry: list[ + tuple[Type[Any], Type[types.LeafHandler[Any, Any]]] + ] = [] + + def _is_abstract_subprotocol( + self, type_a: Type[Any], type_b: Type[Any] + ) -> bool: + """Checks if 'type_a' is a subclass or sub-protocol of 'type_b'.""" + try: + if typing_extensions.is_protocol(type_b): # pytype: disable=not-supported-yet + return protocol_utils.is_subclass_protocol( + cls=type_a, protocol=type_b + ) + return issubclass(type_a, type_b) + except TypeError: + return False def _try_get( self, leaf_type: Type[types.Leaf] ) -> Type[types.LeafHandler[types.Leaf, Any]] | None: - """Returns the handler registered for a given type, if available.""" - for registered_ty, handler_type in self._leaf_type_registry.items(): - if issubclass(leaf_type, registered_ty): + """Returns the handler last registered for a given type, if available.""" + for registered_leaf_ty, handler_type in reversed(self._leaf_type_registry): + if issubclass(leaf_type, registered_leaf_ty): return handler_type - - # no handler found return None def get( @@ -94,27 +127,18 @@ def get( f'Unknown Leaf type: "{leaf_type}". Must register it with' ' LeafHandlerRegistry.' ) - return handler_type def _try_get_abstract( self, abstract_type: Type[types.AbstractLeaf], ) -> Type[types.LeafHandler[Any, types.AbstractLeaf]] | None: - """Returns the handler registered for a given abstract type, if available.""" - for ( - registered_abstract_ty, - handler_type, - ) in self._abstract_type_registry.items(): - if typing_extensions.is_protocol(registered_abstract_ty): # pytype: disable=not-supported-yet - if protocol_utils.is_subclass_protocol( - cls=abstract_type, protocol=registered_abstract_ty - ): - return handler_type - elif issubclass(abstract_type, registered_abstract_ty): + """Returns the handler last registered for a given abstract type, if available.""" + for registered_abstract_ty, handler_type in reversed( + self._abstract_type_registry + ): + if self._is_abstract_subprotocol(abstract_type, registered_abstract_ty): return handler_type - - # no handler found return None def get_abstract( @@ -135,61 +159,130 @@ def get_all( """Returns all registered handlers.""" return [ ( - leaf_type, - abstract_type, - handler_type, - ) - for (leaf_type, handler_type), abstract_type in zip( - self._leaf_type_registry.items(), self._abstract_type_registry + entry.leaf_type, + entry.abstract_type, + entry.handler_type, ) + for entry in self._entries ] + def get_leaf_type_handler_pairs( + self, + ) -> Sequence[tuple[Type[Any], Type[types.LeafHandler[Any, Any]]]]: + """Returns the leaf type registry.""" + return self._leaf_type_registry + + def get_abstract_type_handler_pairs( + self, + ) -> Sequence[tuple[Type[Any], Type[types.LeafHandler[Any, Any]]]]: + """Returns the abstract type registry.""" + return self._abstract_type_registry + def add( self, leaf_type: Type[types.Leaf], abstract_type: Type[types.AbstractLeaf], handler_type: Type[types.LeafHandler[types.Leaf, types.AbstractLeaf]], override: bool = False, + secondary_typestrs: Sequence[str] | None = None, ): - """Adds a handler_type for a given leaf_type and abstract_type pair.""" - current_handler_type = self._try_get(leaf_type) - current_abstract_handle_type = self._try_get_abstract(abstract_type) + """Registers a `handler_type` for a given `leaf_type` and `abstract_type` pair. - if not override and (current_handler_type or current_abstract_handle_type): - raise ValueError( - f'Leaf_type[{leaf_type}] or abstract_type[{abstract_type}] has' - f' already registered, current_handler: {current_handler_type}, ' - f'current_abstract_handle_type: {current_abstract_handle_type}' - ) + The registry automatically maintains a [Generic -> Specific] hierarchy for + both leaf and abstract types to ensure correct resolution. + + A conflict occurs if the exact `leaf_type` is already registered, or if the + `abstract_type` is already mapped to a different handler. Set + `override=True` to automatically remove conflicting entries and force the + new registration. - logging.vlog( - 1, - 'add: leaf_type[%s], abstract_type[%s], handler_type[%s],' - ' current_handler[%s], current_abstract_handle_type[%s]', - leaf_type, - abstract_type, - handler_type, - current_handler_type, - current_abstract_handle_type, + Args: + leaf_type: The concrete type to register the handler for. + abstract_type: The abstract type to register the handler for. + handler_type: The handler class to register. + override: If True, bypasses conflict errors and replaces existing + conflicting entries. + secondary_typestrs: Optional alternate identifiers for the handler. + + Raises: + ValueError: If a duplicate `leaf_type` or conflicting `abstract_type` + mapping exists and `override` is False. + """ + if not override: + for e in self._entries: + if e.leaf_type == leaf_type: + raise ValueError( + f'leaf_type [{leaf_type}] is already handled by ' + f'{e.handler_type}. Use override=True to replace its entry. ' + f'Registry: {self._entries}' + ) + if e.abstract_type == abstract_type and e.handler_type != handler_type: + raise ValueError( + f'abstract_type[{abstract_type}] is already handled by ' + f'{e.handler_type}. Use override=True to replace all ' + f'conflicting entries. Registry: {self._entries}' + ) + + # Handle overrides cleanly across all tracking lists + if override: + new_entries = [] + to_remove_leaves = [] + to_remove_abstracts = [] + + for e in self._entries: + is_conflict = (e.leaf_type == leaf_type) or ( + e.abstract_type == abstract_type and e.handler_type != handler_type + ) + if is_conflict: + # Track the tuples we need to delete out of the sorted registries + to_remove_leaves.append((e.leaf_type, e.handler_type)) + to_remove_abstracts.append((e.abstract_type, e.handler_type)) + logging.vlog( + 1, + 'clearing conflicting entry: leaf_type[%s], abstract_type[%s],' + ' handler_type[%s] during override.', + e.leaf_type, e.abstract_type, e.handler_type, + ) + else: + new_entries.append(e) + + self._entries = new_entries + # Remove all conflicting entries from the sorted registries. + for item in to_remove_leaves: + if item in self._leaf_type_registry: + self._leaf_type_registry.remove(item) + for item in to_remove_abstracts: + if item in self._abstract_type_registry: + self._abstract_type_registry.remove(item) + + new_reg = _Registration( + leaf_type, abstract_type, handler_type, secondary_typestrs ) + self._entries.append(new_reg) - if current_handler_type and ( - current_abstract_handle_type - and current_handler_type != current_abstract_handle_type - ): - raise ValueError( - f'Abstract_type[{abstract_type}] has already registered with a' - ' different type.' - ) - elif current_handler_type and not current_abstract_handle_type: - # need to remove the previous abstract type - _, old_abstract_ty = self._handler_to_types.pop(current_handler_type) - self._abstract_type_registry.pop(old_abstract_ty) + # Insert into leaf registry (Tuple: leaf_type, handler_type) + leaf_insert_idx = len(self._leaf_type_registry) + for i, (reg_leaf_ty, _) in enumerate(self._leaf_type_registry): + try: + if issubclass(reg_leaf_ty, leaf_type) and reg_leaf_ty != leaf_type: + leaf_insert_idx = i + break + except TypeError: + pass + self._leaf_type_registry.insert(leaf_insert_idx, (leaf_type, handler_type)) - # new type and abstract type pair - self._leaf_type_registry[leaf_type] = handler_type - self._abstract_type_registry[abstract_type] = handler_type - self._handler_to_types[handler_type] = (leaf_type, abstract_type) + # Insert into abstract registry (Tuple: abstract_type, handler_type) + abstract_insert_idx = len(self._abstract_type_registry) + for i, (reg_abstract_ty, _) in enumerate(self._abstract_type_registry): + if ( + self._is_abstract_subprotocol(reg_abstract_ty, abstract_type) + and reg_abstract_ty != abstract_type + ): + abstract_insert_idx = i + break + self._abstract_type_registry.insert( + abstract_insert_idx, (abstract_type, handler_type) + ) def is_handleable(self, leaf_type: Type[Any]) -> bool: """Returns True if the type is handleable.""" @@ -199,6 +292,14 @@ def is_abstract_handleable(self, abstract_type: Type[Any]) -> bool: """Returns True if the abstract type is handlable.""" return self._try_get_abstract(abstract_type) is not None + def get_secondary_typestrs( + self, handler_type: Type[types.LeafHandler[Any, Any]] + ) -> Sequence[str]: + for entry in self._entries: + if entry.handler_type == handler_type: + return entry.secondary_typestrs or [] + return [] + class StandardLeafHandlerRegistry(BaseLeafHandlerRegistry): """Default Leaf Handler Registry. @@ -213,5 +314,7 @@ def __init__(self): for ( ty, abstract_ty, - ), handler_class in STANDARD_TYPE_AND_ABSTRACT_TYPE_TO_HANDLER.items(): - self.add(ty, abstract_ty, handler_class) + typestrs, + handler_class, + ) in STANDARD_TYPE_AND_ABSTRACT_TYPE_AND_TYPESTR_TO_HANDLER: + self.add(ty, abstract_ty, handler_class, secondary_typestrs=typestrs) diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/serialization/registry_test.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/serialization/registry_test.py index 0e297df4a..1a7719831 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/serialization/registry_test.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/serialization/registry_test.py @@ -14,6 +14,7 @@ """Unit tests for the LeafHandlerRegistry.""" +from typing import Any from absl.testing import absltest import jax import jax.numpy as jnp @@ -34,6 +35,15 @@ def __init__(self, context: context_lib.Context | None = None): del context +class DummyGenericAbstractType: + pass + + +class DummyGenericHandler(types.LeafHandler[Any, DummyGenericAbstractType]): + def __init__(self, context: context_lib.Context | None = None): + del context + + class RegistryTest(absltest.TestCase): def test_simple_add_and_get(self): @@ -134,6 +144,135 @@ def test_get_all(self): else: self.fail(f"Unexpected item: {item}") + def test_secondary_typestrs(self): + reg = registry.BaseLeafHandlerRegistry() + reg.add( + int, + int, + DummyIntHandlerInt, + secondary_typestrs=["alias1", "alias2"], + ) + self.assertEqual( + reg.get_secondary_typestrs(DummyIntHandlerInt), ["alias1", "alias2"] + ) + + reg.add(jax.Array, types.AbstractShardedArray, DummyJaxHandler) + self.assertEqual(reg.get_secondary_typestrs(DummyJaxHandler), []) + + def test_multiple_concrete_to_abstract(self): + reg = registry.BaseLeafHandlerRegistry() + reg.add(int, DummyGenericAbstractType, DummyGenericHandler) + reg.add(float, DummyGenericAbstractType, DummyGenericHandler) + + # Both concrete types should reliably use DummyGenericHandler + self.assertEqual(reg.get(int), DummyGenericHandler) + self.assertEqual(reg.get(float), DummyGenericHandler) + self.assertEqual( + reg.get_abstract(DummyGenericAbstractType), DummyGenericHandler + ) + + def test_override_abstract_with_different_handler(self): + class DummyGenericHandler2( + types.LeafHandler[Any, DummyGenericAbstractType] + ): + def __init__(self, context: context_lib.Context | None = None): + del context + + reg = registry.BaseLeafHandlerRegistry() + reg.add(str, DummyGenericAbstractType, DummyGenericHandler) + reg.add(float, DummyGenericAbstractType, DummyGenericHandler) + + # Try registering with an abstract type that is already registered. + with self.assertRaisesRegex( + ValueError, r"abstract_type\[.*\] is already handled by.*" + ): + reg.add(int, DummyGenericAbstractType, DummyGenericHandler2) + + reg.add(int, int, DummyIntHandlerInt) + self.assertEqual(reg.get(int), DummyIntHandlerInt) + + # Override both the concrete and the abstract type with a different handler. + reg.add(int, DummyGenericAbstractType, DummyGenericHandler2, override=True) + self.assertEqual(reg.get(int), DummyGenericHandler2) + self.assertEqual( + reg.get_abstract(DummyGenericAbstractType), DummyGenericHandler2 + ) + + with self.assertRaisesRegex(ValueError, "Unknown Leaf type"): + reg.get(str) + with self.assertRaisesRegex(ValueError, "Unknown Leaf type"): + reg.get(float) + + def test_abstract_registration_order(self): + class DummyArrayType: + array: jax.Array + + class DummySpecificArrayHandler( + types.LeafHandler[Any, types.AbstractShardedArray] + ): + def __init__(self, context: context_lib.Context | None = None): + del context + + class DummyGenericArrayHandler(types.LeafHandler[Any, types.AbstractArray]): + def __init__(self, context: context_lib.Context | None = None): + del context + + # Test registration order of leaf and abstract types. + reg = registry.BaseLeafHandlerRegistry() + reg.add(jax.Array, types.AbstractShardedArray, DummySpecificArrayHandler) + # Register the more generic abstract type last. + reg.add(DummyArrayType, types.AbstractArray, DummyGenericArrayHandler) + + # An abstract object that satisfies BOTH protocols. The specific protocol + # must be matched first because of sorting. + self.assertEqual( + reg.get_abstract(jax.ShapeDtypeStruct), DummySpecificArrayHandler + ) + + # An abstract object that ONLY satisfies the generic AbstractArray protocol + class PureArrayStruct: + shape = (1,) + dtype = jnp.float32 + self.assertEqual( + reg.get_abstract(PureArrayStruct), DummyGenericArrayHandler + ) + reg2 = registry.BaseLeafHandlerRegistry() + reg2.add(DummyArrayType, types.AbstractArray, DummyGenericArrayHandler) + reg2.add(jax.Array, types.AbstractShardedArray, DummySpecificArrayHandler) + self.assertEqual( + reg2.get_abstract(jax.ShapeDtypeStruct), DummySpecificArrayHandler + ) + self.assertEqual( + reg2.get_abstract(PureArrayStruct), DummyGenericArrayHandler + ) + + def test_standard_registrations(self): + reg = registry.StandardLeafHandlerRegistry() + self.assertEqual( + reg.get_secondary_typestrs( + registry.array_leaf_handler.ArrayLeafHandler + ), + ["jax.Array"], + ) + self.assertEqual( + reg.get_secondary_typestrs( + registry.numpy_leaf_handler.NumpyLeafHandler + ), + ["np.ndarray"], + ) + self.assertEqual( + reg.get_secondary_typestrs( + registry.scalar_leaf_handler.ScalarLeafHandler + ), + ["scalar"], + ) + self.assertEqual( + reg.get_secondary_typestrs( + registry.string_leaf_handler.StringLeafHandler + ), + ["string"], + ) + if __name__ == "__main__": absltest.main() diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/serialization/types.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/serialization/types.py index 14adb698b..bc2dacf65 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/serialization/types.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/serialization/types.py @@ -351,6 +351,14 @@ async def metadata( Type[Leaf], Type[AbstractLeaf], Type[LeafHandler[Leaf, AbstractLeaf]] ] +LeafHandlerPairingItem = Tuple[ + Type[Leaf], Type[LeafHandler[Leaf, Any]] +] + +AbstractLeafHandlerPairingItem = Tuple[ + Type[AbstractLeaf], Type[LeafHandler[Any, AbstractLeaf]] +] + class LeafHandlerRegistry(Protocol): """A Protocol for a LeafHandlerRegistry. @@ -400,12 +408,25 @@ def get_all(self) -> Sequence[LeafHandlerRegistryItem]: """ ... + def get_leaf_type_handler_pairs( + self, + ) -> Sequence[LeafHandlerPairingItem]: + """Returns the leaf type pairings maintaining an order by priority.""" + ... + + def get_abstract_type_handler_pairs( + self, + ) -> Sequence[AbstractLeafHandlerPairingItem]: + """Returns the abstract type pairings maintaining an order by priority.""" + ... + def add( self, leaf_type: Type[Leaf], abstract_type: Type[AbstractLeaf], handler_type: Type[LeafHandler[Leaf, AbstractLeaf]], override: bool = False, + secondary_typestrs: Sequence[str] | None = None, ): """Registers the handler_type for a leaf_type and abstract_type pair. @@ -414,12 +435,17 @@ def add( `override` is True. If the abstract_type has already associated with another leaf_type, an error will be raised if `override` is False. + `secondary_typestrs` can be used to register a handler for multiple + typestrs. This is useful for associating a handler with aliases or legacy + typestrs. Args: leaf_type: The type to register the handler for. abstract_type: The abstract type to register the handler for. handler_type: The handler to register. override: Whether to override the handler if it already exists. + secondary_typestrs: A sequence of alternate handler typestrs that serve as + secondary identifiers for the handler. """ ... @@ -430,3 +456,9 @@ def is_handleable(self, leaf_type: Type[Any]) -> bool: def is_abstract_handleable(self, abstract_type: Type[Any]) -> bool: """Returns True if the abstract_type is handlable by any registered handler.""" ... + + def get_secondary_typestrs( + self, handler_type: Type[LeafHandler[Any, Any]], + ) -> Sequence[str]: + """Returns all secondary typestrs associated with the given handler type.""" + ... diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/metadata/metadata b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/metadata/metadata new file mode 100644 index 000000000..7ac5d3905 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/metadata/metadata @@ -0,0 +1 @@ +{"metadata": "json_data"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/_METADATA new file mode 100644 index 000000000..d18275eb9 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/_METADATA @@ -0,0 +1 @@ +{"tree_metadata": {"('a',)": {"key_metadata": [{"key": "a", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [8]}}, "('b', 'c')": {"key_metadata": [{"key": "b", "key_type": 2}, {"key": "c", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [3]}}}, "use_ocdbt": true, "use_zarr3": false, "store_array_data_equal_to_fill_value": true, "custom_metadata": null} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/_sharding b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/_sharding new file mode 100644 index 000000000..af17d0bcf --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/_sharding @@ -0,0 +1 @@ +{"YQ==":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}","Yi5j":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/array_metadatas/process_0 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/array_metadatas/process_0 new file mode 100644 index 000000000..9e1980540 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/array_metadatas/process_0 @@ -0,0 +1 @@ +{"array_metadatas": [{"array_metadata": {"param_name": "a", "write_shape": [8], "chunk_shape": [8], "ext_metadata": null}}, {"array_metadata": {"param_name": "b.c", "write_shape": [3], "chunk_shape": [3], "ext_metadata": null}}]} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/d/5b31a4c00c276d62a117531fdd7b5723 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/d/5b31a4c00c276d62a117531fdd7b5723 new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0AZ{f;aAN#Ef^X&8V+68XJG`XWK?2E z(Kk&pHcT{0HZVvwGB-;xGfFfxG&eOiOiM{IPck((GG+uR{lLibfsx^4?Z+oq<7Y}R JJYJdf3jm*%AoBnK literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/8d0c7b1d0e04e6f2c1ecefbec1b27f3e b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/8d0c7b1d0e04e6f2c1ecefbec1b27f3e new file mode 100644 index 0000000000000000000000000000000000000000..34ec758d3dabf72b4bfe875cf3749ac86fc9b4a5 GIT binary patch literal 233 zcmVS60{XhQST0&BdhJft=+W@u~wiUJ+d$A`N5(Simd|c2z zhqE5=>J87YvVCwhIyXgmo!o*r&Nau?6&l0yDn%l@dh@t;NeZ3lH5e(>*cAmK?-Zi$ z>MTOZ^Q?W6-v^FOED(14U;WP7zw-zRVL-tylT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0ycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/d8136fae139574aff7c058821933330e b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/d8136fae139574aff7c058821933330e new file mode 100644 index 0000000000000000000000000000000000000000..a8adc2748e584922acd5e8419b77bcfceeb2d04c GIT binary patch literal 169 zcmV;a09OAD+aTVl00000000000VuUE{UEe;1OS4`9v^_mIWsV~YhQmtWVtrpPD?8t zO;mam0|H_@;3yc#w$mUVwc)oU3zg}sAD-u3{F*nm=D7SiO`oJSwp^XS49_ow;<`HW zsH|{1agVjzhOMhfkZ=2JyZVY9J-^tcJiqQ`*gWMbQ9$Hd;T%S}WE=}fnKeQJ3OEcS X1ppxnV8Y}jlgMh`SJ6^tZxAXgGapFg literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..8a012ce71ff19cb6509b6e9ca994c5635848a173 GIT binary patch literal 237 zcmVh(-CpcHR_^A6&2jH~IGt1aH}y)c=v>L?$fjuoQc8@fDq@@r3k86p3=ka! n4G0n+4+;Yj8Vdvt0S5p;#!4gz@IqiGxI^?#_EvcUc#;w~b!1&l literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/metadata/metadata b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/metadata/metadata new file mode 100644 index 000000000..7ac5d3905 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/metadata/metadata @@ -0,0 +1 @@ +{"metadata": "json_data"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/_sharding b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/_sharding new file mode 100644 index 000000000..af17d0bcf --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/_sharding @@ -0,0 +1 @@ +{"YQ==":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}","Yi5j":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/array_metadatas/process_0 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/array_metadatas/process_0 new file mode 100644 index 000000000..9e1980540 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/array_metadatas/process_0 @@ -0,0 +1 @@ +{"array_metadatas": [{"array_metadata": {"param_name": "a", "write_shape": [8], "chunk_shape": [8], "ext_metadata": null}}, {"array_metadata": {"param_name": "b.c", "write_shape": [3], "chunk_shape": [3], "ext_metadata": null}}]} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/d/a95f1a1850e830b968541b931158e0b5 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/d/a95f1a1850e830b968541b931158e0b5 new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0ycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/36dfbadc56b409927579369707f660d5 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/36dfbadc56b409927579369707f660d5 new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq08m52=Ux1oH@4=u{5nmaq&2o&-M|jdFNET{ zI`XKja6562wcCcRt7(vL`)s@ViXA<_*rhzb?q%3K_jB?310w8792oWgA bB5)W+1ppxnV8Y}jlgMh`U(r%#VJE8kws}!e literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/aa4ffb671b2d8983ba0ddfb191368c4b b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/aa4ffb671b2d8983ba0ddfb191368c4b new file mode 100644 index 0000000000000000000000000000000000000000..63a24bbda136164a7f84453415fe5dcb1491c339 GIT binary patch literal 221 zcmV<303!bk+aTWE00000000000VuUE{a}Is4F&*`ODHR#C+YwHKlbRVt~OfEjqI|J zO{gtfX>v(PCJ?$W-I@LWo~6$E)=S zew%Z;kkgu{hXn_`i+G|&^N4K%Wui1_0trE-ipd+BoW{TXIj2tPv%O`L@h(zuPQjuIZ79NBSIkC~8AONXIE*cgJAY~FJ zS<*v;l+&o>#3mmzb&d0X!N{J!->A)T&IX~%=!|*yvj>;8YtU`$1iqf|lkOMu?A6Z9 z+x5Dy7TL*%aXvHF2=%4AUVXX#*YRBa-lntlJ|8KF7^p@$2qBc5r@}&cP*BFf0E0vZ ma{=KHkq|(DK@kW5K*mZW2=GE+CwS;@7#hZ8ZT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq04P z^bJjnP0UP86O)pS(k#uAOcRrnEliAz%`8omjV(<~5*a~CKQOXT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0S60{XhQST0&BdhJft=+W@u~wiUJ+d$A`N5(Simd|c2z zhqE5=>J87YvVCwhIyXgmo!o*r&Nau?6&l0yDn%l@dh@t;NeZ3lH5e(>*cAmK?-Zi$ z>MTOZ^Q?W6-v^FOED(14U;WP7zw-zRVL-tylycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..9f57cdf086fff81c8a5affed7de53d7f75dfc3c0 GIT binary patch literal 234 zcmV$lXdgP3YmXQof_Yl?Ho@h($mUk({Z1sU|Me&2!*x_j3i zpCi<^u<@ca7MrdbH@NP-na76IsY0up+eid>JRptZJeis4iBw!FjY?u5SR@QM kJQzSQ1Q!t*21y41K*mZW2=GE+C(h#YPWD!L0^`oqRBbbAu>b%7 literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/_CHECKPOINT_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/_CHECKPOINT_METADATA new file mode 100644 index 000000000..f63094ec9 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/_CHECKPOINT_METADATA @@ -0,0 +1 @@ +{"item_handlers": {"metadata": "orbax.checkpoint._src.handlers.json_checkpoint_handler.JsonCheckpointHandler", "state": "orbax.checkpoint._src.handlers.pytree_checkpoint_handler.PyTreeCheckpointHandler"}, "metrics": {}, "performance_metrics": {}, "init_timestamp_nsecs": 1772553300427863553, "commit_timestamp_nsecs": 1772553300517368411, "custom_metadata": {}} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/metadata/metadata b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/metadata/metadata new file mode 100644 index 000000000..7ac5d3905 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/metadata/metadata @@ -0,0 +1 @@ +{"metadata": "json_data"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/_sharding b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/_sharding new file mode 100644 index 000000000..af17d0bcf --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/_sharding @@ -0,0 +1 @@ +{"YQ==":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}","Yi5j":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/array_metadatas/process_0 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/array_metadatas/process_0 new file mode 100644 index 000000000..9e1980540 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/array_metadatas/process_0 @@ -0,0 +1 @@ +{"array_metadatas": [{"array_metadata": {"param_name": "a", "write_shape": [8], "chunk_shape": [8], "ext_metadata": null}}, {"array_metadata": {"param_name": "b.c", "write_shape": [3], "chunk_shape": [3], "ext_metadata": null}}]} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/d/c6493cb6502e3af7acb88fb4c78f3835 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/d/c6493cb6502e3af7acb88fb4c78f3835 new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0S60{XhQST0&BdhJft=+W@u~wiUJ+d$A`N5(Simd|c2z zhqE5=>J87YvVCwhIyXgmo!o*r&Nau?6&l0yDn%l@dh@t;NeZ3lH5e(>*cAmK?-Zi$ z>MTOZ^Q?W6-v^FOED(14U;WP7zw-zRVL-tylycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/cdbad12722d1017e7542a42a0dc5a371 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/cdbad12722d1017e7542a42a0dc5a371 new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0BqV0VF*v3fMv}S8`9`b zVvB2A$}(nVDmK|ml2M5v zML#*o$TZb3&BD?!HO0it#K6?t#K_Vx#lX_Qz{t=nC4~{B^aCTy2S$c3=chGZi=QdM JP->z72>?9CA$|Y= literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/d/5a737d29cdea2a838c55e674267e7758 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/d/5a737d29cdea2a838c55e674267e7758 new file mode 100644 index 0000000000000000000000000000000000000000..63a24bbda136164a7f84453415fe5dcb1491c339 GIT binary patch literal 221 zcmV<303!bk+aTWE00000000000VuUE{a}Is4F&*`ODHR#C+YwHKlbRVt~OfEjqI|J zO{gtfX>v(PCJ?$W-I@LWo~6$E)=S zew%Z;kkgu{hXn_`i+G|&^N4K%Wui8m52=Ux1oH@4=u{5nmaq&2o&-M|jdFNET{ zI`XKja6562wcCcRt7(vL`)s@ViXA<_*rhzb?q%3K_jB?310w8792oWgA bB5)W+1ppxnV8Y}jlgMh`U(r%#VJE8kws}!e literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/d/d87841fc650c25259b30d7f1b0d8a3ed b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/d/d87841fc650c25259b30d7f1b0d8a3ed new file mode 100644 index 0000000000000000000000000000000000000000..8d6d8647aec8bf666fcf3369e4730acaca153dbb GIT binary patch literal 194 zcmV;z06qT<+aTV;00000000000VuUE{a|PSH3a|y${{0gC(Z%<|Ht0R|C>ycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/d/dd255bdde809d81b0c9d3b896f61e759 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/d/dd255bdde809d81b0c9d3b896f61e759 new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0_vr|`(Jbn^)|N% zMSaz^p2N86yx-hhd@US4E j0ty)k00tBc1uF*tAjrx&u<=4*XK=?#$UZ1fT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0T{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0S60{XhQST0&BdhJft=+W@u~wiUJ+d$A`N5(Simd|c2z zhqE5=>J87YvVCwhIyXgmo!o*r&Nau?6&l0yDn%l@dh@t;NeZ3lH5e(>*cAmK?-Zi$ z>MTOZ^Q?W6-v^FOED(14U;WP7zw-zRVL-tylycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/ocdbt.process_0/d/a99d83fbc5e823f9b8a06279e76b4fd3 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/ocdbt.process_0/d/a99d83fbc5e823f9b8a06279e76b4fd3 new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0D$Qoua#PGMecWrV*C+W z)3QWvdB>+W)q6|1+m@Tv(V-ZEp~&7l1z#eMN$Y7G6eO0&V-f=v2>+FY&cuN@lK<%E ze?lj%$T*;GyG?Dp1|74qHDk!E7M**msZ_m&yn10HVLs-7o5^@%d#qXQ=3`5_bG_AC znU%I~%836L0s|T{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0 literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/d/1ad01886ce2f3bf7a2ad7c3f94c0cb43 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/d/1ad01886ce2f3bf7a2ad7c3f94c0cb43 new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0v(PCJ?$W-I@LWo~6$E)=S zew%Z;kkgu{hXn_`i+G|&^N4K%WuiycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..1ec7cb7613aef6336d5ff97637777f853e436ba9 GIT binary patch literal 201 zcmV;)05<;&+d3-A00000000000VuUE{UE?~1popIC@P>S9pjh}>iBz<0MP@Du9gH(^C@3=% zIw`uiR>l2&cJ<%1{@2V`A$z-ht(dcGj5D*g`hJZ27)JFMYmDuK3fDb@jrZ#2ANv(y zV^->|9-f&F#{fbpGxIDD35p~@k^}`13KWn7fQAGH14u@MLjwRSLb2vR_A5vMAVNA< D0hCi& literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/_CHECKPOINT_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/_CHECKPOINT_METADATA new file mode 100644 index 000000000..5f7d685da --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/_CHECKPOINT_METADATA @@ -0,0 +1 @@ +{"item_handlers": {"metadata": "orbax.checkpoint._src.handlers.json_checkpoint_handler.JsonCheckpointHandler", "state": "orbax.checkpoint._src.handlers.pytree_checkpoint_handler.PyTreeCheckpointHandler"}, "metrics": {}, "performance_metrics": {}, "init_timestamp_nsecs": 1772553302099920282, "commit_timestamp_nsecs": 1772553302189406292} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/metadata/metadata b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/metadata/metadata new file mode 100644 index 000000000..7ac5d3905 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/metadata/metadata @@ -0,0 +1 @@ +{"metadata": "json_data"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/_METADATA new file mode 100644 index 000000000..d18275eb9 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/_METADATA @@ -0,0 +1 @@ +{"tree_metadata": {"('a',)": {"key_metadata": [{"key": "a", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [8]}}, "('b', 'c')": {"key_metadata": [{"key": "b", "key_type": 2}, {"key": "c", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [3]}}}, "use_ocdbt": true, "use_zarr3": false, "store_array_data_equal_to_fill_value": true, "custom_metadata": null} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/_sharding b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/_sharding new file mode 100644 index 000000000..af17d0bcf --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/_sharding @@ -0,0 +1 @@ +{"YQ==":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}","Yi5j":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/array_metadatas/process_0 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/array_metadatas/process_0 new file mode 100644 index 000000000..9e1980540 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/array_metadatas/process_0 @@ -0,0 +1 @@ +{"array_metadatas": [{"array_metadata": {"param_name": "a", "write_shape": [8], "chunk_shape": [8], "ext_metadata": null}}, {"array_metadata": {"param_name": "b.c", "write_shape": [3], "chunk_shape": [3], "ext_metadata": null}}]} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/d/478cf05870116dbeaa0c336649e52848 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/d/478cf05870116dbeaa0c336649e52848 new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0T{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0S60{XhQST0&BdhJft=+W@u~wiUJ+d$A`N5(Simd|c2z zhqE5=>J87YvVCwhIyXgmo!o*r&Nau?6&l0yDn%l@dh@t;NeZ3lH5e(>*cAmK?-Zi$ z>MTOZ^Q?W6-v^FOED(14U;WP7zw-zRVL-tylycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..067159dca45db96fd94835628b49c8bb8f4d51de GIT binary patch literal 205 zcmV;;05bm!+d3-E00000000000VuUE{UE@V1ppEYDJzgEZTV@fRDrkp`{X^84c^Z> zlf0np-ksYUIRq#-x1^LZUy-XvBWUGL0lPpLk|(0!;SrET{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0ycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/ocdbt.process_0/d/78ea7fa47b48b21bf17ee2ac3088a417 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/ocdbt.process_0/d/78ea7fa47b48b21bf17ee2ac3088a417 new file mode 100644 index 0000000000000000000000000000000000000000..34ec758d3dabf72b4bfe875cf3749ac86fc9b4a5 GIT binary patch literal 233 zcmVS60{XhQST0&BdhJft=+W@u~wiUJ+d$A`N5(Simd|c2z zhqE5=>J87YvVCwhIyXgmo!o*r&Nau?6&l0yDn%l@dh@t;NeZ3lH5e(>*cAmK?-Zi$ z>MTOZ^Q?W6-v^FOED(14U;WP7zw-zRVL-tylT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0~CFlgBr8aj#Mn_ zM~=$&+GL;$e|PuhmV6BCeaBW*kjR|^eLRe$KokfHK|{guFjA6m@N~Dqma0&bin@C# zwiL_vMHv0R=4xGoFQ!+%XQviZNVD{>bGCP@!&rK@?(BRkzh+tSl<~ROhQjO9y1&?{ zn{CPl9k+Mzm!`WBBw34fcPnF&h@6Gf6ATW}0>r=+VSorI1Uvu)0{|T{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq07#O6Pn^{_#7$%w;rz9JsSf-en8!>{Eeqdzzz{s$IOW^0#_?Z$6 J^AC&61^|Fk9=HGi literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/ocdbt.process_0/d/1d0aedccdc37b5e53102002e01020889 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/ocdbt.process_0/d/1d0aedccdc37b5e53102002e01020889 new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0ycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/ocdbt.process_0/d/d6b3cd8627b23646d29f257d68ffcb27 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/ocdbt.process_0/d/d6b3cd8627b23646d29f257d68ffcb27 new file mode 100644 index 0000000000000000000000000000000000000000..34ec758d3dabf72b4bfe875cf3749ac86fc9b4a5 GIT binary patch literal 233 zcmVS60{XhQST0&BdhJft=+W@u~wiUJ+d$A`N5(Simd|c2z zhqE5=>J87YvVCwhIyXgmo!o*r&Nau?6&l0yDn%l@dh@t;NeZ3lH5e(>*cAmK?-Zi$ z>MTOZ^Q?W6-v^FOED(14U;WP7zw-zRVL-tylHjy~uK9h!2qAlBjM>uMJK1ge zoc;~-Me*HD5&@;w?ru61h^GS7MR-tXEF>H#0tOUO84V5r1OO|cvPLp{hzJ&xGmh

T{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0WeOum=?6xZ4~z_-&YQDei=QdM JuT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0v(PCJ?$W-I@LWo~6$E)=S zew%Z;kkgu{hXn_`i+G|&^N4K%WuiycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..dc8e32c9846250a210c88c9da790a67fc5acd47b GIT binary patch literal 203 zcmV;+05ty$+d3-C00000000000VuUE{UE@F1pv|tC@YXDZSzg9bTViD-T#fb=xS8G z{$NRD@8l*596OWb%I*}SZM6qT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0v(PCJ?$W-I@LWo~6$E)=S zew%Z;kkgu{hXn_`i+G|&^N4K%WuiT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0ycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..121a8b3c68c0d7fff6ca0cff1acddc9b80bca17d GIT binary patch literal 205 zcmV;;05bm!+d3-E00000000000VuUE{UE@V1pwlTC@p{~%>k-T1G_+-a5##XrXV!N z1xg$dVzz7t8JQ+q+RBw(fKd!~JULotv`GqYNFYrC3P>Pen6PL_AkBaT1M#1c(4jb# zGdcR7&`I5kDPydYceacCB5!%RmJ8v=r70y>gj?jPu<2vCs~D3`arf$K>0)C`rF7FN zRHmRlxT~#R9`V1!aez?z|HF7hOc(&>4i$=mKxLu9pyFadcxX5T04t%gMwSmj&=sgC He{#(OZNyh? literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/_CHECKPOINT_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/_CHECKPOINT_METADATA new file mode 100644 index 000000000..c039f5057 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/_CHECKPOINT_METADATA @@ -0,0 +1 @@ +{"item_handlers": {"metadata": "orbax.checkpoint._src.handlers.json_checkpoint_handler.JsonCheckpointHandler", "state": "orbax.checkpoint._src.handlers.pytree_checkpoint_handler.PyTreeCheckpointHandler"}, "metrics": {}, "performance_metrics": {}, "init_timestamp_nsecs": 1772553302517797655, "commit_timestamp_nsecs": 1772553302606674663, "custom_metadata": {}} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/metadata/metadata b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/metadata/metadata new file mode 100644 index 000000000..7ac5d3905 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/metadata/metadata @@ -0,0 +1 @@ +{"metadata": "json_data"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/_METADATA new file mode 100644 index 000000000..d18275eb9 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/_METADATA @@ -0,0 +1 @@ +{"tree_metadata": {"('a',)": {"key_metadata": [{"key": "a", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [8]}}, "('b', 'c')": {"key_metadata": [{"key": "b", "key_type": 2}, {"key": "c", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [3]}}}, "use_ocdbt": true, "use_zarr3": false, "store_array_data_equal_to_fill_value": true, "custom_metadata": null} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/_sharding b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/_sharding new file mode 100644 index 000000000..af17d0bcf --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/_sharding @@ -0,0 +1 @@ +{"YQ==":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}","Yi5j":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/d/a6c7017790d8c1557c9030393ebb8ff8 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/d/a6c7017790d8c1557c9030393ebb8ff8 new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0eqdzzz{qg!Z&uW`_?Z$6 JH@C7L0RY6(Acg<{ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/ocdbt.process_0/d/46529a06b4201b8999ff0b6f3996d78b b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/ocdbt.process_0/d/46529a06b4201b8999ff0b6f3996d78b new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0S60{XhQST0&BdhJft=+W@u~wiUJ+d$A`N5(Simd|c2z zhqE5=>J87YvVCwhIyXgmo!o*r&Nau?6&l0yDn%l@dh@t;NeZ3lH5e(>*cAmK?-Zi$ z>MTOZ^Q?W6-v^FOED(14U;WP7zw-zRVL-tylycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..2f471e1582a3e3a136e8611159c3471ef92d2c54 GIT binary patch literal 205 zcmV;;05bm!+d3-E00000000000VuUE{UE=U1popIDJ+mFZF6mdKjkG_)!inxCbgdH zOQZCbDNkNRsZ?&6B(ir4#FmA-RC1)1I|a&2AeBdh0K@}8;xQ9QMd6?sP}M~xq=7IH zC8?@PNbTFW&_8;!e|K-;lKks=MDF_b(fNDbxS5^L<>GvxV+}5U*2afVa(A2jJ7;&p zU(4L{db5X}BUP24z(6IXs)`oJf+BH9bYr5qs8~pNaL9;=P#^>_1Oosop|VCk^ednN H|62R_TFzdt literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/_CHECKPOINT_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/_CHECKPOINT_METADATA new file mode 100644 index 000000000..27770c86d --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/_CHECKPOINT_METADATA @@ -0,0 +1 @@ +{"item_handlers": {"metadata": "orbax.checkpoint._src.handlers.json_checkpoint_handler.JsonCheckpointHandler", "state": "orbax.checkpoint._src.handlers.pytree_checkpoint_handler.PyTreeCheckpointHandler"}, "metrics": {}, "performance_metrics": {}, "init_timestamp_nsecs": 1772553302311049879, "commit_timestamp_nsecs": 1772553302397954803, "custom_metadata": {}} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/metadata/metadata b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/metadata/metadata new file mode 100644 index 000000000..7ac5d3905 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/metadata/metadata @@ -0,0 +1 @@ +{"metadata": "json_data"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/_METADATA new file mode 100644 index 000000000..d18275eb9 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/_METADATA @@ -0,0 +1 @@ +{"tree_metadata": {"('a',)": {"key_metadata": [{"key": "a", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [8]}}, "('b', 'c')": {"key_metadata": [{"key": "b", "key_type": 2}, {"key": "c", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [3]}}}, "use_ocdbt": true, "use_zarr3": false, "store_array_data_equal_to_fill_value": true, "custom_metadata": null} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/array_metadatas/process_0 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/array_metadatas/process_0 new file mode 100644 index 000000000..9e1980540 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/array_metadatas/process_0 @@ -0,0 +1 @@ +{"array_metadatas": [{"array_metadata": {"param_name": "a", "write_shape": [8], "chunk_shape": [8], "ext_metadata": null}}, {"array_metadata": {"param_name": "b.c", "write_shape": [3], "chunk_shape": [3], "ext_metadata": null}}]} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/d/80e11f222631e3e2f19ad3db46612a3d b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/d/80e11f222631e3e2f19ad3db46612a3d new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0U!vXZkz$$fe1-;&hC|o&Sr|bo8I>4P z^eqfh4Gq(bjEu~T4O5L%jnWJ)6H|;+l1$9Z42=?vQy4)?KQOXT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0ycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..97ed037403fb1802ba0996413f3ea31b0083f36b GIT binary patch literal 166 zcmd?=#FGzxNxJjV8Rb49uIY$-FE6_=NK9|8V+68XJG`XWMWcM zU|>kmH#AN)vNSVKG)hXcNJ&dJHa18#Hcm=RH8)H#PPQ~KGq*G~Pc=45vNSO>w=hpL zG&4<3F*7zZNHR^bur#+YU}9uqU;vqTi17m>6AOrBV90Dy^u889Q)2Vv*I=6AST{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0Z;-BpFy*B&Vb#T38q)CR>`C7&C&Deqdzzz{qeabJ?k@@iQeD JjS60{XhQST0&BdhJft=+W@u~wiUJ+d$A`N5(Simd|c2z zhqE5=>J87YvVCwhIyXgmo!o*r&Nau?6&l0yDn%l@dh@t;NeZ3lH5e(>*cAmK?-Zi$ z>MTOZ^Q?W6-v^FOED(14U;WP7zw-zRVL-tylycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/ocdbt.process_0/d/fa2762f9465d31ad60af9e0a782a92f5 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/ocdbt.process_0/d/fa2762f9465d31ad60af9e0a782a92f5 new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0lO3OF*4`hm=pi`|5 z$lbw`Tgt>AU&|$#l9VaQ;Kk>K$g!?Xq?7?ja-n1_oQHsk0)+|$j|0htlA++xxJVso zBVm#Q1gX?ORBBpOe|7!&c>HAeYhh#NQMvWwE+>Q!pK@hcK5wn?XUzBPyS{GrTJCQ7 ztiNqr$ICgk&%a^+au2gEPnNK;Wp^#1zvb&u_B?@(;|M6F8iWu^%>)Bu0kEJ*0z`zw nBKU|jKn4sLG8O^|06@k{Bna?AU}x}Ekb}d7?1ST{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq00B0sx@y9-{yN literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/ocdbt.process_0/d/0845f9fa5bceb80800a629bc36c0c12f b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/ocdbt.process_0/d/0845f9fa5bceb80800a629bc36c0c12f new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0ycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/ocdbt.process_0/d/7f5add099fb7e78b777bd8a8ef441efe b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/ocdbt.process_0/d/7f5add099fb7e78b777bd8a8ef441efe new file mode 100644 index 0000000000000000000000000000000000000000..34ec758d3dabf72b4bfe875cf3749ac86fc9b4a5 GIT binary patch literal 233 zcmVS60{XhQST0&BdhJft=+W@u~wiUJ+d$A`N5(Simd|c2z zhqE5=>J87YvVCwhIyXgmo!o*r&Nau?6&l0yDn%l@dh@t;NeZ3lH5e(>*cAmK?-Zi$ z>MTOZ^Q?W6-v^FOED(14U;WP7zw-zRVL-tylZKZH7GZ2y?L+1OkA=4?5y zLb%VPlic3&*^(;Vfo#ZJRAuFM*)2Z&wye%i-`yTK*mZW2=GE+XB<@wL&JpZgYpDXRfh`4M{kP& literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/_CHECKPOINT_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/_CHECKPOINT_METADATA new file mode 100644 index 000000000..3024f180d --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/_CHECKPOINT_METADATA @@ -0,0 +1 @@ +{"item_handlers": "orbax.checkpoint._src.handlers.standard_checkpoint_handler.StandardCheckpointHandler", "metrics": {}, "performance_metrics": {}, "init_timestamp_nsecs": 1772553298721362180, "commit_timestamp_nsecs": 1772553298788869366, "custom_metadata": {}} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/_METADATA new file mode 100644 index 000000000..d18275eb9 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/_METADATA @@ -0,0 +1 @@ +{"tree_metadata": {"('a',)": {"key_metadata": [{"key": "a", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [8]}}, "('b', 'c')": {"key_metadata": [{"key": "b", "key_type": 2}, {"key": "c", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [3]}}}, "use_ocdbt": true, "use_zarr3": false, "store_array_data_equal_to_fill_value": true, "custom_metadata": null} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/_sharding b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/_sharding new file mode 100644 index 000000000..af17d0bcf --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/_sharding @@ -0,0 +1 @@ +{"YQ==":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}","Yi5j":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/array_metadatas/process_0 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/array_metadatas/process_0 new file mode 100644 index 000000000..9e1980540 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/array_metadatas/process_0 @@ -0,0 +1 @@ +{"array_metadatas": [{"array_metadata": {"param_name": "a", "write_shape": [8], "chunk_shape": [8], "ext_metadata": null}}, {"array_metadata": {"param_name": "b.c", "write_shape": [3], "chunk_shape": [3], "ext_metadata": null}}]} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/d/a2123ceed7461da4a184399412ac2d2a b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/d/a2123ceed7461da4a184399412ac2d2a new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0J}@+JG#t9F&%y{&$*9DT zqMvAFXk?t6nwny6VrH0S60{XhQST0&BdhJft=+W@u~wiUJ+d$A`N5(Simd|c2z zhqE5=>J87YvVCwhIyXgmo!o*r&Nau?6&l0yDn%l@dh@t;NeZ3lH5e(>*cAmK?-Zi$ z>MTOZ^Q?W6-v^FOED(14U;WP7zw-zRVL-tylycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/ocdbt.process_0/d/53d407ad7b2f319ecf3d0d98093cbb75 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/ocdbt.process_0/d/53d407ad7b2f319ecf3d0d98093cbb75 new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq099iFSRdpIF~MoyO_Mtw zM}22Yxp$`uL7;3x|+KR3w)PgTujOH{wx|TohbF!T*Lz$O2U$ z%l~xrUnQiN^B&a3JdGLF2)i{J^EvDsX0fuiE4g9Gnvl7;QC}~8`K%_w-t1gXC%U!G z^sZ+eY{sh4wb)vl2>*vb22xW0j~WpQ3k87k3j>4+j0FLL49D{j&>#U30st$adN>p` H@1ROo5gb_e literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/_CHECKPOINT_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/_CHECKPOINT_METADATA new file mode 100644 index 000000000..b16f1032d --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/_CHECKPOINT_METADATA @@ -0,0 +1 @@ +{"item_handlers": "orbax.checkpoint._src.handlers.standard_checkpoint_handler.StandardCheckpointHandler", "metrics": {}, "performance_metrics": {}, "init_timestamp_nsecs": 1772553300032577265, "commit_timestamp_nsecs": 1772553300091907979, "custom_metadata": {}} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/_sharding b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/_sharding new file mode 100644 index 000000000..af17d0bcf --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/_sharding @@ -0,0 +1 @@ +{"YQ==":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}","Yi5j":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/array_metadatas/process_0 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/array_metadatas/process_0 new file mode 100644 index 000000000..9e1980540 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/array_metadatas/process_0 @@ -0,0 +1 @@ +{"array_metadatas": [{"array_metadata": {"param_name": "a", "write_shape": [8], "chunk_shape": [8], "ext_metadata": null}}, {"array_metadata": {"param_name": "b.c", "write_shape": [3], "chunk_shape": [3], "ext_metadata": null}}]} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/d/3078d96010340714f061235f5f0799b3 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/d/3078d96010340714f061235f5f0799b3 new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0T{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0v(PCJ?$W-I@LWo~6$E)=S zew%Z;kkgu{hXn_`i+G|&^N4K%WuiycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..bf42d3764f295e8bad02a0466c17f538af158b1e GIT binary patch literal 199 zcmV;&066~)+d3-800000000000VuUE{UE?)1ppF@Cn=CAZMnY9e@CPUcc-?AUx$3J zpp`oX=3R74OIvc~4hW*IU^q~Yv~s7KG@6HFL0}yQ2ntD~c|4P%LRAr!&;*h|Pf}Ht zkm@)6En{})_M7MTH%IzxhIzYp&&O-eSkG&M9!F-kHqPi6!u{lLibfstXS{+_C9@iQeD J3U2pp0s#H{ApHOU literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/ocdbt.process_0/d/2f618e31c5caff9d6d42d74ebd3c71e2 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/ocdbt.process_0/d/2f618e31c5caff9d6d42d74ebd3c71e2 new file mode 100644 index 0000000000000000000000000000000000000000..34ec758d3dabf72b4bfe875cf3749ac86fc9b4a5 GIT binary patch literal 233 zcmVS60{XhQST0&BdhJft=+W@u~wiUJ+d$A`N5(Simd|c2z zhqE5=>J87YvVCwhIyXgmo!o*r&Nau?6&l0yDn%l@dh@t;NeZ3lH5e(>*cAmK?-Zi$ z>MTOZ^Q?W6-v^FOED(14U;WP7zw-zRVL-tylT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0ycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..c55d59bf3c8ed1537582c5133f464fc1d7af0e9c GIT binary patch literal 206 zcmV;<05Sgz+d3-F00000000000VuUE{UE@d1ps0TDlULa(g9t;=|GeUL_%Z;${B&N z$QXJg*?adg!(mjUNx9|Tvh;6r9ep@&$lf~ze^e%ys4Xg@fB}I=WpZg)aKQM_ER{Br zMzZ`*SO1qvYgYmvJNvw5=N#s3mgP3rv}~7T{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0ml2M5v zMc=?Q(JU$1G%dx%z%0?+z|7Lf#3;=m(J0m2z{oHyDTxuJ^aCTy2S$bq|G09m#m|&r J5Ve-L3IH=UAe8_B literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/_CHECKPOINT_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/_CHECKPOINT_METADATA new file mode 100644 index 000000000..9e9d699e9 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/_CHECKPOINT_METADATA @@ -0,0 +1 @@ +{"item_handlers": "orbax.checkpoint._src.handlers.standard_checkpoint_handler.StandardCheckpointHandler", "metrics": {}, "performance_metrics": {}, "init_timestamp_nsecs": 1772553302641695277, "commit_timestamp_nsecs": 1772553302704219410, "custom_metadata": {}} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/_METADATA new file mode 100644 index 000000000..d18275eb9 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/_METADATA @@ -0,0 +1 @@ +{"tree_metadata": {"('a',)": {"key_metadata": [{"key": "a", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [8]}}, "('b', 'c')": {"key_metadata": [{"key": "b", "key_type": 2}, {"key": "c", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [3]}}}, "use_ocdbt": true, "use_zarr3": false, "store_array_data_equal_to_fill_value": true, "custom_metadata": null} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/_sharding b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/_sharding new file mode 100644 index 000000000..af17d0bcf --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/_sharding @@ -0,0 +1 @@ +{"YQ==":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}","Yi5j":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/array_metadatas/process_0 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/array_metadatas/process_0 new file mode 100644 index 000000000..9e1980540 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/array_metadatas/process_0 @@ -0,0 +1 @@ +{"array_metadatas": [{"array_metadata": {"param_name": "a", "write_shape": [8], "chunk_shape": [8], "ext_metadata": null}}, {"array_metadata": {"param_name": "b.c", "write_shape": [3], "chunk_shape": [3], "ext_metadata": null}}]} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/d/344eaa31a8be90c4a0db812554cebd5b b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/d/344eaa31a8be90c4a0db812554cebd5b new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0S60{XhQST0&BdhJft=+W@u~wiUJ+d$A`N5(Simd|c2z zhqE5=>J87YvVCwhIyXgmo!o*r&Nau?6&l0yDn%l@dh@t;NeZ3lH5e(>*cAmK?-Zi$ z>MTOZ^Q?W6-v^FOED(14U;WP7zw-zRVL-tylycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/ocdbt.process_0/d/97a8ab7b23429321c687014c0fe5eb40 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/ocdbt.process_0/d/97a8ab7b23429321c687014c0fe5eb40 new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0e?LeY`!X3o@Ig2~bKg2qBah$b=;V5J8lNT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0T{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0S60{XhQST0&BdhJft=+W@u~wiUJ+d$A`N5(Simd|c2z zhqE5=>J87YvVCwhIyXgmo!o*r&Nau?6&l0yDn%l@dh@t;NeZ3lH5e(>*cAmK?-Zi$ z>MTOZ^Q?W6-v^FOED(14U;WP7zw-zRVL-tylycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..2fcfb413a4e052f0466e25d85c0cf435eebdf569 GIT binary patch literal 204 zcmV;-05ks#+d3-D00000000000VuUE{UE@N1ppGuC@X+V+Q1}e0oe!{0LBWAX8=nA z$dpnlM(z21+ZMPL-jPo4U~Z- zNmW%s3N~&mx&n;N8!n$s`ukvx^pk?dP~Q1ANHQ}>hEoS?iYVzz|^JFd+Z|fI%S<0{|T{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq04hcYH4C@W@eF^l$vIoVv?F>U}RyMVq}tPX~qar`hk(<10%zBuMVqg@iQeD JBHx54000=jAYcFh literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/ocdbt.process_0/d/3e79d4ceab8ed5eeed5a279b636e756b b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/ocdbt.process_0/d/3e79d4ceab8ed5eeed5a279b636e756b new file mode 100644 index 0000000000000000000000000000000000000000..8d6d8647aec8bf666fcf3369e4730acaca153dbb GIT binary patch literal 194 zcmV;z06qT<+aTV;00000000000VuUE{a|PSH3a|y${{0gC(Z%<|Ht0R|C>ycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/ocdbt.process_0/d/5eb2add0529a72de1e3706193be401c3 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/ocdbt.process_0/d/5eb2add0529a72de1e3706193be401c3 new file mode 100644 index 0000000000000000000000000000000000000000..63a24bbda136164a7f84453415fe5dcb1491c339 GIT binary patch literal 221 zcmV<303!bk+aTWE00000000000VuUE{a}Is4F&*`ODHR#C+YwHKlbRVt~OfEjqI|J zO{gtfX>v(PCJ?$W-I@LWo~6$E)=S zew%Z;kkgu{hXn_`i+G|&^N4K%WuiT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq08m52=Ux1oH@4=u{5nmaq&2o&-M|jdFNET{ zI`XKja6562wcCcRt7(vL`)s@ViXA<_*rhzb?q%3K_jB?310w8792oWgA bB5)W+1ppxnV8Y}jlgMh`U(r%#VJE8kws}!e literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..71c63ae60dd9b18ea1f900726a79eef106944bdb GIT binary patch literal 233 zcmVJ8ms| z=RFs4>T-wKukCc-G1t5a)&F1pU&D{hd7m}TFie3`YC#C0v@{bGNq__yI3Qp!K$d_l jAQ=e)2Lk~J06@k{Bna?AU}x}Ekb}d7?1ST{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0T=aeC_K=Z#FmSHZU}BG#t9F&%y{&$*9DT zqHms>W|5p`k(Oj?nv`g0l4NXbnPg;co|I~4ZjfeTYRCvu`hk(<10%y`y=J*<@iQeD J3=U{N0|2KEA|L<& literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/ocdbt.process_0/d/a224ec72c56597b3ee516c965647aea5 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/ocdbt.process_0/d/a224ec72c56597b3ee516c965647aea5 new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0v(PCJ?$W-I@LWo~6$E)=S zew%Z;kkgu{hXn_`i+G|&^N4K%WuiycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..4a22480c5aaaa4cf28ad997e47b0049c56933cdd GIT binary patch literal 203 zcmV;+05ty$+d3-C00000000000VuUE{UE=E1poqzC@Y{T9W%w4t%c0VR#6Kd!9?}A zlaytAcfX;KGNqKHls8@eSF!lZ;Vq?10jfNl2!Zl2G2qZhC=VwhaM3taHCZZIB#H!4 zs=8EK``XUkm(02MKq&GuFLY=fYR{WRo*mz(zjqFwNhVu5hE2vX{c!x~+uTq#(tB2x!Pi9D@U3K>;EI04t%gMn3c_paEJZ F(s?D(S7-nL literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/_CHECKPOINT_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/_CHECKPOINT_METADATA new file mode 100644 index 000000000..1a66b1be7 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/_CHECKPOINT_METADATA @@ -0,0 +1 @@ +{"metrics": {}, "performance_metrics": {}, "init_timestamp_nsecs": 1772553300798466325, "commit_timestamp_nsecs": 1772553300858358515, "custom_metadata": {}} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/_METADATA new file mode 100644 index 000000000..d18275eb9 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/_METADATA @@ -0,0 +1 @@ +{"tree_metadata": {"('a',)": {"key_metadata": [{"key": "a", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [8]}}, "('b', 'c')": {"key_metadata": [{"key": "b", "key_type": 2}, {"key": "c", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [3]}}}, "use_ocdbt": true, "use_zarr3": false, "store_array_data_equal_to_fill_value": true, "custom_metadata": null} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/_sharding b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/_sharding new file mode 100644 index 000000000..af17d0bcf --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/_sharding @@ -0,0 +1 @@ +{"YQ==":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}","Yi5j":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/array_metadatas/process_0 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/array_metadatas/process_0 new file mode 100644 index 000000000..9e1980540 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/array_metadatas/process_0 @@ -0,0 +1 @@ +{"array_metadatas": [{"array_metadata": {"param_name": "a", "write_shape": [8], "chunk_shape": [8], "ext_metadata": null}}, {"array_metadata": {"param_name": "b.c", "write_shape": [3], "chunk_shape": [3], "ext_metadata": null}}]} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/d/02945215500221aaf3beaed88d9d3f36 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/d/02945215500221aaf3beaed88d9d3f36 new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0(m=lr=*GN5i4(`Yenfm5fRZ zDf$LRmL{e~hNh+l21Z7PiHT{(NvVmcDHawfmMO+*#%7Elr5_ksJ}@%;a-8|;YWz$I J2E&u76#$qbBGLc= literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/ocdbt.process_0/d/3ae83af3116744a1d3a47cfe0284cce6 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/ocdbt.process_0/d/3ae83af3116744a1d3a47cfe0284cce6 new file mode 100644 index 0000000000000000000000000000000000000000..63a24bbda136164a7f84453415fe5dcb1491c339 GIT binary patch literal 221 zcmV<303!bk+aTWE00000000000VuUE{a}Is4F&*`ODHR#C+YwHKlbRVt~OfEjqI|J zO{gtfX>v(PCJ?$W-I@LWo~6$E)=S zew%Z;kkgu{hXn_`i+G|&^N4K%WuiycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/ocdbt.process_0/d/e7728ce05b4d0bf3870b3e1a7c6c2d29 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/ocdbt.process_0/d/e7728ce05b4d0bf3870b3e1a7c6c2d29 new file mode 100644 index 0000000000000000000000000000000000000000..317f53f948e4b689f605a9edaf542dae29cce0a7 GIT binary patch literal 173 zcmV;e08;-9+aTVp00000000000VuUE{UElL1OTGRA0cox&H?=Y$KJ{Ro6K@;)mJUl zWTOC34q+rP%9aNxF1-B{As@Bjw8m52=Ux1oH@4=u{5nmaq&2o&-M|jdFNET{ zI`XKja6562wcCcRt7(vL`)s@ViXA<_*rhzb?q%3K_jB?310w8792oWgA bB5)W+1ppxnV8Y}jlgMh`U(r%#VJE8kws}!e literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/ocdbt.process_0/d/f097856bb10a43428a37b04432218f7a b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/ocdbt.process_0/d/f097856bb10a43428a37b04432218f7a new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0T{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0ml2M5v zML*fd+}zOID8(!>#mw9|G0h;=z{E7w#3aou(bB-o!jciB^aCTy2S$cpDfjycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/ocdbt.process_0/d/63a31764e4037cd90b6a0ff37d0e26a3 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/ocdbt.process_0/d/63a31764e4037cd90b6a0ff37d0e26a3 new file mode 100644 index 0000000000000000000000000000000000000000..63a24bbda136164a7f84453415fe5dcb1491c339 GIT binary patch literal 221 zcmV<303!bk+aTWE00000000000VuUE{a}Is4F&*`ODHR#C+YwHKlbRVt~OfEjqI|J zO{gtfX>v(PCJ?$W-I@LWo~6$E)=S zew%Z;kkgu{hXn_`i+G|&^N4K%Wui8m52=Ux1oH@4=u{5nmaq&2o&-M|jdFNET{ zI`XKja6562wcCcRt7(vL`)s@ViXA<_*rhzb?q%3K_jB?310w8792oWgA bB5)W+1ppxnV8Y}jlgMh`U(r%#VJE8kws}!e literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/ocdbt.process_0/d/b64842def5e92520316b51fe42d0dd2f b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/ocdbt.process_0/d/b64842def5e92520316b51fe42d0dd2f new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0S< zlY>^Avz6UT!HU8sd(+O8vSbj%=lXj}BytDHp-3#3gN24m0CV9`AmC6WmJb4nhs2RE zQYAq!38{ursi|zvovdkHE&AeRjX~NfovdGbjH_FVG_LjN9>Y~%E+=Db`tSez&gf3Z zweEXdIHlul+U^!VJN)OmpL^BG_9RQW(A)i?H+HKd^Ld^DrBs6uLaB*ZR3?xK%Fs|q os4(zgpa9s34up+}2mm0+$~my{LSSd`RgiT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0U|t7Weg1*4TrAlvoL~GGAc2o z=$o4-nOT^bn5J49nWq{X8XKmjT38w-8JMLQ8k(6}Br$@Neqdzzz{s#+>nVY2@iQeD JL|z%c1pv23ADI9E literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/ocdbt.process_0/d/0e0dde7d360b52c73d6f72526c70c83b b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/ocdbt.process_0/d/0e0dde7d360b52c73d6f72526c70c83b new file mode 100644 index 0000000000000000000000000000000000000000..8d6d8647aec8bf666fcf3369e4730acaca153dbb GIT binary patch literal 194 zcmV;z06qT<+aTV;00000000000VuUE{a|PSH3a|y${{0gC(Z%<|Ht0R|C>ycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/ocdbt.process_0/d/9adab877b23da1350e5c6cf7d487f88e b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/ocdbt.process_0/d/9adab877b23da1350e5c6cf7d487f88e new file mode 100644 index 0000000000000000000000000000000000000000..a8adc2748e584922acd5e8419b77bcfceeb2d04c GIT binary patch literal 169 zcmV;a09OAD+aTVl00000000000VuUE{UEe;1OS4`9v^_mIWsV~YhQmtWVtrpPD?8t zO;mam0|H_@;3yc#w$mUVwc)oU3zg}sAD-u3{F*nm=D7SiO`oJSwp^XS49_ow;<`HW zsH|{1agVjzhOMhfkZ=2JyZVY9J-^tcJiqQ`*gWMbQ9$Hd;T%S}WE=}fnKeQJ3OEcS X1ppxnV8Y}jlgMh`SJ6^tZxAXgGapFg literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/ocdbt.process_0/d/c40cdefd0942065e1e6c912888310067 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/ocdbt.process_0/d/c40cdefd0942065e1e6c912888310067 new file mode 100644 index 0000000000000000000000000000000000000000..34ec758d3dabf72b4bfe875cf3749ac86fc9b4a5 GIT binary patch literal 233 zcmVS60{XhQST0&BdhJft=+W@u~wiUJ+d$A`N5(Simd|c2z zhqE5=>J87YvVCwhIyXgmo!o*r&Nau?6&l0yDn%l@dh@t;NeZ3lH5e(>*cAmK?-Zi$ z>MTOZ^Q?W6-v^FOED(14U;WP7zw-zRVL-tylT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0|I)p|o?Lg)nKxSa< z41CL!lnx4z0ZejbclX}4_0xa`KE0)uG6lOp&Lr|O5Tc2N1#%_?2^$RyC1N?A@ge8&6adX7k!YKll+ywvvb;A zW4n*lp+Cy6t@({TG4?Zm%BQt+bjTiy6@H7(-ovncr2kC0d4^#Mlv2v>Zc>_yNCJ_p o14l%_1B5~&QDG3lfCwA}1^`ziK(H4IJA*$~LiRy<0%mAenkuho1ONa4 literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/_CHECKPOINT_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/_CHECKPOINT_METADATA new file mode 100644 index 000000000..c74646287 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/_CHECKPOINT_METADATA @@ -0,0 +1 @@ +{"item_handlers": "orbax.checkpoint._src.handlers.standard_checkpoint_handler.StandardCheckpointHandler", "metrics": {}, "performance_metrics": {}, "init_timestamp_nsecs": 1772553302430720920, "commit_timestamp_nsecs": 1772553302490044279, "custom_metadata": {}} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/_METADATA new file mode 100644 index 000000000..d18275eb9 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/_METADATA @@ -0,0 +1 @@ +{"tree_metadata": {"('a',)": {"key_metadata": [{"key": "a", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [8]}}, "('b', 'c')": {"key_metadata": [{"key": "b", "key_type": 2}, {"key": "c", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [3]}}}, "use_ocdbt": true, "use_zarr3": false, "store_array_data_equal_to_fill_value": true, "custom_metadata": null} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/_sharding b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/_sharding new file mode 100644 index 000000000..af17d0bcf --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/_sharding @@ -0,0 +1 @@ +{"YQ==":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}","Yi5j":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/d/5646044033c4f69203aad88e5abdd46b b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/d/5646044033c4f69203aad88e5abdd46b new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0HOu7#JHTo1~dp8W|WTCZT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0S60{XhQST0&BdhJft=+W@u~wiUJ+d$A`N5(Simd|c2z zhqE5=>J87YvVCwhIyXgmo!o*r&Nau?6&l0yDn%l@dh@t;NeZ3lH5e(>*cAmK?-Zi$ z>MTOZ^Q?W6-v^FOED(14U;WP7zw-zRVL-tylycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..de62c21bb81217c007f03fbbba61330aac2806b2 GIT binary patch literal 205 zcmV;;05bm!+d3-E00000000000VuUE{UE=U1prdZDJ^hIngj3x2E;Y?I^Tj&1fokU zM$tL2vNzc$EUQZhn-CLPGW7~a0@b(-O@yR}RGQ1A0fA!@a3BGxG?xX13x@wpLZ{pm4T{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq04P z^bIYH4Aab03=C6@EX)kdERBs!j8oIhObrZ^O;b~hQW-%?KQOX}zZs0Jjq!xBvhE literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/ocdbt.process_0/d/e33f406e4ae074cee3009029312e4151 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/ocdbt.process_0/d/e33f406e4ae074cee3009029312e4151 new file mode 100644 index 0000000000000000000000000000000000000000..57b9216da50c0b7edea3ca17acf439ebc4b6a613 GIT binary patch literal 240 zcmVT{yjbiF q08Aqb08aoE3pH|6EY55rWy=yq0S60{XhQST0&BdhJft=+W@u~wiUJ+d$A`N5(Simd|c2z zhqE5=>J87YvVCwhIyXgmo!o*r&Nau?6&l0yDn%l@dh@t;NeZ3lH5e(>*cAmK?-Zi$ z>MTOZ^Q?W6-v^FOED(14U;WP7zw-zRVL-tylycOlj52 zHqryp{~{7pVO0Kj(tmtFY$S#u4dkOP43k5Z{`$f5yo_P$gi|Uy?xHt+VdyEH?B!Ymf2_yO)^-B3}sw2>D)kje4!&HbN~PV literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v0_checkpoints/direct_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..37b98b1f6e0748a2061f7a49219d50892037c339 GIT binary patch literal 201 zcmV;)05<;&+d3-A00000000000VuUE{UE+|1pwj-C@X+VbC^5?ioh`d9r5$^lwT+`D<=umU_(fNNq2hDy>PJhN6VT8ZV9P4k4y{+%^zifkj z*xzhJ%+E|!T^541ma3{smf*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..fabee669acebd08daad8e583451717d7f3ab7ed0 GIT binary patch literal 113 zcmdWU(tz>OBW7RY+-2NXgG9TpM?>ml2M5v zML)$d$uu!7$vD}>&@46C!pz7x(J0Bp(9+VvG9@w9(2NnJ^d}R`PbP+Hm$$k1<7Y}R JY+Lu?0|1r5BkuqJ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/190c4bfc42a3ae266f3a2e99dd2ae37b b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/190c4bfc42a3ae266f3a2e99dd2ae37b new file mode 100644 index 0000000000000000000000000000000000000000..56400eb4d3a9a93aae661df33e9c18775ed2f8a6 GIT binary patch literal 358 zcmV-s0h#^`+aTU%0RR91000000VuUE{a`2qRSE#c5j`<*wP_Cg|NZ}eaP|M~)lajv z4)ncCvHSb6e`}#l_OJgg;CA4H|6Ms%z^`e0E@5$yF0ME zi`^C2-NYgg490*)z`^b+GK!2s(;AW}DMMpUzBroJutC9M6N=sZw1eVvvc+anQ`Gdy zFoJr1y(=8Arbq&0y&HH!qkNTT1idH9cFeka6JnGY1?}RyicEKvUYvE9ngPdBa*C{Cec)VnfzxYbPs=0*>QUu1xu`tE)>qC%2RF%CX)NWDA4vJy(A? zHNH!gab?$R@`O%r52ww>9s(dBP=X<3NH_2#2I>`3W?aH@kr@$L9JZGH6ZJNO_=#34K|317JI@GwwS|NsAgk=Pm;my~9S zwCzv2k^U7eTR!LzOw;#m(ijXnT-6pL2S?H9ZD-tGZ&ph0?9DH4j%^jV!E#3n< zRJ&euQrWHs{ouBq;!VpYXTH_RWBcfrXYRjWBe(DYSYJH@HC8FLG z0So*f!a%n&1S$Yf6aff*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/621d0812cde2a855a777b339a1c23a61 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/621d0812cde2a855a777b339a1c23a61 new file mode 100644 index 0000000000000000000000000000000000000000..d610a0fd3fff9aedfb16b97d8c1e10bae28d26e3 GIT binary patch literal 293 zcmV+=0owiy+aTU00RR91000000VuUE{b1w*O$Y#D4=^X7CCvf<|NsA>p=N*D?y^3S zw)>OTTF55b_P>xNTK8KF>im1fiWVs)sZ2v;9UZ;VZruj?Xh41E)5UtvAxA$X$?lC@ zDz)uuRpN7YNUYg9*v9TC@w~~%Na}AF`;Im~Mbw!Y7q;kmT-hkTPfGW$&gvR3LOrr= zP`;_iHb*^S*C69v%`WJ9>zm2;)t6B|dJ+T(^)*l>GIUaVCJtf9?x;7{$y#_S?9Oo% z8ifWkC>X{9L$@*nGyvcr97h@ez>^rDUV)Su->_UW1HTrBuFWw@&TWI?F~`O+mbE!( r4ZCa>)L^m>ViRWkNMkmLDq3tH90+46sU9IysJ2E^5U|ZVBWH>Otrdio literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_has_metadata/state/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..effb73262d48984443d77e6672f41a9cef12f3f4 GIT binary patch literal 236 zcmV1_1I*E-jEN9e4r{F6jJ+j2eR%B$5CL+9@6PCZr!52OnIx781VzGRKto`{0eL2gWdU+I$V*~m zL_VZy7^g|b(bl|C`!Pf3Tr(E+zQ@&Qxo(60{7Jg3wRevYdxZ*_TW?*G@;1~Jv48Hy z)<@L^bt8A?jlH4c?{$Cgw^?d!zquER5`^M<8u7=&VUXE4N-4!SkxB&xfTAQC6aoq| mHZCd%3=R{4MH2`BAjrx&u<=4*XYf@JL&JpZgYpElVVtFRS7u27 literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/metadata/data.json b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/metadata/data.json new file mode 100644 index 000000000..7ac5d3905 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/metadata/data.json @@ -0,0 +1 @@ +{"metadata": "json_data"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/orbax.checkpoint b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/orbax.checkpoint new file mode 100644 index 000000000..e69de29bb diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/_sharding b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/_sharding new file mode 100644 index 000000000..af17d0bcf --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/_sharding @@ -0,0 +1 @@ +{"YQ==":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}","Yi5j":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/array_metadatas/process_0 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/array_metadatas/process_0 new file mode 100644 index 000000000..9e1980540 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/array_metadatas/process_0 @@ -0,0 +1 @@ +{"array_metadatas": [{"array_metadata": {"param_name": "a", "write_shape": [8], "chunk_shape": [8], "ext_metadata": null}}, {"array_metadata": {"param_name": "b.c", "write_shape": [3], "chunk_shape": [3], "ext_metadata": null}}]} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/d/6c7aea8f9accdea62a5f10618989117d b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/d/6c7aea8f9accdea62a5f10618989117d new file mode 100644 index 0000000000000000000000000000000000000000..dc3b09d1bcba56661f9ea0874df1c663aa40b485 GIT binary patch literal 377 zcmV-<0fznz+aTU~0RR91000000VuUE{a{!F?Fs;P5f*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..669716d79cb0946441f7b20f7790b79020913a0f GIT binary patch literal 113 zcmdo7EMG#t9F&%y{&$*9DT zqHmULo|u|wk!G2goSc%HXl9gXnr3KVW@uq)VQFY+p27%H`jd&}ClkZd4{jy*<7Y}R J+|#(T1^{BOBI*DD literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/8acd609f13d134de219a96213988ea33 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/8acd609f13d134de219a96213988ea33 new file mode 100644 index 0000000000000000000000000000000000000000..d610a0fd3fff9aedfb16b97d8c1e10bae28d26e3 GIT binary patch literal 293 zcmV+=0owiy+aTU00RR91000000VuUE{b1w*O$Y#D4=^X7CCvf<|NsA>p=N*D?y^3S zw)>OTTF55b_P>xNTK8KF>im1fiWVs)sZ2v;9UZ;VZruj?Xh41E)5UtvAxA$X$?lC@ zDz)uuRpN7YNUYg9*v9TC@w~~%Na}AF`;Im~Mbw!Y7q;kmT-hkTPfGW$&gvR3LOrr= zP`;_iHb*^S*C69v%`WJ9>zm2;)t6B|dJ+T(^)*l>GIUaVCJtf9?x;7{$y#_S?9Oo% z8ifWkC>X{9L$@*nGyvcr97h@ez>^rDUV)Su->_UW1HTrBuFWw@&TWI?F~`O+mbE!( r4ZCa>)L^m>ViRWkNMkmLDq3tH90+46sU9IysJ2E^5U|ZVBWH>Otrdio literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/8ca408883ce73077531c683157194036 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/8ca408883ce73077531c683157194036 new file mode 100644 index 0000000000000000000000000000000000000000..56400eb4d3a9a93aae661df33e9c18775ed2f8a6 GIT binary patch literal 358 zcmV-s0h#^`+aTU%0RR91000000VuUE{a`2qRSE#c5j`<*wP_Cg|NZ}eaP|M~)lajv z4)ncCvHSb6e`}#l_OJgg;CA4H|6Ms%z^`e0E@5$yF0ME zi`^C2-NYgg490*)z`^b+GK!2s(;AW}DMMpUzBroJutC9M6N=sZw1eVvvc+anQ`Gdy zFoJr1y(=8Arbq&0y&HH!qkNTT1idH9cFeka6JnGY1?}RyicEKvUYvE9ngPdBa*C{Cec)VnfzxYbPs=0*>QUu1xu`tE)>qC%2RF%CX)NWDA4vJy(A? zHNH!gab?$R@`O%r52ww>9s(dBP=X<3NH_2#2I>`3W?aH@kr@$L9JZGH6ZJNO_=#34K|317JI@GwwSf*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/ff8307a3b8cd814cabadf49d690662fa b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_missing/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/ff8307a3b8cd814cabadf49d690662fa new file mode 100644 index 0000000000000000000000000000000000000000..0ef18233ee5d65a65bb028f647a7707c6d1e9903 GIT binary patch literal 272 zcmV+r0q_0{+aTT$0RR91000000VuUE{b2F{r3U~q4=*N=C(Qx>|NsAgk=Pm;my~9S zwCzv2k^U7eTR!LzOw;#m(ijXnT-6pL2S?H9ZD-tGZ&ph0?9DH4j%^jV!E#3n< zRJ&euQrWHs{ouBq;!VpYXTH_RWBcfrXYRjWBe(DYSYJH@HC8FLG z0So*f!a%n&1S$Yf6af2dn9S*Qm7=mCVaH z-pi3vCW#sLJF&|o<(5e%;k7|6(gq)bz2!~;3b9Nw6ik6agGEyygan9Xl3{?zkVqZr zB1NQ!)TpDX`Z%e1e6H5iYw@ue9s0BF_zl^e;-2%HNeHL!@|V$E?iGaY(Ie?j^*2`R zt&5hs{c_}-Vke)wTQPrTm)(zdwdZe_jEpz(&Zk;@Z%K?q1_)Ae9#z%mkzgt+kBVYU n0BmqjTrL6!kikNLhC>GcK*mZW2=GE+XK=?#$UZ1fdMpWkN=0pL literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/_CHECKPOINT_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/_CHECKPOINT_METADATA new file mode 100644 index 000000000..914708244 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/_CHECKPOINT_METADATA @@ -0,0 +1 @@ +{"item_handlers": {"state": "orbax.checkpoint.experimental.v1._src.handlers.pytree_handler.PyTreeHandler", "metadata": "orbax.checkpoint.experimental.v1._src.handlers.json_handler.JsonHandler", "descriptor": "orbax.checkpoint.experimental.v1._src.handlers.descriptor_handler.DescriptorHandler"}, "metrics": {}, "performance_metrics": {}, "init_timestamp_nsecs": 1772553340045294592, "commit_timestamp_nsecs": 1772553341362508761, "custom_metadata": {}} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/metadata/data.json b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/metadata/data.json new file mode 100644 index 000000000..7ac5d3905 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/metadata/data.json @@ -0,0 +1 @@ +{"metadata": "json_data"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/orbax.checkpoint b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/orbax.checkpoint new file mode 100644 index 000000000..e69de29bb diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/_METADATA new file mode 100644 index 000000000..58dab14f3 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/_METADATA @@ -0,0 +1 @@ +{"tree_metadata": {"('a',)": {"key_metadata": [{"key": "a", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [8]}}, "('b', 'c')": {"key_metadata": [{"key": "b", "key_type": 2}, {"key": "c", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [3]}}}, "use_ocdbt": true, "use_zarr3": true, "store_array_data_equal_to_fill_value": true, "custom_metadata": null} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/_sharding b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/_sharding new file mode 100644 index 000000000..af17d0bcf --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/_sharding @@ -0,0 +1 @@ +{"YQ==":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}","Yi5j":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/array_metadatas/process_0 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/array_metadatas/process_0 new file mode 100644 index 000000000..9e1980540 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/array_metadatas/process_0 @@ -0,0 +1 @@ +{"array_metadatas": [{"array_metadata": {"param_name": "a", "write_shape": [8], "chunk_shape": [8], "ext_metadata": null}}, {"array_metadata": {"param_name": "b.c", "write_shape": [3], "chunk_shape": [3], "ext_metadata": null}}]} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/d/921d08d493a0394ca3d5a545160cb41b b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/d/921d08d493a0394ca3d5a545160cb41b new file mode 100644 index 0000000000000000000000000000000000000000..dc3b09d1bcba56661f9ea0874df1c663aa40b485 GIT binary patch literal 377 zcmV-<0fznz+aTU~0RR91000000VuUE{a{!F?Fs;P5f*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..051dcb488e5e7f1f3acf7baa5ccb025729fae09b GIT binary patch literal 113 zcmd4P z^ev4HQw%IpOe~EP4U8>Kk`s+nOcPB_ObyKpl9NmflNdote=@QBWMbIu^C;nd{7eZ3 I!37<401-DJrT_o{ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/2c3c9c7e9dcbbd47a5178e2ab7104503 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/2c3c9c7e9dcbbd47a5178e2ab7104503 new file mode 100644 index 0000000000000000000000000000000000000000..d610a0fd3fff9aedfb16b97d8c1e10bae28d26e3 GIT binary patch literal 293 zcmV+=0owiy+aTU00RR91000000VuUE{b1w*O$Y#D4=^X7CCvf<|NsA>p=N*D?y^3S zw)>OTTF55b_P>xNTK8KF>im1fiWVs)sZ2v;9UZ;VZruj?Xh41E)5UtvAxA$X$?lC@ zDz)uuRpN7YNUYg9*v9TC@w~~%Na}AF`;Im~Mbw!Y7q;kmT-hkTPfGW$&gvR3LOrr= zP`;_iHb*^S*C69v%`WJ9>zm2;)t6B|dJ+T(^)*l>GIUaVCJtf9?x;7{$y#_S?9Oo% z8ifWkC>X{9L$@*nGyvcr97h@ez>^rDUV)Su->_UW1HTrBuFWw@&TWI?F~`O+mbE!( r4ZCa>)L^m>ViRWkNMkmLDq3tH90+46sU9IysJ2E^5U|ZVBWH>Otrdio literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/3759038651edd833b9ae15e868698302 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/ocdbt.process_0/d/3759038651edd833b9ae15e868698302 new file mode 100644 index 0000000000000000000000000000000000000000..56400eb4d3a9a93aae661df33e9c18775ed2f8a6 GIT binary patch literal 358 zcmV-s0h#^`+aTU%0RR91000000VuUE{a`2qRSE#c5j`<*wP_Cg|NZ}eaP|M~)lajv z4)ncCvHSb6e`}#l_OJgg;CA4H|6Ms%z^`e0E@5$yF0ME zi`^C2-NYgg490*)z`^b+GK!2s(;AW}DMMpUzBroJutC9M6N=sZw1eVvvc+anQ`Gdy zFoJr1y(=8Arbq&0y&HH!qkNTT1idH9cFeka6JnGY1?}RyicEKvUYvE9ngPdBa*C{Cec)VnfzxYbPs=0*>QUu1xu`tE)>qC%2RF%CX)NWDA4vJy(A? zHNH!gab?$R@`O%r52ww>9s(dBP=X<3NH_2#2I>`3W?aH@kr@$L9JZGH6ZJNO_=#34K|317JI@GwwSf*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_has_metadata/state/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..a12c0f229e0ae5a1988c4cca0bf1b25cf5554891 GIT binary patch literal 202 zcmV;*05$&%+d3-B00000000000VuUE{UE@71pp#TC@7#A+Ie_q`TpiiKAR<4G*W?q zn*DNfE%Lu_cXw~D>~y10naW3GA}Opm@{t7#7Bb)aKyMo{-gUvvU9_ksFA z_pLY;os|7-cRH`By|Ogjf4|PI zkM`AAy)NdNd07Oy5i|3FFcJ(6K*NbbMnnYyQw|Uf4;U0069EGNE1_nMV%R~D0wD!j EfE8y|vj6}9 literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/_CHECKPOINT_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/_CHECKPOINT_METADATA new file mode 100644 index 000000000..fa2f0ec36 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/_CHECKPOINT_METADATA @@ -0,0 +1 @@ +{"item_handlers": {"state": "orbax.checkpoint.experimental.v1._src.handlers.pytree_handler.PyTreeHandler", "metadata": "orbax.checkpoint.experimental.v1._src.handlers.json_handler.JsonHandler", "descriptor": "orbax.checkpoint.experimental.v1._src.handlers.descriptor_handler.DescriptorHandler"}, "metrics": {}, "performance_metrics": {}, "init_timestamp_nsecs": 1772553341388243456, "commit_timestamp_nsecs": 1772553341470167847, "custom_metadata": {}} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/metadata/data.json b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/metadata/data.json new file mode 100644 index 000000000..7ac5d3905 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/metadata/data.json @@ -0,0 +1 @@ +{"metadata": "json_data"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/orbax.checkpoint b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/orbax.checkpoint new file mode 100644 index 000000000..e69de29bb diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/_sharding b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/_sharding new file mode 100644 index 000000000..af17d0bcf --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/_sharding @@ -0,0 +1 @@ +{"YQ==":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}","Yi5j":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/array_metadatas/process_0 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/array_metadatas/process_0 new file mode 100644 index 000000000..9e1980540 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/array_metadatas/process_0 @@ -0,0 +1 @@ +{"array_metadatas": [{"array_metadata": {"param_name": "a", "write_shape": [8], "chunk_shape": [8], "ext_metadata": null}}, {"array_metadata": {"param_name": "b.c", "write_shape": [3], "chunk_shape": [3], "ext_metadata": null}}]} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/d/d4ad3d69c4c1daf2d00f57425b2a3031 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/d/d4ad3d69c4c1daf2d00f57425b2a3031 new file mode 100644 index 0000000000000000000000000000000000000000..dc3b09d1bcba56661f9ea0874df1c663aa40b485 GIT binary patch literal 377 zcmV-<0fznz+aTU~0RR91000000VuUE{a{!F?Fs;P5f*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..10c88d26473b5bb2145db68af2cdc56ee2f15ed1 GIT binary patch literal 113 zcmdml2M5v zML)$PF~vB=%re;|*)SzB%_zmdAkEa=#K<(sDACx!*pLyV^d}R`PbP*O&E)j^@iQeD JetW21003GBA!Yyo literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/4e0454187753b946c545d1721292e666 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/4e0454187753b946c545d1721292e666 new file mode 100644 index 0000000000000000000000000000000000000000..0ef18233ee5d65a65bb028f647a7707c6d1e9903 GIT binary patch literal 272 zcmV+r0q_0{+aTT$0RR91000000VuUE{b2F{r3U~q4=*N=C(Qx>|NsAgk=Pm;my~9S zwCzv2k^U7eTR!LzOw;#m(ijXnT-6pL2S?H9ZD-tGZ&ph0?9DH4j%^jV!E#3n< zRJ&euQrWHs{ouBq;!VpYXTH_RWBcfrXYRjWBe(DYSYJH@HC8FLG z0So*f!a%n&1S$Yf6aff*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/8de9f30144eba86fadf966b87d206dd1 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/8de9f30144eba86fadf966b87d206dd1 new file mode 100644 index 0000000000000000000000000000000000000000..d610a0fd3fff9aedfb16b97d8c1e10bae28d26e3 GIT binary patch literal 293 zcmV+=0owiy+aTU00RR91000000VuUE{b1w*O$Y#D4=^X7CCvf<|NsA>p=N*D?y^3S zw)>OTTF55b_P>xNTK8KF>im1fiWVs)sZ2v;9UZ;VZruj?Xh41E)5UtvAxA$X$?lC@ zDz)uuRpN7YNUYg9*v9TC@w~~%Na}AF`;Im~Mbw!Y7q;kmT-hkTPfGW$&gvR3LOrr= zP`;_iHb*^S*C69v%`WJ9>zm2;)t6B|dJ+T(^)*l>GIUaVCJtf9?x;7{$y#_S?9Oo% z8ifWkC>X{9L$@*nGyvcr97h@ez>^rDUV)Su->_UW1HTrBuFWw@&TWI?F~`O+mbE!( r4ZCa>)L^m>ViRWkNMkmLDq3tH90+46sU9IysJ2E^5U|ZVBWH>Otrdio literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/d336e211f1af57fa2fee18b8069e134e b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/checkpoint_metadata_present/pytree_checkpointable_missing_metadata/state/ocdbt.process_0/d/d336e211f1af57fa2fee18b8069e134e new file mode 100644 index 0000000000000000000000000000000000000000..56400eb4d3a9a93aae661df33e9c18775ed2f8a6 GIT binary patch literal 358 zcmV-s0h#^`+aTU%0RR91000000VuUE{a`2qRSE#c5j`<*wP_Cg|NZ}eaP|M~)lajv z4)ncCvHSb6e`}#l_OJgg;CA4H|6Ms%z^`e0E@5$yF0ME zi`^C2-NYgg490*)z`^b+GK!2s(;AW}DMMpUzBroJutC9M6N=sZw1eVvvc+anQ`Gdy zFoJr1y(=8Arbq&0y&HH!qkNTT1idH9cFeka6JnGY1?}RyicEKvUYvE9ngPdBa*C{Cec)VnfzxYbPs=0*>QUu1xu`tE)>qC%2RF%CX)NWDA4vJy(A? zHNH!gab?$R@`O%r52ww>9s(dBP=X<3NH_2#2I>`3W?aH@kr@$L9JZGH6ZJNO_=#34K|317JI@GwwSn(05M-u<5JHV3$*8CRRFFpI!s1|K mf`SmBz(El(SO^FJK*mZW2=GE+XYf^!gTsXEgYpD@Jof*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/state/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/state/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..08e767a1dc5587c60121db354c6384fa99df1e7b GIT binary patch literal 113 zcmdmx!!BpOR*fDnkQD!=dZ?EQ}zPj7khC z`i917mWCf*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/state/ocdbt.process_0/d/322d1d8343b8165a88d7928e8295f2ed b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/state/ocdbt.process_0/d/322d1d8343b8165a88d7928e8295f2ed new file mode 100644 index 0000000000000000000000000000000000000000..0ef18233ee5d65a65bb028f647a7707c6d1e9903 GIT binary patch literal 272 zcmV+r0q_0{+aTT$0RR91000000VuUE{b2F{r3U~q4=*N=C(Qx>|NsAgk=Pm;my~9S zwCzv2k^U7eTR!LzOw;#m(ijXnT-6pL2S?H9ZD-tGZ&ph0?9DH4j%^jV!E#3n< zRJ&euQrWHs{ouBq;!VpYXTH_RWBcfrXYRjWBe(DYSYJH@HC8FLG z0So*f!a%n&1S$Yf6afp=N*D?y^3S zw)>OTTF55b_P>xNTK8KF>im1fiWVs)sZ2v;9UZ;VZruj?Xh41E)5UtvAxA$X$?lC@ zDz)uuRpN7YNUYg9*v9TC@w~~%Na}AF`;Im~Mbw!Y7q;kmT-hkTPfGW$&gvR3LOrr= zP`;_iHb*^S*C69v%`WJ9>zm2;)t6B|dJ+T(^)*l>GIUaVCJtf9?x;7{$y#_S?9Oo% z8ifWkC>X{9L$@*nGyvcr97h@ez>^rDUV)Su->_UW1HTrBuFWw@&TWI?F~`O+mbE!( r4ZCa>)L^m>ViRWkNMkmLDq3tH90+46sU9IysJ2E^5U|ZVBWH>Otrdio literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/state/ocdbt.process_0/d/d0cad5f7d0358dddc5a57ed695adf13b b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_general_alterations/dummy_checkpointable_added/state/ocdbt.process_0/d/d0cad5f7d0358dddc5a57ed695adf13b new file mode 100644 index 0000000000000000000000000000000000000000..56400eb4d3a9a93aae661df33e9c18775ed2f8a6 GIT binary patch literal 358 zcmV-s0h#^`+aTU%0RR91000000VuUE{a`2qRSE#c5j`<*wP_Cg|NZ}eaP|M~)lajv z4)ncCvHSb6e`}#l_OJgg;CA4H|6Ms%z^`e0E@5$yF0ME zi`^C2-NYgg490*)z`^b+GK!2s(;AW}DMMpUzBroJutC9M6N=sZw1eVvvc+anQ`Gdy zFoJr1y(=8Arbq&0y&HH!qkNTT1idH9cFeka6JnGY1?}RyicEKvUYvE9ngPdBa*C{Cec)VnfzxYbPs=0*>QUu1xu`tE)>qC%2RF%CX)NWDA4vJy(A? zHNH!gab?$R@`O%r52ww>9s(dBP=X<3NH_2#2I>`3W?aH@kr@$L9JZGH6ZJNO_=#34K|317JI@GwwS=4sX_No} literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/_CHECKPOINT_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/_CHECKPOINT_METADATA new file mode 100644 index 000000000..069c00b21 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/_CHECKPOINT_METADATA @@ -0,0 +1 @@ +{"item_handlers": {"state": "orbax.checkpoint.experimental.v1._src.handlers.pytree_handler.PyTreeHandler", "metadata": "orbax.checkpoint.experimental.v1._src.handlers.json_handler.JsonHandler", "descriptor": "orbax.checkpoint.experimental.v1._src.handlers.descriptor_handler.DescriptorHandler"}, "metrics": {}, "performance_metrics": {}, "init_timestamp_nsecs": 1772553342843079424, "commit_timestamp_nsecs": 1772553342932591140, "custom_metadata": {}} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/metadata/data.json b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/metadata/data.json new file mode 100644 index 000000000..7ac5d3905 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/metadata/data.json @@ -0,0 +1 @@ +{"metadata": "json_data"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/orbax.checkpoint b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/orbax.checkpoint new file mode 100644 index 000000000..e69de29bb diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/_METADATA new file mode 100644 index 000000000..58dab14f3 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/_METADATA @@ -0,0 +1 @@ +{"tree_metadata": {"('a',)": {"key_metadata": [{"key": "a", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [8]}}, "('b', 'c')": {"key_metadata": [{"key": "b", "key_type": 2}, {"key": "c", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [3]}}}, "use_ocdbt": true, "use_zarr3": true, "store_array_data_equal_to_fill_value": true, "custom_metadata": null} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/_sharding b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/_sharding new file mode 100644 index 000000000..af17d0bcf --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/_sharding @@ -0,0 +1 @@ +{"YQ==":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}","Yi5j":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/array_metadatas/process_0 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/array_metadatas/process_0 new file mode 100644 index 000000000..9e1980540 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/array_metadatas/process_0 @@ -0,0 +1 @@ +{"array_metadatas": [{"array_metadata": {"param_name": "a", "write_shape": [8], "chunk_shape": [8], "ext_metadata": null}}, {"array_metadata": {"param_name": "b.c", "write_shape": [3], "chunk_shape": [3], "ext_metadata": null}}]} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..af810a7715bc1e2d146255d9ee99a6fc3d385c72 GIT binary patch literal 113 zcmd=}gEJ^jHi3 zy*sh{`>}s(p-t9@37t4==ifcVWCBPSgoW`j$}s>d04o6R2aeDvU*-8YuZgnVvhLn= zm?S=tcFXQ6E)0qbgK11#K%%4$i#fT%Fu_29z$$hF5abPOeemm%pNs8Sr>&i=@ZqMN z6Q7eUHiKG{qECj8)AQ>+;rJ9i8XPM%zC)F9W!G$Sghp=-)n;Q5?c#fSM0b@|)H-ZR z!>6W@oAt>Sysz>^rDUI8hCfrw9KNKPRB#^PF-@(nn2ZH`fLZW|1bIW~^5tj$4d*kH4u p29tFVn=s=?8nZ!E(P9JPK-f|VyxQau(uHcEG{tj@IR@J*XDHD*nsNXD literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/d/ad7295621bcdf89c021805edb9779740 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/d/ad7295621bcdf89c021805edb9779740 new file mode 100644 index 0000000000000000000000000000000000000000..dc3b09d1bcba56661f9ea0874df1c663aa40b485 GIT binary patch literal 377 zcmV-<0fznz+aTU~0RR91000000VuUE{a{!F?Fs;P5f*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/d/b8318d5446a76228a96bec7df8ec1298 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/d/b8318d5446a76228a96bec7df8ec1298 new file mode 100644 index 0000000000000000000000000000000000000000..d610a0fd3fff9aedfb16b97d8c1e10bae28d26e3 GIT binary patch literal 293 zcmV+=0owiy+aTU00RR91000000VuUE{b1w*O$Y#D4=^X7CCvf<|NsA>p=N*D?y^3S zw)>OTTF55b_P>xNTK8KF>im1fiWVs)sZ2v;9UZ;VZruj?Xh41E)5UtvAxA$X$?lC@ zDz)uuRpN7YNUYg9*v9TC@w~~%Na}AF`;Im~Mbw!Y7q;kmT-hkTPfGW$&gvR3LOrr= zP`;_iHb*^S*C69v%`WJ9>zm2;)t6B|dJ+T(^)*l>GIUaVCJtf9?x;7{$y#_S?9Oo% z8ifWkC>X{9L$@*nGyvcr97h@ez>^rDUV)Su->_UW1HTrBuFWw@&TWI?F~`O+mbE!( r4ZCa>)L^m>ViRWkNMkmLDq3tH90+46sU9IysJ2E^5U|ZVBWH>Otrdio literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_d/state/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..1edcfd28677aaedd83762f623c8990232428db53 GIT binary patch literal 207 zcmV;=05Jay+d3-G00000000000VuUE{UE@l1pp$8DK3CH>6j0W12+l-w}6LaO z2rVg4Lge0(Yh(Z?rQCb(y)6e3P9XpfcBM@Lk60*~2!IKT%LUR9u~0G)3l{?a9Vinc zG0E`!kFtT5mx|6lt`rnps^ zazCq&VwMz(EJC<#(*GrrfK2rN4aWo{QF&C3;6Ra}FrWqn1P=%Bkx>x?04t%gMn?D` JpaF0b^Z3wEQY`=g literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/_CHECKPOINT_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/_CHECKPOINT_METADATA new file mode 100644 index 000000000..d33ee4888 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/_CHECKPOINT_METADATA @@ -0,0 +1 @@ +{"item_handlers": {"state": "orbax.checkpoint.experimental.v1._src.handlers.pytree_handler.PyTreeHandler", "metadata": "orbax.checkpoint.experimental.v1._src.handlers.json_handler.JsonHandler", "descriptor": "orbax.checkpoint.experimental.v1._src.handlers.descriptor_handler.DescriptorHandler"}, "metrics": {}, "performance_metrics": {}, "init_timestamp_nsecs": 1772553342735884288, "commit_timestamp_nsecs": 1772553342818259322, "custom_metadata": {}} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/metadata/data.json b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/metadata/data.json new file mode 100644 index 000000000..7ac5d3905 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/metadata/data.json @@ -0,0 +1 @@ +{"metadata": "json_data"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/orbax.checkpoint b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/orbax.checkpoint new file mode 100644 index 000000000..e69de29bb diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/_METADATA new file mode 100644 index 000000000..58dab14f3 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/_METADATA @@ -0,0 +1 @@ +{"tree_metadata": {"('a',)": {"key_metadata": [{"key": "a", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [8]}}, "('b', 'c')": {"key_metadata": [{"key": "b", "key_type": 2}, {"key": "c", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [3]}}}, "use_ocdbt": true, "use_zarr3": true, "store_array_data_equal_to_fill_value": true, "custom_metadata": null} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/_sharding b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/_sharding new file mode 100644 index 000000000..af17d0bcf --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/_sharding @@ -0,0 +1 @@ +{"YQ==":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}","Yi5j":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/array_metadatas/process_0 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/array_metadatas/process_0 new file mode 100644 index 000000000..9e1980540 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/array_metadatas/process_0 @@ -0,0 +1 @@ +{"array_metadatas": [{"array_metadata": {"param_name": "a", "write_shape": [8], "chunk_shape": [8], "ext_metadata": null}}, {"array_metadata": {"param_name": "b.c", "write_shape": [3], "chunk_shape": [3], "ext_metadata": null}}]} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/d/91a1130caecb555e368b09b8c2da6d18 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/d/91a1130caecb555e368b09b8c2da6d18 new file mode 100644 index 0000000000000000000000000000000000000000..dc3b09d1bcba56661f9ea0874df1c663aa40b485 GIT binary patch literal 377 zcmV-<0fznz+aTU~0RR91000000VuUE{a{!F?Fs;P5f*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_dir_ocdbt.process_0/state/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..e7758eaf03e227cc1489d2c5ff860298dc8b79a5 GIT binary patch literal 113 zcmdf*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/ocdbt.process_0/d/194c2453a1371c4d329747c76b2e7fbc b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/ocdbt.process_0/d/194c2453a1371c4d329747c76b2e7fbc new file mode 100644 index 0000000000000000000000000000000000000000..dc3b09d1bcba56661f9ea0874df1c663aa40b485 GIT binary patch literal 377 zcmV-<0fznz+aTU~0RR91000000VuUE{a{!F?Fs;P5f*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/ocdbt.process_0/d/1b9d325763818f7e996f9b146ccc0154 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/ocdbt.process_0/d/1b9d325763818f7e996f9b146ccc0154 new file mode 100644 index 0000000000000000000000000000000000000000..d610a0fd3fff9aedfb16b97d8c1e10bae28d26e3 GIT binary patch literal 293 zcmV+=0owiy+aTU00RR91000000VuUE{b1w*O$Y#D4=^X7CCvf<|NsA>p=N*D?y^3S zw)>OTTF55b_P>xNTK8KF>im1fiWVs)sZ2v;9UZ;VZruj?Xh41E)5UtvAxA$X$?lC@ zDz)uuRpN7YNUYg9*v9TC@w~~%Na}AF`;Im~Mbw!Y7q;kmT-hkTPfGW$&gvR3LOrr= zP`;_iHb*^S*C69v%`WJ9>zm2;)t6B|dJ+T(^)*l>GIUaVCJtf9?x;7{$y#_S?9Oo% z8ifWkC>X{9L$@*nGyvcr97h@ez>^rDUV)Su->_UW1HTrBuFWw@&TWI?F~`O+mbE!( r4ZCa>)L^m>ViRWkNMkmLDq3tH90+46sU9IysJ2E^5U|ZVBWH>Otrdio literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/ocdbt.process_0/d/c97a1234f11170dc7627bdd492c25084 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/critical_metadata_alterations/missing_pytree_data_file_manifest.ocdbt/state/ocdbt.process_0/d/c97a1234f11170dc7627bdd492c25084 new file mode 100644 index 0000000000000000000000000000000000000000..56400eb4d3a9a93aae661df33e9c18775ed2f8a6 GIT binary patch literal 358 zcmV-s0h#^`+aTU%0RR91000000VuUE{a`2qRSE#c5j`<*wP_Cg|NZ}eaP|M~)lajv z4)ncCvHSb6e`}#l_OJgg;CA4H|6Ms%z^`e0E@5$yF0ME zi`^C2-NYgg490*)z`^b+GK!2s(;AW}DMMpUzBroJutC9M6N=sZw1eVvvc+anQ`Gdy zFoJr1y(=8Arbq&0y&HH!qkNTT1idH9cFeka6JnGY1?}RyicEKvUYvE9ngPdBa*C{Cec)VnfzxYbPs=0*>QUu1xu`tE)>qC%2RF%CX)NWDA4vJy(A? zHNH!gab?$R@`O%r52ww>9s(dBP=X<3NH_2#2I>`3W?aH@kr@$L9JZGH6ZJNO_=#34K|317JI@GwwSf*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..8307701e9a10b3fdaad4af8e18b8126984cae692 GIT binary patch literal 113 zcmd4R_nv!N|nqpySY?fqTVw`Gfo@{23n#>4N`jd&}ClkZ04Vx$5kDn>Q J;PPr08vrvOA+!Jh literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/d/113b8e7d9eac57427f9101f12256f073 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/d/113b8e7d9eac57427f9101f12256f073 new file mode 100644 index 0000000000000000000000000000000000000000..d610a0fd3fff9aedfb16b97d8c1e10bae28d26e3 GIT binary patch literal 293 zcmV+=0owiy+aTU00RR91000000VuUE{b1w*O$Y#D4=^X7CCvf<|NsA>p=N*D?y^3S zw)>OTTF55b_P>xNTK8KF>im1fiWVs)sZ2v;9UZ;VZruj?Xh41E)5UtvAxA$X$?lC@ zDz)uuRpN7YNUYg9*v9TC@w~~%Na}AF`;Im~Mbw!Y7q;kmT-hkTPfGW$&gvR3LOrr= zP`;_iHb*^S*C69v%`WJ9>zm2;)t6B|dJ+T(^)*l>GIUaVCJtf9?x;7{$y#_S?9Oo% z8ifWkC>X{9L$@*nGyvcr97h@ez>^rDUV)Su->_UW1HTrBuFWw@&TWI?F~`O+mbE!( r4ZCa>)L^m>ViRWkNMkmLDq3tH90+46sU9IysJ2E^5U|ZVBWH>Otrdio literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/d/9436c28057afba0d610d23e485ccc013 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/d/9436c28057afba0d610d23e485ccc013 new file mode 100644 index 0000000000000000000000000000000000000000..dc3b09d1bcba56661f9ea0874df1c663aa40b485 GIT binary patch literal 377 zcmV-<0fznz+aTU~0RR91000000VuUE{a{!F?Fs;P5f*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/d/c531b7784ba5fade71eab9525ef65509 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_commit_timestamp_nsecs_metadata/state/ocdbt.process_0/d/c531b7784ba5fade71eab9525ef65509 new file mode 100644 index 0000000000000000000000000000000000000000..0ef18233ee5d65a65bb028f647a7707c6d1e9903 GIT binary patch literal 272 zcmV+r0q_0{+aTT$0RR91000000VuUE{b2F{r3U~q4=*N=C(Qx>|NsAgk=Pm;my~9S zwCzv2k^U7eTR!LzOw;#m(ijXnT-6pL2S?H9ZD-tGZ&ph0?9DH4j%^jV!E#3n< zRJ&euQrWHs{ouBq;!VpYXTH_RWBcfrXYRjWBe(DYSYJH@HC8FLG z0So*f!a%n&1S$Yf6afs%z^`e0E@5$yF0ME zi`^C2-NYgg490*)z`^b+GK!2s(;AW}DMMpUzBroJutC9M6N=sZw1eVvvc+anQ`Gdy zFoJr1y(=8Arbq&0y&HH!qkNTT1idH9cFeka6JnGY1?}RyicEKvUYvE9ngPdBa*C{Cec)VnfzxYbPs=0*>QUu1xu`tE)>qC%2RF%CX)NWDA4vJy(A? zHNH!gab?$R@`O%r52ww>9s(dBP=X<3NH_2#2I>`3W?aH@kr@$L9JZGH6ZJNO_=#34K|317JI@GwwSlf*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..b2053e18d74849b10a49a510317519a06310f602 GIT binary patch literal 113 zcmdt^Kbcs5GBGG59i4SQex?M& I_70xi0M4`@^#A|> literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/ocdbt.process_0/d/161ec67cc3a9ff8f39cfc336e9b9890d b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/ocdbt.process_0/d/161ec67cc3a9ff8f39cfc336e9b9890d new file mode 100644 index 0000000000000000000000000000000000000000..56400eb4d3a9a93aae661df33e9c18775ed2f8a6 GIT binary patch literal 358 zcmV-s0h#^`+aTU%0RR91000000VuUE{a`2qRSE#c5j`<*wP_Cg|NZ}eaP|M~)lajv z4)ncCvHSb6e`}#l_OJgg;CA4H|6Ms%z^`e0E@5$yF0ME zi`^C2-NYgg490*)z`^b+GK!2s(;AW}DMMpUzBroJutC9M6N=sZw1eVvvc+anQ`Gdy zFoJr1y(=8Arbq&0y&HH!qkNTT1idH9cFeka6JnGY1?}RyicEKvUYvE9ngPdBa*C{Cec)VnfzxYbPs=0*>QUu1xu`tE)>qC%2RF%CX)NWDA4vJy(A? zHNH!gab?$R@`O%r52ww>9s(dBP=X<3NH_2#2I>`3W?aH@kr@$L9JZGH6ZJNO_=#34K|317JI@GwwS|NsAgk=Pm;my~9S zwCzv2k^U7eTR!LzOw;#m(ijXnT-6pL2S?H9ZD-tGZ&ph0?9DH4j%^jV!E#3n< zRJ&euQrWHs{ouBq;!VpYXTH_RWBcfrXYRjWBe(DYSYJH@HC8FLG z0So*f!a%n&1S$Yf6aff*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/ocdbt.process_0/d/afa485b31165d6b61f5166c5c4d5b52c b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/ocdbt.process_0/d/afa485b31165d6b61f5166c5c4d5b52c new file mode 100644 index 0000000000000000000000000000000000000000..d610a0fd3fff9aedfb16b97d8c1e10bae28d26e3 GIT binary patch literal 293 zcmV+=0owiy+aTU00RR91000000VuUE{b1w*O$Y#D4=^X7CCvf<|NsA>p=N*D?y^3S zw)>OTTF55b_P>xNTK8KF>im1fiWVs)sZ2v;9UZ;VZruj?Xh41E)5UtvAxA$X$?lC@ zDz)uuRpN7YNUYg9*v9TC@w~~%Na}AF`;Im~Mbw!Y7q;kmT-hkTPfGW$&gvR3LOrr= zP`;_iHb*^S*C69v%`WJ9>zm2;)t6B|dJ+T(^)*l>GIUaVCJtf9?x;7{$y#_S?9Oo% z8ifWkC>X{9L$@*nGyvcr97h@ez>^rDUV)Su->_UW1HTrBuFWw@&TWI?F~`O+mbE!( r4ZCa>)L^m>ViRWkNMkmLDq3tH90+46sU9IysJ2E^5U|ZVBWH>Otrdio literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_custom_metadata_metadata/state/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..3c7e1aab92e4b2a407d45a3d4036f2c5c4b611a9 GIT binary patch literal 237 zcmVf*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..056ce4232a0783a6cf9934d1e1805885feb84a6d GIT binary patch literal 113 zcmdJ)W|cGF>LjxL^j(yH<^dVfH=zmS*P^yW+QDyqkf*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/ocdbt.process_0/d/ba0176b263a27088794c31b0b5d17629 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/ocdbt.process_0/d/ba0176b263a27088794c31b0b5d17629 new file mode 100644 index 0000000000000000000000000000000000000000..d610a0fd3fff9aedfb16b97d8c1e10bae28d26e3 GIT binary patch literal 293 zcmV+=0owiy+aTU00RR91000000VuUE{b1w*O$Y#D4=^X7CCvf<|NsA>p=N*D?y^3S zw)>OTTF55b_P>xNTK8KF>im1fiWVs)sZ2v;9UZ;VZruj?Xh41E)5UtvAxA$X$?lC@ zDz)uuRpN7YNUYg9*v9TC@w~~%Na}AF`;Im~Mbw!Y7q;kmT-hkTPfGW$&gvR3LOrr= zP`;_iHb*^S*C69v%`WJ9>zm2;)t6B|dJ+T(^)*l>GIUaVCJtf9?x;7{$y#_S?9Oo% z8ifWkC>X{9L$@*nGyvcr97h@ez>^rDUV)Su->_UW1HTrBuFWw@&TWI?F~`O+mbE!( r4ZCa>)L^m>ViRWkNMkmLDq3tH90+46sU9IysJ2E^5U|ZVBWH>Otrdio literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/ocdbt.process_0/d/d0a2406641f7d83b59efb67130cafdbe b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/ocdbt.process_0/d/d0a2406641f7d83b59efb67130cafdbe new file mode 100644 index 0000000000000000000000000000000000000000..0f5426c04addc6f2ec890c22c637f378738a6ba3 GIT binary patch literal 343 zcmV-d0jT~A+aTUo0RR91000000VuUE{a_RW-3b6D5jrk_H_ZVv03tD>=}gEJ^jHi3 zy*sh{`>}s(p-t9@37t4==ifcVWCBPSgoW`j$}s>d04o6R2aeDvU*-8YuZgnVvhLn= zm?S=tcFXQ6E)0qbgK11#K%%4$i#fT%Fu_29z$$hF5abPOeemm%pNs8Sr>&i=@ZqMN z6Q7eUHiKG{qECj8)AQ>+;rJ9i8XPM%zC)F9W!G$Sghp=-)n;Q5?c#fSM0b@|)H-ZR z!>6W@oAt>Sysz>^rDUI8hCfrw9KNKPRB#^PF-@(nn2ZH`fLZW|1bIW~^5tj$4d*kH4u p29tFVn=s=?8nZ!E(P9JPK-f|VyxQau(uHcEG{tj@IR@J*XDHD*nsNXD literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_init_timestamp_nsecs_metadata/state/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..c6b37e9863b70ae3dd4db837be8b82f73f539809 GIT binary patch literal 235 zcmVb-z31Tx#UxgmAUyx9;!pRSrMuf*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..441438bc0912fcb9410673c9b7b44b63ea5a6a1a GIT binary patch literal 113 zcmdp=N*D?y^3S zw)>OTTF55b_P>xNTK8KF>im1fiWVs)sZ2v;9UZ;VZruj?Xh41E)5UtvAxA$X$?lC@ zDz)uuRpN7YNUYg9*v9TC@w~~%Na}AF`;Im~Mbw!Y7q;kmT-hkTPfGW$&gvR3LOrr= zP`;_iHb*^S*C69v%`WJ9>zm2;)t6B|dJ+T(^)*l>GIUaVCJtf9?x;7{$y#_S?9Oo% z8ifWkC>X{9L$@*nGyvcr97h@ez>^rDUV)Su->_UW1HTrBuFWw@&TWI?F~`O+mbE!( r4ZCa>)L^m>ViRWkNMkmLDq3tH90+46sU9IysJ2E^5U|ZVBWH>Otrdio literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/ocdbt.process_0/d/0fd70a785df4c4731116abdbd7f19b4a b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/ocdbt.process_0/d/0fd70a785df4c4731116abdbd7f19b4a new file mode 100644 index 0000000000000000000000000000000000000000..0ef18233ee5d65a65bb028f647a7707c6d1e9903 GIT binary patch literal 272 zcmV+r0q_0{+aTT$0RR91000000VuUE{b2F{r3U~q4=*N=C(Qx>|NsAgk=Pm;my~9S zwCzv2k^U7eTR!LzOw;#m(ijXnT-6pL2S?H9ZD-tGZ&ph0?9DH4j%^jV!E#3n< zRJ&euQrWHs{ouBq;!VpYXTH_RWBcfrXYRjWBe(DYSYJH@HC8FLG z0So*f!a%n&1S$Yf6afs%z^`e0E@5$yF0ME zi`^C2-NYgg490*)z`^b+GK!2s(;AW}DMMpUzBroJutC9M6N=sZw1eVvvc+anQ`Gdy zFoJr1y(=8Arbq&0y&HH!qkNTT1idH9cFeka6JnGY1?}RyicEKvUYvE9ngPdBa*C{Cec)VnfzxYbPs=0*>QUu1xu`tE)>qC%2RF%CX)NWDA4vJy(A? zHNH!gab?$R@`O%r52ww>9s(dBP=X<3NH_2#2I>`3W?aH@kr@$L9JZGH6ZJNO_=#34K|317JI@GwwSf*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_item_handlers_metadata/state/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..1bf6f2d8d21f9908c2bdf95d79802a45621f355e GIT binary patch literal 236 zcmV1_1I*E-j!b9S``IkY$MPKwzlBKyMsh z&&OEGl%#sBiBigxWZF`;J-Su8z}OD&Ew>EmL6KM(po~=!F<3}AAb3zD76lCl1ht_s zl!St4RAQV)F;4V_(UiTIJ?>m>`F%Nx^GQ|K&fl|Uk@r;C+V#2f!svBzHwn8%$fo=F zv6(TZu6dik&-HRY-<@pM=Du!oGwE{qeXH`W2p9AaNPvJ+jgwMJj006DCXPvpTplc* mr{MxHpcfGZm5B%dK*mZW2=GE+XYf@JL&JpZgYpC^1}ky~j%f*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..5a88ebaedae1bf2af7b2fa68edb5ed6513f775e9 GIT binary patch literal 113 zcmd4P z^ixbNER!t~6D<>y4N^>#lPuCqEK)4Z(vl5~&CM)Lj2J;me=@QBWMVjfqqpIH{7eZ3 IrxOcX0L{A~%>V!Z literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/ocdbt.process_0/d/02378f842ce9ba483ddbdcea54c7e4d9 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/ocdbt.process_0/d/02378f842ce9ba483ddbdcea54c7e4d9 new file mode 100644 index 0000000000000000000000000000000000000000..0f5426c04addc6f2ec890c22c637f378738a6ba3 GIT binary patch literal 343 zcmV-d0jT~A+aTUo0RR91000000VuUE{a_RW-3b6D5jrk_H_ZVv03tD>=}gEJ^jHi3 zy*sh{`>}s(p-t9@37t4==ifcVWCBPSgoW`j$}s>d04o6R2aeDvU*-8YuZgnVvhLn= zm?S=tcFXQ6E)0qbgK11#K%%4$i#fT%Fu_29z$$hF5abPOeemm%pNs8Sr>&i=@ZqMN z6Q7eUHiKG{qECj8)AQ>+;rJ9i8XPM%zC)F9W!G$Sghp=-)n;Q5?c#fSM0b@|)H-ZR z!>6W@oAt>Sysz>^rDUI8hCfrw9KNKPRB#^PF-@(nn2ZH`fLZW|1bIW~^5tj$4d*kH4u p29tFVn=s=?8nZ!E(P9JPK-f|VyxQau(uHcEG{tj@IR@J*XDHD*nsNXD literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/ocdbt.process_0/d/86f9fc38b98c6e9362b4b8f7d27931af b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/ocdbt.process_0/d/86f9fc38b98c6e9362b4b8f7d27931af new file mode 100644 index 0000000000000000000000000000000000000000..dc3b09d1bcba56661f9ea0874df1c663aa40b485 GIT binary patch literal 377 zcmV-<0fznz+aTU~0RR91000000VuUE{a{!F?Fs;P5f*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/ocdbt.process_0/d/e30cb27655f4581cf8ed5d8a0296a945 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/ocdbt.process_0/d/e30cb27655f4581cf8ed5d8a0296a945 new file mode 100644 index 0000000000000000000000000000000000000000..d610a0fd3fff9aedfb16b97d8c1e10bae28d26e3 GIT binary patch literal 293 zcmV+=0owiy+aTU00RR91000000VuUE{b1w*O$Y#D4=^X7CCvf<|NsA>p=N*D?y^3S zw)>OTTF55b_P>xNTK8KF>im1fiWVs)sZ2v;9UZ;VZruj?Xh41E)5UtvAxA$X$?lC@ zDz)uuRpN7YNUYg9*v9TC@w~~%Na}AF`;Im~Mbw!Y7q;kmT-hkTPfGW$&gvR3LOrr= zP`;_iHb*^S*C69v%`WJ9>zm2;)t6B|dJ+T(^)*l>GIUaVCJtf9?x;7{$y#_S?9Oo% z8ifWkC>X{9L$@*nGyvcr97h@ez>^rDUV)Su->_UW1HTrBuFWw@&TWI?F~`O+mbE!( r4ZCa>)L^m>ViRWkNMkmLDq3tH90+46sU9IysJ2E^5U|ZVBWH>Otrdio literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_metrics_metadata/state/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..b9eba60e02b01ceca11b978e88bb3ebfe22531ad GIT binary patch literal 208 zcmV;>05AUx+d3-H00000000000VuUE{UE@t1ps1;DldR3%>n#W!YK#bC{jcq-4T01 z742c7G9jTPP%h2Va6u68zd@=P zYEg*)%=JG~2C>DjadO@^Yq>K{maWNHa|uRA$@wOVU1~QME|{8P+2S%>6(`TO+)KK+ z*psngx7zg}%b3>Abt*ZM{ttl+sG|R88i_@M(x6ApsIai|q literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/_CHECKPOINT_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/_CHECKPOINT_METADATA new file mode 100644 index 000000000..c770b2207 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/_CHECKPOINT_METADATA @@ -0,0 +1 @@ +{"item_handlers": {"state": "orbax.checkpoint.experimental.v1._src.handlers.pytree_handler.PyTreeHandler", "metadata": "orbax.checkpoint.experimental.v1._src.handlers.json_handler.JsonHandler", "descriptor": "orbax.checkpoint.experimental.v1._src.handlers.descriptor_handler.DescriptorHandler"}, "metrics": {}, "init_timestamp_nsecs": 1772553341916108032, "commit_timestamp_nsecs": 1772553342001952808, "custom_metadata": {}} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/metadata/data.json b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/metadata/data.json new file mode 100644 index 000000000..7ac5d3905 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/metadata/data.json @@ -0,0 +1 @@ +{"metadata": "json_data"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/orbax.checkpoint b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/orbax.checkpoint new file mode 100644 index 000000000..e69de29bb diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/_METADATA new file mode 100644 index 000000000..58dab14f3 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/_METADATA @@ -0,0 +1 @@ +{"tree_metadata": {"('a',)": {"key_metadata": [{"key": "a", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [8]}}, "('b', 'c')": {"key_metadata": [{"key": "b", "key_type": 2}, {"key": "c", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [3]}}}, "use_ocdbt": true, "use_zarr3": true, "store_array_data_equal_to_fill_value": true, "custom_metadata": null} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/_sharding b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/_sharding new file mode 100644 index 000000000..af17d0bcf --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/_sharding @@ -0,0 +1 @@ +{"YQ==":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}","Yi5j":"{\"sharding_type\": \"SingleDeviceSharding\", \"device_str\": \"TFRT_CPU_0\"}"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/array_metadatas/process_0 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/array_metadatas/process_0 new file mode 100644 index 000000000..9e1980540 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/array_metadatas/process_0 @@ -0,0 +1 @@ +{"array_metadatas": [{"array_metadata": {"param_name": "a", "write_shape": [8], "chunk_shape": [8], "ext_metadata": null}}, {"array_metadata": {"param_name": "b.c", "write_shape": [3], "chunk_shape": [3], "ext_metadata": null}}]} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/d/dc7912ed9c73cf98fc61a7596458bce3 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/d/dc7912ed9c73cf98fc61a7596458bce3 new file mode 100644 index 0000000000000000000000000000000000000000..dc3b09d1bcba56661f9ea0874df1c663aa40b485 GIT binary patch literal 377 zcmV-<0fznz+aTU~0RR91000000VuUE{a{!F?Fs;P5f*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..11d8a8c31dd990ddbdb3ca929c6635e55d9f524a GIT binary patch literal 113 zcmdml2M5v zML#9k+|tk}HN`U7+&DSS(jqO{%rMd1)Y8nv)FLT4)tC{a^d}R`PbP-DZ&=&!$Ip~t Jh$~T?3ILQJB6I)% literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/ocdbt.process_0/d/87bb0d20fa744247dc2963c65f87bd50 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/ocdbt.process_0/d/87bb0d20fa744247dc2963c65f87bd50 new file mode 100644 index 0000000000000000000000000000000000000000..dc3b09d1bcba56661f9ea0874df1c663aa40b485 GIT binary patch literal 377 zcmV-<0fznz+aTU~0RR91000000VuUE{a{!F?Fs;P5f*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/ocdbt.process_0/d/964357ae2ad3016f477eef90920fae11 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/ocdbt.process_0/d/964357ae2ad3016f477eef90920fae11 new file mode 100644 index 0000000000000000000000000000000000000000..0ef18233ee5d65a65bb028f647a7707c6d1e9903 GIT binary patch literal 272 zcmV+r0q_0{+aTT$0RR91000000VuUE{b2F{r3U~q4=*N=C(Qx>|NsAgk=Pm;my~9S zwCzv2k^U7eTR!LzOw;#m(ijXnT-6pL2S?H9ZD-tGZ&ph0?9DH4j%^jV!E#3n< zRJ&euQrWHs{ouBq;!VpYXTH_RWBcfrXYRjWBe(DYSYJH@HC8FLG z0So*f!a%n&1S$Yf6afp=N*D?y^3S zw)>OTTF55b_P>xNTK8KF>im1fiWVs)sZ2v;9UZ;VZruj?Xh41E)5UtvAxA$X$?lC@ zDz)uuRpN7YNUYg9*v9TC@w~~%Na}AF`;Im~Mbw!Y7q;kmT-hkTPfGW$&gvR3LOrr= zP`;_iHb*^S*C69v%`WJ9>zm2;)t6B|dJ+T(^)*l>GIUaVCJtf9?x;7{$y#_S?9Oo% z8ifWkC>X{9L$@*nGyvcr97h@ez>^rDUV)Su->_UW1HTrBuFWw@&TWI?F~`O+mbE!( r4ZCa>)L^m>ViRWkNMkmLDq3tH90+46sU9IysJ2E^5U|ZVBWH>Otrdio literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/ocdbt.process_0/d/d9a66418253dec177e0e155287e9ab84 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_performance_metrics_metadata/state/ocdbt.process_0/d/d9a66418253dec177e0e155287e9ab84 new file mode 100644 index 0000000000000000000000000000000000000000..56400eb4d3a9a93aae661df33e9c18775ed2f8a6 GIT binary patch literal 358 zcmV-s0h#^`+aTU%0RR91000000VuUE{a`2qRSE#c5j`<*wP_Cg|NZ}eaP|M~)lajv z4)ncCvHSb6e`}#l_OJgg;CA4H|6Ms%z^`e0E@5$yF0ME zi`^C2-NYgg490*)z`^b+GK!2s(;AW}DMMpUzBroJutC9M6N=sZw1eVvvc+anQ`Gdy zFoJr1y(=8Arbq&0y&HH!qkNTT1idH9cFeka6JnGY1?}RyicEKvUYvE9ngPdBa*C{Cec)VnfzxYbPs=0*>QUu1xu`tE)>qC%2RF%CX)NWDA4vJy(A? zHNH!gab?$R@`O%r52ww>9s(dBP=X<3NH_2#2I>`3W?aH@kr@$L9JZGH6ZJNO_=#34K|317JI@GwwSv2;h0$@a6$+GVTEGK zF%%#X;+5Sy95jhy%S@76QUQCc5cLj@v_w)GxlkSp#iJ|}i~$UVkI04cAWR4*wqrBa zVHXs#jH+q_S*B_BT$9hzS}c+LXDFjuiE+ET7Mn4KPq9XdTXe|_Huw3i8pfm^vuvnM zDgS#qBNbhe?w4wBXvOzzE{Dong7G_bzndsU^xiW`bR4H(cNf*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..a8cfdec028e4f822f7a76e5a7e1bfecc5009c621 GIT binary patch literal 113 zcmdml2M5v zMc>TaB+bauIN8!D*~lO@#njZm!r0i<(9F=l*eK0BIhhfp^d}R`PbLPLPTN)Y<7Y}R JBsLpw0{}E1Ab9`) literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/ocdbt.process_0/d/010a6a1bf570e415819a3fd62ce2de82 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/ocdbt.process_0/d/010a6a1bf570e415819a3fd62ce2de82 new file mode 100644 index 0000000000000000000000000000000000000000..dc3b09d1bcba56661f9ea0874df1c663aa40b485 GIT binary patch literal 377 zcmV-<0fznz+aTU~0RR91000000VuUE{a{!F?Fs;P5f*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/ocdbt.process_0/d/1f380547fe67464ec4f1907f46e50ffb b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/ocdbt.process_0/d/1f380547fe67464ec4f1907f46e50ffb new file mode 100644 index 0000000000000000000000000000000000000000..d610a0fd3fff9aedfb16b97d8c1e10bae28d26e3 GIT binary patch literal 293 zcmV+=0owiy+aTU00RR91000000VuUE{b1w*O$Y#D4=^X7CCvf<|NsA>p=N*D?y^3S zw)>OTTF55b_P>xNTK8KF>im1fiWVs)sZ2v;9UZ;VZruj?Xh41E)5UtvAxA$X$?lC@ zDz)uuRpN7YNUYg9*v9TC@w~~%Na}AF`;Im~Mbw!Y7q;kmT-hkTPfGW$&gvR3LOrr= zP`;_iHb*^S*C69v%`WJ9>zm2;)t6B|dJ+T(^)*l>GIUaVCJtf9?x;7{$y#_S?9Oo% z8ifWkC>X{9L$@*nGyvcr97h@ez>^rDUV)Su->_UW1HTrBuFWw@&TWI?F~`O+mbE!( r4ZCa>)L^m>ViRWkNMkmLDq3tH90+46sU9IysJ2E^5U|ZVBWH>Otrdio literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/ocdbt.process_0/d/b51c8d43bf2215144457455d1a2c8d42 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_dir_array_metadatas/state/ocdbt.process_0/d/b51c8d43bf2215144457455d1a2c8d42 new file mode 100644 index 0000000000000000000000000000000000000000..56400eb4d3a9a93aae661df33e9c18775ed2f8a6 GIT binary patch literal 358 zcmV-s0h#^`+aTU%0RR91000000VuUE{a`2qRSE#c5j`<*wP_Cg|NZ}eaP|M~)lajv z4)ncCvHSb6e`}#l_OJgg;CA4H|6Ms%z^`e0E@5$yF0ME zi`^C2-NYgg490*)z`^b+GK!2s(;AW}DMMpUzBroJutC9M6N=sZw1eVvvc+anQ`Gdy zFoJr1y(=8Arbq&0y&HH!qkNTT1idH9cFeka6JnGY1?}RyicEKvUYvE9ngPdBa*C{Cec)VnfzxYbPs=0*>QUu1xu`tE)>qC%2RF%CX)NWDA4vJy(A? zHNH!gab?$R@`O%r52ww>9s(dBP=X<3NH_2#2I>`3W?aH@kr@$L9JZGH6ZJNO_=#34K|317JI@GwwSiHHLsEf0nS0wHivRYmPm?8HVk zsjAwf7=tX`+j)1hGh-j0mM>zD@qhVj{cb`09nEg-+I-i(-t)}flx#+<$$uck&$;Jv z{*hsWi{p|VEqA^Kp0DFq}u F8PVX@SH=JU literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/_CHECKPOINT_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/_CHECKPOINT_METADATA new file mode 100644 index 000000000..9030a5449 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/_CHECKPOINT_METADATA @@ -0,0 +1 @@ +{"item_handlers": {"state": "orbax.checkpoint.experimental.v1._src.handlers.pytree_handler.PyTreeHandler", "metadata": "orbax.checkpoint.experimental.v1._src.handlers.json_handler.JsonHandler", "descriptor": "orbax.checkpoint.experimental.v1._src.handlers.descriptor_handler.DescriptorHandler"}, "metrics": {}, "performance_metrics": {}, "init_timestamp_nsecs": 1772553342357513728, "commit_timestamp_nsecs": 1772553342440172755, "custom_metadata": {}} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/metadata/data.json b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/metadata/data.json new file mode 100644 index 000000000..7ac5d3905 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/metadata/data.json @@ -0,0 +1 @@ +{"metadata": "json_data"} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/orbax.checkpoint b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/orbax.checkpoint new file mode 100644 index 000000000..e69de29bb diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/_METADATA b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/_METADATA new file mode 100644 index 000000000..58dab14f3 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/_METADATA @@ -0,0 +1 @@ +{"tree_metadata": {"('a',)": {"key_metadata": [{"key": "a", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [8]}}, "('b', 'c')": {"key_metadata": [{"key": "b", "key_type": 2}, {"key": "c", "key_type": 2}], "value_metadata": {"value_type": "jax.Array", "skip_deserialize": false, "write_shape": [3]}}}, "use_ocdbt": true, "use_zarr3": true, "store_array_data_equal_to_fill_value": true, "custom_metadata": null} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/array_metadatas/process_0 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/array_metadatas/process_0 new file mode 100644 index 000000000..9e1980540 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/array_metadatas/process_0 @@ -0,0 +1 @@ +{"array_metadatas": [{"array_metadata": {"param_name": "a", "write_shape": [8], "chunk_shape": [8], "ext_metadata": null}}, {"array_metadata": {"param_name": "b.c", "write_shape": [3], "chunk_shape": [3], "ext_metadata": null}}]} \ No newline at end of file diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/d/654a71183e9bfbec70174a0423a6e635 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/d/654a71183e9bfbec70174a0423a6e635 new file mode 100644 index 0000000000000000000000000000000000000000..dc3b09d1bcba56661f9ea0874df1c663aa40b485 GIT binary patch literal 377 zcmV-<0fznz+aTU~0RR91000000VuUE{a{!F?Fs;P5f*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..00206c9892f9849b004014044b5d70cb2458e282 GIT binary patch literal 113 zcmdKGb08V+68XJG`XWK?2E z(Kj1T0{{s{AI|^) literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/ocdbt.process_0/d/45c9ae94d66f95a189b87bae6f2b81ee b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/ocdbt.process_0/d/45c9ae94d66f95a189b87bae6f2b81ee new file mode 100644 index 0000000000000000000000000000000000000000..0f5426c04addc6f2ec890c22c637f378738a6ba3 GIT binary patch literal 343 zcmV-d0jT~A+aTUo0RR91000000VuUE{a_RW-3b6D5jrk_H_ZVv03tD>=}gEJ^jHi3 zy*sh{`>}s(p-t9@37t4==ifcVWCBPSgoW`j$}s>d04o6R2aeDvU*-8YuZgnVvhLn= zm?S=tcFXQ6E)0qbgK11#K%%4$i#fT%Fu_29z$$hF5abPOeemm%pNs8Sr>&i=@ZqMN z6Q7eUHiKG{qECj8)AQ>+;rJ9i8XPM%zC)F9W!G$Sghp=-)n;Q5?c#fSM0b@|)H-ZR z!>6W@oAt>Sysz>^rDUI8hCfrw9KNKPRB#^PF-@(nn2ZH`fLZW|1bIW~^5tj$4d*kH4u p29tFVn=s=?8nZ!E(P9JPK-f|VyxQau(uHcEG{tj@IR@J*XDHD*nsNXD literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/ocdbt.process_0/d/4e60145b81ca93ef201dc0bc48fb0259 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/ocdbt.process_0/d/4e60145b81ca93ef201dc0bc48fb0259 new file mode 100644 index 0000000000000000000000000000000000000000..d610a0fd3fff9aedfb16b97d8c1e10bae28d26e3 GIT binary patch literal 293 zcmV+=0owiy+aTU00RR91000000VuUE{b1w*O$Y#D4=^X7CCvf<|NsA>p=N*D?y^3S zw)>OTTF55b_P>xNTK8KF>im1fiWVs)sZ2v;9UZ;VZruj?Xh41E)5UtvAxA$X$?lC@ zDz)uuRpN7YNUYg9*v9TC@w~~%Na}AF`;Im~Mbw!Y7q;kmT-hkTPfGW$&gvR3LOrr= zP`;_iHb*^S*C69v%`WJ9>zm2;)t6B|dJ+T(^)*l>GIUaVCJtf9?x;7{$y#_S?9Oo% z8ifWkC>X{9L$@*nGyvcr97h@ez>^rDUV)Su->_UW1HTrBuFWw@&TWI?F~`O+mbE!( r4ZCa>)L^m>ViRWkNMkmLDq3tH90+46sU9IysJ2E^5U|ZVBWH>Otrdio literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/ocdbt.process_0/d/c23a25f635d8b0211e83e2cfb7e79be6 b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/ocdbt.process_0/d/c23a25f635d8b0211e83e2cfb7e79be6 new file mode 100644 index 0000000000000000000000000000000000000000..dc3b09d1bcba56661f9ea0874df1c663aa40b485 GIT binary patch literal 377 zcmV-<0fznz+aTU~0RR91000000VuUE{a{!F?Fs;P5f*CUjN=wrv9X zWZx6HZCmU{h}PzHj#ipA|?<8ySs}|Wbrw05{#s1f@DtaP$q7|567dySOsG@HC8P3n?eYU=s+-mpBoE(VtNR^SYk6s$a}2}+W3_q0Dar${5Kkee=I=qKUX<@&3%1GUHI zbUbSsS!&-@RO6amr(G?~JJt&0+a<#%+tN;5KPnIeJrG2J9pHe{03n X=;GDDm{n~?3A-LEJjcTWj^*W4cyXs@ literal 0 HcmV?d00001 diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/ocdbt.process_0/manifest.ocdbt b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints/v1_checkpoints/composite_checkpoint/non_critical_metadata_alterations/missing_pytree_data_file__sharding/state/ocdbt.process_0/manifest.ocdbt new file mode 100644 index 0000000000000000000000000000000000000000..e80d739decade45afdce2a56b95a91e68bb7667a GIT binary patch literal 208 zcmV;>05AUx+d3-H00000000000VuUE{UE=s1prcuDldR3%>kSQ*BAveIZj0zGzNx- zOwd7GV=xl3w!*|t?!CRVw4_X+gPi3qQmzSUDQ6zg1QMADfHVjgFb`+~K@n;GFDfOC zBuNqf)0O`!DJnM4rystxwUf dict[str, Any]: + return { + 'a': jnp.array([0, 1, 2, 3, 4, 5, 6, 7], dtype=jnp.int32), + 'b': {'c': jnp.array([1, 2, 3], dtype=jnp.int32)}, + } + + +def create_json_object() -> dict[str, Any]: + return {'metadata': 'json_data'} + + +def _standard_checkpointer_save_pytree(path: epath.Path) -> None: + """Saves a direct checkpoint using StandardCheckpointer for pytree.""" + pytree = create_pytree() + if _OVERWRITE.value: + path.rmtree(missing_ok=True) + with standard_checkpointer.StandardCheckpointer() as checkpointer: + checkpointer.save(path, pytree) + + +def _checkpointer_save_composite_mixed(path: epath.Path) -> None: + """Saves a composite checkpoint using Checkpointer + CompositeHandler.""" + json_object = create_json_object() + pytree = create_pytree() + checkpoint_args = args.Composite(**{ + 'state': args.PyTreeSave(pytree), # Represents pytree checkpointable. + 'metadata': args.JsonSave(json_object), + }) + if _OVERWRITE.value: + path.rmtree(missing_ok=True) + with v0_checkpointer.Checkpointer( + composite_checkpoint_handler.CompositeCheckpointHandler() + ) as checkpointer: + checkpointer.save(path, checkpoint_args) + + +def generate_v0_checkpoint( + path: epath.Path, + is_direct_checkpoint: bool = False, +) -> None: + """Generates a V0 checkpoint with the given save function.""" + if is_direct_checkpoint: + _standard_checkpointer_save_pytree(path) + (path / 'descriptor').rmtree() # GOOGLE_INTERNAL + else: + _checkpointer_save_composite_mixed(path) + (path / 'state' / 'descriptor').rmtree() # GOOGLE_INTERNAL + + +def delete_checkpoint_metadata_field( + path: epath.Path, field_to_remove: str +) -> None: + """Deletes a field from _CHECKPOINT_METADATA.""" + metadata_path = path / '_CHECKPOINT_METADATA' + with open(metadata_path, 'r') as f: + data = json.load(f) + del data[field_to_remove] + with open(metadata_path, 'w') as f: + json.dump(data, f) + + +def v0_generate_case( + is_direct_checkpoint: bool, + has_checkpoint_metadata: bool, + has_pytree_metadata: bool, +) -> None: + """Generates a V0 checkpoint based on parameters.""" + ckpt_type = ( + 'direct_checkpoint' if is_direct_checkpoint else 'composite_checkpoint' + ) + metadata_dir = ( + 'checkpoint_metadata_present' + if has_checkpoint_metadata + else 'checkpoint_metadata_missing' + ) + pytree_dir = ( + 'pytree_checkpointable_has_metadata' + if has_pytree_metadata + else 'pytree_checkpointable_missing_metadata' + ) + path = ( + epath.Path(_BASE_DIR.value) + / 'v0_checkpoints' + / ckpt_type + / metadata_dir + / pytree_dir + ) + + generate_v0_checkpoint(path, is_direct_checkpoint=is_direct_checkpoint) + + if not has_checkpoint_metadata: + metadata_path = path / '_CHECKPOINT_METADATA' + if metadata_path.exists(): + metadata_path.unlink() + + if not has_pytree_metadata: + pytree_metadata_path = path if is_direct_checkpoint else path / 'state' + (pytree_metadata_path / '_METADATA').unlink() + + +def v0_missing_checkpoint_metadata_field( + field_to_remove: str, + is_direct_checkpoint: bool, +) -> None: + """Saves V0 checkpoint and removes a field from _CHECKPOINT_METADATA.""" + ckpt_type = ( + 'direct_checkpoint' if is_direct_checkpoint else 'composite_checkpoint' + ) + path = ( + epath.Path(_BASE_DIR.value) + / 'v0_checkpoints' + / ckpt_type + / 'non_critical_metadata_alterations' + / f'missing_{field_to_remove}_metadata' + ) + generate_v0_checkpoint(path, is_direct_checkpoint=is_direct_checkpoint) + delete_checkpoint_metadata_field(path, field_to_remove) + + +def v0_missing_pytree_data( + name: str, + is_direct_checkpoint: bool, + is_dir: bool = False, + is_critical: bool = False, +) -> None: + """Saves a checkpoint and removes data files or directories.""" + ckpt_type = ( + 'direct_checkpoint' if is_direct_checkpoint else 'composite_checkpoint' + ) + prefix = 'dir' if is_dir else 'file' + alteration_type = ( + 'critical_metadata_alterations' + if is_critical + else 'non_critical_metadata_alterations' + ) + path = ( + epath.Path(_BASE_DIR.value) + / 'v0_checkpoints' + / ckpt_type + / alteration_type + / f'missing_pytree_data_{prefix}_{name}' + ) + generate_v0_checkpoint(path, is_direct_checkpoint=is_direct_checkpoint) + + target_path = path if is_direct_checkpoint else path / 'state' + if is_dir: + (target_path / name).rmtree() + else: + (target_path / name).unlink() + + +def main(argv): + del argv + epath.Path(_BASE_DIR.value).mkdir(parents=True, exist_ok=True) + + test_utils.set_tensorstore_driver_for_test() + + print('Generating V0 Checkpoints...') + # Three categories we'll generate against: + # 1. Is Checkpoint Metadata present? + # - Yes, No + # 2. Item_handler type (save method which dictates item_handler contents) + # - dict(composite), str(direct_pytree checkpoint) + # Note we will treat v0 checkpoint handlers as unregistered by default when + # we test loading. + # 3. Is Pytree? (Pytree Metadata present in checkpointable dir?) + # - Yes, No + + # The directory structure will follow the categories above: + # base_dir / + # 'v0_checkpoints' / + # <'direct_checkpoint' | 'composite_checkpoint'> / + # / + # _metadata / + + for is_dir_ckpt, has_metadata, has_pytree in itertools.product( + [True, False], repeat=3 + ): + v0_generate_case( + is_direct_checkpoint=is_dir_ckpt, + has_checkpoint_metadata=has_metadata, + has_pytree_metadata=has_pytree, + ) + + + # --- ADDITIONAL CORRUPTIONS --- + # The directory structure will be as follows: + # base_dir / + # 'v0_checkpoints' / + # <'composite_checkpoint'|'direct_checkpoint'> / + # <'critical_metadata_alterations'/'critical_pytree_data_alterations'> / + # / + + # --- NON-CRITICAL METADATA ALTERATIONS --- + # These metadata fields are safely considered non-critical for backward + # compatibility. + fields_to_remove = [ + 'item_handlers', + 'metrics', + 'performance_metrics', + 'init_timestamp_nsecs', + 'commit_timestamp_nsecs', + 'custom_metadata', + ] + for field, is_dir_ckpt in itertools.product(fields_to_remove, [True, False]): + v0_missing_checkpoint_metadata_field(field, is_dir_ckpt) + + # --- NON-CRITICAL PYTREE DATA ALTERATIONS --- + # These files/dirs are non-critical to loading the pytree. Note: absence of + # _sharding will only give an error if abstract pytree is not provided. + non_critical_tasks = [ + ('_sharding', False), + ('array_metadatas', True), + ] + for name, is_directory in non_critical_tasks: + for is_dir_ckpt in [True, False]: + v0_missing_pytree_data( + name, is_dir_ckpt, is_dir=is_directory, is_critical=False + ) + + # --- CRITICAL PYTREE DATA ALTERATIONS --- + # These files/dirs are critical for loading the pytree successfully. + critical_tasks = [ + ('manifest.ocdbt', False), + ('ocdbt.process_0', True), + ('d', True), + ] + for name, is_directory in critical_tasks: + for is_dir_ckpt in [True, False]: + v0_missing_pytree_data( + name, is_dir_ckpt, is_dir=is_directory, is_critical=True + ) + + print(f'V0 Checkpoints generated at {_BASE_DIR.value}') + + +if __name__ == '__main__': + app.run(main) diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/generate_v1_checkpoints.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/generate_v1_checkpoints.py new file mode 100644 index 000000000..49908e0d6 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/generate_v1_checkpoints.py @@ -0,0 +1,289 @@ +# Copyright 2026 The Orbax Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Generates V1 checkpoints for compatibility testing. + +The checkpoints generated by this script are checked into the repository +statically. While our library's logic changes over time, user-held checkpoints +do not. Checking these in allows us to test the interaction between evolving +code and "frozen" static artifacts, ensuring long-term backward compatibility +that runtime generation (which only tests current library behavior) cannot +guarantee. +""" +import itertools +import json +import os +from typing import Any + +from absl import app +from absl import flags +from etils import epath +import jax.numpy as jnp +from orbax.checkpoint import test_utils +import orbax.checkpoint.experimental.v1 as ocp +from orbax.checkpoint.experimental.v1._src.handlers import registration + + +FLAGS = flags.FLAGS + + +def _get_base_dir(): + if 'BUILD_WORKING_DIRECTORY' in os.environ: + return os.path.join( + os.environ['BUILD_WORKING_DIRECTORY'], + 'orbax/checkpoint/experimental/v1/_src/testing/compatibility/checkpoints', + ) + return os.path.join( + os.path.dirname(__file__), + 'checkpoints', + ) + + +_BASE_DIR = flags.DEFINE_string( + 'base_dir', + _get_base_dir(), + 'Base directory to save checkpoints.', +) +_OVERWRITE = flags.DEFINE_bool( + 'overwrite', + False, + 'Overwrite existing checkpoints.', +) + + +def create_pytree() -> dict[str, Any]: + return { + 'a': jnp.array([0, 1, 2, 3, 4, 5, 6, 7], dtype=jnp.int32), + 'b': {'c': jnp.array([1, 2, 3], dtype=jnp.int32)}, + } + + +def create_json_object() -> dict[str, Any]: + return {'metadata': 'json_data'} + + +def generate_v1_checkpoint(path: epath.Path) -> None: + """Saves a V1 composite checkpoint using save_checkpointables.""" + checkpointables = { + 'state': create_pytree(), + 'metadata': create_json_object(), + } + if _OVERWRITE.value: + path.rmtree(missing_ok=True) + + registry = registration.local_registry() + registry.add(ocp.handlers.PyTreeHandler, checkpointable_name='state') + registry.add(ocp.handlers.JsonHandler, checkpointable_name='metadata') + with ocp.Context( + checkpointables_options=ocp.options.CheckpointablesOptions( + registry=registry + ) + ): + ocp.save_checkpointables(path, checkpointables) + (path / 'descriptor').rmtree() # GOOGLE_INTERNAL + + +def delete_checkpoint_metadata_field( + path: epath.Path, field_to_remove: str +) -> None: + """Deletes a field from _CHECKPOINT_METADATA.""" + metadata_path = path / '_CHECKPOINT_METADATA' + with open(metadata_path, 'r') as f: + data = json.load(f) + del data[field_to_remove] + with open(metadata_path, 'w') as f: + json.dump(data, f) + + +def v1_generate_case( + has_checkpoint_metadata: bool, + has_pytree_metadata: bool, +) -> None: + """Generates a V1 checkpoint based on parameters.""" + metadata_dir = ( + 'checkpoint_metadata_present' + if has_checkpoint_metadata + else 'checkpoint_metadata_missing' + ) + pytree_dir = ( + 'pytree_checkpointable_has_metadata' + if has_pytree_metadata + else 'pytree_checkpointable_missing_metadata' + ) + path = ( + epath.Path(_BASE_DIR.value) + / 'v1_checkpoints' + / 'composite_checkpoint' + / metadata_dir + / pytree_dir + ) + + generate_v1_checkpoint(path) + + if not has_checkpoint_metadata: + metadata_path = path / '_CHECKPOINT_METADATA' + if metadata_path.exists(): + metadata_path.unlink() + + if not has_pytree_metadata: + pytree_metadata_path = path / 'state' + (pytree_metadata_path / '_METADATA').unlink() + + +def v1_missing_checkpoint_metadata_field( + field_to_remove: str, +) -> None: + """Saves V1 checkpoint and removes a field from _CHECKPOINT_METADATA.""" + path = ( + epath.Path(_BASE_DIR.value) + / 'v1_checkpoints' + / 'composite_checkpoint' + / 'non_critical_metadata_alterations' + / f'missing_{field_to_remove}_metadata' + ) + generate_v1_checkpoint(path) + delete_checkpoint_metadata_field(path, field_to_remove) + + +def v1_missing_pytree_data( + name: str, is_dir: bool = False, is_critical: bool = False +) -> None: + """Saves a checkpoint and removes data files or directories.""" + prefix = 'dir' if is_dir else 'file' + alteration_type = ( + 'critical_metadata_alterations' + if is_critical + else 'non_critical_metadata_alterations' + ) + path = ( + epath.Path(_BASE_DIR.value) + / 'v1_checkpoints' + / 'composite_checkpoint' + / alteration_type + / f'missing_pytree_data_{prefix}_{name}' + ) + generate_v1_checkpoint(path) + + target_path = path / 'state' + if is_dir: + (target_path / name).rmtree() + else: + (target_path / name).unlink() + + +def v1_dummy_checkpointable_present() -> None: + """Saves a checkpointables checkpoint and adds a dummy checkpointable.""" + # Note: this is a critical alteration because a checkpointable is added to + # the checkpoint and causes error when calling load_checkpointables with + # `abstract_checkpointables=None`, which attempts to load all contents of the + # checkpoint and will fail to restore the contents of a dummmy checkpointable. + path = ( + epath.Path(_BASE_DIR.value) + / 'v1_checkpoints' + / 'composite_checkpoint' + / 'critical_general_alterations' + / 'dummy_checkpointable_added' + ) + generate_v1_checkpoint(path) + (path / 'dummy').mkdir() + (path / 'dummy' / '_METADATA').write_text('dummy') + + +def v1_delete_checkpointable() -> None: + """Saves a checkpointables checkpoint and deletes a checkpointable.""" + # Note: this is a non-critical alteration because each checkpointable is + # separable and we allow deleting specific checkpointables as needed. + # Restoring the checkpoint does not raise an error, as long as we don't + # attempt to restore the deleted checkpointable. + path = ( + epath.Path(_BASE_DIR.value) + / 'v1_checkpoints' + / 'composite_checkpoint' + / 'non_critical_general_alterations' + / 'deleted_checkpointable' + ) + generate_v1_checkpoint(path) + (path / 'state').rmtree() + + +def main(argv): + del argv + epath.Path(_BASE_DIR.value).mkdir(parents=True, exist_ok=True) + test_utils.set_tensorstore_driver_for_test() + print('Generating V1 Checkpoints...') + + # The directory structure will follow the categories above: + # base_dir / + # 'v1_checkpoints' / + # <'composite_checkpoint'> / + # / + # _metadata / + # Note we will be testing against unregistered handlers in our testing + # files. + for has_metadata, has_pytree in itertools.product( + [True, False], repeat=2 + ): + v1_generate_case( + has_checkpoint_metadata=has_metadata, + has_pytree_metadata=has_pytree, + ) + + # --- ADDITIONAL CORRUPTIONS --- + # The directory structure will be as follows: + # base_dir / + # 'v1_checkpoints' / + # 'composite_checkpoint' / + # / + # / + + # --- NON-CRITICAL METADATA ALTERATIONS --- + fields_to_remove = [ + 'item_handlers', + 'metrics', + 'performance_metrics', + 'init_timestamp_nsecs', + 'commit_timestamp_nsecs', + 'custom_metadata', + ] + for field in fields_to_remove: + v1_missing_checkpoint_metadata_field(field) + + # --- NON-CRITICAL PYTREE DATA ALTERATIONS --- + # These files/dirs are non-critical to loading the pytree. Note: absence of + # _sharding will only give an error if abstract pytree is not provided. + non_critical_tasks = [ + ('_sharding', False), + ('array_metadatas', True), + ] + for name, is_directory in non_critical_tasks: + v1_missing_pytree_data(name, is_dir=is_directory, is_critical=False) + + # --- CRITICAL PYTREE DATA ALTERATIONS --- + critical_tasks = [ + ('manifest.ocdbt', False), + ('ocdbt.process_0', True), + ('d', True), + ] + for name, is_directory in critical_tasks: + v1_missing_pytree_data(name, is_dir=is_directory, is_critical=True) + + # --- GENERAL ALTERATIONS --- + v1_dummy_checkpointable_present() + v1_delete_checkpointable() + + print(f'V1 Checkpoints generated at {_BASE_DIR.value}') + + +if __name__ == '__main__': + app.run(main) diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/load_checkpointables_compatibility_test.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/load_checkpointables_compatibility_test.py new file mode 100644 index 000000000..2203ce213 --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/load_checkpointables_compatibility_test.py @@ -0,0 +1,311 @@ +# Copyright 2026 The Orbax Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Tests for V1 load_checkpointables API against generated V0/V1 Checkpoints.""" +import os + +from absl import flags +from absl.testing import absltest +from absl.testing import parameterized +from etils import epath +import jax +import jax.numpy as jnp +from orbax.checkpoint import test_utils +import orbax.checkpoint.experimental.v1 as ocp +from orbax.checkpoint.experimental.v1._src.context import options as options_lib +from orbax.checkpoint.experimental.v1._src.handlers import registration +from orbax.checkpoint.experimental.v1._src.layout import checkpoint_layout as checkpoint_layout_lib + + +CheckpointLayoutEnum = options_lib.CheckpointLayout +InvalidLayoutError = checkpoint_layout_lib.InvalidLayoutError + + +_BASE_DIR = os.path.join(os.path.dirname(__file__), 'checkpoints') + + +class LoadCheckpointablesCompatibilityTest(parameterized.TestCase): + + def setUp(self): + super().setUp() + self.base_dir = epath.Path(_BASE_DIR) + self.expected_state = { + 'a': jnp.array([0, 1, 2, 3, 4, 5, 6, 7], dtype=jnp.int32), + 'b': {'c': jnp.array([1, 2, 3], dtype=jnp.int32)}, + } + sharding = jax.sharding.SingleDeviceSharding(jax.devices()[0]) + self.abstract_state = jax.tree.map( + lambda x: jax.ShapeDtypeStruct(x.shape, x.dtype, sharding=sharding), + self.expected_state + ) + self.expected_metadata = {'metadata': 'json_data'} + self.abstract_metadata = None + self.expected_checkpointables = { + 'state': self.expected_state, + 'metadata': self.expected_metadata, + } + self.abstract_checkpointables = { + 'state': self.abstract_state, + 'metadata': self.abstract_metadata, + } + + def get_checkpoint_path( + self, version, metadata_present, is_direct_checkpoint, is_pytree + ): + """Returns the path to the checkpoint for each combination of parameters.""" + if version == 'v1' and is_direct_checkpoint: + return None # V1 does not support direct checkpoints. + + version_dir = f'{version}_checkpoints' + type_dir = ( + 'direct_checkpoint' if is_direct_checkpoint else 'composite_checkpoint' + ) + metadata_dir = ( + 'checkpoint_metadata_present' + if metadata_present + else 'checkpoint_metadata_missing' + ) + pytree_dir = ( + 'pytree_checkpointable_has_metadata' + if is_pytree + else 'pytree_checkpointable_missing_metadata' + ) + + return ( + self.base_dir + / version_dir + / type_dir + / metadata_dir + / pytree_dir + ) + + def setup_registry( + self, + names_registered, + handler_registered, + ): + """Ensures we only have what we explicitly add.""" + registry = ocp.handlers.local_registry(include_global_registry=False) + + if handler_registered: + registry.add(ocp.handlers.PyTreeHandler, checkpointable_name=None, secondary_typestrs=[ + 'orbax.checkpoint._src.handlers.pytree_checkpoint_handler.PyTreeCheckpointHandler', + 'orbax.checkpoint._src.handlers.standard_checkpoint_handler.StandardCheckpointHandler', + ]) + registry.add(ocp.handlers.JsonHandler, checkpointable_name=None, secondary_typestrs=[ + 'orbax.checkpoint._src.handlers.json_checkpoint_handler.JsonCheckpointHandler', + ]) + + # Corresponds to all checkpointables in the checkpoint being explicitly + # registered to a handler. + if names_registered: + registry.add(ocp.handlers.PyTreeHandler, checkpointable_name='state') + registry.add(ocp.handlers.JsonHandler, checkpointable_name='metadata') + + registry.add(ocp.handlers.PyTreeHandler, checkpointable_name='pytree') + + return registry + + def _determine_expected_outcome( + self, + version, + checkpointable_names_provided, + names_registered, + metadata_present, + is_direct_checkpoint, + has_pytree_metadata, + handler_registered, + ): + """Encapsulates the complex boolean logic to determine load behavior.""" + # Direct checkpoints cannot be loaded with load_checkpointables. + if version == 'v0' and is_direct_checkpoint: + # Fails attempt to load explicit checkpointables. + if checkpointable_names_provided: + return True, KeyError, ( + r'Requested checkpointables: .* for loading were not found in the' + r' checkpoint' + ) + # In attempt to load everything, failure to load pytree contents as + # checkpointables themselves. + return True, KeyError, ( + r'Failed to load checkpointable: .* due to incompatible handler: .*' + ) + + # LAYOUT VALIDATION BEHAVIOR: + # V1 strictly requires that checkpoint metadata is present. Additionally, + # for the v0 composite checkpoint, we require metadata to resolve the + # metadata checkpointable which is not handelable by PyTreeHandler. + if version == 'v1' and not metadata_present: + return True, InvalidLayoutError, ( + r'Could not recognize the checkpoint at .* as a valid Orbax' + r' checkpoint' + ) + # Since we are loading all checkpointables, we need pytree metadata to be + # present for 'state' to properly resolve with PyTreeHandler for load. + if not has_pytree_metadata: + return True, registration.NoEntryError, ( + r'Failed to load checkpointable: .* due to incompatible handler: .*' + ) + + # HANDLER RESOLUTION BEHAVIOR: + # Given that names_registered corresponds to all checkpointables in our test + # checkpoints being explicitly registered to a handler, we can + # resolve the handlers for load without issue. + if names_registered: + return False, None, None + # Otherwise, we require checkpoint handler metadata to be present and for + # them to be registered to resolve the handlers for load. + if ( + not handler_registered + or not metadata_present + ): + return True, registration.NoEntryError, ( + r'Failed to load checkpointable: .* due to incompatible handler: .*' + ) + + return False, None, None + + @parameterized.product( + version=['v0', 'v1'], + checkpointable_names_provided=[True, False], + abstract_checkpointables_provided=[True, False], + names_registered=[True, False], + metadata_present=[True, False], + is_direct_checkpoint=[True, False], + has_pytree_metadata=[True, False], + handler_registered=[True, False], + ) + def test_load_checkpointables_compatibility( + self, + version, + checkpointable_names_provided, + abstract_checkpointables_provided, + names_registered, + metadata_present, + is_direct_checkpoint, + has_pytree_metadata, + handler_registered, + ): + path = self.get_checkpoint_path( + version, metadata_present, is_direct_checkpoint, has_pytree_metadata + ) + if path is None or not path.exists(): + self.skipTest('Checkpoint for combination does not exist.') + + if not checkpointable_names_provided and abstract_checkpointables_provided: + self.skipTest( + 'Cannot provide abstract_checkpointables without' + ' checkpointable_names.' + ) + + registry = self.setup_registry( + names_registered, + handler_registered, + ) + + should_fail, error_type, expected_error_msg = ( + self._determine_expected_outcome( + version, + checkpointable_names_provided, + names_registered, + metadata_present, + is_direct_checkpoint, + has_pytree_metadata, + handler_registered, + ) + ) + + if checkpointable_names_provided: + if abstract_checkpointables_provided: + abstract_checkpointables = self.abstract_checkpointables + else: + abstract_checkpointables = { + 'state': None, + 'metadata': None, + } + else: + abstract_checkpointables = None + + with ocp.Context( + checkpointables_options=ocp.options.CheckpointablesOptions( + registry=registry + ) + ): + if should_fail: + with self.assertRaisesRegex(error_type, expected_error_msg): + ocp.load_checkpointables( + path, + abstract_checkpointables=abstract_checkpointables, + ) + else: + loaded = ocp.load_checkpointables( + path, + abstract_checkpointables=abstract_checkpointables, + ) + test_utils.assert_tree_equal( + self, loaded, self.expected_checkpointables + ) + + @parameterized.product( + version=['v0', 'v1'], + alteration=[ + 'missing_metrics_metadata', + 'missing_performance_metrics_metadata', + 'missing_init_timestamp_nsecs_metadata', + 'missing_commit_timestamp_nsecs_metadata', + 'missing_custom_metadata_metadata', + 'missing_pytree_data_dir_array_metadatas', + 'missing_pytree_data_file__sharding', + ], + ) + def test_load_checkpointables_non_critical_corruptions( + self, version, alteration + ): + path = self.base_dir.joinpath( + f'{version}_checkpoints', + 'composite_checkpoint', + 'non_critical_metadata_alterations', + alteration, + ) + loaded = ocp.load_checkpointables( + path, abstract_checkpointables=self.abstract_checkpointables + ) + test_utils.assert_tree_equal(self, loaded, self.expected_checkpointables) + + @parameterized.product( + version=['v0', 'v1'], + alteration=[ + 'missing_pytree_data_file_manifest.ocdbt', + # 'missing_pytree_data_dir_ocdbt.process_0', Not failing. + 'missing_pytree_data_dir_d', + ], + ) + def test_load_checkpointables_critical_corruptions(self, version, alteration): + path = self.base_dir.joinpath( + f'{version}_checkpoints', + 'composite_checkpoint', + 'critical_metadata_alterations', + alteration, + ) + error_type = registration.NoEntryError + # Underlying error is due to Error opening driver, present in stack trace. + error_msg = r'Failed to load checkpointable: .* due to incompatible handler' + with self.assertRaisesRegex(error_type, error_msg): + ocp.load_checkpointables( + path, abstract_checkpointables=self.abstract_checkpointables + ) + + +if __name__ == '__main__': + absltest.main() diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/load_pytree_compatibility_test.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/load_pytree_compatibility_test.py new file mode 100644 index 000000000..ba0faa05d --- /dev/null +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/compatibility/load_pytree_compatibility_test.py @@ -0,0 +1,356 @@ +# Copyright 2026 The Orbax Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Tests for V1 load_pytree API against generated V0 and V1 Checkpoints.""" +import os + +from absl.testing import absltest +from absl.testing import parameterized +from etils import epath +import jax +import jax.numpy as jnp +from orbax.checkpoint import test_utils +import orbax.checkpoint.experimental.v1 as ocp +from orbax.checkpoint.experimental.v1._src.context import options as options_lib +from orbax.checkpoint.experimental.v1._src.handlers import registration +from orbax.checkpoint.experimental.v1._src.layout import checkpoint_layout as checkpoint_layout_lib + + +CheckpointLayoutEnum = options_lib.CheckpointLayout +InvalidLayoutError = checkpoint_layout_lib.InvalidLayoutError + + +_BASE_DIR = os.path.join(os.path.dirname(__file__), 'checkpoints') + + +class LoadPytreeCompatibilityTest(parameterized.TestCase): + + def setUp(self): + super().setUp() + self.base_dir = epath.Path(_BASE_DIR) + self.expected_state = { + 'a': jnp.array([0, 1, 2, 3, 4, 5, 6, 7], dtype=jnp.int32), + 'b': {'c': jnp.array([1, 2, 3], dtype=jnp.int32)}, + } + sharding = jax.sharding.SingleDeviceSharding(jax.devices()[0]) + self.abstract_state = jax.tree.map( + lambda x: jax.ShapeDtypeStruct(x.shape, x.dtype, sharding=sharding), + self.expected_state + ) + + def get_checkpoint_path( + self, version, metadata_present, is_direct_checkpoint, is_pytree + ): + """Returns the path to the checkpoint for each combination of parameters.""" + if version == 'v1' and is_direct_checkpoint: + return None # V1 does not support direct checkpoints. + + version_dir = f'{version}_checkpoints' + type_dir = ( + 'direct_checkpoint' if is_direct_checkpoint else 'composite_checkpoint' + ) + metadata_dir = ( + 'checkpoint_metadata_present' + if metadata_present + else 'checkpoint_metadata_missing' + ) + pytree_dir = ( + 'pytree_checkpointable_has_metadata' + if is_pytree + else 'pytree_checkpointable_missing_metadata' + ) + + return ( + self.base_dir + / version_dir + / type_dir + / metadata_dir + / pytree_dir + ) + + def setup_registry( + self, + path, + checkpointable_name, + name_registered, + handler_registered, + pytree_registered, + ): + """Ensures we only have what we explicitly add.""" + registry = ocp.handlers.local_registry(include_global_registry=False) + + # This reflects when a user has a checkpoint saved with unregistered + # handler typestrs in metadata, if not handler_registered, handler + # resolution will fail when trying to resolve based on metadata. + if handler_registered: + # The secondary_typestrs are those used to save the pytree + # 'state' for V0 composite and direct checkpoints respectively. + secondary_typestrs = [ + 'orbax.checkpoint._src.handlers.pytree_checkpoint_handler.PyTreeCheckpointHandler', + 'orbax.checkpoint._src.handlers.standard_checkpoint_handler.StandardCheckpointHandler', + ] + registry.add( + ocp.handlers.PyTreeHandler, + checkpointable_name=None, + secondary_typestrs=secondary_typestrs, + ) + + if name_registered: + # Register the handler with a specific name, possibly the top-level + # checkpointable name if provided, otherwise we use the path name assuming + # we have a top-level pytree checkpoint. + if checkpointable_name: + registry.add( + ocp.handlers.PyTreeHandler, checkpointable_name=checkpointable_name + ) + else: + registry.add(ocp.handlers.PyTreeHandler, checkpointable_name=path.name) + + if pytree_registered: + # Register to scoped 'pytree' handler for fallback resolution. + # Note this should standardly be present, though testing its presence to + # ensure resolution works as expected without always relying on it. + registry.add(ocp.handlers.PyTreeHandler, checkpointable_name='pytree') + + return registry + + def _determine_expected_outcome( + self, + version, + checkpointable_name, + abstract_pytree_provided, + name_registered, + metadata_present, + is_direct_checkpoint, + is_pytree, + handler_registered, + pytree_registered, + ): + """Encapsulates the complex boolean logic to determine load behavior.""" + # LAYOUT VALIDATION BEHAVIOR: + if version == 'v1': + # V1 strictly requires that checkpoint metadata is present. + if not metadata_present: + return ( + True, + InvalidLayoutError, + ( + r'Could not recognize the checkpoint at .* as a valid Orbax' + r' checkpoint' + ), + ) + # V1 does not support loading a top-level pytree, redirects to V0. + if checkpointable_name is None: + return ( + True, + ValueError, + ( + r'Failed to interpret path .* as a .* Orbax PyTree' + ), + ) + + # If checkpoint is not a pytree or if the layout logic fails to identify a + # pytree checkpoint at the checkpointable_name path, then we expect an + # InvalidLayoutError. + if not is_pytree or ( + (is_direct_checkpoint and checkpointable_name) + or (not is_direct_checkpoint and checkpointable_name is None) + ): + return ( + True, + InvalidLayoutError, + ( + r'Failed to interpret path .* as a .* Orbax PyTree' + ), + ) + + # HANDLER RESOLUTION BEHAVIOR: + can_resolve = ( + # If checkpointable name is explicitly registered to a handler, we can + # use it for load. + name_registered + # If a handler is registered which corresponds to the handler typestr + # derived from checkpoint metadata and abstract_pytree if either are + # provided. + or ( + handler_registered + and (abstract_pytree_provided or metadata_present) + ) + or pytree_registered + ) + + if not can_resolve: + return ( + True, + registration.NoEntryError, + ( + r'Could not resolve a handler for .* and no \'pytree\' handler' + r' found in .*' + ), + ) + + return False, None, None + + @parameterized.product( + version=['v0', 'v1'], + checkpointable_name=['state', None], + abstract_pytree_provided=[True, False], + name_registered=[True, False], + metadata_present=[True, False], + is_direct_checkpoint=[True, False], + is_pytree=[True, False], + handler_registered=[True, False], + pytree_registered=[True, False], + ) + def test_load_pytree_compatibility( + self, + version, + checkpointable_name, + abstract_pytree_provided, + name_registered, + metadata_present, + is_direct_checkpoint, + is_pytree, + handler_registered, + pytree_registered, + ): + path = self.get_checkpoint_path( + version, metadata_present, is_direct_checkpoint, is_pytree + ) + if path is None or not path.exists(): + self.skipTest('Checkpoint for combination does not exist.') + + registry = self.setup_registry( + path, + checkpointable_name, + name_registered, + handler_registered, + pytree_registered, + ) + + should_fail, error_type, expected_error_msg = ( + self._determine_expected_outcome( + version, + checkpointable_name, + abstract_pytree_provided, + name_registered, + metadata_present, + is_direct_checkpoint, + is_pytree, + handler_registered, + pytree_registered, + ) + ) + + actual_abstract_pytree = ( + self.abstract_state if abstract_pytree_provided else None + ) + + with ocp.Context( + checkpointables_options=ocp.options.CheckpointablesOptions( + registry=registry + ) + ): + if should_fail: + with self.assertRaisesRegex(error_type, expected_error_msg): + ocp.load_pytree( + path, + checkpointable_name=checkpointable_name, + abstract_pytree=actual_abstract_pytree, + ) + else: + loaded = ocp.load_pytree( + path, + checkpointable_name=checkpointable_name, + abstract_pytree=actual_abstract_pytree, + ) + test_utils.assert_tree_equal(self, loaded, self.expected_state) + + @parameterized.product( + version=['v0', 'v1'], + alteration=[ + 'missing_item_handlers_metadata', + 'missing_metrics_metadata', + 'missing_performance_metrics_metadata', + 'missing_init_timestamp_nsecs_metadata', + 'missing_commit_timestamp_nsecs_metadata', + 'missing_custom_metadata_metadata', + 'missing_pytree_data_dir_array_metadatas', + 'missing_pytree_data_file__sharding', + ], + ) + def test_load_pytree_non_critical_corruptions(self, version, alteration): + + path = self.base_dir.joinpath( + f'{version}_checkpoints', + 'composite_checkpoint', + 'non_critical_metadata_alterations', + alteration, + ) + loaded = ocp.load_pytree( + path, abstract_pytree=self.abstract_state, checkpointable_name='state' + ) + test_utils.assert_tree_equal(self, loaded, self.expected_state) + + @parameterized.product( + version=['v0', 'v1'], + alteration=[ + 'missing_pytree_data_file_manifest.ocdbt', + # 'missing_pytree_data_dir_ocdbt.process_0', Not failing. + 'missing_pytree_data_dir_d', + ], + ) + def test_load_pytree_critical_corruptions(self, version, alteration): + path = self.base_dir.joinpath( + f'{version}_checkpoints', + 'composite_checkpoint', + 'critical_metadata_alterations', + alteration, + ) + error_type = ValueError + error_msg = r'Error opening .* driver:' + with self.assertRaisesRegex(error_type, error_msg): + ocp.load_pytree( + path, + checkpointable_name='state', + abstract_pytree=self.abstract_state, + ) + + @parameterized.product( + version=['v0', 'v1'], + ) + def test_load_incorrect_path(self, version): + checkpoint_path = ( + self.base_dir + / f'{version}_checkpoints' + / 'composite_checkpoint' + / 'checkpoint_metadata_present' + / 'pytree_checkpointable_has_metadata' + ) + child_path = checkpoint_path / 'state' + parent_path = checkpoint_path.parent + with self.assertRaisesRegex( + InvalidLayoutError, + r'Could not recognize the checkpoint at .* as a valid Orbax checkpoint' + ): + ocp.load_pytree(child_path, checkpointable_name='state') + with self.assertRaisesRegex( + InvalidLayoutError, + r'Could not recognize the checkpoint at .* as a valid Orbax checkpoint' + ): + ocp.load_pytree(parent_path, checkpointable_name='state') + + +if __name__ == '__main__': + absltest.main() diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/handler_utils.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/handler_utils.py index b82071c9a..6c0022c50 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/handler_utils.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/handler_utils.py @@ -18,16 +18,19 @@ import dataclasses import json -from typing import Any, Awaitable, Generic, Type, TypeVar +from typing import Any, Awaitable, Generic, Sequence, Type, TypeVar import aiofiles from etils import epath +import jax from orbax.checkpoint import checkpoint_args as v0_args from orbax.checkpoint import handlers as v0_handlers from orbax.checkpoint._src import asyncio_utils from orbax.checkpoint.experimental.v1._src.context import context as context_lib from orbax.checkpoint.experimental.v1._src.handlers import types as handler_types from orbax.checkpoint.experimental.v1._src.path import types as path_types +from orbax.checkpoint.experimental.v1._src.serialization import array_leaf_handler +from orbax.checkpoint.experimental.v1._src.serialization import types from orbax.checkpoint.experimental.v1._src.synchronization import multihost from orbax.checkpoint.experimental.v1._src.testing import path_utils as path_test_utils @@ -363,3 +366,49 @@ def is_handleable(self, checkpointable: BasicDict) -> bool: def is_abstract_handleable(self, abstract_checkpointable: None) -> bool: return abstract_checkpointable is None + + +@dataclasses.dataclass +class LazyArray: + """A custom array type wrapping a jax.Array for testing.""" + array: jax.Array + + +class AbstractLazyArray(types.AbstractShardedArray): + pass + + +class LazyArrayHandler( + types.LeafHandler[LazyArray, types.AbstractShardedArray] +): + """A custom LeafHandler that uses composition of ArrayLeafHandler.""" + + def __init__(self, context=None): + self._array_handler = array_leaf_handler.ArrayLeafHandler(context=context) + + async def serialize( + self, + params: Sequence[types.SerializationParam[LazyArray]], + serialization_context: types.SerializationContext, + ) -> Awaitable[None]: + array_params = [ + types.SerializationParam(p.keypath, p.value.array) for p in params + ] + return await self._array_handler.serialize( + array_params, serialization_context + ) + + async def deserialize( + self, + params: Sequence[types.DeserializationParam[types.AbstractShardedArray]], + deserialization_context: types.DeserializationContext, + ) -> Awaitable[Sequence[LazyArray]]: + arrays_awaitable = await self._array_handler.deserialize( + params, deserialization_context + ) + + async def _wrap_results() -> Sequence[LazyArray]: + resolved_arrays = await arrays_awaitable + return tuple(LazyArray(arr) for arr in resolved_arrays) + + return _wrap_results() diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/save_load_test_base.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/save_load_test_base.py index 00969a212..adeab5cb8 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/save_load_test_base.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/testing/save_load_test_base.py @@ -42,6 +42,9 @@ from orbax.checkpoint.experimental.v1._src.layout import checkpoint_layout from orbax.checkpoint.experimental.v1._src.path import async_utils from orbax.checkpoint.experimental.v1._src.path import types as path_types +from orbax.checkpoint.experimental.v1._src.serialization import array_leaf_handler +from orbax.checkpoint.experimental.v1._src.serialization import registry as serialization_registry +from orbax.checkpoint.experimental.v1._src.serialization import types from orbax.checkpoint.experimental.v1._src.synchronization import multihost from orbax.checkpoint.experimental.v1._src.testing import array_utils as array_test_utils from orbax.checkpoint.experimental.v1._src.testing import handler_utils @@ -275,6 +278,66 @@ def test_leaf_change_type(self): ), ) + def test_custom_array_type(self): + # Set up local context with custom registry. + custom_registry = serialization_registry.StandardLeafHandlerRegistry() + custom_registry.add( + handler_utils.LazyArray, + handler_utils.AbstractLazyArray, + handler_utils.LazyArrayHandler, + ) + + custom_context = ocp.Context( + pytree_options=ocp.options.PyTreeOptions( + leaf_handler_registry=custom_registry + ) + ) + + mesh = jax.sharding.Mesh(np.asarray(jax.devices()), ('devices',)) + sharding = jax.sharding.NamedSharding(mesh, jax.sharding.PartitionSpec()) + lazy_arr = handler_utils.LazyArray( + create_sharded_array(np.arange(16), sharding) + ) + pytree = {'a': lazy_arr} + + with custom_context: + ocp.save_pytree(self.directory, pytree) + + # Attempt to load without context (using global default registry), which + # should fail + with self.assertRaisesRegex(ValueError, 'TypeHandler lookup failed'): + ocp.load_pytree(self.directory) + + # Load with the custom registry context + with custom_context: + loaded = ocp.load_pytree(self.directory) + self.assertEqual(loaded['a'].array.shape, lazy_arr.array.shape) + np.testing.assert_array_equal(loaded['a'].array, lazy_arr.array) + + # Load custom array directly as jax.Array by mapping secondary_typestr + custom_registry2 = serialization_registry.StandardLeafHandlerRegistry() + # Override the default jax.Array handler with LazyArray typestr, + # ensuring that the serialized jax.array annotated with original LazyArray + # typestr is loaded as a jax.Array. + custom_registry2.add( + jax.Array, + types.AbstractShardedArray, + array_leaf_handler.ArrayLeafHandler, + secondary_typestrs=[str(handler_utils.LazyArray)], + override=True, + ) + custom_context2 = ocp.Context( + pytree_options=ocp.options.PyTreeOptions( + leaf_handler_registry=custom_registry2 + ) + ) + with custom_context2: + loaded_as_jax_array = ocp.load_pytree(self.directory) + self.assertIsInstance(loaded_as_jax_array['a'], jax.Array) + np.testing.assert_array_equal( + loaded_as_jax_array['a'], lazy_arr.array + ) + def test_empty_array(self): value = np.ones(shape=(0,)) with self.assertRaisesRegex(ValueError, 'zero size'): diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/training/checkpointer.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/training/checkpointer.py index ecca62ae8..2f7e8b368 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/training/checkpointer.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/training/checkpointer.py @@ -31,6 +31,7 @@ from orbax.checkpoint.experimental.v1._src.path import step as path_step_lib from orbax.checkpoint.experimental.v1._src.path import types as path_types from orbax.checkpoint.experimental.v1._src.saving import saving +from orbax.checkpoint.experimental.v1._src.saving import validation from orbax.checkpoint.experimental.v1._src.synchronization import types as async_types from orbax.checkpoint.experimental.v1._src.training import errors from orbax.checkpoint.experimental.v1._src.training import preservation_policies @@ -489,6 +490,7 @@ def save_checkpointables_async( custom_metadata: tree_types.JsonType | None = None, ) -> async_types.AsyncResponse[bool]: """Saves a set of checkpointables asynchronously at the given step.""" + validation.validate_abstract_checkpointables(checkpointables) if overwrite: logging.info( 'Specified `overwrite`: deleting existing checkpoint %d if it' diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/training/checkpointer_test_base.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/training/checkpointer_test_base.py index 13d6257df..e1488726a 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/training/checkpointer_test_base.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/training/checkpointer_test_base.py @@ -414,7 +414,11 @@ def test_checkpointables_metadata(self, reinitialize_checkpointer): checkpoint_metadata.metadata['pytree'].keys(), ['jax_array', 'numpy_array'], ) - self.assertIsInstance(checkpoint_metadata.metadata['baz'], AbstractBaz) + # Saved with v1 save_checkpointables, so v1 handler registry can resolve + # Baz metadata using stored handler typestr. + self.assertIsInstance( + checkpoint_metadata.metadata['baz'], handler_utils.AbstractBaz + ) def test_custom_checkpointables(self): """Test custom checkpointables are saved and loaded. diff --git a/checkpoint/orbax/checkpoint/experimental/v1/_src/training/v0v1_compatibility_checkpointer_test_base.py b/checkpoint/orbax/checkpoint/experimental/v1/_src/training/v0v1_compatibility_checkpointer_test_base.py index 027d79ba7..0cff9c4be 100644 --- a/checkpoint/orbax/checkpoint/experimental/v1/_src/training/v0v1_compatibility_checkpointer_test_base.py +++ b/checkpoint/orbax/checkpoint/experimental/v1/_src/training/v0v1_compatibility_checkpointer_test_base.py @@ -219,3 +219,43 @@ def test_steps(self): def test_step_already_exists(self): self.skipTest('b/422287659') + + @parameterized.product( + reinitialize_checkpointer=(True, False), + ) + def test_checkpointables_metadata(self, reinitialize_checkpointer): + # Checkpoint is saved with v0 CheckpointManager, so we expect None instead + # of AbstractBaz due to the v0 handler typestr being unrecognized by v1's + # handler registry. + checkpointer = Checkpointer(self.directory) + self.save_checkpointables( + checkpointer, + 0, + {'pytree': self.pytree, 'baz': handler_utils.Baz(123, 'hi')}, + metrics={'loss': 0.5}, + custom_metadata={'baz': 'qux'}, + ) + if reinitialize_checkpointer: + checkpointer.close() + checkpointer = Checkpointer(self.directory) + self.enter_context(checkpointer) + + checkpoint_metadata = checkpointer.checkpointables_metadata(0) + + self.assertIsInstance(checkpoint_metadata, ocp.training.CheckpointMetadata) + self.assertDictEqual(checkpoint_metadata.custom_metadata, {'baz': 'qux'}) + self.assertDictEqual(checkpoint_metadata.metrics, {'loss': 0.5}) + self.assertIsNotNone(checkpoint_metadata.init_timestamp_nsecs) + self.assertIsNotNone(checkpoint_metadata.commit_timestamp_nsecs) + self.assertIsInstance(checkpoint_metadata.metadata, dict) + self.assertSameElements( + checkpoint_metadata.metadata.keys(), ['pytree', 'baz'] + ) + self.assertSameElements( + checkpoint_metadata.metadata['pytree'].keys(), + ['jax_array', 'numpy_array'], + ) + # Cannot resolve metadata for outdated checkpointables' handler typestr + # without providing a non-none abstract checkpointable, so we expect None + # instead of AbstractBaz. + self.assertIsNone(checkpoint_metadata.metadata['baz'])