《AI時代:碼農的涅盤重生》第98章 系統設計面(1)

作者:Flint8·4小時前

會議室的門被輕輕推開,林晨深吸一口氣,走了進去。

這間會議室比之前影片面試那間更大,落地窗外是鵬城科技園錯落有致的寫字樓群。會議桌旁坐著一位看起來四十歲上下、戴著黑框眼鏡的男士,穿著簡單的灰色Polo衫,面前放著一臺筆記型電腦和一本攤開的筆記本。

“林晨是吧?請坐”。對方抬頭,聲音平和,“我是王毅,AI平臺部的系統架構師。這一輪我們聊聊系統設計”。

“王老師好”。林晨拉開椅子坐下,將揹包放在腳邊。他注意到王毅的筆記本上已經寫了幾行字,字跡工整。

“放鬆點,這輪不是考你背八股文”。王毅笑了笑,推了推眼鏡,“我們聊一個實際的業務場景:假設公司要為一個新的電商APP搭建一個推薦系統,從零開始,你是技術負責人,需要設計整個技術架構和實現鏈路。給你五分鐘思考,可以畫圖,可以列提綱,然後我們一步步聊”。

林晨心臟跳得快了一拍。這正是他過去幾個月反覆琢磨、並在自己那個量化投資系統中實踐過的領域——構建一個完整的、可落地的AI系統流水線。他強迫自己冷靜下來,從揹包裡拿出平板電腦和觸控筆。

“可以用這個畫嗎”?

“當然,請便”。

五分鐘。林晨腦中飛速運轉。電商推薦系統……使用者、商品、互動行為……離線訓練、線上服務……特徵工程、模型迭代……資料流、算力成本……他一邊想,一邊在平板上快速勾勒出幾個大的模組框。

時間到。

王毅身體微微前傾:“好,我們從哪裡開始”?

林晨將平板轉向對方,清了清嗓子:“我習慣從業務目標反推技術架構。對於一個新電商APP的推薦系統,核心業務目標有三個:提升使用者點選率、增加訂單轉化率、最佳化使用者停留時長。技術目標則需要支撐這三個業務目標,具體是:精準性、即時性、可擴充套件性、可維護性”。

王毅點點頭,在筆記本上記了一筆:“繼續”。

“基於這些目標,我會將整個系統劃分為五個核心層”。林晨用筆尖點著平板上的框圖,“第一層,資料層。這是地基。需要採集使用者靜態屬性、商品屬性,以及最重要的使用者動態行為資料——瀏覽、點選、加購、下單、評價。資料採集端需要埋點規範,保證資料質量和一致性。儲存方面,使用者和商品屬性這類更新不頻繁的資料適合用SQL或PostgreSQL;行為流水資料量巨大且需要即時分析,我會用Kafka做訊息佇列緩衝,然後落地到HDFS或資料湖做離線分析,同時也會同步一份到ClickHouse這類OLAP資料庫供即時查詢”。

他語速平穩,每個技術選型都帶著簡要理由。王毅聽得認真,偶爾插問。

“為什麼選ClickHouse而不是Druid或Kylin”?

“綜合考慮查詢效能、社群生態和運維成本”。林晨回答,“ClickHouse在單表聚合查詢上效能極佳,適合推薦系統裡常見的‘使用者最近30天行為統計’這類查詢,而且部署相對簡單。新團隊初期資源有限,需要平衡效能和運維負擔”。

“合理”。王毅示意他繼續。

“第二層,特徵工程層”。林晨切換到下一張圖,“這是推薦系統的‘燃料加工廠’。原始資料不能直接餵給模型,需要提取特徵。我會分為離線特徵和即時特徵兩條流水線。離線特徵主要利用夜間計算資源,處理歷史資料,生成使用者長期興趣向量、商品熱度統計、協同過濾矩陣等;即時特徵則處理最近幾分鐘甚至幾秒內的使用者行為,捕捉即時興趣變化,比如使用者當前會話中點選了哪些類目”。

他詳細描述了特徵儲存方案——離線特徵存入Redis叢集供白天服務讀取,即時特徵則透過Flink流處理即時更新到線上快取。“這裡的關鍵是特徵版本的統一管理和回滾機制,防止特徵不一致導致線上推薦效果抖動”。

王毅頻頻點頭,手中的筆在紙上沙沙作響。

“第三層,模型層”。林晨進入了最核心的部分,“對於新APP,冷啟動是個大問題。我建議採用多模型混合的策略。初期資料少,可以用基於規則的策略(比如熱門商品、新品推薦)和簡單的協同過濾模型撐場面,快速上線。同時並行訓練更復雜的模型,比如深度學習排序模型——我會先用Wide&Deep模型結構,兼顧記憶性和泛化性。等使用者行為資料積累到一定量,再引入強化學習來最佳化長期使用者滿意度”。

他頓了頓,補充道:“模型訓練方面,離線訓練用TensorFlow或PyTorch分散式訓練框架,部署在公司的Kubernetes叢集上,按需排程GPU資源。這裡要設計好實驗管理平臺,方便演算法工程師做A/B測試和模型迭代”。

