Ultralytics YOLO27: Tham gia danh sách chờ.
Get Started

Tích hợp Apple Core AI#

Xuất sang 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, nhờ đó quá trình xuất chạy được trên máy Mac Apple silicon và Linux x86_64 có glibc 2.34 trở lên. .aimodel đã xuất chạy trên iOS 27 và macOS 27. Ultralytics iOS SDK (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 asset .aimodel theo tùy chọn trên thiết bị iOS 27; Core ML vẫn là lựa chọn mặc định.

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 gian chạy, chuyên biệt hóa model và các công cụ chuyên dụng để gỡ lỗi và profiling.

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à 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, đồng thời có thể lập lịch công việc trên CPU, GPU và Bộ xử lý thần kinh 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 này sử dụng định dạng model, công cụ chuyển đổi, API runtime và mô hình 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
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 descriptor và buffer hình ảnh của Core AITích hợp trực tiếp với framework Vision để thay đổi tỷ lệ, hướng hình ảnh và xử lý request
Phần cứngCPU, GPU và Bộ xử lý thần kinh của AppleCPU, GPU và Bộ xử lý thần kinh của Apple
Chuẩn bị modelChuyên biệt hóa khi cài đặt hoặc sử dụng lần đầu, có tùy chọn biên dịch trước thời gian 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 thao tác MIL được hỗ trợ
Khả năng 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 Ultralytics iOS và FlutterCó thể chọn sử dụng trên các 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 với các loại model phi neural.

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

Quy trình tạo model bằng 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

Gói coreai-torch của Apple chuyển đổi torch.export.ExportedProgram bằng cách hạ cấp các thao tác PyTorch ATen thành thao tác Core AI. Có thể triển khai các thao tác 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ị mục tiêu. Ứ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 gian 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 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ên. Cách này khác với việc bọc model Core ML trong request Vision, vì vậy muốn áp dụng Core AI thì ứng dụng cần có runtime đượ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à bộ nhớ đệm model, và biên dịch trước thời gian 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ố, hãy xem Chế độ Export. Đồ thị là tĩnh: đồ thị được trace ở 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 qua quá trình 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ó primitive 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à 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. Thay vào đó, khi xuất với nms=None, model sẽ xuất 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 gian chạy, ba khối xen kẽ gồm 50 vòng lặp). Cả hai đều được chuyển đổi khứ hồi qua YOLO(...) để suy luận. Dùng nms=False khi một lần gọi đồ thị 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 Swift Core AI 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 các 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 tại trong tài liệu framework Core AI và các ví dụ model hoạt động trong repository model Core AI.

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

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

