ggml.cpp 是什么?BitNet model ggml-model-i2_s.gguf 有什么用?

简单来说,这两个名字指向了当前大模型社区一个很受欢迎的方向:让强大的AI模型能在普通的CPU电脑甚至手机上,就能流畅运行。

⚙️ ggml.cpp:为CPU高效运行AI而生的“引擎”

ggml.cpp 是一个用 C/C++ 编写的机器学习张量库,你可以把它理解为一个专为AI推理打造的高性能“引擎”。

  • 核心目标:让大语言模型不再严重依赖昂贵的GPU,能在普通的CPU(如个人电脑、树莓派甚至手机)上高效运行。
  • 关键特点
    • 轻量高效:纯C语言实现,没有复杂的第三方依赖。
    • 支持量化:这是它最核心的技术之一。它支持将模型从32位浮点数压缩到4位、5位或8位整数,从而将模型文件大小和内存占用减少数倍,同时尽量保持性能。
    • 硬件优化:特别为Apple芯片和x86架构(如AVX2指令集)做了深度优化,能充分发挥CPU的性能。
  • 知名应用:它最广为人知的应用就是 llama.cppwhisper.cpp 这两个项目。正是有了 ggml,开发者才能在 MacBook 或树莓派上流畅运行 Meta的 LLaMA模型。

📁 ggml-model-i2_s.gguf:为BitNet模型特制的“燃料”

这个文件名指向一个具体的、经过优化的模型文件。

  • 名称拆解
    • BitNet models:这是微软开源的一系列模型,采用了1-bit的极致量化技术,在保持不错性能的同时,将模型体积压缩到极致。
    • ggml-model:表明这个文件是为了被 ggml 或其相关框架(如 llama.cpp)加载和运行而准备的。
    • i2_s:这代表了一种特定的、高性能的量化方式。简单来说,它是在模型精度和运行速度之间找到的一个很好的平衡点。
    • .gguf:这是 ggml 生态目前主推的模型格式。它是一种结构化的封装格式,包含了模型参数和必要的元数据,方便加载。

🔗 它们如何协同工作?

它们的关系可以这样理解:ggml.cpp 是汽车引擎,而 ggml-model-i2_s.gguf 是为这台引擎特制的高能燃料。

你可以使用微软官方提供的 run_inference.py 脚本来运行它,一个典型的命令如下:

python run_inference.py \
  -m /你的模型路径/ggml-model-i2_s.gguf \
  -p "AI,请介绍一下你自己" \
  -t 4 \
  -n 512

这条命令告诉引擎(run_inference.py)用上特制的燃料(.gguf 文件),并指定了使用4个CPU核心(-t 4)来生成约512个token的回答(-n 512)。这种组合最大的优势就是高效,尤其是在没有独立显卡的设备上,能让你体验到不错的大模型性能。


ggml.cpp 在 Windows 11 如何下载、编译 ?

在Windows 11上编译 ggml.cpp,最直接的方式是使用官方集成了ggml 的 llama.cpp项目。以下是详细步骤:

⚙️ 1. 安装必备工具

编译前需要安装以下三款软件,建议都使用默认安装路径,并确保勾选了“添加到PATH”选项,这样能在终端里直接使用它们的命令:

  • CMake (≥3.14):从cmake.org下载安装包。
  • Git:从git-scm.com下载安装包。
  • Visual Studio (2022):从visualstudio.microsoft.com下载免费的Community版本。在安装时,务必勾选 “使用C++的桌面开发” 工作负载,这会包含编译必需的MSVC编译器和Windows SDK。

💻 2. 下载源代码

在任意位置新建一个文件夹(例如 D:\ggml),然后在该目录下打开PowerShell或命令提示符,运行以下命令克隆代码:

git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp

代码会下载到llama.cpp文件夹中。

🏗️ 3. 配置与编译

