เข้าร่วมชุมชน SIG TFX-Addons และช่วยปรับปรุง TFX ให้ดียิ่งขึ้น!
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

TFX บน Cloud AI Platform Pipelines

บทนำ

บทแนะนำนี้ออกแบบมาเพื่อแนะนำ TensorFlow Extended (TFX) และ Cloud AI Platform Pipelines และช่วยให้คุณเรียนรู้การสร้างไปป์ไลน์ Machine Learning ของคุณเองบน Google Cloud แสดงการทำงานร่วมกับ TFX, AI Platform Pipelines และ Kubeflow รวมถึงการโต้ตอบกับ TFX ในโน้ตบุ๊ก Jupyter

ในตอนท้ายของบทช่วยสอนนี้คุณจะได้สร้างและเรียกใช้ ML Pipeline ซึ่งโฮสต์บน Google Cloud คุณจะสามารถเห็นภาพผลลัพธ์ของการวิ่งแต่ละครั้งและดูเชื้อสายของสิ่งประดิษฐ์ที่สร้างขึ้น

คุณจะทำตามขั้นตอนการพัฒนา ML ทั่วไปโดยเริ่มจากการตรวจสอบชุดข้อมูลและจบลงด้วยขั้นตอนการทำงานที่สมบูรณ์ ระหว่างทางคุณจะสำรวจวิธีการดีบักและอัปเดตไปป์ไลน์ของคุณและวัดประสิทธิภาพ

ชุดข้อมูลแท็กซี่ชิคาโก

แท็กซี่แท็กซี่ชิคาโก

คุณกำลังใช้ ชุดข้อมูล Taxi Trips ที่ เผยแพร่โดย City of Chicago

คุณสามารถ อ่านเพิ่มเติม เกี่ยวกับชุดข้อมูลได้ใน Google BigQuery สำรวจชุดข้อมูลทั้งหมดใน UI ของ BigQuery

เป้าหมายของโมเดล - การจำแนกไบนารี

ลูกค้าจะให้ทิปมากหรือน้อยกว่า 20%?

1. ตั้งค่าโครงการ Google Cloud

1. ตั้งค่าสภาพแวดล้อมของคุณบน Google Cloud

ในการเริ่มต้นคุณต้องมีบัญชี Google Cloud หากคุณมีอยู่แล้วให้ข้ามไปที่ สร้างโครงการใหม่

  1. ไปที่ Google Cloud Console

  2. ยอมรับข้อกำหนดในการให้บริการของ Google Cloud

  3. หากคุณต้องการเริ่มต้นด้วยบัญชีทดลองใช้ฟรีคลิกที่ ทดลองใช้ฟรี (หรือ เริ่มต้นใช้งานฟรี )

    1. เลือกประเทศของคุณ.

    2. ยอมรับข้อกำหนดในการให้บริการ

    3. ป้อนรายละเอียดการเรียกเก็บเงิน

      คุณจะไม่ถูกเรียกเก็บเงิน ณ จุดนี้ หากคุณไม่มีโปรเจ็กต์ Google Cloud อื่น ๆ คุณสามารถทำบทช่วยสอนนี้ได้โดยไม่เกินขีด จำกัด Google Cloud Free Tier ซึ่งรวมถึงแกนประมวลผลสูงสุด 8 คอร์ที่ทำงานในเวลาเดียวกัน

1.b สร้างโครงการใหม่

  1. จาก แดชบอร์ดหลักของ Google Cloud ให้คลิกเมนูดรอปดาวน์ข้างส่วนหัว Google Cloud Platform แล้วเลือก โครงการใหม่
  2. ตั้งชื่อโครงการของคุณและป้อนรายละเอียดโครงการอื่น ๆ
  3. เมื่อคุณสร้างโปรเจ็กต์แล้วให้เลือกโปรเจ็กต์จากดรอปดาวน์โปรเจ็กต์

2. ตั้งค่าและปรับใช้ AI Platform Pipeline บนคลัสเตอร์ Kubernetes ใหม่

  1. ไปที่เพจ AI Platform Pipelines Clusters

    ภายใต้เมนูการนำทางหลัก: ≡> แพลตฟอร์ม AI> ไปป์ไลน์

  2. คลิก + อินสแตนซ์ใหม่ เพื่อสร้างคลัสเตอร์ใหม่

  3. ในหน้าภาพรวม Kubeflow Pipelines ให้คลิก Configure

    คุณอาจต้องรอหลายนาทีก่อนที่จะดำเนินการต่อในขณะที่กำลังเปิดใช้ Kubernetes Engine API สำหรับคุณ

  4. บน เพจ Deploy Kubeflow Pipelines :

    1. เลือก โซน (หรือ "ภูมิภาค") สำหรับคลัสเตอร์ของคุณ

    2. สำคัญ ทำเครื่องหมายในช่องที่ระบุว่า อนุญาตให้เข้าถึง Cloud API ต่อไปนี้ (สิ่งนี้จำเป็นสำหรับคลัสเตอร์นี้เพื่อเข้าถึงส่วนอื่น ๆ ของโปรเจ็กต์ของคุณหากคุณพลาดขั้นตอนนี้การแก้ไขในภายหลังจะค่อนข้างยุ่งยาก)

    3. คลิก สร้าง และรอสักครู่จนกว่าคลัสเตอร์จะถูกสร้างขึ้น

    4. เลือกเนมสเปซและชื่ออินสแตนซ์ (โดยใช้ค่าเริ่มต้นก็ใช้ได้) คุณไม่จำเป็นต้องเลือก ใช้พื้นที่เก็บข้อมูลที่มีการจัดการ

    5. คลิก ปรับใช้ และรอสักครู่จนกว่าจะมีการปรับใช้ไปป์ไลน์ การปรับใช้ Kubeflow Pipelines แสดงว่าคุณยอมรับข้อกำหนดในการให้บริการ

