一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

企業(yè)中的推薦系統(tǒng)包括哪幾個部分

Tensorflowers ? 來源:TensorFlow ? 作者:黃鴻波 ? 2021-09-24 14:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

企業(yè)中的推薦系統(tǒng)包括哪幾個部分

上面是企業(yè)中一個常見的推薦系統(tǒng)的架構(gòu)圖,一般來講,一個完整的推薦系統(tǒng)企業(yè)級的架構(gòu)應(yīng)該包括數(shù)據(jù)的存儲、業(yè)務(wù)模型、服務(wù)層以及上層對于用戶來講可見的 App 或者一些其他可視化是產(chǎn)品。

數(shù)據(jù)存儲

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

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

業(yè)務(wù)模型

業(yè)務(wù)模型是推薦系統(tǒng)的核心。推薦系統(tǒng)的效果好壞可以說 90% 以上是由于業(yè)務(wù)模型決定的。在一個推薦系統(tǒng)中,數(shù)據(jù)系統(tǒng)一般包含三個部分,數(shù)據(jù)邏輯層、召回層和排序?qū)印?/p>

一般來講,我們當(dāng)從用戶進(jìn)入到我們的系統(tǒng)的時候,推薦系統(tǒng)就已經(jīng)在發(fā)揮作用了。首先,我們會將用戶的數(shù)據(jù)通過各種數(shù)據(jù)處理、深度學(xué)習(xí)或者機(jī)器學(xué)習(xí)的方法進(jìn)行數(shù)據(jù)的處理,這一部分的處理一般包括類似于用戶日志采集,分詞、內(nèi)容畫像、用戶畫像等,這里可用使用大量的深度學(xué)習(xí)方式來做。

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

當(dāng)找到用戶可能感興趣的內(nèi)容之后,我們一般會對這些內(nèi)容進(jìn)行進(jìn)一步的篩選和排序,找到在這些內(nèi)容中,用戶最感興趣的前面的幾個或者幾十個內(nèi)容分別是什么,這一步,一般我們稱之為排序?qū)印?/p>

最后,我們可以將排序后的結(jié)果輸出給用戶進(jìn)行界面的展示,從而達(dá)到最后的推薦效果。

使用 TensorFlow Serving 賦能

目前來講,無論是數(shù)據(jù)邏輯、召回層還是排序?qū)樱伎梢允褂煤芏嗌疃葘W(xué)習(xí)的方法來做。例如數(shù)據(jù)邏輯中有關(guān)命名實體識別的部分可以使用 TensorFlow 來實現(xiàn),召回層可以使用 TensorFlow 來實現(xiàn) YoutubeDNN 模型并部署到生產(chǎn)環(huán)境中,在排序?qū)游覀円部梢允褂?xDeepFM 等深度學(xué)習(xí)方法來實現(xiàn)。

那么對于這些深度學(xué)習(xí)模型來講,最好的模型上線和部署方式莫過于使用 TensorFlow Serving 進(jìn)行部署了。

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

在我所在的企業(yè)中,幾乎所有的深度學(xué)習(xí)所涉及到的模型都會被轉(zhuǎn)換成 TensorFlow Serving 的模式進(jìn)行部署。在使用 TensorFlow Serving 進(jìn)行模型部署的時候,實際上會有很多個 tricks。

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

1. pb 模型轉(zhuǎn)換的類型錯誤

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

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

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

2. 在 TensorFlow Serving 中推理的時候沒有加入版本標(biāo)識

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

3. 模型沒有標(biāo)明正確的輸入輸出

有些同學(xué)在模型轉(zhuǎn)換完之后,發(fā)現(xiàn)無法在推理環(huán)境中運(yùn)行,一直提示輸入的 tensor 不正確,這種情況下一般來講是在對模型進(jìn)行導(dǎo)出時,沒有對輸入輸出的參數(shù)進(jìn)行命名,從而使得模型使用了標(biāo)準(zhǔn)的命名,導(dǎo)致無法進(jìn)行推理。

TensorFlow Serving 的性能優(yōu)化

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

實際上,如果按照正常的部署方式,沒有帶任何參數(shù)的話,它的并發(fā)確實會很低,但是實際上,TensorFlow Serving 給我們提供了針對于高并發(fā)的部署方案,在 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 }

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

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

