在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

企業中的推薦系統包括哪幾個部分

Tensorflowers ? 來源:TensorFlow ? 作者:黃鴻波 ? 2021-09-24 14:49 ? 次閱讀

隨著互聯網的發展和人工智能的進步,各個廠家都開始針對性的向用戶推薦自己的內容,這些內容包括了文章、視頻商品以及一些其他的希望被用戶看到的內容了,能夠讓用戶有好的內容的體驗,更好的捕捉到用戶所需要的內容,這背后的成功都歸功于推薦系統。

企業中的推薦系統包括哪幾個部分

上面是企業中一個常見的推薦系統的架構圖,一般來講,一個完整的推薦系統企業級的架構應該包括數據的存儲、業務模型、服務層以及上層對于用戶來講可見的 App 或者一些其他可視化是產品。

數據存儲

對于數據存儲來講,幾乎是每一個完整的推薦系統必不可少的一個部分,所有的用戶數據、候選內容的所有的信息、日志系統以及緩存等,全都屬于數據存儲的一部分,后續我們要做的與用戶相關的畫像、內容畫像以及其他需要提取的特征信息也全都來自于數據系統。

一般來講,數據系統是一個很大的概念,它不僅限于某一個數據庫,或者某一個數據處理邏輯,而是一整套與數據相關的系統,用于存儲用戶信息的關系型數據庫、用戶存儲商品信息的數據模型、用于進行大數據運算的數據湖和數據集群等,我們把這些處理數據的系統整合,形成了推薦系統的數據存儲部分。

業務模型

業務模型是推薦系統的核心。推薦系統的效果好壞可以說 90% 以上是由于業務模型決定的。在一個推薦系統中,數據系統一般包含三個部分,數據邏輯層、召回層和排序層。

一般來講,我們當從用戶進入到我們的系統的時候,推薦系統就已經在發揮作用了。首先,我們會將用戶的數據通過各種數據處理、深度學習或者機器學習的方法進行數據的處理,這一部分的處理一般包括類似于用戶日志采集,分詞、內容畫像、用戶畫像等,這里可用使用大量的深度學習方式來做。

接下來,我們可以使用這些畫像和特征來進行針對于特定用戶的內容召回,這里的召回實際上就是通過各種方法來找到用戶可能感興趣的內容。

當找到用戶可能感興趣的內容之后,我們一般會對這些內容進行進一步的篩選和排序,找到在這些內容中,用戶最感興趣的前面的幾個或者幾十個內容分別是什么,這一步,一般我們稱之為排序層。

最后,我們可以將排序后的結果輸出給用戶進行界面的展示,從而達到最后的推薦效果。

使用 TensorFlow Serving 賦能

目前來講,無論是數據邏輯、召回層還是排序層,都可以使用很多深度學習的方法來做。例如數據邏輯中有關命名實體識別的部分可以使用 TensorFlow 來實現,召回層可以使用 TensorFlow 來實現 YoutubeDNN 模型并部署到生產環境中,在排序層我們也可以使用 xDeepFM 等深度學習方法來實現。

那么對于這些深度學習模型來講,最好的模型上線和部署方式莫過于使用 TensorFlow Serving 進行部署了。

由于 TensorFlow Serving 本身就是 Google 自家的產品,也是 TensorFlow 大家族的一部分,因此,使用 TensorFlow Serving 對 TensorFlow 的模型進行部署無疑是最好的選擇。

在我所在的企業中,幾乎所有的深度學習所涉及到的模型都會被轉換成 TensorFlow Serving 的模式進行部署。在使用 TensorFlow Serving 進行模型部署的時候,實際上會有很多個 tricks。

例如,在實際的操作當中,很多人會發現,自己也把模型轉換成了 PB 模型,也能自己使用代碼的方式加載這個 pb 模型進行推理,但是,放到 TensorFlow Serving 上之后就無法進行推理,然后還會報各種各樣莫名其妙的錯誤。一般來講,造成這個問題的原因有以下幾種。

1. pb 模型轉換的類型錯誤

pb 模型轉換的類型錯誤是大部分 TensorFlow 開發人員常見的錯誤之一,一般來講,TensorFlow 可以轉換的 pb 文件大致可以分成兩種,一種是直接轉換成一個 pb 文件,這種文件只是一個以模型名稱命名,以 .pb 為格式的單個文件,這個文件一般使用在終端的推理中,比如移動端的推理,或者是給到 C++ 等語言進行模型的調用,但是如果把它直接使用 TensorFlow Serving 進行部署的話,往往就會出錯。

實際上,如果想使用 TensorFlow Serving 進行部署,那么我們就需要將我們的模型轉換成 Saved Model 格式的 pb 文件。Saved Model 格式的 pb 文件與一般的 pb 文件相比不同之處在于,Saved Model 格式的 pb 文件一般是凍結圖文件,它可以更方便的部署。一般來講,使用 Saved Model 格式進行打包之后,除了模型文件本身,會生成 variables 目錄,其中 pb 文件是模型的定義文件,variables 目錄下存放的是模型的各個推理所需要的參數。

