LiteRT dành cho Android

LiteRT cho phép bạn chạy các mô hình học máy (ML) TensorFlow trong Ứng dụng Android. Hệ thống LiteRT cung cấp các tính năng tạo sẵn và tuỳ chỉnh môi trường thực thi để chạy các mô hình trên Android một cách nhanh chóng và hiệu quả, bao gồm cả các lựa chọn tăng tốc phần cứng.

Mô hình học máy

LiteRT sử dụng các mô hình TensorFlow được chuyển đổi thành một mô hình nhỏ hơn, di động, hiệu quả hơn của mô hình học máy. Bạn có thể sử dụng chiến dịch tạo sẵn các mô hình bằng LiteRT trên Android hoặc tạo mô hình TensorFlow của riêng bạn và chuyển đổi chúng sang định dạng LiteRT.

Trang này thảo luận về việc sử dụng các mô hình học máy tích hợp sẵn và không bao gồm xây dựng, đào tạo, thử nghiệm hoặc chuyển đổi mô hình. Tìm hiểu thêm về chọn, sửa đổi, xây dựng và chuyển đổi các mô hình học máy cho LiteRT trên trang Mô hình.

Chạy các mô hình trên Android

Mô hình LiteRT chạy bên trong ứng dụng Android sẽ lấy dữ liệu, các quy trình dữ liệu và tạo một dự đoán dựa trên logic của mô hình. TensorFlow Mô hình thu gọn yêu cầu một môi trường thời gian chạy đặc biệt để thực thi và dữ liệu được chuyển vào mô hình phải ở một định dạng dữ liệu cụ thể, được gọi là tensor. Khi một mô hình xử lý được gọi là chạy suy luận, công cụ này sẽ tạo ra kết quả dự đoán dưới dạng rồi truyền tensor đó sang ứng dụng Android để ứng dụng có thể thực hiện hành động, chẳng hạn như hiển thị kết quả cho người dùng hoặc thực thi logic nghiệp vụ bổ sung.

Quy trình thực thi chức năng cho các mô hình LiteRT trong Android
ứng dụng

Hình 1. Quy trình thực thi chức năng cho các mô hình LiteRT trong Android của chúng tôi.

Ở cấp độ thiết kế chức năng, ứng dụng Android của bạn cần các phần tử sau để chạy mô hình LiteRT:

  • Môi trường thời gian chạy LiteRT để thực thi mô hình
  • Trình xử lý đầu vào của mô hình để biến đổi dữ liệu thành tensor
  • Trình xử lý đầu ra của mô hình để nhận các tensor kết quả đầu ra và diễn giải chúng làm kết quả dự đoán

Các phần sau đây mô tả cách các thư viện và công cụ LiteRT cung cấp các phần tử chức năng này.

Xây dựng ứng dụng bằng LiteRT

Phần này mô tả lộ trình phổ biến và được đề xuất nhất để triển khai LiteRT trong Ứng dụng Android của bạn. Bạn nên chú ý nhất đến môi trường thời gian chạythư viện phát triển. Nếu bạn đã phát triển một mô hình tùy chỉnh, hãy nhớ xem lại hướng dẫn Phát triển nâng cao đường dẫn.

Tuỳ chọn môi trường thời gian chạy

Có một số cách để bật môi trường thời gian chạy để thực thi các mô hình trong ứng dụng Android của bạn. Dưới đây là các lựa chọn ưu tiên:

Nhìn chung, bạn nên sử dụng môi trường thời gian chạy do Google Play cung cấp vì môi trường này tiết kiệm không gian hơn so với môi trường chuẩn vì quảng cáo này sẽ tải linh hoạt, giúp giảm kích thước ứng dụng. Dịch vụ Google Play cũng tự động sử dụng bản phát hành ổn định, mới nhất của LiteRT thời gian chạy, cung cấp cho bạn các tính năng bổ sung và hiệu suất được cải thiện theo thời gian. Nếu bạn cung cấp ứng dụng trên những thiết bị không có Dịch vụ Google Play hoặc bạn cần quản lý chặt chẽ môi trường thời gian chạy máy học của mình, thì bạn nên sử dụng thời gian chạy LiteRT chuẩn. Lựa chọn này sẽ đưa mã bổ sung vào giúp bạn có nhiều quyền kiểm soát hơn đối với thời gian chạy máy học trong ứng dụng của mình tại chi phí tăng kích thước tải xuống của ứng dụng.

Bạn có thể truy cập vào các môi trường thời gian chạy này trong ứng dụng Android bằng cách thêm TensorFlow Thư viện phát triển thu gọn vào môi trường phát triển ứng dụng. Để biết thông tin về cách sử dụng môi trường thời gian chạy chuẩn trong ứng dụng của bạn, hãy xem .

Thư viện

Bạn có thể truy cập API phiên dịch bằng cách sử dụng Google Play luôn miễn phí. Bạn có thể sử dụng Lõi LiteRT và hỗ trợ trong ứng dụng Android của bạn. Cho thông tin lập trình chi tiết về cách sử dụng thư viện LiteRT và thời gian chạy môi trường, hãy xem Công cụ phát triển dành cho Android.

Nhận mô hình

Việc chạy mô hình trong ứng dụng Android yêu cầu mô hình định dạng LiteRT. Bạn có thể sử dụng các mô hình tạo sẵn hoặc tạo một mô hình với TensorFlow và chuyển đổi nó thành Lite . Để biết thêm thông tin về cách lấy mô hình cho ứng dụng Android của bạn, hãy xem Trang Mô hình LiteRT.

Xử lý dữ liệu đầu vào

