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

คู่มือผู้ใช้ TFX

บทนำ

TFX เป็นแพลตฟอร์มแมชชีนเลิร์นนิง (ML) ระดับการผลิตของ Google ที่ใช้ TensorFlow มีกรอบการกำหนดค่าและไลบรารีที่ใช้ร่วมกันเพื่อรวมส่วนประกอบทั่วไปที่จำเป็นในการกำหนดเปิดใช้งานและตรวจสอบระบบการเรียนรู้ของเครื่องของคุณ

การติดตั้ง

Python PyPI

pip install tfx

แพ็คเกจรายคืน

TFX ยังโฮสต์แพ็คเกจทุกคืนที่ https://pypi-nightly.tensorflow.org บน Google Cloud ในการติดตั้งแพ็คเกจกลางคืนล่าสุดโปรดใช้คำสั่งต่อไปนี้:

pip install -i https://pypi-nightly.tensorflow.org/simple tfx

สิ่งนี้จะติดตั้งแพ็กเกจทุกคืนสำหรับการอ้างอิงที่สำคัญของ TFX เช่น TensorFlow Model Analysis (TFMA), TensorFlow Data Validation (TFDV), TensorFlow Transform (TFT), TFX Basic Shared Libraries (TFX-BSL), ML Metadata (MLMD)

เกี่ยวกับ TFX

TFX เป็นแพลตฟอร์มสำหรับการสร้างและจัดการเวิร์กโฟลว์ ML ในสภาพแวดล้อมการผลิต TFX มีดังต่อไปนี้:

  • ชุดเครื่องมือสำหรับสร้างท่อ ML ไปป์ไลน์ TFX ช่วยให้คุณจัดระเบียบเวิร์กโฟลว์ ML ของคุณบนแพลตฟอร์มต่างๆเช่น Apache Airflow, Apache Beam และ Kubeflow Pipelines

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

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

    เรียนรู้เพิ่มเติมเกี่ยวกับส่วนประกอบมาตรฐาน TFX

  • ไลบรารีที่มีฟังก์ชันพื้นฐานสำหรับส่วนประกอบมาตรฐานจำนวนมาก คุณสามารถใช้ไลบรารี TFX เพื่อเพิ่มฟังก์ชันนี้ให้กับคอมโพเนนต์ที่คุณกำหนดเองหรือใช้แยกกัน

    เรียนรู้เพิ่มเติมเกี่ยวกับไลบรารี TFX

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

ส่วนประกอบมาตรฐาน TFX

ไปป์ไลน์ TFX คือลำดับของส่วนประกอบที่ใช้ ไปป์ไลน์ ML ซึ่งออกแบบมาโดยเฉพาะสำหรับงานแมชชีนเลิร์นนิงที่ปรับขนาดได้และมีประสิทธิภาพสูง ซึ่งรวมถึงการสร้างแบบจำลองการฝึกอบรมการอนุมานการให้บริการและการจัดการการปรับใช้กับเป้าหมายออนไลน์อุปกรณ์เคลื่อนที่แบบเนทีฟและ JavaScript

โดยทั่วไปไปป์ไลน์ TFX จะมีส่วนประกอบต่อไปนี้:

  • ExampleGen เป็นส่วนประกอบอินพุตเริ่มต้นของไปป์ไลน์ที่นำเข้าและแยกชุดข้อมูลอินพุตเป็นทางเลือก

  • StatisticsGen คำนวณสถิติสำหรับชุดข้อมูล

  • SchemaGen ตรวจสอบสถิติและสร้างสคีมาข้อมูล

  • ExampleValidator ค้นหาความผิดปกติและค่าที่ขาดหายไปในชุดข้อมูล

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

  • เทรนเนอร์ฝึก โมเดล

  • จูนเนอร์จะ ปรับแต่งไฮเปอร์พารามิเตอร์ของโมเดล

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

  • InfraValidator ตรวจสอบว่าโมเดลนั้นสามารถใช้งานได้จริงจากโครงสร้างพื้นฐานและป้องกันไม่ให้มีการผลักโมเดลที่ไม่ดี

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

  • BulkInferrer ดำเนินการประมวลผลแบบเป็นกลุ่มในแบบจำลองที่มีการร้องขอการอนุมานที่ไม่มีป้ายกำกับ

แผนภาพนี้แสดงการไหลของข้อมูลระหว่างส่วนประกอบเหล่านี้:

การไหลของส่วนประกอบ

TFX ไลบรารี

TFX มีทั้งไลบรารีและส่วนประกอบไปป์ไลน์ แผนภาพนี้แสดงให้เห็นถึงความสัมพันธ์ระหว่างไลบรารี TFX และส่วนประกอบไปป์ไลน์:

ไลบรารีและส่วนประกอบ

TFX มีแพ็คเกจ Python หลายตัวที่เป็นไลบรารีที่ใช้ในการสร้างคอมโพเนนต์ไปป์ไลน์ คุณจะใช้ไลบรารีเหล่านี้เพื่อสร้างส่วนประกอบของไปป์ไลน์ของคุณเพื่อให้โค้ดของคุณสามารถมุ่งเน้นไปที่ลักษณะเฉพาะของไปป์ไลน์ของคุณ

ไลบรารี TFX ประกอบด้วย:

  • TensorFlow Data Validation (TFDV) คือไลบรารีสำหรับวิเคราะห์และตรวจสอบข้อมูลการเรียนรู้ของเครื่อง ได้รับการออกแบบให้สามารถปรับขนาดได้สูงและทำงานได้ดีกับ TensorFlow และ TFX TFDV ประกอบด้วย:

    • การคำนวณสถิติสรุปข้อมูลการฝึกอบรมและการทดสอบที่ปรับขนาดได้
    • การผสานรวมกับวิวเวอร์สำหรับการแจกแจงข้อมูลและสถิติตลอดจนการเปรียบเทียบคู่ของชุดข้อมูล (Facets)

    • การสร้างสคีมาข้อมูลอัตโนมัติเพื่ออธิบายความคาดหวังเกี่ยวกับข้อมูลเช่นค่าช่วงและคำศัพท์ที่ต้องการ

    • โปรแกรมดูสคีมาเพื่อช่วยคุณตรวจสอบสคีมา

    • การตรวจจับความผิดปกติเพื่อระบุความผิดปกติเช่นคุณสมบัติที่ขาดหายไปค่านอกช่วงหรือประเภทคุณสมบัติที่ไม่ถูกต้องเพื่อระบุชื่อบางส่วน

    • โปรแกรมดูความผิดปกติเพื่อให้คุณสามารถดูว่าคุณลักษณะใดมีความผิดปกติและเรียนรู้เพิ่มเติมเพื่อแก้ไข

  • TensorFlow Transform (TFT) เป็นไลบรารีสำหรับการประมวลผลข้อมูลล่วงหน้าด้วย TensorFlow TensorFlow Transform มีประโยชน์สำหรับข้อมูลที่ต้องใช้ Full-Pass เช่น:

    • ปรับค่าอินพุตให้เป็นมาตรฐานโดยใช้ค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐาน
    • แปลงสตริงเป็นจำนวนเต็มโดยสร้างคำศัพท์บนค่าอินพุตทั้งหมด
    • แปลงลอยเป็นจำนวนเต็มโดยกำหนดให้กับที่เก็บข้อมูลตามการกระจายข้อมูลที่สังเกตได้
  • TensorFlow ใช้สำหรับโมเดลการฝึกอบรมกับ TFX นำเข้าข้อมูลการฝึกอบรมและรหัสการสร้างแบบจำลองและสร้างผลลัพธ์ที่บันทึกไว้ นอกจากนี้ยังรวมไปป์ไลน์วิศวกรรมคุณลักษณะที่สร้างโดย TensorFlow Transform สำหรับการประมวลผลข้อมูลอินพุตล่วงหน้า

    KerasTuner ใช้สำหรับการปรับแต่ง ไฮเปอร์พารามิเตอร์ สำหรับโมเดล

  • TensorFlow Model Analysis (TFMA) คือไลบรารีสำหรับการประเมินโมเดล TensorFlow ใช้ร่วมกับ TensorFlow เพื่อสร้าง EvalSavedModel ซึ่งกลายเป็นพื้นฐานสำหรับการวิเคราะห์ ช่วยให้ผู้ใช้สามารถประเมินโมเดลของตนกับข้อมูลจำนวนมากในลักษณะกระจายโดยใช้เมตริกเดียวกับที่กำหนดไว้ในเทรนเนอร์ เมตริกเหล่านี้สามารถคำนวณได้จากข้อมูลส่วนต่างๆและแสดงเป็นภาพในสมุดบันทึก Jupyter

  • TensorFlow Metadata (TFMD) จัดเตรียมการแสดงมาตรฐานสำหรับข้อมูลเมตาที่มีประโยชน์เมื่อฝึกอบรมโมเดลแมชชีนเลิร์นนิงด้วย TensorFlow ข้อมูลเมตาอาจถูกสร้างขึ้นด้วยมือหรือโดยอัตโนมัติในระหว่างการวิเคราะห์ข้อมูลอินพุตและอาจถูกใช้เพื่อการตรวจสอบความถูกต้องการสำรวจและการแปลงข้อมูล รูปแบบการจัดลำดับข้อมูลเมตา ได้แก่ :

    • สคีมาที่อธิบายข้อมูลแบบตาราง (เช่น tf ตัวอย่าง)
    • การรวบรวมสถิติสรุปของชุดข้อมูลดังกล่าว
  • ML Metadata (MLMD) คือไลบรารีสำหรับบันทึกและเรียกค้นข้อมูลเมตาที่เกี่ยวข้องกับเวิร์กโฟลว์ของนักพัฒนา ML และนักวิทยาศาสตร์ข้อมูล ข้อมูลเมตาส่วนใหญ่มักใช้การแสดง TFMD MLMD จัดการการคงอยู่โดยใช้ SQL-Lite , MySQL และที่เก็บข้อมูลอื่น ๆ ที่คล้ายคลึงกัน

