Core ML — khái niệm, mô hình máy học và cách hoạt động trong iOS

Tác giả: IT Sectr Đã đăng: 2026-03-26 Thời gian đọc: 8 phút

Core ML — một framework máy học của Apple, được tối ưu hóa để chạy các mô hình ML trực tiếp trên thiết bị iOS, macOS, watchOS và tvOS. Không giống như các dịch vụ ML đám mây, Core ML sử dụng bộ tăng tốc phần cứng của Apple: Neural Engine, GPU và CPU, đảm bảo độ trễ tối thiểu khi xử lý dữ liệu. Theo Apple Core ML Documentation (2026), framework hỗ trợ các mô hình PyTorch, TensorFlow và Create ML ở định dạng .mlpackage thống nhất với thời gian suy luận trung bình 5–50 ms.

Các điểm chính

  • Core ML — framework của Apple cho máy học trên thiết bị trên tất cả các nền tảng hệ sinh thái
  • Apple Neural Engine (ANE) cung cấp khả năng tăng tốc phần cứng cho mạng nơ-ron với hiệu suất lên đến 11 TOPS
  • Định dạng .mlpackage kết hợp mô hình, siêu dữ liệu và cấu hình trong một vùng chứa tiện lợi
  • Việc chuyển đổi mô hình từ PyTorch và TensorFlow được thực hiện qua công cụ Python coremltools
  • Tích hợp với Vision và Natural Language cho phép tạo các pipeline ML phức tạp

Core ML là gì?

Core ML là một framework máy học được Apple giới thiệu tại WWDC 2017 như một phần của hệ sinh thái phát triển cho iPhone, iPad, Mac, Apple Watch và Apple TV. Core ML cung cấp môi trường thực thi để chạy các mô hình ML trên thiết bị, giải phóng nhà phát triển khỏi các chi tiết tối ưu hóa phần cứng. Framework tự động chọn công cụ tính toán tốt nhất — Neural Engine trên chip A12+, GPU hoặc CPU — cho mỗi thao tác mô hình.

Lợi thế chính của Core ML là tích hợp sâu với Apple Silicon. Các thao tác mạng nơ-ron được thực thi trên Neural Engine chuyên dụng, không làm tải các lõi chính của bộ xử lý. Theo Apple (WWDC 2025), các mô hình Core ML chạy nhanh hơn 6 lần so với TensorFlow Lite trên các thiết bị Android tương tự.

Tính năng chính

Core ML hỗ trợ nhiều tác vụ máy học khác nhau: phân loại hình ảnh, phát hiện đối tượng, phân đoạn ngữ nghĩa, xử lý ngôn ngữ tự nhiên, phân tích âm thanh và dữ liệu dạng bảng. Framework hoạt động với nhiều loại mô hình: mạng nơ-ron (tích chập, hồi tiếp, transformer), tập hợp cây, hồi quy tuyến tính và quy trình Gaussian.

Cách Core ML hoạt động

Core ML nhận mô hình đã huấn luyện ở định dạng .mlpackage, biên dịch nó thành mã máy được tối ưu hóa cho thiết bị cụ thể và chạy suy luận qua API thống nhất. Toàn bộ pipeline — từ tải mô hình đến nhận kết quả — chỉ cần 3–5 dòng mã Swift.

Định dạng mô hình .mlpackage

.mlpackage là định dạng vùng chứa được Apple giới thiệu vào năm 2020 để thay thế .mlmodel cũ. Gói này là một thư mục chứa tệp kê khai JSON, tệp mô hình ở định dạng nhị phân MLProgram, siêu dữ liệu (tác giả, phiên bản, mô tả) và các tài nguyên như nhãn lớp. Theo Apple, .mlpackage giảm kích thước mô hình 30–50% so với .mlmodel nhờ tối ưu hóa trọng số.

Apple Neural Engine

Apple Neural Engine (ANE) là bộ xử lý nơ-ron chuyên dụng được tích hợp trong chip Apple từ A12 Bionic (2018). ANE xử lý các thao tác ma trận hiệu quả hơn hàng chục lần so với CPU ở cùng mức tiêu thụ điện năng. Hiệu suất của ANE đã tăng từ 5 TOPS trên A12 lên 35 TOPS trên M4 Ultra (2025), cho phép chạy các mô hình với hàng tỷ tham số. ANE được sử dụng tự động cho tất cả các mô hình Core ML có kiến trúc mạng nơ-ron.

