Men-deploy model dengan bobot kustom

Men-deploy model dengan bobot kustom adalah penawaran Pratinjau. Anda dapat menyesuaikan model berdasarkan serangkaian model dasar yang telah ditentukan sebelumnya, dan men-deploy model yang disesuaikan di Vertex AI Model Garden. Anda dapat men-deploy model kustom menggunakan impor bobot kustom dengan mengupload artefak model ke bucket Cloud Storage di project Anda, yang merupakan pengalaman sekali klik di Vertex AI.

Dukungan Kontrol Layanan VPC untuk bobot kustom tersedia.

Model yang didukung

Pratinjau publik Deploy model dengan bobot kustom didukung oleh model dasar berikut:

Nama model Version
Llama
  • Llama-2: 7B, 13B
  • Llama-3.1: 8B, 70B
  • Llama-3.2: 1B, 3B
  • Llama-4: Scout-17B, Maverick-17B
  • CodeLlama-13B
Gemma
  • Gemma-2: 9B, 27B
  • Gemma-3: 1B, 4B, 3-12B, 27B
  • Medgemma: 4B, 27B-text
Qwen
  • Qwen2: 1,5 M
  • Qwen2.5: 0,5 M, 1,5 M, 7 M, 32 M
  • Qwen3: 0,6B, 1,7B, 8B, 32B, Qwen3-Coder-480B-A35B-Instruct, Qwen3-Next-80B-A3B-Instruct, Qwen3-Next-80B-A3B-Thinking
Deepseek
  • Deepseek-R1
  • Deepseek-V3
  • DeepSeek-V3.1
Mistral dan Mixtral
  • Mistral-7B-v0.1
  • Mixtral-8x7B-v0.1
  • Mistral-Nemo-Base-2407
Phi-4
  • Phi-4-reasoning
OSS OpenAI
  • gpt-oss: 20B, 120B

Batasan

Bobot kustom tidak mendukung impor model terkuantisasi.

File model

Anda harus menyediakan file model dalam format bobot Hugging Face. Untuk mengetahui informasi selengkapnya tentang format bobot Hugging Face, lihat Menggunakan Model Hugging Face.

Jika file yang diperlukan tidak disediakan, deployment model mungkin gagal.

Tabel ini mencantumkan jenis file model, yang bergantung pada arsitektur model:

Konten file model Jenis file
Konfigurasi model
  • config.json
Bobot model
  • *.safetensors
  • *.bin
Indeks bobot
  • *.index.json
File tokenizer
  • tokenizer.model
  • tokenizer.json
  • tokenizer_config.json

Lokasi

Anda dapat men-deploy model kustom di semua region dari layanan Model Garden.

Prasyarat

