Ngày Cộng đồng ML là ngày 9 tháng 11! Tham gia với chúng tôi để cập nhật từ TensorFlow, JAX, và nhiều hơn nữa Tìm hiểu thêm

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

Python PyPI

Giới thiệu

Hướng dẫn này được thiết kế để giới thiệu TensorFlow Extended (TFX) và giúp bạn học cách tạo các đường dẫn máy học của riêng mình. Nó chạy cục bộ và cho thấy tích hợp với TFX và TensorBoard cũng như tương tác với TFX trong máy tính xách tay Jupyter.

Bạn sẽ làm theo một quy trình phát triển ML điển hình, bắt đầu bằng cách kiểm tra tập dữ liệu và kết thúc với một đường dẫn hoạt động hoàn chỉnh. Trong quá trình này, bạn sẽ khám phá các cách gỡ lỗi và cập nhật đường dẫn của mình cũng như đo lường hiệu suất.

Tìm hiểu thêm

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

Từng bước một

Bạn sẽ dần dần tạo đường dẫn của mình bằng cách làm việc từng bước, theo một quy trình phát triển ML điển hình. Dưới đây là các bước:

  1. Thiết lập môi trường của bạn
  2. Mang lại khung đường ống ban đầu
  3. Đi sâu vào dữ liệu của bạn
  4. Kỹ thuật tính năng
  5. Đào tạo
  6. Phân tích hiệu suất mô hình
  7. Sẵn sàng cho sản xuất

Điều kiện tiên quyết

  • Linux / MacOS
  • Virtualenv
  • Python 3.5+
  • Git

Gói bắt buộc

Tùy thuộc vào môi trường của bạn, bạn có thể cần cài đặt một số gói:

sudo apt-get install \
    build-essential libssl-dev libffi-dev \
    libxml2-dev libxslt1-dev zlib1g-dev \
    python3-pip git software-properties-common

Nếu bạn đang chạy Python 3.6, bạn nên cài đặt python3.6-dev:

sudo apt-get install python3.6-dev

Nếu bạn đang chạy Python 3.7, bạn nên cài đặt python3.7-dev:

sudo apt-get install python3.7-dev

Ngoài ra, nếu hệ thống của bạn có phiên bản GCC <7, bạn nên cập nhật GCC. Nếu không, bạn sẽ thấy lỗi khi chạy airflow webserver . Bạn có thể kiểm tra phiên bản hiện tại của mình bằng:

gcc --version

Nếu bạn cần cập nhật GCC, bạn có thể chạy như sau:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install gcc-7
sudo apt install g++-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60 --slave /usr/bin/g++ g++ /usr/bin/g++-7

Môi trường MacOS

Nếu bạn chưa cài đặt Python 3 và git, bạn có thể cài đặt chúng bằng trình quản lý gói Homebrew :

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
brew update
brew install python
brew install git

MacOS đôi khi gặp sự cố phân luồng khi chạy Luồng khí, tùy thuộc vào cấu hình. Để tránh những vấn đề đó, bạn nên chỉnh sửa ~/.bash_profile và thêm dòng sau vào cuối tệp:

export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

Tài liệu hướng dẫn

Mã cho hướng dẫn này có sẵn tại: https://github.com/tensorflow/tfx/tree/master/tfx/examples/airflow_workshop

Mã được sắp xếp theo các bước mà bạn đang thực hiện, vì vậy đối với mỗi bước, bạn sẽ có mã bạn cần và hướng dẫn về những việc cần làm với nó.

Các tệp hướng dẫn bao gồm cả bài tập và lời giải cho bài tập, đề phòng trường hợp bạn gặp khó khăn.

Tập thể dục

  • taxi_pipeline.py
  • taxi_utils.py
  • taxi DAG

Giải pháp

  • taxi_pipeline_solution.py
  • taxi_utils_solution.py
  • taxi_solution DAG

Bạn đang làm gì vậy

