Phát triển
Cài đặt các điều kiện tiên quyết:
- Go
- CMake 3.24 hoặc mới hơn
- Trình biên dịch C/C++: Clang trên macOS, bộ công cụ C++ Visual Studio 2022 trên Windows, hoặc GCC/Clang trên Linux
- Ninja có trong
PATHđược khuyến nghị, đặc biệt trên Windows
Để lặp mã thuần Go với một native payload đã tồn tại, chạy Ollama từ thư mục gốc của kho lưu trữ:
shell
go run . serveNOTE
Ollama bao gồm mã native được biên dịch với CGO. Thỉnh thoảng các cấu trúc dữ liệu này có thể thay đổi và CGO có thể bị lệch phiên bản dẫn đến sự cố không mong muốn. Bạn có thể buộc thực hiện bản build đầy đủ của mã native bằng cách chạy lệnh go clean -cache trước.
Mô hình xây dựng native
Đối với kho lưu trữ mới tải về, hoặc sau khi thay đổi mã native, hãy xây dựng từ thư mục gốc của kho lưu trữ. Trên macOS arm64, bản xây dựng này sẽ tạo ra bản suy luận Metal. Trên tất cả các nền tảng khác, bản xây dựng này chỉ tạo bản suy luận chạy CPU. Nó sẽ xây dựng binary Go tại thư mục gốc của kho lưu trữ và cài đặt native runtime payload vào thư mục build/lib/ollama.
shell
cmake -B build .
cmake --build build --parallel 8
./ollama serveĐể cài đặt theo bố cục tiền tố chuẩn:
shell
cmake --install build --prefix /path/to/installTrên tất cả các nền tảng ngoại trừ macOS arm64, để xây dựng các backend GPU, hãy chọn rõ ràng các backend:
shell
cmake -B build . -DOLLAMA_LLAMA_BACKENDS="cuda_v13;vulkan"
cmake --build build --parallel 8Các giá trị backend được hỗ trợ là cuda_v12, cuda_v13, rocm_v7_1, rocm_v7_2, vulkan, cuda_jetpack5, và cuda_jetpack6.
Sử dụng các ghi đè kiến trúc CMake chuẩn để thu hẹp các bản xây dựng GPU cho phần cứng cục bộ:
shell
# CUDA
cmake -B build . -DOLLAMA_LLAMA_BACKENDS=cuda_v13 -DCMAKE_CUDA_ARCHITECTURES=native
# ROCm / HIP
cmake -B build . -DOLLAMA_LLAMA_BACKENDS=rocm_v7_2 -DCMAKE_HIP_ARCHITECTURES=gfx1100Bạn có thể điều chỉnh các tùy chọn xây dựng GGML bằng cách đặt các giá trị GGML_* trong quá trình cấu hình. Ví dụ, để tắt các nhân flash attention CUDA cho việc gỡ lỗi cục bộ:
shell
cmake -B build . -DOLLAMA_LLAMA_BACKENDS=cuda_v12 -DGGML_CUDA_FA=OFFmacOS (Apple Silicon)
Các điều kiện tiên quyết bổ sung:
MLX Metal yêu cầu bộ công cụ Metal. Cài đặt Xcode trước, sau đó:
shell
xcodebuild -downloadComponent MetalToolchainWindows
Các điều kiện tiên quyết bổ sung:
- Visual Studio 2022 bao gồm Native Desktop Workload
- (Tùy chọn) Hỗ trợ GPU AMD
- (Tùy chọn) Hỗ trợ GPU NVIDIA
- (Tùy chọn) Hỗ trợ GPU Vulkan
- Vulkan SDK - hữu ích cho các GPU AMD/Intel
- (Tùy chọn) Hỗ trợ engine MLX
Đối với các bản xây dựng dùng Ninja, hãy chạy CMake từ Developer PowerShell/Command Prompt hoặc một shell khác có trình biên dịch Visual Studio khả dụng.
Xây dựng cho Vulkan yêu cầu biến môi trường VULKAN_SDK:
PowerShell
powershell$env:VULKAN_SDK="C:\VulkanSDK\<version>"CMD
cmdset VULKAN_SDK=C:\VulkanSDK\<version>
Windows (ARM)
Windows ARM hiện tại không hỗ trợ các thư viện tăng tốc bổ sung.
Linux
Các điều kiện tiên quyết bổ sung:
- (Tùy chọn) Hỗ trợ GPU AMD
- (Tùy chọn) Hỗ trợ GPU NVIDIA
- (Tùy chọn) Hỗ trợ GPU Vulkan
- Vulkan SDK - hữu ích cho các GPU AMD/Intel
- Hoặc cài đặt qua trình quản lý gói:
sudo apt install vulkan-sdk(Ubuntu/Debian) hoặcsudo dnf install vulkan-sdk(Fedora/CentOS)
- (Tùy chọn) Hỗ trợ engine MLX
- CUDA 13+ SDK
- cuDNN 9+
- OpenBLAS/LAPACK:
sudo apt install libopenblas-dev liblapack-dev liblapacke-dev(Ubuntu/Debian)
IMPORTANT
Đảm bảo các điều kiện tiên quyết nằm trong PATH trước khi chạy CMake.
Engine MLX (Tùy chọn)
Engine MLX cho phép chạy các mô hình dựa trên safetensor. Trên macOS arm64, MLX được bật theo mặc định. Trên các nền tảng khác, các backend MLX được chọn bằng biến OLLAMA_MLX_BACKENDS.
CUDA
Yêu cầu CUDA 13+ và cuDNN 9+.
shell
cmake -B build . -DOLLAMA_MLX_BACKENDS=cuda_v13
cmake --build build --parallel 8Ghi đè nguồn MLX cục bộ
Để xây dựng dựa trên bản checkout cục bộ của MLX và/hoặc MLX-C (hữu ích cho phát triển), hãy đặt các biến môi trường trước khi chạy CMake:
shell
export OLLAMA_MLX_SOURCE=/path/to/mlx
export OLLAMA_MLX_C_SOURCE=/path/to/mlx-cTrên macOS arm64:
shell
OLLAMA_MLX_SOURCE=../mlx OLLAMA_MLX_C_SOURCE=../mlx-c cmake -B build .
cmake --build build --parallel 8Đối với CUDA:
powershell
$env:OLLAMA_MLX_SOURCE="../mlx"
$env:OLLAMA_MLX_C_SOURCE="../mlx-c"
cmake -B build . -DOLLAMA_MLX_BACKENDS=cuda_v13
cmake --build build --parallel 8Docker
shell
docker build .ROCm
shell
docker build --build-arg FLAVOR=rocm .Chạy kiểm thử
Để chạy kiểm thử, sử dụng lệnh go test:
shell
go test ./...Phát hiện thư viện
Ollama tìm kiếm các binary trợ giúp native và thư viện tăng tốc trong các bố cục cài đặt và phát triển cục bộ:
../lib/ollamacho các bản cài đặt chuẩn nơiollamanằm trong thư mụcbin/./lib/ollamacho các payload kiểu bản phát hành Windows và đầu ra dist cục bộ.cho các artifact bản phát hành macOS mà đặt các trợ giúp cùng vị trí vớiollamabuild/lib/ollamavàdist/<platform>/lib/ollamacho các bản xây dựng phát triển cục bộ
Nếu không tìm thấy các thư viện, Ollama sẽ không chạy với bất kỳ thư viện tăng tốc nào.