本页面提供了关于设置 BitNet.cpp 开发环境的详细说明。它专为希望为 BitNet.cpp 项目贡献代码或根据特定需求进行定制的开发者设计。有关使用预构建二进制文件运行推理的信息,请参阅运行推理。
BitNet.cpp 是一个专门用于 1 比特(三元)大型语言模型的推理框架。设置开发环境需要理解项目的架构、依赖项和构建系统。
来源:README.md145-159 .gitmodules1-4
在设置 BitNet.cpp 的开发环境之前,请确保您已安装以下工具和依赖项
| 要求 | 最低版本 | 备注 |
|---|---|---|
| Python | 3.9 或更高版本 | 设置脚本和模型转换所需 |
| CMake | 3.22 或更高版本 | 构建系统生成所需 |
| Clang | 18 或更高版本 | 实现最佳性能所需的编译器 |
| Conda | 任意最新版本 | 强烈建议用于环境管理 |
在 Windows 上,开发需要 Visual Studio 2022 及特定组件
安装包含以下组件的 Visual Studio 2022
在使用 BitNet.cpp 时,请始终使用 VS2022 的开发人员命令提示符或 PowerShell。
要验证 Clang 安装,请运行
clang -v
如果您遇到 Clang 未被识别的问题,可能需要初始化您的环境
对于命令提示符 (Command Prompt)
"C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\Tools\VsDevCmd.bat" -startdir=none -arch=x64 -host_arch=x64
对于 PowerShell
Import-Module "C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"
Enter-VsDevShell 3f0e31ad -SkipAutomaticLocation -DevCmdArguments "-arch=x64 -host_arch=x64"
来源:README.md149-154 README.md287-312
在基于 Debian 或 Ubuntu 的系统上
使用自动安装脚本安装 LLVM 和 Clang
安装其他所需依赖项
BitNet.cpp 使用 llama.cpp 项目作为子模块。要正确设置存储库
克隆包含子模块的存储库
如果您在克隆时没有使用 --recursive,请初始化并更新子模块
来源:README.md166-169 .gitmodules1-4
我们建议使用 conda 环境来管理 Python 依赖项
创建并激活新的 conda 环境
安装所需的 Python 包
BitNet.cpp 使用 CMake 作为其构建系统。根目录中的 CMakeLists.txt 文件配置了构建过程。
以下 CMake 选项控制构建配置
| 选项 | 描述 | 默认 |
|---|---|---|
| BITNET_ARM_TL1 | 为 ARM 平台启用 TL1 优化 | OFF |
| BITNET_X86_TL2 | 为 x86 平台启用 TL2 优化 | OFF |
这些选项由 setup_env.py 脚本根据您的平台自动设置。
来源:CMakeLists.txt14-16 CMakeLists.txt24-33
setup_env.py 脚本自动化了大部分构建过程
下载并转换模型(或使用本地模型)
该脚本执行以下操作
环境设置完成后,您即可开始开发
来源:README.md204-231 README.md233-270
最常见的开发领域是针对特定平台优化内核代码
检查内核生成脚本
codegen_tl1.pycodegen_tl2.py修改这些文件中的内核参数,以针对特定模型或硬件进行优化。
运行带适当选项的 setup_env.py 以生成并编译修改后的内核。
交互式测试
性能测试
来源:README.md204-231 README.md233-270
解决方案: 这是 llama.cpp 最新版本中的一个问题。请参考此提交在讨论中寻找解决方案。
解决方案: 您的命令行窗口未正确初始化 Visual Studio 工具。请按照 Windows 设置部分中的说明初始化您的环境。
设置好开发环境后,建议查阅以下页面以获取更多信息