Tous les produits
Search
Centre de documentation

Platform For AI:Comment intégrer le système de test A/B à votre système

Dernière mise à jour :Sep 15, 2026

Le système de test A/B de PAI-Rec fonctionne parallèlement à votre moteur de recommandation, de recherche ou publicitaire existant, sans migration nécessaire. Pour l'intégrer, configurez les ressources cloud, définissez des expériences, appelez le SDK et mesurez les résultats.

Fonctionnement

PAI-Rec organise les tests A/B selon une hiérarchie à quatre niveaux :

Laboratoire → Couche d'expérience → Groupe d'expériences → Expérience

Un laboratoire contient des couches d'expérience, chaque couche contient des groupes d'expériences et chaque groupe contient des expériences. Le trafic traverse d'abord les laboratoires non de base ; le laboratoire de base traite le trafic restant par défaut.

Lorsqu'une requête utilisateur arrive, le SDK appelle match_experiment avec un nom de scénario et un contexte de requête. PAI-Rec assigne l'utilisateur à une expérience et renvoie :

  • exp_id — l'ID de l'expérience à journaliser avec chaque événement utilisateur pour le calcul des métriques

  • Paramètres de l'expérience — paires clé-valeur que votre système lit pour déterminer la variante d'algorithme à exécuter

Événements et métriques : Votre code journalise les événements de comportement utilisateur (clics, achats, etc.) et enregistre exp_id dans chaque événement. PAI-Rec agrège ces événements dans MaxCompute pour calculer les métriques d'expérience et générer des rapports de comparaison. Le champ exp_id permet de lier chaque événement de comportement à la bonne expérience lors de l'analyse.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Une instance PAI-Rec avec un ID d'instance et une région

  • Un ID AccessKey et un secret AccessKey (issus de votre compte Alibaba Cloud)

  • Un projet MaxCompute avec des accès en lecture et en écriture accordés à PAI-Rec

  • Un bucket Object Storage Service (OSS)

Étape 1 : Configurer les ressources

Se connecter à la console PAI-Rec

Dans la console PAI-Rec, cliquez sur Full-link Service dans le volet de navigation de gauche. Dans l'assistant Service Initialization qui s'affiche, configurez vos espaces de travail.

Notes de configuration :

  1. Recherchez les espaces de travail existants depuis Platform for AI (PAI), DataWorks et MaxCompute dans leurs consoles respectives. Sur la page d'accueil de chaque produit, cliquez sur Console.

  2. Créez un bucket OSS dans la console OSS avant de le configurer ici.

Accorder l'accès à MaxCompute

Sur la page Projects , recherchez le projet MaxCompute que vous souhaitez utiliser.

Si aucun projet n'apparaît, sélectionnez d'abord la région appropriée.

Dans la colonne Actions du projet, cliquez sur Manage. Accordez à PAI-Rec un accès direct et des autorisations d'écriture sur le projet MaxCompute.

Pour plus de détails, consultez Activation et initialisation du service.

Étape 2 : Créer un scénario

Paramètre Description
Scenario name Nom du scénario de recommandation. Utilisez un nom qui reflète l'emplacement de la page (par exemple, homepage_feed).
Description Description facultative du scénario.
Intended users Sélectionnez les utilisateurs qui n'utilisent pas entièrement PAI-Rec.

Configuration du trafic pour les systèmes gérés en interne :

Si vous disposez d'un système de recommandation géré en interne, commencez par router 10 % à 20 % du trafic du scénario vers PAI-Rec. Une fois que les résultats répondent aux attentes, augmentez progressivement la part de trafic.

Pour suivre séparément votre trafic géré en interne, attribuez-lui un code de trafic personnalisé. Enregistrez exp_id dans vos journaux de suivi d'événements pour chaque interaction utilisateur afin que PAI-Rec puisse attribuer les événements de comportement aux expériences lors du calcul des métriques.

Étape 3 : Configurer le test A/B

Important

Avant de démarrer une expérience, confirmez les modifications à tester avec le chef de produit ou le chef de projet concerné.

Pour les définitions terminologiques, consultez Concepts de base.

Créer un laboratoire

  1. Sélectionnez un environnement d'exécution et un scénario de recommandation.

  2. Cliquez sur Create Lab .

  3. Dans le panneau Create Lab , configurez les paramètres suivants :

