Fine-tuning yang diawasi dan distilasi untuk model terbuka

Halaman ini menjelaskan cara melakukan penyesuaian yang diawasi dan distilasi pada model terbuka seperti Llama 3.1. Kecuali dinyatakan lain, petunjuk di halaman ini berlaku untuk supervised fine-tuning dan distillation fine-tuning. Distilasi memungkinkan Anda menyesuaikan model siswa yang lebih kecil menggunakan output model pengajar yang lebih besar.

Mode penyesuaian yang didukung

  • Supervised fine-tuning:
    • Fine-tuning penuh
    • Low-Rank Adaptation (LoRA): LoRA adalah mode penyesuaian parameter yang efisien yang hanya menyesuaikan subset parameter. Metode ini lebih hemat biaya dan memerlukan lebih sedikit data pelatihan daripada fine-tuning penuh. Di sisi lain, fine-tuning penuh memiliki potensi kualitas yang lebih tinggi dengan menyesuaikan semua parameter.
  • Penyesuaian distilasi: Penyesuaian distilasi menggunakan GenAI SDK, tempat Anda menentukan model pengajar untuk menghasilkan respons yang kemudian digunakan untuk menyesuaikan model siswa yang lebih kecil.

Kasus penggunaan yang direkomendasikan untuk fine-tuning distilasi

Penyesuaian distilasi paling efektif jika model pengajar jauh lebih mumpuni daripada model siswa dalam tugas target. Distilasi ini direkomendasikan untuk mentransfer kemampuan penalaran multi-langkah yang kompleks dari model pengajar yang lebih besar ke model siswa yang lebih kecil, termasuk:

  • Penalaran matematika dan kuantitatif
  • Penjawab pertanyaan ilmiah, medis, dan khusus domain lainnya yang memerlukan penalaran langkah demi langkah
  • Tugas lain yang memerlukan model pengajar yang kuat dengan perilaku "berpikir" atau chain-of-thought secara konsisten menghasilkan respons yang lebih berkualitas daripada model siswa.

Distilasi memberikan peningkatan yang lebih kecil pada tugas yang performa model siswanya sudah mendekati model pengajar, atau pada tugas pengambilan bentuk singkat yang jejak penalaran pengajarnya tidak memberikan nilai tambah.

Model yang didukung

Model yang didukung supervised fine-tuning

  • Gemma 4 E2B IT (google/gemma4@gemma-4-e2b-it)
  • Gemma 4 E4B IT (google/gemma4@gemma-4-e4b-it)
  • Gemma 4 26B A4B IT (google/gemma4@gemma-4-26b-a4b-it)
  • Gemma 4 31B IT (google/gemma4@gemma-4-31b-it)
  • Gemma 3 1B IT (google/gemma3@gemma-3-1b-it)
  • Gemma 3 4B IT (google/gemma3@gemma-3-4b-it)
  • Gemma 3 12B IT (google/gemma3@gemma-3-12b-it)
  • Gemma 3 27B IT (google/gemma3@gemma-3-27b-it)
  • Medgemma 1.5 4B IT (google/medgemma@medgemma-1.5-4b-it)
  • Qwen 3.6 27B (qwen/qwen3-6@qwen3.6-27b)
  • Qwen 3.6 35B A3B (qwen/qwen3-6@qwen3.6-35b-a3b)
  • Qwen 3.5 9B (qwen/qwen3-5@qwen3.5-9b)
  • Qwen 3 4B (qwen/qwen3@qwen3-4b)
  • Qwen 3 8B (qwen/qwen3@qwen3-8b)
  • Qwen 3 14B (qwen/qwen3@qwen3-14b)
  • Qwen 3 32B (qwen/qwen3@qwen3-32b)
  • Llama 3.1 8B (meta/llama3_1@llama-3.1-8b)
  • Llama 3.1 8B Instruct (meta/llama3_1@llama-3.1-8b-instruct)
  • Llama 3.2 1B Instruct (meta/llama3-2@llama-3.2-1b-instruct)
  • Llama 3.2 3B Instruct (meta/llama3-2@llama-3.2-3b-instruct)
  • Llama 3.3 70B Instruct (meta/llama3-3@llama-3.3-70b-instruct)
  • Llama 4 Scout 17B 16E Instruct (meta/llama4@llama-4-scout-17b-16e-instruct)
  • GLM 4.7 Flash (zai-org/glm-4.7-flash@glm-4.7-flash)

