GGML: 让大型语言模型在边缘设备上高效运行的张量库

Ray

GGML: 让AI在边缘设备上腾飞

在人工智能和大语言模型快速发展的今天,如何让这些强大的模型在普通的消费级设备上高效运行,成为了一个重要的挑战。GGML(General-purpose Graph Machine Learning)作为一个专注于这一目标的开源张量库,正在为解决这个问题做出重要贡献。

GGML的特点和优势

GGML是由Georgi Gerganov开发的一个用C语言编写的机器学习张量库。它具有以下几个主要特点:

  1. 使用C语言编写,具有极高的性能和可移植性
  2. 支持16位浮点数运算
  3. 支持整数量化(4-bit, 5-bit, 8-bit等)
  4. 支持自动微分
  5. 内置ADAM和L-BFGS优化器
  6. 针对Apple Silicon进行了优化
  7. 在x86架构上利用AVX/AVX2指令集
  8. 无第三方依赖
  9. 运行时零内存分配

这些特点使得GGML非常适合在资源受限的边缘设备上运行大型语言模型。它的设计理念是简洁、开放和灵活,鼓励开发者探索新的想法,构建有趣的演示,并推动边缘AI的可能性边界。

GGML的应用

GGML已经被广泛应用于多个知名的开源项目中,包括:

  • llama.cpp: 在CPU上高效运行Meta的LLaMA大语言模型
  • whisper.cpp: OpenAI的Whisper语音识别模型的高性能C/C++实现

GGML in action

除此之外,GGML还支持多种其他模型的推理,如GPT-2、GPT-J、BLOOM、RWKV、SAM、BERT等。这种广泛的应用证明了GGML在实现大型语言模型本地化方面的强大能力。

GGML的工作原理

GGML的核心是一个高效的张量计算库。它通过以下几个关键概念来组织计算:

  1. ggml_context: 一个"容器",用于存储张量、计算图和可选数据
  2. ggml_cgraph: 表示计算图,定义了将传输到后端的"计算顺序"
  3. ggml_backend: 执行计算图的接口,支持CPU(默认)、CUDA、Metal(Apple Silicon)、Vulkan等多种后端
  4. ggml_backend_buffer_type: 表示缓冲区类型,作为每个ggml_backend的"内存分配器"
  5. ggml_backend_buffer: 由buffer_type分配的缓冲区
  6. ggml_gallocr: 图形内存分配器,用于高效分配计算图中使用的张量

这种设计允许GGML在不同的硬件平台上高效地执行大型语言模型的推理,同时保持较低的内存占用。

使用GGML

要开始使用GGML,你可以按照以下步骤操作:

  1. 克隆GGML仓库:

    git clone https://github.com/ggerganov/ggml
    cd ggml
    
  2. 创建并激活Python虚拟环境:

    python3.10 -m venv ggml_env
    source ./ggml_env/bin/activate
    pip install -r requirements.txt
    
  3. 编译示例:

    mkdir build && cd build
    cmake ..
    cmake --build . --config Release -j 8
    
  4. 运行GPT-2示例:

    ../examples/gpt-2/download-ggml-model.sh 117M
    ./bin/gpt-2-backend -m models/gpt-2-117M/ggml-model.bin -p "This is an example"
    

GGML还支持在多种硬件上运行,包括使用Metal在Mac上的GPU加速,以及在支持CUDA的GPU上运行。

GGML的未来发展

GGML项目正处于活跃开发阶段,其部分开发工作目前正在llama.cpp和whisper.cpp等仓库中进行。项目的路线图和宣言可以在GitHub项目页面上找到。

随着边缘AI的重要性不断增加,GGML有望在未来发挥更大的作用。它为开发者提供了一个强大的工具,使他们能够将复杂的AI模型带到资源受限的设备上,从而开启了新的应用可能性。

结语

GGML作为一个专注于边缘AI的开源张量库,正在为大型语言模型的普及做出重要贡献。它的高效、灵活和可移植性使得在普通硬件上运行复杂AI模型成为可能。随着更多开发者加入GGML社区,我们可以期待看到更多创新的边缘AI应用在未来涌现。无论你是AI研究者、应用开发者还是对边缘计算感兴趣的技术爱好者,GGML都值得你去探索和尝试。

让我们共同期待GGML为AI的未来带来更多可能性!

GGML Example

avatar
0
0
0
相关项目
Project Cover

llm

该项目因时间和资源不足已归档,建议使用其他高质量的Rust推理库,如Ratchet、Candle和llama.cpp等。项目原README包含当前状态、支持的模型及使用方法等详细信息。

Project Cover

stable-diffusion.cpp

该项目基于ggml实现了轻量级纯C/C++的Stable Diffusion推理,支持SD1.x至SD3的多种模型,包括SD-Turbo和PhotoMaker。项目特色有16位和32位浮点支持、4至8位整数量化、CPU和GPU加速、Flash Attention内存优化及多平台兼容。用户可以下载可执行文件或选择手动构建,并且无需转换为.ggml或.gguf格式。

Project Cover

rwkv.cpp

该项目将RWKV-LM移植到ggerganov的ggml,支持FP32、FP16及量化的INT4、INT5和INT8推理,主要针对CPU使用,同时兼容cuBLAS。项目提供C库和Python封装。RWKV是一种不同于Transformer的大语言模型架构,只需前一步状态计算logits,适合长上下文使用。支持RWKV v5和v6模型以及LoRA检查点加载,适用于高质量和高性能需求的场景。

Project Cover

chatllm.cpp

ChatLLM.cpp项目支持从1B到300B多种模型的高效推理,适用于本地电脑的实时聊天。通过优化的KV缓存和并行计算提升内存使用效率,并提供int4/int8量化以减少内存占用。该项目基于ggml库实现,支持Retrieval Augmented Generation、LoRA以及Python和JavaScript绑定等功能。发布了多种最新模型和工具调用,适合深度学习和自监督学习研究者。

Project Cover

ggml

ggml是一个C语言编写的机器学习张量库,支持16位浮点和整数量化。该库提供自动微分、优化器和多架构优化,无第三方依赖。ggml可用于GPT、LLaMA、Whisper等多种AI模型的推理。它在CPU上表现高效,同时支持GPU加速,适用于多种设备和平台。

Project Cover

qwen.cpp

qwen.cpp是Qwen-LM的开源C++实现,基于ggml开发,支持实时对话、纯C++ tiktoken和流式生成。项目兼容x86/arm CPU、NVIDIA GPU,适用于Linux和MacOS平台。提供模型量化、Python绑定等功能,可在本地设备运行高性能Qwen对话模型。

Project Cover

ggml_llava-v1.5-13b

这是一个为llama.cpp提供的GGUF文件集合,专门用于llava-v1.5-13b视觉语言模型的端到端推理,无需额外依赖即可部署。其中mmproj-model-f16.gguf文件结构仍处于实验阶段,需要配合llama.cpp最新代码使用以保证兼容性。

最新项目
Project Cover

豆包MarsCode

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

Project Cover

AI写歌

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

Project Cover

有言AI

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

Project Cover

Kimi

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

Project Cover

阿里绘蛙

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

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

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