3. ตั้งค่าอินสแตนซ์ Cloud AI Platform Notebook

  1. ไปที่เพจ AI Platform Notebooks

    ภายใต้เมนูการนำทางหลัก: ≡ -> แพลตฟอร์ม AI -> โน้ตบุ๊ก

  2. หากได้รับแจ้งให้เปิดใช้ Compute Engine API

  3. สร้าง อินสแตนซ์ใหม่ที่ ติดตั้ง TensorFlow 2.1 (หรือสูงกว่า)

    อินสแตนซ์ใหม่ -> TensorFlow 2.1 -> ไม่มี GPU

    หากต้องการอยู่ในขีด จำกัด Free Tier อย่ายอมรับการตั้งค่าเริ่มต้นที่นี่ คุณต้องลดจำนวน vCPU ที่พร้อมใช้งานสำหรับอินสแตนซ์นี้จาก 4 เป็น 2:

    1. เลือก กำหนดเอง ที่ด้านล่างของแบบฟอร์ม อินสแตนซ์สมุดบันทึกใหม่
    2. เลือกการ กำหนดค่าเครื่อง ด้วย 1 หรือ 2 vCPU

4. เปิดสมุดบันทึกการเริ่มต้นใช้งาน

  1. ไปที่เพจ AI Platform Pipelines Clusters

    ภายใต้เมนูการนำทางหลัก: ≡ -> แพลตฟอร์ม AI -> ไปป์ไลน์

  2. ในบรรทัดสำหรับคลัสเตอร์ที่คุณใช้ในบทช่วยสอนนี้ให้คลิก Open Pipelines Dashboard

    แผงควบคุมแบบเปิด

  3. ในหน้า การเริ่มต้นใช้งาน คลิก เปิดสมุดบันทึก TF 2.1

  4. เลือกอินสแตนซ์ Notebook ที่คุณใช้สำหรับบทช่วยสอนนี้และ ดำเนินการต่อ

    เลือกสมุดบันทึก

5. ทำงานต่อใน Notebook

ติดตั้ง

สมุดบันทึกการเริ่มต้นใช้งานเริ่มต้นด้วยการติดตั้ง TFX และ Kubeflow Pipelines (KFP) ลงใน VM ที่ Jupyter Lab ทำงานอยู่พร้อมกับโมดูล Skaffold :

ติดตั้ง tf และ kfp

จากนั้นตั้งค่า PATH เพื่อรวมไดเร็กทอรีไบนารี Python ของผู้ใช้และไดเร็กทอรีที่มี skaffold :

กำหนดเส้นทาง

จากนั้นตรวจสอบเวอร์ชันของ TFX ที่ติดตั้งทำการอิมพอร์ตและตั้งค่าและพิมพ์ Project ID:

ตรวจสอบเวอร์ชัน python และนำเข้า

เชื่อมต่อกับบริการ Google Cloud ของคุณ

คอนฟิกูเรชันไปป์ไลน์ต้องการ ID โปรเจ็กต์ของคุณซึ่งคุณสามารถรับผ่านโน้ตบุ๊กและตั้งเป็นตัวแปรสภาพแวดล้อมได้

# Read GCP project id from env.
shell_output=!gcloud config list --format 'value(core.project)' 2>/dev/null
GCP_PROJECT_ID=shell_output[0]
print("GCP project ID:" + GCP_PROJECT_ID)

ตั้งค่าจุดสิ้นสุดคลัสเตอร์ KFP ของคุณแล้ว

สามารถพบได้จาก URL ของแดชบอร์ด Pipelines ไปที่แดชบอร์ด Kubeflow Pipeline และดู URL จุดสิ้นสุดคือข้อมูลทุกอย่างใน URL หลัง https:// ขึ้นไปและรวมถึง googleusercontent.com

ENDPOINT='' # Enter YOUR ENDPOINT here.

จากนั้นโน้ตบุ๊กจะตั้งชื่อเฉพาะสำหรับอิมเมจ Docker ที่กำหนดเอง:

# Docker image name for the pipeline image
CUSTOM_TFX_IMAGE='gcr.io/' + GCP_PROJECT_ID + '/tfx-pipeline'

6. คัดลอกเทมเพลตลงในไดเร็กทอรีโปรเจ็กต์ของคุณ

แก้ไขเซลล์สมุดบันทึกถัดไปเพื่อตั้งชื่อไปป์ไลน์ของคุณ ในบทช่วยสอนนี้เราจะใช้ my_pipeline

PIPELINE_NAME="my_pipeline"
PROJECT_DIR=os.path.join(os.path.expanduser("~"),"deployed_notebook",PIPELINE_NAME)

จากนั้นสมุดบันทึกจะใช้ tfx CLI เพื่อคัดลอกเทมเพลตไปป์ไลน์ บทช่วยสอนนี้ใช้ชุดข้อมูล Chicago Taxi เพื่อทำการจำแนกไบนารีดังนั้นเทมเพลตจึงตั้งค่าโมเดลเป็น taxi :

!tfx template copy \
  --pipeline-name={PIPELINE_NAME} \
  --destination-path={PROJECT_DIR} \
  --model=taxi

จากนั้นสมุดบันทึกจะเปลี่ยนบริบท CWD เป็นไดเร็กทอรีโครงการ:

%cd {PROJECT_DIR}

เรียกดูไฟล์ไปป์ไลน์

ที่ด้านซ้ายมือของ Cloud AI Platform Notebook คุณควรเห็นไฟล์เบราว์เซอร์ ควรมีไดเร็กทอรีที่มีชื่อไปป์ไลน์ของคุณ ( my_pipeline ) เปิดและดูไฟล์ (คุณจะสามารถเปิดและแก้ไขจากสภาพแวดล้อมของโน้ตบุ๊กได้เช่นกัน)

# You can also list the files from the shell
 ls

คำสั่ง tfx template copy ด้านบนสร้างโครงพื้นฐานของไฟล์ที่สร้างไปป์ไลน์ ซึ่งรวมถึงซอร์สโค้ด Python ข้อมูลตัวอย่างและสมุดบันทึก Jupyter สิ่งเหล่านี้มีไว้สำหรับตัวอย่างนี้โดยเฉพาะ สำหรับไปป์ไลน์ของคุณเองสิ่งเหล่านี้จะเป็นไฟล์สนับสนุนที่ไปป์ไลน์ของคุณต้องการ

นี่คือคำอธิบายสั้น ๆ ของไฟล์ Python

  • pipeline - ไดเร็กทอรีนี้มีคำจำกัดความของไปป์ไลน์
    • configs.py - กำหนดค่าคงที่ทั่วไปสำหรับตัววิ่งไปป์ไลน์
    • pipeline.py - กำหนดส่วนประกอบ TFX และไปป์ไลน์
  • models - ไดเร็กทอรีนี้มีข้อกำหนดของโมเดล ML
    • features.py features_test.py - กำหนดคุณสมบัติสำหรับรุ่น
    • preprocessing.py / preprocessing_test.py - กำหนดงานก่อนการประมวลผลโดยใช้ tf::Transform
    • estimator - ไดเร็กทอรีนี้มีแบบจำลองตามเครื่องมือประมาณการ
      • constants.py - กำหนดค่าคงที่ของแบบจำลอง
      • model.py / model_test.py - กำหนดแบบจำลอง DNN โดยใช้ตัวประมาณ TF
    • keras - ไดเร็กทอรีนี้มีโมเดลที่ใช้ Keras
      • constants.py - กำหนดค่าคงที่ของแบบจำลอง
      • model.py / model_test.py - กำหนดโมเดล DNN โดยใช้ Keras
  • beam_dag_runner.py / kubeflow_dag_runner.py - กำหนดรันเนอร์สำหรับแต่ละกลไกการจัดเรียง

7. เรียกใช้ไปป์ไลน์ TFX แรกของคุณบน Kubeflow

สมุดบันทึกจะเรียกใช้ไปป์ไลน์โดย tfx run คำสั่ง tfx run CLI

เชื่อมต่อกับที่เก็บข้อมูล

การรันไปป์ไลน์จะสร้างสิ่งประดิษฐ์ที่ต้องเก็บไว้ใน ML-Metadata อาร์ติแฟกต์อ้างถึงเพย์โหลดซึ่งเป็นไฟล์ที่ต้องจัดเก็บในระบบไฟล์หรือบล็อกที่เก็บข้อมูล สำหรับบทช่วยสอนนี้เราจะใช้ GCS เพื่อจัดเก็บเพย์โหลดข้อมูลเมตาของเราโดยใช้ที่เก็บข้อมูลที่สร้างขึ้นโดยอัตโนมัติระหว่างการตั้งค่า ชื่อของมันจะเป็น <your-project-id>-kubeflowpipelines-default

สร้างท่อ

