Sistem Pengujian A/B PAI-Rec dapat berjalan bersamaan dengan mesin rekomendasi, pencarian, atau periklanan yang sudah ada—tanpa perlu migrasi. Panduan ini menjelaskan langkah-langkah integrasi lengkap: mengonfigurasi sumber daya cloud, menyiapkan eksperimen, memanggil SDK, dan mengukur hasil.
Cara kerja
PAI-Rec mengorganisasi Pengujian A/B dalam hierarki empat tingkat:
Lab → Lapisan eksperimen → Kelompok eksperimen → Eksperimen
Sebuah lab berisi lapisan eksperimen, setiap lapisan berisi kelompok eksperimen, dan setiap kelompok berisi eksperimen. Trafik dialirkan terlebih dahulu ke lab non-basis; lab basis menangani sisa trafik sebagai fallback.
Ketika permintaan pengguna tiba, SDK memanggil match_experiment dengan nama skenario dan konteks permintaan. PAI-Rec menetapkan pengguna ke suatu eksperimen dan mengembalikan:
exp_id— ID eksperimen yang harus dicatat pada setiap event pengguna untuk perhitungan metrikParameter eksperimen — pasangan kunci-nilai yang dibaca sistem Anda untuk menentukan varian algoritma mana yang akan dijalankan
Event dan metrik: Kode Anda mencatat event perilaku pengguna (klik, pembelian, dan sebagainya) serta merekam exp_id pada setiap event tersebut. PAI-Rec mengagregasi event-event ini di MaxCompute untuk menghitung metrik eksperimen dan menghasilkan laporan perbandingan. Bidang exp_id inilah yang menghubungkan setiap event perilaku dengan eksperimen yang tepat selama analisis.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans PAI-Rec dengan ID instans dan wilayah
ID AccessKey dan Rahasia AccessKey (dari Akun Alibaba Cloud Anda)
Proyek MaxCompute dengan izin baca dan tulis yang diberikan kepada PAI-Rec
Bucket Object Storage Service (OSS)
Langkah 1: Konfigurasi sumber daya
Masuk ke Konsol PAI-Rec
Di Konsol PAI-Rec, klik Full-link Service di panel navigasi kiri. Pada wizard Service Initialization yang muncul, konfigurasikan ruang kerja Anda.

Catatan konfigurasi:
Periksa ruang kerja yang sudah ada dari Platform for AI (PAI), DataWorks, dan MaxCompute di Konsol masing-masing produk. Di halaman utama setiap produk, klik Console.
Buat bucket OSS di Konsol OSS sebelum mengonfigurasinya di sini.
Berikan akses MaxCompute
Di halaman Projects, cari proyek MaxCompute yang ingin Anda gunakan.

Jika tidak ada proyek yang muncul, pilih wilayah yang benar terlebih dahulu.
Pada kolom Actions proyek tersebut, klik Manage. Berikan akses langsung dan izin tulis kepada PAI-Rec pada proyek MaxCompute tersebut.

Untuk detailnya, lihat Service initialization.
Langkah 2: Buat skenario