Bagian ini menunjukkan cara men-deploy model kustom Anda.

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  9. Tutorial ini mengasumsikan bahwa Anda menggunakan Cloud Shell untuk berinteraksi dengan Google Cloud. Jika Anda ingin menggunakan shell yang berbeda, bukan Cloud Shell, lakukan konfigurasi tambahan berikut:

    1. Install the Google Cloud CLI.

    2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    3. To initialize the gcloud CLI, run the following command:

      gcloud init

    Men-deploy model kustom

    Bagian ini menunjukkan cara men-deploy model kustom Anda.

    Jika Anda menggunakan antarmuka command line (CLI), Python, atau JavaScript, ganti variabel berikut dengan nilai agar contoh kode Anda berfungsi:

    • REGION: Region Anda. Misalnya, uscentral1.
    • MODEL_GCS: Model Google Cloud Anda. Contoh, gs://custom-weights-fishfooding/meta-llama/Llama-3.2-1B-Instruct.
    • PROJECT_ID: Project ID Anda.
    • MODEL_ID: ID model Anda.
    • MACHINE_TYPE: Jenis mesin Anda. Contohnya, g2-standard-12.
    • ACCELERATOR_TYPE: Jenis akselerator Anda. Contohnya, NVIDIA_L4.
    • ACCELERATOR_COUNT: Jumlah akselerator Anda.
    • PROMPT: Perintah teks Anda.

    Konsol

    Langkah-langkah berikut menunjukkan cara menggunakan konsol Google Cloud untuk men-deploy model dengan bobot kustom.

    1. Di konsol Google Cloud , buka halaman Model Garden.

      Buka Model Garden

    2. Klik Deploy model with custom weights. Panel Deploy a model with custom weights akan muncul.

    3. Di bagian Sumber model, lakukan hal berikut:

      1. Klik Telusuri, lalu pilih bucket tempat model Anda disimpan, dan klik Pilih.

      2. Opsional: Masukkan nama model Anda di kolom Model name.

    4. Di bagian Deployment settings, lakukan hal berikut:

      1. Dari kolom Region, pilih region Anda, lalu klik OK.

      2. Di kolom Spesifikasi Mesin, pilih spesifikasi mesin Anda, yang digunakan untuk men-deploy model Anda.

      3. Opsional: Di kolom Endpoint name, endpoint model Anda akan muncul secara default. Namun, Anda dapat memasukkan nama endpoint yang berbeda di kolom.

      4. Jika project Anda menerapkan VPC-SC atau jika Anda lebih memilih akses pribadi, pilih Pribadi (Private Service Connect) dari kolom Akses endpoint. Jika tidak, pilih Publik.

      5. Jika Anda menggunakan Private Service Connect, masukkan ID project Anda ke dalam kolom Project IDs yang merupakan project tempat klien kueri Anda berjalan, atau klik Select project IDs untuk menampilkan dialog yang berisi ID project.

        Jika Anda mengklik Select project IDs, lakukan hal berikut:

        1. Temukan project Anda yang berisi kode yang mencoba mengakses model.
        2. Klik kotak centang project Anda.
        3. Klik Pilih.
    5. Klik Deploy.

    gcloud CLI

    Perintah ini menunjukkan cara men-deploy model ke region tertentu.

    gcloud ai model-garden models deploy --model=${MODEL_GCS} --region ${REGION}
    

    Perintah ini menunjukkan cara men-deploy model ke region tertentu dengan jenis mesin, jenis akselerator, dan jumlah akseleratornya. Jika ingin memilih konfigurasi mesin tertentu, Anda harus menyetel ketiga kolom.

    gcloud ai model-garden models deploy --model=${MODEL_GCS} --machine-type=${MACHINE_TYE} --accelerator-type=${ACCELERATOR_TYPE} --accelerator-count=${ACCELERATOR_COUNT} --region ${REGION}
    

    Python

    import vertexai
    from google.cloud import aiplatform
    from vertexai.preview import model_garden
    
    vertexai.init(project=${PROJECT_ID}, location=${REGION})
    custom_model = model_garden.CustomModel(
      gcs_uri=GCS_URI,
    )
    endpoint = custom_model.deploy(
      machine_type="${MACHINE_TYPE}",
      accelerator_type="${ACCELERATOR_TYPE}",
      accelerator_count="${ACCELERATOR_COUNT}",
      model_display_name="custom-model",
      endpoint_display_name="custom-model-endpoint")
    
    endpoint.predict(instances=[{"prompt": "${PROMPT}"}], use_dedicated_endpoint=True)
    

    Atau, Anda tidak perlu meneruskan parameter ke metode custom_model.deploy().

    import vertexai
    from google.cloud import aiplatform
    from vertexai.preview import model_garden
    
    vertexai.init(project=${PROJECT_ID}, location=${REGION})
    custom_model = model_garden.CustomModel(
      gcs_uri=GCS_URI,
    )
    endpoint = custom_model.deploy()
    
    endpoint.predict(instances=[{"prompt": "${PROMPT}"}], use_dedicated_endpoint=True)
    

    curl

    
    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:deploy" \
      -d '{
        "custom_model": {
        "gcs_uri": "'"${MODEL_GCS}"'"
      },
      "destination": "projects/'"${PROJECT_ID}"'/locations/'"${REGION}"'",
      "model_config": {
         "model_user_id": "'"${MODEL_ID}"'",
      },
    }'
    

    Atau, Anda dapat menggunakan API untuk menetapkan jenis mesin secara eksplisit.

    
    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://${REGION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${REGION}:deploy" \
      -d '{
        "custom_model": {
        "gcs_uri": "'"${MODEL_GCS}"'"
      },
      "destination": "projects/'"${PROJECT_ID}"'/locations/'"${REGION}"'",
      "model_config": {
         "model_user_id": "'"${MODEL_ID}"'",
      },
      "deploy_config": {
        "dedicated_resources": {
          "machine_spec": {
            "machine_type": "'"${MACHINE_TYPE}"'",
            "accelerator_type": "'"${ACCELERATOR_TYPE}"'",
            "accelerator_count": '"${ACCELERATOR_COUNT}"'
          },
          "min_replica_count": 1
        }
      }
    }'
    

    Men-deploy menggunakan API

    VPC Service Controls hanya berfungsi dengan endpoint khusus pribadi. Oleh karena itu, Anda harus menyetel private_service_connect_config dalam contoh kode berikut, yang menunjukkan cara men-deploy menggunakan API:

    curl

      curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://us-central1-aiplatform.googleapis.com/v1beta1/projects/YOUR_PROJECT/locations/us-central1:deploy" \
        -d '{
          "custom_model": {
            "model_id": "test-mg-deploy-092301",
            "gcs_uri": "gs://YOUR_GCS_BUCKET"
          },
          "destination": "projects/YOUR_PROJECT/locations/us-central1",
          "endpoint_config": {
            "endpoint_display_name": "psc-ep1",
            "private_service_connect_config": {
              "enablePrivateServiceConnect": true,
              "projectAllowlist": ["YOUR_PROJECT"]
            }
          },
          "deploy_config": {
            "dedicated_resources": {
              "machine_spec": {
                "machine_type": "g2-standard-24",
                "accelerator_type": "NVIDIA_L4",
                "accelerator_count": 2
              },
              "min_replica_count": 1,
              "max_replica_count": 1
            }
          }
        }'
    

    Dapatkan ID endpoint dan ID model menggunakan konsol Google Cloud

    Setelah deployment selesai, ikuti langkah-langkah berikut:

    1. Di konsol Google Cloud , buka halaman Model Garden.

      Buka Model Garden

    2. Klik Lihat endpoint & model saya.

    3. Di tabel Endpoint saya, periksa endpoint yang baru saja Anda deploy dari kolom ** Nama. Halaman Details akan ditampilkan.

    4. Klik model di tabel Model yang di-deploy.

    5. Pilih halaman Detail versi. ID model ditampilkan di baris Environment variables dalam tabel.

    Menyiapkan Private Service Connect

    Anda menambahkan endpoint baru untuk mengakses API Google . Endpoint ini dapat digunakan di semua region jaringan VPC yang Anda pilih. Selain itu, pertimbangkan hal berikut:

    • Klien dalam jaringan yang terhubung ke jaringan VPC endpoint menggunakan konektivitas hybrid dapat mengakses endpoint. Untuk mengetahui informasi selengkapnya, lihat Mengakses Google API melalui endpoint.
    • Klien di jaringan VPC yang di-peering tidak dapat mengakses endpoint.

    Endpoint daftar untuk mendapatkan lampiran layanan

    Contoh kode ini menunjukkan cara mencantumkan endpoint untuk mendapatkan lampiran layanan.

    curl

    $ curl \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://us-central1-aiplatform.googleapis.com/v1beta1/projects/YOUR_PROJECT/locations/us-central1/endpoints/YOUR_ENDPOINT_ID"
    

    Ini adalah respons endpoint daftar.

      {
      "name": "projects/440968033208/locations/us-central1/endpoints/mg-endpoint-2c6ae2be-1491-43fe-b179-cb5a63e2c955",
      "displayName": "psc-ep1",
      "deployedModels": [
        {
          "id": "4026753529031950336",
          "model": "projects/440968033208/locations/us-central1/models/mg-custom-1758645924",
          "displayName": "null-null-null-1758645933",
          "createTime": "2025-09-23T16:45:45.169195Z",
          "dedicatedResources": {
            "machineSpec": {
              "machineType": "g2-standard-24",
              "acceleratorType": "NVIDIA_L4",
              "acceleratorCount": 2
            },
            "minReplicaCount": 1,
            "maxReplicaCount": 1
          },
          "enableContainerLogging": true,
          "privateEndpoints": {
            "serviceAttachment": "projects/qdb392d34e2a11149p-tp/regions/us-central1/serviceAttachments/gkedpm-fbbc4061323c91c14ab4d961a2f8b0"
          },
          "modelVersionId": "1",
          "status": {
            "lastUpdateTime": "2025-09-23T17:26:10.031652Z",
            "availableReplicaCount": 1
          }
        }
      ],
      "trafficSplit": {
        "4026753529031950336": 100
      },
      "etag": "AMEw9yPIWQYdbpHu6g6Mhpu1_10J062_oR9Jw9txrp8dFFbel7odLgSK8CGIogAUkR_r",
      "createTime": "2025-09-23T16:45:45.169195Z",
      "updateTime": "2025-09-23T17:13:36.320873Z",
      "privateServiceConnectConfig": {
        "enablePrivateServiceConnect": true,
        "projectAllowlist": [
          "ucaip-vpc-s-1605069239-dut-24"
        ]
      }
    }
    

    Membuat Private Service Connect

    Untuk membuat Private Service Connect (PSC), ikuti langkah-langkah berikut:

    1. Di konsol Google Cloud , buka halaman Private Service Connect. Halaman Connected endpoints akan ditampilkan.

      Buka Private Service Connect

    2. Klik + Hubungkan endpoint. Halaman Connect endpoint akan muncul.

    3. Pilih opsi dari kolom Target. Anda dapat memilih Google API yang menyediakan akses ke sebagian besar API dan layanan atau Layanan yang dipublikasikan yang menyediakan akses ke layanan yang dipublikasikan. Google

    4. Dari bagian Detail target, pilih nilai dari daftar Cakupan, dan pilih nilai dari daftar Jenis paket.

    5. Dari bagian Endpoint details, lakukan hal berikut:

      1. Masukkan nama di kolom Endpoint name.
      2. Pilih nilai dari daftar Network. Pilih jaringan VPC yang berada di project Anda. Jika Anda harus membuat endpoint PSC di project layanan yang menggunakan jaringan VPC Bersama di project host, gunakan Google Cloud CLI, atau kirim permintaan API.
      3. Pilih nilai dari daftar IP address.
    6. Luaskan bagian Service directory.

    7. Pilih region dari daftar Region.

    8. Pilih namespace dari daftar Namespace.

    9. Klik Add endpoint. Tabel Endpoints diperbarui dengan baris untuk endpoint baru Anda.

    Buat kueri

    Bagian ini menjelaskan cara membuat endpoint publik dan endpoint pribadi.

    Membuat kueri ke endpoint publik

    Setelah model Anda di-deploy, bobot kustom mendukung endpoint khusus publik. Anda dapat mengirim kueri menggunakan API atau SDK.

    Sebelum mengirim kueri, Anda harus mendapatkan URL endpoint, ID endpoint, dan ID model, yang tersedia di konsol Google Cloud .

    Ikuti langkah-langkah berikut untuk mendapatkan informasi:

    1. Di konsol Google Cloud , buka halaman Model Garden.

      Model Garden

    2. Klik Lihat endpoint & model saya.

    3. Pilih wilayah Anda dari daftar Region.

    4. Untuk mendapatkan ID endpoint dan URL endpoint, klik endpoint Anda dari bagian Endpoint saya.

      ID endpoint Anda ditampilkan di kolom Endpoint ID.

      URL endpoint publik Anda ditampilkan di kolom Dedicated endpoint.

    5. Untuk mendapatkan ID model, temukan model Anda yang tercantum di bagian Model yang di-deploy, lalu ikuti langkah-langkah berikut:

      1. Klik nama model yang di-deploy di kolom Model.
      2. Klik Detail versi. ID model Anda ditampilkan di kolom ID Model.

    Setelah mendapatkan informasi endpoint dan model yang di-deploy, lihat contoh kode berikut untuk mengetahui cara mengirim permintaan inferensi, atau lihat Mengirim permintaan inferensi online ke endpoint publik khusus.

    API

    Contoh kode berikut menunjukkan berbagai cara menggunakan API berdasarkan kasus penggunaan Anda.

    Penyelesaian chat (unary)

    Contoh permintaan ini mengirim pesan chat lengkap ke model dan mendapatkan respons dalam satu bagian setelah seluruh respons dibuat. Hal ini mirip dengan mengirim pesan teks dan mendapatkan satu balasan lengkap.

      curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://${ENDPOINT_URL}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${ENDPOINT_ID}/chat/completions" \
        -d '{
        "model": "'"${MODEL_ID}"'",
        "temperature": 0,
        "top_p": 1,
        "max_tokens": 154,
        "ignore_eos": true,
        "messages": [
          {
            "role": "user",
            "content": "How to tell the time by looking at the sky?"
          }
        ]
      }'
    

    Penyelesaian chat (streaming)

    Permintaan ini adalah versi streaming dari permintaan penyelesaian chat unary. Dengan menambahkan "stream": true ke permintaan, model akan mengirimkan responsnya sepotong demi sepotong saat respons tersebut dihasilkan. Hal ini berguna untuk membuat efek real-time seperti mesin tik dalam aplikasi chat.

      curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \  "https://${ENDPOINT_URL}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${ENDPOINT_ID}/chat/completions" \
        -d '{
        "model": "'"${MODEL_ID}"'",
        "stream": true,
        "temperature": 0,
        "top_p": 1,
        "max_tokens": 154,
        "ignore_eos": true,
        "messages": [
          {
            "role": "user",
            "content": "How to tell the time by looking at the sky?"
          }
        ]
      }'
    

    Prediksi

    Permintaan ini mengirimkan perintah langsung untuk mendapatkan inferensi dari model. Model ini sering digunakan untuk tugas yang tidak harus berupa percakapan, seperti peringkasan atau klasifikasi teks.

      curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
      "https://${ENDPOINT_URL}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${ENDPOINT_ID}:predict" \
        -d '{
        "instances": [
          {
            "prompt": "How to tell the time by looking at the sky?",
            "temperature": 0,
            "top_p": 1,
            "max_tokens": 154,
            "ignore_eos": true
          }
        ]
      }'
    

    Prediksi mentah

    Permintaan ini adalah versi streaming dari permintaan Predict. Dengan menggunakan endpoint :streamRawPredict dan menyertakan "stream": true, permintaan ini mengirimkan perintah langsung dan menerima output model sebagai aliran data berkelanjutan saat dihasilkan, yang mirip dengan permintaan penyelesaian chat streaming.

      curl -X POST \
        -N \
        --output - \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://${ENDPOINT_URL}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/${ENDPOINT_ID}:streamRawPredict" \
        -d '{
        "instances": [
          {
            "prompt": "How to tell the time by looking at the sky?",
            "temperature": 0,
            "top_p": 1,
            "max_tokens": 154,
            "ignore_eos": true,
            "stream": true
          }
        ]
      }'
    

    SDK

    Contoh kode ini menggunakan SDK untuk mengirim kueri ke model dan mendapatkan respons kembali dari model tersebut.

      from google.cloud import aiplatform
    
      project_id = ""
      location = ""
      endpoint_id = "" # Use the short ID here
    
      aiplatform.init(project=project_id, location=location)
    
      endpoint = aiplatform.Endpoint(endpoint_id)
    
      prompt = "How to tell the time by looking at the sky?"
      instances=[{"text": prompt}]
      response = endpoint.predict(instances=instances, use_dedicated_endpoint=True)
      print(response.predictions)
    

    Membuat kueri untuk endpoint pribadi

    Anda dapat menguji kueri menggunakan notebook atau VM di project yang diizinkan.

    Kueri contoh ini memungkinkan Anda mengganti variabel dengan IP, project, ID endpoint, dan ID model Anda (diperoleh dari langkah Deploy di atas)

    curl

    Penyelesaian chat

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" 'https://YOUR_IP/v1beta1/projects/YOUR_PROJECT_ID/locations/YOUR_LOCATION/endpoints/YOUR_ENDPOINT_ID/chat/completions' -d '{ "model": "YOUR_MODEL_ID", "max_tokens": 300, "messages": [{ "role": "user", "content": "how to tell the time by looking at sky?" }]}'
    

    Prediksi

    $ curl -k -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" 'https:/YOUR_IP/v1beta1/projects/YOUR_PROJECT_ID/locations/YOUR_LOCATION/endpoints/YOUR_ENDPOINT_ID:predict' -d '{
      "instances": [
        {
          "prompt": "Summarize Goog stock performance",
          "temperature": 0,
          "top_p": 1,
          "max_tokens": 154,
          "ignore_eos": true
        }
      ]
    }'
    

    Untuk contoh lain tentang cara menggunakan API, lihat notebook Impor Bobot Kustom.

    Mempelajari lebih lanjut model yang di-deploy sendiri di Vertex AI