เทคโนโลยีที่รองรับ

จำเป็น

  • Apache Beam เป็นแบบจำลองโอเพนซอร์สแบบครบวงจรสำหรับการกำหนดไพพ์ไลน์การประมวลผลข้อมูลแบบขนานและแบบสตรีมทั้งแบบแบตช์ TFX ใช้ Apache Beam เพื่อใช้ไปป์ไลน์แบบขนานข้อมูล จากนั้นไปป์ไลน์จะดำเนินการโดยหนึ่งในส่วนหลังของการประมวลผลแบบกระจายที่รองรับของ Beam ซึ่งรวมถึง Apache Flink, Apache Spark, Google Cloud Dataflow และอื่น ๆ

ไม่จำเป็น

Orchestrators เช่น Apache Airflow และ Kubeflow ทำให้การกำหนดค่าใช้งานตรวจสอบและบำรุงรักษาไปป์ไลน์ ML ได้ง่ายขึ้น

  • Apache Airflow เป็นแพลตฟอร์มสำหรับเขียนโปรแกรมกำหนดเวลาและตรวจสอบเวิร์กโฟลว์ TFX ใช้ Airflow เพื่อสร้างเวิร์กโฟลว์เป็นกราฟ acyclic ที่กำหนด (DAG) ของงาน ตัวกำหนดตารางเวลา Airflow รันงานบนอาร์เรย์ของผู้ปฏิบัติงานในขณะที่ติดตามการอ้างอิงที่ระบุ ยูทิลิตี้บรรทัดคำสั่งที่หลากหลายทำให้การผ่าตัดที่ซับซ้อนบน DAGs ทำได้อย่างรวดเร็ว อินเทอร์เฟซผู้ใช้ที่หลากหลายทำให้ง่ายต่อการมองเห็นไปป์ไลน์ที่กำลังทำงานในการผลิตติดตามความคืบหน้าและแก้ไขปัญหาเมื่อจำเป็น เมื่อเวิร์กโฟลว์ถูกกำหนดให้เป็นโค้ดจะทำให้สามารถบำรุงรักษาได้เวอร์ชันทดสอบได้และทำงานร่วมกันได้มากขึ้น

  • Kubeflow ทุ่มเทให้กับการปรับใช้เวิร์กโฟลว์ของแมชชีนเลิร์นนิง (ML) บน Kubernetes ให้ง่ายพกพาและปรับขนาดได้ เป้าหมายของ Kubeflow ไม่ใช่การสร้างบริการอื่น ๆ ขึ้นมาใหม่ แต่เพื่อมอบวิธีที่ตรงไปตรงมาในการปรับใช้ระบบโอเพนซอร์สที่ดีที่สุดสำหรับ ML กับโครงสร้างพื้นฐานที่หลากหลาย Kubeflow Pipelines เปิดใช้งานการจัดองค์ประกอบและการดำเนินการของเวิร์กโฟลว์ที่ทำซ้ำได้บน Kubeflow ซึ่งรวมเข้ากับการทดลองและประสบการณ์บนโน้ตบุ๊ก บริการ Kubeflow Pipelines บน Kubernetes รวมถึงที่เก็บข้อมูลเมตาที่โฮสต์เครื่องมือการจัดเรียงตามคอนเทนเนอร์เซิร์ฟเวอร์โน้ตบุ๊กและ UI เพื่อช่วยให้ผู้ใช้พัฒนาเรียกใช้และจัดการไปป์ไลน์ ML ที่ซับซ้อนตามขนาด Kubeflow Pipelines SDK ช่วยให้สามารถสร้างและแบ่งปันส่วนประกอบและองค์ประกอบของไปป์ไลน์โดยใช้โปรแกรม

