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 sự 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ẽ tuân 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 quy trình 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. Đây là các bước:
- Thiết lập môi trường của bạn
- Mang lại khung đường ống ban đầu
- Đi sâu vào dữ liệu của bạn
- Kỹ thuật tính năng
- Tập huấn
- Phân tích hiệu suất mô hình
- 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
của mình 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
Dung dịch
- 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
- Đường ống TFX phù 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
- 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
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 tệp, nhưng tất cả mã cho 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 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
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 đã khởi động 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 khí, nhưng bạn có thể thay đổi nó đế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
- 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
Luồng khí CLI
Bạn cũng có thể sử dụng CLI Luồng khí để bật và kích hoạt các 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 DAG, bạn có thể xem khi đường dẫn 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).
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 ML hoặc khoa học dữ liệu 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
- ExampleGen nhập và chia nhỏ 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
trongtaxi_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
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
Ví dụ nâng cao hơn
Ví dụ được trình bày ở đây thực sự chỉ để 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à kết quả chuyển đổi sẽ nhất quán giữa đào tạo và phục vụ.
Các thành phần
- 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.py
vàtaxi_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
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ỉ để giúp bạn bắt đầu. Để có 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 đã 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
- Huấn luyện viên đào tạo mô hình bằng cách sử dụng Công cụ ước tính TensorFlow
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.py
vàtaxi_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
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
Ví dụ nâng cao hơn
Ví dụ được trình bày ở đây thực sự chỉ để 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
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
Ví dụ nâng cao hơn
Ví dụ được trình bày ở đây thực sự chỉ để 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 một 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
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
trong 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ột máy chủ hoặc trang trại 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.