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 công cụ điều phối. Nó chạy trên Vertex AI Workbench và cho thấy khả năng 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 đường dẫn ML bằng TFX

  • Đường dẫn TFX là Đồ thị theo chu kỳ có hướng hoặc "DAG". Chúng tôi thường gọi các đường ống là DAG.
  • Đường ống TFX phù hợp khi bạn sẽ triển khai ứng dụng ML sản xuất
  • Đường ống TFX phù hợp khi tập dữ liệu lớn hoặc có thể phát triển thành lớn
  • Đường ống TFX thích hợp khi tính nhất quán trong đào tạo/phục vụ là quan trọng
  • Đường ống TFX phù hợp khi quản lý phiên bản để suy luận là quan trọng
  • Google sử dụng đường dẫn 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
  • Tập huấn
  • 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ông khí Apache cho điều phối đường ống

Bộ điều phối TFX chịu trách nhiệm lên lịch các thành phần của đường ống TFX dựa trên các phụ thuộc được xác định bởi đường ống. TFX được thiết kế để có thể di chuyển đến nhiều môi trường và khung điều phối. Một trong những bộ đ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 Luồng khí Apache cho đ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 Luồng không khí để tạo các luồng công việc dưới dạng biểu đồ tuần hoàn có hướng (DAG) của các tác 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 quá trình sản xuất, theo dõi tiến độ 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ì, có phiên bản, có thể kiểm tra và cộng tác hơn. Apache Airflow phù hợp với các đường ống xử lý hàng loạt. Nó rất nhẹ và dễ học.

Trong ví dụ này, chúng ta sẽ chạy một quy trình TFX trên một phiên bản bằng cách thiết lập Luồng không khí 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 phụ trợ xử lý dữ liệu (Beam Ruunners). Cloud Dataflow là một trong những trình chạy chùm 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ả quy trình truyền trực tuyến 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 công việc máy học (ML) trên Kubernetes đơ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 đường ống 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 trình đ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

xe taxi.jpg

chicago.png

Bạn sẽ sử dụng bộ dữ liệu Chuyến đi taxi do Thành phố Chicago phát hành.

Mục tiêu mô hình - 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 các 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ồ bấm giờ bắt đầu khi bạn nhấp vào Bắt đầu Lab , cho biết khoảng thời gian tài nguyên Google Cloud sẽ được cung cấp 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 của phòng thí nghiệm trong môi trường đám mây thực, không phải trong môi trường mô phỏng hoặc trình diễn. Nó làm như vậ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 của phòng thí nghiệm.

Những gì bạn cần Để hoàn thành phòng 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 phòng thí nghiệm của bạn và đăng nhập vào Google Cloud Console 1. Nhấp vào nút Bắt đầu phòng thí nghiệm . 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à một bảng điền thông tin đăng nhập 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ạo ra các tài nguyên, sau đó 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. Nhấp 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).

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

Sau một lúc, Bảng điều khiển đám mây sẽ mở trong tab này.

qwiksetup4.png

Kích hoạt Cloud Shell

Cloud Shell là một máy ảo được tải các công cụ phát triển. Nó cung cấp một thư mục chính 5GB liên tục 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 Bảng điều khiển đám mây, ở 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 vài phút để 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 dà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: student-01-xxxxxxxxxxxx@qwiklabs.net Để đặt tài khoản đang hoạt động, hãy chạy: $ gcloud config set account ACCOUNT

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

dự án [lõi] =

(Đầu ra ví dụ)

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

Để biết 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 phòng thí nghiệm. 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 Bàn làm việc.

vertex-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 (có LTS) > Không có GPU .

đỉnh-sổ tay-tạo-2.png

  1. Trong hộp thoại Phiên bản sổ ghi chép mới , bấm 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-chuẩn-2 cho Loại máy.

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

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

  1. Nhấp vào 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 để xây 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ữ, bấm đúp vào thư tfx và xác nhận rằng bạn có thể xem nội dung của nó.

thư mục repo.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 của 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ừ thư mục 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ông khí trong trình duyệt

  1. 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 một cách thích hợp
  2. Nhấp vào tùy chọn CREATE FIREWALL RULE ở 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 , hãy chọn All instances in the network .
  4. Đối với phạm vi Nguồn IPv4 , hãy chọn 0.0.0.0/0
  5. Đối với Giao thức và cổng , nhấp 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ông khí từ vỏ 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 Luồng khí:

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

Sau đó chạy lệnh airflow webserver luồng không khí và lập 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 một 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, hãy 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í-login.png

Luồng không khí tải DAG từ tệp nguồn Python. Nó lấy từng tệp 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ô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 dưới cùng, 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 một đường dẫn trong trang chủ luồng khí như hình bên dưới:

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

Trong tiêu đề hành động , 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 Luồng không khí 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>

Chờ đường ống hoàn thành

Sau khi bạn đã kích hoạt quy trình của mình, trong chế độ xem DAGs, 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 thành.

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 từng 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 thực hành trong sổ ghi chép và chạy từng ô bằng cách bấm vào biểu tượng Chạy ( run-button.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à chắc chắn rằng bạn hiểu những gì đang xảy ra trong mỗi tế bào.