fix: restore accuracy-first route admission
This commit is contained in:
@@ -20,7 +20,8 @@ DEFAULT_THROUGHPUT_WINDOW_HOURS = 6
|
||||
DEFAULT_FETCH_WORKERS = 4
|
||||
DEFAULT_FRAMEWORK_MIN_SAMPLES = 300
|
||||
DEFAULT_GPU_MIN_RECENT_TERMINALS = 20
|
||||
DEFAULT_FRAMEWORK_MIN_WILSON = 0.05
|
||||
DEFAULT_FRAMEWORK_MIN_WILSON = 0.20
|
||||
DEFAULT_GPU_MIN_WILSON = 0.15
|
||||
DEFAULT_COMMUNITY_WINDOW_DAYS = 30
|
||||
DEFAULT_COMMUNITY_MAX_MODELS = 200
|
||||
DEFAULT_COMMUNITY_HYDRATE_PER_REFRESH = 50
|
||||
@@ -201,7 +202,7 @@ class MarketIntelligenceManager:
|
||||
and health_factor >= 0.5
|
||||
and int(item.get("recentTerminal") or 0) >= DEFAULT_GPU_MIN_RECENT_TERMINALS
|
||||
and int(item.get("recentSuccess") or 0) > 0
|
||||
and wilson >= DEFAULT_FRAMEWORK_MIN_WILSON
|
||||
and wilson >= DEFAULT_GPU_MIN_WILSON
|
||||
)
|
||||
|
||||
def _base_state(self, gpus: list[str], task_types: list[str], now: datetime) -> dict[str, Any]:
|
||||
@@ -554,7 +555,7 @@ class MarketIntelligenceManager:
|
||||
and health_factor >= 0.5
|
||||
and int(stats.get("recentTerminal") or 0) >= DEFAULT_GPU_MIN_RECENT_TERMINALS
|
||||
and int(stats.get("recentSuccess") or 0) > 0
|
||||
and wilson >= DEFAULT_FRAMEWORK_MIN_WILSON
|
||||
and wilson >= DEFAULT_GPU_MIN_WILSON
|
||||
)
|
||||
result[gpu] = stats
|
||||
|
||||
@@ -661,7 +662,26 @@ class MarketIntelligenceManager:
|
||||
# Missing live data falls back to the scheduler's already-proven
|
||||
# long/recent pools. Explicitly failed public gates never do.
|
||||
if eligibility is False:
|
||||
continue
|
||||
low_sample = int(item.get("recentTerminal") or 0) < DEFAULT_GPU_MIN_RECENT_TERMINALS
|
||||
has_recent_success = int(item.get("recentSuccess") or 0) > 0
|
||||
recent_wilson = float(item.get("recentWilsonLowerBound") or 0.0)
|
||||
healthy = float(item.get("healthFactor") or 1.0) >= 0.5
|
||||
has_proven_framework = any(
|
||||
bool(framework.get("officialConfigValid", False))
|
||||
and int(framework.get("modelCount") or 0) >= self.framework_min_samples
|
||||
and float(framework.get("wilsonLowerBound") or 0.0) >= DEFAULT_FRAMEWORK_MIN_WILSON
|
||||
for by_gpu in ((self.state or {}).get("frameworkStats") or {}).values()
|
||||
for framework in ((by_gpu or {}).get(gpu) or {}).values()
|
||||
)
|
||||
if (
|
||||
item.get("canVerify") is False
|
||||
or not low_sample
|
||||
or not has_recent_success
|
||||
or recent_wilson < DEFAULT_GPU_MIN_WILSON
|
||||
or not healthy
|
||||
or not has_proven_framework
|
||||
):
|
||||
continue
|
||||
ranked.append((-float(item.get("selectionWeight") or 1.0), index, gpu))
|
||||
return [gpu for _weight, _index, gpu in sorted(ranked)]
|
||||
|
||||
@@ -723,6 +743,7 @@ class MarketIntelligenceManager:
|
||||
|
||||
recent_item = (self.local_outcome_stats.get("recentCombinationStats") or {}).get(local_key) or {}
|
||||
recent_success = max(0, int(recent_item.get("successCount") or 0))
|
||||
recent_all_failures = max(0, int(recent_item.get("failureCount") or 0))
|
||||
recent_failure = max(
|
||||
0,
|
||||
int(recent_item.get("attributableFailureCount", recent_item.get("failureCount") or 0)),
|
||||
@@ -743,6 +764,16 @@ class MarketIntelligenceManager:
|
||||
elif last_terminal_at is not None and consecutive_failures >= 5:
|
||||
circuit_reason = "five_consecutive_local_failures"
|
||||
circuit_until = last_terminal_at + timedelta(hours=12)
|
||||
elif (
|
||||
last_terminal_at is not None
|
||||
and recent_success + recent_all_failures >= 5
|
||||
and recent_success / (recent_success + recent_all_failures) < 0.10
|
||||
):
|
||||
# Runtime-empty and other unresolved failures must not create a
|
||||
# permanent compatibility blacklist. Repetition is still strong
|
||||
# operational evidence, so pause the route while feedback settles.
|
||||
circuit_reason = "recent_terminal_success_below_10_percent"
|
||||
circuit_until = last_terminal_at + timedelta(hours=12)
|
||||
elif last_terminal_at is not None and recent_samples >= 20 and recent_rate is not None and recent_rate < 0.20:
|
||||
circuit_reason = "recent_local_success_below_20_percent"
|
||||
circuit_until = last_terminal_at + timedelta(hours=6)
|
||||
|
||||
Reference in New Issue
Block a user