Core ML — คืออะไร โมเดลแมชชีนเลิร์นนิงและการทำงานใน iOS

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-03-26 เวลาอ่าน: 8 นาที

Core ML — เฟรมเวิร์กแมชชีนเลิร์นนิงจาก Apple ที่ปรับให้เหมาะสำหรับการเรียกใช้โมเดล ML บนอุปกรณ์ iOS, macOS, watchOS และ tvOS โดยตรง แตกต่างจากบริการ ML บนคลาวด์ Core ML ใช้ตัวเร่งฮาร์ดแวร์ของ Apple: Neural Engine, GPU และ CPU เพื่อให้แน่ใจว่ามีความหน่วงต่ำที่สุดเมื่อประมวลผลข้อมูล ตาม Apple Core ML Documentation (2026) เฟรมเวิร์กรองรับโมเดล PyTorch, TensorFlow และ Create ML ในรูปแบบ .mlpackage แบบรวมศูนย์ โดยมีเวลาเฉลี่ยในการอนุมาน 5–50 มิลลิวินาที

ประเด็นสำคัญ

  • Core ML — เฟรมเวิร์กของ Apple สำหรับแมชชีนเลิร์นนิงบนอุปกรณ์ในทุกแพลตฟอร์มของระบบนิเวศ
  • Apple Neural Engine (ANE) ให้การเร่งความเร็วฮาร์ดแวร์สำหรับโครงข่ายประสาทเทียมด้วยประสิทธิภาพสูงถึง 11 TOPS
  • รูปแบบ .mlpackage รวมโมเดล เมตาดาต้า และการกำหนดค่าไว้ในคอนเทนเนอร์ที่สะดวกเดียว
  • การแปลง โมเดลจาก PyTorch และ TensorFlow ทำได้ผ่านเครื่องมือ Python coremltools
  • การบูรณาการ กับ Vision และ Natural Language ช่วยให้สร้างไปป์ไลน์ ML ที่ซับซ้อนได้

Core ML คืออะไร?

Core ML คือเฟรมเวิร์กแมชชีนเลิร์นนิงที่ Apple เปิดตัวในงาน WWDC 2017 ซึ่งเป็นส่วนหนึ่งของระบบนิเวศการพัฒนาสำหรับ iPhone, iPad, Mac, Apple Watch และ Apple TV Core ML มอบรันไทม์สำหรับการเรียกใช้โมเดล ML บนอุปกรณ์ โดยแยกนักพัฒนาออกจากรายละเอียดของการเพิ่มประสิทธิภาพฮาร์ดแวร์ เฟรมเวิร์กจะเลือกเอนจินการคำนวณที่ดีที่สุดโดยอัตโนมัติ — Neural Engine บนชิป A12+, GPU หรือ CPU — สำหรับแต่ละการทำงานของโมเดล

ข้อได้เปรียบหลัก ของ Core ML คือการบูรณาการอย่างลึกซึ้งกับ Apple Silicon การทำงานของโครงข่ายประสาทเทียมจะดำเนินการบน Neural Engine โดยเฉพาะ ซึ่งไม่โหลดแกนหลักของโปรเซสเซอร์ ตามข้อมูลของ Apple (WWDC 2025) โมเดล Core ML ทำงานเร็วกว่า 6 เท่าเมื่อเทียบกับ TensorFlow Lite บนอุปกรณ์ Android ที่คล้ายกัน

คุณสมบัติหลัก

Core ML รองรับงานแมชชีนเลิร์นนิงที่หลากหลาย: การจำแนกภาพ การตรวจจับวัตถุ การแบ่งส่วนความหมาย การประมวลผลภาษาธรรมชาติ การวิเคราะห์เสียง และข้อมูลแบบตาราง เฟรมเวิร์กทำงานกับโมเดลหลายประเภท: โครงข่ายประสาทเทียม (แบบ convolutional, recurrent, transformer), กลุ่มต้นไม้, การถดถอยเชิงเส้น และกระบวนการเกาส์เซียน

Core ML ทำงานอย่างไร

Core ML รับโมเดลที่ฝึกแล้วในรูปแบบ .mlpackage เป็นอินพุต คอมไพล์เป็นโค้ดเครื่องที่ปรับให้เหมาะสมสำหรับอุปกรณ์เฉพาะ และเรียกใช้การอนุมานผ่าน API แบบรวมศูนย์ ไปป์ไลน์ทั้งหมด — จากการโหลดโมเดลจนถึงการได้รับผลลัพธ์ — ใช้โค้ด Swift เพียง 3–5 บรรทัด