Model yang didukung penyesuaian distilasi

Model pengajar yang didukung:

  • DeepSeek R1 0528 MaaS (deepseek-ai/deepseek-r1-0528-maas)
  • DeepSeek V3.2 MaaS (deepseek-ai/deepseek-v3.2-maas)
  • GLM 5.2 MaaS (zai-org/glm-5.2-maas)
  • Kimi K2 Thinking MaaS (moonshotai/kimi-k2-thinking-maas)
  • Qwen 3 Next 80B A3B Thinking MaaS (qwen/qwen3-next-80b-a3b-thinking-maas)

Model siswa yang didukung:

  • Qwen 3 4B (qwen/qwen3@qwen3-4b)
  • Qwen 3 8B (qwen/qwen3@qwen3-8b)
  • Qwen 3 14B (qwen/qwen3@qwen3-14b)
  • Qwen 3 32B (qwen/qwen3@qwen3-32b)
  • Gemma 3 1B IT (google/gemma3@gemma-3-1b-it)
  • Gemma 3 4B IT (google/gemma3@gemma-3-4b-it)
  • Gemma 3 12B IT (google/gemma3@gemma-3-12b-it)
  • Gemma 3 27B IT (google/gemma3@gemma-3-27b-it)

Region yang didukung

Endpoint global (global) sangat direkomendasikan untuk meluncurkan tugas penyesuaian; endpoint ini akan memilih wilayah yang didukung dengan kapasitas yang tersedia dan meluncurkan tugas penyesuaian. Perhatikan pertimbangan berikut saat meluncurkan tugas dari endpoint global:

  • Saat Anda membuat tugas penyesuaian global, tugas penyesuaian regional yang sesuai (di region yang dipilih) akan dibuat. Anda hanya akan dikenai kuota dan ditagih untuk satu tugas penyesuaian.
  • Sub-resource (seperti eksperimen atau model tensorboard) akan dibuat di region target yang dipilih. Lokasi dapat diekstrak dari nama resource lengkap dan dikueri menggunakan Vertex AI SDK.

Tugas penyesuaian khusus region masih tersedia untuk pengguna dengan kebutuhan yang lebih lanjut (seperti semua resource yang dicakup ke satu region):

  • Iowa (us-central1)
  • Belanda (europe-west4)
  • Oregon (us-west1)
  • Columbus (us-east5)
  • Singapura (asia-southeast1)
  • Jakarta (asia-southeast2)

Batasan

