Translation not up to date
Istnieje możliwość wdrożenia modelu Decision Optimization , utworzenia i monitorowania zadań oraz uzyskania rozwiązań przy użyciu interfejsu REST API Watson Machine Learning.
Zanim rozpoczniesz
- Zaloguj się do programu IBM Cloud.
- Utwórz klucz API. Skopiuj lub pobierz plik z otwartego okna Klucz API pomyślnie utworzony (nie można uzyskać do niego dostępu po zamknięciu tego panelu).
- Utwórz lub wybierz Usługa systemu Machine Learning. Skopiuj nazwę instancji usługi, GUID i CRN z panelu informacji dla instancji w widoku Lista zasobów>Usługi na platformie IBM Cloud. (Rozwiń listę usług w oknie Lista zasobów. Kliknij w dowolnym miejscu wiersza obok nazwy usługi Machine Learning , ale nie w samej nazwie. Spowoduje to otwarcie panelu informacyjnego w tym samym oknie).
- Utwórz lub wybierz Cloud Object Storage. Skopiuj nazwy instancji Cloud Object Storage i CRN z panelu informacji dla instancji w widoku Lista zasobów>Pamięć masowa na platformie IBM Cloud.
- W interfejsie użytkownika https://dataplatform.cloud.ibm.com utwórz obszar wdrażania. Następnie wyświetl go i skopiuj identyfikator obszaru z karty ustawień. Więcej informacji na ten temat zawiera sekcja Tworzenie obszaru wdrażania.
- Za pomocą interfejsu REST API. Patrz sekcja Tworzenie obszaru wdrażania za pomocą interfejsu API REST.
O tym zadaniu
W przypadku użytkowników systemu Windows należy użyć znaku ^ zamiast znaku \ dla wielowierszowych separatorów i podwójnych cudzysłowów " w tych przykładach kodu. Użytkownicy systemu Windows muszą również używać wcięć w co najmniej jednym znaku spacji w wierszach nagłówka.
Dla jasności, niektóre przykłady kodu w tej procedurze zostały umieszczone w pliku json , aby komendy były bardziej czytelne i łatwiejsze w użyciu.
Po utworzeniu wdrożenia przy użyciu interfejsu REST API można również wyświetlić je i wysłać do niego zadania ze strony Obszary wdrażania w interfejsie użytkownika produktu https://dataplatform.cloud.ibm.com .
Procedura
- Wygeneruj token IAM przy użyciu klucza interfejsu API IBM Cloud w następujący sposób.
curl "https://iam.bluemix.net/identity/token" \ -d "apikey=YOUR_API_KEY_HERE&grant_type=urn%3Aibm%3Aparams%3Aoauth%3Agrant-type%3Aapikey" \ -H "Content-Type: application/x-www-form-urlencoded" \ -H "Authorization: Basic Yng6Yng="
Przykład danych wyjściowych:{ "access_token": "****** obtained IAM token ******************************", "refresh_token": "**************************************", "token_type": "Bearer", "expires_in": 3600, "expiration": 1554117649, "scope": "ibm openid" }
Użyj uzyskanego tokenu (wartość access_token) poprzedzonego słowem
Bearer
w nagłówkuAuthorization
orazMachine Learning service GUID
w nagłówkuML-Instance-ID
we wszystkich wywołaniach API. - Opcjonalnie: jeśli nie uzyskano SPACE-ID z interfejsu użytkownika zgodnie z wcześniejszym opisem, można utworzyć obszar przy użyciu interfejsu REST API w następujący sposób. Należy użyć poprzednio uzyskanego znacznika poprzedzonego słowem
bearer
w nagłówkuAuthorization
we wszystkich wywołaniach interfejsu API.curl --location --request POST \ "https://api.dataplatform.cloud.ibm.com/v2/spaces" \ -H "Authorization: Bearer TOKEN-HERE" \ -H "ML-Instance-ID: MACHINE-LEARNING-SERVICE-GUID-HERE" \ -H "Content-Type: application/json" \ --data-raw "{ "name": "SPACE-NAME-HERE", "description": "optional description here", "storage": { "resource_crn": "COS-CRN-ID-HERE" }, "compute": [{ "name": "MACHINE-LEARNING-SERVICE-NAME-HERE", "crn": "MACHINE-LEARNING-SERVICE-CRN-ID-HERE" }] }"
W przypadku użytkowników systemu Windows należy umieścić komendę--data-raw
w jednym wierszu i zastąpić wszystkie wartości"
wartością\"
wewnątrz tej komendy w następujący sposób:
Alternatywnie dane można umieścić w osobnym pliku.curl --location --request POST ^ "https://api.dataplatform.cloud.ibm.com/v2/spaces" ^ -H "Authorization: Bearer TOKEN-HERE" ^ -H "ML-Instance-ID: MACHINE-LEARNING-SERVICE-GUID-HERE" ^ -H "Content-Type: application/json" ^ --data-raw "{\"name\": "SPACE-NAME-HERE",\"description\": \"optional description here\",\"storage\": {\"resource_crn\": \"COS-CRN-ID-HERE\" },\"compute\": [{\"name\": "MACHINE-LEARNING-SERVICE-NAME-HERE\",\"crn\": \"MACHINE-LEARNING-SERVICE-CRN-ID-HERE\" }]}"
Pole SPACE-ID jest zwracane w poluid
sekcjimetadata
.Przykład danych wyjściowych:
{ "entity": { "compute": [ { "crn": "MACHINE-LEARNING-SERVICE-CRN", "guid": "MACHINE-LEARNING-SERVICE-GUID", "name": "MACHINE-LEARNING-SERVICE-NAME", "type": "machine_learning" } ], "description": "string", "members": [ { "id": "XXXXXXX", "role": "admin", "state": "active", "type": "user" } ], "name": "name", "scope": { "bss_account_id": "account_id" }, "status": { "state": "active" } }, "metadata": { "created_at": "2020-07-17T08:36:57.611Z", "creator_id": "XXXXXXX", "id": "SPACE-ID", "url": "/v2/spaces/SPACE-ID" } }
Przed kontynuowaniem należy poczekać, aż status obszaru wdrażania będzie mieć wartość
"active"
. Aby to sprawdzić, można wykonać następujące odpytywanie.curl --location --request GET "https://api.dataplatform.cloud.ibm.com/v2/spaces/SPACE-ID-HERE" \ -H "Authorization: bearer TOKEN-HERE" \ -H "Content-Type: application/json"
- Utwórz nowy modelDecision Optimization
Wszystkie żądania interfejsu API wymagają parametru wersji, który przyjmuje datę w formacie
version=YYYY-MM-DD
. Ten przykładowy kod powoduje opublikowanie modelu korzystającego z plikucreate_model.json
. Adres URL będzie się różnić w zależności od wybranego regionu/lokalizacji usługi uczenia maszynowego. Patrz sekcja Adresy URL punktów końcowych.
Plik create_model.json zawiera następujący kod:curl --location --request POST \ "https://us-south.ml.cloud.ibm.com/ml/v4/models?version=2020-08-01" \ -H "Authorization: bearer TOKEN-HERE" \ -H "Content-Type: application/json" \ -d @create_model.json
{ "name": "ModelName", "description": "ModelDescription", "type": "do-docplex_22.1", "software_spec": { "name": "do_22.1" }, "custom": { "decision_optimization": { "oaas.docplex.python": "3.10" } }, "space_id": "SPACE-ID-HERE" }
WersjaPython jest podana jawnie w bloku
custom
. Ta wartość jest opcjonalna. Bez niego model będzie korzystał z wersji domyślnej, którą jest obecnie Python 3.10. Ponieważ wersja domyślna ewoluuje w czasie, określenie wersji Python w sposób jawny umożliwia jej łatwą zmianę w późniejszym czasie lub używanie starszej obsługiwanej wersji, gdy aktualizowana jest wersja domyślna. Obecnie obsługiwane są wersje 3.10.Aby można było uruchamiać zadania dla tego modelu z interfejsu użytkownika, zamiast używać tylko interfejsu API REST, należy zdefiniować schemat dla danych wejściowych i wyjściowych. Jeśli schemat nie zostanie zdefiniowany podczas tworzenia modelu, można uruchamiać zadania tylko przy użyciu interfejsu API REST, a nie z poziomu interfejsu użytkownika.
Można również użyć schematu określonego dla wejścia i wyjścia w modelu optymalizacji:
{ "name": "Diet-Model-schema", "description": "Diet", "type": "do-docplex_22.1", "schemas": { "input": [ { "id": "diet_food_nutrients", "fields": [ { "name": "Food", "type": "string" }, { "name": "Calories", "type": "double" }, { "name": "Calcium", "type": "double" }, { "name": "Iron", "type": "double" }, { "name": "Vit_A", "type": "double" }, { "name": "Dietary_Fiber", "type": "double" }, { "name": "Carbohydrates", "type": "double" }, { "name": "Protein", "type": "double" } ] }, { "id": "diet_food", "fields": [ { "name": "name", "type": "string" }, { "name": "unit_cost", "type": "double" }, { "name": "qmin", "type": "double" }, { "name": "qmax", "type": "double" } ] }, { "id": "diet_nutrients", "fields": [ { "name": "name", "type": "string" }, { "name": "qmin", "type": "double" }, { "name": "qmax", "type": "double" } ] } ], "output": [ { "id": "solution", "fields": [ { "name": "name", "type": "string" }, { "name": "value", "type": "double" } ] } ] }, "software_spec": { "name": "do_22.1" }, "space_id": "SPACE-ID-HERE" }
Podczas publikowania modelu należy podać informacje o jego typie modelu i specyfikacji oprogramowania , które mają być używane.Typy modeli mogą być na przykład następujące:do-opl_22.1
dla modeli OPLdo-cplex_22.1
dla modeli CPLEXdo-cpo_22.1
dla modeli CP- Modele
do-docplex_22.1
for Python
Wersja 20.1 może być również używana dla tych typów modeli.
Dla specyfikacji oprogramowaniamożna użyć specyfikacji domyślnych, używając ich nazw
do_22.1
lubdo_20.1
. Patrz także notatnik Extend software specification (Rozszerzanie specyfikacji oprogramowania), który przedstawia sposób rozszerzania specyfikacji oprogramowania Decision Optimization (środowiska wykonawcze z dodatkowymi bibliotekami Python dla modeli docplex).W polu
id
wmetadata
zwracana jest wartość MODEL-ID .Przykład danych wyjściowych:{ "entity": { "software_spec": { "id": "SOFTWARE-SPEC-ID" }, "type": "do-docplex_20.1" }, "metadata": { "created_at": "2020-07-17T08:37:22.992Z", "description": "ModelDescription", "id": "MODEL-ID", "modified_at": "2020-07-17T08:37:22.992Z", "name": "ModelName", "owner": "***********", "space_id": "SPACE-ID" } }
- Prześlij Decision Optimization formułę modelu gotową do wdrożenia.Najpierw skompresuj model do pliku (
tar.gz, .zip or .jar
) i prześlij go do wdrożenia przez usługę Watson Machine Learning .W tym przykładzie kodu przesyłany jest model o nazwie diet.zip , który zawiera model Python i nie zawiera wspólnych danych:curl --location --request PUT \ "https://us-south.ml.cloud.ibm.com/ml/v4/models/MODEL-ID-HERE/content?version=2020-08-01&space_id=SPACE-ID-HERE&content_format=native" \ -H "Authorization: bearer TOKEN-HERE" \ -H "Content-Type: application/gzip" \ --data-binary "@diet.zip"
Ten przykład i inne modele można pobrać z serwisu DO-samples. Wybierz odpowiedni podfolder produktu i wersji. - Wdrażanie modeluUtwórz odwołanie do modelu. Użyj parametrów SPACE-ID, MODEL-ID uzyskanych podczas tworzenia modelu gotowego do wdrożenia i specyfikacji sprzętu. Na przykład:
curl --location --request POST "https://us-south.ml.cloud.ibm.com/ml/v4/deployments?version=2020-08-01" \ -H "Authorization: bearer TOKEN-HERE" \ -H "Content-Type: application/json" \ -d @deploy_model.json
The deploy_model.json file contains the following code:
{ "name": "Test-Diet-deploy", "space_id": "SPACE-ID-HERE", "asset": { "id": "MODEL-ID-HERE" }, "hardware_spec": { "name": "S" }, "batch": {} }
Wartość DEPLOYMENT-ID jest zwracana w poluid
w plikumetadata
. Przykład danych wyjściowych:{ "entity": { "asset": { "id": "MODEL-ID" }, "custom": {}, "description": "", "hardware_spec": { "id": "HARDWARE-SPEC-ID", "name": "S", "num_nodes": 1 }, "name": "Test-Diet-deploy", "space_id": "SPACE-ID", "status": { "state": "ready" } }, "metadata": { "created_at": "2020-07-17T09:10:50.661Z", "description": "", "id": "DEPLOYMENT-ID", "modified_at": "2020-07-17T09:10:50.661Z", "name": "test-Diet-deploy", "owner": "**************", "space_id": "SPACE-ID" } }
- Po wdrożeniu można monitorować stan wdrożenia modelu. Użyj wartości DEPLOYMENT-ID.Na przykład:
curl --location --request GET "https://us-south.ml.cloud.ibm.com/ml/v4/deployments/DEPLOYMENT-ID-HERE?version=2020-08-01&space_id=SPACE-ID-HERE" \ -H "Authorization: bearer TOKEN-HERE" \ -H "Content-Type: application/json"
Przykład danych wyjściowych:
- Następnie można wprowadzić zadania dla wdrożonego modelu, definiując dane wejściowe i wyjściowe (wyniki rozwiązania optymalizacji) oraz plik dziennika.Na przykład poniżej przedstawiono zawartość pliku o nazwie
myjob.json
. Zawiera on (wstawiane) dane wejściowe, niektóre parametry rozwiązania i określa, że dane wyjściowe będą plikiem .csv. Przykłady innych typów odwołań do danych wejściowych zawiera sekcja Modelowanie adaptacji danych wejściowych i wyjściowych.
Ten przykładowy kod publikuje zadanie, które korzysta z tego pliku{ "name":"test-job-diet", "space_id": "SPACE-ID-HERE", "deployment": { "id": "DEPLOYMENT-ID-HERE" }, "decision_optimization" : { "solve_parameters" : { "oaas.logAttachmentName":"log.txt", "oaas.logTailEnabled":"true" }, "input_data": [ { "id":"diet_food.csv", "fields" : ["name","unit_cost","qmin","qmax"], "values" : [ ["Roasted Chicken", 0.84, 0, 10], ["Spaghetti W/ Sauce", 0.78, 0, 10], ["Tomato,Red,Ripe,Raw", 0.27, 0, 10], ["Apple,Raw,W/Skin", 0.24, 0, 10], ["Grapes", 0.32, 0, 10], ["Chocolate Chip Cookies", 0.03, 0, 10], ["Lowfat Milk", 0.23, 0, 10], ["Raisin Brn", 0.34, 0, 10], ["Hotdog", 0.31, 0, 10] ] }, { "id":"diet_food_nutrients.csv", "fields" : ["Food","Calories","Calcium","Iron","Vit_A","Dietary_Fiber","Carbohydrates","Protein"], "values" : [ ["Spaghetti W/ Sauce", 358.2, 80.2, 2.3, 3055.2, 11.6, 58.3, 8.2], ["Roasted Chicken", 277.4, 21.9, 1.8, 77.4, 0, 0, 42.2], ["Tomato,Red,Ripe,Raw", 25.8, 6.2, 0.6, 766.3, 1.4, 5.7, 1], ["Apple,Raw,W/Skin", 81.4, 9.7, 0.2, 73.1, 3.7, 21, 0.3], ["Grapes", 15.1, 3.4, 0.1, 24, 0.2, 4.1, 0.2], ["Chocolate Chip Cookies", 78.1, 6.2, 0.4, 101.8, 0, 9.3, 0.9], ["Lowfat Milk", 121.2, 296.7, 0.1, 500.2, 0, 11.7, 8.1], ["Raisin Brn", 115.1, 12.9, 16.8, 1250.2, 4, 27.9, 4], ["Hotdog", 242.1, 23.5, 2.3, 0, 0, 18, 10.4] ] }, { "id":"diet_nutrients.csv", "fields" : ["name","qmin","qmax"], "values" : [ ["Calories", 2000, 2500], ["Calcium", 800, 1600], ["Iron", 10, 30], ["Vit_A", 5000, 50000], ["Dietary_Fiber", 25, 100], ["Carbohydrates", 0, 300], ["Protein", 50, 100] ] } ], "output_data": [ { "id":".*\\.csv" } ] } }
myjob.json
.curl --location --request POST "https://us-south.ml.cloud.ibm.com/ml/v4/deployment_jobs?version=2020-08-01&space_id=SPACE-ID-HERE" \ -H "Authorization: bearer TOKEN-HERE" \ -H "Content-Type: application/json" \ -H "cache-control: no-cache" \ -d @myjob.json
Zwracana jest wartość JOB-ID . Przykład danych wyjściowych: (zadanie jest w kolejce){ "entity": { "decision_optimization": { "input_data": [{ "id": "diet_food.csv", "fields": ["name", "unit_cost", "qmin", "qmax"], "values": [["Roasted Chicken", 0.84, 0, 10], ["Spaghetti W/ Sauce", 0.78, 0, 10], ["Tomato,Red,Ripe,Raw", 0.27, 0, 10], ["Apple,Raw,W/Skin", 0.24, 0, 10], ["Grapes", 0.32, 0, 10], ["Chocolate Chip Cookies", 0.03, 0, 10], ["Lowfat Milk", 0.23, 0, 10], ["Raisin Brn", 0.34, 0, 10], ["Hotdog", 0.31, 0, 10]] }, { "id": "diet_food_nutrients.csv", "fields": ["Food", "Calories", "Calcium", "Iron", "Vit_A", "Dietary_Fiber", "Carbohydrates", "Protein"], "values": [["Spaghetti W/ Sauce", 358.2, 80.2, 2.3, 3055.2, 11.6, 58.3, 8.2], ["Roasted Chicken", 277.4, 21.9, 1.8, 77.4, 0, 0, 42.2], ["Tomato,Red,Ripe,Raw", 25.8, 6.2, 0.6, 766.3, 1.4, 5.7, 1], ["Apple,Raw,W/Skin", 81.4, 9.7, 0.2, 73.1, 3.7, 21, 0.3], ["Grapes", 15.1, 3.4, 0.1, 24, 0.2, 4.1, 0.2], ["Chocolate Chip Cookies", 78.1, 6.2, 0.4, 101.8, 0, 9.3, 0.9], ["Lowfat Milk", 121.2, 296.7, 0.1, 500.2, 0, 11.7, 8.1], ["Raisin Brn", 115.1, 12.9, 16.8, 1250.2, 4, 27.9, 4], ["Hotdog", 242.1, 23.5, 2.3, 0, 0, 18, 10.4]] }, { "id": "diet_nutrients.csv", "fields": ["name", "qmin", "qmax"], "values": [["Calories", 2000, 2500], ["Calcium", 800, 1600], ["Iron", 10, 30], ["Vit_A", 5000, 50000], ["Dietary_Fiber", 25, 100], ["Carbohydrates", 0, 300], ["Protein", 50, 100]] }], "output_data": [ { "id": ".*\\.csv" } ], "solve_parameters": { "oaas.logAttachmentName": "log.txt", "oaas.logTailEnabled": "true" }, "status": { "state": "queued" } }, "deployment": { "id": "DEPLOYMENT-ID" }, "platform_job": { "job_id": "", "run_id": "" } }, "metadata": { "created_at": "2020-07-17T10:42:42.783Z", "id": "JOB-ID", "name": "test-job-diet", "space_id": "SPACE-ID" } }
- Można również monitorować stany zadań. Użyj ID-zadaniaNa przykład:
curl --location --request GET \ "https://us-south.ml.cloud.ibm.com/ml/v4/deployment_jobs/JOB-ID-HERE?version=2020-08-01&space_id=SPACE-ID-HERE" \ -H "Authorization: bearer TOKEN-HERE" \ -H "Content-Type: application/json"
Przykład danych wyjściowych: (zadanie zostało zakończone){ "entity": { "decision_optimization": { "input_data": [{ "id": "diet_food.csv", "fields": ["name", "unit_cost", "qmin", "qmax"], "values": [["Roasted Chicken", 0.84, 0, 10], ["Spaghetti W/ Sauce", 0.78, 0, 10], ["Tomato,Red,Ripe,Raw", 0.27, 0, 10], ["Apple,Raw,W/Skin", 0.24, 0, 10], ["Grapes", 0.32, 0, 10], ["Chocolate Chip Cookies", 0.03, 0, 10], ["Lowfat Milk", 0.23, 0, 10], ["Raisin Brn", 0.34, 0, 10], ["Hotdog", 0.31, 0, 10]] }, { "id": "diet_food_nutrients.csv", "fields": ["Food", "Calories", "Calcium", "Iron", "Vit_A", "Dietary_Fiber", "Carbohydrates", "Protein"], "values": [["Spaghetti W/ Sauce", 358.2, 80.2, 2.3, 3055.2, 11.6, 58.3, 8.2], ["Roasted Chicken", 277.4, 21.9, 1.8, 77.4, 0, 0, 42.2], ["Tomato,Red,Ripe,Raw", 25.8, 6.2, 0.6, 766.3, 1.4, 5.7, 1], ["Apple,Raw,W/Skin", 81.4, 9.7, 0.2, 73.1, 3.7, 21, 0.3], ["Grapes", 15.1, 3.4, 0.1, 24, 0.2, 4.1, 0.2], ["Chocolate Chip Cookies", 78.1, 6.2, 0.4, 101.8, 0, 9.3, 0.9], ["Lowfat Milk", 121.2, 296.7, 0.1, 500.2, 0, 11.7, 8.1], ["Raisin Brn", 115.1, 12.9, 16.8, 1250.2, 4, 27.9, 4], ["Hotdog", 242.1, 23.5, 2.3, 0, 0, 18, 10.4]] }, { "id": "diet_nutrients.csv", "fields": ["name", "qmin", "qmax"], "values": [["Calories", 2000, 2500], ["Calcium", 800, 1600], ["Iron", 10, 30], ["Vit_A", 5000, 50000], ["Dietary_Fiber", 25, 100], ["Carbohydrates", 0, 300], ["Protein", 50, 100]] }], "output_data": [{ "fields": ["Name", "Value"], "id": "kpis.csv", "values": [["Total Calories", 2000], ["Total Calcium", 800.0000000000001], ["Total Iron", 11.278317739831891], ["Total Vit_A", 8518.432542485823], ["Total Dietary_Fiber", 25], ["Total Carbohydrates", 256.80576358904455], ["Total Protein", 51.17372234135308], ["Minimal cost", 2.690409171696264]] }, { "fields": ["name", "value"], "id": "solution.csv", "values": [["Spaghetti W/ Sauce", 2.1551724137931036], ["Chocolate Chip Cookies", 10], ["Lowfat Milk", 1.8311671008899097], ["Hotdog", 0.9296975991385925]] }], "output_data_references": [], "solve_parameters": { "oaas.logAttachmentName": "log.txt", "oaas.logTailEnabled": "true" }, "solve_state": { "details": { "KPI.Minimal cost": "2.690409171696264", "KPI.Total Calcium": "800.0000000000001", "KPI.Total Calories": "2000.0", "KPI.Total Carbohydrates": "256.80576358904455", "KPI.Total Dietary_Fiber": "25.0", "KPI.Total Iron": "11.278317739831891", "KPI.Total Protein": "51.17372234135308", "KPI.Total Vit_A": "8518.432542485823", "MODEL_DETAIL_BOOLEAN_VARS": "0", "MODEL_DETAIL_CONSTRAINTS": "7", "MODEL_DETAIL_CONTINUOUS_VARS": "9", "MODEL_DETAIL_INTEGER_VARS": "0", "MODEL_DETAIL_KPIS": "[\"Total Calories\", \"Total Calcium\", \"Total Iron\", \"Total Vit_A\", \"Total Dietary_Fiber\", \"Total Carbohydrates\", \"Total Protein\", \"Minimal cost\"]", "MODEL_DETAIL_NONZEROS": "57", "MODEL_DETAIL_TYPE": "LP", "PROGRESS_CURRENT_OBJECTIVE": "2.6904091716962637" }, "latest_engine_activity": [ "[2020-07-21T16:37:36Z, INFO] Model: diet", "[2020-07-21T16:37:36Z, INFO] - number of variables: 9", "[2020-07-21T16:37:36Z, INFO] - binary=0, integer=0, continuous=9", "[2020-07-21T16:37:36Z, INFO] - number of constraints: 7", "[2020-07-21T16:37:36Z, INFO] - linear=7", "[2020-07-21T16:37:36Z, INFO] - parameters: defaults", "[2020-07-21T16:37:36Z, INFO] - problem type is: LP", "[2020-07-21T16:37:36Z, INFO] Warning: Model: \"diet\" is not a MIP problem, progress listeners are disabled", "[2020-07-21T16:37:36Z, INFO] objective: 2.690", "[2020-07-21T16:37:36Z, INFO] \"Spaghetti W/ Sauce\"=2.155", "[2020-07-21T16:37:36Z, INFO] \"Chocolate Chip Cookies\"=10.000", "[2020-07-21T16:37:36Z, INFO] \"Lowfat Milk\"=1.831", "[2020-07-21T16:37:36Z, INFO] \"Hotdog\"=0.930", "[2020-07-21T16:37:36Z, INFO] solution.csv" ], "solve_status": "optimal_solution" }, "status": { "completed_at": "2020-07-21T16:37:36.989Z", "running_at": "2020-07-21T16:37:35.622Z", "state": "completed" } }, "deployment": { "id": "DEPLOYMENT-ID" } }, "metadata": { "created_at": "2020-07-21T16:37:09.130Z", "id": "JOB-ID", "modified_at": "2020-07-21T16:37:37.268Z", "name": "test-job-diet", "space_id": "SPACE-ID" } }
- Opcjonalnie: można usunąć zadania w następujący sposób:
curl --location --request DELETE "https://us-south.ml.cloud.ibm.com/ml/v4/deployment_jobs/JOB-ID-HERE?version=2020-08-01&space_id=SPACE-ID-HERE&hard_delete=true" \ -H "Authorization: bearer TOKEN-HERE"
Jeśli zadanie zostanie usunięte za pomocą interfejsu API, będzie ono nadal wyświetlane w interfejsie użytkownika. - Opcjonalnie: można usunąć wdrożenia w następujący sposób:Jeśli zostanie usunięte wdrożenie zawierające zadania korzystające z interfejsu API, zadania będą nadal wyświetlane w obszarze wdrażania w interfejsie użytkownika.
Wyniki
Po wdrożeniu modelu i wykonaniu zadania wyniki rozwiązania są udostępniane bezpośrednio lub w określonym pliku i położeniu, na przykład przy użyciu odwołania S3 . Nowe zadania można publikować przy użyciu identyfikatora wdrożenia bez konieczności ponownego wdrażania modelu.