天天看點

一場泛零售數智化要怎麼做?

一場泛零售數智化要怎麼做?

文 | 親愛的資料,作者 | 譚婧

“賣貨”瘋狂增長的背後,京東瘋狂搞技術,廢話不多說,快上車,故事開始了。

01 掃雪危機

坐标北京潘家園,古玩市場人群熙熙攘攘。地攤上,玉器、書畫、錢币、木器、古币散擺了一地,客人一屁股穩坐在攤口的破皮子小馬紮上,粗糙的手指反複盤弄一個炭黑色“老底子”鉛酒壺,把玩将近20分鐘了,攤主無動于衷。 這位攤主,難道要等客人摸到“鉛中毒”了才看出來“購買意願”嗎?

計算機裡的人工智能可明白着呢,每當使用者點商品,加購物車,翻詳情頁,讀評論……它就一通忙活。因為這些使用者的動作,可太重要了,這可是人工智能眼裡寶貴的“使用者實時回報”,用于準确判斷使用者興趣。 假如一位京東APP使用者也選購商品20分鐘,人工智能過了三天三夜才懵懵懂懂反應過來“用(購)戶(買)興(意)趣(願)”。那就永别吧,人工智障。

發現興趣是第一層功力,還要發現興趣是變化的。剁手黨總是善變,一會愛這個,一會愛那個,興趣變,品味變,潮流變。如果推薦商品的時候,使用者看了20分鐘鞋子,興趣已然消耗殆盡,APP還在一(傻)味(傻)推薦鞋子,APP離被解除安裝的悲劇,也不遠了。

一場泛零售數智化要怎麼做?

總而言之,賣貨,要反應快。展現在計算機裡的人工智能身上,就是實時性。反應越快,越能“做成買賣”,是以,實時性是人工智能做零售這門生意的時候的IQ水準。打分标準很簡單,效果好,IQ高。延時多,效果差,IQ低,俗稱傻呼呼。

京東618和雙十一大促的時候,壓力排山倒海,逛APP就像逛春節的廟會,線上使用者多,使用者行為更多。在平時,京東日常處理幾十億商品和五億使用者,如此大的資料,想要處理好,不僅是一個技術問題,還是一個見識問題。更别說,使用者在京東APP裡不是靜止的,買買買,逛逛逛,就會産生海量行為資料。新資料像雪片一樣飛來。

人工智能要有邊下雪邊掃雪的能力。 在這個“動不動就一個億”的玩法裡,增量資訊就是使用者興趣、使用者意圖的增量,好比把積雪(資料增量)及時掃掉(模型更新)。幾萬年不處理,資料就像雪一樣堆到富士山頂了。

想要精準抓住使用者特點,人工智能就需要特大(百GB級别)的模型參數。

模型參數是什麼呢?就是商品和使用者的特征,簡單了解,就是人工智能抓住的特點。綜藝節目裡的模仿秀惟妙惟肖,這就是演員在表演中抓住了“神特征”。 當特點海量,參數也會海量。 陳奕迅輕唱,誰能憑愛意将富士山私有?人工智能說,唱得好,打斷一下,在下認為,能抓住富士山雪頂特點,那才是真愛。

目前,整個科技界公認的做法分兩步。

第一步,把AI模型做得很大。足夠大,才能在這麼大規模的群體中精準刻畫使用者特(興)點(趣)。第二步,在這個大體量壓力下,性能還要好。 說白了,就是在山崩雪嘯中清理雪道,難度可想而知。當AI模型超大(TB級别)的時候,傳輸,更新,就好比把富士山的雪塊,全部搬到北海道去。 那應該怎麼辦呢?答案不是搬雪,而是掃雪。

“掃雪”的水準要高,及時又精準。

及時掃雪,舉一個例子。假如你和我都用京東APP,這些海量參數裡,有一批參數表達了你,有一批參數表達了我。你點選了,就是你的使用者行為有回報了,及時更新你的參數(特點)。

