Cloudflare的ML Ops平臺(tái)

來(lái)源:Cloudflare
作者:Cloudflare
時(shí)間:2024-04-29
1774
自Cloudflare成立之初,我們就一直依靠ML和AI來(lái)提供Web應(yīng)用程序防火墻(WAF)等核心服務(wù)。

BEC58C21-33D7-42CB-AC31-133B0F14E693.png

自Cloudflare成立之初,我們就一直依靠ML和AI來(lái)提供Web應(yīng)用程序防火墻(WAF)等核心服務(wù)。在這個(gè)過(guò)程中,我們學(xué)到了很多關(guān)于大規(guī)模運(yùn)行AI部署的經(jīng)驗(yàn),以及所有必要的工具和流程。我們推出了Workers AI,可幫助提取出許多推理方法,讓開(kāi)發(fā)人員只需幾行代碼就能輕松利用強(qiáng)大的模型。在本篇文章中,我們將探討我們?cè)贛L等式的另一面——訓(xùn)練方面學(xué)到的一些經(jīng)驗(yàn)。

Cloudflare擁有豐富的模型訓(xùn)練經(jīng)驗(yàn),并利用它們來(lái)改進(jìn)我們的產(chǎn)品。不斷發(fā)展的ML模型推動(dòng)了WAF Attack Score,有助于保護(hù)我們的客戶免受惡意有效負(fù)載的侵害。另一個(gè)不斷發(fā)展的模型為機(jī)器人管理產(chǎn)品提供支持,以捕獲和防止機(jī)器人對(duì)我們客戶的攻擊。數(shù)據(jù)科學(xué)增強(qiáng)了我們的客戶支持。我們構(gòu)建機(jī)器學(xué)習(xí)來(lái)識(shí)別我們?nèi)蚓W(wǎng)絡(luò)上的威脅。最重要的是,Cloudflare正在我們的網(wǎng)絡(luò)中以前所未有的規(guī)模提供機(jī)器學(xué)習(xí)。

這些產(chǎn)品以及其他許多產(chǎn)品都將ML模型(包括實(shí)驗(yàn)、培訓(xùn)和部署)提升到了Cloudflare的重要位置。為了幫助我們的團(tuán)隊(duì)繼續(xù)高效創(chuàng)新,我們的MLOps團(tuán)隊(duì)與Cloudflare的數(shù)據(jù)科學(xué)家合作實(shí)施了以下最佳實(shí)踐。

Notebooks

給定用例和數(shù)據(jù),許多數(shù)據(jù)科學(xué)家/AI科學(xué)家的第一步是建立一個(gè)用于探索數(shù)據(jù)、特征工程和模型實(shí)驗(yàn)的環(huán)境。Jupyter Notebooks是滿足這些要求的常用工具。這些環(huán)境提供了一個(gè)簡(jiǎn)單的遠(yuǎn)程Python環(huán)境,可以在瀏覽器中運(yùn)行或連接到本地代碼編輯器。為了使Notebook具有可擴(kuò)展性并開(kāi)放協(xié)作,我們?cè)贙ubernetes上部署了JupyterHub。借助JupyterHub,我們可以管理數(shù)據(jù)科學(xué)家團(tuán)隊(duì)的資源,并確保他們獲得合適的開(kāi)發(fā)環(huán)境。每個(gè)團(tuán)隊(duì)都可以通過(guò)預(yù)安裝庫(kù)和配置用戶環(huán)境來(lái)定制自己的環(huán)境,以滿足特定需求,甚至單個(gè)項(xiàng)目的需求。

這一Notebook空間也在不斷發(fā)展。開(kāi)源項(xiàng)目還包括更多的功能,例如:

-nbdev:用于改善Notebook使用體驗(yàn)的Python軟件包

-Kubeflow:用于機(jī)器學(xué)習(xí)的kubernetes原生CNCF項(xiàng)目

