โ—ง ANE Knowledge Base
EN ES

Chapters ยท 08

WWDC Timeline: Core ML Evolution 2022โ€“2025

Part of the ANE Knowledge Base. Sources: WWDC session pages on developer.apple.com/videos (fetched 2026-07-12; details below are summaries of the official sessions, with session numbers for verification).

This doc tracks what Apple shipped for Core ML at each WWDC from 2022 to 2025 โ€” the platform context in which every technique in this KB lives. Read it as the "official API timeline" that parallels the optimization story of docs 02โ€“07. For the 2026 discontinuity (Core AI), see doc 09.

At a glance#

Year Key sessions Headline features coremltools
2022 10027 โ€” Optimize your Core ML usage Performance reports in Xcode 14, Core ML + Neural Engine Instruments, .cpuAndNeuralEngine, native Float16 I/O, output backings, first weight compression ct 6
2023 10047 โ€” Model compression, 10049 โ€” Async prediction ct.optimize (palettize/prune/quantize), training-time compression, JIT weight decompression on ANE (iOS 17), async prediction API, compute availability API ct 7
2024 10159 โ€” Bring your ML & AI models to Apple silicon, 10161 โ€” Deploy on-device with Core ML, 10223 โ€” Explore ML on Apple platforms Stateful models (MLState), multifunction models, MLTensor, per-grouped-channel palettization, int4 per-block quantization, fused SDPA (iOS 18), calibration-based compression ct 8
2025 360 โ€” Discover ML & AI frameworks (umbrella; no dedicated Core ML session) Foundation Models framework, MLX sessions (298, 315), Core ML: model-architecture visualization in Xcode, better inspection; BNNS Graph Builder โ€”

WWDC22 โ€” the observability year#

Session 10027 "Optimize your Core ML usage" delivered the tooling this KB's workflow doc depends on:

  • Performance reports (Xcode 14 โ†’ Performance tab): per-op compute-unit dispatch + median load/prediction times, no code needed. This is the tool Apple's own ml-ane-transformers README points to (doc 05).
  • Core ML Instrument + Neural Engine Instrument: live profiling lanes (activity/data/compute) โ€” the first public visibility into when the ANE is actually running.
  • MLModelConfiguration.computeUnits = .cpuAndNeuralEngine: new option to keep the GPU free (and to force-detect GPU fallbacks โ€” argmaxtools later uses CPU_AND_NE as its test default, doc 06 ยง8).
  • Native Float16: Float16 MLMultiArrays and one-component-16 pixel buffers as model I/O (iOS 16) โ€” no more app-side up/down-casting around an FP16 engine.
  • Output backings + IOSurface-backed buffers: preallocate outputs, zero-copy across compute units on unified memory.
  • First weight compression: 16/8-bit quantization + sparse representation for ML Programs (coremltools 6) โ€” size-only at this point.
  • In-memory model init (custom encryption) and Swift Package model bundling.

WWDC23 โ€” the compression year#

Session 10047 introduced the ct.optimize toolbox that this KB documents in depth (doc 07):

  • Three techniques, two workflows: palettization / pruning / linear quantization, each available post-training (ct.optimize.coreml, fast, data-free) or training-time (ct.optimize.torch, differentiable โ€” e.g. DKM palettization) โ€” with the demonstrated rule of thumb that 2-bit post-training fails where 2-bit training-time holds accuracy.
  • The runtime made compression a latency feature: on iOS 17+ the ANE decompresses weights just-in-time, so lower-bit weights = less memory traffic = faster in bandwidth-bound regimes (measured: ~5โ€“30% for 4-bit palettization, up to 75% for sparse models on iPhone 14 Pro Max). This is the official confirmation of Principle 4 economics (doc 02) โ€” on iOS 16 decompression was ahead-of-time and gained nothing.
  • Session 10049: async prediction (thread-safe, cancellable, ~2ร— throughput in the demo), model lifecycle/caching explained ("prepare and cache" = device specialization), MLModel.availableComputeDevices to detect ANE presence at runtime.

WWDC24 โ€” the generative-AI year#

The biggest Core ML release of this period (coremltools 8), aimed squarely at transformers:

  • Stateful models: register_buffer + ct.StateType โ†’ KV caches live inside the model and update in-place; Swift consumes them via MLState. Demonstrated 1.6ร— decode speedup on Mistral-7B (M3 Max). This is exactly the StatefulKVCachedAttention path in argmaxtools (doc 06 ยง4).
  • Multifunction models: several functions sharing deduplicated weights in one .mlpackage (adapters, multi-shape variants) โ€” used by argmaxtools' CoreMLMultifunctionTestsMixin.
  • MLTensor: NumPy-like tensor ops in Swift dispatched to Apple silicon โ€” eliminates hand-written glue (decoding loops, sampling) between models.
  • Compression granularity jump: palettization per_grouped_channel (Stable Diffusion 5 GB โ†’ 1.3 GB at 4-bit), int4 per-block quantization (Mistral-7B 13 GB โ†’ <4 GB), sparse+palettized/quantized combos, and a calibration-based middle workflow (~128 samples) between data-free and fine-tuning.
  • Fused SDPA: with minimum_deployment_target=iOS18, attention converts to a single fused op โ€” the first sign that hand-decomposed attention (Apple 2022-style) was becoming the runtime's job rather than the author's.
  • Performance-report upgrades: per-op estimated time, "unsupported on this compute device" hints, run comparison.

WWDC25 โ€” the plateau (and the pivot)#

  • No dedicated Core ML session. The umbrella session (360) placed Core ML as the deployment layer in a stack now headlined by the Foundation Models framework (built-in on-device LLM with guided generation) and MLX (research/fine-tuning on Apple silicon, sessions 298/315).
  • Core ML improvements were incremental: full model-architecture visualization in Xcode's model viewer and richer latency/dispatch inspection.
  • In hindsight, the quiet year preceded the platform replacement announced at WWDC26 (doc 09): Core AI.

How this timeline maps to the KB#

Platform feature (year) Where the KB uses it
Performance reports / Instruments (2022) Doc 05 verification workflow
.cpuAndNeuralEngine (2022) argmaxtools TEST_COMPUTE_UNIT (doc 06)
Float16 I/O (2022) argmaxtools TEST_COREML_IO_FLOAT_DTYPE = np.float16
ct.optimize palettization (2023) Whole of doc 07; argmaxtools Palettizer builds on it
JIT weight decompression on ANE (2023) Why compression is a latency win (P4, docs 02/07)
Stateful models / MLState (2024) StatefulKVCachedAttention (doc 06 ยง4)
Multifunction models (2024) Variable-shape export (doc 06 ยง8)
Per-grouped-channel / int4 (2024) whisperkittools --palettization-group-size (doc 07)
Fused SDPA (2024) Precursor of Core AI's composite-op approach (doc 09)
MLComputePlan (coremltools 8.1, 2024 era) Programmatic ANE-dispatch verification (doc 06 ยง8)

The through-line: from 2022 to 2024 the platform steadily absorbed what expert users were hand-building โ€” observability (2022), compression (2023), KV caches, fused attention and multi-model packaging (2024) โ€” and in 2026 that absorption became a new framework (doc 09).

Generated from the knowledge base markdown โ€” every claim traces to a cited source.