From a3c5e286f625e993ef6bcf859824fa7fe62b7e5c Mon Sep 17 00:00:00 2001
From: amote-i <49533125+amote-i@users.noreply.github.com>
Date: Sat, 27 Jun 2026 18:23:11 +0800
Subject: [PATCH] [NPU] [DOC] Fix and update Ascend NPU docs (#29501)
---
.../ascend-npus/ascend_npu.mdx | 5 ++--
.../ascend_npu_accuracy_evaluation.mdx | 30 +++++++++++++++----
.../ascend_npu_environment_variables.mdx | 6 ++--
.../ascend-npus/ascend_npu_faq.mdx | 4 +--
.../ascend_npu_glm5.2_examples.mdx | 15 +++++-----
.../ascend_npu_performance_testing.mdx | 2 +-
.../ascend-npus/ascend_npu_profiling.mdx | 2 +-
.../ascend-npus/ascend_npu_quantization.mdx | 2 +-
.../ascend_npu_support_features.mdx | 2 +-
9 files changed, 45 insertions(+), 23 deletions(-)
diff --git a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu.mdx b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu.mdx
index 395568d49..b4b5ef1b8 100644
--- a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu.mdx
+++ b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu.mdx
@@ -1,7 +1,8 @@
---
title: SGLang installation with NPUs support
+description: "Complete installation guide for SGLang on Ascend NPUs, including component version mapping, environment setup, and launching inference services."
---
-You can install SGLang using any of the methods below. Please go through `System Settings` section to ensure the clusters are roaring at max performance. Feel free to leave an issue [here at sglang](https://github.com/sgl-project/sglang/issues) if you encounter any issues or have any problems.
+You can install SGLang using any of the methods below. Please go through `System Settings` section to ensure the clusters are operating at optimal performance. Feel free to leave an issue [here at sglang](https://github.com/sgl-project/sglang/issues) if you encounter any issues or have any problems.
## Component Version Mapping For SGLang
@@ -452,7 +453,7 @@ python3 -m sglang_router.launch_router \
#### PD Mixed Scene
```bash Command
python3 -m sglang.launch_server \
- --model-path Qwen3-VL-30B-A3B-Instruct \
+ --model-path Qwen/Qwen3-VL-30B-A3B-Instruct \
--host 127.0.0.1 \
--port 8000 \
--tp 4 \
diff --git a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_accuracy_evaluation.mdx b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_accuracy_evaluation.mdx
index 110315a62..2004ae422 100644
--- a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_accuracy_evaluation.mdx
+++ b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_accuracy_evaluation.mdx
@@ -78,10 +78,10 @@ docker run -it --rm --privileged --network=host --ipc=host --shm-size=16g \
### Install EvalScope
```shell Command
-# Method1 Installing via pip
+# Method 1: Installing via pip
pip install evalscope
-# Method2 Installing from source
+# Method 2: Installing from source
git clone https://github.com/modelscope/evalscope.git
cd evalscope/
pip install -e .
@@ -241,7 +241,27 @@ When using EvalScope commands without specifying a dataset or model path, it wil
requests.exceptions.SSLError: HTTPSConnectionPool(host='www.modelscope.cn', port=443): Max retries exceeded with url: /api/v1/datasets/AI-ModelScope/gsm8k (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1016)')))
[ERROR] 2026-05-13-02:20:01 (PID:876, Device:-1, RankID:-1) ERR99999 UNKNOWN application exception
```
-You can navigate to `/usr/local/python3.11.14/lib/python3.11/site-packages/requests/sessions.py`, find the `class Session` definition, and set `self.verify` to `False` to resolve this.
+**Temporary workaround (test only):**
+Navigate to `/usr/local/python3.11.14/lib/python3.11/site-packages/requests/sessions.py`, find the `class Session` definition, and set `self.verify = False`.
+
+
+This **disables TLS certificate validation globally** for the Python `requests` library. Use it **only as a temporary diagnostic step** in isolated test environments — never in production.
+
+
+**Stable solution:**
+The error is caused by a corporate TLS proxy injecting a self-signed certificate. Point `requests` to the proxy's CA bundle:
+
+```shell
+# Obtain the CA certificate from your network administrator
+# Then set the environment variable:
+export REQUESTS_CA_BUNDLE=/path/to/your-proxy-ca-bundle.crt
+```
+
+
+This is a common workaround for corporate proxy environments. If it does not resolve your issue, consult your IT department — proxy configurations vary across organizations.
+
+
+If you cannot obtain the CA certificate, download datasets manually as shown in [Download Dataset Error](#download-dataset-error) below.
### EvalScope Request Retry Timeout
If EvalScope keeps retrying requests with errors like:
@@ -267,9 +287,9 @@ root@localhost:/home/# wget https://www.modelscope.cn/datasets/evalscope/MMStar/
Connecting to 141.5.152.215:6688... connected.
ERROR: cannot verify www.modelscope.cn's certificate, issued by ‘CN=Huawei Web Secure Internet Gateway CA V2,OU=IT,O=Huawei,L=Shenzhen,ST=GuangDong,C=CN’:
Self-signed certificate encountered.
-To connect to www.modelscope.cn insecurely, use `--no-check-certificate'.
+To connect to www.modelscope.cn insecurely, use `--no-check-certificate`.
```
-You can add `--no-check-certificate'
+You can add `--no-check-certificate`
```
wget https://www.modelscope.cn/datasets/evalscope/MMStar/resolve/master/MMStar.tsv --no-check-certificate
```
diff --git a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_environment_variables.mdx b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_environment_variables.mdx
index 4a88e7052..4f8723ef5 100644
--- a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_environment_variables.mdx
+++ b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_environment_variables.mdx
@@ -58,17 +58,17 @@ This document provides a list of commonly used environment variables and aims to
DEEPEP_NORMAL_LONG_SEQ_PER_ROUND_TOKENS |
- Enable ant-moving function in dispatch stage. Indicates the number of tokens transmitted per round on each rank. |
+ Enable long-sequence token pipelining in dispatch stage. Indicates the number of tokens transmitted per round on each rank. |
8192 |
DEEPEP_NORMAL_LONG_SEQ_ROUND |
- Enable ant-moving function in dispatch stage. Indicates the number of rounds transmitted on each rank. |
+ Enable long-sequence token pipelining in dispatch stage. Indicates the number of rounds transmitted on each rank. |
1 |
DEEPEP_NORMAL_COMBINE_ENABLE_LONG_SEQ |
- Enable ant-moving function in combine stage. The value 0 means disabled. |
+ Enable long-sequence token pipelining in combine stage. The value 0 means disabled. |
0 |
diff --git a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_faq.mdx b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_faq.mdx
index c0fab4ab9..dd321d94b 100644
--- a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_faq.mdx
+++ b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_faq.mdx
@@ -138,7 +138,7 @@ The `alloc_extend_kernel` operator appears to have a memory allocation issue. Pe
Modify `sglang/srt/hardware_backend/npu/allocator_npu.py` to comment out the affected branch and use the else branch instead.
-```text highlight=15-36
+```python highlight=15-36
def alloc_extend(
self,
prefix_lens: torch.Tensor,
@@ -206,7 +206,7 @@ If the NPUs are not occupied, you can use `--tp` to deploy across multiple devic
## 5. How to update sgl-kernel-npu
### Solution
-```
+```shell
git clone https://github.com/sgl-project/sgl-kernel-npu.git
source /usr/local/Ascend/ascend-toolkit/set_env.sh
diff --git a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_glm5.2_examples.mdx b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_glm5.2_examples.mdx
index cb83c36bf..e560bc30d 100644
--- a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_glm5.2_examples.mdx
+++ b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_glm5.2_examples.mdx
@@ -1,3 +1,8 @@
+---
+title: "GLM-5.2 examples"
+description: "Deploy GLM-5.2 with SGLang on Ascend NPUs, including single-node, multi-node, and Prefill-Decode disaggregation modes."
+---
+
# GLM-5.2 examples
## Introduction
@@ -10,14 +15,14 @@ The GLM (General Language Model) series is an open-source bilingual large langua
- `GLM-5.2`(BF16 version): [Download model weight](https://huggingface.co/collections/zai-org/glm-52).
- `GLM-5.2-w8a8`(Quantized version without mtp): [Download model weight](https://www.modelscope.cn/models/Eco-Tech/GLM-5.2-w8a8/).
-- You can use [msmodelslim](https://gitcode.com/Ascend/msmodelslim) to quantify the model naively.
+- You can use [msmodelslim](https://gitcode.com/Ascend/msmodelslim) to quantize the model naively.
### Installation
The dependencies required for the NPU runtime environment have been integrated into a Docker image and uploaded to the online platform. You can directly pull it.
-```{code-block} bash
+```bash
#Atlas 800 A3
docker pull swr.cn-southwest-2.myhuaweicloud.com/base_image/dockerhub/lmsysorg/sglang:cann9.0.0-a3-glm5.2-20260615
#Atlas 800 A2
@@ -250,7 +255,6 @@ do
break
fi
done
-
```
### Prefill-Decode Disaggregation
@@ -356,9 +360,6 @@ do
break
fi
done
-
-exit 1
-
```
```shell
@@ -373,4 +374,4 @@ python3 -m sglang_router.launch_router \
### Using Benchmark
-Refer to [Benchmark and Profiling](../../developer_guide/benchmark_and_profiling.md) for details.
+Refer to [Benchmark and Profiling](/docs/developer_guide/benchmark_and_profiling) for details.
diff --git a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_performance_testing.mdx b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_performance_testing.mdx
index 7035dbd74..de51acf2f 100644
--- a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_performance_testing.mdx
+++ b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_performance_testing.mdx
@@ -358,7 +358,7 @@ Max ITL (ms): 2229.30
#### SGLang Serving Benchmark Result — Complete Reference
-The output format is **hardcoded in `bench_serving.py`. All formatting decisions — including column widths, alignment, and decimal precision — are statically defined in the source and cannot be changed via command-line arguments.
+The output format is **hardcoded in `bench_serving.py`**. All formatting decisions — including column widths, alignment, and decimal precision — are statically defined in the source and cannot be changed via command-line arguments.
##### Test Configuration
diff --git a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_profiling.mdx b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_profiling.mdx
index f9df1af39..e36747e36 100644
--- a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_profiling.mdx
+++ b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_profiling.mdx
@@ -152,7 +152,7 @@ curl -X POST http://127.0.0.1:30000/stop_profile
server needs time to flush trace data to disk and parse it. Wait for the
response to complete.
This method takes a significant amount of time to parse
-profiling data;consider using **Method B** instead to avoid lengthy waits.
+profiling data; consider using **Method B** instead to avoid lengthy waits.
#### Method B: API Auto-Stop
diff --git a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_quantization.mdx b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_quantization.mdx
index c9fa5dd28..bbb7ced8f 100644
--- a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_quantization.mdx
+++ b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_quantization.mdx
@@ -5,7 +5,7 @@ metatags:
---
To load already quantized models, simply load the model weights and config. Again, if the model has been quantized offline, there's no need to add `--quantization` argument when starting the engine. The quantization method will be automatically parsed from the downloaded `quant_model_description.json` or `config.json` config.
-SGLang support **mix-bits** quantization (independently defines and loads each layer depending on the type of quantification specified in the `quant_model_description'.json`). [Advanced mix-bits for MoE](https://github.com/sgl-project/sglang/pull/17361) in progress, will add independent quantization determination for the w13 (up-gate) and w2 (down) layers.
+SGLang supports **mix-bits** quantization (independently defines and loads each layer depending on the type of quantification specified in the `quant_model_description.json`). [Advanced mix-bits for MoE](https://github.com/sgl-project/sglang/pull/17361) in progress, will add independent quantization determination for the w13 (up-gate) and w2 (down) layers.
[ModelSlim on Ascend support](https://github.com/sgl-project/sglang/pull/14504)
diff --git a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_support_features.mdx b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_support_features.mdx
index 24f592454..302bf6d84 100644
--- a/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_support_features.mdx
+++ b/docs_new/docs/hardware-platforms/ascend-npus/ascend_npu_support_features.mdx
@@ -1311,7 +1311,7 @@ click [Server Arguments](../../advanced_features/server_arguments).
| `--grammar-backend` |
`None` |
- `xgrammar` |
+ `xgrammar`, `outlines`, `llguidance` |
A2, A3 |