Update deepseek-v4-flash.service
Browse files- deepseek-v4-flash.service +19 -3
deepseek-v4-flash.service
CHANGED
|
@@ -11,10 +11,17 @@
|
|
| 11 |
# Measured 2026-07-21: 115-133 tok/s sustained generation (~1.5-1.65x over
|
| 12 |
# the ~80 tok/s plain-decoding baseline), 96.6-100% draft acceptance.
|
| 13 |
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
# NOTE: the setup script also generates a copy of this unit inside the
|
| 15 |
-
# project folder with User/paths already baked in. EDIT the
|
| 16 |
# /home/sinclair/deepseek-v4-serve references and User/Group below if your
|
| 17 |
-
# layout differs.
|
| 18 |
#
|
| 19 |
# Install:
|
| 20 |
# sudo cp deepseek-v4-flash.service /etc/systemd/system/
|
|
@@ -45,7 +52,16 @@ ExecStartPre=/usr/bin/nvidia-smi
|
|
| 45 |
|
| 46 |
ExecStart=/home/sinclair/deepseek-v4-serve/serve.sh
|
| 47 |
|
| 48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 49 |
# Weight load alone is ~80 s (+ ~5 s MTP drafter); don't hammer restarts.
|
| 50 |
RestartSec=15
|
| 51 |
# Give the engine time to tear down 4 TP workers and NCCL cleanly on stop.
|
|
|
|
| 11 |
# Measured 2026-07-21: 115-133 tok/s sustained generation (~1.5-1.65x over
|
| 12 |
# the ~80 tok/s plain-decoding baseline), 96.6-100% draft acceptance.
|
| 13 |
#
|
| 14 |
+
# Incident 2026-07-23: a Triton JIT module load OOM'd and killed a worker
|
| 15 |
+
# mid-run; the API server then exited *cleanly* (main PID rc 0), so the old
|
| 16 |
+
# Restart=on-failure never fired and the port stayed dead. Hence Restart=always
|
| 17 |
+
# below -- for an inference server a crash that looks like a clean exit is
|
| 18 |
+
# still a crash; only 'systemctl stop' should keep it down. ExecStartPost runs
|
| 19 |
+
# warmup.sh after every (re)start so Triton specializations compile up front.
|
| 20 |
+
#
|
| 21 |
# NOTE: the setup script also generates a copy of this unit inside the
|
| 22 |
+
# project folder with User/paths already baked in. EDIT the four
|
| 23 |
# /home/sinclair/deepseek-v4-serve references and User/Group below if your
|
| 24 |
+
# layout differs (three ExecStart* lines + WorkingDirectory).
|
| 25 |
#
|
| 26 |
# Install:
|
| 27 |
# sudo cp deepseek-v4-flash.service /etc/systemd/system/
|
|
|
|
| 52 |
|
| 53 |
ExecStart=/home/sinclair/deepseek-v4-serve/serve.sh
|
| 54 |
|
| 55 |
+
# Warm the Triton shape specializations after EVERY start (incl. auto-restart).
|
| 56 |
+
# warmup.sh waits for the API itself and is bounded, so it cannot hang the
|
| 57 |
+
# unit; '-' prefix + timeout mean a wedged warmup never fails the start.
|
| 58 |
+
ExecStartPost=-/usr/bin/timeout 900 /home/sinclair/deepseek-v4-serve/warmup.sh
|
| 59 |
+
# Budget must cover ExecStartPre + weight load + bounded warmup.
|
| 60 |
+
TimeoutStartSec=1200
|
| 61 |
+
|
| 62 |
+
# Restart=always, NOT on-failure: a JIT-OOM crash can present as a clean exit
|
| 63 |
+
# (see incident note above); only an explicit 'systemctl stop' should end it.
|
| 64 |
+
Restart=always
|
| 65 |
# Weight load alone is ~80 s (+ ~5 s MTP drafter); don't hammer restarts.
|
| 66 |
RestartSec=15
|
| 67 |
# Give the engine time to tear down 4 TP workers and NCCL cleanly on stop.
|