-depoyKF:任何Kubernetes集群上的ML平臺(tái),提供集中配置、就地升級(jí),并支持Kubeflow、Airflow和MLflow等領(lǐng)先的ML和數(shù)據(jù)工具

GitOps

我們的目標(biāo)是為數(shù)據(jù)科學(xué)家和AI科學(xué)家提供一個(gè)易于使用的平臺(tái),以快速開(kāi)發(fā)和測(cè)試機(jī)器學(xué)習(xí)模型。因此,我們?cè)贑loudflare的MLOps平臺(tái)上采用GitOps作為持續(xù)交付策略并進(jìn)行基礎(chǔ)設(shè)施管理。GitOps是一種軟件開(kāi)發(fā)方法,它利用分布式版本控制系統(tǒng)Git作為定義和管理基礎(chǔ)設(shè)施、應(yīng)用配置和部署流程的單一來(lái)源。其目的是以聲明和可審計(jì)的方式,自動(dòng)化和簡(jiǎn)化應(yīng)用與基礎(chǔ)設(shè)施的部署和管理。GitOps非常符合自動(dòng)化和協(xié)作的原則,這些原則對(duì)機(jī)器學(xué)習(xí)(ML)工作流程至關(guān)重要。GitOps利用Git資源庫(kù)作為聲明式基礎(chǔ)設(shè)施和應(yīng)用代碼的真實(shí)來(lái)源。

數(shù)據(jù)科學(xué)家需要定義基礎(chǔ)設(shè)施和應(yīng)用的所需狀態(tài)。這通常需要大量的定制工作,但有了ArgoCD和模型模板,只需一個(gè)簡(jiǎn)單的pull請(qǐng)求就能添加新的應(yīng)用。Helm圖表和Kustomize均受支持,可以針對(duì)不同的環(huán)境和作業(yè)進(jìn)行配置。借助ArgoCD,聲明式GitOps將啟動(dòng)持續(xù)交付流程。ArgoCD將持續(xù)檢查基礎(chǔ)設(shè)施和應(yīng)用的所需狀態(tài),以確保它們與Git存儲(chǔ)庫(kù)同步。

98FE1814-1A15-4D32-9C95-BCE856B36809.jpeg

未來(lái),我們計(jì)劃將我們的平臺(tái)(包括Jupyterhub)遷移到Kubeflow,這是一個(gè)基于Kubernetes的機(jī)器學(xué)習(xí)工作流程平臺(tái),可簡(jiǎn)化Notebook和端到端管道的開(kāi)發(fā)、部署和管理。最好使用新項(xiàng)目deployKF進(jìn)行部署,該項(xiàng)目允許跨Kubeflow可用的多個(gè)組件以及超出Kubeflow的其他組件進(jìn)行分布式配置管理。

模版

是否使用正確的工具和結(jié)構(gòu)啟動(dòng)項(xiàng)目可能決定項(xiàng)目是成功還是停滯。在Cloudflare,我們策劃了一系列模型模板,它們是帶有示例模型的生產(chǎn)就緒數(shù)據(jù)科學(xué)存儲(chǔ)庫(kù)。這些模型模板在生產(chǎn)過(guò)程中進(jìn)行部署,以持續(xù)確保它們成為未來(lái)項(xiàng)目的穩(wěn)定基礎(chǔ)。要啟動(dòng)一個(gè)新項(xiàng)目,只需要一個(gè)Makefile命令即可在用戶選擇的git項(xiàng)目中構(gòu)建一個(gè)新的CICD項(xiàng)目。這些模板實(shí)用程序包與我們的Jupyter Notebooks中使用的模板實(shí)用程序包以及與R2/S3/GCS存儲(chǔ)桶、D1/Postgres/Bigquery/Clickhouse數(shù)據(jù)庫(kù)的連接相同。數(shù)據(jù)科學(xué)家可以使用這些模板毫不費(fèi)力地立即啟動(dòng)新項(xiàng)目。這些模板尚未公開(kāi),但我們的團(tuán)隊(duì)計(jì)劃在未來(lái)將其開(kāi)源。

