조정된 모델의 프로그래밍 방식 배포

watsonx.ai 에서 사용 사례에 맞춤화된 튜닝된 파운데이션 모델을 프로그래밍 방식으로 배포할 수 있습니다.

다음 기법 중 하나로 튜닝된 파운데이션 모델을 배포할 수 있습니다:

  • 완벽한 미세 조정
  • 저순위 적응( LoRA ) 미세 조정
  • 양자화된 저랭크 적응( QLoRA ) 미세 조정
필수 권한
조정된 모델을 배포하려면 프로젝트에서 관리자 또는 편집자 역할이 있어야 합니다.
필수 자격 증명서
watsonx.ai 의 API를 인증하려면 자격 증명을 생성해야 합니다. 자세한 내용은 베어러 토큰 생성을 참조하십시오.

개발 방법

다음과 같은 프로그래밍 방법을 사용하여 다양한 기법으로 튜닝된 기본 또는 사용자 정의 파운데이션 모델을 배포할 수 있습니다:

watsonx.ai 배포 API 사용 권한을 설정하려면 개발자 리소스를 참조하십시오.

2.3.1 부터 텍스트 생성 API는 중단 예정이며 향후 제거될 예정입니다.

또는 UI에서 튜닝된 기본 모델이나 사용자 정의 파운데이션 모델을 배포할 수 있습니다. 자세한 내용은 UI에서 튜닝된 모델 배포를 참조하십시오.

휴식 (REST API)

각 튜닝 기법과 IBM 에서 제공하는 기본 파운데이션 모델을 배포하든 사용자 정의 파운데이션 모델을 배포하든 상관없이 따르는 고수준 단계는 대부분 동일합니다.

주요 차이점은 파운데이션 모델 자산 배포를 위한 REST API 요청 본문에 포함해야 하는 값이며, LoRA 및 QLoRA 에서 튜닝된 모델의 경우 어댑터 모델 자산도 반드시 배포해야 합니다.