Một tính năng quan trọng của Core ML là hỗ trợ lượng tử hóa mô hình xuống FP16 và INT8 mà không mất độ chính xác. Lượng tử hóa giảm kích thước mô hình 2–4 lần và tăng tốc suy luận 40–60% trên ANE. Apple cung cấp công cụ Xcode Model Quantization để tự động chọn độ chính xác tối ưu: nhà phát triển tải mô hình lên, chỉ định mức giảm chất lượng chấp nhận được (thường 0.1–0.5%), và Xcode chọn định dạng biểu diễn trọng số tốt nhất.

So sánh hiệu suất Core ML

ChipTOPS (ANE)Suy luận ResNet-50Năm
A12 Bionic518 ms2018
A14 Bionic119 ms2020
M1 Max224 ms2021
M4 Ultra352 ms2025

Chuyển đổi mô hình sang Core ML

Hầu hết các mô hình ML được tạo trong PyTorch hoặc TensorFlow và cần chuyển đổi sang định dạng .mlpackage để sử dụng trong Core ML. Apple cung cấp tiện ích coremltools — một gói Python để chuyển đổi, tối ưu hóa và xác thực mô hình.

Công cụ coremltools

coremltools là tiện ích chính thức của Apple để chuyển đổi mô hình ML. Nó hỗ trợ nhập từ PyTorch (qua torch.onnx hoặc trực tiếp), TensorFlow (SavedModel, H5, Frozen Graph) và ONNX. Sau khi chuyển đổi, có thể kích hoạt lượng tử hóa FP16 hoặc INT8, giảm kích thước mô hình 2–4 lần mà không mất độ chính xác đáng kể.

Ví dụ chuyển đổi từ PyTorch

Hãy xem xét việc chuyển đổi mô hình PyTorch đã huấn luyện sang định dạng Core ML bằng coremltools phiên bản 8.0. Quy trình này mất 2–3 bước trong Python.

python
import torch
import coremltools as ct

# Đang tải mô hình PyTorch đã huấn luyện
model = torch.load('model.pth')
model.eval()

# Đang truy vết mô hình với đầu vào mẫu
example_input = torch.randn(1, 3, 224, 224)
traced_model = torch.jit.trace(model, example_input)

# Đang chuyển đổi sang Core ML .mlpackage
mlmodel = ct.convert(
    traced_model,
    convert_to='mlprogram',
    inputs=[ct.TensorType(shape=(1, 3, 224, 224))]
)
mlmodel.save('Model.mlpackage')

Mã này tải mô hình PyTorch đã huấn luyện, thực hiện truy vết JIT với đầu vào mẫu và chuyển đổi nó sang định dạng mlprogram (định dạng nhị phân Core ML). Tệp .mlpackage kết quả có thể kéo vào Xcode và sử dụng ngay trong mã Swift.

Tích hợp Core ML vào ứng dụng iOS

Sau khi chuyển đổi mô hình, việc tích hợp nó vào ứng dụng iOS bằng Swift chỉ mất vài dòng. Xcode tự động tạo lớp Swift cho mô hình dựa trên siêu dữ liệu .mlpackage.

Ví dụ mã Swift

Hãy xem xét ví dụ phân loại hình ảnh bằng Core ML và framework Vision. Vision tự động chuyển đổi hình ảnh sang kích thước và định dạng pixel yêu cầu.

swift
import CoreML
import Vision

// Đang tải mô hình Core ML
guard let model = try? VNCoreMLModel(
    for: MobileNetV2.configuration.model
) else { return }