รูปแบบโมเดล .mlpackage

.mlpackage คือรูปแบบคอนเทนเนอร์ที่ Apple เปิดตัวในปี 2020 เพื่อแทนที่ .mlmodel แบบเก่า แพ็คเกจคือไดเรกทอรีที่ประกอบด้วยไฟล์ Manifest JSON, ไฟล์โมเดลในรูปแบบไบนารี MLProgram, เมตาดาต้า (ผู้แต่ง, เวอร์ชัน, คำอธิบาย) และทรัพยากร เช่น ป้ายชื่อคลาส ตามข้อมูลของ Apple .mlpackage ลดขนาดโมเดลลง 30–50% เมื่อเทียบกับ .mlmodel ผ่านการปรับน้ำหนักให้เหมาะสม

Apple Neural Engine

Apple Neural Engine (ANE) คือโปรเซสเซอร์ประสาทเฉพาะที่ built-in ในชิป Apple ตั้งแต่ A12 Bionic (2018) ANE ประมวลผลการดำเนินการเมทริกซ์ได้อย่างมีประสิทธิภาพมากกว่า CPU หลายสิบเท่าที่การใช้พลังงานเท่ากัน ประสิทธิภาพของ ANE เพิ่มขึ้นจาก 5 TOPS บน A12 เป็น 35 TOPS บน M4 Ultra (2025) ทำให้สามารถเรียกใช้โมเดลที่มีพารามิเตอร์หลายพันล้านตัว ANE ถูกใช้ โดยอัตโนมัติสำหรับโมเดล Core ML ทั้งหมดที่มีสถาปัตยกรรมโครงข่ายประสาทเทียม

คุณสมบัติสำคัญของ Core ML คือ การรองรับการควอนไทซ์ โมเดลเป็น FP16 และ INT8 โดยไม่สูญเสียความแม่นยำ การควอนไทซ์ช่วยลดขนาดโมเดลลง 2–4 เท่า และเร่งการอนุมาน 40–60% บน ANE Apple มีเครื่องมือ Xcode Model Quantization สำหรับการเลือกความแม่นยำที่เหมาะสมที่สุดโดยอัตโนมัติ: นักพัฒนาอัปโหลดโมเดล ระบุการสูญเสียคุณภาพที่ยอมรับได้ (โดยปกติ 0.1–0.5%) และ Xcode จะเลือกรูปแบบการแสดงน้ำหนักที่ดีที่สุด

การเปรียบเทียบประสิทธิภาพ Core ML

ชิปTOPS (ANE)การอนุมาน ResNet-50ปี
A12 Bionic518 มิลลิวินาที2018
A14 Bionic119 มิลลิวินาที2020
M1 Max224 มิลลิวินาที2021
M4 Ultra352 มิลลิวินาที2025

การแปลงโมเดลเป็น Core ML

โมเดล ML ส่วนใหญ่ ถูกสร้างใน PyTorch หรือ TensorFlow และต้องการแปลงเป็นรูปแบบ .mlpackage เพื่อใช้ใน Core ML Apple มีเครื่องมือ coremltools — แพ็คเกจ Python สำหรับแปลง ปรับแต่ง และตรวจสอบความถูกต้องของโมเดล

เครื่องมือ coremltools

coremltools คือเครื่องมือทางการของ Apple สำหรับการแปลงโมเดล ML รองรับการนำเข้าจาก PyTorch (ผ่าน torch.onnx หรือโดยตรง), TensorFlow (SavedModel, H5, Frozen Graph) และ ONNX หลังการแปลง สามารถเปิดใช้งานการควอนไทซ์ FP16 หรือ INT8 ซึ่งช่วยลดขนาดโมเดลลง 2–4 เท่าโดยไม่สูญเสียความแม่นยำอย่างมีนัยสำคัญ

ตัวอย่างการแปลงจาก PyTorch

มาดูการแปลงโมเดล PyTorch ที่ฝึกแล้วเป็นรูปแบบ Core ML โดยใช้ coremltools เวอร์ชัน 8.0 กระบวนการนี้ใช้ 2–3 ขั้นตอนใน Python

python
import torch
import coremltools as ct

# กำลังโหลดโมเดล PyTorch ที่ฝึกแล้ว
model = torch.load('model.pth')
model.eval()

# กำลังติดตามโมเดลด้วยอินพุตตัวอย่าง
example_input = torch.randn(1, 3, 224, 224)
traced_model = torch.jit.trace(model, example_input)