Bạn đang học cách tạo đường dẫn ML bằng TFX

  • Đường ống TFX thích hợp khi bạn triển khai ứng dụng ML sản xuất
  • Đường ống TFX thích hợp khi tập dữ liệu lớn
  • Các đường ống TFX thích hợp khi đào tạo / phục vụ nhất quán là quan trọng
  • Các đường ống TFX thích hợp khi quản lý phiên bản để suy luận là quan trọng
  • Google sử dụng đường ống TFX cho ML sản xuất

Bạn đang theo dõi một quy trình phát triển ML điển hình

  • Ăn, 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

Thêm mã cho mỗi bước

Hướng dẫn được thiết kế để tất cả mã được bao gồm trong các tệp, nhưng tất cả mã cho các bước 3-7 được nhận xét và đánh dấu bằng nhận xét nội tuyến. Các chú thích nội tuyến xác định dòng mã áp dụng cho bước nào. Ví dụ: mã cho bước 3 được đánh dấu bằng chú thích # Step 3 .

Mã mà bạn sẽ thêm cho mỗi bước thường nằm trong 3 vùng của mã:

  • hàng nhập khẩu
  • Cấu hình DAG
  • Danh sách được trả về từ lệnh gọi create_pipeline ()
  • Mã hỗ trợ trong taxi_utils.py

Khi bạn xem qua hướng dẫn, bạn sẽ bỏ ghi chú các dòng mã áp dụng cho bước hướng dẫn mà bạn hiện đang thực hiện. Điều đó sẽ thêm mã cho bước đó và cập nhật đường dẫn của bạn. Khi bạn làm điều đó, chúng tôi đặc biệt khuyến khích bạn xem lại mã mà bạn đang ghi chú .

Chicago Taxi Dataset

xe tắc xiTaxi Chicago

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

Bạn có thể đọc thêm về tập dữ liệu trong Google BigQuery . Khám phá tập dữ liệu đầy đủ trong giao diện người dùng BigQuery .

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

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

Bước 1: Thiết lập môi trường của bạn

Tập lệnh thiết lập ( setup_demo.sh ) cài đặt TFX và Luồng khí , đồng thời định cấu hình Luồng khí theo cách giúp bạn dễ dàng làm việc với hướng dẫn này.

Trong một vỏ:

cd
virtualenv -p python3 tfx-env
source ~/tfx-env/bin/activate

git clone https://github.com/tensorflow/tfx.git
cd ~/tfx
# These instructions are specific to the 0.21 release
git checkout -f origin/r0.21
cd ~/tfx/tfx/examples/airflow_workshop/setup
./setup_demo.sh

Bạn nên xem lại setup_demo.sh để xem nó đang làm gì.

Bước 2: Đưa ra khung đường ống ban đầu

Chào thế giới

Trong một vỏ:

# Open a new terminal window, and in that window ...
source ~/tfx-env/bin/activate
airflow webserver -p 8080

# Open another new terminal window, and in that window ...
source ~/tfx-env/bin/activate
airflow scheduler

# Open yet another new terminal window, and in that window ...
# Assuming that you've cloned the TFX repo into ~/tfx
source ~/tfx-env/bin/activate
cd ~/tfx/tfx/examples/airflow_workshop/notebooks
jupyter notebook

Bạn đã bắt đầu sổ ghi chép Jupyter trong bước này. Sau đó, bạn sẽ chạy các sổ ghi chép trong thư mục này.

Trong trình duyệt:

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

Xử lý sự cố

Nếu bạn gặp bất kỳ sự cố nào khi tải bảng điều khiển Luồng luồng khí trong trình duyệt web của mình hoặc nếu có bất kỳ lỗi nào khi bạn chạy airflow webserver , thì bạn có thể có một ứng dụng khác đang chạy trên cổng 8080. Đó là cổng mặc định cho Luồng luồng, nhưng bạn có thể thay đổi đến bất kỳ cổng người dùng nào khác không được sử dụng. Ví dụ: để chạy Luồng không khí trên cổng 7070, bạn có thể chạy:

airflow webserver -p 7070

Các nút xem DAG

Các nút DAG

  • Sử dụng nút bên trái để bật DAG
  • Sử dụng nút ở bên phải để làm mới DAG khi bạn thực hiện các thay đổi
  • Sử dụng nút bên phải để kích hoạt DAG
  • Nhấp vào taxi để đến chế độ xem đồ thị của DAG

Nút làm mới biểu đồ

Luồng khí CLI

Bạn cũng có thể sử dụng CLI luồng không khí để 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 đợi quá trình hoàn thành

Sau khi bạn đã kích hoạt đường ống của mình trong chế độ xem DAGs, bạn có thể xem khi đường ống của mình hoàn tất quá trình xử lý. 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 được xử lý xong, đường viền sẽ chuyển sang màu xanh lá cây đậm để cho thấy rằng nó đã hoàn thành.

Cho đến nay, bạn chỉ có thành phần CsvExampleGen trong đường dẫn của chúng tôi, vì vậy bạn cần đợi nó chuyển sang màu xanh đậm (~ 1 phút).

Thiết lập xong

Bước 3: Đi sâu vào dữ liệu của bạn

Nhiệm vụ đầu tiên trong bất kỳ dự án khoa học dữ liệu hoặc ML nào là hiểu và làm sạch dữ liệu.

  • Hiểu các loại dữ liệu cho từng tính năng
  • Tìm kiếm các điểm bất thường và các giá trị bị thiếu
  • Hiểu các bản phân phối cho từng tính năng

Các thành phần

Thành phần dữ liệuThành phần dữ liệu

  • ExampleGen nhập và tách tập dữ liệu đầu vào.
  • StatisticsGen tính toán số liệu thống kê cho tập dữ liệu.
  • SchemaGen SchemaGen kiểm tra thống kê và tạo một lược đồ dữ liệu.
  • ExampleValidator tìm kiếm những điểm bất thường và thiếu giá trị trong tập dữ liệu.

Trong một trình soạn thảo:

  • Trong ~ / airflow / dags bỏ ghi chú các dòng được đánh dấu Step 3 trong taxi_pipeline.py
  • Hãy dành một chút thời gian để xem lại mã mà bạn đã bỏ ghi chú

Trong trình duyệt:

  • Quay lại trang danh sách DAGs trong Luồng không khí bằng cách nhấp vào liên kết "DAGs" ở góc trên cùng bên trái
  • Nhấp vào nút làm mới ở phía bên phải cho taxi DAG
    • Bạn sẽ thấy "DAG [taxi] bây giờ tươi như hoa cúc"
  • Taxi kích hoạt
  • Chờ cho quá trình hoàn tất
    • Tất cả màu xanh lá cây đậm
    • Sử dụng làm mới ở bên phải hoặc làm mới trang

Đi sâu vào dữ liệu

Quay lại Jupyter:

Trước đó, bạn đã chạy jupyter notebook , mở một phiên Jupyter trong tab trình duyệt. Bây giờ quay lại tab đó trong trình duyệt của bạn.

  • Mở step3.ipynb
  • Làm theo sổ tay

Đi sâu vào dữ liệu

Ví dụ nâng cao hơn

Ví dụ được trình bày ở đây thực sự chỉ nhằm giúp bạn bắt đầu. Để có ví dụ nâng cao hơn, hãy xem Colab xác thực dữ liệu TensorFlow .

Để biết thêm thông tin về cách sử dụng TFDV để khám phá và xác thực tập dữ liệu, hãy xem các ví dụ trên tensorflow.org .

Bước 4: Kỹ thuật tính năng

Bạn có thể tăng chất lượng dự đoán của dữ liệu và / hoặc giảm kích thước bằng kỹ thuật tính năng.

  • Tính năng chéo
  • Từ vựng
  • Nhúng
  • PCA
  • Mã hóa phân loại

