Riferimento del nodo di apprendimento automatico in tempo reale (Alpha)

IMPORTANTE

L'apprendimento automatico in tempo reale non è ancora disponibile per tutti gli utenti. Questa funzione è in alfa e viene ancora testata. Questo documento è soggetto a modifiche.

Un nodo è l'unità fondamentale di cui si formano i grafici. Ogni nodo esegue un'attività specifica e può essere concatenato utilizzando i collegamenti per formare un grafico che rappresenta una pipeline ML. L'attività eseguita da un nodo rappresenta un'operazione sui dati di input, ad esempio una trasformazione di dati o schemi o un'inferenza di apprendimento automatico. Il nodo restituisce il valore trasformato o dedotto ai nodi successivi.

La guida seguente illustra le librerie di nodi supportate per il machine learning in tempo reale.

Esplorazione dei nodi da utilizzare nella pipeline ML

Copia il seguente codice in un Python per visualizzare tutti i nodi disponibili.

from pprint import pprint

from rtml_nodelibs.core.nodefactory import NodeFactory as nf
# Discover Nodes
pprint(nf.discover_nodes())

Risposta di esempio

{'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'}

Nozioni standard

I nodi standard si basano su librerie open source di scienza dei dati come Pandas e ScikitLearning.

ModelUpload

Il nodo ModelUpload è un nodo di Adobe interno che prende un percorso_modello e carica il modello dal percorso del modello locale all'archivio BLOB di apprendimento automatico in tempo reale.

model = ModelUpload(params={'model_path': model_path})

msg_model = model.process(None, 1)

model_id = msg_model.model['model_id']

ONNXNode

ONNXNode è un nodo di Adobe interno che prende un ID modello per richiamare il modello ONNX pre-addestrato e lo utilizza per segnare i dati in arrivo.

SUGGERIMENTO

Specificare le colonne nello stesso ordine in cui si desidera inviare i dati al modello ONNX per ottenere il punteggio.

node_model_score = ONNXNode(params={"features": ['browser', 'device', 'login_page', 'product_page', 'search_page'], "model_id": model_id})

Panda

Il seguente nodo Panda consente di importare qualsiasi pd.DataFrame o qualsiasi funzione generale di livello superiore dei panda. Per ulteriori informazioni sui metodi Pandas, visita il Documentazione sui metodi dei panda. Per ulteriori informazioni sulle funzioni di primo livello, visita il Guida di riferimento API per i panda per le funzioni generali.

Il nodo seguente utilizza "import": "map" per importare il nome del metodo come stringa nei parametri, quindi inserendo i parametri come funzione mappa. L’esempio seguente lo fa utilizzando {"arg": {"Desktop": 1, "Mobile": 0}, "na_action": 0}. Dopo aver impostato la mappa, puoi scegliere di inplace come True o False. Imposta inplace come True o False a seconda che si desideri applicare o meno la trasformazione al suo interno. Per impostazione predefinita "inplace": False crea una nuova colonna. Il supporto per fornire un nuovo nome di colonna deve essere impostato per essere aggiunto in una versione successiva. Ultima riga cols può essere un nome di colonna singolo o un elenco di colonne. Specificare le colonne alle quali si desidera applicare la trasformazione. In questo esempio device è specificato.

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

ScikitImpara

Il nodo ScikitLearning consente di importare qualsiasi modello o scaler di ScikitImpara ML. Utilizza la tabella seguente per ulteriori informazioni su uno dei valori utilizzati nell’esempio:

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)
Valore Descrizione
caratteristiche Feature di input nel modello (elenco di stringhe).
Ad esempio: browser, device, login_page, product_page, search_page
label Nome della colonna di destinazione (stringa).
modalità Treno/prova (stringa).
model_path Percorso del modello di salvataggio locale in formato onnx.
params.model Percorso di importazione assoluto del modello (stringa), ad esempio: sklearn.linear_model.LogisticRegression.
params.model_params Iperparametri del modello, vedere API sklearn (map/dict) documentazione per ulteriori informazioni.
node_instance.process(data_message_from_previous_node) Il metodo process() prende DataMsg dal nodo precedente e applica la trasformazione. Questo dipende dal nodo corrente utilizzato.

Dividere

Usa il seguente nodo per dividere il dataframe in treno e test passando train_size o test_size. Questo restituisce un dataframe con un multi-indice. È possibile accedere ai fotogrammi dati del treno e del test utilizzando l'esempio seguente: msg5.data.xs(“train”).

splitter = Split(params={"train_size": 0.7})
msg5 = splitter.process(msg4)

Passaggi successivi

Il passaggio successivo consiste nel creare nodi da utilizzare per il punteggio di un modello di apprendimento automatico in tempo reale. Per ulteriori informazioni, visita il Guida utente del notebook Real-time Machine Learning.

In questa pagina