สมุดบันทึกจะอัปโหลดข้อมูลตัวอย่างของเราไปยังที่เก็บข้อมูล GCS เพื่อให้เราสามารถใช้ในไปป์ไลน์ของเราได้ในภายหลัง

gsutil cp data/data.csv gs://{GOOGLE_CLOUD_PROJECT}-kubeflowpipelines-default/tfx-template/data/data.csv

จากนั้นโน้ตบุ๊กจะใช้คำสั่ง tfx pipeline create เพื่อสร้างไปป์ไลน์

!tfx pipeline create  \
--pipeline-path=kubeflow_dag_runner.py \
--endpoint={ENDPOINT} \
--build-target-image={CUSTOM_TFX_IMAGE}

ในขณะที่สร้างไปป์ไลน์ Dockerfile และ build.yaml จะถูกสร้างขึ้นเพื่อสร้างอิมเมจ Docker อย่าลืมเพิ่มไฟล์เหล่านี้ลงในระบบควบคุมแหล่งที่มาของคุณ (เช่น git) พร้อมกับไฟล์ต้นฉบับอื่น ๆ

เรียกใช้ไปป์ไลน์

จากนั้นโน้ตบุ๊กจะ tfx run create คำสั่ง tfx run create เพื่อเริ่มการเรียกใช้งานไปป์ไลน์ของคุณ คุณจะเห็นการเรียกใช้นี้แสดงอยู่ภายใต้การทดสอบใน Kubeflow Pipelines Dashboard

tfx run create --pipeline-name={PIPELINE_NAME} --endpoint={ENDPOINT}

คุณสามารถดูไปป์ไลน์ของคุณได้จาก Kubeflow Pipelines Dashboard

8. ตรวจสอบข้อมูลของคุณ

งานแรกในวิทยาศาสตร์ข้อมูลหรือโครงการ ML คือการทำความเข้าใจและทำความสะอาดข้อมูล

  • ทำความเข้าใจประเภทข้อมูลสำหรับแต่ละคุณสมบัติ
  • มองหาความผิดปกติและค่าที่ขาดหายไป
  • ทำความเข้าใจการแจกแจงของแต่ละคุณสมบัติ

ส่วนประกอบ

ส่วนประกอบข้อมูลส่วนประกอบข้อมูล

  • ExampleGen นำเข้าและแยกชุดข้อมูลอินพุต
  • StatisticsGen คำนวณสถิติสำหรับชุดข้อมูล
  • SchemaGen SchemaGen ตรวจสอบสถิติและสร้างสคีมาข้อมูล
  • ExampleValidator ค้นหาความผิดปกติและค่าที่ขาดหายไปในชุดข้อมูล

ในโปรแกรมแก้ไขไฟล์ Jupyter lab:

ใน pipeline / pipeline.py ให้ยกเลิกการใส่เครื่องหมายของบรรทัดที่ต่อท้ายส่วนประกอบเหล่านี้เข้ากับไปป์ไลน์ของคุณ:

# components.append(statistics_gen)
# components.append(schema_gen)
# components.append(example_validator)

( ExampleGen ถูกเปิดใช้งานแล้วเมื่อคัดลอกไฟล์เทมเพลต)

อัปเดตไปป์ไลน์และเรียกใช้ใหม่

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_dag_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

ตรวจสอบท่อ

สำหรับ Kubeflow Orchestrator โปรดไปที่แดชบอร์ด KFP และค้นหาเอาต์พุตไปป์ไลน์ในหน้าสำหรับการเรียกใช้ไปป์ไลน์ของคุณ คลิกแท็บ "การทดสอบ" ทางด้านซ้ายและ "การดำเนินการทั้งหมด" ในหน้าการทดสอบ คุณควรจะสามารถค้นหาการทำงานที่มีชื่อไปป์ไลน์ของคุณได้

ตัวอย่างขั้นสูงเพิ่มเติม

ตัวอย่างที่นำเสนอนี้มีไว้เพื่อให้คุณเริ่มต้นเท่านั้น สำหรับตัวอย่างขั้นสูงเพิ่มเติมโปรดดูที่ TensorFlow Data Validation Colab

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ TFDV เพื่อสำรวจและตรวจสอบชุดข้อมูล โปรดดูตัวอย่างใน tensorflow.org

9. วิศวกรรมคุณลักษณะ

คุณสามารถเพิ่มคุณภาพการคาดการณ์ของข้อมูลของคุณและ / หรือลดมิติข้อมูลด้วยวิศวกรรมคุณลักษณะ

  • ข้ามคุณลักษณะ
  • คำศัพท์
  • ฝัง
  • สคบ
  • การเข้ารหัสตามหมวดหมู่

ประโยชน์อย่างหนึ่งของการใช้ TFX คือคุณจะเขียนโค้ดการเปลี่ยนแปลงของคุณเพียงครั้งเดียวและการแปลงผลลัพธ์จะสอดคล้องกันระหว่างการฝึกอบรมและการเสิร์ฟ

ส่วนประกอบ

แปลง

  • Transform ดำเนินการวิศวกรรมคุณลักษณะบนชุดข้อมูล

