REST API를 사용하여 기존에 배치된 모델의 Python 버전 변경 (Decision Optimization)

Watson Machine Learning REST API를 사용하여 기존 Decision Optimization 모델을 업데이트할 수 있습니다. 예를 들어, 모델에서 현재 더 이상 사용되지 않는 Python 버전을 명시적으로 지정한 경우에 유용할 수 있습니다.

시작하기 전에

이 변경을 수행하려면 SPACE-ID, MODEL-IDDEPLOYMENT-ID 가 필요합니다. 자세한 정보는 REST API 예제 (Decision Optimization) 를 참조하십시오.

이 태스크에 관한 정보

다음 단계에서는 Watson Machine Learning REST API를 사용하여 기존 Decision Optimization 배치 모델을 업데이트하는 방법을 보여줍니다. REST API 예제에서는 URL 구문으로 데이터를 전송하기 위한 명령줄 도구이자 라이브러리인 curl을 사용합니다. 컬을 다운로드하고 자세한 내용은 http://curl.haxx.se.

Windows 사용자의 경우 다중 행 구분 기호로\대신 ^를 사용하고 큰따옴표를 사용하십시오." 이러한 코드 예제를 통해 또한 Windows 사용자는 헤더 행에서 하나 이상의 문자 공백 들여쓰기를 사용해야 합니다.

명확성을 위해 이 프로시저의 일부 코드 예제는 명령을 보다 쉽게 읽고 사용할 수 있도록 json 파일에 배치되었습니다.

프로시저

기존에 배치된 모델의 Python 버전을 변경하려면 다음을 수행하십시오.

  1. Decision Optimization 모델에 대한 개정 작성

    모든 API 요청에는 version=YYYY-MM-DD형식의 날짜를 사용하는 버전 매개변수가 필요합니다. 이 코드 예제는 update_model.json파일을 사용하는 모델을 게시합니다. URL 은 머신 러닝 서비스를 위해 선택한 지역/위치에 따라 달라집니다.

    curl --request POST \
      "https://HOST-CLUSTER-HERE/ml/v4/models/MODEL-ID-HERE/revisions?version=2025-04-01" \
      -H "Authorization: ZenApiKey <token>" \
      -H "Content-Type: application/json" \
      -d @revise_model.json
    revise_model.json 파일에는 다음 코드가 포함되어 있습니다.
    {
      "commit_message": "Save current model",
      "space_id": "SPACE-ID-HERE"
    }
    다음 단계에서 사용하기 위해 출력에 제공되는 모델 개정 번호 "rev" 을 참고하십시오.
  2. 현재 작업이 영향을 받지 않도록 기존 배치 업데이트:
    curl --request PATCH \
      "https://HOST-CLUSTER-HERE/ml/v4/deployments/DEPLOYMENT-ID-HERE?version=2025-04-01&space_id=SPACE-ID-HERE" \
      -H "Authorization: ZenApiKey <token>" \
      -H "Content-Type: application/json" \
      -d @revise_deploy.json
    revise_deploy.json 파일에는 다음 코드가 포함되어 있습니다.
    [
      {
      "op": "add",
      "path": "/asset",
      "value": {
        "id":"MODEL-ID-HERE",
        "rev":"MODEL-REVISION-NUMBER-HERE"
       }
      }
    ]
  3. 기존 모델을 패치하여 Python 버전을 명시적으로 지정합니다. 3.12
    curl --request PATCH \
      "https://HOST-CLUSTER-HERE/ml/v4/models/MODEL-ID-HERE?rev=MODEL-REVISION-NUMBER-HERE&version=2025-04-01&space_id=SPACE-ID-HERE" \
      -H "Authorization: ZenApiKey <token>" \
      -H "Content-Type: application/json" \
      -d @update_model.json
    명시적으로 명시된 기본 Python 버전 이 있는 update_model.json 파일에는 다음 코드가 포함되어 있습니다.
    [
     {
     "op": "add",
     "path": "/custom",
     "value": {
       "decision_optimization":{
          "oaas.docplex.python": "3.12"
         }
       }
     }
    ]
    또는 기본 버전이 항상 사용되도록 Python 버전에 대한 명시적 언급을 제거하려면 다음을 수행하십시오.
    [
     {
     "op": "remove",
     "path": "/custom/decision_optimization"
     }
    ]
  4. Python 용으로 생성된 모델을 사용하도록 배포를 패치하여 버전 3.12
    curl --request PATCH \
      "https://HOST-CLUSTER-HERE/ml/v4/deployments/DEPLOYMENT-ID-HERE?version=2025-04-01&space_id=SPACE-ID-HERE" \
      -H "Authorization: ZenApiKey <token>" \
      -H "Content-Type: application/json" \
      -d @update_deploy.json
    update_deploy.json 파일에는 다음 코드가 포함되어 있습니다.
    [
     {
       "op": "add",
       "path": "/asset",
       "value": { "id":"MODEL-ID-HERE"}
     }
    ]

결과

모델을 다시 배치하지 않고 DEPLOYMENT-ID를 사용하여 새 작업을 게시할 수 있습니다.