请确保在 “x64 Native Tools Command Prompt for VS 2022” 中执行以下命令,这是Visual Studio自带的开发者命令行工具,可以在Windows开始菜单中搜索到。编译成功后,所有可执行文件都会生成在 build\bin\Release 文件夹内。

以下是两种主要编译模式:

仅使用CPU

如果你的设备没有NVIDIA显卡,或者不需要GPU加速,请选择此模式。

cmake -B build -DGGML_CURL=OFF
cmake --build build --config Release -j 8

这里-j 8表示用8个核心并行编译,可以加快速度。

使用NVIDIA GPU加速

如果你的设备有NVIDIA显卡并希望启用GPU加速,需要先安装CUDA Toolkit。接着,在生成编译配置时增加-DGGML_CUDA=ON选项,后续的编译命令与CPU模式相同。

cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release -j 8

💡 补充说明

  • 小技巧:推荐使用ccache工具来加速重复编译的过程。你可以通过包管理器(如scoopwinget)安装,安装后CMake会自动检测并使用它。
  • 编译问题排查:如果在编译时遇到错误,请先检查Visual Studio的安装组件是否完整;如果是在ARM架构的设备上编译,则需要注意MSVC编译器对ARM内联汇编的支持问题。

🚀 测试编译结果

编译完成后,可以运行以下命令来测试一下:

# 查看帮助信息,确认程序可以运行
.\build\bin\Release\llama-cli.exe -h

如果成功显示帮助信息,说明你的 ggml.cpp ( llama.cpp) 已经编译成功,可以开始使用了。


我的实践经验

D:\>md ggml
D:\>cd ggml

D:\ggml> git clone https://github.com/ggml-org/llama.cpp
Cloning into 'llama.cpp'...
remote: Enumerating objects: 86885, done.
remote: Counting objects: 100% (108/108), done.
remote: Compressing objects: 100% (62/62), done.
remote: Total 86885 (delta 55), reused 46 (delta 46), pack-reused 86777 (from 2)
Receiving objects: 100% (86885/86885), 358.36 MiB | 1.17 MiB/s, done.
Resolving deltas: 100% (62786/62786), done.
Updating files: 100% (2600/2600), done.

**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.14.29
** Copyright (c) 2025 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'

C:\Program Files\Microsoft Visual Studio\2022\Community>d:

D:\>cd ggml

D:\ggml>cd llama.cpp

D:\ggml\llama.cpp> cmake -B build -DGGML_CURL=OFF
-- Building for: Visual Studio 17 2022
-- Selecting Windows SDK version 10.0.26100.0 to target Windows 10.0.26200.
-- The C compiler identification is MSVC 19.44.35225.0
-- The CXX compiler identification is MSVC 19.44.35225.0
......

CMake Warning at vendor/cpp-httplib/CMakeLists.txt:150 (message):
  OpenSSL not found, HTTPS support disabled

-- Generating embedded license file for target: common
-- Configuring done (30.1s)
-- Generating done (1.0s)
-- Build files have been written to: D:/ggml/llama.cpp/build


D:\ggml\llama.cpp> cmake --build build --config Release -j 8
适用于 .NET Framework MSBuild 版本 17.14.40+3e7442088

  1>Checking Build System
  Building Custom Rule D:/ggml/llama.cpp/examples/gguf-hash/CMakeLists.txt
  Building Custom Rule D:/ggml/llama.cpp/common/CMakeLists.txt
......

  cli.cpp
  llama-cli.vcxproj -> D:\ggml\llama.cpp\build\bin\Release\llama-cli.exe
  Building Custom Rule D:/ggml/llama.cpp/tools/server/CMakeLists.txt
  server-http.cpp
  server-models.cpp
  server.cpp
  llama-server.vcxproj -> D:\ggml\llama.cpp\build\bin\Release\llama-server.exe
  Building Custom Rule D:/ggml/llama.cpp/CMakeLists.txt
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