feat: dynamically clean incompatible architectures
This commit is contained in:
@@ -8,7 +8,7 @@ from dataclasses import dataclass
|
||||
from datetime import timedelta
|
||||
from typing import Any
|
||||
|
||||
from architecture_compatibility import architecture_compatibility_key, architecture_profile
|
||||
from architecture_compatibility import architecture_compatibility_key, architecture_profiles
|
||||
from llm_classifier import LLMAssistedClassifier
|
||||
from models import ModelInspection
|
||||
from common import parse_datetime, utc_now
|
||||
@@ -422,24 +422,23 @@ class CandidatePreflightAdvisor:
|
||||
framework: str,
|
||||
task_type: str,
|
||||
) -> dict[str, Any] | None:
|
||||
profile = architecture_profile(inspection.model_type, inspection.architectures)
|
||||
if profile is None:
|
||||
return None
|
||||
key = architecture_compatibility_key(
|
||||
target_gpu,
|
||||
framework,
|
||||
task_type,
|
||||
profile["signature"],
|
||||
)
|
||||
if key is None:
|
||||
return None
|
||||
block = self._architecture_compatibility_blocks.get(key)
|
||||
if not isinstance(block, dict):
|
||||
return None
|
||||
expires_at = parse_datetime(block.get("expiresAt"))
|
||||
if expires_at is None or expires_at <= utc_now():
|
||||
return None
|
||||
return dict(block)
|
||||
for profile in architecture_profiles(inspection.model_type, inspection.architectures):
|
||||
key = architecture_compatibility_key(
|
||||
target_gpu,
|
||||
framework,
|
||||
task_type,
|
||||
profile["signature"],
|
||||
)
|
||||
if key is None:
|
||||
continue
|
||||
block = self._architecture_compatibility_blocks.get(key)
|
||||
if not isinstance(block, dict):
|
||||
continue
|
||||
expires_at = parse_datetime(block.get("expiresAt"))
|
||||
if expires_at is None or expires_at <= utc_now():
|
||||
continue
|
||||
return dict(block)
|
||||
return None
|
||||
|
||||
def summary(self) -> dict[str, Any]:
|
||||
with self._lock:
|
||||
|
||||
Reference in New Issue
Block a user