Tüm Ürünler
Search
Belge Merkezi

Platform For AI:How to integrate the A/B test system with your system

Son Güncelleme:Oct 04, 2026

PAI-Rec'in A/B test sistemi, mevcut öneri, arama veya reklam motorunuzla birlikte çalışabilir; geçiş gerekmez. Bulut kaynaklarını yapılandırarak, deneyler kurarak, SDK'yı çağırarak ve sonuçları ölçerek entegrasyonu tamamlayın.

Nasıl çalışır

PAI-Rec, A/B testlerini dört seviyeli bir hiyerarşiyle düzenler:

Laboratuvar → Deney katmanı → Deney grubu → Deney

Bir laboratuvar deney katmanlarını içerir; her katman deney gruplarını, her grup ise deneyleri barındırır. Trafik öncelikle temel olmayan laboratuvarlardan geçer; temel laboratuvar, kalan trafiği yedek olarak işler.

Bir kullanıcı isteği geldiğinde SDK, bir senaryo adı ve istek bağlamıyla match_experiment yöntemini çağırır. PAI-Rec kullanıcıyı bir deney atar ve aşağıdakileri döndürür:

  • exp_id — ölçüm hesaplaması için her kullanıcı olayıyla birlikte günlüğe kaydedilecek deney kimliği

  • Deney parametreleri — hangi algoritma varyantının çalıştırılacağını belirlemek için sisteminizin okuduğu anahtar-değer çiftleri

Olaylar ve ölçümler: Kodunuz kullanıcı davranışı olaylarını (tıklamalar, satın alımlar vb.) günlüğe kaydeder ve her olayda exp_id değerini saklar. PAI-Rec bu olayları MaxCompute üzerinde toplayarak deney ölçümlerini hesaplar ve karşılaştırma raporları oluşturur. exp_id alanı analiz sırasında her davranış olayını doğru deney ile ilişkilendirir.

Ön koşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

  • Bir örnek kimliği ve bölge bilgisi içeren bir PAI-Rec örneği

  • Alibaba Cloud hesabınızdan alınan AccessKey ID ve AccessKey secret

  • PAI-Rec'e okuma ve yazma erişimi verilmiş bir MaxCompute projesi

  • Bir Object Storage Service (OSS) paketi

1. Adım: Kaynakları yapılandırın

PAI-Rec konsoluna giriş yapın

PAI-Rec konsolunda sol gezinme bölmesinde Full-link Service seçeneğine tıklayın. Görüntülenen Service Initialization sihirbazında çalışma alanlarınızı yapılandırın.

Yapılandırma notları:

  1. Platform for AI (PAI), DataWorks ve MaxCompute'deki mevcut çalışma alanlarını ilgili konsollardan sorgulayın. Her ürünün ana sayfasında Console seçeneğine tıklayın.

  2. Burada yapılandırmadan önce OSS konsolunda bir OSS paketi oluşturun.

MaxCompute erişimi verin

Projects sayfasında kullanmak istediğiniz MaxCompute projesini arayın.

Hiçbir proje görünmüyorsa önce doğru bölgeyi seçin.

Projenin Actions sütununda Manage seçeneğine tıklayın. PAI-Rec'e MaxCompute projesi üzerinde doğrudan erişim ve yazma izinleri verin.

Ayrıntılar için bkz. Hizmet etkinleştirme ve başlatma.

2. Adım: Bir senaryo oluşturun

Parametre Açıklama
Scenario name Öneri senaryosunun adı. Sayfa konumunu yansıtan bir ad kullanın (örneğin, homepage_feed).
Description Senaryo için isteğe bağlı açıklama.
Intended users PAI-Rec'i tam olarak kullanmayan kullanıcıları seçin.

Kendi yönettiğiniz sistemler için trafik yapılandırması:

Kendi yönettiğiniz bir öneri sisteminiz varsa senaryo trafiğinin %10–%20'sini başlangıçta PAI-Rec'e yönlendirin. Sonuçlar beklentileri karşıladığında trafik paylaşımını kademeli olarak artırın.

Kendi yönettiğiniz trafiğinizi ayrı olarak izlemek için özel bir trafik kodu atayın. PAI-Rec'in ölçüm hesaplaması sırasında davranış olaylarını deneylerle ilişkilendirebilmesi için her kullanıcı etkileşimine ait olay izleme günlüklerinize exp_id değerini kaydedin.

3. Adım: A/B testini yapılandırın

Önemli

Bir deneyi başlatmadan önce test edilecek değişiklikleri ilgili ürün yöneticisi veya proje yöneticisiyle onaylayın.

Terim tanımları için bkz. Temel Kavramlar.