// Đang tạo VNCoreMLRequest
let request = VNCoreMLRequest(model: model) { request, error in
    guard let results = request.results
        as? [VNClassificationObservation]
    else { return }

    // Xuất top-3 dự đoán
    for result in results.prefix(3) {
        print("\(result.identifier):
              \(result.confidence)")
    }
}

// Đang bắt đầu xử lý hình ảnh
let handler = VNImageRequestHandler(
    url: imageURL
)
try? handler.perform([request])

Mã Swift tải mô hình MobileNetV2 qua framework Vision, tạo yêu cầu phân loại và xử lý kết quả — một mảng các đối tượng VNClassificationObservation với nhãn lớp và tỷ lệ phần trăm độ tin cậy. Toàn bộ pipeline từ tải đến xuất kết quả mất 5–50 ms tùy theo mô hình.

Để tối ưu hóa thời gian khởi động, Core ML biên dịch mô hình ở lần sử dụng đầu tiên. Mô hình được biên dịch trước giảm thời gian khởi động nguội từ 2–3 giây xuống 100–200 ms. Nên biên dịch mô hình tại thời điểm xây dựng trong Xcode, thay vì khi khởi chạy ứng dụng lần đầu. Điều này đặc biệt quan trọng đối với các ứng dụng có nhiều mô hình ML — ví dụ: phát hiện đối tượng + phân loại + NLP.

Core ML so sánh với ML Kit

Core ML và ML Kit giải quyết các tác vụ ML trên thiết bị tương tự nhau nhưng nhắm đến các hệ sinh thái khác nhau. Core ML được tích hợp sâu với Apple Silicon và chỉ hỗ trợ các nền tảng Apple. ML Kit của Google là giải pháp đa nền tảng cho Android và iOS.

Đặc điểmCore MLML Kit
Nền tảngiOS, macOS, watchOS, tvOSAndroid, iOS
API tích hợpQua Vision, Natural Language15+ API tích hợp
Mô hình tùy chỉnh.mlpackage (PyTorch, TF)TFLite (qua bộ chuyển đổi)
Tăng tốc phần cứngANE, GPU, CPUGPU (Android), CPU
Dễ bắt đầuYêu cầu chuyển đổi mô hìnhAPI sẵn sàng không cần Data Science
Hiệu suất2–50 ms (ANE)80–200 ms (CPU/GPU)

Chọn Core ML nếu hệ sinh thái của bạn chỉ là Apple và bạn cần hiệu suất tối đa qua ANE. Nếu cần hỗ trợ đa nền tảng hoặc API sẵn sàng không cần chuyển đổi, ML Kit sẽ thiết thực hơn.

Trong thực tế, nhiều dự án sử dụng cả hai framework: iOS Core ML cho hiệu suất cao và ML Kit hoặc TensorFlow Lite trên Android. Một mô hình PyTorch thống nhất được chuyển đổi thành .mlpackage cho Apple và .tflite cho Android, cho phép duy trì chất lượng tính năng ML nhất quán trên cả hai nền tảng. Cách tiếp cận này đòi hỏi nhiều nỗ lực DevOps hơn một chút nhưng mang lại phạm vi phủ sóng khán giả tối đa.

Câu hỏi thường gặp

Yêu cầu tối thiểu cho Core ML là gì?

iOS 11+ cho mô hình cơ bản, iOS 14+ cho định dạng .mlpackage. Apple Neural Engine yêu cầu chip A12 Bionic trở lên. Core ML hỗ trợ tất cả iPhone, iPad và Mac từ năm 2017.

Có thể sử dụng Core ML với TensorFlow không?

, qua công cụ coremltools. Mô hình TensorFlow được chuyển đổi sang .mlpackage với độ chính xác được bảo toàn. Các định dạng được hỗ trợ bao gồm TensorFlow 2.x, SavedModel, H5 và Frozen Graph.

.mlpackage khác .mlmodel như thế nào?

.mlpackage là định dạng vùng chứa hiện đại, có cấu trúc là thư mục chứa siêu dữ liệu, tệp nhị phân MLProgram và tài nguyên. Nó nhỏ gọn hơn 2–3 lần so với .mlmodel cũ và hỗ trợ lượng tử hóa.

Core ML xử lý quyền riêng tư dữ liệu như thế nào?

Tất cả tính toán được thực hiện hoàn toàn trên thiết bị. Core ML không gửi dữ liệu đến máy chủ Apple. Framework hoạt động ở chế độ máy bay và không yêu cầu kết nối internet để suy luận.

Core ML hỗ trợ những ngôn ngữ lập trình nào?

Swift là ngôn ngữ chính để tích hợp Core ML vào ứng dụng iOS/macOS. Python được sử dụng để chuyển đổi mô hình qua coremltools. Objective-C cũng được hỗ trợ cho tương thích ngược.

Tổng kết

  • Core ML — framework của Apple cho ML trên thiết bị trên tất cả nền tảng hệ sinh thái với hỗ trợ Apple Neural Engine
  • .mlpackage — định dạng vùng chứa hiện đại kết hợp mô hình, siêu dữ liệu và tài nguyên trong một gói duy nhất
  • Apple Neural Engine cung cấp khả năng tăng tốc phần cứng cho mạng nơ-ron với hiệu suất lên đến 35 TOPS trên M4 Ultra
  • coremltools cho phép chuyển đổi mô hình từ PyTorch, TensorFlow và ONNX trong ba bước bằng Python
  • Tích hợp qua framework Vision cần 5–10 dòng mã Swift để chạy mô hình trên hình ảnh
  • Hiệu suất suy luận dao động từ 2–50 ms tùy theo mô hình và chip
  • Quyền riêng tư dữ liệu — mọi tính toán hoàn toàn cục bộ, không gửi dữ liệu đến máy chủ

Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay

IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.

Thảo luận dự án

Đọc thêm