LiteRT (viết tắt của Lite Runtime), trước đây được gọi là TensorFlow Lite, là thời gian chạy hiệu suất cao của Google dành cho AI trên thiết bị. Bạn có thể tìm thấy các mô hình LiteRT sẵn sàng chạy cho nhiều tác vụ học máy/AI hoặc chuyển đổi và chạy các mô hình TensorFlow, PyTorch và JAX sang định dạng TFLite bằng cách sử dụng các công cụ chuyển đổi và tối ưu hoá AI Edge.
Các tính năng chính
Được tối ưu hoá cho công nghệ học máy trên thiết bị (ODML): LiteRT giải quyết 5 hạn chế chính của ODML: độ trễ (không có chuyến khứ hồi đến máy chủ), quyền riêng tư (không có dữ liệu cá nhân nào rời khỏi thiết bị), khả năng kết nối (không cần kết nối Internet), kích thước (giảm kích thước mô hình và kích thước nhị phân) và mức tiêu thụ điện năng (suy luận hiệu quả và không có kết nối mạng).
Hỗ trợ nhiều nền tảng: Tương thích với các thiết bị Android và iOS, Linux nhúng và vi điều khiển.
Các lựa chọn về mô hình đa khung: AI Edge cung cấp các công cụ để chuyển đổi mô hình từ các mô hình PyTorch và TensorFlow sang định dạng FlatBuffers (
.tflite), cho phép bạn sử dụng nhiều mô hình hiện đại trên LiteRT. Bạn cũng có quyền truy cập vào các công cụ tối ưu hoá mô hình có thể xử lý việc lượng tử hoá và siêu dữ liệu.Hỗ trợ nhiều ngôn ngữ: Bao gồm các SDK cho Java/Kotlin, Swift, Objective-C, C++ và Python.
Hiệu suất cao: Tăng tốc bằng phần cứng thông qua các uỷ quyền chuyên biệt như GPU và iOS Core ML.
Quy trình phát triển
Quy trình phát triển LiteRT bao gồm việc xác định một vấn đề về ML/AI, chọn một mô hình giải quyết vấn đề đó và triển khai mô hình trên thiết bị. Các bước sau đây sẽ hướng dẫn bạn thực hiện quy trình và cung cấp đường liên kết đến hướng dẫn chi tiết hơn.
1. Xác định giải pháp phù hợp nhất cho vấn đề về học máy
LiteRT mang đến cho người dùng mức độ linh hoạt và khả năng tuỳ chỉnh cao khi giải quyết các vấn đề về học máy, nhờ đó, đây là lựa chọn phù hợp cho những người dùng yêu cầu một mô hình cụ thể hoặc một cách triển khai chuyên biệt. Những người dùng đang tìm kiếm các giải pháp plug-and-play có thể ưu tiên MediaPipe Tasks. Công cụ này cung cấp các giải pháp có sẵn cho những nhiệm vụ học máy phổ biến như phát hiện đối tượng, phân loại văn bản và suy luận LLM.
Chọn một trong các khung AI Edge sau:
- LiteRT: Thời gian chạy linh hoạt và có thể tuỳ chỉnh, có thể chạy nhiều mô hình. Chọn một mô hình cho trường hợp sử dụng của bạn, chuyển đổi mô hình đó sang định dạng LiteRT (nếu cần) và chạy mô hình đó trên thiết bị. Nếu bạn định dùng LiteRT, hãy tiếp tục đọc.
- MediaPipe Tasks: Các giải pháp plug-and-play với các mô hình mặc định cho phép tuỳ chỉnh. Chọn tác vụ giải quyết vấn đề về AI/học máy của bạn và triển khai tác vụ đó trên nhiều nền tảng. Nếu bạn dự định sử dụng MediaPipe Tasks, hãy tham khảo tài liệu về MediaPipe Tasks.
2. Chọn một mô hình
Mô hình LiteRT được biểu thị ở một định dạng di động hiệu quả, được gọi là FlatBuffers, sử dụng đuôi tệp .tflite.
Bạn có thể sử dụng mô hình LiteRT theo những cách sau:
Sử dụng mô hình LiteRT hiện có: Cách đơn giản nhất là sử dụng mô hình LiteRT đã có ở định dạng
.tflite. Các mô hình này không yêu cầu thêm bất kỳ bước chuyển đổi nào. Bạn có thể tìm thấy các mô hình LiteRT trên Kaggle Models.Chuyển đổi một mô hình thành mô hình LiteRT: Bạn có thể sử dụng PyTorch Converter hoặc TensorFlow Converter để chuyển đổi các mô hình sang định dạng FlatBuffers (
.tflite) và chạy chúng trong LiteRT. Để bắt đầu, bạn có thể tìm thấy các mô hình trên những trang web sau:- Các mô hình PyTorch trên Hugging Face và
torchvision - Mô hình TensorFlow trên Kaggle Models và Hugging Face
- Các mô hình PyTorch trên Hugging Face và
Bạn có thể tuỳ ý thêm siêu dữ liệu vào mô hình LiteRT. Siêu dữ liệu này chứa nội dung mô tả mô hình mà con người có thể đọc được và dữ liệu mà máy có thể đọc được để tự động tạo các quy trình tiền xử lý và hậu xử lý trong quá trình suy luận trên thiết bị. Hãy tham khảo bài viết Thêm siêu dữ liệu để biết thêm thông tin.
3. Tích hợp mô hình này vào ứng dụng của bạn
Bạn có thể triển khai các mô hình LiteRT để chạy các suy luận hoàn toàn trên thiết bị trên web, thiết bị nhúng và thiết bị di động. LiteRT chứa các API cho Python, Java và Kotlin cho Android, Swift cho iOS và C++ cho các thiết bị siêu nhỏ.
Hãy sử dụng các hướng dẫn sau để triển khai mô hình LiteRT trên nền tảng mà bạn muốn:
- Chạy trên Android: Chạy các mô hình trên thiết bị Android bằng cách sử dụng API Java/Kotlin.
- Chạy trên iOS: Chạy các mô hình trên thiết bị iOS bằng cách sử dụng API Swift.
- Chạy trên Micro: Chạy các mô hình trên thiết bị nhúng bằng cách sử dụng API C++.
Trên thiết bị Android và iOS, bạn có thể cải thiện hiệu suất bằng cách sử dụng tính năng tăng tốc phần cứng. Trên cả hai nền tảng, bạn đều có thể sử dụng GPU Delegate và trên iOS, bạn có thể sử dụng Core ML Delegate. Để thêm tính năng hỗ trợ cho các bộ tăng tốc phần cứng mới, bạn có thể xác định đại biểu của riêng mình.
Bạn có thể chạy suy luận theo những cách sau đây dựa trên loại mô hình:
Các mô hình không có siêu dữ liệu: Sử dụng API Trình thông dịch LiteRT. Được hỗ trợ trên nhiều nền tảng và ngôn ngữ như Java, Swift, C++, Objective-C và Python.
Các mô hình có siêu dữ liệu: Bạn có thể tạo các quy trình suy luận tuỳ chỉnh bằng Thư viện hỗ trợ LiteRT.
Di chuyển từ TF Lite
Các ứng dụng sử dụng thư viện TF Lite sẽ tiếp tục hoạt động, nhưng mọi hoạt động phát triển và cập nhật mới sẽ chỉ có trong các gói LiteRT. Các API LiteRT có tên phương thức giống như các API TF Lite, nên việc di chuyển sang LiteRT không yêu cầu thay đổi mã chi tiết.
Để biết thêm thông tin, hãy tham khảo hướng dẫn di chuyển.
Các bước tiếp theo
Người dùng mới nên bắt đầu bằng hướng dẫn nhanh về LiteRT. Để biết thông tin cụ thể, hãy xem các phần sau:
Chuyển đổi mô hình
- Chuyển đổi mô hình PyTorch
- Chuyển đổi các mô hình AI tạo sinh PyTorch
- Chuyển đổi mô hình TensorFlow
- Chuyển đổi các mô hình JAX
Hướng dẫn về nền tảng