-訓(xùn)練模板

我們的模型訓(xùn)練模板為構(gòu)建任何模型提供了堅(jiān)實(shí)的基礎(chǔ)。我們對(duì)其進(jìn)行了配置,可幫助從任何數(shù)據(jù)源提取、轉(zhuǎn)換和加載數(shù)據(jù)(ETL)。該模板包括用于特征工程的helper函數(shù)、使用模型元數(shù)據(jù)跟蹤實(shí)驗(yàn)以及通過(guò)有向無(wú)環(huán)圖(DAG)選擇編排以生產(chǎn)模型管道。每個(gè)編排都可以配置為使用Airflow或Argo Workflows。

-批量推理模板

批量和微批量推理可以對(duì)處理效率產(chǎn)生重大影響。我們的批量推理模型模板用于安排模型以獲得一致的結(jié)果,并且可以配置為使用Airflow或Argo Workflows。

-流式推理模板

該模板使我們的團(tuán)隊(duì)可以輕松部署實(shí)時(shí)推理。該模板使用FastAPI針對(duì)Kubernetes進(jìn)行了定制(作為微服務(wù)),允許我們的團(tuán)隊(duì)在容器中使用熟悉的Python運(yùn)行推理。該微服務(wù)已經(jīng)內(nèi)置了Swagger的REST交互式文檔,并與terraform中的Cloudflare Access身份驗(yàn)證令牌集成。

-可解釋性模板

我們的可解釋性模型模板會(huì)旋轉(zhuǎn)儀表板來(lái)闡明模型類(lèi)型和實(shí)驗(yàn)。能夠理解時(shí)間窗口F1分?jǐn)?shù)、特征和數(shù)據(jù)隨時(shí)間的漂移等關(guān)鍵值非常重要。Streamlit和Bokeh等工具有助于實(shí)現(xiàn)這一目標(biāo)。

編排

將數(shù)據(jù)科學(xué)組織成一致的管道涉及大量數(shù)據(jù)和多個(gè)模型版本。輸入有向無(wú)環(huán)圖(DAG),這是一種強(qiáng)大的流程圖編排范例,它將從數(shù)據(jù)到模型、模型到推理的步驟編織在一起。運(yùn)行DAG管道有許多獨(dú)特的方法,但我們發(fā)現(xiàn)數(shù)據(jù)科學(xué)團(tuán)隊(duì)的偏好是第一位的。每個(gè)團(tuán)隊(duì)根據(jù)自己的用例和經(jīng)驗(yàn)都有不同的方法。

-Apache Airflow——標(biāo)準(zhǔn)DAG編寫(xiě)器

Apache Airflow是基于DAG(有向無(wú)環(huán)圖)的編排方法的標(biāo)準(zhǔn)。憑借龐大的社區(qū)和廣泛的插件支持,Airflow擅長(zhǎng)處理不同的工作流。與多個(gè)系統(tǒng)集成的靈活性以及用于任務(wù)監(jiān)控的基于Web的UI使其成為編排復(fù)雜任務(wù)序列的人氣之選。Airflow可用于運(yùn)行任何數(shù)據(jù)或機(jī)器學(xué)習(xí)工作流。

-Argo Workflows——Kubernetes原生的輝煌

Argo Workflows專(zhuān)為Kubernetes構(gòu)建,采用容器生態(tài)系統(tǒng)來(lái)編排工作流程。它擁有基于YAML的直觀工作流定義,并且擅長(zhǎng)運(yùn)行基于微服務(wù)的工作流。與Kubernetes的集成可實(shí)現(xiàn)可擴(kuò)展性、可靠性和原生容器支持,使其非常適合深深植根于Kubernetes生態(tài)系統(tǒng)的組織。Argo Workflows還可用于運(yùn)行任何數(shù)據(jù)或機(jī)器學(xué)習(xí)工作流。