Mọi dữ liệu bạn truyền vào một mô hình học máy đều phải là tensor chứa một dữ liệu cụ thể cấu trúc, thường được gọi là hình dạng của tensor. Để xử lý dữ liệu bằng mô hình, mã ứng dụng của bạn phải chuyển đổi dữ liệu từ định dạng gốc, chẳng hạn như hình ảnh, văn bản, hoặc dữ liệu âm thanh, thành tensor theo hình dạng cần thiết cho mô hình của bạn.

Chạy dự đoán

Xử lý dữ liệu thông qua một mô hình để tạo kết quả dự đoán được gọi là tiến hành suy luận. Việc chạy dự đoán trong ứng dụng Android yêu cầu Môi trường thời gian chạy LiteRT, một mô hìnhđầu vào .

Tốc độ mà một mô hình có thể đưa ra suy luận về một thiết bị cụ thể phụ thuộc vào kích thước của dữ liệu được xử lý, độ phức tạp của mô hình và tài nguyên điện toán sẵn có như bộ nhớ và CPU hoặc bộ xử lý chuyên dụng có tên là accelerator (trình tăng tốc). Các mô hình học máy có thể chạy nhanh hơn trên các bộ xử lý chuyên dụng như đơn vị xử lý đồ hoạ (GPU) và tensor bộ xử lý (TPU), sử dụng trình điều khiển phần cứng LiteRT được gọi là uỷ quyền. Để biết thêm thông tin về uỷ quyền và tăng tốc phần cứng của xử lý mô hình, hãy xem bài viết Tăng tốc phần cứng tổng quan.

Xử lý kết quả đầu ra

Các mô hình tạo ra kết quả dự đoán dưới dạng tensor, phải được xử lý bởi Ứng dụng Android bằng cách thực hiện hành động hoặc hiển thị kết quả cho người dùng. Đầu ra của mô hình kết quả có thể đơn giản như một số tương ứng với một kết quả duy nhất (0 = chó, 1 = mèo, 2 = chim) để phân loại hình ảnh, cho kết quả phức tạp hơn nhiều, chẳng hạn như nhiều hộp giới hạn cho một số đối tượng được phân loại trong một hình ảnh, với độ tin cậy của thông tin dự đoán từ 0 đến 1.

Lộ trình phát triển nâng cao

Khi sử dụng các mô hình LiteRT tinh vi và tuỳ chỉnh hơn, bạn có thể cần sử dụng các phương pháp phát triển nâng cao hơn những gì được mô tả ở trên. Các phần sau đây mô tả các kỹ thuật nâng cao để thực thi mô hình và phát triển chúng cho LiteRT trong các ứng dụng Android.

Môi trường thời gian chạy nâng cao

Ngoài môi trường thời gian chạy tiêu chuẩn và thời gian chạy của Dịch vụ Google Play môi trường thời gian chạy cho LiteRT, bạn sẽ có thêm các môi trường thời gian chạy có thể sử dụng với ứng dụng Android của bạn. Cách có nhiều khả năng được sử dụng các môi trường này nhất là nếu bạn có một mô hình học máy sử dụng các phép toán học máy không được hỗ trợ theo môi trường thời gian chạy chuẩn cho LiteRT.

Thời gian chạy linh hoạt LiteRT cho phép bạn đưa vào các toán tử cụ thể cần thiết cho mô hình của bạn. Dưới dạng tuỳ chọn nâng cao để chạy mô hình của mình, bạn có thể xây dựng LiteRT cho Android để bao gồm các toán tử và chức năng cần thiết khác để chạy mô hình học máy TensorFlow. Để biết thêm thông tin, hãy xem bài viết Xây dựng LiteRT cho Android.

API C và C++

LiteRT cũng cung cấp API để chạy các mô hình sử dụng C và C++. Nếu ứng dụng sử dụng Android NDK, bạn nên hãy cân nhắc sử dụng API này. Bạn cũng có thể muốn xem xét sử dụng API này nếu bạn muốn có thể chia sẻ mã giữa nhiều nền tảng. Thông tin khác về tuỳ chọn phát triển này, hãy xem phần Phát triển công cụ.

Thực thi mô hình dựa trên máy chủ

Nói chung, bạn nên chạy các mô hình trong ứng dụng của mình trên thiết bị Android để đưa tận dụng độ trễ thấp hơn và cải thiện quyền riêng tư đối với dữ liệu cho người dùng. Tuy nhiên, có những trường hợp trong đó việc chạy mô hình trên máy chủ đám mây, ngoài thiết bị, Cloud. Ví dụ: nếu bạn có một mô hình lớn không dễ nén sao cho phù hợp với kích thước Thiết bị Android hoặc có thể được thực thi bằng có hiệu suất hợp lý trên các thiết bị đó. Đây cũng có thể là nếu hiệu suất nhất quán của mô hình trên một loạt thiết bị là ưu tiên hàng đầu.

Google Cloud cung cấp trọn bộ dịch vụ để chạy máy TensorFlow mô hình học tập. Để biết thêm thông tin, hãy xem bài viết Công nghệ trí tuệ nhân tạo và công nghệ học máy của Google Cloud sản phẩm học tập.

Phát triển và tối ưu hoá mô hình tuỳ chỉnh

Các lộ trình phát triển nâng cao khác có thể bao gồm cả việc phát triển máy tuỳ chỉnh các mô hình học tập và tối ưu hoá các mô hình đó để sử dụng trên thiết bị Android. Nếu bạn nếu bạn có kế hoạch xây dựng mô hình tuỳ chỉnh, hãy đảm bảo rằng bạn cân nhắc việc áp dụng lượng tử hoá các kỹ thuật vào mô hình để giảm bộ nhớ và chi phí xử lý. Để biết thêm thông tin về cách tạo các mô hình có hiệu suất cao để sử dụng với LiteRT, hãy xem phần Hiệu suất tốt nhất trong phần Mô hình.