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

如何把AB test系統接入到自有系統中

摘要

當用戶已有一個推薦/搜索/廣告引擎服務,暫時不想遷移到PAI-REC,但是又想用PAI-REC的AB實驗平臺的時候,可參考本文完成AB test的系統接入,包括實驗的配置、sdk調用、指標設置和計算等工作。我們提供了python和java兩種語言方便用戶把AB服務集成到自己的系統中。

1. 配置資源

1.1. 進入 PAI-REC平臺 首頁

  • 在 全鏈路服務 中,配置工作空間

image.png

配置說明:

  1. PAI平臺 & DataWorks平臺 & MaxCompute工作空間的查詢可通過 阿里云官網的云服務進入對應的平臺。

  2. 對象存儲OSS Bucket: 進入OSS平臺之后,可 先創建Bucket,再進行 PAI-REC平臺的配置


1.2. 進入 MaxCompute 服務

  • 在 項目管理中, 搜索 需要使用的項目。

image.png

報錯提示:如果沒有搜索到項目,可嘗試 切換到正確的地域,再進行操作。

image.png


  • 點擊管理項目,在相關的資源產品 MaxCompute 中,您需要給PAI-REC服務授予直接訪問、寫入這些資源的權限。

具體詳情可參考:PAI-REC授權

image.png


2. 創建場景

2.1. 進入 推薦場景 模塊

  • 創建場景 ----> 自定義場景名稱與場景介紹

image.png

場景名稱:推薦設置 能夠說明推薦場景的位置的名稱。

場景介紹:對場景名稱進行補充解釋。

流量配置說明:

  • 適用用戶:不完全使用 PAI-REC系統 推薦請求的用戶。

  • 使用場景:當用戶自己已有推薦系統的時候,在剛開始會把這個場景從切10%到20%的推薦流量給PAI-REC系統。當PAI-REC的推薦效果達到預期之后再逐漸增加流量。

  • 配置方式:

  • 假設用戶有自建的推薦流量 或 使用了第三方的推薦平臺,可以自定義 流量編碼 作為標識流量,后期與PAI-REC平臺的實驗效果進行對比。

  • 用戶需要在日志中埋點標記,建議記錄到exp_id字段,與PAI-REC的埋點要求一致。

image.png


3. 配置實驗

概述:根據業界常用a/b test方案設計了實驗室、實驗層、實驗組、實驗,實驗室包含了實驗層,實驗層包含實驗組,實驗組中包含了實驗。具體概念解釋可參考文檔:基本概念

注意:在開始進行實驗之前,需要與相關的產品或者項目經理 確認實驗要驗證的改動點。

以下是實驗配置參考。

3.1. 新建實驗室

  • 選擇對應的環境,與推薦場景

image.png

  • 點擊新建實驗室

image.png

  • 完成實驗室配置 & 配置說明

image.png

image.png

配置說明:

  • 實驗室類型

  • Base實驗室:必須有一個base實驗室,可以沒有非base實驗室。

  • 非Base實驗室:優先匹配非 base 實驗室。當base實驗室的模型比較簡單,而非base實驗室的模型比較復雜的時候,可以設置兩個實驗室。base實驗室也可以完全用一個熱門隨機兜底邏輯來實現。

  • 分桶方式

  • UID HASH :根據 uid 的 hash 值分桶

  • UID分桶 :根據 uid 的末尾數字分桶

  • 過濾條件分桶 :kv 表達式分桶,如 gender=man

  • 分桶數量:此實驗室分得的桶數,總數為100

  • 流量分配

  • 分得的桶的編號,可以設置為0-99

  • 分層:實驗層一般設置recall(召回)、filter(過濾)、coarse_rank(粗排)、rank(排序)等

  • 調試用戶:調試用戶可以不經過匹配,直接進入此實驗室

  • 手動輸入:可以輸入多個,以逗號分隔

  • 人群 ID:一組 uid 的集合,需要提前在【人群管理】中創建


3.2. 新建實驗組

在每一個分層下,可以設置多個實驗組。在每一個實驗組里,也可以設置多個實驗。

  • 原因:當有多個 算法工程師做召回或者排序實驗的時候,我們可以通過劃分實驗組,讓他們互相不會干涉。

