feat(us-016): auto-detect shard range from model config
Layer count is now fetched from the curated catalog (zero network calls for known models) or via AutoConfig.from_pretrained() (~1 KB config.json only) when model_id is given without --shard-start/--shard-end. - model_catalog: add detect_num_layers(), two small Qwen models at top - startup: _detect_num_layers() helper; shard range auto-derived - wizard: show detected layer count for custom HF repos - tests: 3 new tests for auto-shard; fix catalog-order assumptions Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -9,7 +9,7 @@ from pathlib import Path
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from .config import DEFAULTS, _DEFAULT_DOWNLOAD_DIR, _DEFAULT_TRACKER_URL, _DEFAULT_WALLET_PATH
|
||||
from .model_catalog import CURATED_MODELS, ModelPreset, browse_hf_hub
|
||||
from .model_catalog import CURATED_MODELS, ModelPreset, browse_hf_hub, detect_num_layers
|
||||
|
||||
if TYPE_CHECKING:
|
||||
pass
|
||||
@@ -239,6 +239,13 @@ def run_wizard(config_path_override=None) -> dict:
|
||||
if choice == len(CURATED_MODELS) + 1:
|
||||
repo = _browse_hf_interactive()
|
||||
if repo:
|
||||
# Look up layer count for custom repo
|
||||
print(f" Checking {repo} config...", end=" ", flush=True)
|
||||
layers = detect_num_layers(repo)
|
||||
if layers:
|
||||
print(f"{layers} layers")
|
||||
else:
|
||||
print("(layer count unknown — will detect on start)")
|
||||
selected_repo = repo
|
||||
selected_preset = None
|
||||
else:
|
||||
@@ -254,7 +261,10 @@ def run_wizard(config_path_override=None) -> dict:
|
||||
selected_repo = None
|
||||
selected_preset = None
|
||||
|
||||
print(f"\n ✓ Selected: {selected_repo}")
|
||||
num_layers = (selected_preset.num_layers if selected_preset
|
||||
else detect_num_layers(selected_repo or ""))
|
||||
layers_str = f" {num_layers} layers" if num_layers else ""
|
||||
print(f"\n ✓ Selected: {selected_repo}{layers_str}")
|
||||
|
||||
# Step 3b: Quantization
|
||||
quant = _ask_quant(gpus, selected_preset)
|
||||
|
||||
Reference in New Issue
Block a user