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 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ự.
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.
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.
.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 (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.
| Chip | TOPS (ANE) | Suy luận ResNet-50 | Năm |
|---|---|---|---|
| A12 Bionic | 5 | 18 ms | 2018 |
| A14 Bionic | 11 | 9 ms | 2020 |
| M1 Max | 22 | 4 ms | 2021 |
| M4 Ultra | 35 | 2 ms | 2025 |
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.
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ể.
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.
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.
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.
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.
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 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ểm | Core ML | ML Kit |
|---|---|---|
| Nền tảng | iOS, macOS, watchOS, tvOS | Android, iOS |
| API tích hợp | Qua Vision, Natural Language | 15+ 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ứng | ANE, GPU, CPU | GPU (Android), CPU |
| Dễ bắt đầu | Yêu cầu chuyển đổi mô hình | API sẵn sàng không cần Data Science |
| Hiệu suất | 2–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
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ó, 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 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.
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.
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
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.
Đọc thêm