Een model trainen en evalueren met de API Sensei Machine Learning

NOTE
Data Science Workspace kan niet meer worden aangeschaft.
Deze documentatie is bedoeld voor bestaande klanten met eerdere rechten op Data Science Workspace.

In deze zelfstudie wordt uitgelegd hoe u een model kunt maken, trainen en evalueren met behulp van API-aanroepen. Verwijs naar dit documentvoor een gedetailleerde lijst van API documentatie.

Vereisten

Volg de Invoer een verpakte Ontvanger gebruikend APIvoor het creëren van een Motor, die wordt vereist om een Model te trainen en te evalueren gebruikend API.

Volg het Experience Platform API authentificatieleerprogrammabeginnen API vraag te maken.

In de zelfstudie hebt u nu de volgende waarden:

  • {ACCESS_TOKEN}: De specifieke tokenwaarde voor toonder die na verificatie wordt opgegeven.

  • {ORG_ID}: Uw organisatiereferenties zijn gevonden in uw unieke Adobe Experience Platform-integratie.

  • {API_KEY}: uw specifieke API-sleutelwaarde in uw unieke Adobe Experience Platform-integratie.

  • Koppeling naar een Docker-afbeelding van een intelligente service

API-workflow

We gebruiken de API's om een Experiment Run voor training te maken. Voor deze zelfstudie zullen we ons richten op de eindpunten Engines, MLInstances en Experiments. De volgende grafiek schetst de verhouding tussen drie en introduceert ook het idee van een Looppas en een Model.

NOTE
De termen "Engine", "MLInstance", "MLService", "Experiment" en "Model" worden in de gebruikersinterface aangeduid als verschillende termen. Als u uit UI komt, brengt de volgende lijst de verschillen in kaart.
UI-term
API-term
Recipe
Engine
Model
MLInstance
Trainingsduur
Experimenteer
Service
MLService

Een MLInstance maken

Het creëren van een MLInstance kan worden gedaan gebruikend het volgende verzoek. U zult {ENGINE_ID} gebruiken die toen het creëren van een Motor van was teruggekeerd invoert een verpakte Ontvanger gebruikend de APIleerprogramma.

Verzoek

curl -X POST \
  https://platform.adobe.io/data/sensei/mlInstances \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'Content-Type: application/vnd.adobe.platform.sensei+json;profile=mlInstance.v1.json' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -d `{JSON_PAYLOAD}`

{ACCESS_TOKEN}: De specifieke tokenwaarde voor toonder die na verificatie wordt opgegeven.
{ORG_ID}: Uw organisatiereferenties zijn gevonden in uw unieke Adobe Experience Platform-integratie.
{API_KEY}: uw specifieke API-sleutelwaarde in uw unieke Adobe Experience Platform-integratie.
{JSON_PAYLOAD}: De configuratie van onze MLInstance. Het voorbeeld dat wij in onze zelfstudie gebruiken, wordt hier getoond:

{
    "name": "Retail - Instance",
    "description": "Instance for ML Instance",
    "engineId": "{ENGINE_ID}",
    "createdBy": {
        "displayName": "John Doe",
        "userId": "johnd"
    },
    "tags": {
        "purpose": "tutorial"
    },
    "tasks": [
        {
            "name": "train",
            "parameters": [
                {
                    "key": "numFeatures",
                    "value": "10"
                },
                {
                    "key": "maxIter",
                    "value": "2"
                },
                {
                    "key": "regParam",
                    "value": "0.15"
                },
                {
                    "key": "trainingDataLocation",
                    "value": "sample_training_data.csv"
                }
            ]
        },
        {
            "name": "score",
            "parameters": [
                {
                    "key": "scoringDataLocation",
                    "value": "sample_scoring_data.csv"
                },
                {
                    "key": "scoringResultsLocation",
                    "value": "scoring_results.net"
                }
            ]
        }
    ]
}
NOTE
In {JSON_PAYLOAD} definiëren we parameters die worden gebruikt voor training en scoring in de array tasks . {ENGINE_ID} is de id van de engine die u wilt gebruiken en het veld tag is een optionele parameter die wordt gebruikt om de instantie te identificeren.

De reactie bevat {INSTANCE_ID} die de gemaakte MLInstance vertegenwoordigt. Er kunnen meerdere model-MLInstances met verschillende configuraties worden gemaakt.

Reactie