Một trong những lợi ích của việc sử dụng TFX là bạn sẽ viết mã chuyển đổi của mình một lần và các chuyển đổi kết quả sẽ nhất quán giữa đào tạo và phục vụ.

Các thành phần

Biến đổi

  • Transform thực hiện kỹ thuật tính năng trên tập dữ liệu.

Trong một trình soạn thảo:

  • Trong ~ / airflow / dags bỏ ghi chú các dòng được đánh dấu Step 4 trong cả taxi_pipeline.pytaxi_utils.py
  • Hãy dành một chút thời gian để xem lại mã mà bạn đã bỏ ghi chú

Trong trình duyệt:

  • Quay lại trang danh sách DAGs trong Luồng không khí
  • Nhấp vào nút làm mới ở phía bên phải cho taxi DAG
    • Bạn sẽ thấy "DAG [taxi] bây giờ tươi như hoa cúc"
  • Taxi kích hoạt
  • Chờ cho quá trình hoàn tất
    • Tất cả màu xanh lá cây đậm
    • Sử dụng làm mới ở bên phải hoặc làm mới trang

Kỹ thuật tính năng

Quay lại Jupyter:

Quay lại tab Jupyter trong trình duyệt của bạn.

  • Mở step4.ipynb
  • Làm theo sổ tay

Ví dụ nâng cao hơn

Ví dụ được trình bày ở đây thực sự chỉ nhằm giúp bạn bắt đầu. Để có một ví dụ nâng cao hơn, hãy xem Colab TensorFlow Transform .

Bước 5: Đào tạo

Đào tạo mô hình TensorFlow với dữ liệu đã được biến đổi, đẹp đẽ của bạn.

  • Bao gồm các chuyển đổi từ bước 4 để chúng được áp dụng nhất quán
  • Lưu kết quả dưới dạng SavedModel để sản xuất
  • Hình dung và khám phá quá trình đào tạo bằng TensorBoard
  • Đồng thời lưu một EvalSavedModel để phân tích hiệu suất mô hình

Các thành phần

Trong một trình soạn thảo:

  • Trong ~ / airflow / dags bỏ ghi chú các dòng được đánh dấu Step 5 trong cả taxi_pipeline.pytaxi_utils.py
  • Hãy dành một chút thời gian để xem lại mã mà bạn đã bỏ ghi chú

Trong trình duyệt:

  • Quay lại trang danh sách DAGs trong Luồng không khí
  • Nhấp vào nút làm mới ở phía bên phải cho taxi DAG
    • Bạn sẽ thấy "DAG [taxi] bây giờ tươi như hoa cúc"
  • Taxi kích hoạt
  • Chờ cho quá trình hoàn tất
    • Tất cả màu xanh lá cây đậm
    • Sử dụng làm mới ở bên phải hoặc làm mới trang

Đào tạo một người mẫu

Quay lại Jupyter:

Quay lại tab Jupyter trong trình duyệt của bạn.

  • Mở step5.ipynb
  • Làm theo sổ tay

Đào tạo một người mẫu

Ví dụ nâng cao hơn

Ví dụ được trình bày ở đây thực sự chỉ nhằm giúp bạn bắt đầu. Để có ví dụ nâng cao hơn, hãy xem Hướng dẫn về TensorBoard .

Bước 6: Phân tích hiệu suất mô hình

Hiểu nhiều hơn không chỉ là các chỉ số cấp cao nhất.

  • Người dùng chỉ trải nghiệm hiệu suất mô hình cho các truy vấn của họ
  • Hiệu suất kém trên các phần dữ liệu có thể bị ẩn bởi các chỉ số cấp cao nhất
  • Công bằng kiểu mẫu là quan trọng
  • Thường thì các tập hợp con chính của người dùng hoặc dữ liệu rất quan trọng và có thể nhỏ
    • Hiệu suất trong các điều kiện quan trọng nhưng bất thường
    • Hiệu suất cho các đối tượng chính, chẳng hạn như những người có ảnh hưởng
  • Nếu bạn đang thay thế một mô hình hiện đang được sản xuất, trước tiên hãy đảm bảo rằng mô hình mới tốt hơn
  • Trình đánh giá cho thành phần Bộ đẩy xem mô hình có ổn không