Model Spesifikasi Nilai
Gemma 4 E2B IT Mode penyesuaian Parameter-efficient fine-tuning
Panjang urutan maksimum 8192
Modalitas Teks
Gemma 4 E4B IT Mode penyesuaian Parameter-efficient fine-tuning
Panjang urutan maksimum 8192
Modalitas Teks
Gemma 4 26B A4B IT Mode penyesuaian Parameter-efficient fine-tuning
Panjang urutan maksimum 8192
Modalitas Teks
Gemma 4 31B IT Mode penyesuaian Parameter-efficient fine-tuning
Panjang urutan maksimum 8192
Modalitas Teks
Gemma 3 1B IT Mode penyesuaian Fine-tuning penuh
Panjang urutan maksimum 8192
Modalitas Teks
Gemma 3 4B IT Mode penyesuaian Fine-tuning penuh
Panjang urutan maksimum 8192
Modalitas Teks
Gemma 3 12B IT Mode penyesuaian Fine-tuning penuh
Panjang urutan maksimum 8192
Modalitas Teks
Gemma 3 27B IT Mode penyesuaian Parameter-efficient fine-tuning
Fine-tuning penuh
Panjang urutan maksimum 8192
Modalitas Teks
Medgemma 1.5 4B IT Mode penyesuaian Fine-tuning penuh
Panjang urutan maksimum 8192
Modalitas Teks
Qwen 3.6 27B Mode penyesuaian Parameter-efficient fine-tuning
Panjang urutan maksimum 12288
Modalitas Teks
Qwen 3.6 35B A3B Mode penyesuaian Parameter-efficient fine-tuning
Panjang urutan maksimum 12288
Modalitas Teks
Qwen 3.5 9B Mode penyesuaian Fine-tuning penuh
Panjang urutan maksimum 8192
Modalitas Teks
Qwen 3 4B Mode penyesuaian Fine-tuning penuh
Panjang urutan maksimum 8192
Modalitas Teks
Qwen 3 8B Mode penyesuaian Fine-tuning penuh
Panjang urutan maksimum 8192
Modalitas Teks
Qwen 3 14B Mode penyesuaian Fine-tuning penuh
Panjang urutan maksimum 8192
Modalitas Teks
Qwen 3 32B Mode penyesuaian Parameter-efficient fine-tuning
Fine-tuning penuh
Panjang urutan maksimum 8192
Modalitas Teks
Llama 3.1 8B Mode penyesuaian Parameter-efficient fine-tuning
Fine-tuning penuh
Panjang urutan maksimum 8192
Modalitas Teks
Llama 3.1 8B Instruct Mode penyesuaian Parameter-efficient fine-tuning
Fine-tuning penuh
Panjang urutan maksimum 8192
Modalitas Teks
Llama 3.2 1B Instruct Mode penyesuaian Fine-tuning penuh
Panjang urutan maksimum 8192
Modalitas Teks
Llama 3.2 3B Instruct Mode penyesuaian Fine-tuning penuh
Panjang urutan maksimum 8192
Modalitas Teks
Llama 3.3 70B Instruct Mode penyesuaian Parameter-efficient fine-tuning
Fine-tuning penuh
Panjang urutan maksimum 8192
Modalitas Teks
Llama 4 Scout 17B 16E Instruct Mode penyesuaian Parameter-efficient fine-tuning
Panjang urutan maksimum 2048
Modalitas Teks
Gambar*

*Set data campuran yang berisi contoh khusus teks dan gambar tidak didukung. Jika ada setidaknya satu contoh gambar dalam set data, semua contoh khusus teks akan difilter.
GLM 4.7 Flash Mode penyesuaian Parameter-efficient fine-tuning
Panjang urutan maksimum 8192
Modalitas Teks

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  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 Gemini Enterprise Agent Platform and Cloud Storage APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  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 Gemini Enterprise Agent Platform and Cloud Storage APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

Instal SDK dan impor library untuk metode penyesuaian Anda.

Supervised fine-tuning

Instal dan lakukan inisialisasi Vertex AI SDK untuk Python, lalu impor library berikut:

import os
import time
import uuid
import vertexai

vertexai.init(project=PROJECT_ID, location=REGION)

from google.cloud import aiplatform
from vertexai.tuning import sft, SourceModel

Penyesuaian distilasi

Instal SDK berikut:

pip install google-genai

Kemudian, impor library berikut:

import os
import time
import uuid

from google import genai
from google.genai import types
client = genai.Client(vertexai=True, project=PROJECT_ID, location=REGION)

Menyiapkan set data untuk penyesuaian

Set data pelatihan diperlukan untuk penyesuaian. Sebaiknya siapkan set data validasi opsional jika Anda ingin mengevaluasi performa model yang telah disesuaikan.

Set data Anda harus dalam salah satu format JSON Lines (JSONL) yang didukung berikut, dengan setiap baris berisi satu contoh penyesuaian.

Upload file JSONL Anda ke Cloud Storage.

Set data khusus teks

Penyelesaian perintah

