Hướng dẫn về luồng không khí TFX

Tổng quan

Tổng quan

Hướng dẫn này được thiết kế để giúp bạn tìm hiểu cách tạo quy trình máy học của riêng mình bằng cách sử dụng TensorFlow Extended (TFX) và Apache Airflow làm người điều phối. Nó chạy trên Vertex AI Workbench và thể hiện sự tích hợp với TFX và TensorBoard cũng như tương tác với TFX trong môi trường Jupyter Lab.

Bạn sẽ làm gì?

Bạn sẽ tìm hiểu cách tạo quy trình ML bằng TFX

  • Đường dẫn TFX là Đồ thị tuần hoàn có hướng hoặc "DAG". Chúng tôi thường gọi đường ống là DAG.
  • Quy trình TFX phù hợp khi bạn triển khai ứng dụng ML sản xuất
  • Đường dẫn TFX phù hợp khi tập dữ liệu lớn hoặc có thể phát triển lớn
  • Quy trình TFX phù hợp khi tính nhất quán trong đào tạo/phục vụ là quan trọng
  • Đường dẫn TFX phù hợp khi việc quản lý phiên bản để suy luận là quan trọng
  • Google sử dụng quy trình TFX cho ML sản xuất

Vui lòng xem Hướng dẫn sử dụng TFX để tìm hiểu thêm.

Bạn sẽ tuân theo quy trình phát triển ML điển hình:

  • Nhập, hiểu và làm sạch dữ liệu của chúng tôi
  • Kỹ thuật tính năng
  • Đào tạo
  • Phân tích hiệu suất mô hình
  • Lót, rửa sạch, lặp lại
  • Sẵn sàng cho sản xuất

Luồng khí Apache cho điều phối đường ống

Người điều phối TFX chịu trách nhiệm lập lịch trình các thành phần của quy trình TFX dựa trên các yếu tố phụ thuộc được xác định bởi quy trình. TFX được thiết kế để có thể di chuyển sang nhiều môi trường và khung điều phối. Một trong những trình điều phối mặc định được TFX hỗ trợ là Apache Airflow . Phòng thí nghiệm này minh họa việc sử dụng Apache Airflow để điều phối đường ống TFX. Apache Airflow là một nền tảng để lập trình tác giả, lên lịch và giám sát quy trình công việc. TFX sử dụng Airflow để tạo các quy trình làm việc dưới dạng biểu đồ tuần hoàn có hướng (DAG) của các nhiệm vụ. Giao diện người dùng phong phú giúp dễ dàng hình dung các quy trình đang chạy trong sản xuất, theo dõi tiến trình và khắc phục sự cố khi cần. Luồng công việc của Apache Airflow được định nghĩa là mã. Điều này làm cho chúng dễ bảo trì hơn, có thể phiên bản hơn, có thể kiểm tra được và hợp tác hơn. Apache Airflow phù hợp cho các đường ống xử lý hàng loạt. Nó nhẹ và dễ học.

Trong ví dụ này, chúng tôi sẽ chạy quy trình TFX trên một phiên bản bằng cách thiết lập Airflow theo cách thủ công.

Các trình điều phối mặc định khác được TFX hỗ trợ là Apache Beam và Kubeflow. Apache Beam có thể chạy trên nhiều chương trình phụ trợ xử lý dữ liệu (Beam Ruunners). Cloud Dataflow là một trong những thiết bị chạy tia như vậy có thể được sử dụng để chạy các đường ống TFX. Apache Beam có thể được sử dụng cho cả đường ống truyền phát và xử lý hàng loạt.
Kubeflow là một nền tảng ML mã nguồn mở dành riêng cho việc triển khai quy trình học máy (ML) trên Kubernetes một cách đơn giản, di động và có thể mở rộng. Kubeflow có thể được sử dụng làm công cụ điều phối cho các quy trình TFFX khi chúng cần được triển khai trên các cụm Kubernetes. Ngoài ra, bạn cũng có thể sử dụng bộ điều phối tùy chỉnh của riêng mình để chạy đường dẫn TFX.

Đọc thêm về Airflow tại đây .

Bộ dữ liệu taxi Chicago

taxi.jpg

Chicago.png

Bạn sẽ sử dụng tập dữ liệu Taxi Trips do Thành phố Chicago phát hành.

Mục tiêu mẫu - Phân loại nhị phân

