From 4bc4cc9ff725a14b003f35ea33d0020f37f26eec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=94=E7=A9=B6=E7=A4=BE=E4=BA=A4?= Date: Mon, 20 May 2024 11:01:32 +0800 Subject: [PATCH] Move `converter` into a package. (#118) --- Cargo.lock | 24 +++++++------- Cargo.toml | 32 ++++--------------- README.md | 4 +-- README_zh.md | 2 +- crates/ai00-server/src/main.rs | 1 + crates/converter/Cargo.toml | 20 ++++++++++++ .../converter/src/main.rs | 0 7 files changed, 43 insertions(+), 40 deletions(-) create mode 100644 crates/converter/Cargo.toml rename src/bin/converter.rs => crates/converter/src/main.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index c33b6302..9a61f0f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "ai00-core" -version = "0.4.9" +version = "0.5.0" dependencies = [ "anyhow", "bit-set", @@ -113,7 +113,7 @@ dependencies = [ [[package]] name = "ai00-server" -version = "0.4.9" +version = "0.5.0" dependencies = [ "ai00-core", "anyhow", @@ -139,16 +139,6 @@ dependencies = [ "zip-extract", ] -[[package]] -name = "ai00_server" -version = "0.4.9" -dependencies = [ - "anyhow", - "clap", - "memmap2", - "web-rwkv-converter", -] - [[package]] name = "alloc-no-stdlib" version = "2.0.4" @@ -715,6 +705,16 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +[[package]] +name = "converter" +version = "0.5.0" +dependencies = [ + "anyhow", + "clap", + "memmap2", + "web-rwkv-converter", +] + [[package]] name = "cookie" version = "0.18.1" diff --git a/Cargo.toml b/Cargo.toml index d15d6e22..4c7c8ec6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,4 +1,9 @@ -[package] +[workspace] +default-members = ["crates/ai00-server"] +members = ["crates/ai00-core", "crates/ai00-server", "crates/converter"] +resolver = "2" + +[workspace.package] authors = ["Gu ZhenNiu <448885@qq.com>", "Zhang Zhenyuan "] categories = ["science"] description = "An implementation of the RWKV language model in pure WebGPU." @@ -7,21 +12,9 @@ exclude = ["assets"] homepage = "https://github.com/cgisky1980/ai00_rwkv_server" keywords = ["LLM", "deep-learning", "model", "rwkv"] license = "MIT OR Apache-2.0" -name = "ai00_server" repository = "https://github.com/cgisky1980/ai00_rwkv_server" rust-version = "1.76" -version = "0.4.9" - -[workspace] -default-members = ["crates/ai00-server"] -members = ["crates/ai00-core", "crates/ai00-server"] -resolver = "2" - -[workspace.package] -edition = "2021" -license = "MIT OR Apache-2.0" -rust-version = "1.76" -version = "0.4.9" +version = "0.5.0" [workspace.dependencies] anyhow = "1" @@ -37,16 +30,5 @@ default-features = false features = ["native"] version = "0.8.9" -[dependencies] -anyhow = "1" -clap = { version = "4.3", features = ["derive"] } -memmap2 = "0.9" -web-rwkv-converter = "0.1.2" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[[bin]] -name = "converter" - [profile.release] lto = false diff --git a/README.md b/README.md index c7c575fc..f0baa2f2 100644 --- a/README.md +++ b/README.md @@ -112,13 +112,13 @@ It only supports Safetensors models with the `.st` extension now. Models saved w 2. In the [Release](https://github.com/cgisky1980/ai00_rwkv_server/releases) you could find an executable called `converter`. Run ```bash - $ ./converter --input /path/to/model.pth + $ ./converter --input /path/to/model.pth --output /path/to/model.st ``` 3. If you are building from source, run ```bash - $ cargo run --release --bin converter -- --input /path/to/model.pth + $ cargo run --release --package converter -- --input /path/to/model.pth --output /path/to/model.st ``` 4. Just like the steps mentioned above, place the model in the `.st` model in the `assets/models/` path and modify the model path in [`assets/Config.toml`](./assets/Config.toml) diff --git a/README_zh.md b/README_zh.md index bcc08bf7..014d6592 100644 --- a/README_zh.md +++ b/README_zh.md @@ -114,7 +114,7 @@ 4. 如果你不想安装 Python 或 Torch,可以前往[`web-rwkv`](https://github.com/cryscan/web-rwkv/releases)并下载不依赖于 Python 或 Torch 的转换器`web-rwkv-converter` ```bash - $ ./web-rwkv-converter --input /path/to/model.pth + $ ./web-rwkv-converter --input /path/to/model.pth --output /path/to/model.st ``` 5. 根据上文步骤,将转换所得的`.st`模型文件放在`assets/models/`路径下,并修改 [`assets/Config.toml`](./assets/Config.toml) 中的模型路径 diff --git a/crates/ai00-server/src/main.rs b/crates/ai00-server/src/main.rs index 657b738e..31056f5f 100644 --- a/crates/ai00-server/src/main.rs +++ b/crates/ai00-server/src/main.rs @@ -102,6 +102,7 @@ async fn main() { simple_logger::SimpleLogger::new() .with_level(log::LevelFilter::Warn) .with_module_level("ai00_server", log::LevelFilter::Info) + .with_module_level("ai00_core", log::LevelFilter::Info) .with_module_level("web_rwkv", log::LevelFilter::Info) .init() .expect("start logger"); diff --git a/crates/converter/Cargo.toml b/crates/converter/Cargo.toml new file mode 100644 index 00000000..b15108b3 --- /dev/null +++ b/crates/converter/Cargo.toml @@ -0,0 +1,20 @@ +[package] +authors = ["Gu ZhenNiu <448885@qq.com>", "Zhang Zhenyuan "] +categories = ["science"] +description = "An implementation of the RWKV language model in pure WebGPU." +edition.workspace = true +homepage = "https://github.com/cgisky1980/ai00_rwkv_server" +keywords = ["LLM", "deep-learning", "model", "rwkv"] +license.workspace = true +name = "converter" +repository = "https://github.com/cgisky1980/ai00_rwkv_server" +rust-version.workspace = true +version.workspace = true + +[dependencies] +clap = { version = "4.3", features = ["derive"] } +memmap2 = "0.9" +web-rwkv-converter = "0.1.2" + +[dependencies.anyhow] +workspace = true diff --git a/src/bin/converter.rs b/crates/converter/src/main.rs similarity index 100% rename from src/bin/converter.rs rename to crates/converter/src/main.rs