image.png

image.png

配置說明:

  • AA實驗:

實際A/B實驗中可能出現抽樣不均的情況,結果可能會產生偏差,為了保證實驗數據的變化僅僅是實驗本身引起的,可以一次性抽取4,5組流量,選擇任意兩組不加策略空跑,監控核心指標數據,選取兩組數據最接近的進行實驗。用戶可根據需求確定。


image.png

配置說明:

  • 人群定向:在調試用戶選定的基礎下,再次對用戶進行篩選。用戶的選擇需要具有代表性,可以使用新老用戶交替來使用實驗,才能反饋出較全面的結果。

  • 調試用戶

  • 灰度測試用戶:將本次實驗首先給這部分灰度測試用戶使用,通過這些測試用戶的使用結果和反饋來修改完善實驗。

  • 人群ID:您可以創建多個人群規則,分別用于不同的實驗,讓指定的人群可以進入到指定的實驗流量當中,達成測試或觀察效果的目的。

    • 若顯示無選項,在實驗平臺下的人群管理中,創建人群即可。

    • 其中人群ID可選擇手動輸入或 Excel導入兩種方式,創建完成后,再操作新增實驗組選擇人群ID。

image.png

3.3. 新建實驗

配置說明:

  • 流量分配:對于不同的情況,可以選擇不同的分配流量策略。

  • 不影響用戶體驗:例如UI實驗,文案類實驗等,一般可以均勻分配流量,可以快速得到實驗結論。

  • 不確定性較強的實驗:例如新產品上線,新版本一般需要小流量實驗,盡量減少用戶體驗影響,在允許的時間內得到結論

  • 希望收益最大化的實驗:例如運營活動等等,盡可以將效果最大化,一般需要大流量實驗,留出小部分對照組用于評估ROI

  • 根據以下提示,進入新建實驗配置。

image.png

image.png

  • 首先,首次新增實驗 默認 基準實驗。

  • 基準實驗:一組用戶會被隨機分到實驗組或對照組,基準實驗作為對照組。設置好之后,點擊保存。

image.png

  • 基本實驗:一組用戶會被隨機分到實驗組或對照組,基本實驗作為對照組與基準實驗配置一致,設置好之后,點擊保存。

4. 調用SDK 以及數據埋點

4.1. Python 調用

4.1.1. 環境準備

  1. 用戶需要配置 Python 環境,安裝 pycharm 軟件工具??蓞⒖家韵挛臋n:Pycharm及python安裝詳細教程

  2. 打開 cmd 命令提示窗口,安裝所需的模塊包,使用以下命令。

pip install https://aliyun-pairec-config-sdk.oss-cn-hangzhou.aliyuncs.com/python/aliyun_pairec_config_python_sdk-1.0.0-py2.py3-none-any.whl
說明

注意:

  1. 由于所需的模塊包不是開源,所以在 pycharm 的安裝模塊的方式無法達到效果,可能會導致與正確的模塊包沖突報錯。

  2. 如果出現 pip 需要更新的情況,先更新,再安裝模塊。

  3. 出現 TimeOUT 超時報錯,是由于網絡不好的原因,重新運行命令。

4.1.2. 進入 pycharm

  • 新建一個運行 python SDK 的 py 程序。

image.png

  • 參考以下文檔服務初始化,參考步驟獲取到AccessKeyID 和AccessKeySecret

  • 基于用戶數據的保密性,推薦將 賬號和密碼添加到 系統變量中,使用 python 的 函數方法讀取即可。

image.png

# 新建兩個變量,用于存儲ID和密碼
ALIBABA_CLOUD_ACCESS_KEY_ID
ALIBABA_CLOUD_ACCESS_KEY_SECRET

  • 將以下代碼,拷貝到 py 程序中 ,按照下一步提示進行內容替換。