ในโปรแกรมแก้ไขไฟล์ Jupyter lab:

ใน pipeline / pipeline.py ให้ค้นหาและยกเลิกการใส่ข้อคิดเห็นของบรรทัดที่ต่อท้าย Transform เข้ากับไปป์ไลน์

# components.append(transform)

อัปเดตไปป์ไลน์และเรียกใช้ใหม่

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_dag_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

ตรวจสอบเอาต์พุตไปป์ไลน์

สำหรับ Kubeflow Orchestrator โปรดไปที่แดชบอร์ด KFP และค้นหาเอาต์พุตไปป์ไลน์ในหน้าสำหรับการเรียกใช้ไปป์ไลน์ของคุณ คลิกแท็บ "การทดสอบ" ทางด้านซ้ายและ "การดำเนินการทั้งหมด" ในหน้าการทดสอบ คุณควรจะสามารถค้นหาการทำงานที่มีชื่อไปป์ไลน์ของคุณได้

ตัวอย่างขั้นสูงเพิ่มเติม

ตัวอย่างที่นำเสนอนี้มีไว้เพื่อให้คุณเริ่มต้นเท่านั้น สำหรับตัวอย่างขั้นสูงเพิ่มเติมโปรดดู TensorFlow Transform Colab

10. การฝึกอบรม

ฝึกโมเดล TensorFlow ด้วยข้อมูลที่ดีสะอาดและถูกแปลงโฉมของคุณ

  • รวมการเปลี่ยนแปลงจากขั้นตอนก่อนหน้าเพื่อให้นำไปใช้อย่างสม่ำเสมอ
  • บันทึกผลลัพธ์เป็น SavedModel สำหรับการผลิต
  • เห็นภาพและสำรวจกระบวนการฝึกอบรมโดยใช้ TensorBoard
  • บันทึก EvalSavedModel สำหรับการวิเคราะห์ประสิทธิภาพของโมเดลด้วย

ส่วนประกอบ

ในโปรแกรมแก้ไขไฟล์ Jupyter lab:

ใน pipeline / pipeline.py ค้นหาและยกเลิกการใส่ข้อคิดเห็นซึ่งต่อท้าย Trainer เข้ากับไปป์ไลน์:

# components.append(trainer)

อัปเดตไปป์ไลน์และเรียกใช้ใหม่

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_dag_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

ตรวจสอบเอาต์พุตไปป์ไลน์

สำหรับ Kubeflow Orchestrator โปรดไปที่แดชบอร์ด KFP และค้นหาเอาต์พุตไปป์ไลน์ในหน้าสำหรับการเรียกใช้ไปป์ไลน์ของคุณ คลิกแท็บ "การทดสอบ" ทางด้านซ้ายและ "การดำเนินการทั้งหมด" ในหน้าการทดสอบ คุณควรจะสามารถค้นหาการทำงานที่มีชื่อไปป์ไลน์ของคุณได้

ตัวอย่างขั้นสูงเพิ่มเติม

ตัวอย่างที่นำเสนอนี้มีไว้เพื่อให้คุณเริ่มต้นเท่านั้น สำหรับตัวอย่างขั้นสูงเพิ่มเติมโปรดดู บทช่วยสอน TensorBoard

11. การวิเคราะห์ประสิทธิภาพของโมเดล

ทำความเข้าใจมากกว่าเมตริกระดับบนสุด

  • ผู้ใช้จะได้สัมผัสกับประสิทธิภาพของโมเดลสำหรับการสืบค้นของพวกเขาเท่านั้น
  • ประสิทธิภาพที่ไม่ดีในส่วนของข้อมูลอาจถูกซ่อนไว้โดยเมตริกระดับบนสุด
  • ความเป็นธรรมแบบจำลองเป็นสิ่งสำคัญ
  • ส่วนย่อยที่สำคัญของผู้ใช้หรือข้อมูลมักมีความสำคัญมากและอาจมีขนาดเล็ก
    • ประสิทธิภาพในสภาวะวิกฤต แต่ผิดปกติ
    • ประสิทธิภาพสำหรับผู้ชมหลักเช่นผู้มีอิทธิพล
  • หากคุณกำลังเปลี่ยนรุ่นที่กำลังผลิตอยู่ก่อนอื่นให้ตรวจสอบให้แน่ใจว่ารุ่นใหม่นั้นดีกว่า

ส่วนประกอบ

ในโปรแกรมแก้ไขไฟล์ Jupyter lab:

ใน pipeline / pipeline.py ค้นหาและยกเลิกการใส่ข้อคิดเห็นบรรทัดที่ผนวก Evaluator เข้ากับไปป์ไลน์:

components.append(evaluator)

อัปเดตไปป์ไลน์และเรียกใช้ใหม่

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_dag_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

ตรวจสอบเอาต์พุตไปป์ไลน์

