全部产品
Search
文档中心

Container Service for Kubernetes:Gunakan Kubeflow Pipelines untuk membuat alur kerja

更新时间:Jul 02, 2025

Anda dapat menerapkan Kubeflow Pipelines yang termasuk dalam suite AI cloud-native dan menggunakan Kubeflow Pipelines untuk membangun serta menerapkan alur kerja pembelajaran mesin berbasis kontainer yang portabel dan skalabel. Topik ini menjelaskan cara menggunakan Kubeflow Pipelines untuk membuat dan melihat alur kerja.

Prasyarat

Informasi latar belakang

Kubeflow Pipelines adalah platform untuk membangun alur kerja pembelajaran mesin dari ujung ke ujung. Kubeflow Pipelines terdiri dari komponen-komponen berikut:

  • Antarmuka Pengguna Kubeflow Pipelines: Memungkinkan Anda membuat dan melihat eksperimen, pipeline, serta run.

  • SDK Kubeflow Pipelines: Memungkinkan Anda mendefinisikan dan membangun komponen serta pipeline.

  • Mesin Workflow: Menjalankan alur kerja.

Kubeflow Pipelines menyediakan fitur-fitur berikut:

  • Menggunakan fitur Workflow untuk membangun pipeline CI/CD proyek pembelajaran mesin.

  • Menggunakan fitur Eksperimen untuk membandingkan dan menganalisis hasil pipeline dengan parameter atau data yang berbeda.

  • Menggunakan fitur Pelacakan untuk mencatat data, kode, konfigurasi, serta input dan output setiap rilis model.

Untuk informasi lebih lanjut tentang Kubeflow Pipelines, lihat Kubeflow Pipelines.

Prosedur

