AI Task Score & Machine Selection Algorithm

AI Task Score

The AI_TASK_SCORE measures a machine's performance in completing AI inference tasks during an epoch.

AI_TASK_SCORE = 1 + min(1.0, (Σ(task_weight_i × success_i) / TASK_WEIGHT_NORM))
  • task_weight_i : Importance/weight of task i (higher means more important).

  • success_i : 1 if the task was completed successfully, 0 if failed.

  • TASK_WEIGHT_NORM : Normalization constant (default: 10) to cap the score boost at +1.0.

Weighted Scoring Algorithm for Selecting Machines

This part chooses which machine gets the next AI inference task, based on three main factors:

  • Stake Score: How much $TOPS the machine has staked (more stake = higher trust/reputation).

  • Uptime Score: How consistently the machine has been online.

  • Latency Score: How fast the machine responds (lower latency = better).

final_score = (
    w_stake × normalized_stake +
    w_uptime × normalized_uptime +
    w_latency × (1 - normalized_latency)
)

normalized_stake = (stake_i - stake_min) / (stake_max - stake_min)
normalized_uptime = (uptime_i - uptime_min) / (uptime_max - uptime_min)
normalized_latency = (latency_i - latency_min) / (latency_max - latency_min)

Top_K = sorted(machines, key=final_score, reverse=True)[:K]
probabilities = [score / sum(scores in Top_K)]

selected_machine = random.choices(Top_K, weights=probabilities, k=1)
  • Normalization: Converts raw values to the 0–1 range so they’re comparable

  • Latency adjustment: We use (1 – normalized_latency) . So lower latency = higher score.

  • w_stake, w_uptime, w_latency: Adjustable weights for different strategies (e.g., if real-time inference is critical, increase w_latency)

Selection Strategy: Top K + Probabilistic Sampling

  • Calculate final_score for all machines.

  • Pick Top K machines with the highest scores.

  • Calculate selection probabilities

  • Randomly select 1 machine based on these probabilities.

Last updated