Các thành phần

  • Người đánh giá thực hiện phân tích sâu về kết quả đào tạo và đảm bảo rằng mô hình "đủ tốt" để đưa vào sản xuất.

Trong một trình soạn thảo:

  • Trong ~ / airflow / dags bỏ ghi chú các dòng được đánh dấu Step 6 trong cả taxi_pipeline.py
  • Hãy dành một chút thời gian để xem lại mã mà bạn đã bỏ ghi chú

Trong trình duyệt:

  • Quay lại trang danh sách DAGs trong Luồng không khí
  • Nhấp vào nút làm mới ở phía bên phải cho taxi DAG
    • Bạn sẽ thấy "DAG [taxi] bây giờ tươi như hoa cúc"
  • Taxi kích hoạt
  • Chờ cho quá trình hoàn tất
    • Tất cả màu xanh lá cây đậm
    • Sử dụng làm mới ở bên phải hoặc làm mới trang

Phân tích hiệu suất mô hình

Quay lại Jupyter:

Quay lại tab Jupyter trong trình duyệt của bạn.

  • Mở step6.ipynb
  • Làm theo sổ tay

Phân tích hiệu suất mô hình

Ví dụ nâng cao hơn

Ví dụ được trình bày ở đây thực sự chỉ nhằm giúp bạn bắt đầu. Để có một ví dụ nâng cao hơn, hãy xem Hướng dẫn Taxi TFMA Chicago .

Bước 7: Sẵn sàng cho sản xuất

Nếu mô hình mới đã sẵn sàng, hãy làm cho nó như vậy.

  • Pusher triển khai SavedModels đến các vị trí nổi tiếng

Mục tiêu triển khai nhận được các mô hình mới từ các địa điểm nổi tiếng

  • TensorFlow phục vụ
  • TensorFlow Lite
  • TensorFlow JS
  • Trung tâm TensorFlow

Các thành phần

  • Pusher triển khai mô hình tới cơ sở hạ tầng phục vụ.

Trong một trình soạn thảo:

  • Trong ~ / airflow / dags bỏ ghi chú các dòng được đánh dấu Step 7 trong cả taxi_pipeline.py
  • Hãy dành một chút thời gian để xem lại mã mà bạn đã bỏ ghi chú

Trong trình duyệt:

  • Quay lại trang danh sách DAGs trong Luồng không khí
  • Nhấp vào nút làm mới ở phía bên phải cho taxi DAG
    • Bạn sẽ thấy "DAG [taxi] bây giờ tươi như hoa cúc"
  • Taxi kích hoạt
  • Chờ cho quá trình hoàn tất
    • Tất cả màu xanh lá cây đậm
    • Sử dụng làm mới ở bên phải hoặc làm mới trang

Sẵn sàng cho sản xuất

Bước tiếp theo

Bây giờ bạn đã đào tạo và xác thực mô hình của mình, đồng thời xuất tệp SavedModel thư mục ~/airflow/saved_models/taxi . Mô hình của bạn hiện đã sẵn sàng để sản xuất. Giờ đây, bạn có thể triển khai mô hình của mình cho bất kỳ mục tiêu triển khai TensorFlow nào, bao gồm:

  • TensorFlow Serving , để phục vụ mô hình của bạn trên máy chủ hoặc trang web máy chủ và xử lý các yêu cầu suy luận REST và / hoặc gRPC.
  • TensorFlow Lite , để đưa mô hình của bạn vào ứng dụng di động gốc Android hoặc iOS hoặc trong ứng dụng Raspberry Pi, IoT hoặc vi điều khiển.
  • TensorFlow.js , để chạy mô hình của bạn trong trình duyệt web hoặc ứng dụng Node.JS.