التطوير
تثبيت المتطلبات الأساسية:
- Go
- CMake 3.24 أو أحدث
- مترجم C/C++: Clang على أنظمة macOS، أدوات C++ لـ Visual Studio 2022 على أنظمة Windows، أو GCC/Clang على أنظمة Linux
- Ninja في المسار
PATHموصى به، خاصة على أنظمة Windows
لإجراء تكرارات على كود Go فقط مع حمولة أصلية موجودة مسبقاً، قم بتشغيل Ollama من جذر المستودع:
shell
go run . serveNOTE
يتضمن Ollama كوداً أصلياً تم تجميعها باستخدام CGO. قد تتغير هذه الهياكل البيانات من وقت لآخر، وقد يخرج CGO عن المزامنة مما يؤدي إلى تعطلات غير متوقعة. يمكنك فرض إجراء بناء كامل للكود الأصلي عن طريق تشغيل go clean -cache أولاً.
نموذج البناء الأصلي
للاستنساخ الأولي للمستودع، أو بعد تعديل الكود الأصلي، قم بالبناء من جذر المستودع. على أنظمة macOS arm64، يقوم هذا ببناء استدلال Metal. على جميع المنصات الأخرى، يقوم هذا ببناء استدلال يعمل فقط على CPU. يقوم ببناء الثنائي الخاص بـ Go في جذر المستودع وتثبيت حمولة وقت التشغيل الأصلي تحت المسار build/lib/ollama.
shell
cmake -B build .
cmake --build build --parallel 8
./ollama serveلتثبيت التطبيق بتخطيط بادئة قياسي:
shell
cmake --install build --prefix /path/to/installعلى جميع المنصات باستثناء macOS arm64، لبناء واجهات خلفية لوحدة معالجة الرسوميات (GPU)، حدد الواجهات الخلفية بشكل صريح:
shell
cmake -B build . -DOLLAMA_LLAMA_BACKENDS="cuda_v13;vulkan"
cmake --build build --parallel 8القيم المدعومة للواجهات الخلفية هي cuda_v12، cuda_v13، rocm_v7_1، rocm_v7_2، vulkan، cuda_jetpack5، و cuda_jetpack6.
استخدم تعديلات بنية CMake القياسية لتضييق عمليات بناء GPU لتتناسب مع العتاد المحلي:
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=gfx1100يمكنك ضبط خيارات بناء GGML عن طريق تعيين قيم GGML_* أثناء مرحلة التكوين. على سبيل المثال، لتعطيل نوى انتباه فلاش CUDA لتصحيح الأخطاء المحلي:
shell
cmake -B build . -DOLLAMA_LLAMA_BACKENDS=cuda_v12 -DGGML_CUDA_FA=OFFmacOS (سيليكون Apple)
متطلبات أساسية إضافية:
يتطلب MLX Metal سلسلة أدوات Metal. قم بتثبيت Xcode أولاً، ثم:
shell
xcodebuild -downloadComponent MetalToolchainWindows
متطلبات أساسية إضافية:
- Visual Studio 2022 يتضمن حمل عمل سطح المكتب الأصلي
- (اختياري) دعم وحدات معالجة الرسوميات (GPU) من AMD
- (اختياري) دعم وحدات معالجة الرسوميات (GPU) من NVIDIA
- (اختياري) دعم وحدات معالجة الرسوميات (GPU) عبر Vulkan
- Vulkan SDK - مفيد لوحدات معالجة الرسوميات من AMD/Intel
- (اختياري) دعم محرك MLX
لعمليات البناء باستخدام Ninja، قم بتشغيل CMake من نافذة PowerShell للمطورين أو موجه الأوامر، أو من أي shell آخر يتوفر فيه مترجم Visual Studio.
يتطلب البناء لواجهة Vulkan وجود متغير البيئة VULKAN_SDK:
PowerShell
powershell$env:VULKAN_SDK="C:\VulkanSDK\<version>"CMD
cmdset VULKAN_SDK=C:\VulkanSDK\<version>
Windows (ARM)
لا تدعم أنظمة Windows ARM مكتبات تسريع إضافية في الوقت الحالي.
Linux
متطلبات أساسية إضافية:
- (اختياري) دعم وحدات معالجة الرسوميات (GPU) من AMD
- (اختياري) دعم وحدات معالجة الرسوميات (GPU) من NVIDIA
- (اختياري) دعم وحدات معالجة الرسوميات (GPU) عبر Vulkan
- Vulkan SDK - مفيد لوحدات معالجة الرسوميات من AMD/Intel
- أو قم بالتثبيت عبر مدير الحزم:
sudo apt install vulkan-sdk(لأوبونتو/ديبيان) أوsudo dnf install vulkan-sdk(لفيدورا/سنت أو إس)
- (اختياري) دعم محرك MLX
- CUDA 13+ SDK
- cuDNN 9+
- OpenBLAS/LAPACK:
sudo apt install libopenblas-dev liblapack-dev liblapacke-dev(لأوبونتو/ديبيان)
IMPORTANT
تأكد من وجود المتطلبات الأساسية في المسار PATH قبل تشغيل CMake.
محرك MLX (اختياري)
يتيح محرك MLX تشغيل النماذج المعتمدة على صيغة safetensor. على أنظمة macOS arm64، يتم تفعيل MLX بشكل افتراضي. على المنصات الأخرى، يتم تحديد واجهات MLX الخلفية باستخدام المتغير OLLAMA_MLX_BACKENDS.
CUDA
يتطلب CUDA 13+ و cuDNN 9 فما فوق.
shell
cmake -B build . -DOLLAMA_MLX_BACKENDS=cuda_v13
cmake --build build --parallel 8تعديلات مصدر MLX المحلي
للبناء بناءً على استنساخ محلي لـ MLX و/أو MLX-C (مفيد للتطوير)، قم بتعيين متغيرات البيئة قبل تشغيل CMake:
shell
export OLLAMA_MLX_SOURCE=/path/to/mlx
export OLLAMA_MLX_C_SOURCE=/path/to/mlx-cعلى أنظمة macOS arm64:
shell
OLLAMA_MLX_SOURCE=../mlx OLLAMA_MLX_C_SOURCE=../mlx-c cmake -B build .
cmake --build build --parallel 8لـ 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 .تشغيل الاختبارات
لتشغيل الاختبارات، استخدم الأمر go test:
shell
go test ./...اكتشاف المكتبات
يبحث Ollama عن الثنائيات المساعدة الأصلية ومكتبات التسريع في تخطيطات التثبيت وتخطيطات التطوير المحلية:
../lib/ollamaللتثبيتات القياسية حيث يكونollamaتحت المسارbin/./lib/ollamaلحملات إصدارات Windows ومخرجات التوزيع المحلية.لملفات إصدارات macOS التي تحتوي على الأدوات المساعدة في نفس مسارollamabuild/lib/ollamaوdist/<platform>/lib/ollamaلعمليات بناء التطوير المحلية
إذا لم يتم العثور على المكتبات، لن يعمل Ollama مع أي مكتبات تسريع.