Mirë se vini në përmbledhjen e LiteRT

LiteRT është kuadri në pajisje i Google për vendosjen e ML dhe GenAI me performancë të lartë në platformat edge, duke përdorur konvertim, kohë ekzekutimi dhe optimizim efikas.

Versioni më i fundit i LiteRT 2.x prezanton CompiledModel API, një ndërfaqe moderne të ekzekutimit të projektuar për të maksimizuar përshpejtimin e harduerit. Ndërsa Interpreter API (më parë TensorFlow Lite) mbetet i disponueshëm për kompatibilitet prapa, CompiledModel API është zgjedhja e rekomanduar për zhvilluesit që kërkojnë performancë të nivelit të lartë në aplikacionet e IA-së në pajisje.

Karakteristikat kryesore të LiteRT

Përmirësoni zhvillimin me LiteRT

Përzgjedhje automatike e përshpejtuesit kundrejt krijimit të qartë të delegatëve. Trajtim efikas i buffer-it I/O dhe ekzekutim asinkron për performancë superiore. Shih dokumentacionin e inferencës në pajisje .

Performanca më e mirë e GPU-së në klasën e saj

Mundësuar nga ML Drift, tani mbështet modelet ML dhe Generative AI në API-të e GPU-ve. Shih dokumentacionin e përshpejtimit të GPU-së .

Përshpejtimi i unifikuar i NPU-së

Përshpejtoni modelin tuaj duke përdorur akses të thjeshtuar të NPU-së nga ofruesit kryesorë të çipseteve. Shihni dokumentacionin e përshpejtimit të NPU-së .

Mbështetje Superiore LLM

LiteRT ofron implementim me performancë të lartë për modelet e IA-së Gjenerative në platformat mobile, desktop dhe web. Shihni dokumentacionin e implementimit të GenAI .

Mbështetje e gjerë e kornizës ML

LiteRT mbështet konvertim të efektshëm nga PyTorch, TensorFlow dhe JAX Frameworks në formatin .tflite ose .litertlm . Shih dokumentacionin e konvertimit të modelit .

Fluksi i punës së zhvillimit

LiteRT ekzekuton përfundime tërësisht në pajisje në Android, iOS, Web, IoT dhe në Desktop/Laptop. Pavarësisht pajisjes, më poshtë është rrjedha më e zakonshme e punës, me lidhje për udhëzime të mëtejshme.

Grafiku i rrjedhës së punës së zhvillimit të LiteRT

Identifikoni zgjidhjen më të përshtatshme për sfidën e ML-së

LiteRT u ofron përdoruesve një nivel të lartë fleksibiliteti dhe përshtatshmërie kur bëhet fjalë për zgjidhjen e problemeve të të mësuarit automatik, duke e bërë atë një zgjedhje të mirë për përdoruesit që kërkojnë një model specifik ose një implementim të specializuar. Përdoruesit që kërkojnë zgjidhje plug-and-play mund të preferojnë MediaPipe Tasks , i cili ofron zgjidhje të gatshme për detyra të zakonshme të të mësuarit automatik, si zbulimi i objekteve, klasifikimi i tekstit dhe nxjerrja e përfundimeve LLM.

Marrja dhe përgatitja e modelit

Një model LiteRT përfaqësohet në një format efikas portativ të njohur si FlatBuffers , i cili përdor prapashtesën e skedarit .tflite .

Ju mund të merrni një model LiteRT në mënyrat e mëposhtme:

  • Merrni një model të para-trajnuar: për ngarkesat e punës popullore të ML si segmentimi i imazhit, zbulimi i objekteve etj.

    Qasja më e thjeshtë është të përdorni një model LiteRT që është tashmë në formatin .tflite . Këto modele nuk kërkojnë ndonjë hap shtesë konvertimi.

    Lloji i modelit Burimi i modelit të para-trajnuar
    ML klasike
    (formati .tflite )
    Vizitoni Kaggle ose HuggingFace
    P.sh. modelet e segmentimit të imazhit dhe aplikacioni shembull
    IA gjeneruese
    (formati .litertlm )
    Faqja e përqafimit LiteRT
    Familja Eg Gemma
  • Konvertoni modelin tuaj të zgjedhur PyTorch, TensorFlow ose JAX në një model LiteRT nëse zgjidhni të mos përdorni një model të para-trajnuar. [PRO PËRDORUES]

    Korniza e Modelit Modele Shembull Mjet Konvertimi
    Pytorch Fytyrë përqafuese
    Torchvision
    Lidhje
    TensorFlow Modelet Kaggle
    Fytyrë përqafuese
    Lidhje
    Jax Fytyrë përqafuese Lidhje
  • Shkruani LLM-në tuaj për optimizim të mëtejshëm duke përdorur Generative API [PRO USER]

    Biblioteka jonë Generative API ofron blloqe ndërtimi të integruara PyTorch për kompozimin e modeleve Transformer si Gemma , TinyLlama dhe të tjerë duke përdorur abstraksione miqësore për celularët, përmes të cilave ne mund të garantojmë konvertimin dhe ekzekutimin me performancë të lartë në kohën tonë të ekzekutimit celular, LiteRT. Shihni dokumentacionin e Generative API .

Kuantizimi [PËRDORUESI PROFESIONAL]

AI Edge Quantizer për zhvilluesit e avancuar është një mjet për të kuantizuar modelet e konvertuara LiteRT. Ai synon t'u lehtësojë përdoruesve të përparuar të përpiqen për performancë optimale në modelet që kërkojnë burime (p.sh., modelet GenAI).

Shihni më shumë detaje nga dokumentacioni i AI Edge Quantizer .

Integroni modelin në aplikacionin tuaj në platformat Edge

LiteRT ju lejon të ekzekutoni modele ML tërësisht në pajisje me performancë të lartë në platformat Android, iOS, Web, Desktop dhe IoT.

Përdorni udhëzuesit e mëposhtëm për të integruar një model LiteRT në platformën tuaj të preferuar:

Platforma e Mbështetur Pajisjet e mbështetura API-të e mbështetura
Ekzekuto në Android Pajisjet mobile Android C++/Kotlin
Ekzekutohet në iOS/macOS Pajisjet mobile iOS, Macbook-ët C++/Swift
Ekzekutoni në internet duke përdorur LiteRT.js Pajisje me Chrome, Firefox ose Safari JavaScript
Ekzekuto në Linux Stacioni i punës Linux ose pajisjet IoT të bazuara në Linux C++/Python
Ekzekuto në Windows Stacioni i punës me Windows ose laptopët C++/Python
Ekzekuto në Micro Pajisjet e integruara C++

Fragmentet e mëposhtme të kodit tregojnë një implementim bazë në Kotlin dhe 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));

Zgjidhni një përshpejtues hardueri

Mënyra më e drejtpërdrejtë për të përfshirë backend-et në LiteRT është të mbështeteni në inteligjencën e integruar të kohës së ekzekutimit. Me CompiledModel API, LiteRT e thjeshton ndjeshëm konfigurimin me mundësinë për të specifikuar backend-in e synuar si një opsion. Shihni udhëzuesin e nxjerrjes së përfundimeve në pajisje për më shumë detaje.

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

Dokumentacion dhe mbështetje shtesë