Logo

rust-llama.cpp: Rust 语言绑定的 LLaMA 模型推理库

rust-llama.cpp

rust-llama.cpp: 让 LLaMA 模型在 Rust 中腾飞 🦀🦙

人工智能和大语言模型正在改变我们的世界,而 Rust 作为一门安全高效的系统级编程语言,也在 AI 领域展现出巨大潜力。本文将为大家介绍一个优秀的开源项目 - rust-llama.cpp,它为著名的 LLaMA 模型提供了 Rust 语言绑定,让开发者能够在 Rust 生态中轻松使用这一强大的 AI 模型。

项目简介

rust-llama.cpp 是一个基于 LLaMA.cpp 项目开发的 Rust 语言绑定库。LLaMA.cpp 是一个广受欢迎的 C++ 实现,可以在 CPU 上高效运行 LLaMA 模型。而 rust-llama.cpp 则通过 FFI (外部函数接口)将 LLaMA.cpp 的功能包装成 Rust API,让 Rust 开发者能够方便地在自己的项目中集成 LLaMA 模型。

该项目由 GitHub 用户 mdrokz 开发和维护,目前在 GitHub 上已获得超过 300 颗星标,显示出社区对这个项目的认可。

rust-llama.cpp GitHub 仓库截图

主要特性

rust-llama.cpp 提供了以下核心功能:

  1. 完整的 LLaMA 模型支持: 支持加载和运行各种规模的 LLaMA 模型,包括 7B、13B、30B 和 65B 参数版本。

  2. 高性能推理: 利用 LLaMA.cpp 的优化,可以在普通 CPU 上实现高效的模型推理。

  3. 灵活的配置选项: 提供丰富的模型加载和推理选项,如上下文大小、批处理大小、线程数等。

  4. Token 回调机制: 支持在生成过程中实时获取每个 token,方便实现流式输出等功能。

  5. 安全的 Rust 接口: 将底层 C++ 代码包装成符合 Rust 安全性要求的 API。

  6. 跨平台支持: 可在 Linux、macOS 和 Windows 等多个平台上使用。

使用方法

要在 Rust 项目中使用 rust-llama.cpp,首先需要在 Cargo.toml 中添加依赖:

[dependencies]
llama_cpp_rs = "0.3.0"

然后,可以使用以下代码来加载模型并进行预测:

use llama_cpp_rs::{
    options::{ModelOptions, PredictOptions},
    LLama,
};

fn main() {
    // 创建模型选项
    let model_options = ModelOptions::default();

    // 加载模型
    let llama = LLama::new(
        "path/to/model.bin".into(),
        &model_options,
    ).unwrap();

    // 创建预测选项
    let predict_options = PredictOptions {
        token_callback: Some(Box::new(|token| {
            println!("生成的 token: {}", token);
            true
        })),
        ..Default::default()
    };

    // 进行预测
    llama.predict(
        "请告诉我中国的首都是哪里?".into(),
        predict_options,
    ).unwrap();
}

这段代码展示了如何加载模型、设置回调函数以及进行文本生成。开发者可以根据自己的需求调整各种参数和选项。

项目进展与未来计划

rust-llama.cpp 仍在积极开发中,项目维护者列出了以下待办事项:

  • 实现对 cuBLAS、OpenBLAS 和 OpenCL 的支持
  • 添加 GPU (Metal) 支持
  • 编写测试用例
  • 支持通过 HTTP 和 S3 获取模型
  • 同步最新的 LLaMA.cpp 主分支并支持 GGUF 格式
  • 完善示例代码

这些计划显示出项目团队对性能优化和功能扩展的重视,相信未来 rust-llama.cpp 将为 Rust AI 开发者提供更强大和灵活的工具。

社区贡献

作为一个开源项目,rust-llama.cpp 欢迎社区贡献。目前已有 11 位贡献者参与到项目开发中,涉及代码优化、功能增强、文档完善等多个方面。对 Rust 和 AI 感兴趣的开发者可以考虑参与到这个有趣的项目中来。

项目使用 MIT 许可证,这意味着你可以自由地使用、修改和分发这个库,只需保留原始的版权和许可声明。

结语

rust-llama.cpp 为 Rust 开发者打开了一扇通向大语言模型的大门。它不仅让我们能够在 Rust 项目中方便地使用 LLaMA 模型,还展示了 Rust 在 AI 领域的潜力。随着项目的不断发展和完善,相信它将成为 Rust AI 生态系统中不可或缺的一部分。

