diff --git a/CHANGELOG.md b/CHANGELOG.md index df9574d5..589accf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,38 @@ # Changelog This documents the main changes to the `candle` crate. -## v0.2.3 - Unreleased +## v0.3.1 - Unreleased ### Added ### Modified +## v0.3.0 - 2023-10-01 + +### Added + +- Added the Mistral 7b v0.1 model + [983](https://github.com/huggingface/candle/pull/983). +- Quantized version of the Mistral model + [1009](https://github.com/huggingface/candle/pull/1009). +- Add the gelu-erf op and activation function + [969](https://github.com/huggingface/candle/pull/969). +- Add the mixformer/phi-v1.5 model + [930](https://github.com/huggingface/candle/pull/930). +- Add the sclice-scatter op + [927](https://github.com/huggingface/candle/pull/927). +- Add the Wuerstchen diffusion model + [911](https://github.com/huggingface/candle/pull/911). + +### Modified + +- Support for simd128 intrinsics in some quantized vecdots + [982](https://github.com/huggingface/candle/pull/982). +- Optimize the index-select cuda kernel + [976](https://github.com/huggingface/candle/pull/976). +- Self-contained safetensor wrappers + [946](https://github.com/huggingface/candle/pull/946). + ## v0.2.2 - 2023-09-18 ### Added diff --git a/Cargo.toml b/Cargo.toml index c502fcc5..03abe110 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ exclude = ["candle-flash-attn", "candle-kernels"] resolver = "2" [workspace.package] -version = "0.2.3" +version = "0.3.0" edition = "2021" description = "Minimalist ML framework." repository = "https://github.com/huggingface/candle" diff --git a/candle-book/Cargo.toml b/candle-book/Cargo.toml index 8ec92e87..8aec0822 100644 --- a/candle-book/Cargo.toml +++ b/candle-book/Cargo.toml @@ -11,11 +11,11 @@ readme = "README.md" [dependencies] accelerate-src = { workspace = true, optional = true } -candle = { path = "../candle-core", version = "0.2.3", package = "candle-core" } -candle-datasets = { path = "../candle-datasets", version = "0.2.3" } -candle-nn = { path = "../candle-nn", version = "0.2.3" } -candle-transformers = { path = "../candle-transformers", version = "0.2.3" } -candle-flash-attn = { path = "../candle-flash-attn", version = "0.2.3", optional = true } +candle = { path = "../candle-core", version = "0.3.0", package = "candle-core" } +candle-datasets = { path = "../candle-datasets", version = "0.3.0" } +candle-nn = { path = "../candle-nn", version = "0.3.0" } +candle-transformers = { path = "../candle-transformers", version = "0.3.0" } +candle-flash-attn = { path = "../candle-flash-attn", version = "0.3.0", optional = true } safetensors = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } diff --git a/candle-core/Cargo.toml b/candle-core/Cargo.toml index 0b6fce50..8e57127a 100644 --- a/candle-core/Cargo.toml +++ b/candle-core/Cargo.toml @@ -12,7 +12,7 @@ readme = "README.md" [dependencies] accelerate-src = { workspace = true, optional = true } byteorder = { workspace = true } -candle-kernels = { path = "../candle-kernels", version = "0.2.3", optional = true } +candle-kernels = { path = "../candle-kernels", version = "0.3.0", optional = true } cudarc = { workspace = true, optional = true } gemm = { workspace = true } half = { workspace = true } diff --git a/candle-datasets/Cargo.toml b/candle-datasets/Cargo.toml index 316f31c5..ca9aed1c 100644 --- a/candle-datasets/Cargo.toml +++ b/candle-datasets/Cargo.toml @@ -11,8 +11,8 @@ readme = "README.md" [dependencies] byteorder = { workspace = true } -candle = { path = "../candle-core", version = "0.2.3", package = "candle-core" } -candle-nn = { path = "../candle-nn", version = "0.2.3" } +candle = { path = "../candle-core", version = "0.3.0", package = "candle-core" } +candle-nn = { path = "../candle-nn", version = "0.3.0" } hf-hub = { workspace = true} intel-mkl-src = { workspace = true, optional = true } memmap2 = { workspace = true } diff --git a/candle-examples/Cargo.toml b/candle-examples/Cargo.toml index ad2bbf39..f719352f 100644 --- a/candle-examples/Cargo.toml +++ b/candle-examples/Cargo.toml @@ -11,11 +11,11 @@ readme = "README.md" [dependencies] accelerate-src = { workspace = true, optional = true } -candle = { path = "../candle-core", version = "0.2.3", package = "candle-core" } -candle-datasets = { path = "../candle-datasets", version = "0.2.3" } -candle-nn = { path = "../candle-nn", version = "0.2.3" } -candle-transformers = { path = "../candle-transformers", version = "0.2.3" } -candle-flash-attn = { path = "../candle-flash-attn", version = "0.2.3", optional = true } +candle = { path = "../candle-core", version = "0.3.0", package = "candle-core" } +candle-datasets = { path = "../candle-datasets", version = "0.3.0" } +candle-nn = { path = "../candle-nn", version = "0.3.0" } +candle-transformers = { path = "../candle-transformers", version = "0.3.0" } +candle-flash-attn = { path = "../candle-flash-attn", version = "0.3.0", optional = true } cudarc = { workspace = true, optional = true } half = { workspace = true, optional = true } image = { workspace = true } diff --git a/candle-flash-attn/Cargo.toml b/candle-flash-attn/Cargo.toml index 808e0070..e9b036b5 100644 --- a/candle-flash-attn/Cargo.toml +++ b/candle-flash-attn/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "candle-flash-attn" -version = "0.2.3" +version = "0.3.0" edition = "2021" description = "Flash attention layer for the candle ML framework." @@ -11,7 +11,7 @@ license = "MIT OR Apache-2.0" readme = "README.md" [dependencies] -candle = { path = "../candle-core", features = ["cuda"], version = "0.2.3", package = "candle-core" } +candle = { path = "../candle-core", features = ["cuda"], version = "0.3.0", package = "candle-core" } half = { version = "2.3.1", features = ["num-traits"] } [build-dependencies] @@ -21,4 +21,4 @@ rayon = "1.7.0" [dev-dependencies] anyhow = { version = "1", features = ["backtrace"] } -candle-nn = { path = "../candle-nn", version = "0.2.3", features = ["cuda"] } +candle-nn = { path = "../candle-nn", version = "0.3.0", features = ["cuda"] } diff --git a/candle-kernels/Cargo.toml b/candle-kernels/Cargo.toml index 80b6aaab..01f132a3 100644 --- a/candle-kernels/Cargo.toml +++ b/candle-kernels/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "candle-kernels" -version = "0.2.3" +version = "0.3.0" edition = "2021" description = "CUDA kernels for Candle" diff --git a/candle-nn/Cargo.toml b/candle-nn/Cargo.toml index a6629d33..4b1f7917 100644 --- a/candle-nn/Cargo.toml +++ b/candle-nn/Cargo.toml @@ -11,7 +11,7 @@ readme = "README.md" [dependencies] accelerate-src = { workspace = true, optional = true } -candle = { path = "../candle-core", version = "0.2.3", package = "candle-core" } +candle = { path = "../candle-core", version = "0.3.0", package = "candle-core" } half = { workspace = true } thiserror = { workspace = true } intel-mkl-src = { workspace = true, optional = true } diff --git a/candle-nn/src/var_builder.rs b/candle-nn/src/var_builder.rs index 6e143615..24832bc7 100644 --- a/candle-nn/src/var_builder.rs +++ b/candle-nn/src/var_builder.rs @@ -412,26 +412,6 @@ impl<'a> VarBuilder<'a> { Self::new(Box::new(varmap.clone()), dtype, dev.clone()) } - /// Initializes a `VarBuilder` that retrieves tensors stored in a collection of safetensors - /// data. - #[deprecated( - since = "0.2.3", - note = "use from_mmaped_safetensors or from_buffered_safetensors instead" - )] - pub fn from_safetensors(safetensors: Vec>, dtype: DType, dev: &Device) -> Self { - let mut routing = HashMap::new(); - for (index, sf) in safetensors.iter().enumerate() { - for k in sf.names() { - routing.insert(k.to_string(), index); - } - } - let tensors = SafeTensorWithRouting { - routing, - safetensors, - }; - Self::new(Box::new(tensors), dtype, dev.clone()) - } - /// Initializes a `VarBuilder` that retrieves tensors stored in a collection of safetensors /// files. /// diff --git a/candle-pyo3/Cargo.toml b/candle-pyo3/Cargo.toml index 7fd0ac28..5ef0240d 100644 --- a/candle-pyo3/Cargo.toml +++ b/candle-pyo3/Cargo.toml @@ -14,8 +14,8 @@ name = "candle" crate-type = ["cdylib"] [dependencies] -candle = { path = "../candle-core", version = "0.2.3", package = "candle-core" } -candle-nn = { path = "../candle-nn", version = "0.2.3" } +candle = { path = "../candle-core", version = "0.3.0", package = "candle-core" } +candle-nn = { path = "../candle-nn", version = "0.3.0" } half = { workspace = true } pyo3 = { version = "0.19.0", features = ["extension-module"] } diff --git a/candle-transformers/Cargo.toml b/candle-transformers/Cargo.toml index a3115c2b..5af7e55d 100644 --- a/candle-transformers/Cargo.toml +++ b/candle-transformers/Cargo.toml @@ -11,9 +11,9 @@ readme = "README.md" [dependencies] accelerate-src = { workspace = true, optional = true } -candle = { path = "../candle-core", version = "0.2.3", package = "candle-core" } -candle-flash-attn = { path = "../candle-flash-attn", version = "0.2.3", optional = true } -candle-nn = { path = "../candle-nn", version = "0.2.3" } +candle = { path = "../candle-core", version = "0.3.0", package = "candle-core" } +candle-flash-attn = { path = "../candle-flash-attn", version = "0.3.0", optional = true } +candle-nn = { path = "../candle-nn", version = "0.3.0" } intel-mkl-src = { workspace = true, optional = true } num-traits = { workspace = true } rand = { workspace = true } diff --git a/candle-wasm-examples/bert/Cargo.toml b/candle-wasm-examples/bert/Cargo.toml index 81a043de..6b117153 100644 --- a/candle-wasm-examples/bert/Cargo.toml +++ b/candle-wasm-examples/bert/Cargo.toml @@ -9,9 +9,9 @@ categories.workspace = true license.workspace = true [dependencies] -candle = { path = "../../candle-core", version = "0.2.2", package = "candle-core" } -candle-nn = { path = "../../candle-nn", version = "0.2.2" } -candle-transformers = { path = "../../candle-transformers", version = "0.2.2" } +candle = { path = "../../candle-core", version = "0.3.0", package = "candle-core" } +candle-nn = { path = "../../candle-nn", version = "0.3.0" } +candle-transformers = { path = "../../candle-transformers", version = "0.3.0" } num-traits = { workspace = true } tokenizers = { workspace = true, features = ["unstable_wasm"] } diff --git a/candle-wasm-examples/llama2-c/Cargo.toml b/candle-wasm-examples/llama2-c/Cargo.toml index 601f5e34..de5f5191 100644 --- a/candle-wasm-examples/llama2-c/Cargo.toml +++ b/candle-wasm-examples/llama2-c/Cargo.toml @@ -9,9 +9,9 @@ categories.workspace = true license.workspace = true [dependencies] -candle = { path = "../../candle-core", version = "0.2.3", package = "candle-core" } -candle-nn = { path = "../../candle-nn", version = "0.2.3" } -candle-transformers = { path = "../../candle-transformers", version = "0.2.3" } +candle = { path = "../../candle-core", version = "0.3.0", package = "candle-core" } +candle-nn = { path = "../../candle-nn", version = "0.3.0" } +candle-transformers = { path = "../../candle-transformers", version = "0.3.0" } num-traits = { workspace = true } tokenizers = { workspace = true, features = ["unstable_wasm"] } diff --git a/candle-wasm-examples/phi/Cargo.toml b/candle-wasm-examples/phi/Cargo.toml index cd4c0d99..8e3f5754 100644 --- a/candle-wasm-examples/phi/Cargo.toml +++ b/candle-wasm-examples/phi/Cargo.toml @@ -9,9 +9,9 @@ categories.workspace = true license.workspace = true [dependencies] -candle = { path = "../../candle-core", version = "0.2.3", package = "candle-core" } -candle-nn = { path = "../../candle-nn", version = "0.2.3" } -candle-transformers = { path = "../../candle-transformers", version = "0.2.3" } +candle = { path = "../../candle-core", version = "0.3.0", package = "candle-core" } +candle-nn = { path = "../../candle-nn", version = "0.3.0" } +candle-transformers = { path = "../../candle-transformers", version = "0.3.0" } tokenizers = { workspace = true, features = ["unstable_wasm"] } num-traits = { workspace = true } diff --git a/candle-wasm-examples/segment-anything/Cargo.toml b/candle-wasm-examples/segment-anything/Cargo.toml index 46b85615..16c78ed3 100644 --- a/candle-wasm-examples/segment-anything/Cargo.toml +++ b/candle-wasm-examples/segment-anything/Cargo.toml @@ -9,9 +9,9 @@ categories.workspace = true license.workspace = true [dependencies] -candle = { path = "../../candle-core", version = "0.2.3", package = "candle-core" } -candle-nn = { path = "../../candle-nn", version = "0.2.3" } -candle-transformers = { path = "../../candle-transformers", version = "0.2.3" } +candle = { path = "../../candle-core", version = "0.3.0", package = "candle-core" } +candle-nn = { path = "../../candle-nn", version = "0.3.0" } +candle-transformers = { path = "../../candle-transformers", version = "0.3.0" } num-traits = { workspace = true } # App crates. diff --git a/candle-wasm-examples/t5/Cargo.toml b/candle-wasm-examples/t5/Cargo.toml index b011d2e5..88d76af9 100644 --- a/candle-wasm-examples/t5/Cargo.toml +++ b/candle-wasm-examples/t5/Cargo.toml @@ -9,9 +9,9 @@ categories.workspace = true license.workspace = true [dependencies] -candle = { path = "../../candle-core", version = "0.2.2", package = "candle-core" } -candle-nn = { path = "../../candle-nn", version = "0.2.2" } -candle-transformers = { path = "../../candle-transformers", version = "0.2.2" } +candle = { path = "../../candle-core", version = "0.3.0", package = "candle-core" } +candle-nn = { path = "../../candle-nn", version = "0.3.0" } +candle-transformers = { path = "../../candle-transformers", version = "0.3.0" } num-traits = { workspace = true } tokenizers = { workspace = true, features = ["unstable_wasm"] } diff --git a/candle-wasm-examples/whisper/Cargo.toml b/candle-wasm-examples/whisper/Cargo.toml index 8f1df531..bf9a4b34 100644 --- a/candle-wasm-examples/whisper/Cargo.toml +++ b/candle-wasm-examples/whisper/Cargo.toml @@ -9,8 +9,8 @@ categories.workspace = true license.workspace = true [dependencies] -candle = { path = "../../candle-core", version = "0.2.3", package = "candle-core" } -candle-nn = { path = "../../candle-nn", version = "0.2.3" } +candle = { path = "../../candle-core", version = "0.3.0", package = "candle-core" } +candle-nn = { path = "../../candle-nn", version = "0.3.0" } num-traits = { workspace = true } tokenizers = { workspace = true, features = ["unstable_wasm"] } diff --git a/candle-wasm-examples/yolo/Cargo.toml b/candle-wasm-examples/yolo/Cargo.toml index 71ef8049..7b2f9a9b 100644 --- a/candle-wasm-examples/yolo/Cargo.toml +++ b/candle-wasm-examples/yolo/Cargo.toml @@ -9,8 +9,8 @@ categories.workspace = true license.workspace = true [dependencies] -candle = { path = "../../candle-core", version = "0.2.3", package = "candle-core" } -candle-nn = { path = "../../candle-nn", version = "0.2.3" } +candle = { path = "../../candle-core", version = "0.3.0", package = "candle-core" } +candle-nn = { path = "../../candle-nn", version = "0.3.0" } num-traits = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } diff --git a/candle-wasm-tests/Cargo.toml b/candle-wasm-tests/Cargo.toml index 5d8553d7..0d5b0a2e 100644 --- a/candle-wasm-tests/Cargo.toml +++ b/candle-wasm-tests/Cargo.toml @@ -7,7 +7,7 @@ keywords.workspace = true categories.workspace = true [dependencies] -candle = { path = "../candle-core", version = "0.2.3", package = "candle-core" } +candle = { path = "../candle-core", version = "0.3.0", package = "candle-core" } rand = { workspace = true } getrandom = { version = "0.2", features = ["js"] }