A/B實驗(ABTest)提供通用化的A/B評測能力和開箱即用的平台功能。在大語言模型(LLM)服務和搜尋推廣等模型服務情境中,經常需要根據服務線上的效果調整模型服務,A/B實驗(ABTest)通過調整不同模型服務間的流量分配,協助業務方進行低成本的快速實驗,最大化模型服務效應。
名詞解釋
實驗管理
實驗:需要AB測試的不同實驗版本組合,如AA、 AB、ABC等。實驗的流量來自實驗層,一個實驗層可以包含多個實驗,這些實驗之間的流量是互斥的。實驗管理的是一組參數配置,可以控製程序執行流程。每個版本的流量隨機劃分,不同參數可以對比其效果。
實驗專案:商務邏輯的彙總。例如LLM的Agent情境,相似業務情境下的服務可以作為單獨的情境。
實驗域:一組流量的集合,可以根據業務屬性按條件式篩選或隨機分配。當由業務決定實驗域流量的劃分,您可以自訂實現劃分邏輯。
實驗層:實驗域下包含一個或多個實驗層。每個實驗層的流量是正交(相互獨立)的,承載所在實驗域的所有流量。
流量管理
人群:代表實驗接入的一組特定流量ID(使用者UID)的集合。
指標管理
指標:用於評判實驗優劣的效能、服務品質等指標。
資料表:統計實驗指標所需的資料來源和相關欄位。
全域配置
發行管理:將效果更好的實驗參數推廣應用。
產品架構
ABTest整體鏈路架構
您可以使用阿里雲ABTest Web控制台進行實驗和指標配置。
ABTest提供Go或Java SDK,您可以在服務端引用。SDK會拉取實驗中繼資料,並根據訪問上下文進行分流,執行相關商務邏輯。
您可以註冊MaxCompute日誌表(即來來源資料表),系統會將其註冊到ABTest Server中。APP產生各種行為日誌後,會通過埋點方式將資料迴流到MaxCompute日誌表中。您在控制台配置實驗指標時,如果日誌表內容是近即時產生的,則實驗指標可以同時產生小時級和天級的指標,並將指標儲存到ABTest服務的Hologres儲存中。
您可以在ABTest Web控制台查看實驗報表資料。
實驗的演化流程
單層實驗:建立專案後,系統將自動建立預設的域和層,您可以在預設層上建立實驗。實驗可以擷取層上的所有流量,也可以通過隨機設定擷取部分流量。實驗包括多個版本,每個版本可通過設定流量百分比來劃分總流量。
多層實驗:單層實驗可以擴充成多層,每個層上的流量是正交的,因此每個層上都可以設定實驗。
層與域結合。一個層可以包含多個域,一個域也可以建立多個層,如上圖所示。在多層流量實驗中,您可以進行打通實驗,或者在單獨一個層上進行實驗。您可以進行如下設定:
許可權說明
為子帳號授予訪問ABTest的許可權
為子帳號授予 ABTest 的系統管理權限後,RAM使用者即可擁有使用 ABTest 功能的完整許可權。
主帳號登入RAM 控制台。
建立權限原則,選擇指令碼編輯,將下列內容複寫進去即可,策略名稱稱為pai_abtest_full_access。具體操作請參見建立自訂權限原則。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "paiabtest:*",
"Resource": "*"
}
]
}
在授權頁面,將pai_abtest_full_access授予給子帳號即可。具體操作請參見為RAM使用者授權。
為ABTest授予訪問其他雲產品的許可權
A/B實驗(ABTest)需要進行SLR授權,許可權角色名稱為AliyunServiceRoleForPAIABTest。涉及到的許可權內容如下所示。
{
"Version": "1",
"Statement": [
{
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "abtest.pai.aliyuncs.com"
}
}
},
{
"Effect": "Allow",
"Action": [
"odps:ActOnBehalfOfAnotherUser",
"odps:ListProjects",
"odps:ListTables"
],
"Resource": "acs:odps:*:*:users/*"
}
]
}