diff --git a/k8s/apps/llm-serving/clef-candle.yaml b/k8s/apps/llm-serving/clef-candle.yaml index 32309b7..6292b19 100644 --- a/k8s/apps/llm-serving/clef-candle.yaml +++ b/k8s/apps/llm-serving/clef-candle.yaml @@ -7,12 +7,7 @@ metadata: app.kubernetes.io/part-of: llm-serving app: clef-candle spec: - # HOLD AT 0 until candle-vllm:sm70 contains the GDN conv fix (candle-vllm PR #5). - # An older :sm70 zeroes the key channel band, starves the delta rule and makes - # every linear-attention layer return zero. The response is still HTTP 200 and - # well formed, so the failure is silent. Raise to 1 only after CI publishes a - # :sm70 build from the merge that carries the fix. - replicas: 0 + replicas: 1 strategy: # One replica holds one GPU, so Recreate keeps the rollout to a single # weights load instead of needing a second card for a surge pod. @@ -42,10 +37,9 @@ spec: # and makes every linear-attention layer return zero. The symptom is # a well-formed /v1/systemone response with wrong answers, not an error. image: forgejo.riotpiao.com/riotpiao-poimen/candle-vllm:sm70 - # :sm70 is a moving tag. With the default IfNotPresent a rebuilt image - # is never pulled while any node holds a cached copy of that tag, so the - # cluster keeps serving the old binary and the fix looks like it did not - # land. Always forces the pull on every pod start. + # :sm70 is a moving tag. Default IfNotPresent keeps a cached copy and a + # rebuilt image never reaches the pod, so a merged fix looks like it did + # not land. Always forces the pull on every pod start. imagePullPolicy: Always command: ["/usr/local/bin/candle-vllm"] # clef-flash is a hybrid Qwen3_5 model: 8 full-attention layers plus 24