<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          PyTorch官方發(fā)布推薦系統(tǒng)庫(kù):TorchRec

          共 3410字,需瀏覽 7分鐘

           ·

          2022-03-03 07:46


          點(diǎn)藍(lán)色字關(guān)注“機(jī)器學(xué)習(xí)算法工程師

          設(shè)為星標(biāo),干貨直達(dá)!




          我們很高興地宣布 TorchRec,一個(gè)用于推薦系統(tǒng)的 PyTorch 域庫(kù)。這個(gè)新庫(kù)提供了通用的稀疏性和并行性原語(yǔ),使研究人員能夠構(gòu)建最先進(jìn)的個(gè)性化模型并將其部署到生產(chǎn)中。https://github.com/pytorch/torchrec


          我們是怎么來(lái)到這里的?


          推薦系統(tǒng) (RecSys) 包含當(dāng)今大量部署在生產(chǎn)環(huán)境中的 AI,但您可能不會(huì)通過(guò)查看 Github 了解它。與 Vision 和 NLP 等領(lǐng)域不同,RecSys 的大部分持續(xù)創(chuàng)新和開(kāi)發(fā)都是在封閉的公司門(mén)后進(jìn)行的。對(duì)于研究這些技術(shù)的學(xué)術(shù)研究人員或構(gòu)建個(gè)性化用戶(hù)體驗(yàn)的公司而言,該領(lǐng)域遠(yuǎn)未實(shí)現(xiàn)民主化。此外,RecSys 作為一個(gè)領(lǐng)域,很大程度上是由稀疏和/或順序事件上的學(xué)習(xí)模型定義的,這與 AI 的其他領(lǐng)域有很大的重疊。許多技術(shù)是可轉(zhuǎn)移的,特別是對(duì)于擴(kuò)展和分布式執(zhí)行。全球?qū)θ斯ぶ悄艿暮艽笠徊糠滞顿Y用于開(kāi)發(fā)這些 RecSys 技術(shù),因此封鎖它們會(huì)阻止這項(xiàng)投資流入更廣泛的人工智能領(lǐng)域。


          到 2020 年年中,PyTorch 團(tuán)隊(duì)收到了大量反饋,稱(chēng)開(kāi)源 PyTorch 生態(tài)系統(tǒng)中還沒(méi)有大規(guī)模的生產(chǎn)質(zhì)量推薦系統(tǒng)包。當(dāng)我們?cè)噲D找到一個(gè)好的答案時(shí),Meta 的一組工程師希望將 Meta 的生產(chǎn) RecSys 堆棧作為 PyTorch 域庫(kù)貢獻(xiàn)出來(lái),并堅(jiān)定地致力于圍繞它發(fā)展一個(gè)生態(tài)系統(tǒng)。這似乎是一個(gè)讓 RecSys 領(lǐng)域的研究人員和公司受益的好主意。因此,從 Meta 的堆棧開(kāi)始,我們開(kāi)始模塊化和設(shè)計(jì)一個(gè)完全可擴(kuò)展的代碼庫(kù),該代碼庫(kù)適用于各種推薦用例。我們的目標(biāo)是從 Meta 的軟件堆棧中提取關(guān)鍵構(gòu)建塊,以同時(shí)實(shí)現(xiàn)創(chuàng)造性探索和擴(kuò)展。經(jīng)過(guò)近兩年的跨 Meta 基準(zhǔn)測(cè)試、遷移和測(cè)試,我們很高興終于與 RecSys 社區(qū)一起踏上了這一旅程。我們希望這個(gè)軟件包在 RecSys 行業(yè)開(kāi)啟對(duì)話(huà)和協(xié)作,從 Meta 作為第一個(gè)相當(dāng)大的貢獻(xiàn)者開(kāi)始。


          TorchRec介紹


          TorchRec 包括一個(gè)可擴(kuò)展的低級(jí)建?;A(chǔ)以及豐富的電池模塊。我們最初的目標(biāo)是“雙塔”([1],[2])架構(gòu),這些架構(gòu)具有單獨(dú)的子模塊來(lái)學(xué)習(xí)候選項(xiàng)目和查詢(xún)或上下文的表示。輸入信號(hào)可以是浮點(diǎn)“密集”特征或需要訓(xùn)練大型嵌入表的高基數(shù)分類(lèi)“稀疏”特征的混合。此類(lèi)架構(gòu)的有效訓(xùn)練涉及將復(fù)制計(jì)算的“密集”部分的數(shù)據(jù)并行性和將大型嵌入表分區(qū)到多個(gè)節(jié)點(diǎn)的模型并行性相結(jié)合。


          特別地,這個(gè)庫(kù)包含:

          • 建模原語(yǔ),例如嵌入包和鋸齒張量,可以使用混合數(shù)據(jù)并行和模型并行輕松創(chuàng)作大型、高性能的多設(shè)備/多節(jié)點(diǎn)模型。

          • 由 FBGEMM 提供支持的優(yōu)化 RecSys 內(nèi)核,包括對(duì)稀疏和量化操作的支持。

          • 一個(gè)分片器,它可以使用各種不同的策略對(duì)嵌入表進(jìn)行分區(qū),包括數(shù)據(jù)并行、逐表、逐行、逐表行和逐列分片。

          • 可以自動(dòng)為模型生成優(yōu)化的分片計(jì)劃的規(guī)劃器。

          • 流水線(xiàn)以重疊數(shù)據(jù)加載設(shè)備傳輸(復(fù)制到 GPU)、設(shè)備間通信(input_dist)和計(jì)算(前向、后向)以提高性能。

          • GPU 推理支持。

          • RecSys 的通用模塊,例如模型和公共數(shù)據(jù)集(Criteo 和 Movielens)


          為了展示此工具的靈活性,讓我們看一下從我們的 DLRM 事件預(yù)測(cè)示例中提取的以下代碼片段:


          #?Specify?the?sparse?embedding?layers
          eb_configs?=?[
          ???EmbeddingBagConfig(
          ???????name=f"t_{feature_name}",
          ???????embedding_dim=64,
          ???????num_embeddings=100_000,
          ???????feature_names=[feature_name],
          ???)
          ???for?feature_idx,?feature_name?in?enumerate(DEFAULT_CAT_NAMES)
          ]

          #?Import?and?instantiate?the?model?with?the?embedding?configuration
          #?The?"meta"?device?indicates?lazy?instantiation,?with?no?memory?allocated
          train_model?=?DLRM(
          ???embedding_bag_collection=EmbeddingBagCollection(
          ???????tables=eb_configs,?device=torch.device("meta")
          ???),
          ???dense_in_features=len(DEFAULT_INT_NAMES),
          ???dense_arch_layer_sizes=[512,?256,?64],
          ???over_arch_layer_sizes=[512,?512,?256,?1],
          ???dense_device=device,
          )

          #?Distribute?the?model?over?many?devices,?just?as?one?would?with?DDP.
          model?=?DistributedModelParallel(
          ???module=train_model,
          ???device=device,
          )

          optimizer?=?torch.optim.SGD(params,?lr=args.learning_rate)
          #?Optimize?the?model?in?a?standard?loop?just?as?you?would?any?other?model!
          #?Or,?you?can?use?the?pipeliner?to?synchronize?communication?and?compute
          for?epoch?in?range(epochs):
          ???#?Train


          擴(kuò)展性能


          TorchRec 擁有最先進(jìn)的大規(guī)模推薦 AI 基礎(chǔ)設(shè)施,為 Meta 的一些最大模型提供支持。它用于訓(xùn)練一個(gè) 1.25 萬(wàn)億參數(shù)的模型,于 1 月投入生產(chǎn),還有一個(gè)即將投入生產(chǎn)的 3 萬(wàn)億參數(shù)模型。這應(yīng)該很好地表明 PyTorch 完全有能力解決業(yè)界最大規(guī)模的 RecSys 問(wèn)題。我們從社區(qū)中的許多人那里聽(tīng)說(shuō),分片嵌入是一個(gè)痛點(diǎn)。TorchRec 清楚地解決了這個(gè)問(wèn)題。不幸的是,使用公共數(shù)據(jù)集提供大規(guī)?;鶞?zhǔn)測(cè)試具有挑戰(zhàn)性,因?yàn)榇蠖鄶?shù)開(kāi)源基準(zhǔn)測(cè)試太小而無(wú)法大規(guī)模顯示性能。


          展望


          開(kāi)源和開(kāi)放技術(shù)具有普遍的好處。Meta 正在為 PyTorch 社區(qū)播種最先進(jìn)的 RecSys 軟件包,希望許多人加入到構(gòu)建它的過(guò)程中,支持新的研究并幫助許多公司。TorchRec 背后的團(tuán)隊(duì)計(jì)劃無(wú)限期地繼續(xù)這個(gè)計(jì)劃,建立 TorchRec 以滿(mǎn)足 RecSys 社區(qū)的需求,歡迎新的貢獻(xiàn)者,并繼續(xù)推動(dòng) Meta 的個(gè)性化。我們很高興開(kāi)始這一旅程,并期待貢獻(xiàn)、想法和反饋!



          參考

          [1] Sampling-Bias-Corrected Neural Modeling for Large Corpus Item Recommendations

          [2] DLRM: An advanced, open source deep learning recommendation model

          本文翻譯自PyTorch blog:https://pytorch.org/blog/introducing-torchrec/



          推薦閱讀

          深入理解生成模型VAE

          DropBlock的原理和實(shí)現(xiàn)

          SOTA模型Swin Transformer是如何煉成的!

          有碼有顏!你要的生成模型VQ-VAE來(lái)了!

          集成YYDS!讓你的模型更快更準(zhǔn)!

          輔助模塊加速收斂,精度大幅提升!移動(dòng)端實(shí)時(shí)的NanoDet-Plus來(lái)了!

          SimMIM:一種更簡(jiǎn)單的MIM方法

          SSD的torchvision版本實(shí)現(xiàn)詳解


          機(jī)器學(xué)習(xí)算法工程師


          ? ??? ? ? ? ? ? ? ? ? ? ????????? ??一個(gè)用心的公眾號(hào)


          瀏覽 61
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91人妻无码精品一区二区 | 青娱乐极品视觉盛宴国产视频 | 暴操逼 | 额去撸在线 | 国产中文网 |