TensorFlow Lite cho Android

TensorFlow Lite 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 TensorFlow Lite cung cấp các môi trường thực thi tạo sẵn và có thể tuỳ chỉnh để 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.

Các mô hình học máy

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

Trang này thảo luận về việc sử dụng các mô hình học máy được tạo sẵn mà không đề cập đến việc xây dựng, huấn luyện, kiểm thử hoặc chuyển đổi các mô hình. Tìm hiểu thêm về cách chọn, sửa đổi, xây dựng và chuyển đổi các mô hình học máy cho TensorFlow Lite trên trang Mô hình.

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

Mô hình TensorFlow Lite chạy bên trong ứng dụng Android sẽ lấy dữ liệu, xử lý dữ liệu và tạo thông tin dự đoán dựa trên logic của mô hình. Mô hình TensorFlow Lite cần có một môi trường thời gian chạy đặc biệt để thực thi và dữ liệu được truyền vào mô hình phải ở một định dạng dữ liệu cụ thể, được gọi là tensor. Khi xử lý dữ liệu, còn gọi là chạy dự đoán, mô hình đó sẽ tạo kết quả dự đoán dưới dạng tensor mới và chuyển các tensor đó đến ứng dụng Android để 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 kinh doanh bổ sung.

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

Hình 1. Quy trình thực thi chức năng cho các mô hình TensorFlow Lite trong ứng dụng Android.

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

  • Môi trường thời gian chạy của TensorFlow Lite để thực thi mô hình
  • Trình xử lý đầu vào mô hình để chuyển đổi dữ liệu thành tensor
  • Trình xử lý đầu ra của mô hình để nhận tensor kết quả đầu ra và diễn giải chúng dưới dạng 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ụ của TensorFlow Lite cung cấp các thành phần chức năng này.

Xây dựng ứng dụng bằng TensorFlow Lite

Phần này mô tả đường dẫn phổ biến và được đề xuất nhất để triển khai TensorFlow Lite trong Ứng dụng Android. Bạn nên chú ý nhất đến các phầ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 tuỳ chỉnh, hãy nhớ xem lại phần Đường dẫn phát triển nâng cao.

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

Bạn có thể bật môi trường thời gian chạy để thực thi các mô hình trong ứng dụng Android bằng một số cách. Sau đây là các tuỳ 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 Dịch vụ 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 tiêu chuẩn vì môi trường này tải linh động, 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 thời gian chạy TensorFlow Lite để cung cấp cho bạn các tính năng bổ sung và cải thiện hiệu suất theo thời gian. Nếu cung cấp ứng dụng trên các 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 học máy, thì bạn nên sử dụng môi trường thời gian chạy TensorFlow Lite tiêu chuẩn. Tuỳ chọn này sẽ gói mã bổ sung vào ứng dụng, giúp bạn có nhiều quyền kiểm soát hơn đối với thời gian chạy bằng công nghệ học máy trong ứng dụng nhưng làm 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 các thư viện phát triển TensorFlow Lite 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 tiêu chuẩn trong ứng dụng, hãy xem phần tiếp theo.

Thư viện

Bạn có thể truy cập API Phiên dịch bằng Dịch vụ Google Play. Bạn có thể sử dụng các thư viện cốt lõihỗ trợ của TensorFlow Lite trong ứng dụng Android của mình. Để biết thông tin lập trình chi tiết về việc sử dụng thư viện và môi trường thời gian chạy của TensorFlow Lite, hãy xem bài viết Công cụ phát triển dành cho Android.

Nhận mô hình

Để chạy mô hình trong ứng dụng Android, bạn cần có mô hình định dạng TensorFlow Lite. 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 bằng TensorFlow rồi chuyển đổi mô hình đó sang định dạng Lite. Để biết thêm thông tin về cách lấy mô hình cho ứng dụng Android, hãy xem trang Mô hình TensorFlow Lite.

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

Bất kỳ dữ liệu nào bạn truyền vào mô hình học máy đều phải là một tensor có cấu trúc dữ liệu cụ thể, 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ư dữ liệu hình ảnh, văn bản hoặc âm thanh) thành một tensor ở hình dạng yêu cầu cho mô hình của bạn.

Chạy suy luận

Việc 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à chạy dự đoán. Để chạy dự đoán trong ứng dụng Android, bạn cần có môi trường thời gian chạy TensorFlow Lite, một modeldữ liệu đầu vào.

Tốc độ mà một mô hình có thể đưa ra suy luận trên 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à các tài nguyên điện toán hiện có như bộ nhớ và CPU hoặc các bộ xử lý chuyên dụng gọi là 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 này, chẳng hạn như bộ xử lý đồ hoạ (GPU) và bộ xử lý tensor (TPU), sử dụng trình điều khiển phần cứng TensorFlow Lite được gọi là đại diện. Để biết thêm thông tin về uỷ quyền và tính năng tăng tốc phần cứng của quá trình xử lý mô hình, hãy xem bài viết Tổng quan về tính năng tăng tốc phần cứng.

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. Ứng dụng Android của bạn phải xử lý kết quả này bằng cách thực hiện thao tác hoặc cho người dùng thấy kết quả. Kết quả đầu ra của mô hình có thể đơn giản như một số tương ứng với một kết quả (0 = chó, 1 = mèo, 2 = chim) để phân loại hình ảnh, cho đến các 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 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 TensorFlow Lite tinh vi và tuỳ chỉnh hơn, bạn có thể cần phải sử dụng các phương pháp phát triển nâng cao hơn so với 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 các kỹ thuật đó cho TensorFlow Lite trong ứ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à môi trường thời gian chạy của Dịch vụ Google Play cho TensorFlow Lite, bạn còn có thể sử dụng thêm môi trường thời gian chạy cho ứng dụng Android của mình. Khả năng sử dụng nhiều nhất cho các môi trường này là nếu bạn có một mô hình học máy sử dụng các thao tác ML mà môi trường thời gian chạy tiêu chuẩn cho TensorFlow Lite không hỗ trợ.

Thời gian chạy linh hoạt của TensorFlow Lite cho phép bạn thêm các toán tử cụ thể cần thiết cho mô hình của mình. Là một lựa chọn nâng cao để chạy mô hình, bạn có thể xây dựng TensorFlow Lite cho Android để thêm các toán tử và chức năng khác cần thiết để chạy mô hình học máy TensorFlow. Để biết thêm thông tin, hãy xem bài viết Tạo TensorFlow Lite cho Android.

API C và C++

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

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

Nhìn 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 để 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 mà việc chạy mô hình trên máy chủ đám mây ngoài thiết bị lại là giải pháp tốt hơn. Ví dụ: nếu bạn có một kiểu máy lớn không dễ dàng nén xuống kích thước phù hợp với thiết bị Android của người dùng hoặc có thể được thực thi với hiệu suất hợp lý trên các thiết bị đó. Phương pháp này cũng có thể là giải pháp ưu tiên của bạn nếu hiệu suất nhất quán của mô hình trên nhiều loại thiết bị là ưu tiên hàng đầu.

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

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