{
    "id": "{INSTANCE_ID}",
    "name": "Retail - Instance",
    "description": "Instance for ML Instance",
    "engineId": "{ENGINE_ID}",
    "created": "2018-21-21T11:11:11.111Z",
    "createdBy": {
        "displayName": "John Doe",
        "userId": "johnd"
    },
    "updated": "2018-21-01T11:11:11.111Z",
    "deleted": false,
    "tags": {
        "purpose": "tutorial"
    },
    "tasks": [
        {
            "name": "train",
            "parameters": [...]
        },
        {
            "name": "score",
            "parameters": [...]
        }
    ]
}

{ENGINE_ID}: Deze id die de engine vertegenwoordigt waarop de MLInstance wordt gemaakt.
{INSTANCE_ID}: De id die de MLInstance vertegenwoordigt.

Een experiment maken

Een Experiment wordt door een gegevenswetenschapper gebruikt om tijdens de opleiding tot een goed presterend model te komen. De veelvoudige Experimenten omvatten veranderende datasets, eigenschappen, het leren parameters, en hardware. Hieronder ziet u een voorbeeld van het maken van een experiment.

Verzoek

curl -X POST \
  https://platform.adobe.io/data/sensei/experiments \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'Content-Type: application/vnd.adobe.platform.sensei+json;profile=experiment.v1.json' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-api-key: {API_KEY' \
  -d `{JSON PAYLOAD}`

{ORG_ID}: Uw organisatiereferenties zijn gevonden in uw unieke Adobe Experience Platform-integratie.
{ACCESS_TOKEN}: De specifieke tokenwaarde voor toonder die na verificatie wordt opgegeven.
{API_KEY}: uw specifieke API-sleutelwaarde in uw unieke Adobe Experience Platform-integratie.
{JSON_PAYLOAD} : een experimenteel object dat is gemaakt. Het voorbeeld dat wij in onze zelfstudie gebruiken, wordt hier getoond:

{
    "name": "Experiment for Retail ",
    "mlInstanceId": "{INSTANCE_ID}",
    "tags": {
        "test": "guide"
    }
}

{INSTANCE_ID}: De id die de MLInstance vertegenwoordigt.

De reactie van het project Experiment ziet er zo uit.

Reactie

{
    "id": "{EXPERIMENT_ID}",
    "name": "Experiment for Retail",
    "mlInstanceId": "{INSTANCE_ID}",
    "created": "2018-01-01T11:11:11.111Z",
    "updated": "2018-01-01T11:11:11.111Z",
    "deleted": false,
    "tags": {
        "test": "guide"
    }
}

{EXPERIMENT_ID}: De id die staat voor het experiment dat u zojuist hebt gemaakt.
{INSTANCE_ID}: De id die de MLInstance vertegenwoordigt.

Een gepland experiment voor training maken

Gepland Experimenten worden gebruikt zodat wij niet te hoeven om elke enkele Runs van de Experiment via een API vraag tot stand te brengen. In plaats daarvan, verstrekken wij alle noodzakelijke parameters tijdens de verwezenlijking van de Experiment en elke looppas zal periodiek worden gecreeerd.

Als u wilt aangeven dat er een gepland experiment moet worden gemaakt, moet u een template -sectie toevoegen aan de hoofdtekst van het verzoek. In template zijn alle noodzakelijke parameters voor het plannen van runtime opgenomen, zoals tasks , die aangeeft welke actie wordt uitgevoerd, en schedule , die de timing van de geplande uitvoering aangeeft.

Verzoek

curl -X POST \
  https://platform.adobe.io/data/sensei/experiments \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'Content-Type: application/vnd.adobe.platform.sensei+json;profile=experiment.v1.json' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-api-key: {API_KEY}' \
  -d '{JSON_PAYLOAD}`

{ORG_ID}: Uw organisatiereferenties zijn gevonden in uw unieke Adobe Experience Platform-integratie.
{ACCESS_TOKEN}: De specifieke tokenwaarde voor toonder die na verificatie wordt opgegeven.
{API_KEY}: uw specifieke API-sleutelwaarde in uw unieke Adobe Experience Platform-integratie.
{JSON_PAYLOAD}: gegevensset die moet worden gepost. Het voorbeeld dat wij in onze zelfstudie gebruiken, wordt hier getoond:

{
    "name": "Experiment for Retail",
    "mlInstanceId": "{INSTANCE_ID}",
    "template": {
        "tasks": [{
            "name": "train",
            "parameters": [
                   {
                        "value": "1000",
                        "key": "numFeatures"
                    }
            ],
            "specification": {
                "type": "SparkTaskSpec",
                "executorCores": 5,
                "numExecutors": 5
            }
        }],
        "schedule": {
            "cron": "*/20 * * * *",
            "startTime": "2018-11-11",
            "endTime": "2019-11-11"
        }
    }
}

