neorichi commited on
Commit
dcfa8fe
·
verified ·
1 Parent(s): 96b2e5d

README: add SGLang config + real performance numbers

Browse files
Files changed (1) hide show
  1. README.md +36 -5
README.md CHANGED
@@ -37,20 +37,51 @@ security workflows and autonomous security agents.
37
  | Tool-calling | OpenAI-compatible (`qwen3_coder` parser) |
38
  | Serving | SGLang / vLLM compatible |
39
 
40
- ## Usage
41
- Nesi1 runs on any OpenAI-compatible inference server (SGLang, vLLM). Example
42
- with SGLang:
43
 
44
  ```bash
45
  python3 -m sglang.launch_server \
46
  --model-path nesilabs/Nesi1 \
47
  --served-model-name Nesi1 \
48
  --context-length 262144 \
 
 
 
49
  --tool-call-parser qwen3_coder \
50
- --trust-remote-code
 
51
  ```
52
 
53
- Then query it like any OpenAI chat endpoint (`/v1/chat/completions`).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
 
55
  ## ⚠️ Legal Notice / Disclaimer
56
 
 
37
  | Tool-calling | OpenAI-compatible (`qwen3_coder` parser) |
38
  | Serving | SGLang / vLLM compatible |
39
 
40
+ ## Deployment
41
+ Nesi1 runs on any OpenAI-compatible inference server (SGLang, vLLM). This is
42
+ the exact SGLang configuration we run in production:
43
 
44
  ```bash
45
  python3 -m sglang.launch_server \
46
  --model-path nesilabs/Nesi1 \
47
  --served-model-name Nesi1 \
48
  --context-length 262144 \
49
+ --mem-fraction-static 0.92 \
50
+ --trust-remote-code \
51
+ --kv-cache-dtype auto \
52
  --tool-call-parser qwen3_coder \
53
+ --default-chat-template-kwargs '{"enable_thinking":false}' \
54
+ --host 0.0.0.0 --port 30000
55
  ```
56
 
57
+ Then query it like any OpenAI chat endpoint (`POST /v1/chat/completions`).
58
+
59
+ ### What we learned (tips that matter)
60
+ - **`--tool-call-parser qwen3_coder`** is required for clean OpenAI-style
61
+ `tool_calls`. Without it, tool calls come back as raw `<tool_call>` text and
62
+ break agent frameworks.
63
+ - **`enable_thinking: false`** keeps internal reasoning out of the final answer.
64
+ - **bf16 KV cache (`--kv-cache-dtype auto`)** for quality. FP8 KV roughly
65
+ doubles capacity but we observed quality drift on long agentic sessions, so
66
+ we keep bf16.
67
+ - **Prefix caching (RadixCache) is the big win for agents.** In agentic loops
68
+ the same context is replayed every turn — cache-read hit rates of ~95%+ make
69
+ prefill almost free. Keep the agent context **append-only** to maximize hits.
70
+ - Speculative decoding (NEXTN) did **not** help on this model under
71
+ concurrency — it lowered throughput, so we left it off.
72
+
73
+ ### Performance (measured on 1× RTX PRO 6000 Blackwell 96GB, bf16)
74
+ | Metric | Value |
75
+ |---|---|
76
+ | Single-stream decode | **~84 tok/s** |
77
+ | Under concurrency (several streams) | ~50–75 tok/s per stream |
78
+ | KV cache pool | ~595k tokens |
79
+ | Concurrent sessions @ ~60k ctx | ~10 |
80
+ | Concurrent multi-agent pentest pipelines | ~2–3 |
81
+ | Max context | up to 256k tokens |
82
+
83
+ A single 96GB GPU comfortably serves a team's security copilots plus a few
84
+ parallel pentest pipelines. For higher concurrency, load-balance across GPUs.
85
 
86
  ## ⚠️ Legal Notice / Disclaimer
87