跳转至

开发

安装所需工具:

  • cmake 版本 3.24 或更高
  • go 版本 1.22 或更高
  • gcc 版本 11.4.0 或更高
brew install go cmake gcc

可选地启用调试和更详细的日志记录:

# At build time
export CGO_CFLAGS="-g"

# At runtime
export OLLAMA_DEBUG=1

获取所需的库并构建原生 LLM 代码:

go generate ./...

然后构建 ollama:

go build .

现在你可以运行 ollama

./ollama

Linux

Linux CUDA (NVIDIA)

您的操作系统发行版可能已经有了 NVIDIA CUDA 的包。发行版包通常更可取,但说明是特定于发行版的。如果可用,请查阅特定于发行版的文档以了解依赖关系!

安装 cmakegolang 以及 NVIDIA CUDA 开发和运行时包。

通常构建脚本会自动检测 CUDA,但是,如果您的 Linux 发行版或安装方法使用非常规路径,您可以通过设置环境变量 CUDA_LIB_DIR 来指定共享库的位置,以及 CUDACXX 来指定 nvcc 编译器的位置。您可以通过设置 CMAKE_CUDA_ARCHITECTURES(例如 "50;60;70")自定义目标 CUDA 架构。

然后生成依赖项:

go generate ./...

然后构建二进制文件:

go build .

Linux ROCm (AMD)

您的操作系统发行版可能已经有了 AMD ROCm 和 CLBlast 的包。发行版包通常更可取,但说明是特定于发行版的。如果可用,请查阅特定于发行版的文档以了解依赖关系!

首先安装 CLBlastROCm 开发包,以及 cmakegolang

通常构建脚本会自动检测 ROCm,但是,如果您的 Linux 发行版或安装方法使用非常规路径,您可以通过设置环境变量 ROCM_PATH 来指定 ROCm 的安装位置(通常为 /opt/rocm),以及 CLBlast_DIR 来指定 CLBlast 的安装位置(通常为 /usr/lib/cmake/CLBlast)。您还可以通过设置 AMDGPU_TARGETS(例如 AMDGPU_TARGETS="gfx1101;gfx1102")自定义 AMD GPU 目标。

go generate ./...

然后构建二进制文件:

go build .

ROCm 需要提升权限才能在运行时访问 GPU。在大多数发行版上,您可以将您的用户账户添加到 render 组,或以 root 身份运行。

高级 CPU 设置

默认情况下,运行 go generate ./... 会编译基于常见 CPU 系列和矢量数学功能的几种不同变体的 LLM 库,包括一个应该能在几乎任何 64 位 CPU 上缓慢运行的最低公分母。在运行时,Ollama 将自动检测要加载的最佳变体。如果您想为您的处理器构建一个基于 CPU 的定制构建,您可以设置 OLLAMA_CUSTOM_CPU_DEFS 为您想要使用的 llama.cpp 标志。例如,要为 Intel i9-9880H 编译优化的二进制文件,您可能会使用:

OLLAMA_CUSTOM_CPU_DEFS="-DLLAMA_AVX=on -DLLAMA_AVX2=on -DLLAMA_F16C=on -DLLAMA_FMA=on" go generate ./...
go build .

容器化 Linux 构建

如果您有 Docker 可用,您可以使用 ./scripts/build_linux.sh 构建 linux 二进制文件,其中包含 CUDA 和 ROCm 依赖项。生成的二进制文件位于 ./dist

Windows

注意:Ollama 的 Windows 构建仍在开发中。

安装所需工具:

  • MSVC 工具链 - C/C++ 和 cmake 为最低要求
  • Go 版本 1.22 或更高
  • MinGW(选择一个变体)和 GCC。
  • MinGW-w64
  • MSYS2
$env:CGO_ENABLED="1"
go generate ./...
go build .

Windows CUDA (NVIDIA)

除了上面描述的常见 Windows 开发工具外,在安装 MSVC 后安装 CUDA。

Windows ROCm (AMD Radeon)

除了上面描述的常见 Windows 开发工具外,在安装 MSVC 后安装 AMD 的 HIP 包。

最后,将 MSVC 中包含的 ninja.exe 添加到系统路径(例如 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja)。