Isaac Sacolick Charles
推特和臉書可以教會我們很多關于高效人工智能的知識。
據Gartner最近的一項調查,很多企業剛剛開始機器學習之旅,37%的企業已經實施了人工智能。如果你已經打開了機器學習的大門,在開始機器學習概念驗證或者學習人工智能、機器學習和深度學習的完整指南之前,建議先想一想10個問題。
機器學習正在發展,頻繁報道出現了新的商業突破、科學進步、框架改進和最佳實踐。
對于那些擁有大規模機器學習項目并將人工智能視為業務核心的企業,有很多東西值得我們學習。前不久在紐約的O'Reilly人工智能會議上,我發現了臉書和推特機器學習項目之間的幾個共同趨勢。
了解業務需求和競爭因素
在臉書,機器學習被應用于很多領域。在臉書主頁上,它搜索、翻譯語言、掃描新聞提要、識別上傳照片中的人臉,并查看顯示了哪些廣告。在后臺,機器學習用于進行內容理解、語音識別、內容完整性、情緒分析、不良內容檢測和欺詐賬戶檢測。
同樣,還可以在推特的推文排名、廣告選擇、搜索功能和用戶推薦中看到推特的機器學習在發揮作用。機器學習還用于標記罵人的推文、垃圾郵件和不適合工作的圖像。
你可能看不出來每種機器學習工作的規模,以及這兩家公司在差異化上的投入情況。
臉書每天為其26億用戶進行超過200萬億次的預測。其很多用戶都是全球性的,帶寬有限,大量的交互都是通過移動電話完成的。
這帶來了一些難題,因為61%的全球移動用戶的手機都使用了6年甚至更長時間;只有不到10%的用戶使用最先進的智能手機。臉書的一種策略是把更多的神經網絡計算轉移到邊緣設備上,以提高規模、降低延遲,并提供更個性化的機器學習模型。臉書的機器學習技術棧反映了它的目標,即大規模地進行推理,并將一些計算卸載到邊緣設備上,使得更容易研究新模型。
推特根據規模和延遲需求優化其模型。它每秒執行數千萬次預測,每天以數十TB的數據訓練一些模型。該公司專注于優化延遲,即模型響應所需的時間,并定義了數十毫秒的預測延遲預算。
標準化平臺以擴大規模
臉書和推特都很早就開始了他們的機器學習項目。他們從非結構化方法開始,而現在正在采取措施使其平臺、框架和流水線標準化。推特的目標是讓分享模型變得更容易,并希望減少重復性的工作。臉書正在解決可靠性、可擴展性、運行模型的效率以及其科學家和工程師在開發體驗等方面遇到的難題。
兩家公司的平臺都圍繞類似的數據流水線處理原則進行了優化。他們都有處理數據、提取特性、訓練模型和把模型部署到生產環境中的步驟。
這兩家社交媒體巨頭正在采取措施,對某些機器學習框架進行標準化處理。臉書使用PyTorch進行簡單研究,而Caffe2則大規模運行生產推理模型。它將這些整合到了Pytorch 1.0中,Pytorch 1.0結合了這兩種功能,并使用Caffe2Go運行其移動神經網絡。推特混合使用了Lua Torch、TensorFlow、Scikit、PyTorch和其他平臺。它現在正在標準化Scalding、PySpark、TensorFlow,以及Apache Airflow。
讓科學家、開發人員和工程師協同工作
推特和臉書描述了在數據科學家、開發人員和工程師之間提高工作效率,實現知識共享和代碼重用的各種工作。
很多數據部門在其數據治理項目中建立了數據目錄和字典。利用這些工具,每個人在使用數據進行分析或者機器學習實驗時更容易理解基礎數據模型、字段定義和質量約束。
推特把機器學習實驗中使用的特征標準化,并將其輸入到一個特征存儲目錄中,從而更進了一步。這減少了重復工作,幫助科學家訓練新模型,更輕松地把數據處理成特征。
臉書也在對其特征進行編目和標準化,實現訓練的自動化,開發管理和部署模型的工具。FBLearner是其支持這些功能的標準平臺。
此外,臉書正在標準化所使用的機器學習類型。例如,新聞提要、廣告、搜索和異常檢測的排名使用多層感知器。它還利用卷積神經網絡和支持向量機進行面部識別,并利用遞歸神經網絡進行語言翻譯。
自動化機器學習模型的連續訓練
就像軟件應用程序一樣,機器學習模型需要不斷地進行訓練和修改。臉書和推特都將這種訓練自動化,這樣,模型就可以用新數據重新進行調整。
推特認識到,將模型投入到產品中會產生新的要求,即讓模型接受最新數據的訓練,并在數據科學家改進模型時對其進行更新。Apache Airflow自動化了訓練和部署流水線。
臉書在其策略上非常明確。對于頻繁變化的模型,例如新聞提要,可以每小時甚至在更短的時間內再訓練一次,而語言翻譯和面部識別模型的訓練周期可以是幾周到幾個月。
計算成本和計算資源的可用性也是影響模型重新訓練頻率的因素。臉書可能有戰略計算優勢,因為它開發了針對不同類型機器學習工作負載進行過優化的硬件堆棧。推特的重點是優化算法性能,以及在全球計算資源利用較低的非高峰時間段安排訓練。
長遠規劃
與大多數企業相比,推特和臉書在應用和擴展機器學習方面遠遠領先于成熟度曲線。我們能從他們的成功中學到什么?
從小處著手,通過訓練模型和在產品中運行來驗證業務價值,然后進一步投入,以擴大規模,讓實踐成熟起來。成熟的實踐需要類似于應用程序開發的規程,包括標準化框架、定義體系結構、選擇維護周期、優化性能,以及自動部署流水線。
你會看到,機器學習提供了巨大的價值,但也需要圍繞性能和投入進行持續的調查,以做出改進。模型得到訓練、部署、優化,然后被更好的模型所取代。機器學習是一種新的工具和技能集,對于必須改善用戶體驗或者利用數據提高競爭價值的企業來說,它將變得越來越重要。
Isaac Sacolick是公認的社交領域的最佳首席信息官,也是“社交、敏捷和轉型”以及CIO.com的長期博主,還兼任StarCIO總裁。