iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0
Cloud Native

新興k8s工作流flyte與MLOps。系列 第 5

Day 5: workflow任務快取機制

  • 分享至 

  • xImage
  •  

flyte支持快取機制,當任務多次執行並且輸入大多相同時,可以使用快取機制加快時間與減少資源使用。
依據augments與回傳值,如low、high、int等等參數輸入值,回傳值List[int]之變化決定是否取用過往minio紀錄結果。若無變化則取用;有變化則建立pod計算結果。
serialize=True則要求當多個該task運行時,都需等待第一個task運行結束後,才會依序運行(確保後面相同task有機會cache成功)。

@fl.task(cache=fl.Cache(version="1.0", serialize=True)
def gen_nums(low: int, high: int, length: int) -> List[int]:
    return [random.randint(low, high) for _ in range(length)]

也可指定忽略特定input augment。

@fl.task(cache=fl.Cache(version="1.0", serialize=True, ignored_input=["length"])
def gen_nums(low: int, high: int, length: int) -> List[int]:
    return [random.randint(low, high) for _ in range(length)]

因此執行兩次含有gen_nums的workflow,除了第一次是重新產生的值之外,其他執行都是引用s3紀錄之結果。

pyflyte run --remote mean_value_wf.py mean_val_wf --low="100" --high="200" --length="200"

https://ithelp.ithome.com.tw/upload/images/20250909/20178305lFsX3vLged.png


上一篇
Day 4: 自訂義container環境
系列文
新興k8s工作流flyte與MLOps。5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言