半小時訓練億級規模知識圖譜,亞馬遜這個 AI 框架要火!

2020-12-15 CSDN

知識圖譜 (Knowledge Graph)作為一個重要的技術,在近幾年裡被廣泛運用在了信息檢索,自然語言處理,以及推薦系統等各種領域。學習知識圖譜的嵌入表示 (Knowledge Graph Embeddings)是一種從知識圖譜結構中生成無監督節點特徵(node feature)的方法,生成的特徵可以被用在各種機器學習任務之上。例如,可以通過節點的嵌入表示來預測兩個節點之間是否有連結(link prediction)。

然而,隨著社交網絡、推薦系統等典型圖數據場景的發展,知識圖譜的規模也在不斷地增長。在工業界真實的場景中,技術人員常常需要面對千萬級,甚至是億萬級節點的大規模圖數據。如何快速、高效地在大規模知識圖譜上進行嵌入表示的訓練是當前的一個挑戰。

近日,亞馬遜 AI 團隊繼 DGL 之後,又開源了一款專門針對大規模知識圖譜嵌入表示的新訓練框架 DGL-KE,旨在能讓研究人員和工業界用戶方便、快速地在大規模知識圖譜數據集上進行機器學習訓練任務。

github 地址:https://github.com/awslabs/dgl-ke

相比於已有的開源框架,DGL-KE 的亮點如下:

支持各種主流知識圖譜表示學習算法,包括 TransE、ComplEx、DistMult、TransR、RESCAL、RotatE 等;已有開源框架中唯一支持多核 CPU,多卡 GPU,CPU-GPU 混合訓練,以及分布式訓練的知識圖譜嵌入表示框架;簡單易用,用戶無需編寫代碼,直接將知識圖譜數據作為輸入即可;高性能且可擴展。根據 DGL-KE 發布的 Freebase 數據集 (超過 8600 萬節點,3 億條邊)Benchmark 顯示,在 AWS EC2 平臺上,一臺 p3.16xlarge (8 GPUs)可以在 100 分鐘內完成訓練。4 臺 r5dn.24xlarge (4*48 CPUs)可以在 30 分鐘內完成訓練,並且達到線性加速比。這一結果比當前最快的同類系統(如 Facebook 發布 Pytorch-BigGraph)快 2-5 倍。

圖1: DGL-KE 系統架構

DGL-KE 之所以能夠有這樣的性能,主要是因為採用了許多創新的系統和算法優化:

(一)基於 METIS 圖分割算法的分布式訓練

對超大規模的圖數據進行訓練,分布式訓練必不可少。其思路主要是將原始大圖分割成不同的子圖,每一臺機器負責在一個子圖上進行隨機梯度下降訓練,所有機器之間通過參數伺服器(Parameter Server)進行模型的同步。其架構如下圖所示:

圖2: DGL 分布式架構

然而,如果只是對一張大圖進行隨機切割,會造成訓練機器與參數伺服器之間的數據通信量巨大(本地機器需要從遠程機器去請求自己所需的模型數據),從而造成網絡瓶頸。為了解決這一問題,DGL-KE 在訓練前會預先通過 METIS 圖分割算法對原始數據進行切割。

METIS 算法是計算機科學家 George Karypis 於 1995 年提出的一種高效的圖分割算法,而 George Karypis 也正是 DGL-KE 項目的作者之一。METIS 算法會將一張大圖上相關聯的節點儘可能放置在同一個劃分(partition)之中。這樣可以將大部份的網絡通信開銷轉化成本地機器的內存拷貝,從而大大提升了分布式訓練的速度。

在 Freebase 這個數據集的實際訓練中,METIS 算法可以節省將近 90% 的模型網絡傳輸帶寬,從而使分布式訓練達到線性加速比。DGL-KE 的分布式訓練使用了 DGL-KVStore 組件。DGL-KVStore 是專門為 DGL 系統定製開發的參數伺服器模塊,用來實現稀疏模型的同步通訊。該組件通過 C++ 實現了底層 socket、消息隊列,以及稀疏數據序列化的定向優化,並且可以無縫兼容 METIS 圖分割算法。

(二)基於共享內存的單機多進程訓練