from alibabacloud_tea_openapi.models import Config
from api.api_scene import SceneApiService
from api.api_experiment_room import ExperimentRoomApiService
from api.api_layer import api_layer
from api.api_experiment_group import ExperimentGroupApiService
from api.api_experiment import ExperimentApiService
from client.client import ExperimentClient
from model.experiment import ExperimentContext
from api.api_crowd import CrowdApiService
from alibabacloud_pairecservice20221213.client import Client
from common.constants import ENVIRONMENT_PRODUCT_CONFIG_CENTER
from common.constants import ENVIRONMENT_PREPUB_CONFIG_CENTER
from common.constants import ENVIRONMENT_DAILY_CONFIG_CENTER
import os

# 設置相關信息
instance_id = "實例ID" #填寫:實例ID
region = "地域" #填寫:地域
access_id = os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
access_key = os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']

if __name__ == '__main__':
 # environment 為枚舉值:ENVIRONMENT_PRODUCT_CONFIG_CENTER(生產),ENVIRONMENT_PREPUB_CONFIG_CENTER(預發),ENVIRONMENT_DAILY_CONFIG_CENTER(日常)
 experiment = ExperimentClient(instance_id=instance_id, region=region,access_key_id=access_id,access_key_secret=access_key,environment=ENVIRONMENT_PRODUCT_CONFIG_CENTER)

 # 構造請求上下文,其中 filter_params 可為空
 experiment_context = ExperimentContext(request_id="請求ID",uid="用戶ID",filter_params={})
 # 獲取實驗的匹配結果,需傳入場景名和上下文
 
 experiment_result = experiment.match_experiment("場景名稱", experiment_context)
 
 # 打印匹配結果的信息
 print('info', experiment_result.info())

 # 打印匹配到的 exp_id
 print('exp_id', experiment_result.get_exp_id())

 # 這里可以獲取實驗中配置的參數
 print(experiment_result.get_experiment_params())
 print(experiment_result.get_experiment_params().get('url', 'not exist'))
 print(experiment_result.get_experiment_params().get('token', 'not exist'))
重要

配置環境變量報錯:

  • 如果訪問的環境變量不存在,將會報錯,引發一個 KeyError, 解決方法:在運行實例的代碼空白處可右擊,查看運行配置中系統變量是否加載進去了,如果沒有,重啟py項目即可

  • 替換以下用戶信息。(代碼中有提示需要注釋)

  • 在 AI-REC平臺中的基本信息中,可以查看到配置信息:實例ID,地域

image.png

  • request_id & uid: request_id 表示請求 id, 用戶通過自定義邏輯,例如:自增加ID,UUID等邏輯,生成請求ID

  • 在推薦場景欄中,可查看到需要使用的場景名稱

image.png

運行替換后的 py 程序,可獲取到 url 與 token.

4.2. java 調用

package com.aliyun.openservices.pairec;

import com.aliyun.openservices.pairec.api.ApiClient;
import com.aliyun.openservices.pairec.api.Configuration;
import com.aliyun.openservices.pairec.common.Constants;
import com.aliyun.openservices.pairec.model.ExperimentContext;
import com.aliyun.openservices.pairec.model.ExperimentResult;

public class ExperimentTest {
 static ExperimentClient experimentClient;
 public static void main(String[] args) throws Exception {
 String regionId = "地域";
 String instanceId = System.getenv("實例ID"); // pai-rec instance id
 String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); // aliyun accessKeyId
 String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); // aliyun accessKeySecret
 Configuration configuration = new Configuration(regionId, accessId, accessKey, instanceId);
 // set experiment environment
 configuration.setEnvironment(Constants.Environment_Product_Desc);
 ApiClient apiClient = new ApiClient(configuration);

 experimentClient = new ExperimentClient(apiClient);
 // init client
 experimentClient.init();
 // set expeirment context
 ExperimentContext experimentContext = new ExperimentContext();
 experimentContext.setUid("用戶ID");
 experimentContext.setRequestId("請求ID");

 // match experiment, use scence and experimentContext
 ExperimentResult experimentResult = experimentClient.matchExperiment("場景名稱", experimentContext);

 // exp id
 System.out.println(experimentResult.getExpId());
 // exp log info
 System.out.println(experimentResult.info());

 // get experiment param value
 System.out.println(experimentResult.getExperimentParams().getString("rank_version", "not exist"));
 System.out.println(experimentResult.getExperimentParams().getString("version", "not exist"));
 System.out.println(experimentResult.getExperimentParams().getString("recall", "not exist"));
 System.out.println(experimentResult.getExperimentParams().getDouble("recall_d", 0.0));

 // get experiment param value by pecific layer name
 //通過 特定層的名稱 獲取到實驗參數值
 System.out.println(experimentResult.getLayerParams("recall").getString("rank_version", "not exist"));
 System.out.println(experimentResult.getLayerParams("rank").getString("version", "not exist"));


 }
}

