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.
| Completed | 30/50 | 49/50 |
| Total tool calls | 222 | 67 |
| Mean calls/run | 4.44 | 1.34 |
| Max calls/run | 22 | 2 |
| Verified outputs | 75.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
SystemLanguageModelsession 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?