Paramètre Description
Lab type Base Lab (obligatoire) : gère le trafic qui ne correspond pas aux laboratoires non de base. Peut utiliser une logique de secours basée sur les articles populaires ou aléatoire. Non-base Lab (facultatif) : le trafic correspond d'abord ici ; utile pour les modèles complexes fonctionnant parallèlement à un modèle de base plus simple.
Bucketing method Hashed UID-based Bucketing : segmente les utilisateurs par valeur de hachage de l'UID. UID-based Bucketing : segmente les utilisateurs par les derniers chiffres de l'UID. Condition-based Bucketing : segmente les utilisateurs par une expression clé-valeur telle que gender=man .
Buckets Nombre total de segments dans ce laboratoire (par exemple, 100).
Traffic allocation Numéros de segments attribués à ce laboratoire, dans la plage 0–99.
Layering Couche d'expérience. Couches typiques : recall , filter , coarse_rank , rank .
Test users Utilisateurs routés directement vers ce laboratoire sans mise en correspondance des segments. Saisissez manuellement les UID (séparés par des virgules) ou sélectionnez un User Group ID depuis la page de gestion des groupes d'utilisateurs.

Créer un groupe d'expériences

Chaque couche d'expérience peut comporter plusieurs groupes d'expériences, et chaque groupe peut contenir plusieurs expériences. Utilisez des groupes distincts lorsque plusieurs ingénieurs doivent exécuter des expériences sur la même couche (par exemple, différents algorithmes de rappel) sans interférence mutuelle.

Groupe de test A/A (recommandé pour les nouvelles expériences) :

Pour valider que la configuration de votre expérience est impartiale, créez un groupe de test A/A avant d'exécuter des expériences réelles :

  1. Sélectionnez 4 à 5 segments pour l'expérience.

  2. Attribuez 2 segments à un groupe sans politique configurée. Exécutez ces segments en tant que test à blanc et surveillez les métriques clés.

  3. Utilisez les deux groupes dont les métriques sont les plus similaires pour votre test A/B réel.

Paramètres supplémentaires du groupe d'expériences :

Paramètre Description
Filter by Filtrez davantage les utilisateurs après la sélection des utilisateurs de test. Le filtrage par nouveaux utilisateurs contre utilisateurs existants donne des résultats de test plus complets.
Test users Manually Enter : spécifiez les ID utilisateur pour exécuter d'abord les expériences, recueillir les commentaires, puis affiner. User Group ID : routez des groupes d'utilisateurs spécifiques vers des expériences spécifiques. Créez des groupes d'utilisateurs dans User Group Management sous Experiment Platform ; vous pouvez télécharger manuellement les ID utilisateur ou via Excel.

Créer une expérience

Cliquez sur Create Experiment . Par défaut, une expérience de référence est créée en premier.

Type d'expérience Description
Baseline experiment Le groupe témoin. Les utilisateurs sont assignés aléatoirement au groupe d'expérience ou au groupe témoin.
Normal experiment Expériences supplémentaires ayant la même structure que la référence. Chacune sert de groupe de traitement.

Stratégies d'allocation du trafic :

Objectif Stratégie
Minimiser les risques lors du lancement d'une nouvelle fonctionnalité Envoyez une petite tranche de trafic vers la nouvelle version pour limiter l'impact sur les utilisateurs tout en recueillant des données dans les délais impartis.
Maximiser la vitesse du test Répartissez le trafic uniformément entre les groupes pour collecter les résultats plus rapidement.
Optimiser le retour sur investissement (ROI) Allouez plus de trafic au groupe d'expérience et conservez une petite tranche pour le groupe témoin.

Après avoir configuré tous les paramètres, cliquez sur Save .

Étape 4 : Appeler le SDK

Les SDK Python et Java suivent le même schéma : initialisez un client avec vos identifiants et les détails de l'instance, appelez match_experiment avec un nom de scénario et un contexte utilisateur, puis lisez exp_id et les paramètres de l'expérience à partir du résultat.

Stockez exp_id dans chaque événement de comportement utilisateur que vous journalisez. PAI-Rec utilise ce champ pour attribuer les événements aux expériences lors du calcul des métriques.

SDK Python

Installation

Vous devez préparer un environnement Python et installer PyCharm pour exécuter le 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.whl
Installez en utilisant la commande ci-dessus, et non via le gestionnaire de packages de PyCharm. Le package n'est pas open source et l'installateur de PyCharm peut provoquer des conflits. Si pip doit être mis à jour, effectuez la mise à jour avant l'installation. En cas de délai d'attente, exécutez à nouveau la commande.

Initialisation et appel

Stockez vos identifiants dans des variables d'environnement avant d'exécuter le code :

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

Ne codez jamais en dur les identifiants AccessKey dans votre code source. Lisez-les à partir des variables d'environnement au moment de l'exécution.

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'))

Remplacez les espaces réservés avant l'exécution :

Espace réservé Où le trouver
<instance-id> Page Basic Information dans la console PAI-Rec
<region-id> Page Basic Information dans la console PAI-Rec
<scenario-name> Page Recommendation Scenarios dans la console PAI-Rec