| Parameter | Deskripsi |
|---|---|
| Scenario name | Nama skenario rekomendasi. Gunakan nama yang mencerminkan lokasi halaman (misalnya, homepage_feed). |
| Description | Deskripsi opsional untuk skenario tersebut. |
| Intended users | Pilih pengguna yang tidak sepenuhnya menggunakan PAI-Rec. |
Konfigurasi trafik untuk sistem yang dikelola sendiri:
Jika Anda memiliki sistem rekomendasi yang dikelola sendiri, mulailah dengan mengarahkan 10%–20% trafik skenario ke PAI-Rec. Setelah PAI-Rec mencapai hasil yang diinginkan, tingkatkan pangsa trafik secara bertahap.
Untuk melacak trafik yang Anda kelola secara terpisah, tetapkan kode trafik khusus. Catat exp_id dalam log pelacakan event Anda untuk setiap interaksi pengguna—inilah cara PAI-Rec menghubungkan event perilaku dengan eksperimen selama perhitungan metrik.
Langkah 3: Konfigurasi Pengujian A/B
Sebelum memulai eksperimen, konfirmasikan perubahan yang akan diuji dengan product manager atau project manager terkait.
Untuk definisi istilah, lihat Terms.
Buat lab
Pilih lingkungan runtime dan skenario rekomendasi.
Klik Create Lab.
Pada panel Create Lab, konfigurasikan parameter berikut:
| Parameter | Deskripsi |
|---|---|
| Lab type | Base Lab (wajib): menangani trafik yang tidak sesuai dengan lab non-basis. Dapat menggunakan item populer atau logika fallback acak. Non-base Lab (opsional): trafik dicocokkan ke sini terlebih dahulu; berguna untuk model kompleks yang dijalankan bersama model dasar yang lebih sederhana. |
| Bucketing method | Hashed UID-based Bucketing: membagi pengguna berdasarkan nilai hash UID. UID-based Bucketing: membagi pengguna berdasarkan digit terakhir UID. Condition-based Bucketing: membagi pengguna berdasarkan ekspresi kunci-nilai seperti gender=man. |
| Buckets | Jumlah total bucket dalam lab ini (misalnya, 100). |
| Traffic allocation | Nomor bucket yang dialokasikan untuk lab ini, dalam rentang 0–99. |
| Layering | Lapisan eksperimen. Lapisan umum: recall, filter, coarse_rank, rank. |
| Test users | Pengguna yang diarahkan langsung ke lab ini tanpa pencocokan bucketing. Masukkan UID secara manual (dipisahkan koma) atau pilih User Group ID dari halaman User Group Management. |
Buat kelompok eksperimen
Setiap lapisan eksperimen dapat memiliki beberapa kelompok eksperimen, dan setiap kelompok dapat memiliki beberapa eksperimen. Gunakan kelompok terpisah ketika beberapa engineer perlu menjalankan eksperimen pada lapisan yang sama (misalnya, algoritma recall berbeda) tanpa saling mengganggu.
Kelompok pengujian A/A (direkomendasikan untuk eksperimen baru):
Untuk memvalidasi bahwa pengaturan eksperimen Anda tidak bias, buatlah kelompok pengujian A/A sebelum menjalankan eksperimen nyata:
Pilih 4–5 bucket untuk eksperimen.
Tetapkan 2 bucket ke kelompok tanpa kebijakan yang dikonfigurasi. Jalankan bucket tersebut sebagai dry run dan pantau metrik utama.
Gunakan dua kelompok yang metriknya paling mirip untuk pengujian A/B sebenarnya.
Parameter tambahan untuk kelompok eksperimen:
| Parameter | Deskripsi |
|---|---|
| Filter by | Saring pengguna lebih lanjut setelah pengguna uji dipilih. Penyaringan berdasarkan pengguna baru vs. pengguna lama memberikan hasil uji yang lebih komprehensif. |
| Test users | Manually Enter: tentukan ID pengguna untuk menjalankan eksperimen terlebih dahulu, kumpulkan masukan, lalu sempurnakan. User Group ID: arahkan kelompok pengguna tertentu ke eksperimen tertentu. Buat kelompok pengguna di User Group Management di bawah Experiment Platform; Anda dapat mengunggah ID pengguna secara manual atau melalui Excel. |