-Kubeflow Pipelines——一個(gè)工作流平臺(tái)

Kubeflow Pipelines是一種更具體的方法,專(zhuān)為編排機(jī)器學(xué)習(xí)工作流而定制?!癒FP”旨在滿足ML領(lǐng)域中數(shù)據(jù)準(zhǔn)備、模型訓(xùn)練和部署的獨(dú)特需求。作為Kubeflow生態(tài)系統(tǒng)的集成組件,它簡(jiǎn)化了ML工作流程,重點(diǎn)關(guān)注協(xié)作、可重用性和版本控制。它與Kubernetes的兼容性確保了無(wú)縫集成和高效編排。

-Temporal——有狀態(tài)的工作流推動(dòng)者

Temporal的立場(chǎng)是強(qiáng)調(diào)長(zhǎng)期運(yùn)行、具狀態(tài)工作流的編排。這個(gè)相對(duì)較新的領(lǐng)域在管理彈性、事件驅(qū)動(dòng)的應(yīng)用、保留工作流狀態(tài)以及實(shí)現(xiàn)高效的故障恢復(fù)方面表現(xiàn)出色。獨(dú)特的賣(mài)點(diǎn)在于它能夠管理復(fù)雜、有狀態(tài)的工作流,提供持久且容錯(cuò)的編排解決方案。

在編排領(lǐng)域,選擇最終取決于團(tuán)隊(duì)和實(shí)際用例。這些都是開(kāi)源項(xiàng)目,因此唯一的限制是對(duì)不同風(fēng)格工作的支持,我們發(fā)現(xiàn)這是值得投資的。

硬件

實(shí)現(xiàn)最佳性能需要了解工作負(fù)載和底層用例,以便為團(tuán)隊(duì)提供有效的硬件。目標(biāo)是幫助數(shù)據(jù)科學(xué)家并在支持和利用之間取得平衡。每個(gè)工作負(fù)載都是不同的,因此針對(duì)GPU和CPU的功能微調(diào)每個(gè)用例以找到適合該工作的完美工具非常重要。對(duì)于核心數(shù)據(jù)中心工作負(fù)載和邊緣推理,GPU提高了速度和效率,這是我們業(yè)務(wù)的核心。Prometheus提供可觀察性和指標(biāo),指標(biāo)使我們能夠跟蹤編排以優(yōu)化性能、最大限度地提高硬件利用率,并在Kubernetes原生體驗(yàn)中進(jìn)行操作。

采用

采用通常是MLops之旅中最具挑戰(zhàn)性的步驟之一。在開(kāi)始構(gòu)建之前,了解不同的團(tuán)隊(duì)及其數(shù)據(jù)科學(xué)方法非常重要。在Cloudflare,這個(gè)過(guò)程幾年前就開(kāi)始了,當(dāng)時(shí)每個(gè)團(tuán)隊(duì)都分別啟動(dòng)了自己的機(jī)器學(xué)習(xí)解決方案。隨著這些解決方案的發(fā)展,我們遇到了在整個(gè)公司范圍內(nèi)開(kāi)展工作以防止不同團(tuán)隊(duì)之間的工作相互分離的共同挑戰(zhàn)。此外,還有其他團(tuán)隊(duì)具有機(jī)器學(xué)習(xí)潛力,但團(tuán)隊(duì)內(nèi)不具備數(shù)據(jù)科學(xué)專(zhuān)業(yè)知識(shí)。這為MLops提供了介入的機(jī)會(huì)——既可以幫助簡(jiǎn)化和標(biāo)準(zhǔn)化每個(gè)團(tuán)隊(duì)所采用的ML流程,也可以向數(shù)據(jù)科學(xué)團(tuán)隊(duì)引入潛在的新項(xiàng)目,以啟動(dòng)構(gòu)思和發(fā)現(xiàn)過(guò)程。