ModelTác vụkích thước
(pixel)
Core ML CPU
CPU_ONLY
(ms)
Core ML CPU + ưu tiên ANE
CPU_AND_NE
(ms)
Core AI CPU
cpu_only()
(ms)
Core AI CPU + ưu tiên ANE
neural_engine()
(ms)
YOLO26nDetect64014.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-segSegment64018.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ễ burst của một ả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 được 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 việc bố trí thao tác cuối cùng do từng framework kiểm soát.
  • Detect, segment, classify, pose và OBB trả về cùng một 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; bước hậu xử lý ngữ nghĩa của Core AI mất 6.4 đến 7.4 ms, so với 0.4 ms của Core ML.
  • 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 có một số ưu điểm đầy hứa hẹn cho việc triển khai Ultralytics trong tương lai:

  • Luồng 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 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ý quá trình 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 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à tạo sinh hiện đại.
  • Công cụ dành riêng cho developer: Core AI Debugger có thể kiểm tra đồ thị và giá trị tensor, đồng thời truy ngược chúng về mã Python gốc. Xcode và Instruments cung cấp khả năng profiling runtime.
  • Khả năng zero-copy: Core AI cung cấp các tùy chọn kiểm soát storage và buffer nhằm giảm số lần sao chép giữa camera, đồ họa và workload 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 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 bảng màu và cắt tỉa, bao gồm các định dạng trọng số 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 đa phương thức lớn hơn hoặc thao tác tùy chỉnh không ánh xạ thuận tiện sang các thao tác Core ML hiện có.

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

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

  • Yêu cầu hệ điều hành mới: Framework công khai nhắm đến thế hệ iOS 27 và macOS 27, trong khi Core ML hỗ trợ phạm vi thiết bị đã cài đặt rộng hơn nhiều.
  • Phần mềm beta: Framework Core AI của Apple và một số thành phần trong bộ công cụ Python vẫn đang ở giai đoạn sơ bộ và có thể thay đổi trước khi phát hành ổn định.
  • Môi trường export hạn chế 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, hẹp hơn nhiều so với phạm vi 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 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 yêu cầu phần cứng Apple.
  • SDK Ultralytics hỗ trợ theo lựa chọn, 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 trong toàn bộ pipeline chứ không vượt trội; suy luận ngữ nghĩa, độ sâu và chỉ dùng CPU chậm hơn, còn tài sản FP16 có kích thước tải xuống lớn gần gấp đôi. Vì vậy, SDK iOS và plugin Flutter vẫn đặt Core ML làm mặc định.
  • Dùng raw head cho SDK: Với nms=False, YOLO26n mất thời gian trên Core AI gần gấp đôi so với Core ML (3.06 so với 1.53 ms trong một lượt so sánh), còn model pose đầu-cuối FP16 không phát hiện được đối tượng với vị trí mặc định của Core AI trên iOS 27.0 (apple/coreai-torch#115). Raw head (nms=None, mặc định) khắc phụ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 di chuyển ứng dụng: Không thể thay .aimodel bằng .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 nằm ngoài các SDK Ultralytics.
  • 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 ma trận tác vụ YOLO và thiết bị được hỗ trợ.
  • Không có pipeline NMS: Core ML có thể đóng gói một bước NMS cho các model detect YOLO cũ hơn. Theo mặc định, Core AI export dự đoán raw one-to-many; dùng nms=False cho head không 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ị export được trace tại một imgsz và không có shape động, vì vậy hãy dự đoán ở kích thước được dùng khi export.
  • Tài sản FP16 có thể khiến tiến trình bị dừng khi tải: Một số tài sản FP16 .aimodel không tải được chương trình Apple Neural Engine và MPSGraph phát sinh lỗi xác nhận 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. Sự cố xảy ra bên trong runtime của Apple, trước khi bất kỳ mã Ultralytics nào chạy; cùng tài sản đó tải được khi chuyên biệt hóa chỉ dùng CPU. Hãy chuyển sang FP32 nếu gặp sự cố này; các tài sản SDK FP16 được kiểm tra trên iPhone 17 Pro (mọi model nano, detect ở mọi kích thước và model lớn nhất của từng tác vụ) đều tải được mà không khiến tiến trình bị dừng.

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

Dùng Core ML ngay hôm nay khi bạn cần:

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

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

  • Runtime mạng nơ-ron trên thiết bị mới nhất của Apple
  • Quản lý bộ nhớ đệm và chuyên biệt hóa rõ ràng
  • Thực thi model động hoặc có trạng thái nâng cao
  • Thao tác Core AI hoặc kernel Metal tùy chỉnh
  • Gỡ lỗi đồ thị Core AI chi tiết và profiling 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. Việc hỗ trợ Core AI không loại bỏ ngay nhu cầu sử dụng Core ML vì mục tiêu triển khai và giao diện ứng dụng của hai framework khác nhau.

Lộ trình Ultralytics#

Mục tiêu export chuyên biệt coreai đã được triển khai: hoạt động export và xác thực số học bao phủ các model 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ực tiếp trên thiết bị. Các hạng 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. Thu hẹp khoảng cách độ trễ đầu-cuối của head trên Apple Neural Engine (apple/coreai-torch#66) và khắc phục các vấn đề về tính đúng đắn trên Neural Engine (apple/coreai-torch#115, #116).
  2. Tài sản Core AI INT8 và lượng tử hóa bảng màu; tài sản SDK dùng FP16, có kích thước tải xuống lớn gần gấp đôi tài sản Core ML INT8.
  3. Các 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 ở giai đoạn beta).
  4. Benchmark bộ nhớ, điện năng và thời gian chuyên biệt hóa trên ma trận thiết bị được hỗ trợ.

SDK Ultralytics iOS và plugin Flutter hỗ trợ tải Core AI theo lựa chọn trên iOS 27 trở lên; Core ML vẫn là mặc định và là mục tiêu đượ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 để cập nhật các hạng 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 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 Ultralytics iOS và Flutter tải model này theo lựa chọn trên các thiết bị iOS 27. Đối với quy trình mặc định của SDK và các hệ điều hành cũ hơn thế hệ này, hãy export tệp Core ML .mlpackage bằng format="coreml".

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

  • Không. Hai định dạng chứa các biểu diễn model khác nhau và được tải bằng những framework khác nhau. Quá trình chuyển đổi phải bắt đầu từ model nguồn thông qua bộ công cụ Apple phù hợp.

  • 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 phụ thuộc vào mức độ phổ biến của hệ điều hành, công cụ ổn định và hiệu năng trên thiết bị.

Người đóng góp

Bình luận