因此,如果你生成了一個 pb 文件在本地可以推理,但是放在 TensorFlow Serving 中部署的時候不能推理的話,首先看看是不是這里的問題。

2. 在 TensorFlow Serving 中推理的時候沒有加入版本標識

有些同學在使用 TensorFlow Serving 的時候,也能夠轉換成 Saved Model 格式的 pb 文件了,而且在本地驗證也沒有問題了,但是放到 TensorFlow Serving 的相關服務上就會報錯,總是提示找不到版本,一般來講,這種問題是你導出的模型中沒有添加模型的版本號所導致的,我們在 TensorFlow Serving 中進行模型部署的時候,往往都需要在最外層定義一個模型的版本號,而 TensorFlow Serving 也會通過判斷模型的版本號來進行模型的更新。

3. 模型沒有標明正確的輸入輸出

有些同學在模型轉換完之后,發現無法在推理環境中運行,一直提示輸入的 tensor 不正確,這種情況下一般來講是在對模型進行導出時,沒有對輸入輸出的參數進行命名,從而使得模型使用了標準的命名,導致無法進行推理。

TensorFlow Serving 的性能優化

之前很多人在使用 TensorFlow Serving 在做模型部署的時候,都跟我說它的性能不好,部署 Albert tiny 模型的 QPS 連 50 都不到,還不如使用傳統的部署方法,當我跟大家說,我使用 TensorFlow Serving 部署時,在 CPU 服務器上 QPS 能上到 2000 多,在 GPU 服務器上 QPS 甚至能達到 5000 以上,那么,為什么差異會這么大呢?

實際上,如果按照正常的部署方式,沒有帶任何參數的話,它的并發確實會很低,但是實際上,TensorFlow Serving 給我們提供了針對于高并發的部署方案,在 http://tensorflow.google.cn/tfx/serving/serving_config 中,有一個叫做 Batching Configuration 的配置的示例:

max_batch_size { value: 128 }

batch_timeout_micros { value: 0 }

max_enqueued_batches { value: 1000000 }

num_batch_threads { value: 8 }

這個示例,很大程度上決定了并發的性能。一般來講,在使用 CPU 部署的時候,我們可以將 num_batch_threads 設置為 CPU 核數的 2 倍加 1,例如我們的 CPU 是 48 核,這里可以設置為 97;當我們使用 GPU 進行部署的時候,這里面的 num_batch_threads 最好設置為 GPU 的個數。這樣的設置,能夠最大的程度上利用到我們的 CPU 和 GPU,使得并發提高。

在部署方面,TensorFlow Serving 給我們提供了 2 種大類別的 docker,一個是 GPU 的一個是 CPU 的,這個在做 docker 部署的時候一定要注意區分,否則很容易導致部署之后的性能低;另外,在 TensorFlow Serving 所提供的 docker 中,又可以分為 devel 版本和正常版本,其中 devel 里面帶有一些內置的開發環境,一般用于調試用,在正式環境中,我們更建議使用正常的 docker 版本。

實際上,在工業界,將 TensorFlow 與推薦系統結合的例子很多,我們可以利用好 TensorFlow Serving 做好模型的推理,從而更好的提供相關的服務。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7249

    瀏覽量

    91314
  • 人工智能
    +關注

    關注

    1805

    文章

    48843

    瀏覽量

    247387
  • 模型
    +關注

    關注

    1

    文章

    3500

    瀏覽量

    50121
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    水利大壩安全監測有哪幾個方面

    大壩安全監測主要是通過相關數據的采集、分析、評估等步驟實現對大壩的安全監測。一般情況下,大壩安全監測系統主要由四部分組成,測量傳感器,測量控制單元,網絡通信連接及大壩安全監測中心組成。水利大壩主要
    的頭像 發表于 03-28 10:13 ?328次閱讀
    水利大壩安全監測有<b class='flag-5'>哪幾個</b>方面

    ADS9234R這個AD的寄存器如何配置,需要用到哪幾個引腳?

    請問一下,ADS9234R這個AD的寄存器如何配置,需要用到哪幾個引腳?時序是怎樣的?與復位信號有什么關系?感覺官方文檔對寄存器配置這一塊描述比較少,我用FPGA與ADS9234R做接口,寫入寄出器參數,讀出總是不對。
    發表于 11-15 07:48

    選擇電網模擬器廠家考慮哪幾個方面?

    在選擇電網模擬器廠家時,您可以考慮以下幾個方面: 產品質量 :了解廠家的產品質量,包括產品的性能、穩定性和可靠性。可以通過查看產品的技術參數、用戶評價和第三方評測報告來評估。 技術支持 :選擇一家
    的頭像 發表于 11-12 16:56 ?612次閱讀

    網管系統應該包括哪幾大功能

    網管系統,即網絡管理系統,是用于監控和管理網絡設備的一套軟件和硬件的集合。它能夠確保網絡的穩定性、安全性和高效性。一個完整的網管系統應該包括以下幾個
    的頭像 發表于 10-17 15:07 ?1489次閱讀

    正弦波產生電路包括哪幾個部分

    正弦波產生電路是一種電子電路,它能夠產生具有正弦波形的電壓或電流信號。這種電路在電子學、通信、音頻處理等領域有著廣泛的應用。正弦波產生電路的設計和實現涉及到多個部分包括振蕩器、放大器、濾波器、電源
    的頭像 發表于 10-09 16:22 ?1142次閱讀

    用TPA3136典型應用電路波形異常,從哪幾個方面尋找問題?

    是這樣的,波形異常,展開后發現是和功放開關頻率一樣的噪聲疊加在上面的,請問我可以從哪幾個方面尋找問題,謝謝!
    發表于 10-09 09:01

    噪聲發生器主要功能是什么?其主要構成包括哪幾個部分?

    。 噪聲發生器的主要功能: 信號模擬 :模擬自然環境的噪聲,如風噪聲、雨噪聲、交通噪聲等。 干擾測試 :在通信系統測試信號在噪聲干擾下的傳輸性能。 聲學研究 :用于聲學研究,如聲波傳播、聲音識別等。 醫療應用 :在
    的頭像 發表于 09-25 15:41 ?1357次閱讀

    GUTOR備品備件主要包括哪幾個組成部分

    GUTOR備品備件主要包括哪幾個組成部分
    發表于 09-12 17:19

    labview的應用程序包括哪幾個部分

    LabVIEW(Laboratory Virtual Instrument Engineering Workbench)的應用程序主要由以下幾個部分組成: 前面板(Front Panel) : 功能
    的頭像 發表于 09-04 16:06 ?1129次閱讀

    工藝仿真可以分為哪幾個方面?

    工藝仿真是一種利用計算機技術和仿真軟件對生產工藝過程進行模擬和分析的方法。它可以幫助企業在生產前對生產工藝進行優化和改進,提高生產效率和產品質量,降低生產成本和風險。 一、工藝仿真的定義 工藝仿真
    的頭像 發表于 08-22 09:17 ?2233次閱讀

    工業自動化控制系統是由哪幾個環節組成的?

    。 ? ? ?工業自動化控制系統由控制器和被控對象組成。但要實現復雜的控制任務,一個典型的自動控制系統通常還應當包括:定值元件、執行元件、測量變送元件和比較元件。那么,工業自動化控制系統
    的頭像 發表于 08-15 08:55 ?1055次閱讀

    TAS2505-Q1的MCLK, WCLK, DIN, BCLK這幾個PIN,對應的mcu這邊的哪幾個pin?

    1.請問參考設計的的耳機接口HPOUT 及 IOVSS,在PIN描述沒有這兩個PIN呢? 2.請問2505的MCLK, WCLK, DIN, BCLK這幾個PIN,對應的mcu這邊的
    發表于 08-08 08:28

    can數據幀有哪幾個域組成

    CAN(控制器局域網絡)是一種基于消息傳遞的通信協議,廣泛應用于汽車、工業自動化和嵌入式系統等領域。CAN協議的數據幀是用于傳輸信息的基本單位。 1. CAN數據幀概述 CAN數據幀是一種用于在
    的頭像 發表于 07-24 15:14 ?1813次閱讀

    IGBT有哪幾個工作區

    IGBT(絕緣柵雙極型晶體管)的工作區主要涉及其在不同工作狀態下的安全運行區域,這些區域定義了IGBT在特定條件下的電壓、電流及功率限制,以確保其穩定運行并防止損壞。
    的頭像 發表于 07-24 10:52 ?2740次閱讀

    數控系統哪幾部分組成

    數控系統是現代制造業不可或缺的一部分,它通過計算機控制機床,實現高精度、高效率的加工。數控系統由多個部分組成,下面我們將詳細介紹數控
    的頭像 發表于 07-01 11:02 ?3657次閱讀
    主站蜘蛛池模板: 成 人在线观看视频网站 | 国产成人影视 | 亚洲视频三区 | 亚洲人的天堂男人爽爽爽 | 欧美色图首页 | 色综合久久天天综合观看 | 日本www在线观看 | 国产色妞妞在线视频免费播放 | 欧美日韩一区二区三区视频在线观看 | 五月婷激情 | 就去色播| 亚洲综合亚洲综合网成人 | 黄 色 大 片 网站 | 伊人网在线免费视频 | 欧美色a电影精品aaaa | 性xxxxfreexxxxx国产 | 男人操女人视频网站 | 欧美性猛交xxxx乱大交中文 | 日本一本一道久久香蕉免费 | 欧美伊人久久综合网 | 啊用力太猛了啊好深视频免费 | 日韩在线一区视频 | 天天擦天天干 | 国产69久久精品成人看 | 精品在线视频一区 | 91网站网站网站在线 | 日韩午夜在线视频不卡片 | 国产一级毛片外aaaa | 久久久免费视频观看 | 一区免费 | 国产亚洲新品一区二区 | 国产美女久久久久 | 操美女免费视频 | 一区二区三区四区在线观看视频 | 天天插天天色 | 国产在线播放成人免费 | 欧美精品一区在线看 | 日日摸夜夜爽夜夜爽出水 | 免费观看欧美一级高清 | 五月婷婷在线视频观看 | 国产精选经典三级小泽玛利亚 |