สำหรับ Kubeflow Orchestrator โปรดไปที่แดชบอร์ด KFP และค้นหาเอาต์พุตไปป์ไลน์ในหน้าสำหรับการเรียกใช้ไปป์ไลน์ของคุณ คลิกแท็บ "การทดสอบ" ทางด้านซ้ายและ "การดำเนินการทั้งหมด" ในหน้าการทดสอบ คุณควรจะสามารถค้นหาการทำงานที่มีชื่อไปป์ไลน์ของคุณได้

12. รับใช้นายแบบ

หากรุ่นใหม่พร้อมให้ทำ

  • Pusher ปรับใช้ SavedModels ไปยังสถานที่ที่มีชื่อเสียง

เป้าหมายการปรับใช้จะได้รับโมเดลใหม่จากสถานที่ที่มีชื่อเสียง

  • TensorFlow ให้บริการ
  • TensorFlow Lite
  • TensorFlow JS
  • TensorFlow Hub

ส่วนประกอบ

  • Pusher นำโมเดลไปใช้กับโครงสร้างพื้นฐานการให้บริการ

ในโปรแกรมแก้ไขไฟล์ Jupyter lab:

ใน pipeline / pipeline.py ค้นหาและยกเลิกการใส่ข้อคิดเห็นบรรทัดที่ต่อท้าย Pusher เข้ากับไปป์ไลน์:

# components.append(pusher)

ตรวจสอบเอาต์พุตไปป์ไลน์

สำหรับ Kubeflow Orchestrator โปรดไปที่แดชบอร์ด KFP และค้นหาเอาต์พุตไปป์ไลน์ในหน้าสำหรับการเรียกใช้ไปป์ไลน์ของคุณ คลิกแท็บ "การทดสอบ" ทางด้านซ้ายและ "การดำเนินการทั้งหมด" ในหน้าการทดสอบ คุณควรจะสามารถค้นหาการทำงานที่มีชื่อไปป์ไลน์ของคุณได้

เป้าหมายการปรับใช้ที่พร้อมใช้งาน

ตอนนี้คุณได้ฝึกอบรมและตรวจสอบโมเดลของคุณแล้วและตอนนี้โมเดลของคุณก็พร้อมสำหรับการผลิตแล้ว ตอนนี้คุณสามารถปรับใช้โมเดลของคุณกับเป้าหมายการปรับใช้ TensorFlow ใดก็ได้ซึ่งรวมถึง:

  • TensorFlow Serving สำหรับการให้บริการโมเดลของคุณบนเซิร์ฟเวอร์หรือเซิร์ฟเวอร์ฟาร์มและการประมวลผลคำขอการอนุมาน REST และ / หรือ gRPC
  • TensorFlow Lite สำหรับรวมโมเดลของคุณในแอปพลิเคชันมือถือ Android หรือ iOS หรือในแอปพลิเคชัน Raspberry Pi, IoT หรือไมโครคอนโทรลเลอร์
  • TensorFlow.js สำหรับเรียกใช้โมเดลของคุณในเว็บเบราว์เซอร์หรือแอปพลิเคชัน Node.JS

ตัวอย่างขั้นสูงเพิ่มเติม

ตัวอย่างที่นำเสนอข้างต้นมีไว้เพื่อให้คุณเริ่มต้นเท่านั้น ด้านล่างนี้คือตัวอย่างบางส่วนของการผสานรวมกับบริการคลาวด์อื่น ๆ

การพิจารณาทรัพยากร Kubeflow Pipelines

ขึ้นอยู่กับความต้องการของปริมาณงานของคุณการกำหนดค่าเริ่มต้นสำหรับการปรับใช้ Kubeflow Pipelines ของคุณอาจตรงตามความต้องการของคุณหรือไม่ก็ได้ คุณสามารถปรับแต่งการกำหนดค่าทรัพยากรของคุณโดยใช้ pipeline_operator_funcs ในการเรียกใช้ KubeflowDagRunnerConfig

pipeline_operator_funcs คือรายการ OpFunc ซึ่งจะแปลงอินสแตนซ์ ContainerOp สร้างขึ้นทั้งหมดในข้อมูลจำเพาะไปป์ไลน์ KFP ซึ่งรวบรวมจาก KubeflowDagRunner

ตัวอย่างเช่นในการกำหนดค่าหน่วยความจำเราสามารถใช้ set_memory_request เพื่อประกาศจำนวนหน่วยความจำที่ต้องการ วิธีทั่วไปในการทำเช่นนั้นคือการสร้าง wrapper สำหรับ set_memory_request และใช้เพื่อเพิ่มในรายการของท่อ OpFunc s:

def request_more_memory():
  def _set_memory_spec(container_op):
    container_op.set_memory_request('32G')
  return _set_memory_spec

# Then use this opfunc in KubeflowDagRunner
pipeline_op_funcs = kubeflow_dag_runner.get_default_pipeline_operator_funcs()
pipeline_op_funcs.append(request_more_memory())
config = KubeflowDagRunnerConfig(
    pipeline_operator_funcs=pipeline_op_funcs,
    ...
)
kubeflow_dag_runner.KubeflowDagRunner(config=config).run(pipeline)

