主頁 >  其他 > vivo互聯網機器學習平臺的建設與實踐

vivo互聯網機器學習平臺的建設與實踐

2022-10-12 07:57:30 其他

vivo 互聯網產品團隊 - Wang xiao

隨著廣告和內容等推薦場景的擴展,演算法模型也在不斷演進迭代中,業務的不斷增長,模型的訓練、產出迫切需要進行平臺化管理,vivo互聯網機器學習平臺主要業務場景包括游戲分發、商店、商城、內容分發等,本文將從業務場景、平臺功能實作兩個方面介紹vivo內部的機器學習平臺在建設與實踐中的思考和優化思路,

一、寫在前面

隨著互聯網領域的快速發展,資料體量的成倍增長以及算力的持續提升,行業內都在大力研發AI技術,實作業務賦能,演算法業務往往專注于模型和調參,而工程領域是相對薄弱的一個環節,建設一個強大的分布式平臺,整合各個資源池,提供統一的機器學習框架,將能大大加快訓練速度,提升效率,帶來更多的可能性,此外還有助于提升資源利用率,希望通過此文章,初學者能對機器學習平臺,以及生產環境的復雜性有一定的認識,

二、業務背景

截止2022年8月份,vivo在網用戶2.8億,應用商店榷訓躍用戶數7000萬+,AI應用場景豐富,從語音識別、影像演算法優化、以及互聯網常見場景,圍繞著應用商店、瀏覽器、游戲中心等業務場景的廣告和推薦訴求持續上升,

如何讓推薦系統的模型迭代更高效,用戶體驗更好,讓業務場景的效果更佳,是機器學習平臺的一大挑戰,如何在成本、效率和體驗上達到平衡,

從下圖可以了解到,整個模型加工運用的場景是串行可倍訓的,對于用戶的反饋需要及時進行特征更新,不斷提升模型的效果,基于這個鏈路關系的基礎去做效率的優化,建設一個通用高效的平臺是關鍵,

圖片

 

三、vivo機器學習平臺的設計思路

3.1 功能模塊

基于上圖業務場景的鏈路關系,我們可以對業務場景進行歸類,根據功能不同,通用的演算法平臺可劃分為三步驟:資料處理「對應通用的特征平臺,提供特征和樣本的資料支撐」、模型訓練「對應通用的機器學習平臺,用于提供模型的訓練產出」、模型服務「對應通用的模型服務部署,用于提供在線模型預估」,三個步驟都可自成體系,成為一個獨立的平臺,

本文將重點闡述模型訓練部分,在建設vivo機器學習平臺程序中遇到的挑戰以及優化思路,

圖片

 

1.資料處理,圍繞資料相關的作業,包括采集、加工、標記和存盤,

其中,采集、加工、存盤與大資料平臺的場景相吻合,標記場景是演算法平臺所獨有的,

  • 資料采集,即從外部系統獲得資料,使用Bees{vivo資料采集平臺}來采集資料,

  • 資料加工,即將資料在不同的資料源間匯入匯出,并對資料進行聚合、清洗等操作,

  • 資料標記,是將人類的知識附加到資料上,產生樣本資料,以便訓練出模型能對新資料推理預測,

  • 資料存盤,根據存取的特點找到合適的存盤方式,

2. 模型訓練,即創建模型的程序,包括特征工程、試驗、訓練及評估模型,

  • 特征工程,即通過演算法工程師的知識來挖掘出資料更多的特征,將資料進行相應的轉換后,作為模型的輸入,

  • 試驗,即嘗試各種演算法、網路結構及超參,來找到能夠解決當前問題的最好的模型,

  • 模型訓練,主要是平臺的計算程序,平臺能夠有效利用計算資源,提高生產力并節省成本,

3.模型部署,是將模型部署到生產環境中進行推理應用,真正發揮模型的價值,

通過不斷迭代演進,解決遇到的各種新問題,從而保持在較高的服務水平,

4. 對平臺的通用要求,如擴展能力,運維支持,易用性,安全性等方面,

由于機器學習從研究到生產應用處于快速發展變化的階段,所以框架、硬體、業務上靈活的擴展能力顯得非常重要,任何團隊都需要或多或少的運維作業,出色的運維能力能幫助團隊有效的管理服務質量,提升生產效率,

易用性對于小團隊上手、大團隊中新人學習都非常有價值,良好的用戶界面也有利于深入理解資料的意義,

