YOLO Vision 2026:

Tích hợp Apple Core AI#

Việc export Core AI yêu cầu macOS 26 trở lên trên Apple silicon

coreai-core chỉ phát hành các wheel macosx_26_0_arm64, vì vậy việc export chạy trên máy Mac dùng Apple silicon. .aimodel đã export chạy trên iOS 27 và macOS 27. Các SDK iOS và Flutter của Ultralytics hiện chưa load các asset .aimodel — hãy dùng Core ML cho các SDK này.

Core AI là framework mới của Apple để chạy neural network trực tiếp trên Apple silicon. Framework này giới thiệu format model .aimodel, inference API Swift hiện đại, các 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ụ debug và profiling chuyên dụng.

Apple mô tả Core AI là bước phát triển tiếp theo của việc thực thi AI trên thiết bị và là inference framework đứng sau Apple Intelligence trên thiết bị. Framework này được thiết kế cho các kiến trúc neural network hiện đại, từ model thị giác nhỏ gọn đến model sinh lớn, đồng thời có thể lập lịch công việc trên CPU, GPU và Neural Engine của Apple (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 các format model, công cụ chuyển đổi, runtime API và pattern tích hợp ứng dụng khác nhau.

So sánh Core AI và Core ML#

Khả năngCore AICore ML
Artifact model.aimodel.mlpackage hoặc .mlmodel
Ultralytics exportCó sẵn với format=coreaiCó sẵn với format=coreml
Runtime API của AppleAIModel, InferenceFunctionNDArrayMLModel, thường thông qua VNCoreMLModelVNCoreMLRequest
Workflow chuyển đổiPyTorch torch.export qua coreai-torchChuyển đổi TorchScript thông qua coremltools
Trọng tâm chínhNeural network hiện đại và AI tạo sinhTriển khai machine learning trên diện rộng, bao gồm model neural và non-neural
Tích hợp hình ảnhỨng dụng chuẩn bị tensor hoặc sử dụng image descriptor và buffer của Core AITích hợp trực tiếp với framework Vision để scale, định hướng hình ảnh và tạo request
Phần cứngCPU, GPU và Neural Engine của AppleCPU, GPU và Neural Engine của Apple
Chuẩn bị modelChuyên biệt hóa khi cài đặt hoặc sử dụng lần đầu, với 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ị
Operation tùy chỉnhCore AI lowering tùy chỉnh và kernel MetalCustom layer của Core ML và operation MIL được hỗ trợ
Khả dụng khi triển khaiThế hệ hệ điều hành Apple mới; hiện đang ở bản betaHỗ trợ rộng rãi trên các hệ điều hành Apple hiện có
SDK iOS và Flutter của UltralyticsChưa được hỗ trợĐược hỗ trợ đầy đủ

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 các developer sử dụng model non-neural đến framework này.

Cách hoạt động của format Core AI#

Workflow authoring của Core AI bắt đầu từ mộ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

Package coreai-torch của Apple chuyển đổi một torch.export.ExportedProgram bằng cách hạ các operation PyTorch ATen xuống operation Core AI. Các operation không được hỗ trợ có thể được triển khai bằng lowering tùy chỉnh hoặc kernel Metal tùy chỉnh.

.aimodel thu được là một model asset 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 đã được 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 load asset bằng framework Core AI, chọn một inference function, cung cấp input NDArray có kiểu rõ ràng và nhận các output có tên. Cách này khác với việc bọc một model Core ML trong request Vision, vì vậy việc áp dụng Core AI yêu cầu runtime ứng dụng được thiết kế cho các asset .aimodel.

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

Export model YOLO26 sang Core AI#

Ví dụ
from ultralytics import YOLO

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

# Run the exported model
coreai_model = YOLO("yolo26n.aimodel")
results = coreai_model("https://ultralytics.com/images/bus.jpg")

Xem danh sách đầy đủ các tham số tại chế độ Export. Graph là static: graph được trace tại imgsz được truyền cho export, vì vậy hãy predict ở cùng kích thước đó. Metadata của Ultralytics được lưu bên trong metadata.json riêng của asset, nên tên class, stride và task vẫn được giữ nguyên qua quá trình chuyển đổi hai chiều.

Lựa chọn head#

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

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

Trên iPhone 17 Pro chạy iOS 27.0, YOLO26n ở 640 đo được 3,01 ms khi có đầu trong đồ thị và 1,28 ms khi không có đầu (FP16, được biên dịch trước, ba khối xen kẽ gồm 50 lần lặp). Cả hai đều chuyển đổi khứ hồi qua YOLO(...) để suy luận. Sử dụng nms=False khi một lệnh gọi đồ thị duy nhất phải trả về các kết quả phát hiện đã hoàn thành, hoặc giữ nguyên nms=None mặc định cho NMS bên ngoài.

Trên iOS 27 hoặc macOS 27, ứng dụng sau đó sẽ load và chạy asset đã export thông qua Core AI Swift API của Apple. Asset đã export sử dụng entrypoint main, nhận một input duy nhất images có shape [batch, 3, imgsz, imgsz] và trả về output0:

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ông giống workflow Core ML và Vision hiện tại, hướng Core AI trong tương lai sẽ cần định nghĩa bước tiền xử lý hình ảnh, việc tạo NDArray, metadata của model và giải mã output trong Ultralytics iOS SDK. Apple cung cấp chi tiết API hiện tại trong tài liệu framework Core AI và các ví dụ model hoạt động trong repository model Core AI.

Ư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:

  • Path export PyTorch hiện đại: Quá trình chuyển đổi bắt đầu từ torch.export, giữ lại graph PyTorch giàu biểu đạt hơn workflow tracing được nhiều exporter 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, cache của model đã biên dịch, inference function, bộ nhớ và vị trí thực thi.
  • Hỗ trợ model nâng cao: Thực thi có trạng thái, shape động, nhiều function trong một artifact và kernel Metal tùy chỉnh được thiết kế cho các kiến trúc thị giác và sinh hiện đại.
  • Công cụ developer chuyên dụng: Core AI Debugger có thể kiểm tra graph và giá trị tensor, đồng thời truy ngược chúng về code Python ban đầu. Xcode và Instruments cung cấp runtime profiling.
  • Khả năng zero-copy: Core AI cung cấp các cơ chế kiểm soát storage và buffer nhằm giảm việc sao chép giữa workload camera, đồ họa và inference.
  • Tối ưu hóa cho Apple silicon: Việc chuyên biệt hóa theo thiết bị cho phép Apple tối ưu model cho CPU, GPU và Neural Engine có trên thiết bị cụ thể.
  • Nén linh hoạt: Các công cụ Core AI Optimization của Apple hỗ trợ quantization, palettization và pruning, bao gồm cả format weight bit thấp.

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 multimodal lớn hơn hoặc operation tùy chỉnh không ánh xạ rõ ràng sang các operation Core ML hiện có.

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

Core AI hiện chưa phải là giải pháp thay thế cho path Core ML production:

  • Yêu cầu hệ điều hành mới: Framework public này nhắm đến thế hệ iOS 27 và macOS 27, trong khi Core ML hỗ trợ installed base lớn hơn nhiều.
  • Phần mềm beta: Framework Core AI của Apple và một phần Python toolchain vẫn đang ở giai đoạn sơ bộ và có thể thay đổi trước khi phát hành bản ổn định.
  • Môi trường export hẹp hơn: coreai-torch hiện yêu cầu Python 3.11 trở lên nhưng thấp hơn 3.14, cùng các phiên bản PyTorch gần đây, hẹp hơn nhiều so với phạm vi Python và PyTorch được Ultralytics hỗ trợ.
  • Export chỉ chạy trên macOS: coreai-core chỉ phát hành các wheel macosx_26_0_arm64, vì vậy format=coreai cần máy Mac dùng Apple silicon chạy macOS 26 trở lên.
  • Chưa có runtime ứng dụng Ultralytics: Ứng dụng YOLO iOS chính thứcplugin Flutter hiện load các Core ML artifact thông qua MLModel và Vision.
  • Yêu cầu migration ứng dụng: Không thể thay thế .mlpackage bằng .aimodel; việc load model, tiền xử lý, gọi inference, xử lý metadata và giải mã output cần một triển khai Core AI.
  • Bằng chứng production còn hạn chế: Hiệu năng, mức tiêu thụ điện, thời gian chuyên biệt hóa ở lần chạy đầu, độ chính xác và khả năng nén cần được đánh giá trên toàn bộ ma trận task YOLO và thiết bị được hỗ trợ.
  • Quy trình không có NMS: Core ML có thể đóng gói một giai đoạn NMS cho các mô hình phát hiện YOLO cũ. Core AI xuất các dự đoán một-nhiều thô theo mặc định; sử dụng nms=False cho đầu không có NMS của YOLO26. NMS được nhúng (nms=True) và dynamic=True không được hỗ trợ. coreai-torch không có phần hạ cấp cho torchvision::nms, do đó NMS vẫn nằm trên máy chủ.
  • Kích thước input cố định: Graph đã export được trace tại một imgsz và không có shape động, vì vậy hãy predict ở kích thước đã dùng để export.
  • Asset FP16 có thể làm tiến trình dừng khi load: Một số asset FP16 .aimodel không load được chương trình Apple Neural Engine và MPSGraph phát sinh failed assertion, khiến tiến trình kết thúc thay vì fallback. Điều này xảy ra bên trong runtime của Apple, trước khi bất kỳ code Ultralytics nào chạy, trong khi cùng asset đó load được với specialization chỉ dùng CPU. Hãy ưu tiên FP32 cho đến khi lỗi được sửa ở upstream.

Nên sử dụng format Apple nào?#

Sử 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
  • Tích hợp với SDK iOS hoặc Flutter của Ultralytics
  • Xử lý hình ảnh bằng framework Vision
  • Triển khai YOLO FP16 và INT8 đã được kiểm thử
  • NMS tích hợp cho các model detection legacy 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 neural network trên thiết bị mới nhất của Apple
  • Quản lý specialization và cache một cách tường minh
  • Thực thi model động hoặc có trạng thái nâng cao
  • Operation Core AI tùy chỉnh hoặc kernel Metal
  • Debug graph Core AI và runtime profiling chi tiết

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

Roadmap của Ultralytics#

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

  1. Load model Core AI và tiền xử lý trong Ultralytics iOS SDK.
  2. Tích hợp Flutter và chiến lược tương thích cho các thiết bị dưới iOS 27.
  3. Bản phát hành ổn định của framework Apple và công cụ chuyển đổi (thế hệ iOS 27 và macOS 27 hiện đang ở bản beta).
  4. Benchmark bộ nhớ, mức tiêu thụ điện và specialization trên toàn bộ ma trận thiết bị được hỗ trợ.

Core ML vẫn là target được khuyến nghị cho các ứng dụng cần Ultralytics iOS hoặc Flutter SDK hoặc cần hỗ trợ phiên bản dưới iOS 27; hãy theo dõi roadmap Ultralytics và release note cho các hạng mục còn lại.

Tài nguyên bổ sung#

FAQ#

  • Có. Hãy 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; .aimodel đã export sẽ chạy trên iOS 27 và macOS 27. Đối với các SDK iOS và Flutter của Ultralytics, cũng như các hệ điều hành thuộc thế hệ cũ hơn, hãy export các file Core ML .mlpackage bằng format="coreml".

  • Chưa 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, tích hợp với Vision và hỗ trợ các model không phải neural.

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

  • Tích hợp ban đầu dự kiến 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 độ áp dụng của hệ điều hành, tool ổn định, hiệu năng và khả năng hỗ trợ iOS và Flutter ở các hệ thống downstream.

Người đóng góp
GLglenn-jocher3DADaisuke Majima1

Bình luận