plitzer 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. plitzer-0.1.0/.gitignore +7 -0
  2. plitzer-0.1.0/CHANGELOG.md +14 -0
  3. plitzer-0.1.0/Cargo.lock +2726 -0
  4. plitzer-0.1.0/Cargo.toml +33 -0
  5. plitzer-0.1.0/LICENSE-APACHE +202 -0
  6. plitzer-0.1.0/LICENSE-MIT +21 -0
  7. plitzer-0.1.0/PKG-INFO +164 -0
  8. plitzer-0.1.0/README.md +124 -0
  9. plitzer-0.1.0/clippy.toml +4 -0
  10. plitzer-0.1.0/docs/design.md +1437 -0
  11. plitzer-0.1.0/plitzer-py/Cargo.toml +24 -0
  12. plitzer-0.1.0/plitzer-py/python/plitzer/__init__.py +28 -0
  13. plitzer-0.1.0/plitzer-py/python/plitzer/_plitzer.pyi +113 -0
  14. plitzer-0.1.0/plitzer-py/python/plitzer/bench/__init__.py +6 -0
  15. plitzer-0.1.0/plitzer-py/python/plitzer/bench/amplification.py +179 -0
  16. plitzer-0.1.0/plitzer-py/python/plitzer/bench/baseline.py +190 -0
  17. plitzer-0.1.0/plitzer-py/python/plitzer/bench/fineweb.py +166 -0
  18. plitzer-0.1.0/plitzer-py/python/plitzer/bench/hf.py +97 -0
  19. plitzer-0.1.0/plitzer-py/python/plitzer/bench/mosaic.py +67 -0
  20. plitzer-0.1.0/plitzer-py/python/plitzer/bench/phases.py +209 -0
  21. plitzer-0.1.0/plitzer-py/python/plitzer/bench/plitzer_adapter.py +56 -0
  22. plitzer-0.1.0/plitzer-py/python/plitzer/py.typed +0 -0
  23. plitzer-0.1.0/plitzer-py/python/plitzer/torch.py +175 -0
  24. plitzer-0.1.0/plitzer-py/src/array.rs +147 -0
  25. plitzer-0.1.0/plitzer-py/src/dlpack.rs +216 -0
  26. plitzer-0.1.0/plitzer-py/src/errors.rs +59 -0
  27. plitzer-0.1.0/plitzer-py/src/lib.rs +43 -0
  28. plitzer-0.1.0/plitzer-py/src/loader.rs +262 -0
  29. plitzer-0.1.0/plitzer-py/src/runtime.rs +76 -0
  30. plitzer-0.1.0/plitzer-py/src/settings.rs +181 -0
  31. plitzer-0.1.0/plitzer-py/tests/conftest.py +125 -0
  32. plitzer-0.1.0/plitzer-py/tests/e2e.py +284 -0
  33. plitzer-0.1.0/plitzer-py/tests/e2e_stream.py +88 -0
  34. plitzer-0.1.0/plitzer-py/tests/e2e_torch.py +68 -0
  35. plitzer-0.1.0/plitzer-py/tests/test_baseline.py +105 -0
  36. plitzer-0.1.0/plitzer-py/tests/test_bench.py +200 -0
  37. plitzer-0.1.0/plitzer-py/tests/test_budget.py +53 -0
  38. plitzer-0.1.0/plitzer-py/tests/test_compare.py +88 -0
  39. plitzer-0.1.0/plitzer-py/tests/test_e2e.py +24 -0
  40. plitzer-0.1.0/plitzer-py/tests/test_e2e_torch.py +30 -0
  41. plitzer-0.1.0/plitzer-py/tests/test_export.py +99 -0
  42. plitzer-0.1.0/plitzer-py/tests/test_loader.py +323 -0
  43. plitzer-0.1.0/plitzer-py/tests/test_s3.py +62 -0
  44. plitzer-0.1.0/plitzer-py/tests/test_torch.py +188 -0
  45. plitzer-0.1.0/pyproject.toml +79 -0
  46. plitzer-0.1.0/src/checkpoint/tests.rs +195 -0
  47. plitzer-0.1.0/src/checkpoint.rs +258 -0
  48. plitzer-0.1.0/src/codec.rs +43 -0
  49. plitzer-0.1.0/src/index/column.rs +247 -0
  50. plitzer-0.1.0/src/index/footer.rs +67 -0
  51. plitzer-0.1.0/src/index/sidecar/tests.rs +106 -0
  52. plitzer-0.1.0/src/index/sidecar.rs +174 -0
  53. plitzer-0.1.0/src/index/tests.rs +293 -0
  54. plitzer-0.1.0/src/index.rs +292 -0
  55. plitzer-0.1.0/src/lib.rs +11 -0
  56. plitzer-0.1.0/src/load/buffer.rs +118 -0
  57. plitzer-0.1.0/src/load/prefetch.rs +178 -0
  58. plitzer-0.1.0/src/load/sequence.rs +107 -0
  59. plitzer-0.1.0/src/load/tests/bytes.rs +40 -0
  60. plitzer-0.1.0/src/load/tests/fail.rs +50 -0
  61. plitzer-0.1.0/src/load/tests.rs +250 -0
  62. plitzer-0.1.0/src/load.rs +244 -0
  63. plitzer-0.1.0/src/order/tests.rs +204 -0
  64. plitzer-0.1.0/src/order.rs +174 -0
  65. plitzer-0.1.0/src/pack/lane.rs +246 -0
  66. plitzer-0.1.0/src/pack/pieces.rs +91 -0
  67. plitzer-0.1.0/src/pack/tests/edges.rs +143 -0
  68. plitzer-0.1.0/src/pack/tests.rs +160 -0
  69. plitzer-0.1.0/src/pack.rs +163 -0
  70. plitzer-0.1.0/src/read/tests/bad.rs +147 -0
  71. plitzer-0.1.0/src/read/tests.rs +248 -0
  72. plitzer-0.1.0/src/read/tokens.rs +92 -0
  73. plitzer-0.1.0/src/read.rs +244 -0
  74. plitzer-0.1.0/src/seed.rs +76 -0
  75. plitzer-0.1.0/src/session/tests/cancel.rs +80 -0
  76. plitzer-0.1.0/src/session/tests/refuse.rs +123 -0
  77. plitzer-0.1.0/src/session/tests.rs +277 -0
  78. plitzer-0.1.0/src/session.rs +299 -0
  79. plitzer-0.1.0/src/shuffle.rs +117 -0
  80. plitzer-0.1.0/src/store/s3.rs +250 -0
  81. plitzer-0.1.0/src/store.rs +192 -0
  82. plitzer-0.1.0/tests/s3.rs +138 -0