ฟังก์ชันการกำหนดค่าทรัพยากรที่คล้ายกัน ได้แก่ :

  • set_memory_limit
  • set_cpu_request
  • set_cpu_limit
  • set_gpu_limit

ลองใช้ BigQueryExampleGen

BigQuery เป็นคลังข้อมูลระบบคลาวด์แบบไร้เซิร์ฟเวอร์ปรับขนาดได้สูงและประหยัดต้นทุน สามารถใช้ BigQuery เป็นแหล่งที่มาสำหรับตัวอย่างการฝึกอบรมใน TFX ในขั้นตอนนี้เราจะเพิ่ม BigQueryExampleGen ลงในไปป์ไลน์

ในโปรแกรมแก้ไขไฟล์ Jupyter lab:

ดับเบิลคลิกเพื่อเปิด pipeline.py แสดงความคิดเห็น CsvExampleGen และยกเลิกการแสดงความคิดเห็นในบรรทัดที่สร้างอินสแตนซ์ของ BigQueryExampleGen คุณต้องยกเลิกการใส่ข้อคิดเห็นอาร์กิวเมนต์ query ของฟังก์ชัน create_pipeline

เราจำเป็นต้องระบุโครงการ GCP ที่จะใช้สำหรับ BigQuery และทำได้โดยการตั้งค่า --project ใน beam_pipeline_args เมื่อสร้างไปป์ไลน์

ดับเบิลคลิกเพื่อเปิด configs.py ยกเลิกการแสดงความคิดเห็นคำจำกัดความของ BIG_QUERY_WITH_DIRECT_RUNNER_BEAM_PIPELINE_ARGS และ BIG_QUERY_QUERY คุณควรแทนที่รหัสโปรเจ็กต์และค่าภูมิภาคในไฟล์นี้ด้วยค่าที่ถูกต้องสำหรับโปรเจ็กต์ GCP ของคุณ

เปลี่ยนไดเร็กทอรีขึ้นหนึ่งระดับ คลิกชื่อไดเร็กทอรีเหนือรายการไฟล์ ชื่อไดเร็กทอรีคือชื่อของ my_pipeline ไลน์ซึ่งเป็น my_pipeline หากคุณไม่ได้เปลี่ยนชื่อไปป์ไลน์

ดับเบิลคลิกเพื่อเปิด kubeflow_dag_runner.py beam_pipeline_args ข้อคิดเห็นสองอาร์กิวเมนต์ query และ beam_pipeline_args สำหรับฟังก์ชัน create_pipeline

ตอนนี้ไปป์ไลน์พร้อมใช้ BigQuery เป็นแหล่งที่มาตัวอย่างแล้ว อัปเดตไปป์ไลน์เหมือนเดิมและสร้างการดำเนินการใหม่ตามที่เราทำในขั้นตอนที่ 5 และ 6

อัปเดตไปป์ไลน์และเรียกใช้ใหม่

# Update the pipeline
!tfx pipeline update \
--pipeline-path=kubeflow_dag_runner.py \
--endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

ลอง Dataflow

ส่วนประกอบ TFX หลายตัว ใช้ Apache Beam เพื่อใช้ไปป์ไลน์แบบขนานข้อมูลและหมายความว่าคุณสามารถกระจายปริมาณงานการประมวลผลข้อมูลโดยใช้ Google Cloud Dataflow ในขั้นตอนนี้เราจะตั้งค่า Kubeflow orchestrator ให้ใช้ Dataflow เป็นแบ็คเอนด์การประมวลผลข้อมูลสำหรับ Apache Beam

# Select your project:
gcloud config set project YOUR_PROJECT_ID

# Get a list of services that you can enable in your project:
gcloud services list --available | grep Dataflow

# If you don't see dataflow.googleapis.com listed, that means you haven't been
# granted access to enable the Dataflow API.  See your account adminstrator.

# Enable the Dataflow service:

gcloud services enable dataflow.googleapis.com

ดับเบิลคลิก pipeline เพื่อเปลี่ยนไดเร็กทอรีและดับเบิลคลิกเพื่อเปิด configs.py ไม่ใส่ข้อคิดเห็นคำจำกัดความของ GOOGLE_CLOUD_REGION และ DATAFLOW_BEAM_PIPELINE_ARGS

เปลี่ยนไดเร็กทอรีขึ้นหนึ่งระดับ คลิกชื่อไดเร็กทอรีเหนือรายการไฟล์ ชื่อไดเร็กทอรีคือชื่อของ my_pipeline ไลน์ซึ่งเป็น my_pipeline หากคุณไม่ได้เปลี่ยน

ดับเบิลคลิกเพื่อเปิด kubeflow_dag_runner.py ไม่ใส่ข้อคิดเห็น beam_pipeline_args (อย่าลืมแสดงความคิดเห็นใน beam_pipeline_args ปัจจุบันที่คุณเพิ่มในขั้นตอนที่ 7)