ความสามารถในการพกพาและการทำงานร่วมกัน

TFX ได้รับการออกแบบมาให้พกพาไปยังสภาพแวดล้อมและกรอบการทำงานที่หลากหลายรวมถึง Apache Airflow , Apache Beam และ Kubeflow นอกจากนี้ยังพกพาไปยังแพลตฟอร์มคอมพิวเตอร์ต่างๆรวมถึงแพลตฟอร์มในองค์กรและระบบคลาวด์เช่น Google Cloud Platform (GCP) โดยเฉพาะอย่างยิ่ง TFX ทำงานร่วมกับบริการ GCP ที่มีการจัดการที่ให้บริการเช่น Cloud AI Platform for Training and Prediction และ Cloud Dataflow สำหรับการประมวลผลข้อมูลแบบกระจายสำหรับด้านอื่น ๆ ของวงจรชีวิต ML

Model เทียบกับ SavedModel

รุ่น

แบบจำลองคือผลลัพธ์ของกระบวนการฝึกอบรม เป็นการบันทึกแบบอนุกรมของน้ำหนักที่ได้เรียนรู้ในระหว่างขั้นตอนการฝึก น้ำหนักเหล่านี้สามารถใช้ในการคำนวณการคาดคะเนสำหรับตัวอย่างการป้อนข้อมูลใหม่ได้ในภายหลัง สำหรับ TFX และ TensorFlow 'model' หมายถึงจุดตรวจที่มีน้ำหนักที่เรียนรู้จนถึงจุดนั้น

โปรดทราบว่า 'model' อาจอ้างถึงคำจำกัดความของกราฟการคำนวณ TensorFlow (เช่นไฟล์ Python) ที่แสดงวิธีคำนวณการคาดการณ์ ความรู้สึกทั้งสองอาจใช้แทนกันได้ตามบริบท

บันทึกไว้

  • SavedModel คืออะไร : universal, language-neutral, hermetic, recoverable serialization of a TensorFlow model
  • เหตุใดจึงสำคัญ : ช่วยให้ระบบระดับสูงขึ้นสามารถผลิตเปลี่ยนรูปและใช้แบบจำลอง TensorFlow โดยใช้นามธรรมเดียว

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

สคีมา

คอมโพเนนต์ TFX บางตัวใช้คำอธิบายข้อมูลอินพุตของคุณที่เรียกว่า สคีมา สคีมาเป็นอินสแตนซ์ของ schema.proto Schemas เป็น บัฟเฟอร์โปรโตคอล ประเภทหนึ่งซึ่งรู้จักกันทั่วไปในชื่อ "protobuf" สคีมาสามารถระบุชนิดข้อมูลสำหรับค่าคุณลักษณะไม่ว่าจะต้องมีคุณลักษณะในตัวอย่างทั้งหมดช่วงค่าที่อนุญาตและคุณสมบัติอื่น ๆ ข้อดีอย่างหนึ่งของการใช้ TensorFlow Data Validation (TFDV) คือจะสร้างสคีมาโดยอัตโนมัติโดยอนุมานประเภทประเภทและช่วงจากข้อมูลการฝึกอบรม

นี่คือข้อความที่ตัดตอนมาจาก schema protobuf:

...
feature {
  name: "age"
  value_count {
    min: 1
    max: 1
  }
  type: FLOAT
  presence {
    min_fraction: 1
    min_count: 1
  }
}
feature {
  name: "capital-gain"
  value_count {
    min: 1
    max: 1
  }
  type: FLOAT
  presence {
    min_fraction: 1
    min_count: 1
  }
}
...

ส่วนประกอบต่อไปนี้ใช้สคีมา:

  • การตรวจสอบข้อมูล TensorFlow
  • การแปลง TensorFlow