精準掃雪,舉一個例子。一大堆雪,要能區分,是誰家門口積雪。掃錯了門前雪就是錯誤地更新了别人家的參數(特點)。

時間往往是最大的敵人,實時性是最難的問題。雖然難,但是業務很受益。是以,京東零售對實時性的要求十分之苛刻。 世人常說,昨天之不可能,今日之極限,明日之平常。在推薦系統(召回過程)裡,2020年做到了30分鐘級的實時性,2021年做到了1分鐘級别。 那麼問題來了,如何辦到的?

這得從一個人談起。他就是現任京東集團副總裁、京東零售技術委員會主席、京東零售技術與資料中心負責人、京東零售雲總裁顔偉鵬。

在來京東之前,他曾擔任谷歌中國工程研究院副院長,英文名字是Paul,發音簡短上口,是以,大家日常稱呼,Paul總。2013年,Paul總初到京東,看到這樣一番景象,場景多,需求多,研發團隊忙得腳打後腦勺。談創新?誰也顧不上。Paul總說,這樣不行,京東研發體系是采銷體系的堅強後盾。他在一張神秘藍圖的留白處,批了八個字:标準、自動、規範、智能。

02 最騷操作

追溯八年時光,再看煙火熱鬧。 那些年,雖然生意亮眼,但是技術欠些火候。Paul總在谷歌公司的時候,曾經穿越谷歌與必應搜尋世紀大戰的硝煙,戰績斐然。在他心裡,無論業務是什麼,技術實力要對标矽谷。

頂尖人才需要願景驅動。于是,Paul總用這張神秘藍圖招攬人才。 2014年春,Paul總面試了一位年輕人,包勇軍,他身形挺拔清瘦,對技術的熱情像白色水蒸氣一樣往外冒,履歷裡寫滿全球頂尖項目,反而很少有人提他是北京大學畢業的。據說,包勇軍看過那張神秘藍圖後,轉身就入職了,帶廣告算法團隊。 有一件事,大家都知道。

Paul總傾聽彙報的時候,要麼不說話,要麼隻問一個問題便能抓住要害。而那些從Paul總辦公室裡結束彙報,走出來的算法工程師,心底都隻有一句話:“你哪裡有問題,他一眼就能看穿。” 另一件事,隻有幾位專業的博士同僚才知道。

語音識别是典型的人工智能賽道,在語音識别技術試水初期,一個小衆語音識别工具需要選型,多位資深專家舉旗不定。Paul總親自參加多場選型會後,定下了結果(kaldi )。一段時間後,其中一名研發人員機緣巧合地請教了一家科研院所專攻此方向的教授,吃驚地發現教授實驗室的同方向的組裡也用同款工具。想不通Paul總是怎麼定下來的。

Paul總的身上,沒有時差,一直過着中美兩個時區,電話會議開到深夜,一覺睡醒,京東ME裡總有Paul總的指導性留言。次日清晨的技術選型會上,又見Paul總的身影。 團隊在Paul總的上司下,避大坑,繞雷區,躲彈片,不戀戰,從不為了技術而技術。隻為速穿火線,蕩平山頭,擁兵破陣,策應業務,用技術驅動零售。

時光流轉,代碼品質被史無前例地提升,技術在業務場景裡加速創新。Paul總當初定下的目标沒有變,标準、自動、規範、智能。想做到這幾點,絕對少不了一個強大的算法底座。算法和算法底座雖為兩件事,但又密不可分,剛柔并濟。幹的活完全不同,還又要彼此了解。

一般來說,一個業務場景,由一個算法團隊負責,一個算法底座團隊來打配合。表面合理,本質錯誤。若是日後業務場景裡的算法數量翻10倍,算法底座團隊數量是不是也翻10倍?一路放任,無法無天。

這打法又俗稱“堆人戰術”,明顯是錯的,來一個工單,堆一波人。這就好比下雪了,派人掃雪,下大雪了,派更多的人掃雪。可是效率呢?技術研發很少講絕對,但是“研發人效低了”絕對不行。 認錯很難,尤其是錯了很久之後。是以,早期判斷,彌足珍貴。

