Mengelola versi runtime

AI Platform Training menggunakan image untuk mengonfigurasi VM yang melayani permintaan pelatihan dan prediksi Anda di cloud. Image ini berisi sistem operasi dasar, paket teknologi inti, paket pip (library Python), dan paket sistem operasi. Image diupgrade secara berkala untuk menyertakan peningkatan dan fitur baru. Pembuatan versi AI Platform Training memungkinkan Anda memilih konfigurasi yang tepat untuk digunakan dengan model Anda.

Catatan penting tentang pembuatan versi

  • Anda harus selalu menguji tugas dan model pelatihan secara menyeluruh saat beralih ke versi runtime baru, terlepas dari apakah itu update besar atau kecil.
  • AI Platform Training mendukung setiap versi runtime selama 12 bulan setelah rilis. Setelah periode 12 bulan, Anda tidak dapat lagi membuat tugas pelatihan, tugas prediksi batch, atau versi model yang menggunakan versi runtime.

    Dua puluh empat bulan setelah rilis versi runtime, AI Platform Prediction akan menghapus semua versi model yang menggunakan versi runtime.

    Pelajari lebih lanjut linimasa ketersediaan untuk versi runtime.

Memahami nomor versi

Image yang digunakan AI Platform Training sesuai dengan versi runtime AI Platform Training. Versi runtime menggunakan format berikut:

major_version.minor_version

Versi utama dan minor

Versi utama dan minor baru dibuat secara berkala untuk menggabungkan satu atau beberapa hal berikut:

  • Rilis untuk:
    • Sistem operasi
    • Framework machine learning yang didukung
  • Perubahan atau update pada fungsi AI Platform Training.

Versi utama baru dapat mencakup perubahan yang dapat menyebabkan gangguan yang memerlukan update pada kode yang ditulis untuk versi sebelumnya. Versi minor baru tidak boleh menyertakan perubahan yang dapat menyebabkan gangguan, dan harus kompatibel dengan semua variasi versi utama yang sama.

Memilih versi runtime

Pastikan untuk memilih versi runtime yang mendukung versi terbaru framework machine learning dan paket lain yang Anda gunakan.

Versi runtime AI Platform Training paling awal yang menyediakan dukungan untuk scikit-learn dan XGBoost adalah versi 1.13.

Anda dapat melihat detail setiap versi di daftar versi AI Platform Training.

Menetapkan versi runtime

Pastikan untuk menetapkan versi runtime saat Anda mengirimkan permintaan tugas pelatihan:

gcloud

Gunakan flag --runtime-version saat Anda menjalankan perintah gcloud ai-platform jobs submit training.

gcloud ai-platform jobs submit training my_job \
    --module-name trainer.task \
    --job-dir gs://my/training/job/directory \
    --package-path /path/to/my/project/trainer \
    --region us-central1 \
    --runtime-version 2.11 \
    --python-version 3.7

Python

Tetapkan runtimeVersion saat Anda menentukan permintaan tugas pelatihan:

training_inputs = {'scaleTier': 'BASIC',
    'packageUris': ['gs://my/trainer/path/package-0.0.0.tar.gz'],
    'pythonModule': 'trainer.task'
    'args': ['--arg1', 'value1', '--arg2', 'value2'],
    'region': 'us-central1',
    'jobDir': 'gs://my/training/job/directory',
    'runtimeVersion': '2.11',
    'pythonVersion': '3.7'}

job_spec = {'jobId': my_job_name, 'trainingInput': training_inputs}

Lihat detail selengkapnya tentang cara mengirimkan tugas pelatihan di TrainingInput API.

Menetapkan versi Python

Python 3.7 tersedia di runtime versi 1.15 dan yang lebih baru.

Versi Python yang lebih lama tersedia untuk versi runtime tertentu:

  • Python 3.5 tersedia saat Anda menggunakan runtime Pelatihan AI Platform versi 1.13 hingga 1.14.

  • Python 2.7 tersedia dalam runtime versi 1.15 dan yang lebih lama.

Contoh berikut menunjukkan cara menentukan Python 3.7 untuk pelatihan. Anda dapat menentukan Python 3.5 atau Python 2.7 dengan cara yang serupa.

gcloud

Untuk menggunakan Python 3.7 untuk pelatihan, tentukan --python-version 3.7 dan gunakan runtime versi 1.15 atau yang lebih baru:

gcloud ai-platform jobs submit training my_job \
    --module-name trainer.task \
    --job-dir gs://my/training/job/directory \
    --package-path /path/to/my/project/trainer \
    --python-version 3.7 \
    --region us-central1 \
    --runtime-version 2.11

Python

Untuk menggunakan Python 3.7 untuk pelatihan, tetapkan runtimeVersion ke versi '1.15' atau yang lebih baru dan tetapkan pythonVersion ke '3.7':

training_inputs = {'scaleTier': 'BASIC',
    'packageUris': ['gs://my/trainer/path/package-0.0.0.tar.gz'],
    'pythonModule': 'trainer.task'
    'args': ['--arg1', 'value1', '--arg2', 'value2'],
    'region': 'us-central1',
    'jobDir': 'gs://my/training/job/directory',
    'runtimeVersion': '2.11',
    'pythonVersion': '3.7'}

