Chào mừng bạn đến với phần tổng quan về LiteRT

LiteRT là khung hình trên thiết bị của Google để triển khai ML và GenAI hiệu suất cao trên các nền tảng biên, sử dụng hoạt động chuyển đổi, thời gian chạy và tối ưu hoá hiệu quả.

Bản phát hành LiteRT 2.x mới nhất giới thiệu API CompiledModel, một giao diện thời gian chạy hiện đại được thiết kế để tối đa hoá khả năng tăng tốc phần cứng. Mặc dù API Interpreter (trước đây là TensorFlow Lite) vẫn có sẵn để tương thích ngược, nhưng API CompiledModel là lựa chọn được đề xuất cho những nhà phát triển đang tìm kiếm hiệu suất hiện đại trong các ứng dụng AI trên thiết bị.

Các tính năng chính của LiteRT

Đơn giản hoá quá trình phát triển bằng LiteRT

Lựa chọn phím tắt tự động so với việc tạo uỷ quyền rõ ràng. Xử lý bộ đệm I/O hiệu quả và thực thi không đồng bộ để có hiệu suất vượt trội. Xem tài liệu về suy luận trên thiết bị.

Hiệu suất GPU hàng đầu

Được hỗ trợ bởi ML Drift, hiện hỗ trợ cả mô hình ML và mô hình AI tạo sinh trên các API GPU. Xem tài liệu về tính năng tăng tốc GPU.

Tăng tốc NPU hợp nhất

Tăng tốc mô hình của bạn bằng cách sử dụng quyền truy cập NPU đơn giản từ các nhà cung cấp chipset lớn. Hãy xem Tài liệu về tính năng tăng tốc NPU.

Hỗ trợ LLM vượt trội

LiteRT mang đến khả năng triển khai hiệu suất cao cho các mô hình AI tạo sinh trên các nền tảng di động, máy tính và web. Hãy xem tài liệu triển khai AI tạo sinh.

Hỗ trợ khung ML rộng

LiteRT hỗ trợ việc chuyển đổi tinh giản từ các Khung PyTorch, TensorFlow và JAX sang định dạng .tflite hoặc .litertlm. Hãy xem tài liệu về việc chuyển đổi mô hình.

Quy trình phát triển

LiteRT chạy các suy luận hoàn toàn trên thiết bị Android, iOS, Web, IoT và trên Máy tính/Máy tính xách tay. Bất kể thiết bị nào, sau đây là quy trình làm việc phổ biến nhất, kèm theo đường liên kết đến hướng dẫn chi tiết hơn.

Biểu đồ quy trình phát triển LiteRT

Xác định giải pháp phù hợp nhất cho thách thức 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ờ đó phù hợp với 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 tức thì có thể ưu tiên MediaPipe Tasks. Đây là giải pháp có sẵn cho các tác 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.

Thu thập và chuẩn bị mô hình

Một mô hình LiteRT được biểu thị ở đị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ể lấy mô hình LiteRT theo những cách sau:

  • Nhận một mô hình được huấn luyện trước: cho các khối lượng công việc học máy phổ biến như phân đoạn hình ảnh, phát hiện đối tượng, v.v.

    Cách đơn giản nhất là sử dụng một mô hình LiteRT đã có ở định dạng .tflite. Các mô hình này không yêu cầu bạn thêm bất kỳ bước chuyển đổi nào.

    Loại mô hình Nguồn mô hình được huấn luyện trước
    ML cổ điển
    (định dạng .tflite)
    Truy cập vào Kaggle hoặc HuggingFace
    Ví dụ: Mô hình phân đoạn hình ảnhứng dụng mẫu
    AI tạo sinh
    (định dạng .litertlm)
    Trang LiteRT Hugging Face
    Ví dụ: Gemma Family
  • Chuyển đổi mô hình PyTorch, TensorFlow hoặc JAX mà bạn đã chọn thành mô hình LiteRT nếu bạn chọn không sử dụng mô hình được huấn luyện trước. [PRO USER]

    Khung mô hình Mẫu Công cụ chuyển đổi
    Pytorch Hugging Face
    Torchvision
    Đường liên kết
    TensorFlow Kaggle Models
    Hugging Face
    Đường liên kết
    Jax Hugging Face Đường liên kết
  • Tạo LLM để tối ưu hoá thêm bằng Generative API [NGƯỜI DÙNG PRO]

    Thư viện Generative API cung cấp các khối dựng sẵn PyTorch để tạo các mô hình Transformer như Gemma, TinyLlamacác mô hình khác bằng cách sử dụng các lớp trừu tượng thân thiện với thiết bị di động. Nhờ đó, chúng ta có thể đảm bảo quá trình chuyển đổi và thực thi hiệu quả trên thời gian chạy di động của mình, LiteRT. Xem Tài liệu về Generative API.

