llm_lab_perso/optimize_ollama.bat
2025-03-27 18:40:52 +01:00

94 lines
3.1 KiB
Batchfile

@echo off
setlocal
echo ===== Optimisation d'Ollama pour Windows 11 Pro =====
echo.
REM Vérifier si on est en mode administrateur
net session >nul 2>&1
if %errorLevel% NEQ 0 (
echo Ce script doit être exécuté en tant qu'administrateur.
echo Veuillez le relancer avec un clic droit - "Exécuter en tant qu'administrateur"
exit /b 1
)
REM Vérifier si Ollama est installé
where ollama >nul 2>&1
if %errorLevel% NEQ 0 (
echo Ollama ne semble pas être installé ou n'est pas dans le PATH.
echo Veuillez installer Ollama depuis https://ollama.com/download/windows
exit /b 1
)
REM Vérifier si le service Ollama est en cours d'exécution
sc query "Ollama" | find "STATE" | find "RUNNING" >nul 2>&1
if %errorLevel% NEQ 0 (
echo Le service Ollama n'est pas en cours d'exécution.
echo Démarrage du service...
net start Ollama
if %errorLevel% NEQ 0 (
echo Impossible de démarrer le service Ollama.
echo Veuillez vérifier l'installation d'Ollama.
exit /b 1
)
)
REM Créer le fichier de configuration Ollama optimal
echo Création d'un fichier de configuration optimisé pour Ollama...
mkdir "%USERPROFILE%\.ollama" 2>nul
REM Détection du nombre de cœurs CPU
for /f "tokens=2 delims==" %%i in ('wmic cpu get NumberOfCores /value ^| find "NumberOfCores"') do set "CPU_CORES=%%i"
REM Détection de la mémoire RAM en GB
for /f "tokens=2 delims==" %%i in ('wmic OS get TotalVisibleMemorySize /value ^| find "TotalVisibleMemorySize"') do set "RAM_KB=%%i"
set /a "RAM_GB=%RAM_KB% / 1024 / 1024"
REM Configuration adaptative en fonction des ressources
set /a "NUM_THREADS=%CPU_CORES%"
if %NUM_THREADS% GTR 16 set "NUM_THREADS=16"
set /a "BATCH_SIZE=512"
if %RAM_GB% GTR 32 set /a "BATCH_SIZE=1024"
set /a "CTX_SIZE=8192"
if %RAM_GB% GTR 48 set /a "CTX_SIZE=16384"
echo {> "%USERPROFILE%\.ollama\config.json"
echo "gpu_layers": -1,>> "%USERPROFILE%\.ollama\config.json"
echo "num_ctx": %CTX_SIZE%,>> "%USERPROFILE%\.ollama\config.json"
echo "num_thread": %NUM_THREADS%,>> "%USERPROFILE%\.ollama\config.json"
echo "num_batch": %BATCH_SIZE%,>> "%USERPROFILE%\.ollama\config.json"
echo "num_gpu": 100>> "%USERPROFILE%\.ollama\config.json"
echo }>> "%USERPROFILE%\.ollama\config.json"
echo.
echo Configuration créée avec les paramètres suivants:
echo - Nombre de threads: %NUM_THREADS%
echo - Taille de contexte: %CTX_SIZE%
echo - Taille de batch: %BATCH_SIZE%
echo - Utilisation maximale du GPU
REM Redémarrer le service Ollama pour appliquer les changements
echo.
echo Redémarrage du service Ollama pour appliquer les paramètres...
net stop Ollama
timeout /t 3 /nobreak >nul
net start Ollama
echo.
echo Optimisation terminée! Ollama devrait maintenant fonctionner avec des performances optimales.
REM Test de connectivité
echo.
echo Test de la connexion à Ollama...
timeout /t 2 /nobreak >nul
curl -s http://localhost:11434/api/tags >nul 2>&1
if %errorLevel% EQU 0 (
echo Connexion réussie! Ollama est prêt à être utilisé.
) else (
echo Avertissement: Impossible de se connecter à Ollama.
echo Veuillez vérifier que le service est bien démarré.
)
endlocal