Laboratuvar oluşturun

  1. Bir çalışma zamanı ortamı ve öneri senaryosu seçin.

  2. Create Lab seçeneğine tıklayın.

  3. Create Lab panelinde aşağıdaki parametreleri yapılandırın:

Parametre Açıklama
Lab type Base Lab (zorunlu): Temel olmayan laboratuvarlarla eşleşmeyen trafiği işler. Popüler öğeler veya rastgele yedek mantığı kullanabilir. Non-base Lab (isteğe bağlı): Trafik öncelikle burada eşleşir; daha basit bir temel modelin yanında karmaşık modeller çalıştırmak için kullanışlıdır.
Bucketing method Hashed UID-based Bucketing: Kullanıcıları UID'nin hash değeriyle paketlere ayırır. UID-based Bucketing: Kullanıcıları UID'nin son rakamlarına göre paketlere ayırır. Condition-based Bucketing: Kullanıcıları gender=man gibi bir anahtar-değer ifadesine göre paketlere ayırır.
Buckets Bu laboratuvardaki toplam paket sayısı (örneğin, 100).
Traffic allocation Bu laboratuvara atanan paket numaraları, 0–99 aralığında.
Layering Deney katmanı. Tipik katmanlar: recall, filter, coarse_rank, rank.
Test users Paket eşleştirmesi olmadan doğrudan bu laboratuvara yönlendirilen kullanıcılar. UID'leri manuel olarak girin (virgülle ayrılmış) veya User Group Management sayfasından bir User Group ID seçin.

Deney grubu oluşturun

Her deney katmanında birden fazla deney grubu olabilir ve her grupta birden fazla deney bulunabilir. Aynı katmanda (örneğin, farklı geri çağırma algoritmaları) birbirini etkilemeden deney çalıştırmak isteyen birden fazla mühendis olduğunda ayrı gruplar kullanın.

A/A test grubu (yeni deneyler için önerilir):

Deney kurulumunuzun tarafsız olduğunu doğrulamak için gerçek deneyleri çalıştırmadan önce bir A/A test grubu oluşturun:

  1. Deney için 4–5 paket seçin.

  2. İlke yapılandırılmamış bir gruba 2 paket atayın. Bu paketleri kuru çalışma olarak çalıştırın ve temel ölçümleri izleyin.

  3. Ölçümleri en benzer olan iki grubu gerçek A/B testiniz için kullanın.

Ek deney grubu parametreleri:

Parametre Açıklama
Filter by Test kullanıcıları seçildikten sonra kullanıcıları daha da filtreleyin. Yeni ve mevcut kullanıcıları filtrelemek daha kapsamlı test sonuçları sağlar.
Test users Manually Enter: Deneyleri önce çalıştırmak, geri bildirim toplamak ve ardından iyileştirmek için kullanıcı kimliklerini belirtin. User Group ID: Belirli kullanıcı gruplarını belirli deneylere yönlendirin. Experiment Platform altında User Group Management bölümünde kullanıcı grupları oluşturun; kullanıcı kimliklerini manuel olarak veya Excel üzerinden yükleyebilirsiniz.

Deney oluşturun

Create Experiment seçeneğine tıklayın. Varsayılan olarak önce bir temel deney oluşturulur.

Deney türü Açıklama
Baseline experiment Kontrol grubu. Kullanıcılar rastgele deney grubuna veya kontrol grubuna atanır.
Normal experiment Temel deney ile aynı yapıya sahip ek deneyler. Her biri bir tedavi grubu olarak hizmet eder.

Trafik tahsis stratejileri:

Amaç Strateji
Yeni özellik lansmanında riski en aza indirme Zaman çizelgeniz içinde veri toplarken kullanıcı etkisini sınırlamak için yeni sürüme küçük bir trafik dilimi gönderin.
Test hızını maksimize etme Sonuçları daha hızlı toplamak için trafiği gruplar arasında eşit şekilde dağıtın.
Yatırım getirisini (ROI) optimize etme Daha fazla trafiği deney grubuna ayırın ve kontrol grubu için küçük bir dilim tutun.

Tüm parametreleri yapılandırdıktan sonra Save seçeneğine tıklayın.

4. Adım: SDK'yı çağırın

Hem Python hem de Java SDK'ları aynı deseni takip eder: Kimlik bilgileriniz ve örnek ayrıntılarınızla bir istemci başlatın, bir senaryo adı ve kullanıcı bağlamıyla match_experiment yöntemini çağırın, ardından sonuçtan exp_id ve deney parametrelerini okuyun.