{"prompt": "<prompt text>", "completion": "<ideal generated text>"}

Format chat berbasis giliran

{"messages": [
  {"content": "You are a chatbot that helps with scientific literature and generates state-of-the-art abstracts from articles.",
    "role": "system"},
  {"content": "Summarize the paper in one paragraph.",
    "role": "user"},
  {"content": " Here is a one paragraph summary of the paper:\n\nThe paper describes PaLM, ...",
    "role": "assistant"}
]}

GenerateContent

{
"systemInstruction": {
  "parts": [{ "text": "You are a chatbot that helps with scientific literature and generates state-of-the-art abstracts from articles." }]},
"contents": [
  {"role": "user",
    "parts": [{ "text": "Summarize the paper in one paragraph." }]},
  {"role": "assistant",
    "parts": [{ "text": "Here is a one paragraph summary of the paper:\n\nThe paper describes PaLM, ..." }]}
]}

Set data multimodal

Format chat berbasis giliran

{"messages": [
  {"role": "user", "content": [
    {"type": "text", "text": "You are a chatbot that helps with scientific literature and generates state-of-the-art abstracts from articles."},
    {"type": "image_url", "image_url": {
      "url": "gs://your-gcs-bucket/your-image.jpeg",
      "detail": "low"}}]
  },
  {"role": "assistant", "content": [
    {"type": "text", "text": "Here is a one paragraph summary of the paper:\n\nThe paper describes PaLM, ..."}]
  },
  {"role": "user", "content": [
    {"type": "text", "text": "You are a chatbot that helps with scientific literature and generates state-of-the-art abstracts from articles."},
    {"type": "image_url", "image_url": {
      "url": "data:image/jpeg;base64,<base64 image>",
      "detail": "low"}}]
  },
  {"role": "assistant", "content": [
    {"type": "text", "text": "Here is a one paragraph summary of the paper:\n\nThe paper describes PaLM, ..."}]
  },
]}

GenerateContent

{
"systemInstruction": {
  "parts": [{ "text": "You are a chatbot that helps with scientific literature and generates state-of-the-art abstracts from articles." }]},
"contents": [
  {"role": "user",
    "parts": [
      {"text": "You are a chatbot that helps with scientific literature and generates state-of-the-art abstracts from articles." },
      {"file_data": {
        "mime_type": "image/jpeg", "file_uri": "gs://your-gcs-bucket/your-image.jpeg"}}]
  },
  {"role": "assistant",
    "parts": [{ "text": "Here is a one paragraph summary of the paper:\n\nThe paper describes PaLM, ..." }]}
]}

Format yang didukung mencakup gambar berenkode JPEG, PNG, WEBP, dan Base64.

Perhatikan bahwa jika gambar Anda disimpan di bucket Cloud Storage yang berbeda dari file JSONL, pastikan Anda telah memberikan peran IAM Storage Object User (roles/storage.objectUser) di kedua bucket untuk kedua akun layanan ini:

  • service-PROJECT_NUMBER@gcp-sa-vertex-moss-ft.iam.gserviceaccount.com
  • service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com

Membuat tugas penyesuaian

Anda dapat menyesuaikan dari:

  • Model dasar yang didukung, seperti Llama 3.1
  • Model yang memiliki arsitektur yang sama dengan salah satu model dasar yang didukung. Ini bisa berupa checkpoint model kustom dari repositori seperti Hugging Face atau model yang telah disesuaikan sebelumnya dari tugas penyesuaian Gemini Enterprise Agent Platform. Dengan demikian, Anda dapat terus menyesuaikan model yang telah disesuaikan.

Konsol Cloud (Diawasi)

  1. Anda dapat memulai fine-tuning dengan cara berikut:

    • Buka kartu model, lalu klik Fine tune dan pilih Managed tuning.

    Buka kartu model Llama 3.1

    atau

    • Buka halaman Tuning, lalu klik Create tuned model.

    Buka Tuning

  2. Isi parameter, lalu klik Start tuning.

