@
c0xt30a 当前 long 模式( systemd 默认跑的
serve-flash-next.sh )是这样设置的:
通过 SGLang 的 `--json-model-override-args` 覆盖到 `text_config.rope_parameters`:
```json
{"text_config":{"rope_parameters":{
"mrope_interleaved":true,
"mrope_section":[11,11,10],
"rope_type":"yarn",
"rope_theta":10000000,
"partial_rotary_factor":0.25,
"factor":2.0,
"original_max_position_embeddings":262144
}}}
```
配合命令行 `--context-length 524288`。
要点拆解:
- `partial_rotary_factor=0.25` 是模型原生值(只有 25% 的 head dim 带 RoPE ,这个不是为扩长改的,只是随 override 一起显式声明,防止 SGLang 读不到 config 里的 rope 字段)
- `factor=2.0` 是扩长手段:原生 `original_max_position_embeddings=262144`( 256K ),YaRN ×2 → 524288 ( 512K )
- `rope_theta=1e7`、`mrope_interleaved` + `mrope_section [11,11,10]` 保持不变,与原生配置一致
- 权重文件本身 config.json 里 rope 字段是空的( NVFP4 转换版没带),所以才需要 json-model-override-args 注入,两套脚本(
serve-flash-next.sh /
serve-flash-next-test.sh )里这段 override 相同
- fast 模式则不带这组 override ,直接用原生 256K
注意 factor 不是自己拍脑袋设的缩放率——262144×2.0=524288 ,与 `--context-length` 严格对应;两者不一致时 SGLang 会在 rope 外推区间外产生质量断崖。