前奏:Ollama是什么,为什么这么好用
安装必备工具
确保已安装以下软件的正确版本:
CMake 3.24 或更高版本
Go 1.22 或更高版本
GCC 11.4.0 或更高版本
使用 Homebrew 安装这些工具(适用于macOS和Linux):
brew install go cmake gcc
可选:启用调试与详细日志
构建时开启调试信息:
export CGO_CFLAGS="-g"
运行时开启更多日志输出:
export OLLAMA_DEBUG=1
获取依赖库并构建原生LLM代码
使用Go的generate命令来获取依赖并构建本地代码:
go generate ./...
含义看这里:go generate ./... 含义
构建Ollama
构建Ollama主程序:
go build .
运行Ollama
构建完成后,执行Ollama:
./ollama
Linux平台特异性
Linux上的CUDA(NVIDIA)
安装NVIDIA CUDA开发包和运行时环境。尽管某些Linux发行版可能已包含CUDA,但具体步骤可能因发行版而异,请查阅相应文档。
构建脚本通常能自动识别CUDA路径,若路径非标准,可通过环境变量CUDA_LIB_DIR和CUDACXX指定CUDA库目录和nvcc编译器位置。自定义目标CUDA架构,可设置CMAKE_CUDA_ARCHITECTURES。
Linux上的ROCm(AMD)
安装CLBlast和ROCm的开发包,以及CMake和Go。
ROCm同样能被自动检测,但如有特殊路径,可通过ROCM_PATH和CLBlast_DIR环境变量指定ROCm安装目录和CLBlast目录。AMD GPU目标可通过AMDGPU_TARGETS自定义。
ROCm运行时需提升权限,通常将用户加入render组或以root身份运行。
高级CPU设置
默认情况下,go generate ./...会基于通用CPU家族和向量数学能力编译几个LLM库变体。
若要为特定处理器定制CPU版本,可设置OLLAMA_CUSTOM_CPU_DEFS环境变量,传入llama.cpp编译标志。
Linux容器化构建
如果安装了Docker,可以使用./scripts/build_linux.sh脚本构建Linux二进制文件,该脚本包含了CUDA和ROCm依赖。构建产物位于./dist目录下。
Windows平台
注意:Ollama的Windows构建仍在开发中。
必须安装MSVC工具链、Go(1.22+)及MinGW(任一变体)搭配GCC。
对于Windows CUDA支持,需在安装MSVC后安装NVIDIA CUDA。
对于Windows ROCm支持,需安装AMD HIP SDK,并配置Strawberry Perl环境。
最后,确保将MSVC附带的ninja.exe添加到系统路径中。