From 55fdd2dcedab07a2c207fa199ace41b97de2b186 Mon Sep 17 00:00:00 2001 From: Muhammad Ayyan Khan Date: Mon, 24 Aug 2026 04:34:19 +0500 Subject: [PATCH] chore: take every dependency bump in one pass Fourteen Dependabot PRs were open, all based on the pre-fix master where the clippy gate was already red, so their CI failures said nothing about the bumps themselves. Applying them together locally and testing against current master is both faster and more meaningful than fourteen rebase-and-wait cycles. candle-core 0.8.4 -> 0.11.0 candle-nn 0.8.4 -> 0.11.0 tokenizers 0.21.4 -> 0.23.1 safetensors 0.4.5 -> 0.8.0 rand 0.8 -> 0.9 rand_distr 0.4 -> 0.5 criterion 0.5 -> 0.8 clap, bytemuck, tokio -> latest patch actions/checkout 4 -> 7, github-script 7 -> 9, upload-artifact 4 -> 7, codecov-action 4 -> 7 Three mechanical migrations: - rand 0.9 removed StdRng::from_entropy in favour of from_os_rng, and renamed Rng::gen and gen_range to random and random_range. - safetensors 0.8 takes an owned Option for serialize's metadata argument rather than a reference. candle 0.11 needed no code changes at all, and the parity tests pass against it unchanged, so the upgrade does not move the numbers. Real 350M generation still produces correct Python. 102 tests pass, clippy clean at -D warnings. --- .github/workflows/bench.yml | 6 +- .github/workflows/ci.yml | 12 +- .github/workflows/coverage.yml | 6 +- .github/workflows/quality.yml | 4 +- CHANGELOG.md | 12 + Cargo.lock | 617 +++++++++------------ Cargo.toml | 20 +- examples/convert_codegen_to_safetensors.rs | 4 +- src/generation/codegen_generate.rs | 2 +- src/generation/glm_generate.rs | 4 +- src/generation/sampling.rs | 2 +- src/glm/trainable.rs | 2 +- src/training/data.rs | 2 +- src/training/train.rs | 8 +- 14 files changed, 299 insertions(+), 402 deletions(-) diff --git a/.github/workflows/bench.yml b/.github/workflows/bench.yml index 152b0df..06f7f9d 100644 --- a/.github/workflows/bench.yml +++ b/.github/workflows/bench.yml @@ -19,7 +19,7 @@ jobs: name: Criterion Benchmarks runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable @@ -33,7 +33,7 @@ jobs: run: cargo bench --bench transformer -- --warm-up-time 1 --measurement-time 1 --sample-size 10 - name: Upload benchmark report - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: criterion-report path: target/criterion/ @@ -41,7 +41,7 @@ jobs: - name: Post benchmark results (PR only) if: github.event_name == 'pull_request' - uses: actions/github-script@v7 + uses: actions/github-script@v9 with: script: | const fs = require('fs'); diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9c830ee..357763b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: name: Formatting runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@stable with: components: rustfmt @@ -27,7 +27,7 @@ jobs: name: Clippy runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@stable with: components: clippy @@ -41,7 +41,7 @@ jobs: name: Documentation runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 with: @@ -57,7 +57,7 @@ jobs: matrix: os: [ubuntu-latest, macos-latest, windows-latest] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 with: @@ -74,7 +74,7 @@ jobs: name: MSRV (1.75) runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@master with: toolchain: "1.75" @@ -95,7 +95,7 @@ jobs: - "--features server" - "--all-features" steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 with: diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 7f3c996..b8ed682 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -14,7 +14,7 @@ jobs: name: Code Coverage runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@stable with: components: llvm-tools-preview @@ -34,7 +34,7 @@ jobs: --output-path lcov.info - name: Upload to Codecov - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@v7 with: files: lcov.info fail_ci_if_error: false @@ -49,7 +49,7 @@ jobs: --output-dir coverage - name: Upload coverage artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: coverage-report path: coverage/ diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml index 430e939..54a5311 100644 --- a/.github/workflows/quality.yml +++ b/.github/workflows/quality.yml @@ -16,7 +16,7 @@ jobs: permissions: checks: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: rustsec/audit-check@v2.0.0 with: token: ${{ secrets.GITHUB_TOKEN }} @@ -26,7 +26,7 @@ jobs: name: Dependency Audit runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: EmbarkStudios/cargo-deny-action@v2 with: command: check all diff --git a/CHANGELOG.md b/CHANGELOG.md index 35f4fe8..10c451f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed — dependencies +- Took every open Dependabot bump in one pass: candle-core and candle-nn 0.8.4 to 0.11.0, + tokenizers 0.21.4 to 0.23.1, safetensors 0.4.5 to 0.8.0, rand 0.8 to 0.9, rand_distr 0.4 + to 0.5, criterion 0.5 to 0.8, clap, bytemuck and tokio to their latest patch releases, + and actions/checkout, actions/github-script, actions/upload-artifact and + codecov/codecov-action in the workflows. +- Three mechanical migrations were needed: `StdRng::from_entropy` became `from_os_rng`, + `Rng::gen`/`gen_range` became `random`/`random_range`, and + `safetensors::serialize` now takes an owned `Option` for its metadata argument. +- The parity tests pass unchanged against candle 0.11, so the upgrade does not move the + numbers. + ### Fixed — found while validating against the real 350M checkpoint - **`codegen download` reported success without downloading anything.** `huggingface-cli` has been renamed to `hf`; the old name now prints a deprecation diff --git a/Cargo.lock b/Cargo.lock index b270aa1..1cac65d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -31,6 +31,21 @@ dependencies = [ "memchr", ] +[[package]] +name = "alloca" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7d05ea6aea7e9e64d25b9156ba2fee3fdd659e34e41063cd2fc7cd020d7f4" +dependencies = [ + "cc", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + [[package]] name = "anes" version = "0.1.6" @@ -93,15 +108,6 @@ version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" -[[package]] -name = "arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" -dependencies = [ - "derive_arbitrary", -] - [[package]] name = "atomic-waker" version = "1.1.2" @@ -198,9 +204,9 @@ checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "bytemuck" -version = "1.25.1" +version = "1.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6aedf8ae72766347502cf3cb4f41cf5e9cc37d28bee90f1fdaaae15f9cf9424" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" dependencies = [ "bytemuck_derive", ] @@ -213,7 +219,7 @@ checksum = "f65693059b6b9c588b9f62fed1cedbf0a8b805631457ea162d68f0de186f3de5" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.118", ] [[package]] @@ -230,39 +236,44 @@ checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" [[package]] name = "candle-core" -version = "0.8.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ccf5ee3532e66868516d9b315f73aec9f34ea1a37ae98514534d458915dbf1" +checksum = "5ecb245093b0f791b89d3420c3df9c6d49c60ab63ba54db896bf8a3baf486706" dependencies = [ "byteorder", - "gemm 0.17.1", + "float8", + "gemm 0.19.0", "half", + "libc", + "libm", "memmap2", "num-traits", "num_cpus", - "rand 0.9.5", - "rand_distr 0.5.1", + "rand", + "rand_distr", "rayon", "safetensors", - "thiserror 1.0.69", - "ug", - "yoke 0.7.5", + "thiserror 2.0.18", + "tokenizers 0.22.2", + "yoke", + "zerocopy", "zip", ] [[package]] name = "candle-nn" -version = "0.8.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be1160c3b63f47d40d91110a3e1e1e566ae38edddbbf492a60b40ffc3bc1ff38" +checksum = "eaa10b6ccc365b33210ce404fbf45e60d3e0bdac1004463cf1052e6ee1c1739a" dependencies = [ "candle-core", "half", + "libc", "num-traits", "rayon", "safetensors", "serde", - "thiserror 1.0.69", + "thiserror 2.0.18", ] [[package]] @@ -325,9 +336,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.6.1" +version = "4.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" +checksum = "473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca" dependencies = [ "clap_builder", "clap_derive", @@ -335,9 +346,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.6.0" +version = "4.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" +checksum = "7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889" dependencies = [ "anstream", "anstyle", @@ -347,14 +358,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.6.1" +version = "4.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" +checksum = "d012d2b9d65aca7f18f4d9878a045bc17899bba951561ba5ec3c2ba1eed9a061" dependencies = [ "heck", "proc-macro2", "quote", - "syn", + "syn 3.0.3", ] [[package]] @@ -424,25 +435,24 @@ dependencies = [ [[package]] name = "criterion" -version = "0.5.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +checksum = "950046b2aa2492f9a536f5f4f9a3de7b9e2476e575e05bd6c333371add4d98f3" dependencies = [ + "alloca", "anes", "cast", "ciborium", "clap", "criterion-plot", - "is-terminal", - "itertools 0.10.5", + "itertools 0.13.0", "num-traits", - "once_cell", "oorandom", + "page_size", "plotters", "rayon", "regex", "serde", - "serde_derive", "serde_json", "tinytemplate", "walkdir", @@ -450,12 +460,12 @@ dependencies = [ [[package]] name = "criterion-plot" -version = "0.5.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +checksum = "d8d80a2f4f5b554395e47b5d8305bc3d27813bacb73493eb1001e8f76dae29ea" dependencies = [ "cast", - "itertools 0.10.5", + "itertools 0.13.0", ] [[package]] @@ -489,6 +499,12 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" +[[package]] +name = "daachorse" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f55d7153ba3b507595872a3874803f07a8a81d1e888abed8e5db7da0597d6e2" + [[package]] name = "darling" version = "0.20.11" @@ -510,7 +526,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn", + "syn 2.0.118", ] [[package]] @@ -521,7 +537,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn", + "syn 2.0.118", ] [[package]] @@ -539,17 +555,6 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" -[[package]] -name = "derive_arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "derive_builder" version = "0.20.2" @@ -568,7 +573,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn", + "syn 2.0.118", ] [[package]] @@ -578,7 +583,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn", + "syn 2.0.118", ] [[package]] @@ -589,7 +594,7 @@ checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.118", ] [[package]] @@ -642,7 +647,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn", + "syn 2.0.118", ] [[package]] @@ -689,12 +694,30 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "float8" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2d1f04709a8ac06e8e8042875a3c466cc4832d3c1a18dbcb9dba3c6e83046bc" +dependencies = [ + "half", + "num-traits", + "rand", + "rand_distr", +] + [[package]] name = "fnv" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "form_urlencoded" version = "1.2.2" @@ -759,17 +782,17 @@ dependencies = [ [[package]] name = "gemm" -version = "0.18.2" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab96b703d31950f1aeddded248bc95543c9efc7ac9c4a21fda8703a83ee35451" +checksum = "aa0673db364b12263d103b68337a68fbecc541d6f6b61ba72fe438654709eacb" dependencies = [ "dyn-stack 0.13.2", - "gemm-c32 0.18.2", - "gemm-c64 0.18.2", - "gemm-common 0.18.2", - "gemm-f16 0.18.2", - "gemm-f32 0.18.2", - "gemm-f64 0.18.2", + "gemm-c32 0.19.0", + "gemm-c64 0.19.0", + "gemm-common 0.19.0", + "gemm-f16 0.19.0", + "gemm-f32 0.19.0", + "gemm-f64 0.19.0", "num-complex", "num-traits", "paste", @@ -794,12 +817,12 @@ dependencies = [ [[package]] name = "gemm-c32" -version = "0.18.2" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6db9fd9f40421d00eea9dd0770045a5603b8d684654816637732463f4073847" +checksum = "086936dbdcb99e37aad81d320f98f670e53c1e55a98bee70573e83f95beb128c" dependencies = [ "dyn-stack 0.13.2", - "gemm-common 0.18.2", + "gemm-common 0.19.0", "num-complex", "num-traits", "paste", @@ -824,12 +847,12 @@ dependencies = [ [[package]] name = "gemm-c64" -version = "0.18.2" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfcad8a3d35a43758330b635d02edad980c1e143dc2f21e6fd25f9e4eada8edf" +checksum = "20c8aeeeec425959bda4d9827664029ba1501a90a0d1e6228e48bef741db3a3f" dependencies = [ "dyn-stack 0.13.2", - "gemm-common 0.18.2", + "gemm-common 0.19.0", "num-complex", "num-traits", "paste", @@ -859,9 +882,9 @@ dependencies = [ [[package]] name = "gemm-common" -version = "0.18.2" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a352d4a69cbe938b9e2a9cb7a3a63b7e72f9349174a2752a558a8a563510d0f3" +checksum = "88027625910cc9b1085aaaa1c4bc46bb3a36aad323452b33c25b5e4e7c8e2a3e" dependencies = [ "bytemuck", "dyn-stack 0.13.2", @@ -871,7 +894,7 @@ dependencies = [ "num-traits", "once_cell", "paste", - "pulp 0.21.5", + "pulp 0.22.3", "raw-cpuid 11.6.0", "rayon", "seq-macro", @@ -898,13 +921,13 @@ dependencies = [ [[package]] name = "gemm-f16" -version = "0.18.2" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff95ae3259432f3c3410eaa919033cd03791d81cebd18018393dc147952e109" +checksum = "e3df7a55202e6cd6739d82ae3399c8e0c7e1402859b30e4cb780e61525d9486e" dependencies = [ "dyn-stack 0.13.2", - "gemm-common 0.18.2", - "gemm-f32 0.18.2", + "gemm-common 0.19.0", + "gemm-f32 0.19.0", "half", "num-complex", "num-traits", @@ -931,12 +954,12 @@ dependencies = [ [[package]] name = "gemm-f32" -version = "0.18.2" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc8d3d4385393304f407392f754cd2dc4b315d05063f62cf09f47b58de276864" +checksum = "02e0b8c9da1fbec6e3e3ab2ce6bc259ef18eb5f6f0d3e4edf54b75f9fd41a81c" dependencies = [ "dyn-stack 0.13.2", - "gemm-common 0.18.2", + "gemm-common 0.19.0", "num-complex", "num-traits", "paste", @@ -961,12 +984,12 @@ dependencies = [ [[package]] name = "gemm-f64" -version = "0.18.2" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35b2a4f76ce4b8b16eadc11ccf2e083252d8237c1b589558a49b0183545015bd" +checksum = "056131e8f2a521bfab322f804ccd652520c79700d81209e9d9275bbdecaadc6a" dependencies = [ "dyn-stack 0.13.2", - "gemm-common 0.18.2", + "gemm-common 0.19.0", "num-complex", "num-traits", "paste", @@ -1007,11 +1030,24 @@ dependencies = [ "cfg-if", "crunchy", "num-traits", - "rand 0.9.5", - "rand_distr 0.5.1", + "rand", + "rand_distr", "zerocopy", ] +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", + "serde", + "serde_core", +] + [[package]] name = "hashbrown" version = "0.17.1" @@ -1119,7 +1155,7 @@ dependencies = [ "displaydoc", "potential_utf", "utf8_iter", - "yoke 0.8.3", + "yoke", "zerofrom", "zerovec", ] @@ -1186,7 +1222,7 @@ dependencies = [ "displaydoc", "icu_locale_core", "writeable", - "yoke 0.8.3", + "yoke", "zerofrom", "zerotrie", "zerovec", @@ -1226,18 +1262,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown", -] - -[[package]] -name = "is-terminal" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.61.2", + "hashbrown 0.17.1", ] [[package]] @@ -1248,9 +1273,9 @@ checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "itertools" -version = "0.10.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ "either", ] @@ -1287,16 +1312,6 @@ version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" -[[package]] -name = "libloading" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" -dependencies = [ - "cfg-if", - "windows-link", -] - [[package]] name = "libm" version = "0.2.16" @@ -1417,7 +1432,7 @@ checksum = "e4db6d5580af57bf992f59068d4ea26fd518574ff48d7639b255a36f9de6e7e9" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.118", ] [[package]] @@ -1430,30 +1445,6 @@ dependencies = [ "minimal-lexical", ] -[[package]] -name = "num" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" -dependencies = [ - "num-bigint", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" -dependencies = [ - "num-integer", - "num-traits", -] - [[package]] name = "num-complex" version = "0.4.6" @@ -1470,36 +1461,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c92800bd69a1eac91786bcfe9da64a897eb72911b8dc3095decbd07429e8048b" -dependencies = [ - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" -dependencies = [ - "num-bigint", - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -1520,28 +1481,6 @@ dependencies = [ "libc", ] -[[package]] -name = "num_enum" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" -dependencies = [ - "num_enum_derive", - "rustversion", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "once_cell" version = "1.21.4" @@ -1582,6 +1521,16 @@ version = "11.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" +[[package]] +name = "page_size" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d5b2194ed13191c1999ae0704b7839fb18384fa22e49b57eeaa97d79ce40da" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "paste" version = "1.0.15" @@ -1658,15 +1607,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "proc-macro-crate" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" -dependencies = [ - "toml_edit", -] - [[package]] name = "proc-macro2" version = "1.0.106" @@ -1690,18 +1630,27 @@ dependencies = [ [[package]] name = "pulp" -version = "0.21.5" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b86df24f0a7ddd5e4b95c94fc9ed8a98f1ca94d3b01bdce2824097e7835907" +checksum = "046aa45b989642ec2e4717c8e72d677b13edd831a4d3b6cf37d9a3e54912496a" dependencies = [ "bytemuck", "cfg-if", "libm", "num-complex", + "paste", + "pulp-wasm-simd-flag", + "raw-cpuid 11.6.0", "reborrow", "version_check", ] +[[package]] +name = "pulp-wasm-simd-flag" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d8f70e07b9c3962945a74e59ca1c511bba65b6419468acc217c457d93f3c740" + [[package]] name = "quote" version = "1.0.46" @@ -1717,35 +1666,14 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" -[[package]] -name = "rand" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22f6172bdec972074665ed81ed53b71da00bfc44b65a753cfde883ec4c702a1a" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - [[package]] name = "rand" version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.5", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", + "rand_chacha", + "rand_core", ] [[package]] @@ -1755,16 +1683,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.5", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.17", + "rand_core", ] [[package]] @@ -1776,16 +1695,6 @@ dependencies = [ "getrandom 0.3.4", ] -[[package]] -name = "rand_distr" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" -dependencies = [ - "num-traits", - "rand 0.8.7", -] - [[package]] name = "rand_distr" version = "0.5.1" @@ -1793,7 +1702,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8615d50dcf34fa31f7ab52692afec947c4dd0ab803cc87cb3b0b4570ff7463" dependencies = [ "num-traits", - "rand 0.9.5", + "rand", ] [[package]] @@ -1907,14 +1816,14 @@ dependencies = [ "criterion", "gemm 0.17.1", "half", - "rand 0.8.7", - "rand_distr 0.4.3", + "rand", + "rand_distr", "safetensors", "serde", "serde_json", "serde_yaml", "tempfile", - "tokenizers", + "tokenizers 0.23.1", "tokio", "ureq", ] @@ -1981,12 +1890,15 @@ checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" [[package]] name = "safetensors" -version = "0.4.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44560c11236a6130a46ce36c836a62936dc81ebf8c36a37947423571be0e55b6" +checksum = "79b079b829cb27a1c3c374341345ed2e8b2c0c839034522cee576c140bd7f846" dependencies = [ + "hashbrown 0.16.1", + "libc", "serde", "serde_json", + "tempfile", ] [[package]] @@ -2031,7 +1943,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.118", ] [[package]] @@ -2164,6 +2076,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "sync_wrapper" version = "1.0.2" @@ -2178,7 +2101,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.118", ] [[package]] @@ -2248,7 +2171,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.118", ] [[package]] @@ -2259,7 +2182,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.118", ] [[package]] @@ -2314,9 +2237,9 @@ dependencies = [ [[package]] name = "tokenizers" -version = "0.21.4" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a620b996116a59e184c2fa2dfd8251ea34a36d0a514758c6f966386bd2e03476" +checksum = "b238e22d44a15349529690fb07bd645cf58149a1b1e44d6cb5bd1641ff1a6223" dependencies = [ "ahash", "aho-corasick", @@ -2331,7 +2254,40 @@ dependencies = [ "monostate", "onig", "paste", - "rand 0.9.5", + "rand", + "rayon", + "rayon-cond", + "regex", + "regex-syntax", + "serde", + "serde_json", + "spm_precompiled", + "thiserror 2.0.18", + "unicode-normalization-alignments", + "unicode-segmentation", + "unicode_categories", +] + +[[package]] +name = "tokenizers" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44e5bea67576e04b6ff8564c5d9e09c2ef0cf476502245f2f120e497769d3112" +dependencies = [ + "ahash", + "compact_str", + "daachorse", + "dary_heap", + "derive_builder", + "esaxx-rs", + "getrandom 0.3.4", + "itertools 0.14.0", + "log", + "macro_rules_attribute", + "monostate", + "onig", + "paste", + "rand", "rayon", "rayon-cond", "regex", @@ -2347,9 +2303,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.52.4" +version = "1.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317fafbbe3f02fc663dad00ea6186197de963cd4190e86a26d8d0fae095539af" +checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed" dependencies = [ "libc", "mio", @@ -2367,37 +2323,7 @@ checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" dependencies = [ "proc-macro2", "quote", - "syn", -] - -[[package]] -name = "toml_datetime" -version = "1.1.1+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" -dependencies = [ - "serde_core", -] - -[[package]] -name = "toml_edit" -version = "0.25.13+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b" -dependencies = [ - "indexmap", - "toml_datetime", - "toml_parser", - "winnow", -] - -[[package]] -name = "toml_parser" -version = "1.1.2+spec-1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" -dependencies = [ - "winnow", + "syn 2.0.118", ] [[package]] @@ -2436,21 +2362,9 @@ checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "log", "pin-project-lite", - "tracing-attributes", "tracing-core", ] -[[package]] -name = "tracing-attributes" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "tracing-core" version = "0.1.36" @@ -2461,25 +2375,10 @@ dependencies = [ ] [[package]] -name = "ug" -version = "0.1.0" +name = "typed-path" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03719c61a91b51541f076dfdba45caacf750b230cefaa4b32d6f5411c3f7f437" -dependencies = [ - "gemm 0.18.2", - "half", - "libloading", - "memmap2", - "num", - "num-traits", - "num_cpus", - "rayon", - "safetensors", - "serde", - "thiserror 1.0.69", - "tracing", - "yoke 0.7.5", -] +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" [[package]] name = "unicode-ident" @@ -2645,7 +2544,7 @@ dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn", + "syn 2.0.118", "wasm-bindgen-shared", ] @@ -2677,6 +2576,22 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + [[package]] name = "winapi-util" version = "0.1.11" @@ -2686,6 +2601,12 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + [[package]] name = "windows-link" version = "0.2.1" @@ -2774,15 +2695,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "winnow" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" -dependencies = [ - "memchr", -] - [[package]] name = "wit-bindgen" version = "0.57.1" @@ -2795,18 +2707,6 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive 0.7.5", - "zerofrom", -] - [[package]] name = "yoke" version = "0.8.3" @@ -2814,22 +2714,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" dependencies = [ "stable_deref_trait", - "yoke-derive 0.8.2", + "yoke-derive", "zerofrom", ] -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - [[package]] name = "yoke-derive" version = "0.8.2" @@ -2838,7 +2726,7 @@ checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.118", "synstructure", ] @@ -2859,7 +2747,7 @@ checksum = "e2e817b7b52d0c7358d3246da9d69935ebb18116b2b102b4230dac079b4862f5" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.118", ] [[package]] @@ -2879,7 +2767,7 @@ checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.118", "synstructure", ] @@ -2896,7 +2784,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" dependencies = [ "displaydoc", - "yoke 0.8.3", + "yoke", "zerofrom", ] @@ -2906,7 +2794,7 @@ version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" dependencies = [ - "yoke 0.8.3", + "yoke", "zerofrom", "zerovec-derive", ] @@ -2919,22 +2807,19 @@ checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.118", ] [[package]] name = "zip" -version = "1.1.4" +version = "8.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cc23c04387f4da0374be4533ad1208cbb091d5c11d070dfef13676ad6497164" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" dependencies = [ - "arbitrary", "crc32fast", - "crossbeam-utils", - "displaydoc", "indexmap", - "num_enum", - "thiserror 1.0.69", + "memchr", + "typed-path", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 9ed2e0d..5400826 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,24 +18,24 @@ default = [] server = ["dep:axum", "dep:tokio"] [dependencies] -candle-core = "0.8.0" -candle-nn = "0.8.0" -tokenizers = { version = "0.21.0", default-features = false, features = ["onig"] } +candle-core = "0.11.0" +candle-nn = "0.11.0" +tokenizers = { version = "0.23.1", default-features = false, features = ["onig"] } anyhow = "1.0" -safetensors = "0.4.3" +safetensors = "0.8.0" serde_json = "1.0" ureq = { version = "3", features = ["json"] } gemm = { version = "0.17", features = ["f16"] } serde = { version = "1.0", features = ["derive"] } serde_yaml = "0.9" -rand = "0.8" -rand_distr = "0.4" -bytemuck = "1.15" +rand = "0.9" +rand_distr = "0.5" +bytemuck = "1.25.2" half = "2.7" -clap = { version = "4", features = ["derive"] } +clap = { version = "4.6.4", features = ["derive"] } axum = { version = "0.8", features = ["json"], optional = true } -tokio = { version = "1", features = ["rt-multi-thread", "macros"], optional = true } +tokio = { version = "1.53.1", features = ["rt-multi-thread", "macros"], optional = true } [dev-dependencies] -criterion = "0.5" +criterion = "0.8" tempfile = "3.8" diff --git a/examples/convert_codegen_to_safetensors.rs b/examples/convert_codegen_to_safetensors.rs index 89cc98f..15d5170 100644 --- a/examples/convert_codegen_to_safetensors.rs +++ b/examples/convert_codegen_to_safetensors.rs @@ -140,7 +140,7 @@ fn main() -> anyhow::Result<()> { tensor_map.insert(s.name.clone(), view); } - let serialized = safetensors::serialize(tensor_map, &None) + let serialized = safetensors::serialize(tensor_map, None) .map_err(|e| anyhow::anyhow!("Failed to serialize safetensors: {e}"))?; // Write to file @@ -295,7 +295,7 @@ fn enumerate_and_save( tensor_map.insert(s.name.clone(), view); } - let serialized = safetensors::serialize(tensor_map, &None) + let serialized = safetensors::serialize(tensor_map, None) .map_err(|e| anyhow::anyhow!("Failed to serialize safetensors: {e}"))?; if let Some(parent) = output_path.parent() { diff --git a/src/generation/codegen_generate.rs b/src/generation/codegen_generate.rs index 71b6f40..bc6bffc 100644 --- a/src/generation/codegen_generate.rs +++ b/src/generation/codegen_generate.rs @@ -184,7 +184,7 @@ impl CodeGenGenerator { // same value at every step. let mut rng = match self.seed { Some(seed) => StdRng::seed_from_u64(seed), - None => StdRng::from_entropy(), + None => StdRng::from_os_rng(), }; let mut cache: Option> = None; diff --git a/src/generation/glm_generate.rs b/src/generation/glm_generate.rs index 89e87d3..08fb184 100644 --- a/src/generation/glm_generate.rs +++ b/src/generation/glm_generate.rs @@ -48,7 +48,7 @@ impl GLMGenerator { /// No blanks — generates new tokens after the prompt. pub fn generate(&self, prompt_token_ids: &[u32]) -> Result> { let device = self.model.embedding.weight.device(); - let mut rng = StdRng::from_entropy(); + let mut rng = StdRng::from_os_rng(); let mut generated = prompt_token_ids.to_vec(); for _step in 0..self.max_new_tokens { @@ -89,7 +89,7 @@ impl GLMGenerator { /// - earlier positions within the same blank (causal within-span) pub fn fill_blanks(&self, context: &[u32], blank_lens: &[usize]) -> Result> { let device = self.model.embedding.weight.device(); - let mut rng = StdRng::from_entropy(); + let mut rng = StdRng::from_os_rng(); let total_blank_tokens: usize = blank_lens.iter().sum(); let mut all_tokens = context.to_vec(); diff --git a/src/generation/sampling.rs b/src/generation/sampling.rs index 7236878..1738360 100644 --- a/src/generation/sampling.rs +++ b/src/generation/sampling.rs @@ -94,7 +94,7 @@ pub fn sample( *p /= sum; } - let r: f32 = rng.gen(); + let r: f32 = rng.random(); cumulative = 0.0; for &(idx, p) in &indexed { diff --git a/src/glm/trainable.rs b/src/glm/trainable.rs index 4f4985c..905dcc1 100644 --- a/src/glm/trainable.rs +++ b/src/glm/trainable.rs @@ -349,7 +349,7 @@ impl TrainableGLMModel { ); } - let bytes = serialize(&tensors, &None)?; + let bytes = serialize(&tensors, None)?; std::fs::write(path, bytes) .map_err(|e| candle_core::Error::Msg(format!("Failed to write safetensors: {e}")))?; diff --git a/src/training/data.rs b/src/training/data.rs index ef1cd48..307c002 100644 --- a/src/training/data.rs +++ b/src/training/data.rs @@ -66,7 +66,7 @@ impl DataLoader { let ex = &self.examples[self.current_idx]; let tokens = if ex.tokens.len() > self.max_seq_len { let max_start = ex.tokens.len() - self.max_seq_len; - let start = self.rng.gen_range(0..=max_start); + let start = self.rng.random_range(0..=max_start); ex.tokens[start..start + self.max_seq_len].to_vec() } else { ex.tokens.clone() diff --git a/src/training/train.rs b/src/training/train.rs index 716a511..de819c9 100644 --- a/src/training/train.rs +++ b/src/training/train.rs @@ -46,12 +46,12 @@ fn corrupt(config: &GLMConfig, tokens: &[u32], rng: &mut impl Rng) -> (Vec, let mut labels = vec![-1i64; tokens.len()]; for i in 0..tokens.len() { - if rng.gen::() < config.blank_ratio { + if rng.random::() < config.blank_ratio { labels[i] = tokens[i] as i64; - inputs[i] = if rng.gen::() < config.mask_ratio { + inputs[i] = if rng.random::() < config.mask_ratio { mask_token_id } else { - rng.gen_range(0..config.vocab_size as u32) + rng.random_range(0..config.vocab_size as u32) }; } } @@ -538,7 +538,7 @@ fn save_safetensors(path: &Path, tensors: &[(String, &Tensor)]) -> Result<()> { ); } - let bytes = serialize(tensor_map, &None)?; + let bytes = serialize(tensor_map, None)?; std::fs::write(path, bytes) .map_err(|e| candle_core::Error::Msg(format!("Failed to write safetensors: {e}")))?;