Combinatorial Double Auction Algorithm
onsider a vector of service providers πΉ = β¨π 1,π 2,...,π πβ© and inference tasks π» = β¨π1, π2, ..., ππβ©. Additionally, each inference task should be represented as ππ = β¨πΆπ,1π‘1,πΆπ,2π‘2,...πΆπ,ππ‘πβ© where πΆπ,π represents the demand for each of the π inference task types (e.g. each of the machine learning model types). Let π£π represent the adjusted valuation of computing the sub-task ππ, which reflects factors imposed by the demand such as the slashing mechanism discussed in Section 6. Let πΊ be the set ππ = (ππ, π€π, ππ) where ππ represents the π- th resource (e.g. CPU processing power). π€π represents the maximum number of units of service that device π can provide for each resource type π π,π and ππ represents the true adjusted valuation of the π-th deviceβs cost.
We can construct a matrix π΄ β π{πΓπ}(π) such that π΄π,π = {1 π π accepts the π -th task
0 else
Indeed, βππ=1 π΄π,π β€ 1, for 1 β€ π β€ π since a model can strictly accept only one model inference. Let the additional cost function be defined by ππ = π‘π logπΌ(π‘π) + π½ where πΌ, π½ β Z+. Then, a utility function for users can be defined as
utilityπ’π = {π£π β (trade priceπ + ππ) if the π -th task wins 0 else
Similarly, the utility function for service providers can be defined as
utilityππ = {trade priceπ β βππ=1 π΄π,π if the π -th task wins 0 else
We must optimize the function max(βππ=1 utilityπ’π β βππ=1 utilityππ ) such that:
π β π΄π,π β€ π€π For each user device
π=1 π΄π,π β [0,1],βπ β [1,π],π β [1,π]
If the provider fails to complete the task within the alloted time, the task will be inserted back into the auction with a higher demand π£π.
Last updated