“線上服務呢”?王毅追問,“模型怎麼部署?延遲要求多少”?

“第四層,線上服務層”。林晨早有準備,“推薦系統的線上服務要求高吞吐、低延遲。我會將模型匯出為Saveddel或ONNX格式,用TF Serving或自研的C++高效能推理框架載入。服務部署採用多副本、負載均衡,保證可用性。整個推薦請求的端到端延遲要控制在100毫秒以內,其中模型推理部分不超過50毫秒”。

他詳細描述了線上服務的流程:“使用者開啟APP,請求到達推薦服務閘道器。服務首先從特徵儲存中拉取該使用者的特徵和候選商品特徵,然後經過召回階段——先用倒排索引或向量檢索從百萬級商品池中快速篩選出千級別的候選集,再經過精排模型對這批候選商品進行精準打分排序,最後經過重排階段,考慮業務規則、多樣性、新鮮度等因素,生成最終展示給使用者的Top N推薦列表”。

王毅聽到這裡,臉上露出了明顯的讚許神色:“召回、精排、重排,鏈路很清晰。那麼,最後一個層呢”?

“第五層,監控與反饋層”。林晨切到最後一幅圖,“系統上線不是終點。需要建立完善的監控大盤:追蹤推薦結果的曝光、點選、轉化率等核心業務指標;監控服務QPS、延遲、錯誤率等效能指標;監控特徵覆蓋率、模型預測分數分佈等演算法指標。同時,使用者對推薦結果的反饋(點選、跳過、長時間瀏覽等)需要即時迴流到資料層,形成閉環,驅動模型持續迭代最佳化”。

。”本練訓低降化佳最本樣負、樣取徵特過;本理推化佳最技等餾蒸、化量型模過,如比。制控本——的要重最及以;理規合私料資;災容證保署部房機多;峰高量流促大對應容彈:求需能功非慮考要需還時計設統系。飛的整完個一形,代迭型模到集採料資從,構架層五這“:道結總他

。秒幾了靜安裡室議會,完說

紕了出裡哪者或?了細太得講是不是他。汗出些有心手晨林

?”案專統系薦推的整完過做前之你“:晨林著看地真認,上桌在放叉手雙,筆下放毅王

。”格落部技統系薦推的xilfteN、ebuTuoY、里阿如比,文論和構架源開多很界業了究研我,外另。的通相是路思計設多很。路鏈全了完走,測回控監和易上線到、)習學化強、測預序時(練訓型模、)子因面本基、標指技(程工徵特、)料資場市融金(集採料資從,統系IA資投化量個一了現實並計設立獨己自我但“,道誠坦晨林。”過做司公在接直有沒“

。”坑麼什踩會能可及以,做麼這麼什為道知還,麼什做要道知僅不,全周很得慮考計設的你。點痛的到遇會才中案專際實是都些這,饋反環閉、理管本版徵特、制控本的到提才剛你“,道慨毅王。”事回兩是全完,件文看只和,過做手己自“

?”景背法算演純是不?的商電境做是前之你“:料資的前面下一了看翻他

。”的習學統系多年半近最是法算演。發開務業和棧全年十了做,的是“

。”的要需正真隊團是才,師程工的統系上線的件套充擴可、效高、定穩變法算演把能但,多很師程工法算演。的貴寶最是恰恰,說來地落IA於對這。度型模求追純單是不,維思程工的強很有裡計設的你“,了笑毅王。”怪難“

。懈鬆敢不但,地落頭石塊一中心晨林

。答作一一,踐實和解理的己自合結晨林?麼什是驟步查排,化劣能效現出務服上線果如?果效型模估評學科來臺平試測B/A計設何如?題問”房繭訊資“的裡統系薦推決解何如:題問的深個幾了問又毅王

。”短麼這間時換轉景背的你到慮考是其尤,期預的我了出超力能計設統系的你。快愉很流的天今“:手出晨林向主,起站,本記筆上合毅王,後最。時小個一近將了行進試面

。”師老王謝謝“:手握起忙連晨林

。”備準好好。題問的本更,嗯……些一及以,考思觀宏的展發技IA對你注關更會他“,道毅王。”士博陳,人責負的門部們我是試面,面終是會一下“

。字名個這了下記晨林。士博陳

。理推和練訓在還法算演數無,碼式程著打敲在還師計設式程數無,裡樓字寫的集。象景的上初燈華園技科著瞰俯,邊窗在站晨林。影的長長出拉上板地的潔在,來進灑戶窗廊走過的晚傍,室議會出走

。圖藍界世新的踏將即、的劃規己自為他是更,案答試面個一是僅僅不,的述描才剛他

?”下一祝慶上晚,薩披吃想說樂樂?樣麼怎試面“:信微的來發婉蘇是,下一了震機手

。”客請我,薩披吃。錯不還“:覆回晨林

。家專準的統系IA雜複計設容從夠能在現到,農碼年中的茫迷個那時員裁被從——跡軌長的己自了到看地晰清他,天今,何如果結終最管不。起揚角,鍵送發下按他

。實踏很得走他,路之盤涅條這

猜你喜歡

同題材或同分類的其他作品。