---
# System prepended metadata

title: '[LZC+23]A Federated Learning Multi-Task Scheduling Mechanism Based on Trusted Computing Sandbox'

---

# A Federated Learning Multi-Task Scheduling Mechanism Based on Trusted Computing Sandbox

此篇提出的架構是，利用blockchain上面的資源來幫助多個ferderated learning進行aggregate(aggregate在blockchain上面進行，稱作state channel)

**FEATURE**:
1. **blockchain**: 利用其來幫助Mmodel aggrgation同時監控training nide是否正常工作(如何監控此paper沒有明確說)
2. **multiple-task FL**
3. **resource allocation**: 這邊的資源控制是在控制多個global model在blockchain上面，則blockchain要如何分配資源幫助這些model aggregate
4. **RL Actor-Critic Algorithm**來資源分配

**FRAMEWORK**:
1. ROLE:
    1. participant: 可以是training node，也可以是data sharing node。
    2. blockchain: 堤共一個平台上面以smart contract方式讓participant可以註冊提供資料或訓練、發起traing task(FL model)並且同時利用block chain上面資源幫助幫助model aggregate
    3. state channel: 是blockchain上面的一個instance，當task被blockchain接受並且allocate resource給此task後，就會以state channel來表示目前此task進行model aggregate的地方
2. WORKFLOW:
    1. (1)participant向smart contract註冊，同時提供其資料類型及type(未來task在選擇trainer時可以依據此來選擇)
    2. (3)(4)有人向smart contract發起要訓練一個FL model。此時就會依據已註冊participant所擁有data的資料類型及type來選擇trainer
    3. (5)(6)選好trainer後，會將所要訓練model相關參數給這些participant trainer，同時給此task一個priority(之後allocation resource用)，並將其放到task queue中等待被allocation resource
    4. (7)使用此篇papepr提到RL-baed allocation scheduling algorithm依據priority分配blockchain資源給這些model進行aggregate。分配完的資源稱作state channel
        * The blockchain obtains the physical address of the virtual resource by searching the resource state table and then encrypts it, establishing the trusted computing sandbox as the state channel and updating the resource usage state. The participant node only knows the information of the allocated virtual resources, and it cannot obtain the real physical address of the computational sandbox, so it cannot carry out malicious attacks on the model in training.(**privacy**)
    6. (8)~ 開始訓練直到結束
![螢幕擷取畫面 (308)](https://hackmd.io/_uploads/HkNOLtFSp.png)

**RESOURCE ALLOCATION**:

* blockchain上面有好幾個process uint，而每個process uint有{cost/計算能力/溝通時間(不考慮此)}而每個process uint只能分配給一個task做訓練。
* 其目標是不超過要求cost以及不超過要求訓練時間下，找到花最少時間的allocation方式
    * ECT_i: task i用了所有分配給期的計算資源後所花費的完成時間(workload/all_computatio)，這裡並沒有說workload是單輪還整個完整訓練完
    * "花最少時間"是指，同時會有多個task進行訓練，以花最常ECT_i的time作為整體全部訓練時間

![螢幕擷取畫面 (309)](https://hackmd.io/_uploads/S1XRsYFS6.png)
* **RL - Actor-Critic Algorithm**:
    這裡在做resource allocation時，不是一次分配好全部task所要用的resource(這樣的設計會讓action space過大)。此篇採用方式是: 依據每個task的priority由大開始選，然後一個一個的分次來分配資源，直到結束。
    * preiority設計: 完成時間越少的priority越高
    1. state:
        * 現在整個blockchain的resourece allocation情況
        * 此task的workload
        * 此task的budget
        * 此task的latency requirement
    3. action:
        * 每個process uint是否要分配給此task
    5. reward:
        ![螢幕擷取畫面 (310)](https://hackmd.io/_uploads/By-VWcYra.png)
        * 如果超出預算則給懲罰；反之則以此次與前一次的completion time差做為reward(這邊部是很懂設計邏輯，再想想)
        * <font color="#f00">用reward來呈現objective中要求的兩個constraint，但這樣的設計很有可能最後訓練出來的model無法百分之一百符合constraint，要如何才能把constraint設計到RL中?</font>
        

