Halaman ini menjelaskan cara memberi label pada resource, lalu menggunakan label tersebut untuk mengatur dan memfilter resource.
Ringkasan label
Anda dapat menambahkan label ke tugas, model, dan versi model Prediksi AI Platform, lalu menggunakan label tersebut untuk mengatur resource ke dalam kategori saat melihat atau memantau resource.
Misalnya, Anda dapat melabeli tugas berdasarkan tim (seperti engineering
atau research
) dan fase pengembangan (prod
atau test
), lalu memfilter tugas berdasarkan tim dan fase.
Label juga tersedia di operations, 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 merupakan string kustom yang Anda berikan.
Limit 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 pisah.
- 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 ini 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 tersebut.
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 dibuat. Menyertakan 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. Memperbarui label pada versi model yang sudah ada tidak dapat dilakukan.
Pilih tab di bawah ini untuk melihat contoh setiap metode penghapusan/pembaruan label:
console
Buka halaman Google Cloud Console untuk resource yang ingin diberi label:
Untuk memberi label tugas, buka halaman Tugas Prediksi AI Platform di Konsol Google Cloud.
Untuk memberi label model, buka halaman Model Prediksi AI Platform di Konsol Google Cloud.
Pilih
kotak centang di samping nama resource yang ingin diberi label.Semua pengeditan label terjadi di panel di sebelah kanan nama resource.
Untuk menambahkan label, masukkan kunci (dan nilai opsional) untuk label. Untuk menambahkan beberapa label, klik tombol Tambahkan label.
Untuk menghapus label, arahkan kursor ke sebelah kanan label dan klik
Delete yang ditampilkan.
Setelah Anda mengedit label, klik Simpan untuk mengonfirmasi perubahan, atau Hapus perubahan untuk memulai dari awal.
gcloud
Anda dapat menggunakan perintah gcloud
untuk memperbarui atau menghapus label pada resource
yang ada. Misalnya, untuk menyesuaikan label pada job, 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 resource yang ada, misalnya model:
- Dapatkan model menggunakan permintaan
GET
. - Ubah kolom
labels
. - Perbarui model menggunakan permintaan
PATCH
.
Contoh berikut menunjukkan pola BACA-MODIFIK-TULIS 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 sudah ada:
- Dapatkan tugas menggunakan permintaan
GET
. - Ubah kolom
labels
. - Perbarui tugas menggunakan permintaan
PATCH
.
Contoh berikut menunjukkan pola BACA-MODIFIK-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 berdasarkan label.
console
Buka halaman konsol Google Cloud untuk resource yang ingin difilter:
Untuk memfilter tugas, buka halaman Tugas Prediksi AI Platform di Konsol Google Cloud.
Untuk memfilter model, buka halaman Model Prediksi AI Platform di Konsol Google Cloud.
Klik di dalam
Filter menurut awalan, yang terletak di atas daftar tugas. Pilih awalan Label.Untuk melengkapi filter, masukkan kunci dan nilai menggunakan sintaksis "key:value". Misalnya, "tim: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 perlu.
gcloud
Contoh berikut mencantumkan semua model yang diberi label 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 team:engineering
pasangan nilai kunci:
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 pasangan nilai kunci
team:engineering
dan pasangan nilai kunci 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.