Khách hàng sẽ tip nhiều hay ít hơn 20%?

Thiết lập dự án Google Cloud

Trước khi bạn nhấp vào nút Bắt đầu Lab, hãy đọc những hướng dẫn này. Các phòng thí nghiệm được tính thời gian và bạn không thể tạm dừng chúng. Đồng hồ hẹn giờ bắt đầu khi bạn nhấp vào Bắt đầu Lab , cho biết thời gian cung cấp tài nguyên Google Cloud cho bạn.

Phòng thí nghiệm thực hành này cho phép bạn tự thực hiện các hoạt động trong phòng thí nghiệm trong môi trường đám mây thực chứ không phải trong môi trường mô phỏng hoặc demo. Nó thực hiện điều này bằng cách cung cấp cho bạn thông tin xác thực mới, tạm thời mà bạn sử dụng để đăng nhập và truy cập Google Cloud trong suốt thời gian thực hành.

Những gì bạn cần Để hoàn thành bài thí nghiệm này, bạn cần:

  • Truy cập vào trình duyệt internet tiêu chuẩn (khuyên dùng trình duyệt Chrome).
  • Đã đến lúc hoàn thành phòng thí nghiệm.

Cách bắt đầu lab của bạn và đăng nhập vào Google Cloud Console 1. Nhấp vào nút Start Lab . Nếu bạn cần thanh toán cho phòng thí nghiệm, một cửa sổ bật lên sẽ mở ra để bạn chọn phương thức thanh toán. Ở bên trái là bảng chứa thông tin xác thực tạm thời mà bạn phải sử dụng cho phòng thí nghiệm này.

qwiksetup1.png

  1. Sao chép tên người dùng rồi nhấp vào Mở Google Console . Phòng thí nghiệm tổng hợp các tài nguyên rồi mở một tab khác hiển thị trang Đăng nhập .

qwiksetup2.png

Mẹo: Mở các tab trong các cửa sổ riêng biệt, cạnh nhau.

qwiksetup3.png

  1. Trong trang Đăng nhập , dán tên người dùng mà bạn đã sao chép từ bảng điều khiển bên trái. Sau đó sao chép và dán mật khẩu.
  1. Bấm qua các trang tiếp theo:
  2. Chấp nhận các điều khoản và điều kiện.
  • Không thêm tùy chọn khôi phục hoặc xác thực hai yếu tố (vì đây là tài khoản tạm thời).

  • Đừng đăng ký dùng thử miễn phí.

Sau một lát, Cloud Console sẽ mở trong tab này.

qwiksetup4.png

Kích hoạt Cloud Shell

Cloud Shell là một máy ảo chứa đầy các công cụ phát triển. Nó cung cấp một thư mục chính 5GB ổn định và chạy trên Google Cloud. Cloud Shell cung cấp quyền truy cập dòng lệnh vào tài nguyên Google Cloud của bạn.

Trong Cloud Console, ở thanh công cụ trên cùng bên phải, nhấp vào nút Kích hoạt Cloud Shell .

qwiksetup5.png

Nhấp vào Tiếp tục .

qwiksetup6.png

Phải mất một chút thời gian để cung cấp và kết nối với môi trường. Khi bạn được kết nối, bạn đã được xác thực và dự án được đặt thành _PROJECT ID của bạn. Ví dụ:

qwiksetup7.png

gcloud là công cụ dòng lệnh cho Google Cloud. Nó được cài đặt sẵn trên Cloud Shell và hỗ trợ hoàn thành tab.

Bạn có thể liệt kê tên tài khoản đang hoạt động bằng lệnh này:

gcloud auth list

(Đầu ra)

HOẠT ĐỘNG: * TÀI KHOẢN: sinh viên-01-xxxxxxxxxxxx@qwiklabs.net Để đặt tài khoản đang hoạt động, hãy chạy: $ gcloud config đặt tài khoản ACCOUNT

Bạn có thể liệt kê ID dự án bằng lệnh này: gcloud config list project (Output)

dự án [cốt lõi] =

(Đầu ra ví dụ)

dự án [lõi] = qwiklabs-gcp-44776a13dea667a6

Để có tài liệu đầy đủ về gcloud, hãy xem tổng quan về công cụ dòng lệnh gcloud .