无论你是对 AI 感兴趣的 Rust 开发者,还是寻找高效 LLaMA 推理解决方案的研究人员,rust-llama.cpp 都值得你深入探索。让我们一起期待这个项目在未来带来更多惊喜! 🚀🦀🦙

相关链接

通过本文的介绍,相信读者已经对 rust-llama.cpp 项目有了全面的了解。无论你是想在 Rust 项目中集成 LLaMA 模型,还是对 AI 和系统编程感兴趣,rust-llama.cpp 都是一个值得关注和尝试的优秀开源项目。让我们一起在 Rust 和 AI 的交汇处探索无限可能!

相关项目

Project Cover
tch-rs
tch-rs是Rust语言对PyTorch C++ API的绑定,通过简洁的封装实现高效的深度学习模型训练和推理。支持系统全局libtorch安装、手动安装和Python PyTorch安装,兼容CUDA并支持静态链接。提供详细的安装说明和丰富的示例代码,包括基础张量操作、梯度下降训练、神经网络构建和迁移学习等,适合不同水平的开发者。
Project Cover
chat-ai-desktop
Chat AI Desktop App是一款非官方开源桌面应用,兼容Mac、Windows和Linux系统。基于Tauri和Rust开发,提供简便的API模式和安全的登录体验。用户可轻松下载并安装不同版本,输入OpenAI API密钥后即可使用。此应用只是流行Chat AI网站的封装,确保数据安全。如遇MacOS验证问题,可通过Finder打开。推荐开发者使用VS Code进行开发和构建。
Project Cover
Tabby
Tabby,一款自托管的AI编码助手,提供开源及私有部署方案,是GitHub Copilot的有效替代。基于Rust语言开发,确保极致速度与安全。通过TOML配置可轻松控制部署,开源代码库也便于安全合规审计。
Project Cover
pgvecto.rs
pgvecto.rs是一个Postgres扩展,提供超低延迟、高精度的向量相似搜索功能,支持稀疏向量和全文本搜索。该扩展由Rust编写,基于pgrx框架,具备完整的SQL支持和异步索引等特性,简化数据管理并提升性能。支持FP16/INT8数据类型和二进制向量索引,是生产环境中集成前沿模型的理想选择。
Project Cover
llm-chain
llm-chain是一组强大的Rust库,支持创建高级LLM应用,如聊天机器人和智能代理。平台支持云端和本地LLM,提供提示模板和多步骤链功能,以处理复杂任务。还支持向量存储集成,为模型提供长期记忆和专业知识。兼容ChatGPT、LLaMa和Alpaca模型,并通过llm.rs实现Rust语言的LLM支持,无需C++依赖。
Project Cover
floneum
Floneum项目提供了一个简便的开发接口,适用于本地预训练的AI模型,包括Kalosm和Floneum Editor。Kalosm在Rust中为语言、音频和图像模型提供了简单接口,支持多种模型和加速选项。Floneum Editor是一个用于本地AI工作流的图形编辑器。这些工具让开发者能够轻松实现AI模型交互、音频转录和图像生成等功能。更多信息和使用案例请参阅项目文档和示例。
Project Cover
femtoGPT
femtoGPT是一个用Rust实现的最小生成预训练转换器,支持在CPU和GPU上进行GPT模型的推理与训练。项目从零开始构建了张量处理逻辑以及训练和推理代码,适合对大语言模型感兴趣并想深入了解其工作原理的用户。使用了随机生成、数据序列化和并行计算库,尽管速度较慢,但能在NVIDIA和AMD显卡上运行。
Project Cover
screen-pipe
Screenpipe提供全天候屏幕和音频捕捉,支持Ollama,开放且安全,用户完全掌控数据。该项目采用Rust开发,兼容MacOS、Windows和Linux,提供CLI和桌面应用。支持多种语音识别和OCR引擎,为开发者提供强大的工具和API接口。适用于搜索、自动化、分析和个人助手等应用场景,旨在简化开发者工作流程,提高效率。
Project Cover
llm
该项目因时间和资源不足已归档,建议使用其他高质量的Rust推理库,如Ratchet、Candle和llama.cpp等。项目原README包含当前状态、支持的模型及使用方法等详细信息。

最新项目

Project Cover
豆包MarsCode
豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。
Project Cover
AI写歌
Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。
Project Cover
商汤小浣熊
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
Project Cover
有言AI
有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。
Project Cover
Kimi
Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。
Project Cover
吐司
探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。
Project Cover
SubCat字幕猫
SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。
Project Cover
AIWritePaper论文写作
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。
Project Cover
稿定AI
稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。
投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号