安全性則是任何軟體產品的重中之重,需要在開發程序中盡可能規避,

3.2 模型訓練相關

模型訓練包括了兩個主要部分,一是演算法工程師進行試驗,找到對應場景的最佳模型及引數,稱之為“模型試驗”,二是計算機訓練模型的程序,主要側重平臺支持的能力,稱之為“訓練模型”,

建模是演算法工程師的核心作業之一,建模程序涉及到很多資料作業,稱為特征工程,主要是調整、轉換資料,主要任務是要讓資料發揮出最大的價值,滿足業務訴求,

3.2.1 模型試驗

特征作業和超參調整是建模程序中的核心作業,特征作業主要對資料進行預處理,便于這部分輸入模型的資料更好的表達資訊,從而提升模型輸出結果的質量,

資料和特征工程決定模型質量的上限,而演算法和超參是無限逼近這個上限,

超參調整包括選擇演算法、確認網路結構、初始引數,這些依賴于演算法工程師豐富的經驗,同時需要平臺支持試驗來測驗效果,

特征工程和超參調整是相輔相成的程序,加工完特征后,需要通過超參的組合來驗證效果,效果不理想時,需要從特征工程、超參兩個方面進行思索、改進,反復迭代后,才能達到理想的效果,

圖片

 

3.2.2 訓練模型

可通過標準化資料介面來提高快速試驗的速度,也能進行試驗效果的比較,底層支持docker作業系統級的虛擬化方案,部署速度快,同時能將模型直接部署上線,用戶無需對訓練模型進行更多定制化的操作,批量提交任務能節約使用者的時間,平臺可以將一組引陣列合的試驗進行比較,提供更友好的使用界面,

其次,由于訓練的方向較多,需要算力管理自動規劃任務和節點的分配,甚至可以根據負載情況,合理利用空閑資源,

四、vivo機器學習平臺實踐

前面我們介紹了機器學習平臺的背景和發展方向,現在我們來介紹下,平臺在解決用戶問題部分的困擾和解決思路,

4.1 平臺能力矩陣

機器學習平臺主要目標是圍繞模型訓練進行深耕,并輔助用戶進行模型決策,更快的進行模型部署,

以此為目標分為兩個方向,訓練框架的優化能夠支撐大規模模型的分布式計算,調度能力優化能夠支持批次模型的執行,

在調度能力上,平臺由原生k8s調度,單個訓練調度的效率較低,升級為kube-batch批量調度,到以混合云精細化編排為目標,當前主要處于靈活性調度策略的形式,

在訓練框架上,從原生Tensorflow模型,隨著特征和樣本規模的擴大,自研了超大規模的訓練框架vlps,當前處于TensorFlow+vlps結合的新框架狀態,

圖片

4.2 平臺能力介紹

平臺能力建設主要圍繞模型試驗和訓練模型的運用,運用程序中遇到的痛點和難點如何解決,是我們在實踐中的關鍵,同時,訓練框架也是平臺關鍵能力的體驗,基于業務的復雜度,持續對框架進行優化,

已覆寫公司內部演算法工程師模型除錯的作業,已達到億級樣本,百億特征的規模,

4.2.1 資源管理

痛點:

機器學習平臺屬于計算密集型的平臺,

  • 業務場景不同,是否完全按照業務分組進行資源劃分;

  • 資源池劃分過小,會導致資源利用率低且沒辦法滿足業務激增的資源訴求;

  • 資源不足以滿足業務訴求時,會存在排隊情況導致模型更新不及時;

  • 如何管理好算力,提效與降本的平衡,是平臺資源管理的一個核心問題,

 

解決思路:

資源管理的基本思路是將所有計算資源集中起來,按需分配,讓資源使用率盡量接近100%,任何規模的資源都是有價值的,

比如,一個用戶,只有一個計算節點,有多條計算任務時,資源管理通過佇列可減少任務輪換間的空閑時間,比手工啟動每條計算任務要高效很多,多計算節點的情況,資源管理能自動規劃任務和節點的分配,讓計算節點盡量都在使用中,而不需要人為規劃資源,并啟動任務,多用戶的情況下,資源管理可以根據負載情況,合理利用其它用戶或組的空閑資源,隨著節點數量的增加,基于有限算力提供更多業務支持是必經之路,

1.以配額限資源濫用:

新增配額組和個人配額,減少業務之間的相互干擾,盡可能滿足各組的資源需要,并且配額組支持臨時擴容和共享,解決偶發性激增的資源訴求;限額后用戶僅支持在有限資源下使用,讓用戶自我調節高優先級訓練,

圖片

 

2.以調度促資源優化:

新增生產環境,確認模型已經正常迭代,在合理利用率的情況下切換至高優環境,提供更高性能的資源池;同時提供調度打分機制,圍繞資源顆粒度、配置合理性等維度,讓合理的訓練資源更快的拉起,減少調度卡住情況;

上線多維度調度打分機制后,平臺不合理訓練任務有大幅度下降,資源效率提升,

圍繞并不限于以下維度:最大運行時長、排隊時長、cpu&記憶體&gpu顆粒度和總需求量等,

圖片

4.2.2 框架自研

痛點:

隨著樣本和特征規模增加后,框架的性能瓶頸凸顯,需要提升推理計算的效率,

發展路徑:

每一次的發展路徑主要基于業務量的發展,尋求最佳的訓練框架,框架的每一次版本升級都打包為鏡像,支持更多模型訓練,

圖片

 

當前效果:

 

圖片

4.2.3 訓練管理

痛點:

如何支持多種分布式訓練框架,滿足演算法工程師的業務訴求,讓用戶無需關心底層機器調度和運維;如何讓演算法工程師快速新建訓練,執行訓練,可查看訓練狀態,是訓練管理的關鍵,

解決思路:

上傳代碼至平臺的檔案服務器和git都可以進行讀取,同時在平臺填寫適量的引數即可快速發起分布式訓練任務,同時還支持通過OpenAPI,便于開發者在脫離控制臺的情況下也能完成機器學習業務,

圍繞訓練模型相關的配置資訊,分為基礎資訊設定、資源資訊設定、調度依賴設定、告警資訊設定和高級設定,在試驗超參的程序中,經常需要對一組引陣列合進行試驗,

批量提交任務能節約使用者時間,平臺也可以將這組結果直接進行比較,提供更友好的界面,訓練讀取檔案服務器或git的腳本,即可快速執行訓練,

1.可視化高效創建訓練

圖片

 

2. 準確化快速修改腳本

圖片

 

3. 實時化監控訓練變動

圖片

4.2.4 互動式開發

痛點:

演算法工程師除錯腳本成本較高,演算法工程師和大資料工程師有在線除錯腳本的訴求,可直接通過瀏覽器運行代碼,同時在代碼塊下方展示運行結果,

解決思路:

在互動式工具中進行試驗、開發,如:jupyter notebook,提供所見即所得的互動式體驗,對除錯代碼的程序非常方便,

在互動試驗的場景下,需要獨占計算資源,機器學習平臺需要提供能為用戶保留計算資源的功能,如果計算資源有限,可對每個用戶申請的計算資源總量進行限制,并設定超時時間,

例如,若一周內用戶沒有進行資源使用后, 就識訓保留資源,在識訓資源后,可繼續保留用戶的資料,重新申請資源后,能夠還原上次的作業內容,在小團隊中,雖然每人保留一臺機器自己決定如何使用更方便,但是用機器學習平臺來統一管理,資源的利用率可以更高,團隊可以聚焦于解決業務問題,不必處理計算機的作業系統、硬體等出現的與業務無關的問題,

圖片

 

五、總結

目前vivo機器學習平臺支撐了互聯網領域的演算法離線訓練,使演算法工程師更關注于模型策略的迭代優化,從而實作為業務賦能,未來我們會在以下方面繼續探索:

1.實作平臺能力的貫通

  • 當前特征、樣本還是模型的讀取都是通過hdfs實作的,在平臺上的告警、日志資訊都未關聯上,后續可以進行平臺能力貫通;

  • 平臺的資料和模型還有標準化的空間,降低學習成本,提升模型開發的效率,

2. 加強框架層面的預研

  • 研究不同分布式訓練框架對模型效果的影響,適配不同的業務場景;

  • 提供預置的引數,實作演算法、工程、平臺的解耦,降低用戶的使用門檻,

分享 vivo 互聯網技術干貨與沙龍活動,推薦最新行業動態與熱門會議,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/513685.html

標籤:其他

上一篇:行程和計劃任務

下一篇:打破“雙十定律”,華為云AI推動超級抗菌藥Drug X研發加速

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more