包勇軍是怎麼幹的呢?他把隊伍分成兩路,上路縱隊專攻算法,下路縱隊專攻算法底座。上路猛沖狠打,下路火線支援。算法沖鋒,算法底座支援。戰場上,增援和沖鋒同樣重要。否則一味沖鋒,孤軍惜敗。

一場泛零售數智化要怎麼做?

軟體開發是一個創造性的過程,但也有許多重複性的工作。尤其是工程越大,重複性的工作越多,還容易引起混亂。得有個“以一頂百”的東西,這個“頂”有頂住、支撐之意,這個東西就是“算法底座”,也有人管這個叫“中台”。 你用,他用,都要用,有一種公共屬性。

是以,“算法底座”讓所有團隊共用,從人力角度,整支部隊就能“縮編減冗”“效率大增”。更重要的是,無論是堆機器、堆人力,都無法在資料的快速膨脹、業務的高速增長和平台的穩定易用高效上取得比較好的平衡。

理論上講,線上業務離不開人工智能算法,幾億使用者,幾十億量級商品,沒有算法,京東“停擺”。事實上講,更是如此。

如果你不信,那得先了解一下,那些人工智能算法是什麼樣的。 全世界所有電商公司的人工智能算法,都是為了提高購買率(點選率CTR和轉化率CVR)。不搞技術就不用記這個,請記住“點選”這個動作。這個動作可是網購界的“最騷操作”。

誰網上購物都得用手指頭點選,光用眼睛瞅,買不了東西。“點”就是興趣,“點”就是關注,說到底,一場關于“點與不點”的遊戲,點選就是好朋友,不點選就拜拜了您呐,慢走不送。

點選才是正面戰場,點選才是王道,有了點選量,支付、物流等後勤部隊,才有資格沖上戰場。于是,就像微信朋友圈收集點贊一樣,攢了很多“點選”之後,再用黑科技來“猜你喜歡”“找你喜歡”。算法三強是廣告、搜尋和推薦,相當于三台大發動機。這三個算法一停,購物APP就基本是“靜止畫面”了,買個東西,全靠手動翻商品目錄了,可勁找吧。

一場泛零售數智化要怎麼做?

推薦算法做什麼呢?比如,預測每個商品被使用者點選的可能性,預測使用者點還是不點,點的可能性大的排在前面。網紅奶茶店門口,人排隊。反過來了,貨排隊,人不排隊。當然,這是推測出來的,換一撥人,這個思路可能完全不對。

時間對推薦技術也有很大影響。十年前,你為了凹造型,染五顔六色的殺馬特發型;十年後,推測你買防脫生發産品。

再比如周星馳喜歡的《演員的自我修養》,買過了,推測應該不會重複買,沒有排隊的資格了。

廣告算法的拳法是什麼?除了多(廣)撒(告)網(費)之外,廣告盡量做到誰喜歡,投放給誰。人無我有,人有我吹,人吹我換。

搜尋算法的招式是什麼?比如搜尋一個13香手機(Iphone13 ProMax),破算法搜出來一堆手機殼、充電線,或者型号也搞不對,出來一堆淘汰款。好算法就能找到腦中所想。

算法和算法底座,兵分兩路,“上路縱隊”有多個,“下路縱隊”隻有一個。先分工滅敵,再火力合并。

集中火力是指把重複使用的功能都“拿”出來,以元件的形式放在軟體系統裡。難度挺大,既照顧共性,又包容差異。高鐵車頭始終一個,拉動的車廂從8節,擴大到16節,絲毫不影響前進速度。

03 鑿山穿地

時間總不經用,轉眼幾度春秋。資料,多模态,組織越來越複雜,應用越來越靈活。底層技術,又難又累,算法底座裡的底層技術,更難更累,簡直是一個讓人掙紮的泥潭。 最難的技術,是最磨煉人的地方。

2015年,包勇軍在AI架構(Theano)上進行适合業務的定制化開發,這個架構是加拿大蒙特利爾大學實驗室的開源軟體。那時候很多人都沒把AI用起來,更别說定制化開發AI架構。