ในการตรวจสอบความถูกต้องของข้อมูล TensorFlow ไปป์ไลน์ TFX ทั่วไปจะสร้างสคีมาซึ่งใช้โดยส่วนประกอบอื่น ๆ

การพัฒนาด้วย TFX

TFX เป็นแพลตฟอร์มที่มีประสิทธิภาพสำหรับทุกขั้นตอนของโครงการแมชชีนเลิร์นนิงตั้งแต่การวิจัยการทดลองและการพัฒนาบนเครื่องของคุณไปจนถึงการปรับใช้ เพื่อหลีกเลี่ยงการทำโค้ดซ้ำซ้อนและกำจัดศักยภาพใน การฝึกอบรม / การให้บริการที่เบ้ ขอแนะนำอย่างยิ่งให้ใช้ไปป์ไลน์ TFX ของคุณสำหรับทั้งการฝึกโมเดลและการปรับใช้โมเดลที่ได้รับการฝึกอบรมและใช้คอมโพเนนต์ Transform ซึ่งใช้ประโยชน์จาก ไลบรารี TensorFlow Transform สำหรับทั้งการฝึกอบรมและการอนุมาน ด้วยการทำเช่นนี้คุณจะใช้รหัสก่อนการประมวลผลและการวิเคราะห์เดียวกันอย่างสม่ำเสมอและหลีกเลี่ยงความแตกต่างระหว่างข้อมูลที่ใช้สำหรับการฝึกอบรมและข้อมูลที่ป้อนให้กับโมเดลที่ได้รับการฝึกฝนในการผลิตรวมทั้งได้รับประโยชน์จากการเขียนโค้ดนั้นเพียงครั้งเดียว

การสำรวจข้อมูลการแสดงภาพและการทำความสะอาด

การสำรวจข้อมูลการแสดงภาพและการทำความสะอาด

โดยทั่วไปไปป์ไลน์ TFX เริ่มต้นด้วยส่วนประกอบ ExampleGen ซึ่งรับข้อมูลอินพุตและจัดรูปแบบเป็น tf บ่อยครั้งสิ่งนี้เกิดขึ้นหลังจากที่ข้อมูลถูกแบ่งออกเป็นชุดข้อมูลการฝึกอบรมและการประเมินผลเพื่อให้มีส่วนประกอบของ ExampleGen สองชุดซึ่งแต่ละชุดสำหรับการฝึกอบรมและการประเมินผล โดยทั่วไปตามด้วยองค์ประกอบ StatisticsGen และองค์ประกอบ SchemaGen ซึ่งจะตรวจสอบข้อมูลของคุณและสรุปสคีมาข้อมูลและสถิติ สคีมาและสถิติจะถูกใช้โดยคอมโพเนนต์ ExampleValidator ซึ่งจะค้นหาความผิดปกติค่าที่ขาดหายไปและประเภทข้อมูลที่ไม่ถูกต้องในข้อมูลของคุณ ส่วนประกอบทั้งหมดนี้ใช้ประโยชน์จากความสามารถของ ไลบรารี TensorFlow Data Validation

TensorFlow Data Validation (TFDV) เป็นเครื่องมือที่มีค่าเมื่อทำการสำรวจเริ่มต้นการสร้างภาพและทำความสะอาดชุดข้อมูลของคุณ TFDV ตรวจสอบข้อมูลของคุณและสรุปประเภทข้อมูลประเภทและช่วงจากนั้นจะช่วยระบุความผิดปกติและค่าที่ขาดหายไปโดยอัตโนมัติ นอกจากนี้ยังมีเครื่องมือแสดงภาพที่สามารถช่วยคุณตรวจสอบและทำความเข้าใจชุดข้อมูลของคุณ หลังจากไปป์ไลน์ของคุณเสร็จสมบูรณ์คุณสามารถอ่านข้อมูลเมตาจาก MLMD และใช้เครื่องมือแสดงภาพของ TFDV ในสมุดบันทึก Jupyter เพื่อวิเคราะห์ข้อมูลของคุณ

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

การแสดงข้อมูล