@@ -0,0 +1,7 @@
1
+ /target
2
+ .claude/settings.local.json
3
+ .venv/
4
+ __pycache__/
5
+ # The extension that `maturin develop` builds in place.
6
+ /plitzer-py/python/plitzer/*.so
7
+ /plitzer-py/python/plitzer/*.pyd
@@ -0,0 +1,14 @@
1
+ # Changelog
2
+
3
+ All notable changes to plitzer. The project follows [Semantic Versioning](https://semver.org/); until 1.0, a minor version can change the API or the checkpoint format. A checkpoint from another format version is refused with `CheckpointError`, never misread.
4
+
5
+ ## 0.1.0
6
+
7
+ The first release.
8
+
9
+ - **Loader:** `plitzer.Loader` reads a pre-tokenized `list<int32>` or `list<uint32>` column of Parquet files from a local folder or an `s3://` URL, with no conversion step and no copy of the data. Each step gives one GPU's sequences of exactly `seq_len` tokens as an int32 array, through DLPack and the Arrow PyCapsule interface, with no copy.
10
+ - **Lossless packing:** lane slices are cut by tokens, every sequence is full, no token is dropped and nothing is padded. Lanes run on across epoch ends.
11
+ - **Deterministic, resumable order:** the order is a pure function of `(seed, epoch)` and the dataset, identical on Linux, macOS and Windows. `checkpoint()` gives versioned, checksummed bytes; `plitzer.merge` joins every GPU's part into a global checkpoint that resumes exactly on any GPU count.
12
+ - **PyTorch:** `plitzer.torch.Dataset` (the `torch` extra), an `IterableDataset` whose `state_dict()` gathers all ranks into one global checkpoint.
13
+ - **I/O:** a row-group index from the Parquet footers, cached in a sidecar; reads of one token column chunk with no footer; a prefetch capped by bytes, 16 reads in flight.
14
+ - **Benchmarks:** `plitzer.bench` (the `bench` extra): FineWeb-Edu-shaped data, read amplification, and a harness against MosaicML Streaming and Hugging Face `datasets` (the `baseline` extra).