Halaman ini menjelaskan cara memberi label pada resource, lalu menggunakan label untuk mengatur dan memfilter resource.
Ringkasan label
Anda dapat menambahkan label ke tugas, model, dan versi model AI Platform Prediction, lalu menggunakan label tersebut untuk mengatur resource ke dalam kategori saat melihat atau memantau resource.
Misalnya, Anda dapat memberi label pada tugas menurut tim (seperti engineering
atau
research
) dan fase pengembangan (prod
atau test
), lalu memfilter tugas
berdasarkan tim dan fase.
Label juga tersedia di operasi, tetapi label ini berasal dari resource tempat operasi diterapkan. Anda tidak dapat menambahkan atau memperbarui label pada operasi.
Label adalah pasangan nilai kunci, dengan kunci dan nilainya adalah string kustom yang Anda berikan.
Batas dan aturan:
- Maksimum 64 label per resource.
- Maksimum 63 karakter per kunci atau nilai.
- Kunci dan nilai dapat berisi huruf kecil, karakter numerik, garis bawah, dan tanda hubung.
- Kunci harus diawali dengan huruf.
- Karakter internasional diperbolehkan.
Contoh:
- Label yang menunjukkan tim atau pusat biaya:
team:engineering
danteam:research
. - Label yang menunjukkan fase pengembangan:
phase:prod
danphase:test
. - Label yang menunjukkan pemilik atau kontak:
owner:alice
danowner:bob
.
Menambahkan label saat membuat resource
Saat membuat resource, Anda dapat menggunakan perintah gcloud
atau
AI Platform Training and Prediction API di aplikasi Python untuk menambahkan label ke
tugas, model, dan
versi model. Pilih tab di bawah untuk melihat contoh setiap metode penambahan label:
console
Anda harus membuat resource sebelum menambahkan label. Lihat cara menambahkan dan memperbarui label.
gcloud
Saat membuat resource baru, tentukan kolom labels
untuk melampirkan label
ke resource baru.
Untuk contoh di bawah, asumsikan Anda ingin menggunakan label ini:
team:engineering
,phase:test
, dan owner:alice
.
Untuk memudahkan, siapkan variabel lingkungan yang berisi label:
RESOURCE_LABELS="team=engineering,phase=test,owner=alice"
Kode berikut membuat model dengan label yang ditentukan:
REGION="us-central1"
MODEL_NAME="your_model_name"
gcloud ai-platform models create $MODEL_NAME \
--labels $RESOURCE_LABELS \
--regions $REGION
Kode berikut mengirimkan tugas pelatihan dengan label yang ditentukan:
JOB_NAME="your_job_name"
TRAINER_PACKAGE_PATH="/path/to/your/application/sources"
MAIN_TRAINER_MODULE="trainer.task"
JOB_DIR="gs://your/job/output/path"
TRAIN_DATA="gs://your/training/data/path"
EVAL_DATA="gs://your/eval/data/path"
gcloud ai-platform jobs submit training $JOB_NAME \
--labels $RESOURCE_LABELS \
--scale-tier basic \
--package-path $TRAINER_PACKAGE_PATH \
--module-name $MAIN_TRAINER_MODULE \
--job-dir $JOB_DIR \
--runtime-version 2.11 \
--region $REGION \
-- \
--train-files $TRAIN_DATA \
--eval-files $EVAL_DATA \
--train-steps 1000
Python
Siapkan kamus yang berisi kolom untuk resource yang ingin Anda buat. Sertakan label Anda sebagai entri kamus yang memetakan string ke string.
Contoh berikut menunjukkan cara membuat model dengan
tiga label: team:engineering
,phase:test
, dan owner:alice
.
requestDict = {'name': modelName,
'description': 'A model with labels.',
'labels': {
'team': 'engineering',
'phase': 'test',
'owner': 'alice'
}}
Kirim permintaan:
request = ml.projects().models().create(parent=projectID,
body=requestDict)
response = request.execute()
Contoh berikut menunjukkan cara membuat tugas dengan tiga label: team:engineering
,phase:test
, dan owner:alice
.
training_inputs = {'scaleTier': 'BASIC',
'packageUris': ['gs://your/trainer/path/package-0.0.0.tar.gz'],
'pythonModule': 'trainer.task'
'args': ['--arg1', 'value1', '--arg2', 'value2'],
'region': 'us-central1',
'labels': {
'team': 'engineering',
'phase': 'test',
'owner': 'alice'
},
'jobDir': 'gs://your/training/job/directory',
'runtimeVersion': '2.11'}
job_spec = {'jobId': your_job_name, 'trainingInput': training_inputs}
Kirim permintaan:
request = cloudml.projects().jobs().create(body=job_spec,
parent=project_id)
response = request.execute()
Memperbarui dan menghapus label
Anda dapat memperbarui atau menghapus label pada tugas dan model,
menggunakan perintah gcloud
atau di aplikasi Python. Anda tidak dapat
memperbarui label pada versi model yang ada.
Pilih tab di bawah untuk melihat contoh setiap metode penghapusan/pembaruan label:
console
Buka halaman konsol Google Cloud untuk resource yang ingin Anda beri label:
Untuk memberi label pada tugas, buka halaman Tugas AI Platform Prediction di konsol Google Cloud.
Untuk memberi label pada model, buka halaman Model AI Platform Prediction di konsol Google Cloud.
Pilih
centang kotak di samping nama resource yang ingin Anda beri label.Semua pengeditan label dilakukan di panel di sebelah kanan nama resource.
Untuk menambahkan label, masukkan kunci (dan secara opsional, nilai) untuk label. Untuk menambahkan beberapa label, klik tombol Tambahkan label.
Untuk menghapus label, arahkan kursor ke sebelah kanan label, lalu klik
Ikon Hapus yang ditampilkan.
Setelah mengedit label, klik Simpan untuk mengonfirmasi perubahan, atau Buang perubahan untuk memulai dari awal.
gcloud
Anda dapat menggunakan perintah gcloud
untuk memperbarui atau menghapus label pada resource yang sudah ada. Misalnya, untuk menyesuaikan label pada tugas, jalankan perintah gcloud ai-platform jobs update dengan flag berikut:
--update-labels
untuk mengubah nilai label yang ada dan menambahkan label baru. Misalnya, untuk mengubah nilai labelphase
menjadiproduction
dan menambahkan labelstatus
baru:gcloud ai-platform jobs update $JOB_NAME \ --update-labels phase=production,status=deployed
--clear-labels
untuk menghapus semua label dari tugas. Jika Anda menyertakan flag--update-labels
dalam perintah yang sama, perintah clear akan diterapkan terlebih dahulu, diikuti dengan perintah update. Misalnya, untuk menghapus semua label dan menerapkan labelfoo
danbaz
baru:gcloud ai-platform jobs update $JOB_NAME \ --clear-labels \ --update-labels foo=bar,baz=qux
--remove-labels
untuk menghapus label tertentu dari tugas. Jika Anda menentukan label yang tidak ada pada tugas, perintah remove akan diabaikan untuk label tersebut. Misalnya, untuk menghapus labelstatus
danvisibility
:gcloud ai-platform jobs update $JOB_NAME \ --remove-labels=status,visibility
Python
Untuk memperbarui atau menghapus label untuk resource yang ada, misalnya model:
- Dapatkan model menggunakan permintaan
GET
. - Ubah kolom
labels
. - Perbarui model menggunakan permintaan
PATCH
.
Contoh berikut menunjukkan pola READ-MODIFY-WRITE untuk memperbarui label untuk model:
existingModel = ml.projects().models().get(name=fullModelName).execute()
etag = existingModel['etag']
updatedModel = {
'labels': {
'phase': 'prod',
'team': 'research'
},
'etag': etag
}
# projects.models.patch API returns a long-running operation object
# instead of a model object. See
# https://cloud.google.com/ai-platform/prediction/docs/reference/rest/v1/projects.models/patch
updateModelRequest = ml.projects().models().patch(name=fullModelName,
body=updatedModel, updateMask='labels,etag')
updateModelOperation = updateModelRequest.execute()
# You can choose appropriate ways to poll the operation.
delay = 1
while not updateModelOperation['done']:
time.sleep(delay)
delay *= 2
updateModelOperation = ml.projects().operations().get(name=updateModelOperation['name'])
updatedModel = ml.projects().models().get(name=fullModelName).execute()
Untuk menghapus atau memperbarui label untuk tugas yang ada:
- Dapatkan tugas menggunakan permintaan
GET
. - Ubah kolom
labels
. - Perbarui tugas menggunakan permintaan
PATCH
.
Contoh berikut menunjukkan pola BACA-UBAH-TULIS untuk memperbarui label tugas:
existingJob = ml.projects().jobs().get(jobId=jobId).execute()
etag = existingJob['etag']
updatedJob = {
'labels': {
'phase': 'prod',
'team': 'research'
},
'etag': etag
}
updateJobRequest = ml.projects().jobs().patch(name=jobId,
body=updatedJob, updateMask='labels,etag')
updatedJob = updateJobRequest.execute()
Menggunakan label untuk memfilter resource
Saat mencantumkan resource, Anda dapat memfilter daftar menurut label.
console
Buka halaman konsol Google Cloud untuk resource yang ingin Anda filter:
Untuk memfilter tugas, buka halaman Tugas AI Platform Prediction di Konsol Google Cloud.
Untuk memfilter model, buka halaman Model AI Platform Prediction di konsol Google Cloud.
Klik dalam
Kolom Filter menurut awalan, yang terletak di atas daftar tugas Anda. Pilih awalan Label.Untuk menyelesaikan filter, masukkan kunci dan nilai menggunakan sintaksis "kunci:nilai". Misalnya, "team:engineering" atau "owner:alice".
Filter diterapkan ke daftar resource Anda, dan nama filter akan ditampilkan di kolom filter. Misalnya: "Labels:owner:alice" atau "Labels:team:engineering". Anda dapat menambahkan beberapa filter, jika diperlukan.
gcloud
Contoh berikut mencantumkan semua model yang diberi label dengan pasangan nilai kunci
team:engineering
:
gcloud ai-platform models list --filter='labels.team:engineering'
Contoh berikut mencantumkan semua tugas yang diberi label dengan pasangan nilai kunci
team:engineering
dan pasangan nilai kunci owner:alice
:
gcloud ai-platform jobs list \
--filter='labels.team:engineering AND labels.owner=alice'
Python
Contoh berikut menggunakan permintaan models.list
untuk mengambil semua model yang diberi label dengan key-value pair
team:engineering
:
request = ml.projects().models().list(parent=projectID,
filter='labels.team=engineering')
results = request.execute()
Contoh berikut menggunakan permintaan jobs.list untuk mengambil semua tugas yang diberi label dengan key-value pair team:engineering
dan key-value pair owner:alice
:
request = ml.projects().jobs().list(parent=projectID,
filter='labels.team=engineering AND labels.owner=alice')
results = request.execute()
Langkah selanjutnya
- Pelajari lebih lanjut cara mengelola model dan tugas.