3 个不稳定版本
0.8.0 | 2024年7月1日 |
---|---|
0.7.1 | 2024年4月23日 |
0.7.0 | 2024年3月4日 |
#77 在 WebAssembly
2,991 每月下载量
用于 llama-core
46KB
1K SLoC
wasi-nn 的 Rust 绑定,具有 LLM 扩展
此包受 wasi-nn 包的启发,但增加了对 LLM 的支持。
此包包含对 wasi-nn 系统调用的 Rust 高级别绑定。它在目的上类似于 WASI 绑定,但此包提供从 WebAssembly 访问系统机器学习功能的可选方法。
注意:这些绑定是实验性的(自行承担风险)且受 wasi-nn 规范上游更改的影响。
使用
-
在您的
Cargo.toml
中依赖此 crate[dependencies] wasmedge-wasi-nn = "0.7.1"
-
在您的应用程序中使用 wasi-nn API,例如
use wasi_nn; let graph = GraphBuilder::new(GraphEncoding::TensorflowLite, ExecutionTarget::CPU) .build_from_files([model_path])?; let mut ctx = graph.init_execution_context()?; ctx.set_input(0, TensorType::F32, &input_dims, &input_buffer)?; ctx.compute()?; let output_num_bytes = ctx.get_output(0, &mut output_buffer)?;
-
将应用程序编译成 WebAssembly
cargo build --target=wasm32-wasi
构建
要从源代码构建此 crate,请使用:cargo build --target wasm32-wasi
.
生成
此 crate 包含由 witx-bindgen
生成的代码 (src/generated.rs
)。要重新生成此代码,请运行以下脚本
$ scripts/regenerate-bindings-from-witx.sh
示例
示例展示了如何从 Rust 程序中使用 wasi-nn。
许可
此项目采用 Apache 2.0 许可证。有关详细信息,请参阅 LICENSE。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交给本项目的内容将按上述方式许可,不附加任何额外条款或条件。
依赖项
约280–740KB
约17K SLoC