mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-23 23:18:13 +02:00
Fix auto-tune: ne pas forcer num_ctx quand le GPU n'est pas visible
Si Ollama tourne sur une autre machine, le conteneur Loki ne voit aucun GPU : l'auto-réglage prenait alors un chemin 'CPU' et fixait num_ctx=8192, ce qui forçait Ollama à charger une instance distincte du modèle qui débordait sur le CPU (lenteur). Désormais, GPU non détecté -> num_ctx=0 (défaut du modèle), donc Ollama réutilise l'instance déjà sur GPU. Déclarer GPU_VRAM_MB active le vrai réglage. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SVay7z3y7q2gEe54ByAE6N
This commit is contained in:
1 file changed
+12
-5
+12
-5
@@ -169,9 +169,15 @@ async def recommend(model: str) -> dict:
|
|||||||
rationale: list[str] = []
|
rationale: list[str] = []
|
||||||
|
|
||||||
if not gpu["available"]:
|
if not gpu["available"]:
|
||||||
# CPU : on reste prudent (le contexte coûte cher en latence).
|
# GPU non détecté CÔTÉ LOKI : Ollama tourne probablement sur une autre
|
||||||
num_ctx = _round_ctx(8192, ctx_max)
|
# machine. On ne force surtout PAS num_ctx (0 = défaut du modèle), sinon
|
||||||
rationale.append("Aucun GPU détecté — réglages CPU prudents.")
|
# Ollama chargerait une instance distincte qui déborderait sur le CPU.
|
||||||
|
num_ctx = 0
|
||||||
|
rationale.append(
|
||||||
|
"GPU non détecté côté Loki (Ollama distant ?) — contexte laissé au "
|
||||||
|
"défaut du modèle pour rester sur le GPU. Déclare GPU_VRAM_MB pour "
|
||||||
|
"un réglage précis."
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
vram = gpu["vram_total_mb"]
|
vram = gpu["vram_total_mb"]
|
||||||
model_mb = prof.get("size_mb") or _fallback_model_mb(prof)
|
model_mb = prof.get("size_mb") or _fallback_model_mb(prof)
|
||||||
@@ -193,8 +199,9 @@ async def recommend(model: str) -> dict:
|
|||||||
num_ctx = _round_ctx(_tier_ctx(budget), ctx_max)
|
num_ctx = _round_ctx(_tier_ctx(budget), ctx_max)
|
||||||
rationale.append("Archi modèle incomplète — estimation par paliers.")
|
rationale.append("Archi modèle incomplète — estimation par paliers.")
|
||||||
|
|
||||||
# Jetons de sortie : moitié du contexte, borné, en laissant de la place au prompt.
|
# Jetons de sortie : moitié du contexte, borné. Si num_ctx=0 (auto), on
|
||||||
max_tokens = max(512, min(num_ctx // 2, 8192))
|
# garde une valeur raisonnable sans la réduire.
|
||||||
|
max_tokens = 2048 if num_ctx == 0 else max(512, min(num_ctx // 2, 8192))
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"gpu": gpu,
|
"gpu": gpu,
|
||||||
|
|||||||
Reference in new issue
Block a user