Dalam contoh ini, KFP SDK dan KFP Arena SDK digunakan untuk membangun alur kerja pembelajaran mesin. Notebook Jupyter digunakan untuk menginstal SDK Python, mengatur alur kerja, dan mengirimkan alur kerja. Untuk informasi lebih lanjut tentang KFP SDK, lihat Pengantar Pipelines SDK.

  1. Instal Kubeflow Pipelines.

    • Jika suite AI cloud-native belum diinstal, instal suite tersebut dan pilih Kubeflow Pipelines di bagian Workflow. Untuk informasi lebih lanjut, lihat Terapkan suite AI cloud-native.

    • Jika suite AI cloud-native sudah diinstal, lakukan langkah-langkah berikut:

      1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

      2. Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel kiri, pilih Applications > Cloud-native AI Suite.

      3. Di bagian Komponen, temukan ack-ai-dashboard dan ack-ai-dev-console, lalu klik Tingkatkan di kolom Actions. Kemudian, temukan ack-ai-pipeline dan klik Terapkan di kolom Tindakan.

        Komponen

        Deskripsi

        ack-ai-dashboard

        Anda harus memperbarui komponen ke versi 1.0.7 atau lebih baru.

        ack-ai-dev-console

        Anda harus memperbarui komponen ke versi 1.0.13 atau lebih baru.

        ack-ai-pipeline

        Saat Anda menerapkan ack-ai-pipeline, sistem akan memeriksa apakah Secret bernama kubeai-oss ada. Jika Secret kubeai-oss ada, Object Storage Service (OSS) digunakan untuk menyimpan artefak. Jika Secret kubeai-oss tidak ada, MinIO yang sudah diinstal sebelumnya digunakan untuk menyimpan artefak.

  2. Jalankan perintah berikut untuk menginstal KFP SDK untuk Python dan KFP Arena SDK untuk Python.

  3. Dalam contoh ini, KFP SDK dan KFP Arena SDK digunakan.

    • KFP SDK digunakan untuk mengatur dan mengirimkan pipeline.

    • pip install https://kube-ai-ml-pipeline.oss-cn-beijing.aliyuncs.com/sdk/kfp-1.8.10.5.tar.gz
    • KFP Arena SDK menyediakan komponen yang dapat digunakan langsung.

    • pip install https://kube-ai-ml-pipeline.oss-cn-beijing.aliyuncs.com/sdk/kfp-arena-0.1.3.tar.gz
  4. Gunakan file Python berikut untuk mengatur dan mengirimkan alur kerja.

    Alur kerja mendefinisikan operasi berikut: unduh dataset dan latih model berdasarkan dataset yang diunduh.

    import kfp
    from kfp import compiler
    from arena import standalone_job_op, pytorch_job_op
    
    def mnist_train_pipeline():
        #Operasi untuk mengunduh dataset ke PVC. 
        download_op = standalone_job_op(namespace="default-group",
                                      name="download-mnist-dataset",
                                      image="kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/download-mnist-dataset:demo",
                                      working_dir="/root",
                                      data=["training-data:/mnt"], 
                                      command="/root/code/mnist-pytorch/download_mnist_dataset.sh /mnt/pytorch_data")
    
        #Operasi untuk melatih model berdasarkan dataset di PVC dan menyimpan data model ke PVC setelah pelatihan selesai. Dataset diunduh oleh operasi download_op. 
        train_op = pytorch_job_op(namespace="default-group",
                                annotation="kubai.pipeline:test",
                                name="pytorch-dist-step",
                                gpus=1,
                                workers=3,
                                working_dir="/root",
                                image="registry.cn-beijing.aliyuncs.com/ai-samples/pytorch-with-tensorboard:1.5.1-cuda10.1-cudnn7-runtime",
                                sync_mode="git",
                                sync_source='https://code.aliyun.com/370272561/mnist-pytorch.git',
                                data=["training-data:/mnt"],
                                logdir="/mnt/pytorch_data/logs",
                                command="python /root/code/mnist-pytorch/mnist.py --epochs 10 --backend nccl --dir /mnt/pytorch_data/logs --data /mnt/pytorch_data/")
        train_op.after(download_op)
    
    #Buat klien dan kirimkan data. 
    client = kfp.Client()
    client.create_run_from_pipeline_func(mnist_train_pipeline,
                                         namespace="default-group",
                                         arguments={})

    Tabel berikut menjelaskan parameter dalam blok kode sampel di atas.

    Parameter

    Wajib

    Deskripsi

    Nilai default

    name

    Ya

    Menentukan nama pekerjaan yang ingin Anda kirim. Nama tersebut harus unik secara global.

    Tidak tersedia

    working_dir

    Tidak

    Menentukan direktori tempat perintah dieksekusi.

    /root

    gpus

    Tidak

    Menentukan jumlah GPU yang digunakan oleh node pekerja tempat pekerjaan tertentu berjalan.

    0

    image

    Ya

    Menentukan alamat gambar yang digunakan untuk menerapkan waktu proses.

    Tidak tersedia

    sync_mode

    Tidak

    Menentukan mode sinkronisasi. Nilai valid: git dan rsync. Mode git-sync digunakan dalam contoh ini.

    Tidak tersedia

    sync_source

    Tidak

    Menentukan alamat repositori tempat kode sumber disinkronkan. Parameter ini digunakan bersama dengan parameter --sync-mode. Mode git-sync digunakan dalam contoh ini. Oleh karena itu, Anda harus menentukan alamat repositori Git, seperti URL proyek di GitHub atau Alibaba Cloud. Kode sumber diunduh ke direktori code/ di bawah --working-dir. Direktori dalam contoh ini adalah /root/code/tensorflow-sample-code.

    Tidak tersedia

    data

    Tidak

    Memasang PV bersama ke waktu proses tempat pekerjaan pelatihan berjalan. Nilai parameter ini terdiri dari dua bagian yang dipisahkan oleh titik dua (:). Tentukan nama PVC di sisi kiri titik dua. Untuk mendapatkan nama PVC, jalankan perintah arena data list. Perintah ini menanyakan PVC yang tersedia untuk kluster. Tentukan jalur tempat PV yang diklaim oleh PVC dipasang di sisi kanan titik dua, yang juga merupakan jalur lokal tempat pekerjaan pelatihan Anda membaca data. Dengan cara ini, pekerjaan pelatihan Anda dapat mengambil data yang disimpan di PV yang sesuai yang diklaim oleh PVC.

    Catatan

    Jalankan perintah arena data list untuk menanyakan PVC yang tersedia untuk kluster tertentu.

    NAME           ACCESSMODE     DESCRIPTION  OWNER  AGE
    training-data  ReadWriteMany                      35m

    Jika tidak ada PVC yang tersedia, Anda dapat membuat satu. Untuk informasi lebih lanjut, lihat Konfigurasikan volume NAS bersama.

    Tidak tersedia

    tensorboard

    Tidak

    Menentukan bahwa TensorBoard digunakan untuk memvisualisasikan hasil pelatihan. Anda dapat mengatur parameter --logdir untuk menentukan jalur tempat TensorBoard membaca file acara. Jika Anda tidak mengatur parameter ini, TensorBoard tidak digunakan.

    Tidak tersedia

    logdir

    Tidak

    Menentukan jalur tempat TensorBoard membaca file acara. Anda harus menentukan parameter ini dan parameter --tensorboard.

    /training_logs

    Gambar berikut menunjukkan respons sukses sampel:

    image

  5. Lihat pipeline.

    1. Masuk ke Konsol Pengembang AI.

    2. Di panel navigasi kiri, klik Kubeflow Pipelines.

    3. Di panel navigasi kiri, klik Runs. Lalu, klik tab Active. Anda dapat melihat detail tentang run pipeline. View a run of the pipeline

    4. Klik run untuk melihat detail run. Run details