94057c3d3e
PR Test (NPU) / check-changes (push) Has been cancelled
PR Test (NPU) / pr-gate (push) Has been cancelled
PR Test (NPU) / set-image-config (push) Has been cancelled
PR Test (NPU) / stage-b-test-1-npu-a2 (0) (push) Has been cancelled
PR Test (NPU) / stage-b-test-1-npu-a2 (1) (push) Has been cancelled
PR Test (NPU) / stage-b-test-2-npu-a2 (0) (push) Has been cancelled
PR Test (NPU) / stage-b-test-2-npu-a2 (1) (push) Has been cancelled
PR Test (NPU) / stage-b-test-4-npu-a3 (push) Has been cancelled
PR Test (NPU) / stage-b-test-16-npu-a3 (push) Has been cancelled
PR Test (NPU) / multimodal-gen-test-1-npu-a3 (push) Has been cancelled
PR Test (NPU) / multimodal-gen-test-2-npu-a3 (push) Has been cancelled
PR Test (Arm64) / pr-gate (push) Has been cancelled
PR Test (Arm64) / check-changes (push) Has been cancelled
PR Test (Arm64) / build-test (push) Has been cancelled
PR Test (sgl-router) / gate (push) Has been cancelled
PR Test (sgl-router) / tier-1 — lint (push) Has been cancelled
PR Test (sgl-router) / tier-2 — build + test (push) Has been cancelled
PR Test (sgl-router) / tier-3 — docker (placeholder) (push) Has been cancelled
PR Test (sgl-router) / tier-3 — k8s integration (push) Has been cancelled
PR Test (sgl-router) / tier-3 — e2e (push) Has been cancelled
PR Test (sgl-router) / finish (push) Has been cancelled
PR Test (NPU) / single-node-poc (map[name:qwen3_6_27b_w8a8_1p_in64k_out1k_50ms runner:linux-aarch64-a3-2 test_case:test/registered/ascend/performance/qwen3_6_27b/test_npu_qwen3_6_27b_w8a8_1p_in64k_out1k_50ms.py test_type:perf]) (push) Has been cancelled
PR Test (NPU) / pr-test-npu-finish (push) Has been cancelled
PR Test (Xeon) / pr-gate (push) Has been cancelled
PR Test (Xeon) / check-changes (push) Has been cancelled
PR Test (Xeon) / build-test (, xeon-gnr, base-b-test-cpu) (push) Has been cancelled
PR Test (XPU) / check-changes (push) Has been cancelled
PR Test (XPU) / pr-gate (push) Has been cancelled
PR Test (XPU) / stage-a-test-1-gpu-xpu (push) Has been cancelled
PR Test (XPU) / wait-for-stage-a (push) Has been cancelled
PR Test (XPU) / stage-b-test-1-gpu-xpu (push) Has been cancelled
PR Test (XPU) / finish (push) Has been cancelled
CI Model Inventory / build-inventory (push) Has been cancelled
Lint / lint (push) Has been cancelled
PR Benchmark (SMG Components) / Benchmark Compilation Check (push) Has been cancelled
PR Benchmark (SMG Components) / Benchmark - Manual Policy (push) Has been cancelled
PR Benchmark (SMG Components) / Benchmark - Request Processing (push) Has been cancelled
PR Benchmark (SMG Components) / Benchmark Summary (push) Has been cancelled
PR Test (SMG) / build-wheel (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on windows (x86_64 - auto) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on macos (x86_64 - auto) (push) Has been cancelled
PR Test (SMG) / python-unit-tests (push) Has been cancelled
PR Test (SMG) / unit-tests (push) Has been cancelled
PR Test (SMG) / benchmarks (push) Has been cancelled
PR Test (SMG) / chat-completions (push) Has been cancelled
PR Test (SMG) / chat-completions-4gpu (push) Has been cancelled
PR Test (SMG) / e2e (push) Has been cancelled
PR Test (SMG) / docker-build-test (push) Has been cancelled
PR Test (SMG) / k8s-integration (push) Has been cancelled
PR Test (SMG) / finish (push) Has been cancelled
PR Test (SMG) / summarize-benchmarks (push) Has been cancelled
Release SGLang Model Gateway Docker Image / publish (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on macos (aarch64 - auto) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on linux (aarch64 - auto) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on linux (x86_64 - auto) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on linux (aarch64 - musllinux_1_1) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / build on linux (x86_64 - musllinux_1_1) (push) Has been cancelled
Release SGLang Model Gateway to PyPI / Build SDist (push) Has been cancelled
Release SGLang Model Gateway to PyPI / Upload to PyPI (push) Has been cancelled
Release SGLang Kernels / build-cu129-matrix (aarch64, 12.9, 3.10, arm-kernel-build-node) (push) Has been cancelled
Release SGLang Kernels / build-cu129-matrix (x86_64, 12.9, 3.10, x64-kernel-build-node) (push) Has been cancelled
Release SGLang Kernels / release-cu129 (push) Has been cancelled
Release SGLang Kernels / build-cu130-matrix (aarch64, 13.0, 3.10, arm-kernel-build-node) (push) Has been cancelled
Release SGLang Kernels / build-cu130-matrix (x86_64, 13.0, 3.10, x64-kernel-build-node) (push) Has been cancelled
Release SGLang Kernels / release-cu130 (push) Has been cancelled
Release SGLang Kernels / build-rocm-matrix (3.10, 700) (push) Has been cancelled
Release SGLang Kernels / build-rocm-matrix (3.10, 720) (push) Has been cancelled
Release SGLang Kernels / release-rocm700 (push) Has been cancelled
Release SGLang Kernels / release-rocm720 (push) Has been cancelled
Release SGLang Kernels / build-musa43 (43, 3.10) (push) Has been cancelled
Release SGLang Kernels / release-musa43 (push) Has been cancelled
192 lines
5.7 KiB
Markdown
192 lines
5.7 KiB
Markdown
# Hy3-preview Usage
|
|
|
|
Hy3-preview is a large-scale language model (295B parameters, 21B active parameters) from Tencent Hunyuan team. SGLang supports serving Hy3-preview. This guide describes how to run Hy3-preview with native BF16.
|
|
|
|
## Installation
|
|
|
|
### Docker
|
|
|
|
```bash
|
|
docker pull lmsysorg/sglang:hy3-preview
|
|
```
|
|
|
|
### Build from Source
|
|
|
|
```bash
|
|
# Install SGLang
|
|
git clone https://github.com/sgl-project/sglang
|
|
cd sglang
|
|
pip3 install pip --upgrade
|
|
pip3 install "transformers>=5.6.0"
|
|
pip3 install -e "python"
|
|
```
|
|
|
|
## Launch Hy3-preview with SGLang
|
|
|
|
To serve the [Hy3-preview](https://huggingface.co/tencent/Hy3-preview) model on 8 GPUs. On 8x96GB H20, SGLang can barely deploy the BF16 model and can only run small batch sizes or short requests. Use larger-memory GPUs such as H20-3e when possible.
|
|
|
|
```bash
|
|
python3 -m sglang.launch_server \
|
|
--model tencent/Hy3-preview \
|
|
--tp 8 \
|
|
--tool-call-parser hunyuan \
|
|
--reasoning-parser hunyuan \
|
|
--served-model-name hy3-preview
|
|
```
|
|
|
|
### EAGLE Speculative Decoding
|
|
|
|
**Description**: SGLang supports Hy3-preview models with [EAGLE speculative decoding](https://docs.sglang.io/advanced_features/speculative_decoding.html#eagle-decoding).
|
|
|
|
**Usage**:
|
|
Add `--speculative-algorithm`, `--speculative-num-steps`, `--speculative-eagle-topk`, and `--speculative-num-draft-tokens` to enable this feature. For example:
|
|
|
|
```bash
|
|
python3 -m sglang.launch_server \
|
|
--model tencent/Hy3-preview \
|
|
--tp 8 \
|
|
--tool-call-parser hunyuan \
|
|
--reasoning-parser hunyuan \
|
|
--speculative-num-steps 1 \
|
|
--speculative-eagle-topk 1 \
|
|
--speculative-num-draft-tokens 2 \
|
|
--speculative-algorithm EAGLE \
|
|
--served-model-name hy3-preview
|
|
```
|
|
|
|
## OpenAI Client Example
|
|
|
|
First, install the OpenAI Python client:
|
|
|
|
```bash
|
|
uv pip install -U openai
|
|
```
|
|
|
|
You can use the OpenAI client as follows to verify thinking-mode responses.
|
|
|
|
```python
|
|
from openai import OpenAI
|
|
|
|
# If running SGLang locally with its default OpenAI-compatible port:
|
|
# http://localhost:30000/v1
|
|
openai_api_key = "EMPTY"
|
|
openai_api_base = "http://localhost:30000/v1"
|
|
|
|
client = OpenAI(
|
|
api_key=openai_api_key,
|
|
base_url=openai_api_base,
|
|
)
|
|
messages = [
|
|
{"role": "system", "content": "You are a helpful assistant."},
|
|
{"role": "user", "content": "Hello."},
|
|
]
|
|
|
|
# Thinking mode is disabled by default (no need to pass chat_template_kwargs).
|
|
resp = client.chat.completions.create(
|
|
model="hy3-preview",
|
|
messages=messages,
|
|
temperature=1,
|
|
max_tokens=4096,
|
|
)
|
|
print(resp.choices[0].message.content)
|
|
|
|
# Thinking mode is enabled only if 'reasoning_effort' and 'interleaved_thinking' are set in 'chat_template_kwargs'.
|
|
# 'reasoning_effort' supports: 'high', 'low', 'no_think'.
|
|
resp_think = client.chat.completions.create(
|
|
model="hy3-preview",
|
|
messages=messages,
|
|
temperature=1,
|
|
max_tokens=4096,
|
|
extra_body={
|
|
"chat_template_kwargs": {
|
|
"reasoning_effort": "high",
|
|
"interleaved_thinking": True
|
|
},
|
|
},
|
|
)
|
|
output_msg = resp_think.choices[0].message
|
|
# thinking content
|
|
print(output_msg.reasoning_content)
|
|
# response content
|
|
print(output_msg.content)
|
|
```
|
|
|
|
### cURL Usage
|
|
|
|
```bash
|
|
curl http://localhost:30000/v1/chat/completions \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"model": "hy3-preview",
|
|
"messages": [
|
|
{"role": "system", "content": "You are a helpful assistant."},
|
|
{"role": "user", "content": "Hello."}
|
|
],
|
|
"temperature": 1,
|
|
"max_tokens": 4096
|
|
}'
|
|
```
|
|
|
|
## Benchmarking Results
|
|
|
|
For benchmarking, disable prefix caching by adding `--disable-radix-cache` to the server command.
|
|
|
|
The following example runs the benchmark on 8 H20 GPUs with 96 GB memory each.
|
|
|
|
```bash
|
|
python3 -m sglang.bench_serving \
|
|
--backend sglang \
|
|
--flush-cache \
|
|
--dataset-name random \
|
|
--random-range-ratio 1.0 \
|
|
--random-input-len 4096 \
|
|
--random-output-len 4096 \
|
|
--num-prompts 5 \
|
|
--max-concurrency 1 \
|
|
--output-file hy3_preview_h20.jsonl \
|
|
--model tencent/Hy3-preview \
|
|
--served-model-name hy3-preview
|
|
```
|
|
|
|
If successful, you will see the following output.
|
|
|
|
```shell
|
|
============ Serving Benchmark Result ============
|
|
Backend: sglang
|
|
Traffic request rate: inf
|
|
Max request concurrency: 1
|
|
Successful requests: 5
|
|
Benchmark duration (s): 176.41
|
|
Total input tokens: 20480
|
|
Total input text tokens: 20480
|
|
Total generated tokens: 20480
|
|
Total generated tokens (retokenized): 20480
|
|
Request throughput (req/s): 0.03
|
|
Input token throughput (tok/s): 116.09
|
|
Output token throughput (tok/s): 116.09
|
|
Peak output token throughput (tok/s): 118.00
|
|
Peak concurrent requests: 2
|
|
Total token throughput (tok/s): 232.19
|
|
Concurrency: 1.00
|
|
----------------End-to-End Latency----------------
|
|
Mean E2E Latency (ms): 35279.06
|
|
Median E2E Latency (ms): 35275.60
|
|
P90 E2E Latency (ms): 35294.13
|
|
P99 E2E Latency (ms): 35294.41
|
|
---------------Time to First Token----------------
|
|
Mean TTFT (ms): 355.93
|
|
Median TTFT (ms): 309.28
|
|
P99 TTFT (ms): 518.36
|
|
-----Time per Output Token (excl. 1st token)------
|
|
Mean TPOT (ms): 8.53
|
|
Median TPOT (ms): 8.54
|
|
P99 TPOT (ms): 8.54
|
|
---------------Inter-Token Latency----------------
|
|
Mean ITL (ms): 8.53
|
|
Median ITL (ms): 8.54
|
|
P95 ITL (ms): 8.62
|
|
P99 ITL (ms): 8.74
|
|
Max ITL (ms): 31.70
|
|
==================================================
|
|
```
|