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. Gambar diupgrade secara berkala untuk menyertakan peningkatan dan fitur baru. Pembuatan versi Pelatihan AI Platform 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 dirilisnya. Setelah periode 12 bulan tersebut, 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 menghapus semua versi model yang menggunakan versi runtime.

    Pelajari linimasa ketersediaan untuk versi runtime lebih lanjut.

Memahami nomor versi

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

major_version.minor_version

Versi utama dan minor

Versi utama dan minor baru dibuat secara berkala untuk menyertakan 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 mungkin mencakup perubahan yang dapat menyebabkan gangguan yang memerlukan update pada kode yang ditulis berdasarkan 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 dalam daftar versi Pelatihan AI Platform.

Menyetel versi runtime

Pastikan Anda menetapkan versi runtime saat 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 mengirimkan tugas pelatihan di TrainingInput API.

Menyetel 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 di 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 sama.

gcloud

Agar dapat 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

Agar dapat menggunakan Python 3.7 untuk pelatihan, tetapkan runtimeVersion ke versi '1.15' atau yang lebih baru, lalu 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 mengirimkan tugas pelatihan di TrainingInput API.

Menggunakan paket kustom

Ada tiga cara bagi Anda untuk mengubah paket pada instance pelatihan:

  • membuat container kustom yang telah menginstal dependensi Anda pada image
  • menentukan paket PyPI sebagai dependensi untuk paket pelatih Anda
  • mengupload file paket (tarball) secara manual dan menyertakan jalurnya sebagai input pelatihan

Membuat container kustom

Daripada menggunakan versi runtime, Anda dapat mem-build container Docker untuk menyertakan dependensi Anda. 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 untuk paket pelatih menggunakan proses alat penyiapan normal:

  1. Dalam direktori level teratas pada aplikasi pelatih, sertakan file setup.py.
  2. Saat Anda memanggil setuptools.setup di setup.py, teruskan daftar dependensi dan, jika perlu, versinya sebagai parameter install_requires. Contoh file setup.py ini menunjukkan prosedur:

    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 lama.

Mengunggah file paket Anda sendiri

Anda dapat menyertakan file paket tambahan sebagai bagian dari permintaan tugas pelatihan. Anda mengupload paket ke Cloud Storage dan menentukan daftar paket yang akan diinstal pada setiap instance pelatihan. AI Platform Training akan 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 kustom TensorFlow untuk pelatihan

Penggunaan TensorFlow versi yang lebih baru daripada versi runtime terbaru yang didukung di AI Platform Training dapat digunakan 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 Anda sebagai dependensi PyPI. Sertakan dalam daftar paket yang diperlukan sebagai berikut:

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

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

Langkah selanjutnya