5 个不稳定版本

0.3.0 2023 年 10 月 12 日
0.2.0 2023 年 8 月 29 日
0.1.2 2023 年 8 月 3 日
0.1.1 2023 年 7 月 20 日
0.1.0 2023 年 7 月 10 日

#297FFI

每月 48 次下载

自定义许可证

3.5MB
65K SLoC

C++ 28K SLoC // 0.1% comments C 21K SLoC // 0.1% comments CUDA 6K SLoC // 0.0% comments Python 5K SLoC // 0.1% comments Metal Shading Language 2K SLoC // 0.0% comments Objective-C 1K SLoC // 0.1% comments Shell 1K SLoC // 0.1% comments Rust 815 SLoC // 0.0% comments JavaScript 327 SLoC // 0.1% comments RPM Specfile 163 SLoC // 0.2% comments Vim Script 132 SLoC // 0.1% comments Zig 112 SLoC // 0.0% comments Swift 53 SLoC Batch 48 SLoC INI 5 SLoC

rust_llama.cpp

Docs Crates.io

LLama.cpp rust 绑定。

这些 rust 绑定主要基于 https://github.com/go-skynet/go-llama.cpp/

本地构建

注意:此存储库使用 git 子模块来跟踪 LLama.cpp

在本地克隆存储库

git clone --recurse-submodules https://github.com/mdrokz/rust-llama.cpp
cargo build

使用方法

[dependencies]
llama_cpp_rs = "0.2.0"
use llama_cpp_rs::{
    options::{ModelOptions, PredictOptions},
    LLama,
};

fn main() {
    let model_options = ModelOptions::default();

    let llama = LLama::new(
        "../wizard-vicuna-13B.ggmlv3.q4_0.bin".into(),
        &model_options,
    )
    .unwrap();

    let predict_options = PredictOptions {
        token_callback: Some(Box::new(|token| {
            println!("token1: {}", token);

            true
        })),
        ..Default::default()
    };

    llama
        .predict(
            "what are the national animals of india".into(),
             predict_options,
        )
        .unwrap();
}

示例

示例包含用于运行它们的 dockerfile

请参阅 示例

待办事项

  • 实现对 cublas、openBLAS 和 OpenCL 的支持 #7
  • 实现对 GPU(Metal)的支持
  • 添加一些测试用例
  • 通过 http 和 S3 获取模型的支持
  • 与最新主分支同步并支持 GGUF
  • 添加一些合适的示例 https://github.com/mdrokz/rust-llama.cpp/pull/7

许可证

MIT

依赖关系