Kích hoạt dịch vụ Google Cloud

  1. Trong Cloud Shell, hãy sử dụng gcloud để kích hoạt các dịch vụ được sử dụng trong lab. gcloud services enable notebooks.googleapis.com

Triển khai phiên bản Vertex Notebook

  1. Nhấp vào Menu Điều hướng và điều hướng đến Vertex AI , sau đó đến Workbench .

đỉnh-ai-workbench.png

  1. Trên trang Phiên bản sổ ghi chép, nhấp vào Sổ ghi chép mới .

  2. Trong menu Tùy chỉnh phiên bản, chọn TensorFlow Enterprise và chọn phiên bản TensorFlow Enterprise 2.x (with LTS) > Without GPUs .

đỉnh-notebook-create-2.png

  1. Trong hộp thoại Phiên bản sổ ghi chép mới , hãy nhấp vào biểu tượng bút chì để Chỉnh sửa thuộc tính phiên bản.

  2. Đối với Tên phiên bản , hãy nhập tên cho phiên bản của bạn.

  3. Đối với Vùng , chọn us-east1 và đối với Vùng , chọn một vùng trong vùng đã chọn.

  4. Cuộn xuống Cấu hình máy và chọn e2-standard-2 cho Loại máy.

  5. Để nguyên các trường còn lại theo mặc định và nhấp vào Tạo .

Sau vài phút, bảng điều khiển Vertex AI sẽ hiển thị tên phiên bản của bạn, sau đó là Open Jupyterlab .

  1. Nhấp chuột Mở JupyterLab . Cửa sổ JupyterLab sẽ mở trong tab mới.

Thiết lập môi trường

Sao chép kho lưu trữ phòng thí nghiệm

Tiếp theo, bạn sẽ sao chép kho lưu trữ tfx trong phiên bản JupyterLab của mình. 1. Trong JupyterLab, nhấp vào biểu tượng Terminal để mở terminal mới.

Lưu ý: Nếu được nhắc, hãy nhấp vào Cancel đối với Bản dựng được đề xuất.

  1. Để sao chép kho lưu trữ tfx Github, hãy nhập lệnh sau và nhấn Enter .
git clone https://github.com/tensorflow/tfx.git
  1. Để xác nhận rằng bạn đã sao chép kho lưu trữ, hãy bấm đúp vào thư mục tfx và xác nhận rằng bạn có thể xem nội dung của nó.

repo-thư mục.png

Cài đặt phụ thuộc phòng thí nghiệm

  1. Chạy phần sau để chuyển đến thư mục tfx/tfx/examples/airflow_workshop/taxi/setup/ , sau đó chạy ./setup_demo.sh để cài đặt các phần phụ thuộc trong phòng thí nghiệm:
cd ~/tfx/tfx/examples/airflow_workshop/taxi/setup/
./setup_demo.sh

Đoạn mã trên sẽ

  • Cài đặt các gói cần thiết.
  • Tạo một thư mục airflow trong thư mục nhà.
  • Sao chép thư mục dags từ tfx/tfx/examples/airflow_workshop/taxi/setup/ sang thư mục ~/airflow/ .
  • Sao chép tệp csv từ tfx/tfx/examples/airflow_workshop/taxi/setup/data sang ~/airflow/data .

luồng không khí-home.png

Định cấu hình máy chủ Airflow

Tạo quy tắc tường lửa để truy cập vào máy chủ luồng khí trong trình duyệt

  1. Hãy truy cập <a href="https://console.cloud.google.com/networking/firewalls/list">https://console.cloud.google.com/networking/firewalls/list</a> và đảm bảo tên dự án được chọn phù hợp
  2. Nhấp vào tùy chọn CREATE FIREWALL RULE CHÁY ở trên cùng

tường lửa-rule.png

Trong hộp thoại Tạo tường lửa , hãy làm theo các bước được liệt kê bên dưới.

  1. Đối với Name , hãy đặt airflow-tfx .
  2. Đối với Ưu tiên , hãy chọn 1 .
  3. Đối với Mục tiêu , chọn All instances in the network .
  4. Đối với phạm vi Source IPv4 , chọn 0.0.0.0/0
  5. Đối với Protocols andports , click vào tcp và nhập 7000 vào ô bên cạnh tcp
  6. Nhấp vào Create .

tạo-tường lửa-hộp thoại.png

Chạy máy chủ luồng khí từ shell của bạn

