Files
sglang/python/sglang/srt/dllm/config.py
2025-12-07 18:25:33 +08:00

62 lines
1.8 KiB
Python

from typing import Any
from sglang.srt.configs.model_config import ModelConfig
from sglang.srt.server_args import ServerArgs
class DllmConfig:
def __init__(
self,
algorithm: str,
algorithm_config: dict[str, Any],
block_size: int,
mask_id: int,
):
self.algorithm = algorithm
self.algorithm_config = algorithm_config
self.block_size = block_size
self.mask_id = mask_id
@staticmethod
def from_server_args(
server_args: ServerArgs,
):
if server_args.dllm_algorithm is None:
return None
model_config = ModelConfig.from_server_args(
server_args,
model_path=server_args.model_path,
model_revision=server_args.revision,
)
if model_config.hf_config.architectures[0] == "LLaDA2MoeModelLM":
block_size = 32
mask_id = 156895
else:
raise RuntimeError(
f"Unknown diffusion LLM: {model_config.hf_config.architectures[0]}"
)
algorithm_config = {}
if server_args.dllm_algorithm_config is not None:
try:
import yaml
except ImportError:
raise ImportError(
"Please install PyYAML to use YAML config files. "
"`pip install pyyaml`"
)
with open(server_args.dllm_algorithm_config, "r") as f:
algorithm_config = yaml.safe_load(f)
# Parse common algorithm configurations
block_size = algorithm_config.get("block_size", block_size)
return DllmConfig(
algorithm=server_args.dllm_algorithm,
algorithm_config=algorithm_config,
block_size=block_size,
mask_id=mask_id,
)