# กำลังแปลงเป็น Core ML .mlpackage
mlmodel = ct.convert(
    traced_model,
    convert_to='mlprogram',
    inputs=[ct.TensorType(shape=(1, 3, 224, 224))]
)
mlmodel.save('Model.mlpackage')

โค้ดโหลด โมเดล PyTorch ที่ฝึกแล้ว ทำการติดตาม JIT ด้วยอินพุตตัวอย่าง และแปลงเป็นรูปแบบ mlprogram (รูปแบบไบนารีของ Core ML) .mlpackage ที่ได้สามารถลากไปยัง Xcode และใช้ได้ทันทีในโค้ด Swift

การบูรณาการ Core ML ในแอป iOS

หลังจากการแปลงโมเดล การบูรณาการในแอป iOS ด้วย Swift ทำได้ไม่กี่บรรทัด Xcode จะสร้างคลาส Swift สำหรับโมเดลโดยอัตโนมัติตามเมตาดาต้าของ .mlpackage

ตัวอย่างโค้ด Swift

มาดูตัวอย่างการจำแนกภาพโดยใช้ Core ML และเฟรมเวิร์ก Vision Vision จะแปลงภาพเป็นขนาดและรูปแบบพิกเซลที่ต้องการโดยอัตโนมัติ

swift
import CoreML
import Vision

// กำลังโหลดโมเดล Core ML
guard let model = try? VNCoreMLModel(
    for: MobileNetV2.configuration.model
) else { return }

