Ultralytics YOLO27:

Tích hợp Apple Core AI#

Xuất Core AI yêu cầu macOS 26 trở lên trên Apple silicon hoặc Linux x86_64

coreai-core phát hành các wheel macosx_26_0_arm64 và manylinux_2_34_x86_64, vì vậy có thể export trên máy Mac dùng Apple silicon và Linux x86_64 với glibc 2.34 trở lên. .aimodel đã export chạy trên iOS 27 và macOS 27. SDK iOS của Ultralytics (phiên bản 8.9.15 trở lên) và plugin Flutter (phiên bản 0.6.15 trở lên) tải các tài nguyên .aimodel dưới dạng tùy chọn trên thiết bị iOS 27; Core ML vẫn là lựa chọn mặc định của các SDK và plugin này.

Core AI là framework mới của Apple để chạy trực tiếp mạng neural trên Apple silicon. Framework này giới thiệu định dạng model .aimodel, API suy luận Swift hiện đại, công cụ chuyển đổi dựa trên PyTorch, biên dịch trước thời điểm chạy, chuyên biệt hóa model, cùng các công cụ gỡ lỗi và lập hồ sơ chuyên dụng.

Apple mô tả Core AI là bước phát triển tiếp theo của hoạt động thực thi AI trên thiết bị và là framework suy luận đứng sau Apple Intelligence trên thiết bị. Framework này được thiết kế cho các kiến trúc mạng neural hiện đại, từ model thị giác nhỏ gọn đến model tạo sinh quy mô lớn, và có thể lập lịch công việc trên CPU, GPU và Apple Neural Engine (ANE).

Core AI là một hướng triển khai mới, không phải tên gọi mới của Core ML. Hai framework sử dụng định dạng model, công cụ chuyển đổi, API runtime và phương thức tích hợp ứng dụng khác nhau.

So sánh Core AI và Core ML#

Khả năngCore AICore ML
Tệp model.aimodel.mlpackage hoặc .mlmodel
Xuất bằng UltralyticsCó sẵn với format=coreaiCó sẵn với format=coreml
API runtime của AppleAIModel, InferenceFunction và NDArrayMLModel, thường thông qua VNCoreMLModel và VNCoreMLRequest
Quy trình chuyển đổiPyTorch torch.export thông qua coreai-torchChuyển đổi TorchScript thông qua coremltools
Trọng tâm chínhMạng neural hiện đại và AI tạo sinhTriển khai machine learning trên diện rộng, bao gồm model neural và phi neural
Tích hợp hình ảnhỨng dụng chuẩn bị tensor hoặc sử dụng bộ mô tả và bộ đệm hình ảnh Core AITích hợp trực tiếp với framework Vision để điều chỉnh tỷ lệ, hướng và yêu cầu hình ảnh
Phần cứngCPU, GPU và Apple Neural EngineCPU, GPU và Apple Neural Engine
Chuẩn bị modelChuyên biệt hóa khi cài đặt hoặc sử dụng lần đầu, kèm tùy chọn biên dịch trước thời điểm chạyBiên dịch model bằng Xcode hoặc trên thiết bị
Thao tác tùy chỉnhCác phép hạ cấp tùy chỉnh của Core AI và kernel MetalLớp tùy chỉnh Core ML và các phép toán MIL được hỗ trợ
Khả năng triển khaiThế hệ hệ điều hành mới của Apple; hiện đang ở giai đoạn betaHỗ trợ rộng rãi trên các hệ điều hành Apple hiện có
Ultralytics iOS và Flutter SDKTùy chọn sử dụng trên thiết bị iOS 27 trở lênĐược hỗ trợ đầy đủ và là lựa chọn mặc định

Core ML vẫn là lựa chọn phù hợp khi ứng dụng cần hỗ trợ nhiều thiết bị, tích hợp framework Vision hoặc các loại model như cây quyết định và pipeline dạng bảng. Apple tiếp tục hỗ trợ Core ML và hướng dẫn nhà phát triển sử dụng framework này cho các loại model phi neural.

Cách định dạng Core AI hoạt động#

Quy trình tạo model bằng Core AI bắt đầu từ model PyTorch:

PyTorch model
    ↓ torch.export
ExportedProgram
    ↓ coreai-torch
Core AI program
    ↓ optimize and save
.aimodel
    ↓ specialize or compile ahead of time
Apple silicon executable

Gói coreai-torch của Apple chuyển đổi torch.export.ExportedProgram bằng cách hạ cấp các phép toán PyTorch ATen thành phép toán Core AI. Có thể triển khai các phép toán không được hỗ trợ bằng phép hạ cấp tùy chỉnh hoặc kernel Metal tùy chỉnh.

.aimodel thu được là một asset model chưa được chuyên biệt hóa. Khi ứng dụng chuẩn bị model, Core AI sẽ chuyên biệt hóa model cho thiết bị đích. Ứng dụng có thể để quá trình này diễn ra ở lần sử dụng đầu tiên, yêu cầu chuyên biệt hóa sớm hơn hoặc đóng gói model đã biên dịch trước thời điểm chạy để giảm thời gian tải ban đầu.

Trong Swift, ứng dụng tải asset bằng framework Core AI, chọn một hàm suy luận, cung cấp đầu vào NDArray có kiểu dữ liệu cụ thể và nhận các đầu ra được đặt tên. Cách này khác với việc bọc model Core ML trong yêu cầu Vision, vì vậy áp dụng Core AI đòi hỏi runtime ứng dụng được thiết kế cho các asset .aimodel.

Để biết chi tiết triển khai, hãy xem tài liệu của Apple về AIModel, chuyên biệt hóa và lưu vào bộ nhớ đệm model, và biên dịch trước thời điểm chạy.

Xuất model YOLO26 sang Core AI#

Ví dụ
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="coreai")  # tạo 'yolo26n.aimodel'
model.export(format="coreai", quantize=16)  # FP16 asset

# Chạy model đã xuất
coreai_model = YOLO("yolo26n.aimodel")
results = coreai_model("https://ultralytics.com/images/bus.jpg")

Xem danh sách đầy đủ các đối số trong Chế độ export. Đồ thị là tĩnh: đồ thị được truy vết tại imgsz được truyền cho export, vì vậy hãy dự đoán ở cùng kích thước đó. Metadata Ultralytics được lưu bên trong metadata.json riêng của asset, nhờ đó tên lớp, stride và task được giữ nguyên sau khi chuyển đổi khứ hồi.

Chọn head#

Với nms=False, YOLO26 xuất head end-to-end, thực hiện chọn detection bên trong đồ thị. Core AI không có phép toán top-k, vì vậy thao tác chọn này được hạ cấp thành sắp xếp toàn bộ và phát sinh chi phí cố định tại ranh giới phân vùng Apple Neural Engine — khoảng 1,7 ms, không phụ thuộc vào max_det. Thay vào đó, xuất bằng nms=None sẽ tạo ra các dự đoán (1, 84, 8400) thô và để predictor thực hiện non-maximum suppression:

yolo export model=yolo26n.pt format=coreai nms=None quantize=16

Trên iPhone 17 Pro chạy iOS 27.0, YOLO26n ở kích thước 640 mất 3.01 ms khi head nằm trong đồ thị và 1.28 ms khi không có head (FP16, biên dịch trước thời điểm chạy, ba khối 50 lượt lặp xen kẽ). Cả hai đều chuyển đổi khứ hồi qua YOLO(...) để suy luận. Dùng nms=False khi một lần gọi đồ thị duy nhất phải trả về các detection hoàn chỉnh, hoặc giữ nms=None mặc định để dùng NMS bên ngoài.

Trên iOS 27 hoặc macOS 27, ứng dụng sẽ tải và chạy asset đã xuất thông qua API Core AI Swift của Apple. Asset đã xuất sử dụng entrypoint main, nhận một đầu vào images duy nhất có shape [batch, 3, imgsz, imgsz] và trả về output0 (model phân đoạn instance cũng trả về output1):