AI很耳熟,“架構”是個啥?這麼說吧,算法跑在算法底座上,算法底座跑在AI架構上。是以,很好了解,AI架構是底座中的底座,屬兵家必争之地。這好比,AI是一輛汽車,AI架構則是汽車的發動機。AI是手機,AI架構就是手機作業系統。

一場泛零售數智化要怎麼做?

技術風向總在變化,兵貴神速,2016年,包勇軍帶着團隊迅速切入AI架構(TensorFlow)的核心。2017年初,朱小坤入職了,專門負責算法底座,帶着團隊逢山開道,遇水搭橋。他們的口号可能是八個紅漆大字,“穩如泰山”“保障有力”。

2018年左右,京東的GMV(16768億元),比2013年翻了13倍,業務的壓力分分秒秒傳導給技術。每當任務激增,資源的消耗必然水漲船高。

這時候,每個人都以為會有好的資源助攻。然而,Paul總提出:“技術能力滿足所有團隊對于算法和算力的需求,但是,一不能堆人,二不能堆機器。” 聽到這句話的人,面部表情恐怕是僵住的。

那一年,AI江湖笃信“計算資源大力出奇迹”。計算資源不夠,就好比出去逛街,滿世界好東西,兜裡錢不夠。 那一年,AI算法創新多紅利,算法不夠,一臉尴尬,這就像出去比武,你拿了一根破木棍,人家打出一套降龍十八掌,順帶九陰真經、彈指神通、六脈神劍…… 王者榮耀打大龍,每一次攻擊都在耗血。AI算法跑起來,每秒都在消耗計算資源。

一台很(英)著(偉)名(達)公司的計算裝置,動不動就賣到幾十萬、上百萬。高檔貨這麼貴,用起來精打細算,底層實體計算機的資源排程立馬提上最高日程了。排程就是一種管理,就是為了用好資源。

想攻下這個“山頭”,一連上了好幾個八塊腹肌、技術勇猛的精神小夥,可惜,皆是铩羽而歸。

隻要問起,小夥們就滿臉不高興地甩一句:“帥哥的事,你少管。”實際上,底層涉及的技術面比較廣,跨多個技術領域。資源排程也是基礎設施,在算法底座的下面,是算法底座的油箱。

核心是智慧叢集的管理排程,但是,鏡像管理、多叢集管理、日志管理、監控等每一樣都要管好。

有些人一進門,一股殺氣。朱小坤一進門,一團和氣。朱小坤有了一些白發,但每一根頭發都倔強地擺出造型,有一種行事低調的藝術家風範。桌面上總擺着紙質的學術論文,臉上總挂着和藹可親的笑容,辦公桌前伏案的他,更像大學裡一位教高等數學的老教授。

一場泛零售數智化要怎麼做?

(朱小坤的背影,攝影:譚婧)

618團隊統一發的黑色帽衫,看樣子是要穿到來年。下班,刷一輛共享單車,路燈下車輪的影子拉得老長。他程式設計的時候,帽衫上的京東吉祥物Joy似乎也在安靜地微笑。 想不到的是,這樣一位氣質上“甯靜緻遠”的人,别人對他的評價都很激烈,“别人都搞不定,坤哥搞定了”,還有同僚說他工作起來動不動就“連夜突擊”。

熬夜加班這事,他一聽就否認三連,偶爾,偶爾,偶爾。别人想想要上班程式設計一整天,心痛不已。朱小坤想想要程式設計一整天,快樂星球。他是有一些功夫在身上的,這個功夫就是“20多年大型計算機系統軟體的架構經驗”。别人搞不定的事兒,朱小坤帶着團隊搞定了。

從此以後,資源就不用你争我搶了,有的配置設定計算密集型的機器,有的配置設定高存儲的機器。人有忙有閑,機器工作節奏也有潮有汐,統一的資源管理平台,大大提高計算機使用率,把計算機壓榨到底,節約了不少真金白銀。