Lượng tử hoá [NGƯỜI DÙNG PRO]

AI Edge Quantizer là một công cụ dành cho các nhà phát triển nâng cao để lượng tử hoá các mô hình LiteRT đã chuyển đổi. Mục tiêu của tính năng này là giúp người dùng nâng cao đạt được hiệu suất tối ưu trên các mô hình đòi hỏi nhiều tài nguyên (ví dụ: mô hình AI tạo sinh).

Xem thêm thông tin chi tiết trong tài liệu về Bộ lượng tử hoá AI Edge.

Tích hợp mô hình này vào ứng dụng của bạn trên các nền tảng biên

LiteRT cho phép bạn chạy các mô hình học máy hoàn toàn trên thiết bị với hiệu suất cao trên các nền tảng Android, iOS, Web, Máy tính và IoT.

Hãy sử dụng các hướng dẫn sau để tích hợp mô hình LiteRT trên nền tảng bạn muốn:

Nền tảng được hỗ trợ Các thiết bị được hỗ trợ Các API được hỗ trợ
Chạy trên Android Thiết bị di động Android C++/Kotlin
Chạy trên iOS/macOS Thiết bị di động iOS, Macbook C++/Swift
Chạy trên Web bằng LiteRT.js Thiết bị có Chrome, Firefox hoặc Safari JavaScript
Chạy trên Linux Máy trạm Linux hoặc thiết bị IoT dựa trên Linux C++/Python
Chạy trên Windows Máy trạm hoặc máy tính xách tay chạy Windows C++/Python
Chạy trên Micro Thiết bị được nhúng C++

Các đoạn mã sau đây cho thấy cách triển khai cơ bản trong Kotlin và C++.

Kotlin

// Load model and initialize runtime
val compiledModel = CompiledModel.create(
    "/path/to/mymodel.tflite",
    CompiledModel.Options(Accelerator.CPU))

// Preallocate input/output buffers
val inputBuffers = compiledModel.createInputBuffers()
val outputBuffers = compiledModel.createOutputBuffers()

// Fill the input buffer
inputBuffers.get(0).writeFloat(input0)
inputBuffers.get(1).writeFloat(input1)

// Invoke
compiledModel.run(inputBuffers, outputBuffers)

// Read the output
val output = outputBuffers.get(0).readFloat()

C++

// Load model and initialize runtime
LITERT_ASSIGN_OR_RETURN(auto env, GetEnvironment());
LITERT_ASSIGN_OR_RETURN(auto options, GetOptions());
LITERT_ASSIGN_OR_RETURN(
    auto compiled_model,
    CompiledModel::Create(env, "/path/to/mymodel.tflite", options));

// Preallocate input/output buffers
LITERT_ASSIGN_OR_RETURN(auto input_buffers,compiled_model.CreateInputBuffers(signature_index));
LITERT_ASSIGN_OR_RETURN(auto output_buffers,compiled_model.CreateOutputBuffers(signature_index));

// Fill the input buffer
LITERT_ABORT_IF_ERROR(input_buffers[0].Write(input0));
LITERT_ABORT_IF_ERROR(input_buffers[1].Write(input1));

// Invoke
LITERT_ABORT_IF_ERROR(compiled_model.Run(signature_index, input_buffers, output_buffers));

// Read the output
LITERT_ABORT_IF_ERROR(output_buffers[0].Read(output0));

Chọn một trình tăng tốc phần cứng

Cách đơn giản nhất để kết hợp các phần phụ trợ trong LiteRT là dựa vào trí thông minh tích hợp của thời gian chạy. Với API CompiledModel, LiteRT giúp đơn giản hoá đáng kể quá trình thiết lập nhờ khả năng chỉ định phần phụ trợ mục tiêu làm một lựa chọn. Xem hướng dẫn về suy luận trên thiết bị để biết thêm thông tin chi tiết.

Android iOS / macOS Web Linux / Windows IoT
CPU XNNPACK XNNPACK XNNPACK XNNPACK XNNPACK
GPU WebGPU
OpenCL
WebGPU
Metal
WebGPU WebGPU
OpenCL
WebGPU
NPU MediaTek
Qualcomm
- - - -

Tài liệu và dịch vụ hỗ trợ bổ sung