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

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

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

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

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

ขั้นตอนต่อไปนี้แสดงการแปลงแบบครบวงจรที่ง่ายดายของโมเดล PyTorch เป็น LiteRT

นําเข้า AI Edge Torch

เริ่มต้นด้วยการนําเข้าแพ็กเกจ 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')