// กำลังสร้าง VNCoreMLRequest
let request = VNCoreMLRequest(model: model) { request, error in
    guard let results = request.results
        as? [VNClassificationObservation]
    else { return }

    // แสดงผลการทำนาย 3 อันดับแรก
    for result in results.prefix(3) {
        print("\(result.identifier):
              \(result.confidence)")
    }
}

// กำลังเริ่มประมวลผลภาพ
let handler = VNImageRequestHandler(
    url: imageURL
)
try? handler.perform([request])

โค้ด Swift โหลดโมเดล MobileNetV2 ผ่านเฟรมเวิร์ก Vision สร้างคำขอจำแนกประเภท และประมวลผลผลลัพธ์ — อาร์เรย์ของออบเจ็กต์ VNClassificationObservation พร้อมป้ายชื่อคลาสและเปอร์เซ็นต์ความเชื่อมั่น ไปป์ไลน์ทั้งหมดตั้งแต่การโหลดจนถึงการแสดงผลลัพธ์ใช้เวลา 5–50 มิลลิวินาที ขึ้นอยู่กับโมเดล

เพื่อเพิ่มประสิทธิภาพเวลาเริ่มต้น Core ML จะคอมไพล์โมเดลเมื่อใช้งานครั้งแรก โมเดลที่คอมไพล์ล่วงหน้าจะลดการเริ่มต้นเย็นจาก 2–3 วินาทีเหลือ 100–200 มิลลิวินาที แนะนำให้คอมไพล์โมเดลในขั้นตอนการ build ใน Xcode แทนที่จะคอมไพล์เมื่อเปิดแอปครั้งแรก ซึ่งสำคัญโดยเฉพาะสำหรับแอปที่มีโมเดล ML หลายตัว — เช่น การตรวจจับวัตถุ + การจำแนกประเภท + NLP

Core ML เทียบกับ ML Kit

Core ML และ ML Kit แก้ปัญหา ML บนอุปกรณ์ที่คล้ายกัน แต่เน้นระบบนิเวศที่แตกต่างกัน Core ML บูรณาการอย่างลึกซึ้งกับ Apple Silicon และรองรับเฉพาะแพลตฟอร์ม Apple เท่านั้น ML Kit ของ Google เป็นโซลูชันข้ามแพลตฟอร์มสำหรับ Android และ iOS

คุณลักษณะCore MLML Kit
แพลตฟอร์มiOS, macOS, watchOS, tvOSAndroid, iOS
API ในตัวผ่าน Vision, Natural Language15+ API ในตัว
โมเดลกำหนดเอง.mlpackage (PyTorch, TF)TFLite (ผ่านอะแดปเตอร์)
การเร่งฮาร์ดแวร์ANE, GPU, CPUGPU (Android), CPU
ความง่ายในการเริ่มต้นต้องการการแปลงโมเดลAPI พร้อมใช้โดยไม่ต้องใช้ Data Science
ประสิทธิภาพ2–50 มิลลิวินาที (ANE)80–200 มิลลิวินาที (CPU/GPU)

เลือก Core ML หากระบบนิเวศของคุณคือ Apple เท่านั้นและคุณต้องการประสิทธิภาพสูงสุดผ่าน ANE หากต้องการการรองรับข้ามแพลตฟอร์มหรือ API พร้อมใช้โดยไม่ต้องแปลง ML Kit จะใช้งานได้จริงมากกว่า

ในทางปฏิบัติ หลายโปรเจกต์ใช้ทั้งสองเฟรมเวิร์ก: iOS Core ML สำหรับประสิทธิภาพสูง และ ML Kit หรือ TensorFlow Lite บน Android โมเดล PyTorch แบบรวมจะถูกแปลงเป็น .mlpackage สำหรับ Apple และ .tflite สำหรับ Android ซึ่งช่วยรักษาคุณภาพของคุณสมบัติ ML ที่สอดคล้องกันบนทั้งสองแพลตฟอร์ม วิธีนี้ต้องใช้ความพยายาม DevOps เพิ่มขึ้นเล็กน้อย แต่ให้ความครอบคลุมผู้ชมสูงสุด

คำถามที่พบบ่อย

ข้อกำหนดขั้นต่ำสำหรับ Core ML คืออะไร?

iOS 11+ สำหรับโมเดลพื้นฐาน iOS 14+ สำหรับรูปแบบ .mlpackage Apple Neural Engine ต้องใช้ชิป A12 Bionic หรือใหม่กว่า Core ML รองรับ iPhone, iPad และ Mac ทุกรุ่นตั้งแต่ปี 2017

สามารถใช้ Core ML กับ TensorFlow ได้หรือไม่?

ได้ ผ่านเครื่องมือ coremltools โมเดล TensorFlow จะถูกแปลงเป็น .mlpackage โดยคงความแม่นยำไว้ รูปแบบที่รองรับรวมถึง TensorFlow 2.x, SavedModel, H5 และ Frozen Graph

.mlpackage แตกต่างจาก .mlmodel อย่างไร?

.mlpackage คือรูปแบบคอนเทนเนอร์ที่ทันสมัย โครงสร้างเป็นไดเรกทอรีที่มีเมตาดาต้า ไฟล์ไบนารี MLProgram และทรัพยากร มีขนาดกะทัดรัดกว่า .mlmodel แบบเก่า 2–3 เท่าและรองรับการควอนไทซ์

Core ML จัดการความเป็นส่วนตัวของข้อมูลอย่างไร?

การคำนวณทั้งหมด ดำเนินการบนอุปกรณ์เท่านั้น Core ML ไม่ส่งข้อมูลไปยังเซิร์ฟเวอร์ของ Apple เฟรมเวิร์กทำงานในโหมดเครื่องบินและไม่ต้องการการเชื่อมต่ออินเทอร์เน็ตสำหรับการอนุมาน

Core ML รองรับภาษาโปรแกรมอะไรบ้าง?

Swift เป็นภาษาหลักสำหรับการบูรณาการ Core ML ในแอป iOS/macOS Python ใช้สำหรับการแปลงโมเดลผ่าน coremltools Objective-C ก็รองรับเช่นกันสำหรับความเข้ากันได้ย้อนหลัง

สรุป

  • Core ML — เฟรมเวิร์กของ Apple สำหรับ ML บนอุปกรณ์ในทุกแพลตฟอร์มของระบบนิเวศ พร้อมรองรับ Apple Neural Engine
  • .mlpackage — รูปแบบคอนเทนเนอร์ที่ทันสมัยซึ่งรวมโมเดล เมตาดาต้า และทรัพยากรในแพ็คเกจเดียว
  • Apple Neural Engine ให้การเร่งความเร็วฮาร์ดแวร์สำหรับโครงข่ายประสาทเทียมด้วยประสิทธิภาพสูงถึง 35 TOPS บน M4 Ultra
  • coremltools ช่วยให้แปลงโมเดลจาก PyTorch, TensorFlow และ ONNX ในสามขั้นตอนโดยใช้ Python
  • การบูรณาการผ่านเฟรมเวิร์ก Vision ต้องใช้โค้ด Swift 5–10 บรรทัดเพื่อเรียกใช้โมเดลบนภาพ
  • ประสิทธิภาพการอนุมาน อยู่ในช่วง 2–50 มิลลิวินาที ขึ้นอยู่กับโมเดลและชิป
  • ความเป็นส่วนตัวของข้อมูล — การคำนวณทั้งหมดเป็นแบบภายในเครื่องเท่านั้น ไม่มีการส่งข้อมูลไปยังเซิร์ฟเวอร์

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม