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

บทนำ

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

TFX 1.0

เรายินดีที่จะประกาศความพร้อมใช้งานของ TFX 1.0.0 นี่คือ TFX รุ่นแรกหลังเบต้า ซึ่งมี API สาธารณะและสิ่งประดิษฐ์ที่เสถียร คุณสามารถมั่นใจได้ว่าไปป์ไลน์ TFX ในอนาคตของคุณจะยังคงทำงานต่อไปหลังจากการอัปเกรดภายในขอบเขตความเข้ากันได้ที่กำหนดไว้ใน RFC นี้

การติดตั้ง

PythonPyPI

pip install tfx

แพ็คเกจกลางคืน

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

pip install --extra-index-url https://pypi-nightly.tensorflow.org/simple --pre 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 จะค้นหาความผิดปกติและค่าที่ขาดหายไปในชุดข้อมูล

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

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

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

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

  • 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 มันนำเข้าข้อมูลการฝึกและรหัสการสร้างแบบจำลอง และสร้างผลลัพธ์ SavedModel นอกจากนี้ยังรวมไปป์ไลน์ทางวิศวกรรมคุณลักษณะที่สร้างโดย TensorFlow Transform สำหรับการประมวลผลข้อมูลอินพุตล่วงหน้า

    KerasTuner ใช้สำหรับปรับไฮเปอร์พารามิเตอร์สำหรับรุ่น

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

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

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

เทคโนโลยีสนับสนุน

ที่จำเป็น

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

ไม่จำเป็น

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

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

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

โมเดล vs. โมเดลที่บันทึกไว้

แบบอย่าง

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

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

รูปแบบที่บันทึกไว้

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

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

สคีมา

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

นี่เป็นข้อความที่ตัดตอนมาจากสคีมา 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
  • การแปลงเทนเซอร์โฟลว์

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

พัฒนาด้วย TFX

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

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

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

โดยทั่วไปไปป์ไลน์ TFX จะเริ่มต้นด้วยส่วนประกอบ ExampleGen ซึ่งยอมรับข้อมูลที่ป้อนเข้าและจัดรูปแบบเป็น tf.Examples บ่อยครั้งสิ่งนี้จะทำหลังจากข้อมูลถูกแบ่งออกเป็นชุดข้อมูลการฝึกอบรมและการประเมิน เพื่อให้มีส่วนประกอบ 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 และใช้ การแปลงข้อมูล เพื่อสร้าง รวม และแปลงคุณลักษณะที่จะใช้ในการฝึกโมเดลของคุณ การล้างค่าที่หายไปและการแปลงประเภทควรทำในองค์ประกอบ Transform หากมีความเป็นไปได้ที่สิ่งเหล่านี้จะปรากฏในข้อมูลที่ส่งเพื่อขอการอนุมานด้วย มีข้อควรพิจารณาที่สำคัญบางประการ เมื่อออกแบบโค้ด TensorFlow สำหรับการฝึกอบรมใน TFX

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

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

เมื่อทำงานกับโมเดลที่ใช้ Estimator ส่วนสุดท้ายของโค้ดการสร้างโมเดลของคุณควรบันทึกโมเดลของคุณเป็นทั้ง 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)

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

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

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

หลังจากการพัฒนาและฝึกอบรมแบบจำลองเบื้องต้น การวิเคราะห์และทำความเข้าใจประสิทธิภาพของแบบจำลองของคุณเป็นสิ่งสำคัญ ไปป์ไลน์ 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 Applications: TensorFlow Lite

TensorFlow Lite เป็นชุดเครื่องมือที่ทุ่มเทเพื่อช่วยให้นักพัฒนาใช้โมเดล TensorFlow ที่ได้รับการฝึกอบรมในแอปพลิเคชันมือถือและ IoT มันใช้ SavedModels เดียวกันกับ TensorFlow Serving และใช้การปรับให้เหมาะสมเช่น quantization และ pruning เพื่อปรับขนาดและประสิทธิภาพของโมเดลที่เป็นผลลัพธ์ให้เหมาะสมสำหรับความท้าทายในการทำงานบนอุปกรณ์พกพาและอุปกรณ์ 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 Pipeline ด้วย Airflow

ตรวจสอบ เวิร์กโฟลว์เวิร์กโฟลว์ สำหรับรายละเอียด

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

ติดตั้ง

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

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

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

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

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