實際上,在工業(yè)界,將 TensorFlow 與推薦系統(tǒng)結(jié)合的例子很多,我們可以利用好 TensorFlow Serving 做好模型的推理,從而更好的提供相關(guān)的服務(wù)。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7256

    瀏覽量

    91880
  • 人工智能
    +關(guān)注

    關(guān)注

    1806

    文章

    49028

    瀏覽量

    249529
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3521

    瀏覽量

    50427
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    水利大壩安全監(jiān)測有哪幾個方面

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

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

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

    選擇電網(wǎng)模擬器廠家考慮哪幾個方面?

    在選擇電網(wǎng)模擬器廠家時,您可以考慮以下幾個方面: 產(chǎn)品質(zhì)量 :了解廠家的產(chǎn)品質(zhì)量,包括產(chǎn)品的性能、穩(wěn)定性和可靠性??梢酝ㄟ^查看產(chǎn)品的技術(shù)參數(shù)、用戶評價和第三方評測報告來評估。 技術(shù)支持 :選擇一家
    的頭像 發(fā)表于 11-12 16:56 ?663次閱讀

    網(wǎng)管系統(tǒng)應(yīng)該包括哪幾大功能

    網(wǎng)管系統(tǒng),即網(wǎng)絡(luò)管理系統(tǒng),是用于監(jiān)控和管理網(wǎng)絡(luò)設(shè)備的一套軟件和硬件的集合。它能夠確保網(wǎng)絡(luò)的穩(wěn)定性、安全性和高效性。一個完整的網(wǎng)管系統(tǒng)應(yīng)該包括以下幾個
    的頭像 發(fā)表于 10-17 15:07 ?1622次閱讀

    正弦波產(chǎn)生電路包括哪幾個部分

    正弦波產(chǎn)生電路是一種電子電路,它能夠產(chǎn)生具有正弦波形的電壓或電流信號。這種電路在電子學(xué)、通信、音頻處理等領(lǐng)域有著廣泛的應(yīng)用。正弦波產(chǎn)生電路的設(shè)計和實現(xiàn)涉及到多個部分,包括振蕩器、放大器、濾波器、電源
    的頭像 發(fā)表于 10-09 16:22 ?1224次閱讀

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

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

    噪聲發(fā)生器主要功能是什么?其主要構(gòu)成包括哪幾個部分?

    。 噪聲發(fā)生器的主要功能: 信號模擬 :模擬自然環(huán)境的噪聲,如風(fēng)噪聲、雨噪聲、交通噪聲等。 干擾測試 :在通信系統(tǒng)測試信號在噪聲干擾下的傳輸性能。 聲學(xué)研究 :用于聲學(xué)研究,如聲波傳播、聲音識別等。 醫(yī)療應(yīng)用 :在
    的頭像 發(fā)表于 09-25 15:41 ?1440次閱讀

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

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

    labview的應(yīng)用程序包括哪幾個部分

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

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

    工藝仿真是一種利用計算機(jī)技術(shù)和仿真軟件對生產(chǎn)工藝過程進(jìn)行模擬和分析的方法。它可以幫助企業(yè)在生產(chǎn)前對生產(chǎn)工藝進(jìn)行優(yōu)化和改進(jìn),提高生產(chǎn)效率和產(chǎn)品質(zhì)量,降低生產(chǎn)成本和風(fēng)險。 一、工藝仿真的定義 工藝仿真
    的頭像 發(fā)表于 08-22 09:17 ?2458次閱讀

    工業(yè)自動化控制系統(tǒng)是由哪幾個環(huán)節(jié)組成的?

    。 ? ? ?工業(yè)自動化控制系統(tǒng)由控制器和被控對象組成。但要實現(xiàn)復(fù)雜的控制任務(wù),一個典型的自動控制系統(tǒng)通常還應(yīng)當(dāng)包括:定值元件、執(zhí)行元件、測量變送元件和比較元件。那么,工業(yè)自動化控制系統(tǒng)
    的頭像 發(fā)表于 08-15 08:55 ?1119次閱讀

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

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

    使用運(yùn)算放大器應(yīng)注意哪幾個問題

    以下是使用運(yùn)算放大器時應(yīng)注意的幾個關(guān)鍵問題: 運(yùn)算放大器的基本原理 : 運(yùn)算放大器是一種高增益、多用途的電子設(shè)備,廣泛應(yīng)用于信號放大、濾波、積分和微分等電路。 了解其基本結(jié)構(gòu),包括輸入級、增益級
    的頭像 發(fā)表于 08-06 14:26 ?969次閱讀

    can數(shù)據(jù)幀有哪幾個域組成

    CAN(控制器局域網(wǎng)絡(luò))是一種基于消息傳遞的通信協(xié)議,廣泛應(yīng)用于汽車、工業(yè)自動化和嵌入式系統(tǒng)等領(lǐng)域。CAN協(xié)議的數(shù)據(jù)幀是用于傳輸信息的基本單位。 1. CAN數(shù)據(jù)幀概述 CAN數(shù)據(jù)幀是一種用于在
    的頭像 發(fā)表于 07-24 15:14 ?1914次閱讀

    IGBT有哪幾個工作區(qū)

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