5. 設計實驗指標

由 數據分析師 設計實驗中所需要觀測的一些核心指標,例如:點擊率 或者轉化率等等

5.1. 進入指標管理,數據注冊模塊

將maxcompute表 與a/b test實例關聯,其中數據表名稱為自定義名稱,可以起個與業務相關的表名。

image.png

  • 選擇包含必填字段的數據表,詳細格式請參考文檔:數據注冊與字段配置

  • 若用戶沒有包含所有必填字段的 MaxCompute 數據表,則需要新建,以下提供新建步驟參考:

image.png

注冊好的數據表會自動出現在列表中,您可以點擊查看字段按鈕查看數據表中的字段,對字段和相關信息進行核對或編輯。


5.1.1. MaxCompute 表中沒有必填字段的情況

  • 需要進入 MaxCompute控制臺,新建符合要求的數據表。

image.png


  • 通過 DataWorks ,創建 MaxCompute 實驗報表來源表。

image.png

image.png


5.2. 配置實驗指標

在 AB 測試過程中,通過實驗指標來度量實驗效果。

實驗指標可分為 2 類:

  • 比例型實驗指標 / 人均值實驗指標

  • 比例型實驗指標(點擊轉化率、次日留存率、CTR-點擊率、CVR-轉化率)

  • 人均值實驗指標 (人均點擊次數、人均下單金額)

  • 核心指標 / 必看指標

  • 核心指標(決策勝出的直接指標)

  • 必看指標(每一個 測試需要觀察的指標,雖然測試功能對這個必看指標沒有直接的因果關系,但是不能對必看指標有顯著負向的影響。)

除了以上類型和用途指標之外,偶爾會對比一些絕對值指標。(只有在進入測試組的用戶數相同的情況下,對比這些絕對值指標才是有意義的)

  • 絕對值指標

  • 總點擊用戶數

  • 總下單金額

5.2.1. 指標項

首先,進入指標配置模塊,選擇指標項配置,選定應用的推薦場景與指標時效。

image.png

5.2.1.1. 單維指標

根據一些聚合邏輯(計數,去重計數,加和,取平均數等),生成的基礎指標,例如用戶打開 app 的次數。

image.png

例如:我們最終結果需要得到某個網站的點擊率。

點擊率 = 每日點擊數 / 每日訪問量 ,則應當在單維指標中新增每日點擊數和每日訪問量,最終通過在衍生指標進行計算,得到結果。

image.png

配置說明:

  • 指標定義中, PV 表示某個網頁的頁面訪問量,UV 表示某個頁面的用戶訪問數(只在用戶首次進入時記錄次數)。

  • 選擇字段后,會生成對應的計算字段命令。

5.2.1.2. 衍生指標

對多個單維指標進行比例等類型的計算。

image.png

5.2.2. 指標組

您可以圈選選定場景下的多個指標,作為一個指標組,以指標組為單位進行指標計算等任務。

image.png

  • 配置指標組,設定指標圈選范圍。

image.png

  • 點擊計算。

image.png

6. 計算指標以及生產報表

6.1. 計算指標

在指標配置中,在指標組中點擊計算后,選擇指標。

image.png

  • 創建計算任務完成后,可在計算任務模塊中,查看具體進度。

image.png

  • 當所有的計算任務跑完之后,狀態顯示為成功。

image.png

6.2. 生產報表

image.png

  • 進入到實驗平臺中的效果報表模塊,配置參數后,點擊開始分析。

image.png

用戶可以在明細數據中,查看對比基準實驗與普通實驗的指標差異;在趨勢分析中,可切換不同的實驗指標查看實驗效果。