import CoreAI

let modelURL = Bundle.main.url(forResource: "yolo26n", withExtension: "aimodel")!
let model = try await AIModel(contentsOf: modelURL)
guard let function = try model.loadFunction(named: "main") else {
    throw AppError.missingInferenceFunction
}

let outputs = try await function.run(inputs: ["images": imageTensor])

Khác với quy trình Core ML và Vision hiện tại, đường dẫn Core AI trong Ultralytics iOS SDK tự thực hiện tiền xử lý letterbox và tạo NDArray, đọc cùng metadata Ultralytics từ metadata.json của asset và tái sử dụng bộ giải mã đầu ra Core ML. SDK tải model khi ứng dụng truyền đường dẫn .aimodel hoặc URL .aimodel.zip. Apple cung cấp thông tin API hiện hành trong tài liệu framework Core AI và các ví dụ model có thể chạy trong repository model Core AI.

Hiệu năng đo được#

Inference một ảnh từ đầu đến cuối cho các bản export Core ML và Core AI YOLO26n FP16 (quantize=16) với head raw mặc định (nms=None) trên Mac mini có Apple M4 (CPU 4 nhân Performance và 6 nhân Efficiency, GPU 10 nhân, Neural Engine 16 nhân), bộ nhớ 16 GB và macOS 27.0, sử dụng ultralytics 8.4.168, coremltools 9.0 cho inference Core ML, và coreai-torch 0.4.3 cùng coreai-core 1.0.0b3 cho inference Core AI trên Python 3.13. Mỗi ô hiển thị tổng thời gian (tiền xử lý + inference + hậu xử lý), bên dưới là thời gian của từng giai đoạn.

ModelTác vụkích thước
(pixel)
CPU Core ML
CPU_ONLY
(ms)
CPU Core ML + ưu tiên ANE
CPU_AND_NE
(ms)
CPU Core AI
cpu_only()
(ms)
CPU Core AI + ưu tiên ANE
neural_engine()
(ms)
YOLO26nPhát hiện64014.4
0.6 / 13.4 / 0.4
7.6
0.6 / 6.7 / 0.4
16.8
0.6 / 15.9 / 0.3
2.8
0.6 / 2.0 / 0.2
YOLO26n-segPhân đoạn64018.7
0.6 / 16.5 / 1.5
9.2
0.6 / 7.1 / 1.5
25.3
0.6 / 23.2 / 1.5
5.1
0.6 / 3.1 / 1.4
YOLO26n-semNgữ nghĩa64033.9
1.3 / 32.2 / 0.4
73.7
1.4 / 71.9 / 0.4
47.1
1.2 / 38.5 / 7.4
18.7
1.2 / 11.1 / 6.4
YOLO26n-depthĐộ sâu64036.8
0.8 / 35.5 / 0.5
12.1
0.9 / 10.7 / 0.5
40.2
0.8 / 39.0 / 0.5
7.5
0.7 / 6.3 / 0.5
YOLO26n-clsPhân loại2243.8
1.9 / 1.8 / 0.0
3.3
1.9 / 1.4 / 0.0
3.0
1.9 / 1.0 / 0.0
2.4
1.9 / 0.6 / 0.0
YOLO26n-poseTư thế64015.5
0.6 / 14.6 / 0.3
7.0
0.6 / 6.2 / 0.3
17.8
0.5 / 17.0 / 0.3
2.7
0.5 / 2.0 / 0.2
YOLO26n-obbOBB64032.7
1.3 / 31.1 / 0.2
16.9
1.5 / 15.2 / 0.2
37.2
1.1 / 35.9 / 0.2
5.7
1.3 / 4.3 / 0.1
  • Các giá trị Tốc độ là độ trễ xử lý liên tiếp từng ảnh đơn: trung bình của 15 lần gọi predict sau 3 lần gọi khởi động, trên bus.jpg thông qua Ultralytics Python API, với mỗi model và đơn vị tính toán chạy trong một tiến trình mới. Thứ tự CPU/bộ tăng tốc được luân phiên giữa các tác vụ trong một lượt chạy tuần tự. Các hàng Core ML tải bằng coremltools.ComputeUnit.CPU_ONLY hoặc CPU_AND_NE; các hàng Core AI được chuyên biệt hóa bằng SpecializationOptions.cpu_only() hoặc SpecializationOptions.from_preferred_compute_unit_kind(ComputeUnitKind.neural_engine()), còn framework tương ứng kiểm soát vị trí thực thi cuối cùng.
  • Các tác vụ phát hiện, phân đoạn, phân loại, ước tính tư thế và OBB trả về cùng dự đoán ở cả hai định dạng trên mọi đơn vị tính toán. Model ngữ nghĩa Core ML FP16 chạy chậm hơn khi ưu tiên Neural Engine so với chỉ dùng CPU trên máy Mac này; hậu xử lý ngữ nghĩa Core AI mất 6.4 đến 7.4 ms, trong khi Core ML mất 0.4 ms.
  • So sánh kết quả trên thiết bị iPhone 17 Pro trong tích hợp CoreML.