Günlüğe kaydettiğiniz her kullanıcı davranışı olayında exp_id değerini saklayın. PAI-Rec ölçümleri hesaplarken olayları deneylerle ilişkilendirmek için bu alanı kullanır.

Python SDK

Yükleme

SDK'yı çalıştırmak için bir Python ortamı hazırlamanız ve PyCharm yüklemeniz gerekir.

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
Paketi PyCharm'ın paket yöneticisi aracılığıyla değil yukarıdaki komutu kullanarak yükleyin. Paket açık kaynak değildir ve PyCharm'ın yükleyicisi çakışmalara neden olabilir. pip güncellemesi gerekiyorsa yüklemeden önce güncelleyin. Zaman aşımı ile karşılaşırsanız komutu tekrar çalıştırın.

Başlatma ve çağırma

Kodu çalıştırmadan önce kimlik bilgilerinizi ortam değişkenlerinde saklayın:

export ALIBABA_CLOUD_ACCESS_KEY_ID=<your-access-key-id>
export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<your-access-key-secret>
Uyarı

AccessKey kimlik bilgilerini kaynak kodunuzda asla sabit kodlamayın. Çalışma zamanında bunları ortam değişkenlerinden okuyun.

import os
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

# Instance details — find these on the Basic Information page in the PAI-Rec console
instance_id = "<instance-id>"
region = "<region-id>"

# Read credentials from environment variables
access_id = os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
access_key = os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']

if __name__ == '__main__':
    # Valid environments: 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
    )

    # Build the request context
    # request_id: any unique identifier (auto-increment ID or UUID)
    # uid: the user ID to assign to an experiment
    experiment_context = ExperimentContext(
        request_id="<request-id>",
        uid="<user-id>",
        filter_params={}
    )

    # Match the user to an experiment in the specified scenario
    # Find the scenario name on the Recommendation Scenarios page
    experiment_result = experiment.match_experiment("<scenario-name>", experiment_context)

    # Log experiment assignment details
    print('info', experiment_result.info())

    # Store exp_id in your event tracking logs for metric calculation
    print('exp_id', experiment_result.get_exp_id())

    # Read experiment parameters to determine which algorithm variant to run
    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'))

Çalıştırmadan önce yer tutucuları değiştirin:

Yer Tutucu Nerede Bulunur
<instance-id> PAI-Rec konsolundaki Basic Information sayfası
<region-id> PAI-Rec konsolundaki Basic Information sayfası
<scenario-name> PAI-Rec konsolundaki Recommendation Scenarios sayfası

Beklenen çıktı:

Başarılı bir çalıştırma deney atamasını ve o deney için yapılandırılan parametre değerlerini yazdırır:

info exp_id=<exp_id> ...
exp_id <exp_id>
{'url': 'https://...', 'token': '...'}
https://...
...
Ortam değişkenlerini okurken bir KeyError oluşursa PyCharm'da çalıştırma yapılandırmasına sağ tıklayın ve sistem değişkenlerinin yüklendiğini doğrulayın. Değilse projeyi yeniden başlatın.

Java SDK

Uyarı

AccessKey kimlik bilgilerini kaynak kodunuzda asla sabit kodlamayın. Çalışma zamanında bunları ortam değişkenlerinden okuyun.

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 {
        // Instance details — find regionId and instanceId on the Basic Information page
        String regionId = "<region-id>";
        String instanceId = System.getenv("Instance ID"); // pai-rec instance ID

        // Read credentials from environment variables
        String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
        String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");

        Configuration configuration = new Configuration(regionId, accessId, accessKey, instanceId);
        // Set the experiment environment
        configuration.setEnvironment(Constants.Environment_Product_Desc);

        ApiClient apiClient = new ApiClient(configuration);
        experimentClient = new ExperimentClient(apiClient);
        // Initialize the client
        experimentClient.init();

        // Build the request context
        ExperimentContext experimentContext = new ExperimentContext();
        experimentContext.setUid("<user-id>");
        experimentContext.setRequestId("<request-id>");

        // Match the user to an experiment in the specified scenario
        ExperimentResult experimentResult = experimentClient.matchExperiment("<scenario-name>", experimentContext);

        // Store exp_id in your event tracking logs for metric calculation
        System.out.println(experimentResult.getExpId());
        // Log experiment assignment details
        System.out.println(experimentResult.info());

        // Read experiment parameters to determine which algorithm variant to run
        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));

        // Read parameters for a specific experiment layer by name
        System.out.println(experimentResult.getLayerParams("recall").getString("rank_version", "not exist"));
        System.out.println(experimentResult.getLayerParams("rank").getString("version", "not exist"));
    }
}

5. Adım: Deney ölçümlerini tasarlayın