在有能力的情況下,當(dāng)我們能夠幫助啟動(dòng)項(xiàng)目并塑造成功的渠道時(shí),我們就獲得了最大的成功。提供共享使用的組件,例如Notebook、編排、數(shù)據(jù)版本控制(DVC)、特征工程(Feast)和模型版本控制(MLflow),讓團(tuán)隊(duì)能夠直接協(xié)作。

展望未來(lái)

毫無(wú)疑問(wèn),數(shù)據(jù)科學(xué)正在發(fā)展我們的業(yè)務(wù)和我們客戶的業(yè)務(wù)。我們通過(guò)模型改進(jìn)我們自己的產(chǎn)品,并構(gòu)建了AI基礎(chǔ)設(shè)施,可以幫助我們保護(hù)應(yīng)用和使用AI構(gòu)建的應(yīng)用。我們可以利用網(wǎng)絡(luò)的力量為我們和我們的客戶提供AI。我們與機(jī)器學(xué)習(xí)巨頭合作,使數(shù)據(jù)科學(xué)界更容易從數(shù)據(jù)中提供真正的價(jià)值。

行動(dòng)號(hào)召:歡迎加入Cloudflare社區(qū),將現(xiàn)代軟件實(shí)踐和工具引入數(shù)據(jù)科學(xué)。請(qǐng)關(guān)注Cloudflare的更多數(shù)據(jù)科學(xué)。幫助我們安全地利用數(shù)據(jù)來(lái)協(xié)助構(gòu)建更好的互聯(lián)網(wǎng)。

立即登錄,閱讀全文
原文鏈接:點(diǎn)擊前往 >
文章來(lái)源:Cloudflare
版權(quán)說(shuō)明:本文內(nèi)容來(lái)自于Cloudflare,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
【科普篇】什么是機(jī)器人管理?| 機(jī)器人管理器如何運(yùn)作
【科普篇】什么是機(jī)器人管理?| 機(jī)器人管理器如何運(yùn)作
機(jī)器人管理是指,阻止有害或惡意的互聯(lián)網(wǎng)機(jī)器人流量,同時(shí)仍允許有用的機(jī)器人訪問(wèn) web 資產(chǎn)。為此,機(jī)器人管理檢測(cè)機(jī)器人活動(dòng)、辨別有用和有害的機(jī)器人行為,并識(shí)別有害活動(dòng)的來(lái)源。
Cloudflare
云服務(wù)
2024-12-29
【科普篇】云防火墻及防火墻即服務(wù)(FWaaS)
【科普篇】云防火墻及防火墻即服務(wù)(FWaaS)
云防火墻是一種安全產(chǎn)品,與傳統(tǒng)防火墻一樣,可以過(guò)濾掉潛在的惡意網(wǎng)絡(luò)流量。而與傳統(tǒng)防火墻不同的是,云防火墻托管在云中。這種防火墻的云交付模式也稱(chēng)為防火墻即服務(wù) (FWaaS)。
Cloudflare
云服務(wù)
2024-12-29
【科普篇】如何預(yù)防網(wǎng)絡(luò)釣魚(yú)
【科普篇】如何預(yù)防網(wǎng)絡(luò)釣魚(yú)
網(wǎng)絡(luò)釣魚(yú)是一種網(wǎng)絡(luò)攻擊,攻擊者隱藏自己的真實(shí)身份,以欺騙受害者完成其所期望的操作。
Cloudflare
云服務(wù)
2024-12-23
【科普篇】如何阻止垃圾電子郵件
【科普篇】如何阻止垃圾電子郵件
垃圾郵件是“不請(qǐng)自來(lái)”的電子郵件,通常是批量發(fā)送的。雖然某些垃圾郵件是推銷(xiāo)性質(zhì)的,并沒(méi)有明顯的惡意,但它們也可用于各種攻擊。
Cloudflare
云服務(wù)
2024-12-23
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開(kāi)掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家