Geliştirme
Ön koşulları yükleyin:
- Go
- CMake 3.24 veya daha yeni
- C/C++ derleyicisi: macOS'ta Clang, Windows'ta Visual Studio 2022 C++ araçları veya Linux'ta GCC/Clang
- Ninja
PATHdeğişkeninde olması önerilir, özellikle Windows'ta
Mevcut bir yerel yük için saf Go yinelemesi yapmak için Ollama'ı depo kökünden çalıştırın:
shell
go run . serveNOTE
Ollama, CGO ile derlenmiş yerel kod içerir. Zaman zaman bu veri yapıları değişebilir ve CGO eşitliğini kaybederek beklenmeyen çökmelere neden olabilir. Yerel kodun tam bir derlemesini zorlamak için önce go clean -cache komutunu çalıştırabilirsiniz.
Yerel derleme modeli
Yeni bir kontrol için veya yerel kodu değiştirdikten sonra, depo kökünden derleme yapın. macOS arm64'te bu, Metal çıkarımı derler. Tüm diğer platformlarda ise yalnızca CPU çıkarımı derler. Depo kökünde Go ikili dosyasını derler ve yerel çalışma zamanı yükünü build/lib/ollama altına yükler.
shell
cmake -B build .
cmake --build build --parallel 8
./ollama serveStandart bir ön ek düzenine yüklemek için:
shell
cmake --install build --prefix /path/to/installmacOS arm64 dışındaki tüm platformlarda, GPU arka uçlarını derlemek için arka uçları açıkça seçin:
shell
cmake -B build . -DOLLAMA_LLAMA_BACKENDS="cuda_v13;vulkan"
cmake --build build --parallel 8Desteklenen arka uç değerleri cuda_v12, cuda_v13, rocm_v7_1, rocm_v7_2, vulkan, cuda_jetpack5 ve cuda_jetpack6'dır.
Yerel donanımınız için GPU derlemelerini daraltmak için standart CMake mimari geçersiz kılmalarını kullanın:
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=gfx1100Yapılandırma sırasında GGML_* değerlerini ayarlayarak GGML derleme seçeneklerini ayarlayabilirsiniz. Örneğin, yerel hata ayıklama için CUDA flash attention çekirdeklerini devre dışı bırakmak üzere:
shell
cmake -B build . -DOLLAMA_LLAMA_BACKENDS=cuda_v12 -DGGML_CUDA_FA=OFFmacOS (Apple Silicon)
Ek ön koşullar:
MLX Metal, Metal araç zincirini gerektirir. Önce Xcode'u yükleyin, ardından:
shell
xcodebuild -downloadComponent MetalToolchainWindows
Ek ön koşullar:
- Visual Studio 2022 (Native Desktop İş Yükü dahil)
- (İsteğe bağlı) AMD GPU desteği
- (İsteğe bağlı) NVIDIA GPU desteği
- (İsteğe bağlı) Vulkan GPU desteği
- Vulkan SDK - AMD/Intel GPU'lar için kullanışlıdır
- (İsteğe bağlı) MLX motoru desteği
Ninja derlemeleri için CMake'ı Geliştirici PowerShell/Komut İstemi'nden veya Visual Studio derleyicisinin kullanılabilir olduğu başka bir kabuktan çalıştırın.
Vulkan için derleme
VULKAN_SDKortam değişkenini gerektirir:PowerShell
powershell$env:VULKAN_SDK="C:\VulkanSDK\<version>"CMD
cmdset VULKAN_SDK=C:\VulkanSDK\<version>
Windows (ARM)
Windows ARM şu anda ek hızlandırma kütüphanelerini desteklemiyor.
Linux
Ek ön koşullar:
- (İsteğe bağlı) AMD GPU desteği
- (İsteğe bağlı) NVIDIA GPU desteği
- (İsteğe bağlı) Vulkan GPU desteği
- Vulkan SDK - AMD/Intel GPU'lar için kullanışlıdır
- Veya paket yöneticisi ile yükleyin:
sudo apt install vulkan-sdk(Ubuntu/Debian) veyasudo dnf install vulkan-sdk(Fedora/CentOS)
- (İsteğe bağlı) MLX motoru desteği
- CUDA 13+ SDK
- cuDNN 9+
- OpenBLAS/LAPACK:
sudo apt install libopenblas-dev liblapack-dev liblapacke-dev(Ubuntu/Debian)
IMPORTANT
CMake'ı çalıştırmadan önce ön koşulların PATH değişkeninde olduğundan emin olun.
MLX Motoru (İsteğe Bağlı)
MLX motoru, safetensor tabanlı modelleri çalıştırmayı sağlar. macOS arm64'te MLX varsayılan olarak etkinleştirilidir. Diğer platformlarda MLX arka uçları OLLAMA_MLX_BACKENDS ile seçilir.
CUDA
CUDA 13+ ve cuDNN 9+ gerektirir.
shell
cmake -B build . -DOLLAMA_MLX_BACKENDS=cuda_v13
cmake --build build --parallel 8Yerel MLX kaynak geçersiz kılmaları
Geliştirme için faydalı olan MLX ve/veya MLX-C yerel kontrollerine göre derlemek için, CMake'ı çalıştırmadan önce ortam değişkenlerini ayarlayın:
shell
export OLLAMA_MLX_SOURCE=/path/to/mlx
export OLLAMA_MLX_C_SOURCE=/path/to/mlx-cmacOS arm64'te:
shell
OLLAMA_MLX_SOURCE=../mlx OLLAMA_MLX_C_SOURCE=../mlx-c cmake -B build .
cmake --build build --parallel 8CUDA için:
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 .Testleri çalıştırma
Testleri çalıştırmak için go test kullanın:
shell
go test ./...Kütüphane algılama
Ollama, yüklü ve yerel geliştirme düzenlerinde yerel yardımcı ikili dosyaları ve hızlandırma kütüphanelerini arar:
../lib/ollama,ollamabin/altında olan standart yüklemeler için./lib/ollama, Windows sürümü tarzı yükler ve yerel dist çıktısı için., yardımcılarıollamaile aynı konumda bulunan macOS sürümü artefaktları içinbuild/lib/ollamavedist/<platform>/lib/ollama, yerel geliştirme derlemeleri için
Kütüphaneler bulunamazsa, Ollama hiçbir hızlandırma kütüphanesi ile çalışmaz.