llama2.rs: 纯Rust实现的高性能Llama 2推理引擎

Ray

llama2.rs

llama2.rs: 纯Rust实现的高性能Llama 2推理引擎

llama2.rs是一个由Rust语言编写的Llama 2推理引擎,旨在提供最快速的CPU推理性能。该项目由GitHub用户srush和rachtsingh开发,是对Andrej Karpathy的llama2.c项目的Rust重新实现和扩展。

主要特性

llama2.rs具有以下几个显著特点:

  1. 支持4位GPTQ量化,大幅降低模型内存占用
  2. 批量预填充prompt tokens,提高推理效率
  3. 利用SIMD指令集加速CPU推理
  4. 内存映射技术,实现70B参数模型的瞬时加载
  5. 静态大小检查,提高内存安全性
  6. 支持分组查询注意力(GQA),适用于大规模Llama模型
  7. 提供Python调用API

在作者的Intel i9台式机上,llama2.rs可以实现70B参数Llama 2模型1 token/s的推理速度,7B参数模型则可达到9 token/s,相比原始的llama2.c有显著提升。

llama cartoon

使用方法

要使用llama2.rs,首先需要安装Rust的nightly工具链:

rustup toolchain install nightly
ulimit -s 10000000 # 增加栈内存限制

然后可以从Hugging Face hub下载预训练模型。例如,以下命令将创建一个70B参数、4位量化、64组大小的模型:

pip install -r requirements.export.txt
python export.py l70b.act64.bin TheBloke/llama-2-70b-Guanaco-QLoRA-GPTQ gptq-4bit-64g-actorder_True

使用cargo编译并运行模型:

cargo run --release --features 70B,group_64,quantized -- -c llama2-70b-q.bin -t 0.0 -s 11 -p "The only thing"

这将输出生成的文本和推理速度。

Python接口

llama2.rs也提供了Python接口。首先需要编译并安装Python包:

cargo build --release --features 7B,group_128,quantized,python
pip install .

然后可以在Python中使用:

import llama2_rs

model = llama2_rs.LlamaModel("lorca13b.act132.bin", False)
tokenizer = llama2_rs.Tokenizer("tokenizer.bin")
random = llama2_rs.Random()
response = llama2_rs.generate(
    model,
    tokenizer,
    "Tell me zero-cost abstractions in Rust ",
    50,
    random, 
    0.0
)

未来计划

llama2.rs的开发团队计划在未来实现以下功能:

  1. 使用Triton支持快速GPU处理
  2. 支持text-generation-webui项目
  3. 完善文档
  4. 发布关于GPTQ快速实现方法的博客文章
  5. 移除对AutoGPTQ的预加载依赖
  6. 直接支持safetensors格式

技术细节

llama2.rs主要依赖以下几个Rust crate:

  • memmap2: 用于内存映射
  • rayon: 用于并行计算
  • clap: 用于命令行参数解析
  • pyO3: 用于Python调用
  • portable_simd: 用于SIMD加速

为了获得最佳性能,llama2.rs需要针对不同的Llama版本进行重新编译。模型参数在.cargo/config中配置,如果与加载的二进制模型不匹配将会失败。

结语

llama2.rs展示了Rust语言在AI推理引擎开发中的潜力。通过利用Rust的零成本抽象、内存安全和并发特性,llama2.rs在保证安全性的同时实现了卓越的性能。这个项目为在普通CPU上运行大规模语言模型提供了一个高效的解决方案,为AI技术的普及应用铺平了道路。

随着项目的不断发展,我们可以期待llama2.rs在未来带来更多优化和功能,进一步推动AI技术在各种计算环境下的应用。对于有兴趣深入了解或贡献该项目的开发者,可以访问llama2.rs的GitHub仓库获取更多信息。

avatar
0
0
0
相关项目
Project Cover

xtuner

XTuner是一款高效灵活的大模型微调工具包,支持LLM和VLM在多种GPU上的预训练和微调。它能够在单个8GB GPU上微调7B模型,并支持超过70B模型的多节点微调。XTuner兼容DeepSpeed,支持多种优化技术,并涵盖多种微调方法如QLoRA和LoRA。该工具包提供连续预训练、指令微调和代理微调等功能,输出模型可以无缝集成到部署和评估工具中,适应多种应用场景。

Project Cover

Chinese-Llama-2-7b

项目提供开源且商用的中文Llama2模型及中英文SFT数据集,兼容llama-2-chat格式并支持优化。项目包含在线演示、多模态模型、Docker部署和API接口,支持多种硬件配置,用户可快速下载与测试。

Project Cover

slowllama

slowllama是一个专注于微调Llama2和CodeLLama模型的开源项目,支持70B/35B模型版本,并可在Apple M1/M2设备(如Macbook Air、Mac Mini)或消费级nVidia GPU上运行。通过将模型部分数据转储到SSD或主内存,该项目避免使用量化技巧,优化正向和反向传递性能。采用LoRA方法限制参数更新,操作步骤详尽,包括依赖安装、模型下载和配置脚本,是在资源有限环境下进行大模型微调的理想选择。

Project Cover

llama2.rs

llama2.rs是一个用Rust开发的Llama2 CPU推理库,专注于提供高性能的推理能力。项目支持4位GPT-Q量化、批量预填充提示标记、SIMD加速和内存映射等技术,实现了70B模型的即时加载。通过Python API,开发者可在普通台式机上运行70B Llama2模型(1 token/s)和7B模型(9 tokens/s)。该项目为大规模语言模型的CPU推理提供了高效且灵活的开源解决方案。

Project Cover

llama2_70b_chat_uncensored-GGUF

Llama2 70B Chat Uncensored项目引入了采用GGUF格式的新模型文件,与传统GGML相比,增强了性能与功能。GGUF格式在词元化和特殊标记支持方面表现出色,并支持元数据,提升了第三方UI和库的兼容性。由llama.cpp团队于2023年8月21日发布的此新格式,适合用于聊天机器人、文本生成等机器学习应用。

Project Cover

SeewebLLM-it

SeewebLLM-it是一款针对意大利语优化的语言模型,基于LLama-2-7b-chat-hf精细微调,在Seeweb Cloud GPU的支持下经过训练,涵盖了约300个意大利语对话实例。虽然目前的输出在准确性上还需进一步提升,但随着训练数据集的扩展,该模型未来可在更多领域展现潜力。

Project Cover

japanese-stablelm-base-beta-7b

该7B参数自回归模型基于Llama-2-7b,经过微调以提升日本语言任务表现。其使用多样的日本语数据集训练,适合各种文本生成任务,并且推理速度优异。提供开放商业用途,适合应用程序的专用调整。

Project Cover

StableBeluga2

StableBeluga2是Stability AI基于Llama2 70B模型微调的开源对话系统。该模型在Orca式数据集上训练,具备优秀的指令理解和执行能力。StableBeluga2支持多轮对话,可生成诗歌等创意内容。技术上,它采用bfloat16格式存储权重并使用Safetensors,实现了更小的文件体积和更快的加载速度。作为一个强大的AI助手,StableBeluga2在保持高性能的同时优化了资源占用。

Project Cover

ELYZA-japanese-Llama-2-7b-fast-instruct

ELYZA-japanese-Llama-2-7b-fast-instruct基于Llama2,专注于提升日语处理能力,提供流畅的语言体验。通过针对日语的扩展训练,该模型在理解和生成日语方面表现优异,并支持GPU加速,以优化计算性能,适用于多种应用场景。欲了解更多使用案例和详细信息,请访问官方页面。

最新项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号