Các mô hình học máy (ML) mà bạn sử dụng với LiteRT ban đầu là được xây dựng và huấn luyện bằng các công cụ và thư viện lõi TensorFlow. Sau khi tạo xong một mô hình có lõi TensorFlow, bạn có thể chuyển đổi nó thành một mô hình nhỏ hơn, định dạng mô hình ML hiệu quả được gọi là mô hình LiteRT. Phần này cung cấp hướng dẫn chuyển đổi các mô hình TensorFlow sang định dạng mô hình LiteRT.
Quy trình chuyển đổi
Việc chuyển đổi các mô hình TensorFlow sang định dạng LiteRT có thể mất một vài cách tuỳ thuộc vào nội dung của mô hình học máy. Trong bước đầu tiên của quá trình đó, bạn nên đánh giá mô hình của mình để xác định xem có thể chuyển đổi trực tiếp mô hình đó hay không. Việc đánh giá này xác định liệu nội dung của mô hình có được hỗ trợ bởi môi trường thời gian chạy LiteRT tiêu chuẩn dựa trên toán tử TensorFlow công cụ đó sử dụng. Nếu mô hình của bạn sử dụng các toán tử nằm ngoài nhóm được hỗ trợ, thì để tái cấu trúc mô hình hoặc sử dụng kỹ thuật chuyển đổi nâng cao.
Sơ đồ dưới đây cho thấy các bước tổng quan trong quá trình chuyển đổi một mô hình.
Hình 1. Quy trình chuyển đổi LiteRT.
Các phần sau đây trình bày quy trình đánh giá và chuyển đổi mô hình để sử dụng với LiteRT.
Định dạng mô hình đầu vào
Bạn có thể sử dụng trình chuyển đổi này với các định dạng mô hình đầu vào sau đây:
- SavedModel (nên dùng): Mô hình TensorFlow được lưu dưới dạng một tập hợp các tệp trên ổ đĩa.
- Mô hình Elis: Một mô hình được tạo bằng API Keras cấp cao.
- Định dạng Keras H5: Một giải pháp thay thế gọn nhẹ cho định dạng SavedModel được API Keras hỗ trợ.
- Mô hình được xây dựng từ các hàm cụ thể: Một mô hình được tạo bằng API TensorFlow cấp thấp.
Bạn có thể lưu cả mô hình hàm Keras và cụ thể dưới dạng SavedModel và chuyển đổi bằng đường dẫn đề xuất.
Nếu có mô hình Jax, bạn có thể sử dụng TFLiteConverter.experimental_from_jax
để chuyển đổi sang định dạng LiteRT. Lưu ý rằng API này phải tuân thủ
thay đổi khi ở chế độ thử nghiệm.
Đánh giá lượt chuyển đổi
Việc đánh giá mô hình là bước quan trọng trước khi thử chuyển đổi mô hình đó. Khi đánh giá, bạn muốn xác định xem nội dung của mô hình có tương thích với Định dạng LiteRT. Bạn cũng nên xác định xem mô hình này có phù hợp hay không để sử dụng trên thiết bị di động và thiết bị Edge về kích thước dữ liệu mà mô hình sử dụng, các yêu cầu về xử lý phần cứng cũng như kích thước tổng thể của mô hình và độ phức tạp của chúng.
Đối với nhiều mô hình, trình chuyển đổi nên hoạt động ngay từ đầu. Tuy nhiên, Thư viện toán tử tích hợp LiteRT hỗ trợ một tập hợp con Toán tử cốt lõi TensorFlow, nghĩa là một số mô hình có thể cần thêm trước khi chuyển đổi sang LiteRT. Ngoài ra, một số thao tác được LiteRT hỗ trợ có hạn chế các yêu cầu sử dụng vì lý do hiệu suất. Xem hướng dẫn về khả năng tương thích với toán tử để xác định xem mô hình của bạn có cần được tái cấu trúc cho lượt chuyển đổi hay không.
Chuyển đổi mô hình
Bộ chuyển đổi LiteRT dùng mô hình TensorFlow và tạo một
Mô hình LiteRT (một mô hình được tối ưu hoá
Định dạng FlatBuffer được xác định bởi
Đuôi tệp .tflite
). Bạn có thể tải
SavedModel hoặc trực tiếp chuyển đổi mô hình mà bạn tạo trong mã.
Trình chuyển đổi có 3 cờ chính (hoặc các tuỳ chọn) giúp tuỳ chỉnh lượt chuyển đổi cho mô hình của bạn:
- Cờ tương thích cho phép bạn chỉ định liệu lượt chuyển đổi có cho phép toán tử tuỳ chỉnh hay không.
- Cờ tối ưu hoá cho phép bạn xác định loại tối ưu hoá để áp dụng trong khi chuyển đổi. Kỹ thuật tối ưu hoá thường được dùng nhất là định lượng sau đào tạo.
- Cờ siêu dữ liệu cho phép bạn thêm siêu dữ liệu vào mô hình được chuyển đổi giúp tạo mã bao bọc dành riêng cho nền tảng khi triển khai mẫu trên thiết bị.
Bạn có thể chuyển đổi mô hình bằng Python API hoặc công cụ Command line (Dòng lệnh). Xem Hướng dẫn Chuyển đổi mô hình TF theo từng bước hướng dẫn về cách chạy trình chuyển đổi trên mô hình của bạn.
Thông thường, bạn sẽ chuyển đổi mô hình của mình thành LiteRT chuẩn môi trường thời gian chạy hoặc Môi trường thời gian chạy của Dịch vụ Google Play dành cho LiteRT (Beta). Một số trường hợp sử dụng nâng cao cần có tuỳ chỉnh môi trường thời gian chạy của mô hình, do đó yêu cầu thực hiện thêm một số bước trong hành vi chuyển đổi. Xem phần môi trường thời gian chạy nâng cao của Android để được hướng dẫn thêm.
Chuyển đổi nâng cao
Nếu bạn gặp lỗi trong khi chạy trình chuyển đổi trên mô hình của mình, rất có thể bạn có vấn đề về khả năng tương thích với nhà cung cấp dịch vụ. Không phải toán tử TensorFlow nào cũng được được TensorFlow hỗ trợ Phiên bản Bạn có thể giải quyết những vấn đề này bằng cách tái cấu trúc mô hình hoặc sử dụng các tùy chọn chuyển đổi nâng cao cho phép bạn tạo LiteRT được sửa đổi mô hình định dạng và môi trường thời gian chạy tuỳ chỉnh cho mô hình đó.
- Xem bài viết Tổng quan về khả năng tương thích của mô hình để biết thêm thông tin về khả năng tương thích của mô hình TensorFlow và LiteRT những yếu tố khác cần cân nhắc.
- Những chủ đề trong mục Tổng quan về khả năng tương thích với mô hình bao gồm các kỹ thuật nâng cao để tái cấu trúc mô hình, chẳng hạn như Toán tử chọn của chúng tôi.
- Để xem danh sách đầy đủ các hoạt động và giới hạn, hãy xem Trang vận hành LiteRT.
Các bước tiếp theo
- Xem hướng dẫn chuyển đổi mô hình TF để nhanh chóng bắt đầu chuyển đổi mô hình.
- Xem bài viết tổng quan về tính năng tối ưu hoá cho hướng dẫn về cách tối ưu hoá mô hình đã chuyển đổi bằng cách sử dụng các kỹ thuật như định lượng sau đào tạo.
- Hãy xem bài viết Thêm thông tin tổng quan về siêu dữ liệu để tìm hiểu cách thêm siêu dữ liệu vào mô hình của bạn. Siêu dữ liệu cũng cung cấp cả những thông tin mô tả khác về mô hình của bạn làm thông tin mà trình tạo mã có thể tận dụng.