Wanneer we een experiment maken, moet de hoofdtekst, {JSON_PAYLOAD} , de parameter mlInstanceId of mlInstanceQuery bevatten. In dit voorbeeld wordt elke 20 minuten, ingesteld in de parameter cron, door een geplande Experiment een uitvoering aangeroepen die begint op startTime tot en met endTime .

Reactie

{
    "id": "{EXPERIMENT_ID}",
    "name": "Experiment for Retail",
    "mlInstanceId": "{INSTANCE_ID}",
    "created": "2018-11-11T11:11:11.111Z",
    "updated": "2018-11-11T11:11:11.111Z",
    "deleted": false,
    "workflowId": "endid123_0379bc0b_8f7e_4706_bcd9_1a2s3d4f5g_abcdf",
    "template": {
        "tasks": [
            {
                "name": "train",
                "parameters": [...],
                "specification": {
                    "type": "SparkTaskSpec",
                    "executorCores": 5,
                    "numExecutors": 5
                }
            }
        ],
        "schedule": {
            "cron": "*/20 * * * *",
            "startTime": "2018-07-04",
            "endTime": "2018-07-06"
        }
    }
}

{EXPERIMENT_ID}: De id die het experiment vertegenwoordigt.
{INSTANCE_ID}: De id die de MLInstance vertegenwoordigt.

Een experimentele training maken

Als er een entiteit Experiment is gemaakt, kan een trainingrun worden gemaakt en uitgevoerd met de onderstaande oproep. U hebt de instructie {EXPERIMENT_ID} nodig en geeft aan wat mode u wilt activeren in de hoofdtekst van de aanvraag.

Verzoek

curl -X POST \
  https://platform.adobe.io/data/sensei/experiments/{EXPERIMENT_ID}/runs \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'Content-Type: application/vnd.adobe.platform.sensei+json;profile=experimentRun.v1.json' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-api-key: {API_KEY}' \
  -d '{JSON_PAYLOAD}'

{EXPERIMENT_ID}: De id die overeenkomt met het experiment dat u als doel wilt instellen. Dit vindt u in het antwoord bij het maken van uw experiment.
{ORG_ID}: Uw organisatiereferenties zijn gevonden in uw unieke Adobe Experience Platform-integratie.
{ACCESS_TOKEN}: De specifieke tokenwaarde voor toonder die na verificatie wordt opgegeven.
{API_KEY}: uw specifieke API-sleutelwaarde in uw unieke Adobe Experience Platform-integratie.
{JSON_PAYLOAD}: als u een trainingsrun wilt maken, moet u het volgende opnemen in de hoofdtekst:

{
    "mode":"Train"
}

U kunt de configuratieparameters ook overschrijven door een array tasks op te nemen:

{
   "mode":"Train",
   "tasks": [
        {
           "name": "train",
           "parameters": [
                {
                   "key": "numFeatures",
                   "value": "2"
                }
            ]
        }
    ]
}

U krijgt de volgende reactie die u de {EXPERIMENT_RUN_ID} en de configuratie onder tasks laat weten.

Reactie

{
    "id": "{EXPERIMENT_RUN_ID}",
    "mode": "train",
    "experimentId": "{EXPERIMENT_ID}",
    "created": "2018-01-01T11:11:11.903Z",
    "updated": "2018-01-01T11:11:11.903Z",
    "deleted": false,
    "tasks": [
        {
            "name": "Train",
            "parameters": [...]
        }
    ]
}

{EXPERIMENT_RUN_ID}: De id die de experimentele uitvoering vertegenwoordigt.
{EXPERIMENT_ID}: De id die staat voor het experiment dat onder de Experimentatieronde valt.

De status Experimentair uitvoeren ophalen

De status van de uitvoering van het experiment kan worden opgevraagd bij de {EXPERIMENT_RUN_ID} .

Verzoek

curl -X GET \
  https://platform.adobe.io/data/sensei/experiments/{EXPERIMENT_ID}/runs/{EXPERIMENT_RUN_ID}/status \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-api-key: {API_KEY}'

{EXPERIMENT_ID}: De id die het experiment vertegenwoordigt.
{EXPERIMENT_RUN_ID}: De id die de experimentele uitvoering vertegenwoordigt.
{ACCESS_TOKEN}: De specifieke tokenwaarde voor toonder die na verificatie wordt opgegeven.
{ORG_ID}: Uw organisatiereferenties zijn gevonden in uw unieke Adobe Experience Platform-integratie.
{API_KEY}: uw specifieke API-sleutelwaarde in uw unieke Adobe Experience Platform-integratie.

Reactie

De aanroep van de GET geeft de status in de parameter state op, zoals hieronder wordt weergegeven:

{
    "id": "{EXPERIMENT_ID}",
    "name": "RunStatus for experimentRunId {EXPERIMENT_RUN_ID}",
    "experimentRunId": "{EXPERIMENT_RUN_ID}",
    "deleted": false,
    "status": {
        "tasks": [
            {
                "id": "{MODEL_ID}",
                "state": "DONE",
                "tasklogs": [
                    {
                        "name": "execution",
                        "url": "https://mlbaprod1sapwd7jzid.file.core.windows.net/..."
                    },
                    {
                        "name": "stderr",
                        "url": "https://mlbaprod1sapwd7jzid.file.core.windows.net/..."
                    },
                    {
                        "name": "stdout",
                        "url": "https://mlbaprod1sapwd7jzid.file.core.windows.net/..."
                    }
                ]
            }
        ]
    }
}

{EXPERIMENT_RUN_ID}: De id die de experimentele uitvoering vertegenwoordigt.
{EXPERIMENT_ID}: De id die staat voor het experiment dat onder de Experimentatieronde valt.

Naast de status DONE zijn er andere statussen:

  • PENDING
  • RUNNING
  • FAILED

Voor meer informatie kunt u gedetailleerde logboekbestanden vinden onder de parameter tasklogs .

Het getrainde model ophalen

Om het opgeleide model te krijgen hierboven gecreeerd tijdens opleiding, doen wij het volgende verzoek:

Verzoek

curl -X GET \
  'https://platform.adobe.io/data/sensei/models/?property=experimentRunId=={EXPERIMENT_RUN_ID}' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-gw-ims-org-id: {ORG_ID}'

{EXPERIMENT_RUN_ID}: De id die overeenkomt met de uitvoering van het experiment waarop u zich wilt richten. Dit vindt u in het antwoord bij het maken van uw experimentele versie.
{ACCESS_TOKEN}: De specifieke tokenwaarde voor toonder die na verificatie wordt opgegeven.
{ORG_ID}: Uw organisatiereferenties zijn gevonden in uw unieke Adobe Experience Platform-integratie.

De reactie vertegenwoordigt het opgeleide Model dat werd gecreeerd.

Reactie

{
    "children": [
        {
            "id": "{MODEL_ID}",
            "name": "Tutorial trained Model",
            "experimentId": "{EXPERIMENT_ID}",
            "experimentRunId": "{EXPERIMENT_RUN_ID}",
            "description": "trained model for ID",
            "modelArtifactUri": "wasb://test-models@mlpreprodstorage.blob.core.windows.net/{MODEL_ID}",
            "created": "2018-01-01T11:11:11.011Z",
            "updated": "2018-01-01T11:11:11.011Z",
            "deleted": false
        }
    ],
    "_page": {
        "property": "ExperimentRunId=={EXPERIMENT_RUN_ID},deleted!=true",
        "count": 1
    }
}

{MODEL_ID}: De id die overeenkomt met het model.
{EXPERIMENT_ID}: De id die correspondeert met de Experiment Run is lager.
{EXPERIMENT_RUN_ID}: De id die overeenkomt met de proefversie.

Een geplande expert stoppen en verwijderen

Als u de uitvoering van een gepland experiment vóór de endTime ervan wilt stoppen, kunt u dit doen door een verzoek van de DELETE naar de {EXPERIMENT_ID} te vragen

Verzoek

curl -X DELETE \
  'https://platform.adobe.io/data/sensei/experiments/{EXPERIMENT_ID}' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-gw-ims-org-id: {ORG_ID}'

{EXPERIMENT_ID}: De id die overeenkomt met het experiment.
{ACCESS_TOKEN}: De specifieke tokenwaarde voor toonder die na verificatie wordt opgegeven.
{ORG_ID}: Uw organisatiereferenties zijn gevonden in uw unieke Adobe Experience Platform-integratie.

NOTE
Met de API-aanroep wordt het maken van nieuwe experimentele runtime uitgeschakeld. De uitvoering van reeds uitgevoerde experimentele runtime wordt echter niet gestopt.

Hier volgt de reactie waarbij wordt gemeld dat het experiment is verwijderd.

Reactie

{
    "title": "Success",
    "status": 200,
    "detail": "Experiment successfully deleted"
}

Volgende stappen

In deze zelfstudie wordt uitgelegd hoe u de API's kunt gebruiken voor het maken van een engine, een Experiment, geplande experimentele runtime en getrainde modellen. In de volgende oefening, zult u voorspellingen maken door een nieuwe dataset te scoren gebruikend het hoogste uitvoerend getrainde model.

recommendation-more-help
cc79fe26-64da-411e-a6b9-5b650f53e4e9