Buat eksperimen
Klik Create Experiment. Secara default, eksperimen garis dasar dibuat terlebih dahulu.
| Jenis eksperimen | Deskripsi |
|---|---|
| Baseline experiment | Kelompok kontrol. Pengguna ditetapkan secara acak ke kelompok eksperimen atau kelompok kontrol. |
| Normal experiment | Eksperimen tambahan dengan struktur yang sama seperti garis dasar. Masing-masing berfungsi sebagai kelompok perlakuan. |
Strategi alokasi trafik:
| Tujuan | Strategi |
|---|---|
| Minimalkan risiko saat meluncurkan fitur baru | Kirim potongan trafik kecil ke versi baru untuk membatasi dampak pada pengguna sekaligus mengumpulkan data dalam jangka waktu Anda. |
| Maksimalkan kecepatan pengujian | Distribusikan trafik secara merata di seluruh kelompok untuk mengumpulkan hasil lebih cepat. |
| Optimalkan return on investment (ROI) | Alokasikan lebih banyak trafik ke kelompok eksperimen dan pertahankan potongan kecil untuk kelompok kontrol. |
Setelah mengonfigurasi semua parameter, klik Save.
Langkah 4: Panggil SDK
SDK Python dan Java mengikuti pola yang sama: inisialisasi klien dengan kredensial dan detail instans Anda, panggil match_experiment dengan nama skenario dan konteks pengguna, lalu baca exp_id dan parameter eksperimen dari hasilnya.
Simpan exp_id pada setiap event perilaku pengguna yang Anda catat. PAI-Rec menggunakan bidang ini untuk mengatribusikan event ke eksperimen saat menghitung metrik.
Python SDK
Instal
Anda harus menyiapkan lingkungan Python dan menginstal PyCharm untuk menjalankan SDK.
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.whlInstal menggunakan perintah di atas, bukan melalui package manager PyCharm. Paket ini tidak open source, dan installer PyCharm dapat menyebabkan konflik. Jika pip perlu diperbarui, perbarui terlebih dahulu sebelum menginstal. Jika terjadi timeout, jalankan perintah lagi.
Inisialisasi dan panggil
Simpan kredensial Anda dalam variabel lingkungan sebelum menjalankan kode:
export ALIBABA_CLOUD_ACCESS_KEY_ID=<your-access-key-id>
export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<your-access-key-secret>Jangan pernah menyematkan kredensial AccessKey secara langsung di kode sumber Anda. Baca dari variabel lingkungan saat runtime.
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
# Detail instans — temukan di halaman Basic Information di Konsol PAI-Rec
instance_id = "<instance-id>"
region = "<region-id>"
# Baca kredensial dari variabel lingkungan
access_id = os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID']
access_key = os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
if __name__ == '__main__':
# Lingkungan yang valid: 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
)
# Bangun konteks permintaan
# request_id: pengenal unik apa pun (ID auto-increment atau UUID)
# uid: ID pengguna yang akan ditetapkan ke eksperimen
experiment_context = ExperimentContext(
request_id="<request-id>",
uid="<user-id>",
filter_params={}
)
# Cocokkan pengguna ke eksperimen dalam skenario yang ditentukan
# Temukan nama skenario di halaman Recommendation Scenarios
experiment_result = experiment.match_experiment("<scenario-name>", experiment_context)
# Catat detail penetapan eksperimen
print('info', experiment_result.info())
# Simpan exp_id dalam log pelacakan event Anda untuk perhitungan metrik
print('exp_id', experiment_result.get_exp_id())
# Baca parameter eksperimen untuk menentukan varian algoritma mana yang akan dijalankan
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'))Ganti placeholder sebelum menjalankan:
| Placeholder | Lokasi menemukannya |
|---|---|
<instance-id> | Basic Information di Konsol PAI-Rec |
<region-id> | Basic Information di Konsol PAI-Rec |
<scenario-name> | Recommendation Scenarios di Konsol PAI-Rec |


Output yang diharapkan:
Eksekusi yang berhasil mencetak penetapan eksperimen dan nilai parameter yang dikonfigurasi untuk eksperimen tersebut:
info exp_id=<exp_id> ...
exp_id <exp_id>
{'url': 'https://...', 'token': '...'}
https://...
...Jika terjadi KeyError saat membaca variabel lingkungan, klik kanan konfigurasi run di PyCharm dan verifikasi apakah variabel sistem dimuat. Jika tidak, restart proyek.Java SDK
Jangan pernah menyematkan kredensial AccessKey secara langsung di kode sumber Anda. Baca dari variabel lingkungan saat runtime.
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 {
// Detail instans — temukan regionId dan instanceId di halaman Basic Information
String regionId = "<region-id>";
String instanceId = System.getenv("Instance ID"); // ID instans pai-rec
// Baca kredensial dari variabel lingkungan
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);
// Tetapkan lingkungan eksperimen
configuration.setEnvironment(Constants.Environment_Product_Desc);
ApiClient apiClient = new ApiClient(configuration);
experimentClient = new ExperimentClient(apiClient);
// Inisialisasi klien
experimentClient.init();
// Bangun konteks permintaan
ExperimentContext experimentContext = new ExperimentContext();
experimentContext.setUid("<user-id>");
experimentContext.setRequestId("<request-id>");
// Cocokkan pengguna ke eksperimen dalam skenario yang ditentukan
ExperimentResult experimentResult = experimentClient.matchExperiment("<scenario-name>", experimentContext);
// Simpan exp_id dalam log pelacakan event Anda untuk perhitungan metrik
System.out.println(experimentResult.getExpId());
// Catat detail penetapan eksperimen
System.out.println(experimentResult.info());
// Baca parameter eksperimen untuk menentukan varian algoritma mana yang akan dijalankan
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));
// Baca parameter untuk lapisan eksperimen tertentu berdasarkan nama
System.out.println(experimentResult.getLayerParams("recall").getString("rank_version", "not exist"));
System.out.println(experimentResult.getLayerParams("rank").getString("version", "not exist"));
}
}Langkah 5: Rancang metrik eksperimen
Sebelum menghitung metrik, daftarkan tabel data MaxCompute dan definisikan apa yang akan diukur. Analis data biasanya merancang metrik utama—seperti tingkat klik (CTR) dan tingkat konversi (CVR)—serta metrik wajib yang tidak boleh mengalami kemunduran selama eksperimen.
Daftarkan tabel data
Di Konsol PAI-Rec, buka Metric Management > Data Registration. Asosiasikan tabel MaxCompute dengan instans Pengujian A/B Anda. Tetapkan Data Table Name ke nama yang mencerminkan konteks bisnis.