หลังจากที่คุณเรียกใช้ข้อมูลครั้งแรกผ่านส่วนของไปป์ไลน์ที่ใช้ TFDV (โดยทั่วไปคือ StatisticsGen, SchemaGen และ ExampleValidator) คุณจะเห็นผลลัพธ์ในสมุดบันทึกสไตล์ Jupyter ได้ สำหรับการเรียกใช้เพิ่มเติมคุณสามารถเปรียบเทียบผลลัพธ์เหล่านี้ได้ในขณะที่คุณทำการปรับเปลี่ยนจนกว่าข้อมูลของคุณจะเหมาะสมที่สุดสำหรับรุ่นและแอปพลิเคชันของคุณ

ก่อนอื่นคุณจะสอบถาม ML Metadata (MLMD) เพื่อค้นหาผลลัพธ์ของการดำเนินการของคอมโพเนนต์เหล่านี้จากนั้นใช้ API การสนับสนุนการแสดงภาพใน TFDV เพื่อสร้างการแสดงภาพในสมุดบันทึกของคุณ ซึ่งรวมถึง tfdv.load_statistics () และ tfdv.visualize_statistics () การใช้การแสดงภาพนี้จะช่วยให้คุณเข้าใจลักษณะของชุดข้อมูลของคุณได้ดีขึ้นและหากจำเป็นต้องแก้ไขตามความจำเป็น

รูปแบบการพัฒนาและการฝึกอบรม

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

ไปป์ไลน์ TFX ทั่วไปจะรวมส่วนประกอบ Transform ซึ่งจะดำเนินการวิศวกรรมคุณลักษณะโดยใช้ประโยชน์จากความสามารถของ ไลบรารี TensorFlow Transform (TFT) คอมโพเนนต์ Transform จะใช้สคีมาที่สร้างโดยคอมโพเนนต์ SchemaGen และใช้การ แปลงข้อมูล เพื่อสร้างรวมและแปลงคุณสมบัติที่จะใช้ในการฝึกโมเดลของคุณ ควรล้างค่าที่ขาดหายไปและการแปลงประเภทในคอมโพเนนต์การแปลงหากมีความเป็นไปได้ที่สิ่งเหล่านี้จะปรากฏในข้อมูลที่ส่งสำหรับคำขอการอนุมาน มีข้อควรพิจารณาที่สำคัญบางประการ เมื่อออกแบบโค้ด TensorFlow สำหรับการฝึกอบรมใน TFX

การสร้างแบบจำลองและการฝึกอบรม

ผลลัพธ์ของคอมโพเนนต์ Transform คือ SavedModel ซึ่งจะถูกนำเข้าและใช้ในโค้ดการสร้างโมเดลของคุณใน TensorFlow ระหว่างคอมโพเนนต์ Trainer SavedModel นี้รวมถึงการแปลงทางวิศวกรรมข้อมูลทั้งหมดที่สร้างขึ้นในคอมโพเนนต์ Transform เพื่อให้การแปลงที่เหมือนกันดำเนินการโดยใช้รหัสเดียวกันในระหว่างการฝึกอบรมและการอนุมาน การใช้รหัสการสร้างแบบจำลองรวมถึง SavedModel จากส่วนประกอบ Transform คุณสามารถใช้ข้อมูลการฝึกอบรมและการประเมินผลและฝึกโมเดลของคุณได้

เมื่อทำงานกับโมเดลที่ใช้เครื่องมือประมาณการส่วนสุดท้ายของโค้ดการสร้างแบบจำลองของคุณควรบันทึกโมเดลของคุณเป็นทั้ง SavedModel และ EvalSavedModel การบันทึกเป็น EvalSavedModel ช่วยให้มั่นใจได้ว่าเมตริกที่ใช้ในเวลาฝึกอบรมจะพร้อมใช้งานในระหว่างการประเมินด้วย (โปรดทราบว่าสิ่งนี้ไม่จำเป็นสำหรับโมเดลที่ใช้ keras) การบันทึก EvalSavedModel ต้องการให้คุณอิมพอร์ต ไลบรารี TensorFlow Model Analysis (TFMA) ในคอมโพเนนต์ Trainer ของคุณ

import tensorflow_model_analysis as tfma
...

tfma.export.export_eval_savedmodel(
        estimator=estimator,
        export_dir_base=eval_model_dir,
        eval_input_receiver_fn=receiver_fn)

สามารถเพิ่มส่วนประกอบ จูนเนอร์ที่ เป็นทางเลือกได้ก่อนที่เทรนเนอร์จะปรับแต่งไฮเปอร์พารามิเตอร์ (เช่นจำนวนเลเยอร์) สำหรับโมเดล ด้วยโมเดลและพื้นที่ค้นหาของไฮเปอร์พารามิเตอร์ที่กำหนดอัลกอริทึมการปรับแต่งจะค้นหาไฮเปอร์พารามิเตอร์ที่ดีที่สุดตามวัตถุประสงค์