Trong cửa sổ Jupyter Lab Terminal, thay đổi thư mục chính, chạy lệnh airflow users create để tạo người dùng quản trị cho Airflow:

cd
airflow users  create --role Admin --username admin --email admin --firstname admin --lastname admin --password admin

Sau đó chạy airflow webserver và lệnh airflow scheduler để chạy máy chủ. Chọn cổng 7000 vì nó được phép thông qua tường lửa.

nohup airflow webserver -p 7000 &> webserver.out &
nohup airflow scheduler &> scheduler.out &

Nhận ip bên ngoài của bạn

  1. Trong Cloud Shell, sử dụng gcloud để lấy IP bên ngoài.
gcloud compute instances list

gcloud-instance-ip.png

Chạy DAG/Đường ống

Trong một trình duyệt

Mở trình duyệt và truy cập http:// :7000

  • Trong trang đăng nhập, nhập tên người dùng ( admin ) và mật khẩu ( admin ) bạn đã chọn khi chạy lệnh airflow users create .

luồng không khí-đăng nhập.png

Luồng khí tải DAG từ tệp nguồn Python. Nó lấy từng tập tin và thực thi nó. Sau đó, nó tải bất kỳ đối tượng DAG nào từ tệp đó. Tất cả các tệp .py xác định đối tượng DAG sẽ được liệt kê dưới dạng đường dẫn trong trang chủ luồng khí.

Trong hướng dẫn này, Airflow quét thư mục ~/airflow/dags/ để tìm các đối tượng DAG.

Nếu bạn mở ~/airflow/dags/taxi_pipeline.py và cuộn xuống phía dưới, bạn có thể thấy rằng nó tạo và lưu trữ một đối tượng DAG trong một biến có tên DAG . Do đó, nó sẽ được liệt kê dưới dạng đường dẫn trong trang chủ luồng không khí như dưới đây:

dag-home-full.png

Nếu bạn nhấp vào taxi, bạn sẽ được chuyển hướng đến chế độ xem dạng lưới của DAG. Bạn có thể nhấp vào tùy chọn Graph ở trên cùng để có chế độ xem biểu đồ của DAG.

luồng không khí-dag-graph.png

Kích hoạt đường ống taxi

Trên trang chủ, bạn có thể thấy các nút có thể được sử dụng để tương tác với DAG.

dag-buttons.png

Dưới tiêu đề hành động , hãy nhấp vào nút kích hoạt để kích hoạt quy trình.

Trong trang DAG taxi, sử dụng nút ở bên phải để làm mới trạng thái của chế độ xem biểu đồ của DAG khi đường ống chạy. Ngoài ra, bạn có thể bật Tự động làm mới để hướng dẫn Airflow tự động làm mới chế độ xem biểu đồ khi trạng thái thay đổi.

dag-button-refresh.png

Bạn cũng có thể sử dụng Airflow CLI trong thiết bị đầu cuối để bật và kích hoạt DAG của mình:

# enable/disable
airflow pause <your DAG name>
airflow unpause <your DAG name>

# trigger
airflow trigger_dag <your DAG name>

Đang chờ đường ống hoàn thành

Sau khi kích hoạt quy trình của mình, trong chế độ xem DAG, bạn có thể xem tiến trình của quy trình trong khi nó đang chạy. Khi mỗi thành phần chạy, màu đường viền của thành phần trong biểu đồ DAG sẽ thay đổi để hiển thị trạng thái của nó. Khi một thành phần xử lý xong, đường viền sẽ chuyển sang màu xanh đậm để cho biết rằng nó đã hoàn tất.

dag-step7.png

Hiểu các thành phần

Bây giờ chúng ta sẽ xem xét chi tiết các thành phần của quy trình này và xem xét riêng từng kết quả đầu ra được tạo ra bởi mỗi bước trong quy trình.

  1. Trong JupyterLab, hãy truy cập ~/tfx/tfx/examples/airflow_workshop/taxi/notebooks/

  2. Mở notebook.ipynb. notebook-ipynb.png

  3. Tiếp tục bài thí nghiệm trong sổ ghi chép và chạy từng ô bằng cách bấm vào Chạy ( nút chạy.png ) ở đầu màn hình. Ngoài ra, bạn có thể thực thi mã trong một ô bằng SHIFT + ENTER .

Đọc tường thuật và đảm bảo bạn hiểu điều gì đang xảy ra trong mỗi ô.