L'apprentissage automatique en temps réel n'est pas encore disponible pour tous les utilisateurs. Cette fonction est en alpha et est encore en cours de test. Ce document est sujet à changement.
Un noeud est l’unité fondamentale dont les graphiques sont formés. Chaque noeud exécute une tâche spécifique et peut être chaîné ensemble à l’aide de liens afin de former un graphique représentant un pipeline ML. La tâche exécutée par un noeud représente une opération sur les données d’entrée, telle qu’une transformation de données ou de schéma, ou une inférence d’apprentissage automatique. Le noeud envoie la valeur transformée ou déduite au(x) noeud(s) suivant(s).
Le guide suivant décrit les bibliothèques de noeuds prises en charge pour l’apprentissage automatique en temps réel.
Copiez le code suivant dans un Python bloc-notes pour vue tous les noeuds disponibles pour l'utilisation.
from pprint import pprint
from rtml_nodelibs.core.nodefactory import NodeFactory as nf
# Discover Nodes
pprint(nf.discover_nodes())
Exemple de réponse
{'FieldOps': 'rtml_nodelibs.nodes.standard.preprocessing.fieldops.FieldOps',
'FieldTrans': 'rtml_nodelibs.nodes.standard.preprocessing.fieldtrans.FieldTrans',
'ModelUpload': 'rtml_nodelibs.nodes.standard.ml.artifact_utils.ModelUpload',
'ONNXNode': 'rtml_nodelibs.nodes.standard.ml.onnx.ONNXNode',
'Pandas': 'rtml_nodelibs.nodes.standard.preprocessing.pandasnode.Pandas',
'Processor': 'rtml_nodelibs.nodes.standard.preprocessing.processor.Processor',
'Receiver': 'rtml_nodelibs.nodes.standard.preprocessing.receiver.Receiver',
'ScikitLearn': 'rtml_nodelibs.nodes.standard.ml.scikitlearn.ScikitLearn',
'Simulator': 'rtml_nodelibs.nodes.standard.preprocessing.simulator.Simulator',
'Split': 'rtml_nodelibs.nodes.standard.preprocessing.splitter.Split'}
Les noeuds standard s'appuient sur les bibliothèques de données open source telles que Pandas et ScikitLearn.
Le noeud ModelUpload est un noeud d'Adobe interne qui prend un chemin_modèle et télécharge le modèle depuis le chemin d'accès du modèle local vers la banque de blocs d'apprentissage automatique en temps réel.
model = ModelUpload(params={'model_path': model_path})
msg_model = model.process(None, 1)
model_id = msg_model.model['model_id']
ONNXNode est un noeud d'Adobe interne qui utilise un ID de modèle pour extraire le modèle ONNX préentraîné et l'utilise pour marquer les données entrantes.
Spécifiez les colonnes dans le même ordre que celui dans lequel vous souhaitez que les données soient envoyées au modèle ONNX pour obtenir un score.
node_model_score = ONNXNode(params={"features": ['browser', 'device', 'login_page', 'product_page', 'search_page'], "model_id": model_id})
Le noeud Pandas suivant vous permet d’importer n’importe quelle pd.DataFrame
méthode ou fonction générale de niveau supérieur pandas. Pour en savoir plus sur les méthodes Pandas, consultez la documentation sur les méthodesPandas. Pour plus d'informations sur les fonctions de niveau supérieur, consultez le guide de référence de l'API Pandas pour les fonctionsgénérales.
Le noeud ci-dessous utilise "import": "map"
pour importer le nom de la méthode sous la forme d’une chaîne dans les paramètres, puis pour entrer les paramètres sous la forme d’une fonction de mappage. L’exemple ci-dessous effectue cette opération en utilisant {"arg": {"Desktop": 1, "Mobile": 0}, "na_action": 0}
. Une fois la carte en place, vous avez la possibilité de la définir inplace
en tant que True
ou False
. Définissez inplace
la variable comme True
ou False
selon si vous souhaitez appliquer ou non la transformation. Par défaut, "inplace": False
crée une colonne. La prise en charge d’un nouveau nom de colonne est définie pour être ajoutée dans une version ultérieure. La dernière ligne cols
peut être un nom de colonne unique ou une liste de colonnes. Spécifiez les colonnes sur lesquelles vous souhaitez appliquer la transformation. Dans cet exemple, device
est spécifié.
# df["device"] = df["device"].map({"Desktop":1, "Mobile":0}, na_action=0)
node_device_apply = Pandas(params={"import": "map",
"kwargs": {"arg": {"Desktop": 1, "Mobile": 0}, "na_action": 0},
"inplace": True,
"cols": "device"})
# df["browser"] = df["browser"].map({"chrome": 1, "firefox": 0}, "na_action": 0})
node_browser_apply = Pandas(params={"import": "map",
"kwargs": {"arg": {"chrome": 1, "firefox": 0}, "na_action": 0},
"inplace": True,
"cols": "browser"})
Le noeud ScikitLearn vous permet d'importer n'importe quel modèle ou scaler ScikitLearn ML. Utilisez le tableau ci-dessous pour plus d’informations sur l’une des valeurs utilisées dans l’exemple :
model_train = ScikitLearn(params={
"features":['browser', 'device', 'login_page', 'product_page', 'search_page'],
"label": "payment_confirm",
"mode": "train",
"model_path": "resources/model.onnx",
"params": {
"model": "sklearn.linear_model.LogisticRegression",
"model_params": {"solver" : 'lbfgs'}
}})
msg6 = model_train.process(msg5)
Valeur | Description |
---|---|
features | Fonctionnalités d'entrée du modèle (liste de chaînes). Par exemple: browser , device , login_page , product_page , search_page |
label | Nom de la colonne de cible (chaîne). |
mode | Train/test (chaîne). |
model_path | Chemin d'accès au modèle d'enregistrement local au format unique. |
params.model | Chemin d'importation absolu du modèle (chaîne), par exemple : sklearn.linear_model.LogisticRegression . |
params.model_params | Les hyperparamètres du modèle, consultez la documentation de l’API sklearn (map/dict) pour plus d’informations. |
node_instance.process(data_message_from_previous_node) | La méthode process() prend DataMsg du noeud précédent et applique la transformation. Cela dépend du noeud actif utilisé. |
Utilisez le noeud suivant pour fractionner votre dataframe en train et tester en passant train_size
ou test_size
. Cette opération renvoie une base de données avec un index multiple. Vous pouvez accéder aux jeux de données de train et de test à l'aide de l'exemple suivant, msg5.data.xs(“train”)
.
splitter = Split(params={"train_size": 0.7})
msg5 = splitter.process(msg4)
L’étape suivante consiste à créer des noeuds à utiliser pour marquer un modèle d’apprentissage automatique en temps réel. Pour plus d'informations, consultez le guide d'utilisation du bloc-notesd'apprentissage automatique en temps réel.