多核(Multi-core)已經成為當前計算機體系架構的標配,很多強大的 workstation 在一臺機器內更是會有超過幾十個 CPU 核心和上百 GB 甚至上 T 的內存。對於很多千萬級節點的圖數據來說,這樣的單機性能已經足夠處理這種規模的數據。

DGL-KE 針對這樣的場景也做了相應的系統優化,讓用戶儘可能地挖掘一臺機器的性能極限。與傳統基於多線程(Multi-thread)的並行優化不同,DGL-KE 採用了基於多進程(Multi-Process)的粗粒度並行優化。粗粒度的並行可以最大限的提升程序運行並行度,從而提高加速比。此外,DGL-KE 在不同進程之間通過共享內存(Shared-memory)進行模型同步,從而大大減小了進程之間的通信開銷。

圖3: 基於共享內存的單機多進程訓練

(三)CPU-GPU 混合訓練

知識圖譜嵌入表示的訓練過程中會產生大量的矩陣運算,而矩陣運算可以通過 GPU 來加速。對於小規模的圖數據來說,DGL-KE 允許用戶將完整的圖模型放入 GPU 中進行訓練,從而達到最優性能。然而,相比於 CPU 內存,GPU 內存要小很多,一但模型 Embeddings 的大小超過了 GPU 內存限制就無法進行訓練。針對這樣的場景,DGL-KE 為用戶提供了 CPU-GPU 混合訓練的模式。

在 CPU-GPU 混合訓練模式中,模型 Embeddings 被存儲在 CPU 的內存裡,而 GPU 通過 mini-batch 的方式在每一輪迭代過程中將一小部分數據從 CPU 拷貝到 GPU 進行訓練。為了避免 CPU 與 GPU 之間的數據拷貝開銷,DGL-KE 採用異步訓練的方式將數據拷貝與計算 overlap 起來。然而,異步計算會帶來模型收斂速度和精確度的下降,DGL-KE 在這裡採用了另一個優化,將 Entity Embedding 和 Relation Embedding 的更新採用不同的方式進行:relation 使用同步更新,而 enity 使用異步更新。

之所以這樣做是因為在實際的訓練過程中,relation 在很多數據集上都表現為長尾分布,即某幾種 relation 類型佔據絕大多數,所以異步更新會導致 relation embedding 在訓練過程中產生大量的模型衝突,從而影響模型的收斂和準確性。而 entity 在訓練過程通常是稀疏的,所以異步訓練只會產生很小的衝突。採用這樣一個簡單的優化,DGL-KE 既可以保證模型訓練的收斂性,又可以保證系統性能。

圖4: CPU-GPU 混合訓練

除了以上優化之外,DGL-KE 還提供了其他若干優化方法。例如,使用 Joint Negative Sampler 加速負採樣過程,使用 Relation Partition 來減少訓練過程中的數據拷貝,以及使用 Periodic synchronization 保證模型的收斂等。DGL-KE 內置了多個處理好格式的知識圖譜數據集,用戶可以直接下載使用。

除此之外,DGL-KE 在兩個小數據集 FB15k,wn18,以及一個大數據集 Freebase 上提供了訓練 Benchmark,用戶可以直接通過提供的腳本復現訓練結果。和已有的開源框架相比,DGL-KE 的性能優勢明顯,如下結果展示了 DGL-KE 與 Graphvite 在 FB15k 數據集上的性能比較,以及和 Pytorch-Biggraph 在 Freebase 數據集上的比較。

DGL-KE vs Graphvite

DGL-KE vs Pytorch-Biggraph

【END】

