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