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