การวิเคราะห์และทำความเข้าใจประสิทธิภาพของโมเดล

การวิเคราะห์แบบจำลอง

หลังจากการพัฒนาโมเดลเบื้องต้นและการฝึกอบรมสิ่งสำคัญคือต้องวิเคราะห์และทำความเข้าใจประสิทธิภาพของโมเดลของคุณอย่างแท้จริง ไปป์ไลน์ TFX ทั่วไปจะรวมส่วนประกอบ Evaluator ซึ่งใช้ประโยชน์จากความสามารถของ ไลบรารี TensorFlow Model Analysis (TFMA) ซึ่งเป็นชุดเครื่องมือไฟฟ้าสำหรับขั้นตอนการพัฒนานี้ ส่วนประกอบ Evaluator ใช้โมเดลที่คุณส่งออกด้านบนและช่วยให้คุณระบุรายการ tfma.SlicingSpec ที่คุณสามารถใช้เมื่อแสดงภาพและวิเคราะห์ประสิทธิภาพของโมเดล แต่ละ SlicingSpec กำหนดส่วนของข้อมูลการฝึกอบรมของคุณที่คุณต้องการตรวจสอบเช่นหมวดหมู่เฉพาะสำหรับคุณสมบัติตามหมวดหมู่หรือช่วงเฉพาะสำหรับคุณลักษณะเชิงตัวเลข

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

การวิเคราะห์โมเดลและการแสดงภาพ

หลังจากที่คุณรันข้อมูลครั้งแรกของคุณผ่านการฝึกโมเดลของคุณและเรียกใช้คอมโพเนนต์ Evaluator (ซึ่งใช้ประโยชน์จาก TFMA ) กับผลการฝึกคุณจะเห็นภาพผลลัพธ์ในสมุดบันทึกสไตล์ Jupyter สำหรับการรันเพิ่มเติมคุณสามารถเปรียบเทียบผลลัพธ์เหล่านี้ได้ในขณะที่คุณทำการปรับเปลี่ยนจนกว่าผลลัพธ์ของคุณจะเหมาะสมที่สุดสำหรับรุ่นและแอปพลิเคชันของคุณ

ก่อนอื่นคุณจะสอบถาม ML Metadata (MLMD) เพื่อค้นหาผลลัพธ์ของการดำเนินการของส่วนประกอบเหล่านี้จากนั้นใช้ API การสนับสนุนการแสดงภาพใน TFMA เพื่อสร้างการแสดงภาพในสมุดบันทึก ซึ่งรวมถึง tfma.load_eval_results และ tfma.view.render_slicing_metrics การใช้การแสดงภาพนี้ช่วยให้คุณเข้าใจลักษณะเฉพาะของแบบจำลองของคุณได้ดีขึ้นและหากจำเป็นต้องแก้ไขตามความจำเป็น

การตรวจสอบประสิทธิภาพของโมเดล

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

การตรวจสอบว่าสามารถให้บริการโมเดลได้

การตรวจสอบโครงสร้างพื้นฐาน

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

เป้าหมายการทำให้ใช้งานได้

เมื่อคุณพัฒนาและฝึกฝนโมเดลที่คุณพอใจแล้วก็ถึงเวลาปรับใช้กับเป้าหมายการปรับใช้อย่างน้อยหนึ่งเป้าหมายซึ่งจะได้รับคำขอการอนุมาน TFX รองรับการปรับใช้กับเป้าหมายการปรับใช้สามคลาส โมเดลที่ผ่านการฝึกอบรมซึ่งส่งออกเป็น SavedModels สามารถปรับใช้กับเป้าหมายการปรับใช้ใด ๆ หรือทั้งหมดเหล่านี้

การไหลของส่วนประกอบ

การอนุมาน: การให้บริการ TensorFlow