Sortie attendue :

Une exécution réussie affiche l'assignation de l'expérience et les valeurs des paramètres configurés pour cette expérience :

info exp_id=<exp_id> ...
exp_id <exp_id>
{'url': 'https://...', 'token': '...'}
https://...
...
Si une erreur KeyError se produit lors de la lecture des variables d'environnement, cliquez avec le bouton droit sur la configuration d'exécution dans PyCharm et vérifiez que les variables système sont chargées. Sinon, redémarrez le projet.

SDK Java

Avertissement

Ne codez jamais en dur les identifiants AccessKey dans votre code source. Lisez-les à partir des variables d'environnement au moment de l'exécution.

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"));
    }
}

Étape 5 : Concevoir les métriques d'expérience

Avant de calculer les métriques, enregistrez une table de données MaxCompute et définissez ce qui doit être mesuré. Les analystes de données conçoivent généralement des métriques clés — telles que le taux de clics (CTR) et le taux de conversion (CVR) — ainsi que des métriques indispensables qui ne doivent pas régresser pendant l'expérience.

Enregistrer une table de données

Dans la console PAI-Rec, accédez à Metric Management > Data Registration . Associez une table MaxCompute à votre instance de test A/B. Définissez Data Table Name sur un nom qui reflète le contexte métier.

Sélectionnez une table contenant les champs requis. Pour les exigences relatives aux champs, consultez Enregistrement des données et configuration des champs .

Si votre projet MaxCompute ne dispose pas d'une table contenant tous les champs requis, créez-en une :

  1. Connectez-vous à la console MaxCompute et créez une table de données.

  2. Dans DataWorks, créez une table source pour les rapports d'expérience de test A/B dans MaxCompute.

Après l'enregistrement, la table apparaît dans la liste des tables de données. Cliquez sur View Fields dans la colonne Actions pour inspecter ou modifier les mappages de champs.

Types de métriques

PAI-Rec prend en charge trois catégories de métriques :

Catégorie Exemples Quand l'utiliser
Métriques basées sur des ratios Taux de conversion des clics, CTR, CVR, taux de rétention à J+1 Comparer les taux entre les groupes ; le plus courant pour les expériences de recommandation
Métriques par utilisateur Nombre moyen de clics par utilisateur, panier moyen (AOV) Mesurer l'impact par utilisateur plutôt que les taux agrégés
Métriques absolues Total des clics, montant total des commandes À comparer uniquement lorsque les groupes de test ont le même nombre d'utilisateurs

De plus, faites la distinction entre :

  • Métriques clés (KPI) : les principaux résultats que l'expérience vise à améliorer

  • Métriques indispensables : métriques qui doivent être observées pendant un test ; la capacité testée ne doit pas les affecter négativement

Configurer les métriques

Sur la page Metric Configurations , cliquez sur Metrics . Définissez les paramètres Recommendation Scenario et Metric Timeliness.

Les métriques à dimension unique sont calculées à partir d'une seule agrégation : count, unique count, sum ou average. Par exemple, les clics quotidiens et les visites quotidiennes sont des métriques à dimension unique.

Dans le paramètre Metric Definition :

  • Page Views : compte chaque visite de page

  • Unique Visitors : compte chaque utilisateur une seule fois, lors de la première visite

Les métriques dérivées combinent plusieurs métriques à dimension unique. Par exemple :

CTR = Daily clicks / Daily visits

Ajoutez d'abord les clics quotidiens et les visites quotidiennes en tant que métriques à dimension unique, puis définissez le CTR comme une métrique dérivée en utilisant la formule ci-dessus.

Configurer les groupes de métriques

Regroupez les métriques connexes pour les calculer et les comparer en tant qu'ensemble.

  1. Dans l'onglet Metric Groups , créez un groupe de métriques et définissez le paramètre Metric Selection pour inclure les métriques souhaitées.

  2. Cliquez sur Calculate dans la colonne Actions pour déclencher le calcul des métriques.

Étape 6 : Calculer les métriques et générer des rapports

Calculer les métriques

Dans l'onglet Metric Groups de la page Metric Configurations , cliquez sur Calculate dans la colonne Actions . Sélectionnez les métriques à calculer dans le panneau qui s'affiche.

Suivez la progression des tâches sur la page Jobs . Lorsque toutes les tâches sont terminées, le statut passe à Succeeded.

Afficher les rapports

Sur la page Performance Reports sous Experiment Platform, configurez les paramètres et cliquez sur Start Analysis .

  • Detail Data : affiche les différences de métriques entre l'expérience de référence et les expériences normales

  • Trend Analysis : montre l'évolution des métriques sélectionnées sur la période de l'expérience

Étapes suivantes