Ưu điểm của Core AI#

Core AI mang lại một số ưu điểm đầy hứa hẹn cho việc triển khai Ultralytics trong tương lai:

  • Quy trình export PyTorch hiện đại: Quá trình chuyển đổi bắt đầu từ torch.export, giữ lại đồ thị PyTorch biểu đạt tốt hơn so với quy trình truy vết được nhiều công cụ export hiện có sử dụng.
  • Kiểm soát runtime chi tiết: Ứng dụng có thể quản lý việc chuyên biệt hóa, bộ nhớ đệm model đã biên dịch, hàm suy luận, bộ nhớ và vị trí tính toán.
  • Hỗ trợ model nâng cao: Thực thi có trạng thái, shape động, nhiều hàm trong cùng một asset và kernel Metal tùy chỉnh được thiết kế cho kiến trúc thị giác và tạo sinh hiện đại.
  • Công cụ dành riêng cho nhà phát triển: Core AI Debugger có thể kiểm tra đồ thị và giá trị tensor, đồng thời truy nguyên chúng về mã Python ban đầu. Xcode và Instruments cung cấp khả năng lập hồ sơ runtime.
  • Khả năng không sao chép dữ liệu: Core AI cung cấp các tùy chọn kiểm soát bộ nhớ lưu trữ và bộ đệm nhằm giảm số lần sao chép giữa camera, đồ họa và khối lượng công việc suy luận.
  • Tối ưu hóa cho Apple silicon: Tính năng chuyên biệt hóa thiết bị cho phép Apple tối ưu hóa model cho CPU, GPU và Neural Engine có trên từng thiết bị cụ thể.
  • Nén linh hoạt: Các công cụ Core AI Optimization của Apple hỗ trợ lượng tử hóa, lượng tử hóa theo bảng màu và cắt tỉa, bao gồm cả định dạng trọng số ít bit.

Các khả năng này có thể đặc biệt hữu ích cho những model YOLO trong tương lai có thực thi động, thành phần đa phương thức lớn hơn hoặc thao tác tùy chỉnh không thể ánh xạ dễ dàng sang các phép toán Core ML hiện có.

Nhược điểm và hạn chế hiện tại#

