Sử dụng các khung ML khác trong TFX

Nền tảng TFX là khung trung lập và có thể được sử dụng với các khung ML khác, ví dụ: JAX, scikit-learn.

Đối với các nhà phát triển mô hình, điều này có nghĩa là họ không cần phải viết lại mã mô hình được triển khai trong khung ML khác mà thay vào đó có thể sử dụng lại phần lớn mã đào tạo như trong TFX và hưởng lợi từ các khả năng khác của TFX và phần còn lại của Hệ sinh thái TensorFlow cung cấp.

SDK quy trình TFX và hầu hết các mô-đun trong TFX, ví dụ: bộ điều phối quy trình, không có bất kỳ sự phụ thuộc trực tiếp nào vào TensorFlow, nhưng có một số khía cạnh hướng tới TensorFlow, chẳng hạn như định dạng dữ liệu. Với một số cân nhắc về nhu cầu của một khung mô hình hóa cụ thể, một đường dẫn TFX có thể được sử dụng để đào tạo các mô hình trong bất kỳ khung ML dựa trên Python nào khác. Điều này bao gồm Scikit-learn, XGBoost và PyTorch, cùng với những thứ khác. Một số điều cần cân nhắc khi sử dụng các thành phần TFX tiêu chuẩn với các khung khác bao gồm:

  • Ví dụGen xuất ra tf.train.Example trong các tệp TFRecord. Đó là một cách biểu diễn chung cho dữ liệu huấn luyện và các thành phần xuôi dòng sử dụng TFXIO để đọc nó dưới dạng Arrow/RecordBatch trong bộ nhớ, có thể được chuyển đổi thêm thành tf.dataset , Tensors hoặc các định dạng khác. Các định dạng tải trọng/tệp khác ngoài tf.train.Example/TFRecord đang được xem xét, nhưng đối với người dùng TFXIO thì đó phải là hộp đen.
  • Biến đổi có thể được sử dụng để tạo các ví dụ đào tạo đã chuyển đổi bất kể khung đào tạo nào được sử dụng, nhưng nếu định dạng mô hình không được saved_model , người dùng sẽ không thể nhúng biểu đồ biến đổi vào mô hình. Trong trường hợp đó, dự đoán mô hình cần sử dụng các tính năng được chuyển đổi thay vì các tính năng thô và người dùng có thể chạy biến đổi như một bước tiền xử lý trước khi gọi dự đoán mô hình khi phân phát.
  • Trainer hỗ trợ GenericTraining để người dùng có thể đào tạo mô hình của họ bằng bất kỳ khung ML nào.
  • Trình đánh giá theo mặc định chỉ hỗ trợ saved_model nhưng người dùng có thể cung cấp UDF để tạo dự đoán cho việc đánh giá mô hình.

Việc đào tạo mô hình trong khung không dựa trên Python sẽ yêu cầu cách ly thành phần đào tạo tùy chỉnh trong bộ chứa Docker, như một phần của quy trình đang chạy trong môi trường được chứa trong bộ chứa như Kubernetes.

JAX

JAX là Autograd và XLA, được kết hợp để nghiên cứu máy học hiệu suất cao. Flax là thư viện mạng thần kinh và hệ sinh thái dành cho JAX, được thiết kế để mang lại sự linh hoạt.

Với jax2tf , chúng tôi có thể chuyển đổi các mô hình JAX/Flax đã được đào tạo thành định dạng saved_model , có thể được sử dụng liền mạch trong TFX với quá trình đào tạo chung và đánh giá mô hình. Để biết chi tiết, hãy kiểm tra ví dụ này.

scikit-tìm hiểu

Scikit-learn là thư viện máy học dành cho ngôn ngữ lập trình Python. Chúng tôi có một ví dụ e2e với đào tạo và đánh giá tùy chỉnh trong TFX-Addons.