API 메서드 세부 정보는 watsonx.ai API 참조 문서의 및 Deployments Trainings 메서드를 참조하십시오.

  1. 선택 사항: 모델을 튜닝할 때 해당 auto_update_model 옵션이 활성화되지 않은 경우, 튜닝된 모델에 대한 자산이 저장소 서비스에 자동으로 생성되지 않았습니다. 최적화된 기초 모델 자산을 생성해야 합니다.

    1. REST API 요청에 튜닝된 모델 세부 정보를 제공하여 기본 파운데이션 모델 자산을 생성합니다. 어떤 튜닝 방법으로든 튜닝된 기본 모델에 대한 자산을 생성하려면 다음 REST API 요청 예시를 사용하십시오:

      curl -X POST "/ml/v4/models?version=2025-12-15" \
      -H "Authorization: Bearer ${TOKEN}" \
      -H "content-type: application/json" \
      --data '{
        "name":"base foundation model asset",
        "space_id":"<space_id>",
        "foundation_model":{
          "model_id":"ibm/granite-3-1-8b-base"
        },
        "type":"base_foundation_model_1.0",
        "software_spec":{
          "name":"watsonx-cfm-caikit-1.1"
        }
      }'
      
    2. LoRA 또는 QLoRA 미세 조정 전용: 어댑터 모델 에셋 생성.

      LoRA 또는 QLoRA 어댑터의 미세 조정 훈련 프로세스가 완료된 후, LoRA 또는 QLoRA 어댑터의 콘텐츠가 지속적 볼륨 클레임(PVC)에 저장됩니다. 모델 콘텐츠는 PVC 내 모델 이름으로 명명된 디렉터리에 기록됩니다. 모델 생성 입력 페이로드에서 foundation_model.model_id PVC 이름을 로 제공해야 합니다.

      다음 코드 샘플은 LoRA 또는 QLoRA 어댑터 모델 자산을 생성하는 방법을 보여줍니다:

      curl -X POST "/ml/v4/models?version=2025-12-15" \
      -H "Authorization: Bearer ${TOKEN}" \
      -H "content-type: application/json" \
      --data '{
        "name":"lora adapter model asset",
        "space_id":"<space_id>",
        "foundation_model":{
          "model_id":"finetunedadapter-385316ea-1d25-4274-9550-e387a1355241" // PVC name
        },
        "type":"lora_adapter_1.0",
        "software_spec":{
          "name":"watsonx-cfm-caikit-1.1"
        },
        "training":{
          "base_model":{
            "model_id":"ibm/granite-3-1-8b-base"
          },
          "task_id":"summarization",
          "fine_tuning": {
              "peft_parameters": {
                  "type": "lora",
                  "rank": 8
              }
          }
        }
      }'
      
  2. 조정된 파운데이션 모델 자산을 배포합니다.

    완벽한 미세 조정

    다음 샘플 REST API 요청은 완전히 미세 조정된 파운데이션 모델 자산을 배포합니다:

    curl -X POST "https://cpd-<namespace-name>.apps.<OCP-domain>/ml/v4/deployments?version=2025-12-15" \
    -H "Authorization: Bearer ${TOKEN}" \
    -H "content-type: application/json" \
    --data '{
      "asset":{
        "id": "<asset_id>"  // Base foundation model asset
      },
      "online":{
        "parameters":{
          "serving_name": "basefmservingname",
          "foundation_model": {
            "max_batch_weight": 10000,
            "max_sequence_length": 8192,
          }
        }
      },
      "hardware_spec": {  // Specify either "id" or "name", only one can be used.
        "id": "<hardware_spec_id>",
        "num_nodes": 1
      },
      "description": "Testing deployment using base foundation model",
      "name": "full_fine_tune_fm_deployment",
      "space_id": "<space_id>"  // Specify either project_id or space_id; only one can be used
    }'
    
    LoRA 또는 QLoRA 미세 조정
    1. 기본 파운데이션 모델 자산을 배포합니다. LoRA 또는 QLoRA 의 미세 조정된 모델에 대한 온라인 배포를 생성하려면 REST API 요청 본문의 enable_loratrue 매개변수를 로 설정해야 합니다. 이를 통해 기본 파운데이션 모델을 사용하여 LoRA 또는 QLoRA 어댑터를 배포할 수 있습니다.

      다음 REST API 요청은 기본 파운데이션 모델 자산에 대한 온라인 배포를 생성하는 방법을 보여줍니다:

      curl -X POST "https://cpd-<namespace-name>.apps.<OCP-domain>/ml/v4/deployments?version=2025-12-15" \
      -H "Authorization: Bearer ${TOKEN}" \
      -H "content-type: application/json" \
      --data '{
        "asset":{
          "id": "<asset_id>"  // Base foundation model asset
        },
        "online":{
          "parameters":{
            "serving_name": "basefmservingname",
            "foundation_model": {
              "max_batch_weight": 10000,
              "max_sequence_length": 8192,
              "enable_lora": true,
              "max_gpu_loras": 8,
              "max_cpu_loras": 16,
              "max_lora_rank": 32
            }
          }
        },
        "hardware_spec": {  // Specify either "id" or "name", only one can be used.
          "id": "<hardware_spec_id>",
          "num_nodes": 1
        },
        "description": "Testing deployment using base foundation model",
        "name": "base_fm_deployment",
        "space_id": "<space_id>"  // Specify either project_id or space_id; only one can be used.
      }'
      
    2. 배포된 기본 파운데이션 모델 배포 ID를 사용하여 LoRA 또는 QLoRA 어댑터를 기본 파운데이션 모델 위에 추가 레이어로 배포하십시오. 다음 REST API 요청 샘플은 어댑터 모델 자산에 대한 배포를 생성하는 방법을 보여줍니다:

      curl -X POST "https://cpd-<namespace-name>.apps.<OCP-domain>/ml/v4/deployments?version=2025-12-15" \
      -H "Authorization: Bearer ${TOKEN}" \
      -H "content-type: application/json" \
      --data '{
        "asset":{
          "id":<asset_id>  // LoRA adapter model asset
        },
        "online":{
          "parameters":{
            "serving_name":"lora_adapter_dep"
          }
        },
        "base_deployment_id": "<your base foundation model deployment ID>",
        "description": "Testing deployment using lora adapter model",
        "name":"lora_adapter_deployment",
        "space_id":<space_id>  // Specify either project_id or space_id; only one can be used.
      }'
      

    API 응답에는 필드에 metadata.id 배포 ID가 포함됩니다.

  3. 배포 ID를 사용하여 배포 상태를 조회하고 상태가 에서 initializing 로 변경될 ready때까지 대기하십시오.

    curl -X GET "https://cpd-<namespace-name>.apps.<OCP-domain>/ml/v4/deployments/<deployment_id>?version=2025-12-15&space_id=<space_id>" \
    -H "Authorization: Bearer ${TOKEN}"
    

    배포가 성공적으로 생성된 후, 폴링 상태는 를 deployed_asset_type 반환합니다 base_foundation_model.

    "deployed_asset_type": "base_foundation_model"
    
  4. watsonx.ai 텍스트 생성 API를 사용하여 튜닝된 모델을 테스트하기 위한 배포를 다음과 같이 추론하십시오:

    curl -X POST "https://cpd-<namespace-name>.apps.<OCP-domain>/ml/v1/deployments/<deployment_id>/text/generation?version=2025-12-15" \
    -H "Authorization: Bearer ${TOKEN}" \
    -H "content-type: application/json" \
    --data '{
    "input": "What is the boiling point of water?",
    "parameters": {
      "max_new_tokens": 200,
      "min_new_tokens": 20
    }
    }'
    

Python

Python 라이브러리를 사용하면 IBM watsonx.ai 에 세밀하게 조정된 기본 모델을 프로그래밍 방식으로 배포할 수 있습니다. 자세한 내용은 Deployments.create () 메서드를 참조하십시오.

시작하려면 다음 샘플 노트북을 참조하세요: