菜单

开发环境设置

相关源文件

本页面提供了关于设置 BitNet.cpp 开发环境的详细说明。它专为希望为 BitNet.cpp 项目贡献代码或根据特定需求进行定制的开发者设计。有关使用预构建二进制文件运行推理的信息,请参阅运行推理

概述

BitNet.cpp 是一个专门用于 1 比特(三元)大型语言模型的推理框架。设置开发环境需要理解项目的架构、依赖项和构建系统。

来源:README.md145-159 .gitmodules1-4

先决条件

在设置 BitNet.cpp 的开发环境之前,请确保您已安装以下工具和依赖项

要求最低版本备注
Python3.9 或更高版本设置脚本和模型转换所需
CMake3.22 或更高版本构建系统生成所需
Clang18 或更高版本实现最佳性能所需的编译器
Conda任意最新版本强烈建议用于环境管理

来源:README.md145-159

平台特定设置

Windows

在 Windows 上,开发需要 Visual Studio 2022 及特定组件

  1. 安装包含以下组件的 Visual Studio 2022

    • 使用 C++ 进行桌面开发
    • 适用于 Windows 的 C++ CMake 工具
    • 适用于 Windows 的 Git
    • 适用于 Windows 的 C++ Clang 编译器
    • MS-Build 对 LLVM-Toolset (clang) 的支持
  2. 在使用 BitNet.cpp 时,请始终使用 VS2022 的开发人员命令提示符或 PowerShell。

  3. 要验证 Clang 安装,请运行

    clang -v
    
  4. 如果您遇到 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

Linux (Debian/Ubuntu)

在基于 Debian 或 Ubuntu 的系统上

  1. 使用自动安装脚本安装 LLVM 和 Clang

  2. 安装其他所需依赖项

来源:README.md155-157

仓库设置

BitNet.cpp 使用 llama.cpp 项目作为子模块。要正确设置存储库

  1. 克隆包含子模块的存储库

  2. 如果您在克隆时没有使用 --recursive,请初始化并更新子模块

来源:README.md166-169 .gitmodules1-4

开发环境设置

我们建议使用 conda 环境来管理 Python 依赖项

  1. 创建并激活新的 conda 环境

  2. 安装所需的 Python 包

来源:README.md172-177

构建配置

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

构建 BitNet.cpp

setup_env.py 脚本自动化了大部分构建过程

  1. 下载并转换模型(或使用本地模型)

  2. 该脚本执行以下操作

    • 下载/使用指定模型
    • 如果需要,将模型转换为 GGUF 格式
    • 为您的平台生成优化的内核代码
    • 使用适当的选项编译 C++ 代码

来源:README.md179-183

开发工作流

环境设置完成后,您即可开始开发

来源:README.md204-231 README.md233-270

修改内核代码

最常见的开发领域是针对特定平台优化内核代码

  1. 检查内核生成脚本

    • 适用于 ARM 平台的 codegen_tl1.py
    • 适用于 x86 平台的 codegen_tl2.py
  2. 修改这些文件中的内核参数,以针对特定模型或硬件进行优化。

  3. 运行带适当选项的 setup_env.py 以生成并编译修改后的内核。

测试您的更改

  1. 交互式测试

  2. 性能测试

来源:README.md204-231 README.md233-270

常见问题与解决方案

解决方案: 这是 llama.cpp 最新版本中的一个问题。请参考此提交讨论中寻找解决方案。

问题:Windows 上无法识别 'clang' 命令

解决方案: 您的命令行窗口未正确初始化 Visual Studio 工具。请按照 Windows 设置部分中的说明初始化您的环境。

来源:README.md282-312

下一步

设置好开发环境后,建议查阅以下页面以获取更多信息