相關焦點

  • 億級學術圖譜 Open Academic Graph 更新至 2.0 版本:包含約 7 億...
    OAG 2.0 版本下載網址:https://www.openacademic.ai/oag/OAG 2.0 版本 VS 1.0 版本於 2017 年開放的 OAG 1.0 版本,通過整合清華 AMiner 學術圖譜的 154,771,162 篇學術論文的元數據和微軟學術圖譜
  • 擁有50億實體、5500億事實的百度知識圖譜,再度升級賦能千行萬業
    主論壇上,百度CTO王海峰在致辭中提到:「百度構建了世界上最大規模的知識圖譜,擁有超過50億實體,5500億事實,能夠通過語言、聽覺、視覺等獲得對世界的統一認知,突破了實際應用中場景複雜多變、數據稀缺等難題。」
  • 基於知識圖譜的智能問答
    基於知識圖譜的相關應用大致可以分為搜索、問答、決策、推薦等幾種常見的類別,對於知識圖譜的理解,可以參考之前的文章《三個角度理解知識圖譜》,本文主要就年初規劃的
  • 史上最大規模:這有一份1.4億的中文開源知識圖譜
    機器之心整理 參與:鄭麗慧、杜偉 知識圖譜是人工智慧新時代的產物,簡單地說知識圖譜就是通過關聯關係將知識組成網狀的結構,然後我們的人工智慧可以通過這個圖譜來認識其代表的這一個現實事件,這個事件可以是現實,也可以是虛構的。
  • 百度CTO王海峰詳解知識圖譜與語義理解
    因此知識圖譜就是對客觀世界的描述。百度 AI 多年技術積累和業務實踐的集大成是百度大腦,百度大腦發展了近 10 年的時間,其中的知識圖譜技術是從 2013 年開始做的。一方面知識圖譜的規模在快速增長,另一方面,基於知識圖譜來提供服務,每天滿足用戶各種需求的量級也在快速增加。過去這些年,百度知識圖譜的服務規模大概增長了 490 倍。
  • 阿里巴巴AAAI 18論文CoLink:知識圖譜實體連結無監督學習框架
    第一,收集人工連結的實體信息對(user pairs)作為訓練數據的成本非常高昂。第二,不同子知識圖譜的實體屬性通常有非常不同的定義方式和格式,這使得屬性對齊(attribute alignment)非常困難。我們在本論文中提出了 CoLink,一種用於實體信息連結問題的通用型無監督框架。
  • ACL 2019 知識圖譜的全方位總結
    令人驚訝的是,ACL會議中展示了相當多關於知識圖譜三元組描述(verbalizing triples in KGs)的內容。首先,我要提一下由IBM研究院組織的關於storytelling研討會[6],在這個研討會上提出了大量解決三元組描述問題的比賽和可行的方案。(可以去看相關的slides).
  • 華為開發者大會HDC.Cloud硬核技術解讀:知識圖譜構建流程及方法
    該框架模型效果可以達到當前業界最好水平(state-of-the-art)。華為雲知識圖譜服務支持基於該算法的模型訓練、預測以及管理功能,同時以插件形式完成流水線中信息抽取部分。,額外提供三元組標註工具,用戶可以基於該工具快速獲得訓練數據,完成信息抽取以及知識圖譜構建工作。
  • 亞馬遜自研雲端AI訓練晶片來了!明年下半年投入使用
    亞馬遜稱其自研晶片可提供比雲端競爭對手更高的性能。編譯 |林卓瑋編輯 |江心白芯東西12月3日消息,亞馬遜本周推出了自研雲端AI訓練定製晶片AWS Trainium,稱其能顯著降低訓練成本。據悉,相較基於英特爾AI訓練晶片Habana Gaudi的亞馬遜Elastic Compute Cloud(EC2)實例,基於AWS這款AI訓練晶片的雲端實例在可用性方面更為領先。
  • 知識圖譜構建的研究已走入下半場,但大規模落地應用仍需時間
    這一年,谷歌發布了 570 億實體的大規模知識圖譜,其宣傳語是「Things, not Strings」給出了知識圖譜的精髓,即,不要無意義的字符串,而是獲取字符串背後隱含的對象或事物,多組研究者也曾獨立地提出過相似的理論。
  • AI|基於知識圖譜和圖卷積神經網絡的應用和開發
    1.10 圖卷積:邊信息嵌入在圖的拓撲結構中,有時邊是有權重的,如果這個權重值單單放在鄰接矩陣中(也就是權重信息放在點裡),僅僅有鄰接矩陣的乘積並不能突顯出邊的信息。如果要把邊的信息考慮進圖卷積中,我們可以把圓圖轉為線圖。
  • 深度學習框架 fast.ai 2.0 正式發布
    經歷了長久的等待之後,深度學習框架 fast.ai 2.0 版本終於正式發布了。fast.ai 課程,是為了踐行 Jeremy Howard 「讓深度學習不再酷」的承諾。這話的意思是也消除掉門檻,讓更多沒有高等數學和統計專業基礎的人,都有機會來了解和應用深度學習。關於這個事兒,我在《如何從零基礎學最前沿的 Python 深度學習?》一文中,給你介紹過。
  • 技術動態 | ACL 2019 知識圖譜的全方位總結
    令人驚訝的是,ACL會議中展示了相當多關於知識圖譜三元組描述(verbalizing triples in KGs)的內容。首先,我要提一下由IBM研究院組織的關於storytelling研討會[6],在這個研討會上提出了大量解決三元組描述問題的比賽和可行的方案。(可以去看相關的slides).
  • 知識圖譜發展的難點&構建行業知識圖譜的重要性
    要實現真正的類人智能,機器需要掌握大量的常識性知識,以人的思維模式和知識結構來進行語言理解、視覺場景解析和決策分析。四、知識圖譜的誕生當你對陌生領域進行學習時,無法把握要點及整體框架,以至於檢索效率低、入門無道時,知識圖譜應運而生。自2012年5月,Google將知識圖譜應用到其搜尋引擎,以提升其搜索服務能力,將各種渠道收集而來的相關信息展示在搜索結果旁的信息框中,以結構化模塊形式提供給用戶。
  • 從知識圖譜到認知圖譜:歷史、發展與展望
    知識圖譜由節點和邊組成,節點表示實體,邊表示實體與實體之間的關係,這是最直觀、最易於理解的知識表示和實現知識推理的框架,也奠定了現代問答系統的基礎。從20世紀80年代的知識庫與推理機,到21世紀初的語義網絡和本體論,其核心是早期版本的知識圖譜,要麼側重知識表示,要麼側重知識推理,但一直苦於規模小、應用場景不清楚而發展緩慢。
  • 多知識圖譜的融合算法探索
    很自然的做法是,為了契合各個業務的實際場景,我們會為每個業務方獨立出各自的知識圖譜,方便與業務方共同管理數據。隨著業務深入,很快會發現單個業務知識圖譜因為規模小,在文本語義理解類任務上非常受限,此時需要將多個知識圖譜進行融合,打通知識邊界。
  • 上交大 Acemap 團隊發布學術知識圖譜 AceKG,涵蓋 1 億多個學術實體
    從官網可以看到,Acemap知識圖譜(AceKG)描述了超過 1 億個學術實體、22 億條三元組信息,包含六千多萬篇論文、五千多萬位學者、五萬多個研究領域、將近兩萬個學術研究機構等,數據集將近 100G。
  • 基於向量空間的知識圖譜查詢及結果解釋
    王萌:迭代是指位置,這個是訓練的過程,前期要做實驗分析。提問:相當於整個過程初始向量都是適用的。還有一個問題,最後是出了論文,對這個論文做出的評判指標是什麼指標?提問:查詢圖的規模是什麼規模?王萌:比如說微機百科規模比較大,包含了將近60個實體。提問:就是實驗的時候。王萌:這個規模很大,是整個BPP,但是是線下的過程。
  • 知識圖譜研討實錄05丨肖仰華教授帶你讀懂概念圖譜構建
    基於圖譜翻譯:譯法存在歧義。不同語種傾向於表達不同的知識。肖仰華老師:不同語言在知識表達上的傾向性是個十分有意思的問題,其實即便這個問題本身也很少看到研究工作,我們完全可以開展一些實證研究,分析到底中英文傾向於表達怎樣的知識。1.某個特定的文本語料知識對知識全集的一個不完整的表達。
  • 知識圖譜:知識圖譜賦能企業數位化轉型 | AI 研習社職播間第 3 期
    知識圖譜是實現強人工智慧必須要攻克的難點,但它本身的技術棧也比較長,暫時無法像圖像識別、語音識別那樣被快速推進,只能在一個個小的場景中落地。知識圖譜技術可能有的人沒怎麼聽說過,但百度、Google 在 2012 年 就開始做這個。