日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

快速導(dǎo)覽PAI-Rec引擎的功能

本文提供 docker-compose 文件快速搭建基于 PAI-Rec 引擎的推薦服務(wù),可以快速了解 PAI-Rec 引擎提供的服務(wù)。

前提

需要 docker 和 docker-compose 來運(yùn)行服務(wù)。

請參見docker安裝docker-compose安裝

從本文學(xué)到什么

1如何測試引擎提供的接口服務(wù)

2如何基于 PAI-Rec 快速搭建推薦服務(wù),包括召回、曝光過濾、特征加載等流程

3如何調(diào)試推薦接口以及查看服務(wù)日志

運(yùn)行服務(wù)

請先下載相關(guān)文件

運(yùn)行服務(wù)

# 解壓文件
tar zxvf pairec-demo-test.tar.gz
cd pairec-demo-test

# 拉起服務(wù)
docker-compose -f docker-compose.yaml up -d

可以通過 docker ps 可以看到

image.png

服務(wù)提供了 8000 可供訪問,引擎本身提供了 /api/rec/feed 接口可供訪問。 接口的具體調(diào)用參見PAI-Rec-doc快速開始中的接口測試部分

測試服務(wù)

測試接口

curl -v http://127.0.0.1:8000/api/rec/feed -d '{"uid":"1000000077", "size":10, "scene_id":"feed"}'

如果看服務(wù)的詳細(xì)日志,可以

docker logs -f pairec

如果查看更詳細(xì)的日志,比如 user 、item 的特征加載是否正常,模型得分是否符合預(yù)期,可以加上 debug 參數(shù)。 這樣調(diào)用

curl -v http://127.0.0.1:8000/api/rec/feed -d '{"uid":"1000000077", "size":10, "scene_id":"feed", "debug":true}'

停止服務(wù)

docker-compose -f docker-compose.yaml down

運(yùn)行原理

為了描述簡單,本文使用MySQL作為存儲(chǔ)引擎。在正式的服務(wù)中,我們更多的使用分布式的存儲(chǔ)引擎,例如 redis、hologres、tablestore(表格存儲(chǔ))、igraph 等。mysql 如何運(yùn)行的可以參考 docker-compose.yaml 文件。

整體的配置細(xì)節(jié)可以參考 config.json  文件。

表數(shù)據(jù)

pairec_demo_test.sql 提供了創(chuàng)建表以及初始化數(shù)據(jù)

  • u2i_recall:召回?cái)?shù)據(jù),使用了 U2I 召回

  • user_expose_history:曝光過濾表。接口返回的數(shù)據(jù)會(huì)寫入到曝光表中,下次調(diào)用接口時(shí),不會(huì)重復(fù)返回已曝光的數(shù)據(jù)

  • user_feature:user特征表。 加載user特征供排序模型用

如果查看表的具體結(jié)構(gòu)或者數(shù)據(jù)

# 登錄到 mysql docker 容器中 
docker exec -it pairec-mysql bash
# 登錄到 mysql 
mysql -uroot -ptest
# 切換數(shù)據(jù)庫 
use pairec_demo_test
# 查看表
show tables;

數(shù)據(jù)源配置

pairec-mysql 是自定義的數(shù)據(jù)源名稱

"MysqlConfs": {
  "pairec-mysql" :{
	   "DSN": "root:test@tcp(db:3306)/pairec_demo_test?multiStatements=true"
   }
}

召回配置

"RecallConfs": [
   {
     "Name": "u2i_recall",
     "RecallType": "UserCustomRecall",
     "RecallCount": 500,
     "DaoConf" :{
       "AdapterType": "mysql",
        "MysqlName": "pairec-mysql",
        "MysqlTable": "u2i_recall"
     }
   }
]

  • feed 是我們定義的場景名稱

  • RecallNames 是多路召回,目前只配置了 u2i_recall

"SceneConfs": {
   "feed": {
      "default": {
         "RecallNames": ["u2i_recall"]
      }
   }
}

過濾配置

這里我們配置了曝光過濾。

曝光過濾和召回配置類似, FilterConfs 是具體的配置, FilterNames 是場景對(duì)過濾配置的引用。 這里沒有具體的場景, default 是對(duì)所有場景有效。

"FilterConfs": [
      {
         "Name":"User2ItemExposureFilter",
         "FilterType":"User2ItemExposureFilter",
         "WriteLog": true,
         "DaoConf":{
            "Adapter":"User2ItemExposureMysqlDao",
             "AdapterType":"mysql",
             "MysqlName": "pairec-mysql",
             "MysqlTable": "user_expose_history"
         }
      }
],

"FilterNames": {
	  "default": [
		   "UniqueFilter",
       "User2ItemExposureFilter"
	  ]
}

如果查看曝光過濾是否生效,可以多次調(diào)用接口,接口返回的數(shù)據(jù)是不同的。

curl -v http://127.0.0.1:8000/api/rec/feed -d '{"uid":"1000000077", "size":10, "scene_id":"feed"}'

同時(shí)可以觀察服務(wù)日志, 可以看到 requestId=d440c298-3890-4a6c-91e3-9654c83cc72a event=User2ItemExposureFilter count=213 cost=5。 count 記錄了經(jīng)過曝光過濾之后的 item 數(shù)量。 每次調(diào)用服務(wù), count 都應(yīng)該減少。

特征加載

當(dāng)我們拿到 item 數(shù)據(jù)后,后續(xù)是對(duì) item 進(jìn)行模型打分,打分之前需要加載 user / item 特征。 PAI-Rec 可以高性能的加載特征數(shù)據(jù),而只需要配置即可。具體的配置加載可以參考特征配置

"FeatureConfs": {
   "feed": {
      "AsynLoadFeature" : true,
      "FeatureLoadConfs": [
       {
          "FeatureDaoConf": {
             "AdapterType": "mysql",
             "MysqlName": "pairec-mysql",
             "FeatureKey": "user:uid",
             "UserFeatureKeyName": "userid",
             "MysqlTable": "user_feature",
             "UserSelectFields":"*",
             "FeatureStore":"user"
          },
          "Features" :[]
       }
      ]
   }
}

接下來做什么

  1. 部署PAI-Rec引擎服務(wù)查看如何使用官方鏡像部署引擎服務(wù)。

  2. 快速創(chuàng)建項(xiàng)目了解如何自定義開發(fā)引擎代碼,編譯打包項(xiàng)目。

  3. 引擎配置單了解更詳細(xì)的配置說明。