Converti i modelli PyTorch in LiteRT

AI Edge Torch è una libreria che consente di convertire i modelli PyTorch in un formato .tflite, in modo da poterli eseguire con LiteRT e MediaPipe. Ciò è particolarmente utile per gli sviluppatori che creano app mobile che eseguono modelli completamente sul dispositivo. AI Edge Torch offre una copertura CPU ampia, con supporto iniziale per GPU e NPU.

Per iniziare a convertire i modelli PyTorch in LiteRT, utilizza la guida introduttiva al convertitore PyTorch. Per ulteriori informazioni, consulta il repository GitHub di AI Edge Torch.

Se converti specificamente modelli linguistici di grandi dimensioni (LLM) o modelli basati su transformer, utilizza l'API Generative Torch, che gestisce i dettagli di conversione specifici dei transformer, come la creazione e la quantizzazione dei modelli.

Flusso di lavoro di conversione

I passaggi che seguono mostrano una semplice conversione end-to-end di un modello PyTorch in LiteRT.

Importa torcia AI Edge

Inizia importando il pacchetto pip AI Edge Torch (ai-edge-torch) insieme a PyTorch.

import ai_edge_torch
import torch

Per questo esempio, sono necessari anche i seguenti pacchetti:

import numpy
import torchvision

Inizializza e converti il modello

Convertiremo ResNet18, un modello di riconoscimento delle immagini molto diffuso.

resnet18 = torchvision.models.resnet18(torchvision.models.ResNet18_Weights.IMAGENET1K_V1).eval()

Utilizza il metodo convert della libreria AI Edge Torch per convertire il modello PyTorch.

sample_input = (torch.randn(1, 3, 224, 224),)
edge_model = ai_edge_torch.convert(resnet18.eval(), sample_input)

usa il modello

Dopo aver convertito il modello PyTorch, puoi eseguire inferenze con il nuovo modello LiteRT convertito.

output = edge_model(*sample_inputs)

Puoi esportare e salvare il modello convertito nel formato .tflite per un uso futuro.

edge_model.export('resnet.tflite')