AI: ggml llama.cpp 与 BitNet 模型介绍

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 脚本来运行它,一个典型的命令如下:

bash 复制代码
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或命令提示符,运行以下命令克隆代码:

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加速,请选择此模式。

powershell 复制代码
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模式相同。

powershell 复制代码
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release -j 8

💡 补充说明

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

🚀 测试编译结果

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

powershell 复制代码
# 查看帮助信息,确认程序可以运行
.\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
相关推荐
用户0183493016939 分钟前
用Zustand管理AI多会话状态
人工智能
武子康3 小时前
调查研究-198 Agent 到底该记住什么?读懂《What Must Generalist Agents Remember?》
人工智能·openai·agent
aqi004 小时前
15天学会AI应用开发(九)利用Chroma持久化向量数据
人工智能·python·大模型·ai编程·ai应用
武子康5 小时前
调查研究-197 FAISS vs Elasticsearch 全面对比:从向量检索、全文搜索到 RAG 选型指南
人工智能·elasticsearch·agent
青禾网络5 小时前
Web 前端如何接入 AI 音效生成:从零到可用的完整方案
人工智能·设计模式
用户252736278145 小时前
【技术实战】用 Spring Boot + Vue3 + LM Studio 在本地跑通 RAG 知识库
人工智能
用户5191495848455 小时前
VBScript随机数生成器内部机制:从时间种子到密码令牌破解
人工智能·aigc
米小虾5 小时前
Context Engineering —— 知识与记忆的窗口
人工智能·agent
IT_陈寒6 小时前
Python里这个赋值坑,连老司机都能翻车
前端·人工智能·后端