Tindakan ini akan memulai tugas penyesuaian, yang dapat Anda lihat di halaman Tuning di tab Managed tuning.

Setelah tugas penyesuaian selesai, Anda dapat melihat informasi tentang model yang disesuaikan di tab Details.

Agent Platform SDK (Diawasi)

Ganti nilai parameter dengan nilai Anda sendiri, lalu jalankan kode berikut untuk membuat tugas penyesuaian:

sft_tuning_job = sft.train(
    source_model=SourceModel(
      base_model="meta/llama3_1@llama-3.1-8b",
      # Optional, folder that is either a custom model checkpoint or previously tuned model
      custom_base_model="gs://{STORAGE-URI}",
    ),
    tuning_mode="FULL", # FULL or PEFT_ADAPTER
    epochs=3,
    train_dataset="gs://{STORAGE-URI}", # JSONL file
    validation_dataset="gs://{STORAGE-URI}", # JSONL file
    output_uri="gs://{STORAGE-URI}",
)

GenAI SDK (Distilasi)

Ganti nilai parameter dengan nilai Anda sendiri, lalu jalankan kode berikut untuk membuat tugas penyesuaian distilasi:

tuning_job = client.tunings.tune(
    base_model="qwen/qwen3@qwen3-4b",
    training_dataset=types.TuningDataset(
        gcs_uri="gs://{STORAGE-URI}"
    ),
    config=types.CreateTuningJobConfig(
        method="DISTILLATION",
        base_teacher_model="qwen/qwen3-next-80b-a3b-thinking-maas",
        epoch_count=3,
        validation_dataset=types.TuningValidationDataset(
            gcs_uri="gs://{STORAGE-URI}"
        ),
        output_uri="gs://{STORAGE-URI}",
    ),
)

Artefak model yang disesuaikan

Setelah tugas penyesuaian selesai, artefak model untuk model yang disesuaikan akan disimpan di direktori output Cloud Storage Anda.

gs://<output_dir>/
    # (Distillation tuning only) The labeled dataset from teacher model's inference
    -> distillation_labelled_dataset.jsonl

gs://<output_dir>/postprocess/node-0/checkpoints/
    # Final checkpoint
    -> final/
        -> model-00001-of-000xx.safetensors
        -> model-000yy-of-000xx.safetensors

    # Intermediate checkpoints
    -> checkpoint-M/
        -> model-00001-of-000xx.safetensors
        -> model-000yy-of-000xx.safetensors
    …
    -> checkpoint-N/
        -> model-00001-of-000xx.safetensors
        -> model-000yy-of-000xx.safetensors
  • Maksimum 10 checkpoint yang disimpan.
  • Jika jumlah epoch (E) kurang dari 10, tepat E checkpoint akan disimpan (satu untuk setiap epoch).
  • Checkpoint perantara dari rentang M hingga N diurutkan. Perhatikan bahwa checkpoint perantara tidak selalu diberi nomor secara berurutan. Misalnya, checkpoint mungkin diberi nomor 1, 3, 5, 10, bukan 1, 2, 3, 4.

Men-deploy model yang telah disesuaikan

Anda dapat men-deploy model yang telah disesuaikan ke endpoint Gemini Enterprise Agent Platform. Anda juga dapat mengekspor model yang telah disesuaikan dari Cloud Storage dan men-deploy-nya di tempat lain.

Untuk men-deploy model yang telah disesuaikan ke endpoint Gemini Enterprise Agent Platform:

Cloud Console

  1. Buka halaman Model Garden dan klik Deploy model with custom weights.

    Buka Model Garden

  2. Isi parameter, lalu klik Deploy.

Agent Platform SDK untuk Python

Deploy G2 machine menggunakan container bawaan:

from vertexai.preview import model_garden

MODEL_ARTIFACTS_STORAGE_URI = "gs://{STORAGE-URI}/postprocess/node-0/checkpoints/final"

model = model_garden.CustomModel(
    gcs_uri=MODEL_ARTIFACTS_STORAGE_URI,
)

