fix: bound unproven profile submissions and support single-worker takeover
This commit is contained in:
@@ -4,6 +4,8 @@ from dataclasses import dataclass, field
|
||||
from datetime import datetime
|
||||
from pathlib import PurePosixPath
|
||||
from typing import Any
|
||||
import hashlib
|
||||
import json
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
@@ -114,13 +116,34 @@ class ModelInspection:
|
||||
|
||||
@property
|
||||
def quantization_method(self) -> str | None:
|
||||
if str(self.model_card_metadata.get("library_name") or "").lower() == "mlx":
|
||||
return "mlx"
|
||||
value = self.model_config.get("quantization_config")
|
||||
if isinstance(value, dict):
|
||||
method = value.get("quant_method") or value.get("quantization_method")
|
||||
if method not in (None, ""):
|
||||
return str(method).strip().lower()
|
||||
if value:
|
||||
return "unknown"
|
||||
# MLX commonly uses a top-level quantization object, without
|
||||
# quant_method. Never treat packed weights as ordinary FP weights.
|
||||
value = self.model_config.get("quantization")
|
||||
if isinstance(value, dict) and value:
|
||||
if "bits" in value and "group_size" in value:
|
||||
return "mlx"
|
||||
return "unknown"
|
||||
return None
|
||||
|
||||
@property
|
||||
def quantization_signature(self) -> str:
|
||||
value = self.model_config.get("quantization_config") or self.model_config.get("quantization") or {}
|
||||
if not isinstance(value, dict):
|
||||
value = {}
|
||||
# compressed-tensors covers several incompatible formats. Preserve
|
||||
# the encoding configuration, not just its broad method name.
|
||||
encoded = json.dumps(value, sort_keys=True, separators=(",", ":"), default=str)
|
||||
return f"{self.quantization_method or 'none'}:{hashlib.sha256(encoded.encode()).hexdigest()[:16]}"
|
||||
|
||||
@property
|
||||
def max_context_length(self) -> int | None:
|
||||
for key in (
|
||||
|
||||
Reference in New Issue
Block a user