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
- Tạo bọ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 độ 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
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.
- 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 .
Mẹo: Mở các tab trong các cửa sổ riêng biệt, cạnh nhau.
- 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.
- Bấm qua các trang tiếp theo:
- 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.
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 .
Nhấp vào Tiếp tục .
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ụ:
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
- 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
- Nhấp vào Menu Điều hướng và điều hướng đến Vertex AI , sau đó đến Workbench .
Trên trang Phiên bản sổ ghi chép, nhấp vào Sổ ghi chép mới .
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 .
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.
Đối với Tên phiên bản , hãy nhập tên cho phiên bản của bạn.
Đố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.Cuộn xuống Cấu hình máy và chọn e2-standard-2 cho Loại máy.
Để 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 .
- 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.
Cancel
đối với Bản dựng được đề xuất.
- Để 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
- Để 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ó.
Cài đặt phụ thuộc phòng thí nghiệm
- 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/
thư mục~/airflow/
. - Sao chép tệp csv từ
tfx/tfx/examples/airflow_workshop/taxi/setup/data
sang~/airflow/data
.
Đị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
- 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 - Nhấp vào tùy chọn
CREATE FIREWALL RULE
ở trên cùng
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.
- Đối với Name , hãy đặt
airflow-tfx
. - Đối với Ưu tiên , hãy chọn
1
. - Đối với Mục tiêu , chọn
All instances in the network
. - Đối với phạm vi Source IPv4 , chọn
0.0.0.0/0
- Đối với Protocols andports , click vào
tcp
và nhập7000
vào ô bên cạnhtcp
- Nhấp vào
Create
.
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
- Trong Cloud Shell, sử dụng
gcloud
để lấy IP bên ngoài.
gcloud compute instances list
Chạy DAG/Đường ống
Trong một trình duyệt
Mở trình duyệt và truy cập http://
- 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ệnhairflow users create
.
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 ống trong trang chủ luồng không khí như dưới đây:
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.
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.
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.
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.
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.
Trong JupyterLab, hãy truy cập
~/tfx/tfx/examples/airflow_workshop/taxi/notebooks/
Mở notebook.ipynb.
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 ( ) ở đầ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 ô.