easydel.infra.elarge_model.normalizer#
Configuration normalization and validation utilities for ELM.
This module provides functions to normalize, validate, and transform ELM configurations into formats suitable for model loading, training, and inference.
- easydel.infra.elarge_model.normalizer.materialize_base_config(cfg: ELMConfig, prefer: Literal['base', 'sections'] = 'base') EasyDeLBaseConfigDict[source]#
Materialize a complete base configuration from ELM config sections.
This function consolidates configuration values from various sections (loader, sharding, quantization, etc.) into a single base configuration dictionary suitable for model initialization.
- Parameters
cfg – ELM configuration dictionary.
prefer – Resolution strategy for conflicts: - “base”: Base config values take precedence (default) - “sections”: Section values override base config
- Returns
Materialized base configuration with all relevant values.
- Return type
Example
>>> cfg = { ... "model": {"name_or_path": "meta-llama/Llama-2-7b"}, ... "loader": {"dtype": "bf16"}, ... "sharding": {"partition_axis": {"embed": "tp"}} ... } >>> base_cfg = materialize_base_config(cfg) >>> base_cfg["attn_dtype"] 'bfloat16'
- easydel.infra.elarge_model.normalizer.normalize(cfg: easydel.infra.elarge_model.types.ELMConfig | collections.abc.Mapping[str, Any]) ELMConfig[source]#
Normalize an ELM configuration by merging with defaults and processing values.
This function takes a raw configuration and: 1. Validates required fields (model.name_or_path) 2. Merges with default values from DEFAULTS 3. Infers missing values like max_model_len from base config
- Parameters
cfg – Raw ELM configuration dictionary or mapping.
- Returns
Normalized configuration with all defaults applied.
- Return type
- Raises
ValueError – If model.name_or_path is missing from the configuration.
Example
>>> cfg = {"model": {"name_or_path": "meta-llama/Llama-2-7b"}} >>> normalized = normalize(cfg) >>> "loader" in normalized True
- easydel.infra.elarge_model.normalizer.resolve_task(cfg: ELMConfig) TaskType[source]#
Resolve the task type from an ELM configuration.
- Parameters
cfg – ELM configuration dictionary.
- Returns
The resolved task type, defaults to CAUSAL_LM if not specified or AUTO_BIND.
- Return type
Example
>>> cfg = {"model": {"name_or_path": "meta-llama/Llama-2-7b", "task": "causal_lm"}} >>> resolve_task(cfg) <TaskType.CAUSAL_LM: 'causal_lm'>
- easydel.infra.elarge_model.normalizer.validate(cfg_like: easydel.infra.elarge_model.types.ELMConfig | collections.abc.Mapping[str, Any]) None[source]#
Validate an ELM configuration for correctness.
Performs various validation checks including: - Sharding dimensions and names consistency - Valid axis dimension values - Quantization configuration consistency
- Parameters
cfg_like – ELM configuration to validate.
- Raises
ValueError – If configuration contains invalid values or inconsistencies.
Example
>>> cfg = { ... "model": {"name_or_path": "meta-llama/Llama-2-7b"}, ... "sharding": { ... "axis_dims": (1, 1, 1, -1), ... "axis_names": ("dp", "fsdp", "ep", "tp") ... } ... } >>> validate(cfg)