Hiện tại, Core AI chưa thể thay thế quy trình Core ML dùng trong môi trường production:

  • Yêu cầu hệ điều hành mới: Framework công khai hướng đến thế hệ iOS 27 và macOS 27, trong khi Core ML hỗ trợ lượng thiết bị đã cài đặt lớn hơn nhiều.
  • Phần mềm beta: Framework Core AI của Apple và một số phần trong bộ công cụ Python vẫn đang ở giai đoạn sơ bộ, có thể thay đổi trước khi phát hành ổn định.
  • Môi trường export hẹp hơn: coreai-torch hiện yêu cầu Python 3.11 đến 3.14 cùng các phiên bản PyTorch mới, phạm vi hẹp hơn nhiều so với các phiên bản Python và PyTorch được Ultralytics hỗ trợ.
  • Nền tảng export hạn chế: coreai-core chỉ phát hành wheel macosx_26_0_arm64 và manylinux_2_34_x86_64, vì vậy format=coreai cần máy Mac dùng Apple silicon chạy macOS 26 trở lên, hoặc Linux x86_64 với glibc 2.34 trở lên (ví dụ Ubuntu 22.04+). Để chạy .aimodel vẫn cần phần cứng Apple.
  • SDK Ultralytics yêu cầu chọn tham gia, không phải mặc định: Trên iPhone 17 Pro, so sánh trên thiết bị cho thấy Core AI ngang bằng Core ML trên toàn bộ pipeline chứ không nhanh hơn; suy luận semantic, depth và chỉ dùng CPU chậm hơn, còn asset FP16 có kích thước tải xuống lớn khoảng gấp đôi. Vì vậy, iOS SDK và plugin Flutter vẫn đặt Core ML làm mặc định.
  • Dùng head thô cho SDK: Với nms=False, YOLO26n chạy trên Core AI mất khoảng gấp đôi thời gian so với Core ML (3.06 so với 1.53 ms trong một lần chạy so sánh), còn model pose end-to-end FP16 không trả về detection khi dùng vị trí mặc định của Core AI trên iOS 27.0 (apple/coreai-torch#115). Head thô (nms=None, mặc định) tránh được cả hai vấn đề, còn SDK chạy NMS trong Swift. Xem Chọn head.
  • Không có runtime iOS Simulator: SDK iOS Simulator không bao gồm Core AI.
  • Cần chuyển đổi ứng dụng: Không thể thay .aimodel cho .mlpackage; việc tải model, tiền xử lý, gọi suy luận, xử lý metadata và giải mã đầu ra cần một triển khai Core AI bên ngoài Ultralytics SDK, vốn đã cung cấp sẵn một triển khai như vậy.
  • Bằng chứng production còn hạn chế: Cần xác thực hiệu năng, mức tiêu thụ điện năng, thời gian chuyên biệt hóa lần đầu, độ chính xác và khả năng nén trên toàn bộ tổ hợp task YOLO và thiết bị được hỗ trợ.
  • Không có pipeline NMS: Core ML có thể đóng gói một giai đoạn NMS cho các model detection YOLO cũ hơn. Mặc định, Core AI export các dự đoán one-to-many thô; dùng nms=False cho head không cần NMS của YOLO26. Không hỗ trợ NMS nhúng (nms=True) và dynamic=True. coreai-torch không có phép hạ cấp cho torchvision::nms, vì vậy NMS vẫn chạy trên host.
  • Kích thước đầu vào cố định: Đồ thị đã xuất được truy vết tại một imgsz và không có shape động, vì vậy hãy dự đoán ở kích thước đã dùng để export.
  • Asset FP16 có thể gây lỗi khi tải: Một số asset .aimodel FP16 không tải được chương trình Apple Neural Engine và MPSGraph đưa ra assertion thất bại, khiến tiến trình kết thúc thay vì chuyển sang phương án dự phòng. Lỗi xảy ra bên trong runtime của Apple, trước khi bất kỳ mã Ultralytics nào chạy; cùng asset đó tải được với cấu hình chuyên biệt hóa chỉ dùng CPU. Nếu gặp lỗi này, hãy chuyển sang FP32; các asset FP16 của SDK được kiểm tra trên iPhone 17 Pro (mọi model nano, tác vụ detect ở mọi kích thước và model lớn nhất của mỗi task) đều tải được mà không bị lỗi kết thúc tiến trình.

Nên dùng định dạng nào của Apple?#

Hãy dùng Core ML ngay hôm nay khi cần:

  • Triển khai trên các hệ điều hành Apple hiện tại và cũ hơn
  • Đường dẫn mặc định của Ultralytics iOS SDK hoặc Flutter SDK
  • Xử lý hình ảnh bằng framework Vision
  • Triển khai YOLO FP16 và INT8 đã được kiểm thử
  • NMS nhúng cho các model detection cũ tương thích

Đánh giá Core AI khi có thể yêu cầu iOS 27 hoặc macOS 27 và cần:

  • Runtime mạng neural trên thiết bị mới nhất của Apple
  • Quản lý tường minh việc chuyên biệt hóa và bộ nhớ đệm
  • Thực thi model động hoặc có trạng thái ở mức nâng cao
  • Thao tác Core AI tùy chỉnh hoặc kernel Metal
  • Gỡ lỗi đồ thị Core AI chi tiết và lập hồ sơ runtime

Core ML và Core AI dự kiến sẽ cùng tồn tại trong quá trình ứng dụng chuyển đổi. Hỗ trợ Core AI không loại bỏ ngay nhu cầu dùng Core ML vì mục tiêu triển khai và hợp đồng ứng dụng của hai framework khác nhau.

Lộ trình Ultralytics#

Target export chuyên dụng coreai đã được triển khai: quá trình export và xác thực số học bao phủ các model task YOLO26 được hỗ trợ, đồng thời chạy liên tục trong Ultralytics CI trên macOS 26; độ trễ FP16 được đo trên thiết bị. Các mục còn lại trong lộ trình trước khi Core AI đạt mức tương đương với quy trình Core ML:

  1. Khắc phục khoảng cách độ trễ của head end-to-end trên Apple Neural Engine (apple/coreai-torch#66) và các vấn đề về tính đúng đắn trên Neural Engine (apple/coreai-torch#115, #116).
  2. Asset Core AI INT8 và lượng tử hóa theo bảng màu; asset SDK dùng FP16, có kích thước tải xuống lớn khoảng gấp đôi asset Core ML INT8.
  3. Phát hành ổn định framework Apple và công cụ chuyển đổi (thế hệ iOS 27 và macOS 27 hiện đang ở giai đoạn beta).
  4. Đo kiểm bộ nhớ, điện năng và thời gian chuyên biệt hóa trên toàn bộ tổ hợp thiết bị được hỗ trợ.

Ultralytics iOS SDK và plugin Flutter hỗ trợ tải Core AI theo tùy chọn trên iOS 27 trở lên; Core ML vẫn là lựa chọn mặc định và là target được khuyến nghị để hỗ trợ các phiên bản thấp hơn iOS 27. Theo dõi lộ trình Ultralytics và ghi chú phát hành để biết tiến độ các mục còn lại.

Tài nguyên bổ sung#

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

  • Có. Export bằng model.export(format="coreai") hoặc yolo export format=coreai trên máy Mac dùng Apple silicon chạy macOS 26 trở lên, hoặc trên Linux x86_64 với glibc 2.34 trở lên; .aimodel đã export chạy trên iOS 27 và macOS 27. SDK iOS và Flutter của Ultralytics tải model này dưới dạng tùy chọn trên thiết bị iOS 27. Với đường dẫn mặc định của các SDK và plugin này, cũng như trên các phiên bản hệ điều hành cũ hơn, hãy export tệp Core ML .mlpackage bằng format="coreml".

  • Không phải ngay lập tức. Core AI là hướng đi mới hơn của Apple dành cho các mạng neural hiện đại, trong khi Core ML vẫn được hỗ trợ và cung cấp phạm vi tương thích hệ điều hành rộng hơn, khả năng tích hợp Vision và hỗ trợ các model không phải mạng neural.

  • Không. Chúng chứa các biểu diễn model khác nhau và được tải bằng các framework khác nhau. Việc chuyển đổi phải bắt đầu từ model nguồn thông qua toolchain phù hợp của Apple.

  • Dự kiến tích hợp ban đầu sẽ cùng tồn tại với Core ML. Mọi quyết định thay thế trong tương lai sẽ phụ thuộc vào mức độ phổ biến của hệ điều hành, độ ổn định của công cụ và hiệu năng trên thiết bị.

Người đóng góp

Bình luận