Foundation Models tool-calling differs significantly between iPhone 16 and iPhone 17 Pro Max

I'm seeing a reproducible difference in Foundation Models behavior between an iPhone 16 and iPhone 17 Pro Max, both running iOS 27.0 beta 6.

My pipeline is roughly:

Input → model generation → tool call → validation/correction → structured output

Each test starts with a fresh model session.

I run the same 50-case dataset on both devices with the same app build, prompt, tool, data, and execution order.

The main difference is not just speed: the iPhone 16 consistently makes many more tool calls, which causes the session context to grow until some runs exceed the available context window.

Both devices report a context size of roughly 4,096 tokens.

MetriciPhone 16iPhone 17 Pro Max
Completed30/5049/50
Total tool calls22267
Mean calls/run4.441.34
Max calls/run222
Verified outputs75.1%91.0%

The pattern is very consistent across repeated runs. On the 17 Pro Max, most requests converge after 1–2 tool calls. On the iPhone 16, some requests enter longer tool/correction loops and eventually fail because the context grows too large.

I can probably mitigate this by limiting tool calls or changing the prompt, but I'd like to understand the underlying behavior.

Is this difference expected across supported devices even on the same OS version?

In particular:

  • Can different on-device model variants be used depending on hardware?
  • Is there a way to determine which model/profile a SystemLanguageModel session is using?
  • Should tool-selection behavior be expected to remain reasonably consistent across devices?
  • Would this be worth filing as a Foundation Models regression during the beta?

Update: I think I found the main reason. SystemLanguageModel.variant shows the iPhone 16 using .core3 with a 4K context, while the iPhone 17 Pro Max uses .coreAdvanced3 with 8K. Same OS, but not the same model.

Apple says Core Advanced is a sparse 20B model that activates 1–4B parameters depending on the task. It was much more precise with tool calls in my tests: 98% completion versus 60% on Core. I couldn’t find an API showing which experts or how many parameters are active per request.

Also, from what I've found is that Core Advanced isn’t limited to the 17 Pro Max, it seems like Apple lists iPhone Air and iPhone 17 Pro as supported too. Most other iPhones still use Core.

Apple’s latest model overview

Foundation Models tool-calling differs significantly between iPhone 16 and iPhone 17 Pro Max
 
 
Q