Debug-XAI / backend /models /factory.py
rongyuan
Update 1st version of UI.
89280a9
raw
history blame contribute delete
928 Bytes
from .base import LayerDecomposer
from .qwen import QwenDecomposer
# Registry mapping model type string (or class) to Decomposer
DECOMPOSER_REGISTRY = {
# Keys should match what we expect in model config or name logic
"qwen2": QwenDecomposer,
"qwen3": QwenDecomposer,
"qwen": QwenDecomposer, # Generic fallback
"llama": QwenDecomposer, # Llama usually identical structure (PreNorm, RMS, MLP)
}
def get_decomposer(model_name_or_obj) -> LayerDecomposer:
"""
Factory to return appropriate decomposer.
"""
# Simple logic based on string for now
name = str(model_name_or_obj).lower()
if "qwen" in name:
return QwenDecomposer()
if "llama" in name:
return QwenDecomposer() # Re-use for now as structure is same
# Default fallback (hope compatibility)
print(f"Warning: No specific decomposer for {name}. Using Qwen/Llama default.")
return QwenDecomposer()