2018年,一年内,團隊将GPU的使用率翻了三倍。連續兩年,沒有采購任何昂貴的計算機。

計算資源被打服了,而另一個難以攻下的“山頭”還一臉傲慢——AI的量(深)體(度)裁(定)衣(制)。

歲月如流邁,春盡秋已至。

從2019年第三季度到2021年第二季度,京東連續八個季度大步增長,活躍使用者數增長2000萬。以這個體量,想把AI用好,隻有以大工程的姿态示人。

為什麼這麼說呢? 人工智能這個軟體,可以很小,僅在一台筆記本電腦上運作。比如,拿筆記本電腦寫一個貓臉識别的算法,門口安個攝像頭,貓殿下邁着貓步一臉傲嬌“刷臉”進門。

可以很大,全世界的貓同時刷臉進門。這時候,筆記本電腦下線了,請上一條龍的服務。 當“大系統”和“一條龍”報錯的時候,麻煩大了。研發同僚高舉大大的紙牌子刷出亮眼的存在感:“為什麼我的任務沒能跑起來?”

一場泛零售數智化要怎麼做?

簡單一問,暴擊三連。

科技公司裡,時刻都會面對工(痛)程(苦)問題,關鍵在于拿什麼心态面對,公司的企業文化又鼓勵員工用什麼心态面對。沒有工程文化的科技公司,是沒有靈魂的軀殼。朱小坤說:“做大型計算機系統軟體不出名,技術别人也聽不懂,唯一期待就是業務出效果。”

朱小坤提到的大型計算機系統軟體,為什麼京東非要自己搞?因為沒有現成的軟體,配得上京東龐大的生意體量,配得上京東策馬奔騰的算法,配得上京東供應鍊流星趕月的數智化。關鍵是,AI這個東西。開源的AI軟體在工業級的場景裡不夠用,非得自建流水線,量(深)體(度)裁(定)衣(制)。

有人笑談,這是藝術,而不是科學,在複雜和簡單之間散步,設計決定需要依據科學和藝術。回想起朱小坤的發型,讓人似乎讀懂了什麼。

朱小坤常說:“沒什麼訣竅,我也是學的。大型人工智能軟體對基礎設施的依賴非常強,而基礎設施的穩定性特别難做,慢慢來,急躁不得。找到一個問題,解決一個問題。”

深度定制是個大工程,“規模”和“性能”都讓人頭疼。

一場泛零售數智化要怎麼做?

大廠家家都要幹,且都揣着絕活。京東的深度定制,不隻是定制一部分,是定制一個大全套(流水線從模型開發、模型訓練,到模型服務)。

如此這般,最硬核的來了。人工智能沒日沒夜訓練模型,好比部隊要軍訓,一批算法模型上了戰場。訓練得好,聰明能幹。訓練不好,人工智障。有人對着手機螢幕大罵:“啥破玩意,APP裡給我推薦的啥東(垃)西(圾)。”

為此,需要對不同黑科技,推出不同的AI架構,比如,強化學習架構,圖深度學習架構伽利略(Galileo),線上學習架構,而且都是“9N”開頭的代号。例如,圖深度學習架構伽利略,解決大規模圖算法在工業級場景落地問題。雖然深度學習算法的生産流程的整條鍊路改動大,但也不能放任自流。

一百個模型,有一百個生産方法,這是災難。要就有标準的生産方法,比如著名的BERT模型。還有統一的超大規模深度學習架構擎天柱(Optimus),支撐幾十個業務場景,每天都能生産數千個增量和全量的AI模型,解決規模問題的标準化。

一場泛零售數智化要怎麼做?

Paul總在采訪中談道:“AI技術的高速發展無疑颠覆了我們的想象,目前AI技術的應用已經貫穿于京東零售整個商業流程。” 至此,人工智能,淚流滿面,深鞠一躬。 商業和技術無法分割,談100次技術,就會談101次商業。星辰大海中,不是看到希望才去堅持,而是堅持了才看到希望。

繼續閱讀