Pilih tabel yang berisi bidang yang diperlukan. Untuk persyaratan bidang, lihat Data registration and field configuration.
Jika proyek MaxCompute Anda tidak memiliki tabel dengan semua bidang yang diperlukan, buat satu:
Masuk ke Konsol MaxCompute dan buat tabel data.

Di DataWorks, buat tabel sumber untuk laporan eksperimen Pengujian A/B di MaxCompute.


Setelah pendaftaran, tabel tersebut muncul dalam daftar tabel data. Klik View Fields di kolom Actions untuk memeriksa atau mengedit pemetaan bidang.
Jenis metrik
PAI-Rec mendukung tiga kategori metrik:
| Kategori | Contoh | Kapan digunakan |
|---|---|---|
| Metrik berbasis rasio | Tingkat konversi klik, CTR, CVR, tingkat retensi hari berikutnya | Membandingkan laju antar kelompok; paling umum untuk eksperimen rekomendasi |
| Metrik per pengguna | Rata-rata klik per pengguna, nilai pesanan rata-rata (AOV) | Mengukur dampak per pengguna, bukan laju agregat |
| Metrik absolut | Total klik, total nilai pesanan | Hanya bandingkan jika kelompok uji memiliki jumlah pengguna yang sama |
Selain itu, bedakan antara:
Metrik utama (KPI): hasil utama yang dirancang untuk ditingkatkan oleh eksperimen
Metrik wajib: metrik yang harus diamati selama pengujian; kemampuan yang diuji tidak boleh memengaruhi metrik ini secara negatif
Konfigurasi metrik
Di halaman Metric Configurations, klik Metrics. Tetapkan parameter Recommendation Scenario dan Metric Timeliness.

Metrik satu dimensi dihitung dari satu agregasi: count, unique count, sum, atau average. Misalnya, klik harian dan kunjungan harian adalah metrik satu dimensi.

Pada parameter Metric Definition:
Page Views: menghitung setiap kunjungan halaman
Unique Visitors: menghitung setiap pengguna sekali, pada kunjungan pertama
Metrik turunan menggabungkan beberapa metrik satu dimensi. Contohnya:
CTR = Daily clicks / Daily visitsTambahkan klik harian dan kunjungan harian sebagai metrik satu dimensi terlebih dahulu, lalu definisikan CTR sebagai metrik turunan menggunakan rumus di atas.

Konfigurasi kelompok metrik
Grupkan metrik yang terkait untuk menghitung dan membandingkannya sebagai satu set.

Di tab Metric Groups, buat kelompok metrik dan tetapkan parameter Metric Selection untuk menyertakan metrik yang Anda inginkan.
Klik Calculate di kolom Actions untuk memicu perhitungan metrik.

Langkah 6: Hitung metrik dan hasilkan laporan
Hitung metrik
Di tab Metric Groups pada halaman Metric Configurations, klik Calculate di kolom Actions. Pilih metrik yang akan dihitung pada panel yang muncul.

Lacak progres pekerjaan di halaman Jobs. Saat semua pekerjaan selesai, status berubah menjadi Succeeded.

Lihat laporan
Di halaman Performance Reports di bawah Experiment Platform, konfigurasikan parameter dan klik Start Analysis.

Detail Data: menunjukkan perbedaan metrik antara eksperimen garis dasar dan eksperimen normal
Trend Analysis: menunjukkan bagaimana metrik yang dipilih berubah selama periode eksperimen
Langkah selanjutnya
Service initialization — konfigurasi ruang kerja terperinci
Terms — referensi terminologi Pengujian A/B PAI-Rec
Data registration and field configuration — bidang yang diperlukan untuk tabel data MaxCompute