# deploy the model to an endpoint using GPUs. Cost will incur for the deployment
endpoint = model.deploy(
  machine_type="g2-standard-12",
  accelerator_type="NVIDIA_L4",
  accelerator_count=1,
)

Mendapatkan inferensi

Setelah deployment berhasil, Anda dapat mengirim permintaan ke endpoint dengan perintah teks. Perhatikan bahwa beberapa perintah pertama akan memerlukan waktu lebih lama untuk dijalankan.

# Loads the deployed endpoint
endpoint = aiplatform.Endpoint("projects/{PROJECT_ID}/locations/{REGION}/endpoints/{endpoint_name}")

prompt = "Summarize the following article. Article: Preparing a perfect risotto requires patience and attention to detail. Begin by heating butter in a large, heavy-bottomed pot over medium heat. Add finely chopped onions and minced garlic to the pot, and cook until they're soft and translucent, about 5 minutes. Next, add Arborio rice to the pot and cook, stirring constantly, until the grains are coated with the butter and begin to toast slightly. Pour in a splash of white wine and cook until it's absorbed. From there, gradually add hot chicken or vegetable broth to the rice, stirring frequently, until the risotto is creamy and the rice is tender with a slight bite.. Summary:"

# Define input to the prediction call
instances = [
    {
        "prompt": "What is a car?",
        "max_tokens": 200,
        "temperature": 1.0,
        "top_p": 1.0,
        "top_k": 1,
        "raw_response": True,
    },
]

# Request the prediction
response = endpoint.predict(
    instances=instances
)

for prediction in response.predictions:
    print(prediction)

Untuk mengetahui detail selengkapnya tentang cara mendapatkan inferensi dari model yang di-deploy, lihat Mendapatkan inferensi online.

Perhatikan bahwa model terbuka terkelola menggunakan metode chat.completions, bukan metode predict yang digunakan oleh model yang di-deploy. Untuk mengetahui informasi selengkapnya tentang cara mendapatkan inferensi dari model terkelola, lihat Melakukan panggilan ke model Llama.

Batas dan kuota

Kuota diterapkan pada jumlah tugas penyesuaian serentak. Setiap project dilengkapi dengan kuota default untuk menjalankan setidaknya satu tugas penyesuaian. Kuota ini adalah kuota global, yang digunakan bersama di semua region yang tersedia dan model yang didukung. Jika ingin menjalankan lebih banyak tugas secara serentak, Anda harus meminta kuota tambahan untuk Global concurrent managed OSS model fine-tuning jobs per project.

Selain kuota tugas penyesuaian, fine-tuning distilasi menggunakan model pengajar, dan project Anda harus memiliki kuota yang cukup untuk model pengajar yang ditentukan. Model terbuka yang disediakan sebagai layanan (MaaS) menggunakan kuota bersama dinamis. Saat tugas penyesuaian memanggil model pengajar, tugas tersebut menggunakan kuota bersama project untuk model tersebut. Untuk mengetahui informasi selengkapnya tentang kuota untuk model terbuka terkelola, lihat Model terkelola Gemini Enterprise Agent Platform untuk MaaS.

Harga

Anda akan ditagih untuk penyesuaian berdasarkan harga untuk Penyesuaian model. Jumlah token pelatihan dihitung dengan mengalikan jumlah token dalam set data pelatihan Anda dengan jumlah epoch. Untuk penyesuaian distilasi, Anda juga akan ditagih untuk panggilan API yang dilakukan ke model pengajar untuk menghasilkan respons, berdasarkan harga untuk model terkelola.

Anda juga akan ditagih untuk layanan terkait, seperti Cloud Storage dan Prediksi Gemini Enterprise Agent Platform.

Pelajari harga Gemini Enterprise Agent Platform, harga Cloud Storage, dan gunakan Kalkulator Harga untuk membuat perkiraan biaya berdasarkan penggunaan yang Anda proyeksikan.

Langkah berikutnya