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.

LiteRT 2.x përmban API-në më të fundit të kohës së ekzekutimit, CompiledModel API, e cila përmirëson API-në e Interpreter (të njohur edhe si TensorFlow Lite API), veçanërisht përmes përshpejtimit të harduerit dhe performancës së përgjithshme për aplikacionet ML dhe IA në pajisje. CompiledModel API është në versionin beta dhe është i disponueshëm si në Kotlin ashtu edhe në C++.

Karakteristikat kryesore të LiteRT

Modelet e Mbështetura

LiteRT mbështet konvertim të efektshëm nga Pytorch, TensorFlow dhe JAX Frameworks në formatin .tflite ose .litertlm.

Përmirësoni zhvillimin me LiteRT

Përzgjedhje automatike e përshpejtuesit kundrejt krijimit të qartë të delegatëve. Koha e thjeshtë e ekzekutimit të NPU-së dhe shpërndarja e modelit. Trajtimi efikas i buffer-it I/O dhe ekzekutimi asinkron për performancë superiore.

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.

Përshpejtimi i unifikuar i NPU-së

Përshpejtoni modelin tuaj duke përdorur akses të thjeshtuar në NPU nga ofruesit kryesorë të çipseteve.

Mbështetje e thjeshtuar e LLM me LiteRT

Mund të përdorni LiteRT-LM i cili mbështetet nga LiteRT. LiteRT-LM mbështet LLM-të më të fundit dhe veçori të dobishme si multimodaliteti, dekodimi i kufizuar, etj.

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).

Për modelet e të mësuarit automatik dhe modelet e IA-së gjeneruese shihni dokumentacionin e Ai-Edge-Quantizimit .

Parakushtet për të filluar

  • Python 3.10-3.12
  • Skedari i modelit .tflite
  • Detaje shtesë janë të disponueshme në seksionin përkatës të platformës

Integroni modelin në aplikacionin tuaj në platformat Edge

Ju mund të implementoni modelet tuaja LiteRT për të ekzekutuar përfundime plotësisht në pajisje në pajisjet Android, iOS, Web, IoT dhe Desktop. LiteRT përmban API për Python , Java dhe Kotlin për Android, Swift për iOS dhe C++ për mikro-pajisje.

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

Korniza e Modelit Modele Shembull Mjet Konvertimi
Ekzekuto në Android Pajisjet mobile Android API-të C++/Kotlin
Ekzekuto në iOS Pajisjet mobile iOS API-të C++/Swift*
Ekzekutoni në internet duke përdorur LiteRT.js Pajisje me Chrome, Firefox ose Safari API-të e JavaScript-it
Ekzekuto në Micro Pajisjet e integruara API-të C++

*Së shpejti

Shembull kodi Kotlin

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

// Prepare I/O buffers and fill in the data
val inputBuffers = compiledModel.createInputBuffers()
inputBuffers.get(0).writeFloat(input0)
inputBuffers.get(1).writeFloat(input1)

val outputBuffers = compiledModel.createOutputBuffers()

// Execute model
compiledModel.run(inputBuffers, outputBuffers)

// Access model output
val output = outputBuffers.get(0).readFloat()

inputBuffers.forEach { it.close() }
outputBuffers.forEach { it.close() }
compiledModel.close()

Shembull kodi C++

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));
LITERT_ASSIGN_OR_RETURN(auto input_buffers,compiled_model.CreateInputBuffers(signature_index));
LITERT_ASSIGN_OR_RETURN(auto output_buffers,compiled_model.CreateOutputBuffers(signature_index));
LITERT_ABORT_IF_ERROR(input_buffers[0].Write(input0));
LITERT_ABORT_IF_ERROR(input_buffers[1].Write(input1));

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

LITERT_ABORT_IF_ERROR(output_buffers[0].Read(output0));

Zgjidh një backend

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 ndryshimet e fundit, LiteRT e thjeshton ndjeshëm konfigurimin me mundësinë për të specifikuar backend-in e synuar si një opsion.

Bërthama e LiteRT v2.x është objekti CompiledModel . Kur ngarkoni një model, LiteRT përdor harduerin e disponueshëm të sistemit dhe logjikën e brendshme të përparësisë për të zgjedhur backend-in optimal pa konfigurim manual. Shihni backend-in për më shumë detaje.

Android Desktop Uebi iOS macOS IoT
CPU XNNPack XNNPack XNNPack XNNPack XNNPack XNNPack
GPU WebGPU
OpenCL
WebGPU
OpenCL
WebGPU WebGPU
Metal
WebGPU
Metal
WebGPU
NPU MediaTek
Qualcomm
- - - - -

Dokumentacion dhe mbështetje shtesë

Aplikacion shembull LiteRT v2.x Shih aplikacionin shembull të segmentimit të imazhit LiteRT

Për përdoruesit ekzistues të TensorFlow Lite Shihni udhëzuesin e migrimit

Mbulimi i Operacioneve Operatorët e pajtueshëm

Modelet e Mbështetura të LLM LiteRT Hugging face dhe Gen API - shembuj

Faqja e mjeteve LiteRT - Performanca, Profilizimi, raportimi i gabimeve etj.