Ölçümleri hesaplamadan önce bir MaxCompute veri tablosu kaydedin ve neyin ölçüleceğini tanımlayın. Veri analistleri genellikle tıklama oranı (CTR) ve dönüşüm oranı (CVR) gibi temel ölçümlerin yanı sıra deney sırasında gerilememesi gereken zorunlu ölçümleri tasarlar.

Veri tablosu kaydedin

PAI-Rec konsolunda Metric Management > Data Registration bölümüne gidin. Bir MaxCompute tablosunu A/B test örneğinizle ilişkilendirin. Data Table Name değerini iş bağlamını yansıtan bir ada ayarlayın.

Gerekli alanları içeren bir tablo seçin. Alan gereksinimleri için bkz. Veri kaydı ve alan yapılandırması.

MaxCompute projenizde tüm gerekli alanlara sahip bir tablo yoksa bir tane oluşturun:

  1. MaxCompute konsoluna giriş yapın ve bir veri tablosu oluşturun.

  2. DataWorks'te MaxCompute üzerinde A/B test deney raporları için bir kaynak tablo oluşturun.

Kayıttan sonra tablo veri tablosu listesinde görünür. Alan eşlemelerini incelemek veya düzenlemek için tablonun Actions sütununda View Fields seçeneğine tıklayın.

Ölçüm türleri

PAI-Rec üç kategori ölçümü destekler:

Kategori Örnekler Ne zaman kullanılır
Oran bazlı ölçümler Tıklama dönüşüm oranı, CTR, CVR, ertesi gün elde tutma oranı Gruplar arasındaki oranları karşılaştırmak için; öneri deneyleri için en yaygın kullanılan yöntem
Kullanıcı başına ölçümler Kullanıcı başına ortalama tıklama, ortalama sipariş değeri (AOV) Toplam oranlar yerine kullanıcı başına etkiyi ölçmek için
Mutlak ölçümler Toplam tıklama, toplam sipariş tutarı Yalnızca test gruplarında aynı sayıda kullanıcı olduğunda karşılaştırma yapmak için

Ayrıca şunlar arasında ayrım yapın:

  • Temel ölçümler (KPI'ler): Deneyin iyileştirmeyi hedeflediği birincil sonuçlar

  • Zorunlu ölçümler: Bir test sırasında gözlemlenmesi gereken ölçümler; test edilen yetenek bunları olumsuz etkilememelidir

Ölçümleri yapılandırın

Metric Configurations sayfasında Metrics seçeneğine tıklayın. Recommendation Scenario ve Metric Timeliness parametrelerini ayarlayın.

Tek boyutlu ölçümler tek bir toplamadan hesaplanır: sayı, benzersiz sayı, toplam veya ortalama. Örneğin günlük tıklamalar ve günlük ziyaretler tek boyutlu ölçümlerdir.

Metric Definition parametresinde:

  • Page Views: Her sayfa ziyaretini sayar

  • Unique Visitors: Her kullanıcıyı ilk ziyaretinde bir kez sayar

Türetilmiş ölçümler birden fazla tek boyutlu ölçümü birleştirir. Örneğin:

CTR = Daily clicks / Daily visits

Önce günlük tıklamaları ve günlük ziyaretleri tek boyutlu ölçüm olarak ekleyin, ardından yukarıdaki formülü kullanarak CTR'yi türetilmiş bir ölçüm olarak tanımlayın.

Ölçüm gruplarını yapılandırın

İlgili ölçümleri bir araya getirerek bunları bir küme olarak hesaplayın ve karşılaştırın.

  1. Metric Groups sekmesinde bir ölçüm grubu oluşturun ve Metric Selection parametresini istediğiniz ölçümleri içerecek şekilde ayarlayın.

  2. Actions sütununda Calculate seçeneğine tıklayarak ölçüm hesaplamasını tetikleyin.

6. Adım: Ölçümleri hesaplayın ve raporlar oluşturun

Ölçümleri hesaplayın

Metric Configurations sayfasının Metric Groups sekmesinde Actions sütununda Calculate seçeneğine tıklayın. Görüntülenen panelde hesaplanacak ölçümleri seçin.

Jobs sayfasında iş ilerlemesini izleyin. Tüm işler tamamlandığında durum Succeeded olarak değişir.

Raporları görüntüleyin

Experiment Platform altındaki Performance Reports sayfasında parametreleri yapılandırın ve Start Analysis seçeneğine tıklayın.

  • Detail Data: Temel deney ile normal deneyler arasındaki ölçüm farklarını gösterir

  • Trend Analysis: Seçili ölçümlerin deney süresi boyunca nasıl değiştiğini gösterir

Sırada ne var