job_spec = {'jobId': my_job_name, 'trainingInput': training_inputs}

Lihat detail selengkapnya tentang cara mengirimkan tugas pelatihan di TrainingInput API.

Menggunakan paket kustom

Ada tiga cara untuk mengubah paket di instance pelatihan:

  • mem-build container kustom yang melakukan pra-penginstalan dependensi Anda di image
  • menentukan paket PyPI sebagai dependensi ke paket pelatih Anda
  • mengupload file paket (tarball) secara manual dan menyertakan jalurnya sebagai input pelatihan

Mem-build container kustom

Daripada menggunakan versi runtime, Anda dapat mem-build container Docker untuk menyertakan dependensi. Pelajari lebih lanjut cara menggunakan penampung kustom.

# Specifies base image and tag
FROM image:tag
WORKDIR /root

# Installs additional packages
RUN pip install pkg1 pkg2 pkg3

# Downloads training data
RUN curl https://example-url/path-to-data/data-filename --output /root/data-filename

# Copies the trainer code to the docker image.
COPY your-path-to/model.py /root/model.py
COPY your-path-to/task.py /root/task.py

# Sets up the entry point to invoke the trainer.
ENTRYPOINT ["python", "task.py"]

Menyertakan dependensi paket PyPI

Anda dapat menentukan paket PyPI dan versinya sebagai dependensi ke paket pelatih menggunakan proses alat penyiapan normal:

  1. Di direktori level teratas aplikasi pengajar, sertakan file setup.py.
  2. Saat Anda memanggil setuptools.setup di setup.py, teruskan daftar dependensi dan secara opsional versinya sebagai parameter install_requires. Contoh file setup.py ini menunjukkan prosedurnya:

    from setuptools import find_packages
    from setuptools import setup
    
    REQUIRED_PACKAGES = ['some_PyPI_package>=1.5',
                         'another_package==2.6']
    
    setup(
        name='trainer',
        version='0.1',
        install_requires=REQUIRED_PACKAGES,
        packages=find_packages(),
        include_package_data=True,
        description='Generic example trainer package with dependencies.')

AI Platform Training memaksa penginstalan ulang paket, sehingga Anda dapat mengganti paket yang merupakan bagian dari image versi runtime dengan versi yang lebih baru atau lebih lama.

Mengupload file paket Anda sendiri

Anda dapat menyertakan file paket tambahan sebagai bagian dari permintaan tugas pelatihan. Anda upload paket ke Cloud Storage dan menentukan daftar paket yang akan diinstal di setiap instance pelatihan. AI Platform Training menginstal semua paket dengan pip. Paket yang dirancang untuk pengelola paket lain tidak didukung.

gcloud

Gunakan flag --packages saat Anda menjalankan perintah gcloud ai-platform jobs submit training. Tetapkan nilai ke daftar jalur yang dipisahkan koma ke semua paket tambahan. Perhatikan bahwa daftar tidak boleh berisi spasi kosong di antara entri.

gcloud ai-platform jobs submit training my_job \
    --staging-bucket gs://my-bucket \
    --package-path /path/to/my/project/trainer \
    --module-name trainer.task \
    --runtime-version 2.11 \
    --python-version 3.7 \
    --packages dep1.tar.gz,dep2.whl

Python

Tambahkan semua paket tambahan ke daftar yang Anda gunakan untuk nilai packageUris dalam objek TrainingInput.

training_inputs = {'scaleTier': 'BASIC',
    'packageUris': ['gs://my/trainer/path/package-0.0.0.tar.gz',
                    'gs://my/dependencies/path/dep1.tar.gz',
                    'gs://my/dependencies/path/dep2.whl'],
    'pythonModule': 'trainer.task'
    'args': ['--arg1', 'value1', '--arg2', 'value2'],
    'region': 'us-central1',
    'jobDir': 'gs://my/training/job/directory',
    'runtimeVersion': '2.11',
    'pythonVersion': '3.7'}

    job_spec = {'jobId': my_job_name, 'trainingInput': training_inputs}

Menentukan versi TensorFlow kustom untuk pelatihan

Anda dapat menggunakan TensorFlow versi yang lebih baru daripada versi runtime terbaru yang didukung di AI Platform Training untuk pelatihan, tetapi tidak untuk prediksi.

Untuk menggunakan versi TensorFlow yang belum didukung sebagai versi runtime Pelatihan AI Platform lengkap, sertakan sebagai dependensi kustom untuk pelatih Anda menggunakan salah satu pendekatan berikut:

  1. Tentukan versi TensorFlow dalam file setup.py sebagai dependensi PyPI. Sertakan dalam daftar paket yang diperlukan sebagai berikut:

     REQUIRED_PACKAGES = ['tensorflow>=2.11']
    
  2. Mem-build biner TensorFlow dari sumber, pastikan untuk mengikuti petunjuk untuk TensorFlow dengan dukungan CPU saja. Proses ini menghasilkan paket pip (file .whl) yang dapat Anda sertakan dalam permintaan tugas pelatihan dengan menambahkannya ke daftar paket.

Mem-build biner TensorFlow untuk disertakan sebagai paket kustom adalah pendekatan yang lebih kompleks, tetapi keuntungannya adalah Anda dapat menggunakan update TensorFlow terbaru saat melatih model.

Langkah selanjutnya