อัปเดตไปป์ไลน์และเรียกใช้ใหม่

# Update the pipeline
!tfx pipeline update \
--pipeline-path=kubeflow_dag_runner.py \
--endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

คุณค้นหางาน Dataflow ได้ใน Dataflow ใน Cloud Console

ลองใช้การฝึกอบรมและทำนายแพลตฟอร์ม Cloud AI กับ KFP

TFX ทำงานร่วมกับบริการ GCP ที่มีการจัดการหลายอย่างเช่น Cloud AI Platform for Training and Prediction คุณสามารถตั้งค่าคอมโพเนนต์ Trainer ให้ใช้ Cloud AI Platform Training ซึ่งเป็นบริการที่มีการจัดการสำหรับการฝึกอบรมโมเดล ML ยิ่งไปกว่านั้นเมื่อโมเดลของคุณสร้างขึ้นและพร้อมที่จะให้บริการคุณสามารถ ผลักดัน โมเดลของคุณไปยัง Cloud AI Platform Prediction เพื่อแสดง ในขั้นตอนนี้เราจะตั้งค่าคอมโพเนนต์ Trainer และ Pusher เพื่อใช้บริการ Cloud AI Platform

ก่อนแก้ไขไฟล์คุณอาจต้องเปิดใช้ AI Platform Training & Prediction API ก่อน

ดับเบิลคลิก pipeline เพื่อเปลี่ยนไดเร็กทอรีและดับเบิลคลิกเพื่อเปิด configs.py ยกเลิกการใส่ความหมายของ GOOGLE_CLOUD_REGION , GCP_AI_PLATFORM_TRAINING_ARGS และ GCP_AI_PLATFORM_SERVING_ARGS เราจะใช้อิมเมจคอนเทนเนอร์ที่สร้างขึ้นเองเพื่อฝึกโมเดลใน Cloud AI Platform Training ดังนั้นเราควรตั้งค่า masterConfig.imageUri ใน GCP_AI_PLATFORM_TRAINING_ARGS เป็นค่าเดียวกับ CUSTOM_TFX_IMAGE ด้านบน

เปลี่ยนไดเร็กทอรีขึ้นหนึ่งระดับและดับเบิลคลิกเพื่อเปิด kubeflow_dag_runner.py Uncomment ai_platform_training_args และ ai_platform_serving_args

อัปเดตไปป์ไลน์และเรียกใช้ใหม่

# Update the pipeline
!tfx pipeline update \
--pipeline-path=kubeflow_dag_runner.py \
--endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

คุณสามารถค้นหางานการฝึกอบรมของคุณได้ในงาน Cloud AI Platform หากไปป์ไลน์ของคุณดำเนินการสำเร็จคุณจะค้นหาโมเดลของคุณได้ในโมเดล แพลตฟอร์ม Cloud AI

14. ใช้ข้อมูลของคุณเอง

ในบทช่วยสอนนี้คุณได้สร้างท่อสำหรับโมเดลโดยใช้ชุดข้อมูลของ Chicago Taxi ตอนนี้ลองใส่ข้อมูลของคุณเองลงในท่อ ข้อมูลของคุณสามารถจัดเก็บได้ทุกที่ที่ไปป์ไลน์สามารถเข้าถึงได้รวมถึง Google Cloud Storage, BigQuery หรือไฟล์ CSV

คุณต้องแก้ไขข้อกำหนดของท่อเพื่อให้เหมาะกับข้อมูลของคุณ

หากข้อมูลของคุณถูกเก็บไว้ในไฟล์

  1. แก้ไข DATA_PATH ใน kubeflow_dag_runner.py ระบุตำแหน่ง

หากข้อมูลของคุณเก็บไว้ใน BigQuery

  1. แก้ไข BIG_QUERY_QUERY ใน configs.py ให้กับคำสั่งแบบสอบถามของคุณ
  2. เพิ่มคุณสมบัติใน models / features.py
  3. ปรับเปลี่ยน models / preprocessing.py เพื่อ แปลงข้อมูลอินพุตสำหรับการฝึกอบรม
  4. แก้ไข models / keras / model.py และ models / keras / constants.py เพื่อ อธิบายโมเดล ML ของคุณ

เรียนรู้เพิ่มเติมเกี่ยวกับเทรนเนอร์

ดู คู่มือส่วนประกอบเทรนเนอร์ สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับท่อฝึกอบรม

การทำความสะอาด

ในการล้างทรัพยากร Google Cloud ทั้งหมดที่ใช้ในโปรเจ็กต์นี้คุณสามารถ ลบโปรเจ็กต์ Google Cloud ที่ คุณใช้สำหรับบทช่วยสอน

หรือคุณสามารถล้างทรัพยากรแต่ละรายการได้โดยไปที่แต่ละคอนโซล: - Google Cloud Storage - Google Container Registry - Google Kubernetes Engine