แปลงโมเดล PyTorch เป็น LiteRT

AI Edge Torch เป็นไลบรารีที่ช่วยให้คุณแปลงโมเดล PyTorch เป็น .tflite ซึ่งช่วยให้คุณเรียกใช้โมเดลเหล่านั้นด้วย LiteRT และ MediaPipe ได้ ความสามารถนี้มีประโยชน์อย่างยิ่งสำหรับนักพัฒนาแอปที่สร้างแอปบนอุปกรณ์เคลื่อนที่ซึ่งใช้โมเดล บนอุปกรณ์โดยสมบูรณ์ AI Edge Torch ให้ CPU ทำงานในวงกว้าง โดยมี GPU เริ่มต้น และ NPU

หากต้องการเริ่มต้นแปลงโมเดล PyTorch เป็น LiteRT ให้ใช้ตัวแปลง Pytorch Quickstart ดูข้อมูลเพิ่มเติมได้ที่ AI Edge Torch ที่เก็บของ GitHub

หากคุณแปลงโมเดลภาษาขนาดใหญ่ (LLM) โดยเฉพาะ หรือ โมเดลที่อิงจาก Transformer ให้ใช้ Generative Torch API ซึ่งจัดการรายละเอียด Conversion เฉพาะของ Transformer เช่น การสร้างโมเดลและ การวัดปริมาณด้วย

เวิร์กโฟลว์ Conversion

ขั้นตอนต่อไปนี้จะแสดงการแปลงจากต้นทางถึงปลายทางแบบง่ายๆ ของ PyTorch โมเดลให้เป็น LiteRT

นำเข้าไฟฉาย AI Edge

เริ่มต้นด้วยการนำเข้าแพ็กเกจ PIP ของ AI Edge Torch (ai-edge-torch) และ PyTorch

import ai_edge_torch
import torch

สำหรับตัวอย่างนี้ เรากำหนดให้ใช้แพ็กเกจต่อไปนี้ด้วย

import numpy
import torchvision

เริ่มต้นและแปลงโมเดล

เราจะแปลง ResNet18 โมเดลการจดจำรูปภาพยอดนิยม

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

ใช้เมธอด convert จากไลบรารี AI Edge Torch เพื่อแปลง PyTorch โมเดล

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

ใช้โมเดล

หลังจากแปลงโมเดล Pytorch แล้ว คุณสามารถเรียกใช้การอนุมานด้วย แปลงโมเดล LiteRT แล้ว

output = edge_model(*sample_inputs)

คุณส่งออกและบันทึกโมเดลที่แปลงแล้วในรูปแบบ .tflite ได้ในอนาคต

edge_model.export('resnet.tflite')