TensorFlow Serving (TFS) เป็นระบบการให้บริการที่ยืดหยุ่นและมีประสิทธิภาพสูงสำหรับโมเดลแมชชีนเลิร์นนิงซึ่งออกแบบมาสำหรับสภาพแวดล้อมการผลิต มันใช้ SavedModel และจะยอมรับการร้องขอการอนุมานผ่านอินเทอร์เฟซ REST หรือ gRPC ทำงานเป็นชุดของกระบวนการบนเซิร์ฟเวอร์เครือข่ายตั้งแต่หนึ่งเซิร์ฟเวอร์ขึ้นไปโดยใช้สถาปัตยกรรมขั้นสูงอย่างใดอย่างหนึ่งเพื่อจัดการการซิงโครไนซ์และการคำนวณแบบกระจาย ดู เอกสาร TFS สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการพัฒนาและปรับใช้โซลูชัน TFS

ในไปป์ไลน์ทั่วไป SavedModel ที่ได้รับการฝึกอบรมในองค์ประกอบ Trainer จะได้รับการตรวจสอบความถูกต้องของอินฟาเรดในส่วนประกอบ InfraValidator ก่อน InfraValidator เปิดตัวเซิร์ฟเวอร์รุ่น Canary TFS เพื่อให้บริการ SavedModel ได้จริง หากผ่านการตรวจสอบแล้วคอมโพเนนต์ Pusher จะปรับใช้ SavedModel กับโครงสร้างพื้นฐาน TFS ของคุณในที่สุด ซึ่งรวมถึงการจัดการการอัปเดตเวอร์ชันและรุ่นต่างๆ

การอนุมานในแอปพลิเคชัน Native Mobile และ IoT: TensorFlow Lite

TensorFlow Lite เป็นชุดเครื่องมือที่มีไว้เพื่อช่วยให้นักพัฒนาใช้ TensorFlow Models ที่ผ่านการฝึกอบรมมาแล้วในแอปพลิเคชันมือถือและ IoT มันใช้ SavedModels เดียวกันกับ TensorFlow Serving และใช้การเพิ่มประสิทธิภาพเช่นการหาปริมาณและการตัดแต่งเพื่อปรับขนาดและประสิทธิภาพของแบบจำลองผลลัพธ์ให้เหมาะสมที่สุดสำหรับความท้าทายในการทำงานบนอุปกรณ์พกพาและ IoT ดูเอกสาร TensorFlow Lite สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ TensorFlow Lite

การอนุมานใน JavaScript: TensorFlow JS

TensorFlow JS เป็นไลบรารี JavaScript สำหรับการฝึกอบรมและปรับใช้โมเดล ML ในเบราว์เซอร์และบน Node.js มันใช้ SavedModels เดียวกันกับ TensorFlow Serving และ TensorFlow Lite และแปลงเป็นรูปแบบเว็บ TensorFlow.js ดูเอกสาร TensorFlow JS สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการใช้ TensorFlow JS

การสร้างท่อ TFX ด้วย Airflow

ตรวจสอบรายละเอียดการ ประชุมเชิงปฏิบัติการการไหลของอากาศ

การสร้างท่อ TFX ด้วย Kubeflow

ติดตั้ง

Kubeflow ต้องการคลัสเตอร์ Kubernetes เพื่อเรียกใช้ไปป์ไลน์ตามขนาด ดูแนวทางการปรับใช้ Kubeflow ที่แนะนำตัวเลือกต่างๆสำหรับการ ปรับใช้คลัสเตอร์ Kubeflow

กำหนดค่าและเรียกใช้ไปป์ไลน์ TFX

โปรดทำตามคำแนะนำ TFX บน Cloud AI Platform Pipeline เพื่อเรียกใช้ไปป์ไลน์ตัวอย่าง TFX บน Kubeflow ส่วนประกอบ TFX ได้รับการบรรจุเพื่อประกอบไปป์ไลน์ Kubeflow และตัวอย่างแสดงให้เห็นถึงความสามารถในการกำหนดค่าไปป์ไลน์เพื่ออ่านชุดข้อมูลสาธารณะขนาดใหญ่และดำเนินการฝึกอบรมและขั้นตอนการประมวลผลข้อมูลตามขนาดในระบบคลาวด์

อินเทอร์เฟซบรรทัดคำสั่งสำหรับการดำเนินการไปป์ไลน์

TFX มี CLI แบบครบวงจรซึ่งช่วยดำเนินการไปป์ไลน์แบบครบวงจรเช่นสร้างอัปเดตเรียกใช้แสดงรายการและลบไปป์ไลน์บนออเคสตเตอร์ต่างๆรวมถึง Apache Airflow, Apache Beam และ Kubeflow สำหรับรายละเอียดโปรดปฏิบัติตาม คำแนะนำเหล่านี้