Posts under Machine Learning & AI topic

Post

Replies

Boosts

Views

Activity

Pending Private Cloud Compute entitlement: status and account conversion questions
I submitted a Private Cloud Compute entitlement application around October 17, 2026 for Konote, App Store Connect app ID 6823726856. It is still pending. I've also submitted Feedback: FB25522199. We're enrolled in the App Store Small Business Program and are far below two million first-time downloads, with only TestFlight testers so far. We meet the published eligibility criteria on those points. Konote records and transcribes meetings on device, and audio is never sent to us or any AI service; when iCloud sync is enabled, audio syncs only to the user's own devices with end-to-end encryption. We plan to use PCC for long meeting summaries because hour-long transcripts exceed the on-device model's context window; PCC is central to our planned release's privacy design. My individual-to-organization membership conversion, submitted around October 20, is also pending. Could you confirm whether the entitlement application is queued or missing information, and whether a technical explanation would help? I'd also appreciate confirmation of whether the pending conversion blocks review and whether I need to resubmit after it completes. Eric
0
0
162
15h
Siri ability to add content to the clipboard
I am wondering if the new beta Siri AI is or will be able to add various content to the user's clipboard. With Shortcuts we can, Siri itself suggests using Shortcuts, but in the Siri app (on Mac 27.3 dev beta) it does not seem to be available. For more context, I am struggling to give Siri a schema for putting images from Siri chat into my app Update: it does not seem to be done with Freeform either
2
0
195
17h
Recognizing Handwritten Mathematics with the On-Device Language Model
Hello, I'm currently working on an iPad app that combines the flexibility of handwritten notes with advanced mathematical computation, including linear algebra, calculus, and solving systems of equations. One of its core features is to recognize handwritten mathematical notation and converting it into a structured representation that can subsequently be parsed and evaluated. For this, I want to use the SystemLanguageModel() together with Guided Generation. My approach I created a custom set of "MathToken" enums using @Generable. The idea is to let the model recognize mathematical handwriting and directly return an array of these tokens. The tokens represent both basic mathematical elements (integers, identifiers, operators, etc.) and more complex structures such as matrices, vectors, function applications, derivatives, integrals, and systems of equations. The resulting tokens are then passed to a parser, which constructs a structured statement that can eventually be evaluated. For handwriting input, I exported the relevant content from PaperKit/PencilKit as a UIImage and attached it to the LanguageModelSession. I've attached both the MathToken definition and my current prompting approach. The problem Unfortunately, the recognition accuracy is not yet sufficient for a reliable user experience. I've experimented with different prompting strategies: Very short and general instructions. More detailed descriptions what to watch for Explicit rules explaining when each token should be used However, none of these approaches has significantly improved the results. The model frequently selects tokens that contradict the instructions it was given. Some examples: The model sometimes generates an identifier containing a number instead of using integer or real. Instead of using structured tokens like functionApplication, it uses identifiers and parentheses instead For ordinary multiplication, such as 3 × 5, it sometimes generates the product token, which is specifically intended for mathematical product notation (capital Pi). These are not ambiguous cases. I've explicitly described the distinctions in my instructions, yet the model still makes these mistakes. I'm aware that prompting and model context size have their limitations, so I'm trying to understand whether my overall approach is appropriate. Questions Prompting: Is there a better way to guide the model towards consistently selecting the correct enum cases? Guided Generation: Is an enum with many associated values and recursively nested [MathToken] arrays a suitable structure for Guided Generation? Could the complexity or structure of my MathToken definition itself be contributing to the problem? How could a more suitable structure look like (which I could transform into the MathTokens)? Model capabilities: Is recognizing handwritten mathematics and mapping it directly to such a structured representation simply too complex a task for the on-device model in its current form? Architecture: Could this problem benefit form splitting it into multiple stages? What stages would you recommend? I'd be particularly interested in understanding whether there are any known limitations or recommended patterns when using Guided Generation for tasks involving complex, recursively structured output. I've included my current implementation and the MathToken definition below/attached for context. Thank you for your time and any suggestions!
2
0
48
17h
Adding MCP and connector support to your own Foundation Models apps
Circling back on the LocalLM Lab arc. With v0.7, we've moved from prompt experimentation into real app development on Apple's Foundation Models local AI. The LocalLM Lab SDK lets you build that same on-device model and MCP client this thread has covered directly into your own app, with real tool and data access (Slack, Todoist, GitHub, Notion, Linear, plus Calendar, Reminders, Contacts and Location). And you can ship your app including through the Mac App Store. This is a big improvement over version 0.6, where the localai-cli toolkit needed LocalLM Lab installed and running. On the other hand, the SDK (LocalLMLabSDKCore) doesn't relay through anything; it links FoundationModels and a real MCP client directly into your own binary and is totally self-contained. The example included in the SDK, Plate Today, has actually been built into a sandboxed test app and verified working, with a signed path to a Mac App Store .pkg (Apple Distribution signing + provisioning profile pipeline). That's "verified signable and sandbox-compatible," to be precise. Entitlements (from personal experience: always a complicated topic): com.apple.security.app-sandbox + com.apple.security.network.client for the app itself, plus the standard personal-information entitlements per connector used (com.apple.security.personal-information.calendars, .addressbook, .location) and matching NS*UsageDescription strings in Info.plist. The one worth flagging specifically: the network entitlement is easy to miss and fails silently rather than throwing. Without it, MCP connections and Weather calls just hang with no error surfaced. OAuth handling requires the app delegate callback (application(_:open:)), not SwiftUI's .onOpenURL. Worth knowing before wiring it up if you're SwiftUI-only. Full entitlements list + SDK guide: https://github.com/ancientcomputing/locallm/blob/main/docs/sdk-guide.md Feature page: thisbrain.ai/locallm/sdk.html I hope the availability of the SDK (free, Apache 2.0 license) will give folks further incentive to explore local AI-enabled applications on the Mac. What else would you want to do that the SDK doesn't currently support? File picker? Calendar/Reminders/Contacts edits & writes?
8
1
4.5k
19h
Batch or bulk update
Let me ask someone at Apple, is it okay in this beta phase if Siri cannot handle bulk/batch actions well, or I need to refine me code? I managed to have Siri add multiple records at once (feels magic), but updating fields on multiple records seems unachievable for me. With typing "next, next, next" Siri finally updates everything, but the goal is to process one single batch request. Thank you!
0
0
32
21h
MAC Studio Clustering
Hello , We are planning to deploy an 8-node Mac Studio M5 Ultra cluster for distributed AI computing and would appreciate technical guidance on the recommended architecture, Thunderbolt 5 connectivity, and software configuration. I have reviewed Apple's WWDC26 demonstration of distributed inference and training using MLX, which features four Mac Studios. We would like to understand how best to extend this architecture to eight nodes. We would appreciate guidance on the following: Cluster Architecture and Thunderbolt 5 Connectivity Is it possible to configure all eight Mac Studios as a single distributed AI compute cluster using MLX? What Thunderbolt 5 topology is recommended for eight nodes: ring, partial mesh, or another configuration? Our proposed design includes 14 Thunderbolt 5 cables. Can all 14 be effectively utilized, or would a different cabling arrangement be more appropriate? Is there a recommended port-to-port cabling diagram or reference architecture for an eight-node configuration? Can multiple Thunderbolt 5 links between neighboring Macs be utilized to improve communication performance? Are there example configuration files, commands, or implementation guides for establishing and validating an eight-node cluster? Networking and Storage Is it appropriate to use Thunderbolt 5 for inter-node communication while using a separate 10GbE network and shared NAS for model and dataset storage? Are there any configuration considerations when using both network types simultaneously? My primary concern is establishing the correct Thunderbolt 5 topology and software architecture before implementation, particularly whether the proposed 14-cable arrangement is appropriate for eight nodes. Any guidance, reference architecture, cabling examples, or links to relevant technical documentation would be greatly appreciated. Thank you.
1
0
55
1d
Reading Focus status in a macOS utility: communication entitlement triggers ITMS-90894
I maintain Time Out, a macOS break-reminder app. An optional scheduling rule skips breaks while Focus is active, avoiding interruptions during focused work. I’m trying to establish the supported way to read Focus status for this purpose and resolve an App Store Connect warning. Focus detection Our legacy Do Not Disturb/Focus observer worked on macOS 26. In testing on macOS 27, it continued to report Focus as inactive and no longer received the expected state-change notifications. I restored detection using INFocusStatusCenter. The app: Includes NSFocusStatusUsageDescription, explaining that access is used to skip breaks while focused. Requests authorization when an enabled scheduling rule needs Focus status. Reads INFocusStatusCenter.default.focusStatus.isFocused once authorized. Without the com.apple.developer.usernotifications.communication entitlement, authorization reached .authorized, but isFocused returned false while Focus was active. Adding the entitlement made detection work in the tested configuration, and Time Out correctly skipped the break. I also reset Focus-status permission and verified the authorization flow again. App Store Connect warning With that entitlement present, uploading succeeds, but Xcode and the subsequent email report ITMS-90894: Missing Info.plist value. The warning says that apps with the communication entitlement must declare either INSendMessageIntent or INStartCallIntent in the NSUserActivityTypes array. Time Out does not provide person-to-person messaging or calling, send communication notifications, or share Focus status with other people. It only uses the status locally to decide whether to present a break, so declaring either intent seems inappropriate. Questions Is INFocusStatusCenter supported for a macOS utility that uses Focus status solely to suppress its own interruptions? Is the communication entitlement required for that use? If not, is there another supported API or configuration? If this use is supported, how should the app resolve ITMS-90894 without declaring messaging or calling functionality it doesn’t provide? Is authorization succeeding while isFocused reports false without the entitlement expected behavior, or should I file a Feedback report? Does isFocused indicate that a Focus is active generally, or that the current Focus silences notifications specifically for the requesting app? Has anyone implemented this successfully in a Mac App Store utility, or can someone from Apple clarify the intended approach?
1
0
107
1d
Neural Engine compiler fails ("Graph traversal failure", Code=22) on a slice of a concat; the model silently falls back to the CPU
Environment: Mac mini, Apple M2 Pro (Mac14,12), macOS 27.2 (26B123). coremltools 9.0, mlprogram, iOS17 target. Disclosure. I used AI to find and triage this: to bisect the model, isolate the pattern and draft this post. The reproducer and every result above were run on the machine described. Summary. I load the model with computeUnits = .cpuAndNeuralEngine. If the program slices a concat's output along the last axis (slice_by_index) and then joins the slice with other tensors (concat or stack), the Neural Engine compiler refuses the program. MLModel still loads without an error, but runs every operation on the CPU. On a large model, a streaming speech encoder, this costs: a load of 20 s to 6 minutes, at every launch; 1.1 to 1.8 GB of extra memory, because the weights are copied to float32; inference about 15 times slower. MLComputePlan puts 0 of the model's 1,674 operations on the Neural Engine. If the program computes the same values without slicing the concat, the compiler accepts it, and the whole model runs on the Neural Engine. The pattern is common. It is the cache update of a streaming convolution: next_cache = concat(cache, x)[..., -K:]. Reproducer. The script needs coremltools 9.0. It writes refused.mlpackage, or fixed.mlpackage with --fix: import sys import numpy as np import coremltools as ct from coremltools.converters.mil import Builder as mb from coremltools.converters.mil.mil import types from coremltools.converters.mil.mil.passes.pass_pipeline import PassPipeline N, C, T, K = 24, 1024, 7, 8 # layers, channels, new frames per step, cached frames FIX = "--fix" in sys.argv rng = np.random.default_rng(0) W = [(rng.standard_normal((C, 1, K + 1)) * 0.1).astype(np.float16) for _ in range(N)] @mb.program(input_specs=[mb.TensorSpec(shape=(1, N, C, K), dtype=types.fp16), mb.TensorSpec(shape=(1, C, T), dtype=types.fp16)], opset_version=ct.target.iOS17) def prog(cache, x): v = mb.transpose(x=cache, perm=[1, 0, 2, 3]) outs, h = [], x for i in range(N): c = mb.slice_by_index(x=v, begin=[i, 0, 0, 0], end=[i + 1, 1, 0, 0], end_mask=[False, False, True, True], squeeze_mask=[True, False, False, False]) # [1, C, K] new = mb.concat(values=[c, h], axis=-1) # [1, C, K+T] if FIX: # the same values, without cutting the concat o = mb.concat(values=[mb.slice_by_index(x=c, begin=[0, 0, T], end=[1, C, K]), h], axis=-1) else: # the next cache: the last K columns of the concat (start 7, width 8) o = mb.slice_by_index(x=new, begin=[0, 0, T], end=[1, C, T + K]) outs.append(o) h = mb.conv(x=new, weight=W[i], groups=C, pad_type="valid") # [1, C, T] return mb.transpose(x=mb.stack(values=outs, axis=0), perm=[1, 0, 2, 3]), h pipe = PassPipeline.EMPTY # keep the ops as written pipe.append_pass("common::dead_code_elimination") m = ct.convert(prog, convert_to="mlprogram", minimum_deployment_target=ct.target.iOS17, pass_pipeline=pipe, compute_precision=ct.precision.FLOAT32) m.save("fixed.mlpackage" if FIX else "refused.mlpackage")How to see the failure. Start the log, then load each model with .cpuAndNeuralEngine: log stream --level info --predicate 'process == "ANECompilerService"'refused: the log shows allocation hint propogation fails …, MirInfo propogation fails … and Calling ANE compiler done ret(22). The model then runs on the CPU, and MLComputePlan shows no Neural Engine operations. fixed: the log shows ret(0), and the model runs on the Neural Engine. With private data logging on, the compiler names the operation: allocation hint propogation fails in y and MirInfo propogation fails in y/src, then Compiler internal error: Graph traversal failure (target h14g). Here y is the concat that joins the slice, and y/src is the slice. What causes the failure. I changed one property at a time. The compiler fails only when all four conditions hold: a slice_by_index slices a concat's output along the last axis; the slice starts at an offset that is not a multiple of 8 elements (here 7); the slice's width is a multiple of 8 but not of 32 (here 8); a concat or stack then joins the slice with other tensors. These cases compile: starts 0, 8, 16, 24 and 32, and widths 1, 2, 4, 9, 12, 31, 32, 33 and 64. The result does not depend on the number of channels (1 to 1,024), the number of layers or slices (2 to 24), or the weights. Slicing the inputs instead (--fix) compiles. I applied the rewrite to a real model that has this pattern in 24 layers. On the CPU, its outputs are identical to the original's. On the Neural Engine, its word error rate is the same as the original model's on the CPU. Questions. Is this a known limitation of the M2-generation (h14g) compiler, or a bug? Other reports describe similar "propogation" or register-allocation failures on M2- and M3-family chips, with streaming encoders that compile on M5. Could Core ML report the refusal instead of silently loading the model on the CPU? Today the only signals are the log and the memory footprint. Core ML does not cache the failed compile, so every launch repeats it. Is there a recommended way to write a streaming cache update for the Neural Engine?
0
0
19
2d
Siri AI tools: how do I make an App Intent available to Siri but not listed in Shortcuts?
With the Siri AI Developer Preview in iOS 27.3 beta 1, we are exposing custom intents to Siri as tools with @AppIntent(.tool). Some of these only make sense for Siri, for example a read-only status tool whose result Siri phrases as an answer, or variants that would duplicate existing Shortcuts actions. Our app already has a long list of Shortcuts actions, so we would like these tools to be available to Siri AI without appearing as actions in the Shortcuts app. @available(iOS 27.3, *) @AppIntent(.tool) struct GetStatusIntent: AppIntent { static let title: LocalizedStringResource = "Get Status" @Parameter(title: "Item") var item: ItemEntity func perform() async throws -> some IntentResult & ReturnsValue<StatusEntity> { // ... } }What we have tried on iOS 27.3 beta 1: static let isDiscoverable = false hides the action from Shortcuts, but Siri then never called the tool and used a different one instead. Conforming to DeprecatedAppIntent while keeping it discoverable also hides the action, but Siri stopped calling the tool over repeated attempts. Removing the deprecation brought it straight back. isAssistantOnly would describe what we want, but it only exists on AssistantSchemaIntent, and combining .tool with a Siri-supported schema is a build error. ToolIntent itself has no requirements in the 27.3 SDK. IntentVisibility only applies to entity properties, and .internal hides the property from Siri as well. Questions: Is there a supported way to make an intent available to Siri AI while keeping it out of the Shortcuts action list? Is it intended that isDiscoverable = false and DeprecatedAppIntent also make a tool unavailable to Siri AI? If there is no such option today, is one planned, and is there a feedback number we should reference? Related question about schema intents: https://developer.apple.com/forums/thread/838658 Thanks!
1
8
181
2d
Core Spotlight Semantic Search - still non-functional for 1+ year after WWDC24?
After more than a year since the announcement, I'm still unable to get this feature working properly and wondering if there are known issues or missing implementation details. Current Setup: Device: iPhone 16 Pro Max iOS: 26 beta 3 Development: Tested on both Xcode 16 and Xcode 26 Implementation: Following the official documentation examples The Problem: Semantic search simply doesn't work. Lexical search functions normally, but enabling semantic search produces identical results to having it disabled. It's as if the feature isn't actually processing. Error Output (Xcode 26): [QPNLU][qid=5] Error Domain=com.apple.SpotlightEmbedding.EmbeddingModelError Code=-8007 "Text embedding generation timeout (timeout=100ms)" [CSUserQuery][qid=5] got a nil / empty embedding data dictionary [CSUserQuery][qid=5] semanticQuery failed to generate, using "(false)" In Xcode 16, there are no error messages at all - the semantic search just silently fails. Missing Resources: The sample application mentioned during the WWDC24 presentation doesn't appear to have been released, which makes it difficult to verify if my implementation is correct. Would really appreciate any guidance or clarification on the current status of this feature. Has anyone in the community successfully implemented this?
7
5
4.3k
3d
iOS 27.3 beta: Apple Intelligence works in system UI, but Foundation Models returns deviceNotEligible on a mainland China iPhone Duo
Hello Apple team, After updating an iPhone Duo purchased in mainland China to iOS 27.3 beta, Apple Intelligence appears to be available at the system level: Apple Intelligence is visible in Settings. Pressing and holding the side button successfully activates the system assistant. The multicolored glow appears around the edges of the screen while using it. However, when developing an app using the Foundation Models framework, the on-device model reports that this device is not eligible, and an actual generation request is also rejected. Environment Physical device: iPhone Duo (iPhone19,4) iOS version: 27.3 beta OS build: 24C5037i Build toolchain: Xcode 27.1 / iPhoneOS 27.1 SDK Diagnostic app deployment target: iOS 26.0 Developer Mode: enabled Reported locale: zh-Hans_HK Minimal reproduction We built and installed a separate, minimal diagnostic app to rule out our main app’s business logic. It reads the model availability and attempts one request containing only synthetic test text: let model = SystemLanguageModel.default print(model.availability) print(model.supportsLocale(Locale(identifier: "zh_CN"))) do { let session = LanguageModelSession( instructions: "Reply briefly. This is a synthetic device diagnostic." ) let response = try await session.respond(to: "Reply with OK.") print(response.content) } catch { print(String(reflecting: type(of: error))) print(String(describing: error)) }Results on the physical device availability: unavailable( FoundationModels.SystemLanguageModel.Availability .UnavailableReason.deviceNotEligible ) supportsLocale(zh_CN): true error_type: FoundationModels.SystemLanguageModel.Error error: This device does not support Apple Intelligence.The availability remains deviceNotEligible after the request. Could you please clarify: Does the mainland China Apple Intelligence rollout in iOS 27.3 beta include third-party access to the on-device model through Foundation Models? Is this a known issue or an expected limitation of this beta? Is building with Xcode 27.3 / the iOS 27.3 SDK required for this access? Does enabling the Qwen extension affect Foundation Models eligibility, or is that extension independent of SystemLanguageModel.default? We can provide the minimal diagnostic project and additional diagnostics if needed. Thank you.
0
0
258
3d
AppIntents and Siri AI
I had a complete voice-only experience working with AppIntents and AppShortcuts on iOS 27.0 prior to enabling Siri AI. Once I enabled Siri AI, Siri refused to recognize any of the donated phrases in one particular AppShortcut. It still worked for several others. For the AppShortcut that no longer works, Siri responds to some of the phrases claiming the app doesn't support that action through Siri, and Siri responds to some of the phrases telling me I need to open the app to do that. FB24854409 includes a Sysdiagnose file. Note that I'm aware of App Schemas, but none apply well to my app.
1
1
505
4d
ToolIntent experience on watchOS
ToolIntent is currently marked unavailable on watchOS. (FB25455121) When Siri is invoked on Watch, what behavior(s) can users expect when invoking ToolIntents declared in our paired iOS codebase? Example use case: At their gym, a user leaves their iPhone face down nearby. To Siri on their Watch, they say "I just did 350 lbs 8 reps to failure" or "Rest for 3 minutes" or "Hack squat machine is busy, let's jump to the next exercise". If it matters, we benefit from extended background runtime via a mirrored live HKWorkout between our watch app and iPhone app (which displays a Live Activity).
0
0
253
5d
What can @Property(visibility: .internal) do that a plain var can’t?
Hello, My understanding is that @Property(visibility: .internal) makes an AppEntity field available to the app and its extensions through App Intents while hiding it from Siri and Shortcuts. But both the app and its extensions can already read a plain Swift property on a CatEntity instance they’ve loaded. // Plain Swift property var internalNote: String // Internal App Intents property @Property(visibility: .internal) var internalNote: StringWhat does the annotation enable in practice that a plain Swift property doesn’t?
0
0
248
5d
On-device specialization of ahead-of-time compiled Core AI LLM bundles preallocates 35 GB and crashes the app
I am shipping Core AI language models in an App Store app and have followed the ahead-of-time compilation workflow from WWDC26 session 326 and the article "Compiling Core AI models ahead of time". The remaining on-device specialization step is unusable for LLM exports, and I would like to know whether there is a supported way around it. Setup Models are exported with the coreai-models recipes and compiled with coreai-build for the Neural Engine: uv run coreai.llm.export Qwen/Qwen3-0.6B --platform iOS --compression-config models/qwen3/qwen3_0_6b_mixed_4bit_8bit.yaml xcrun coreai-build compile <model>.aimodel --platform iOS --architecture h18pThe compiled .aimodelc bundles are hosted remotely, one per architecture, and selected at runtime with AIModel.deviceArchitectureName. Loading uses CoreAILanguageModel(resourcesAt:) and FoundationModels.LanguageModelSession. Xcode 27.1 (27A9275), coreai-build 3600.83.1, coreai-models cc3c234, iPhone 17 Pro. The published bundles are public for reproduction: https://huggingface.co/333i/qwen3-0.6b-coreai-ios https://huggingface.co/333i/smollm2-1.7b-coreai-ios What happens on device Each compiled bundle carries its 30 Neural Engine regions (extend and prompt_opt, contexts 256 to 4096, query sizes 8, 16 and 64) as .mlir.bc under main-h18p-delegates/MPSGraph. On first load, ANELargeModelCompilerService compiles all 30 on the device. Qwen3 0.6B: the first reply takes over two minutes. Later launches load from the cache in about eight seconds. SmolLM2 1.7B: the compile fails after about a minute. The device reported 56 GB free. Freeing 20 GB more moved the failure from 33.6 GB to 35.5 GB. ANELargeModelCompilerService Convert 27/30 procedures of ANEHLO task 308/7012 ANELargeModelCompilerService ANECompiler internal error: temp file: F_PREALLOCATE failure (35500589056 bytes) -> (35511074816 bytes): No space left on device ANELargeModelCompilerService Caught ZinException kernel ERROR: [ANELargeModelCompilerService:61615] FATAL exception: type=0x1 reason=0x25 code=0x106 aned Could not create connection to com.apple.ANELargeModelCompilerService MPSGraphANEUtils.mm:1033: Error = Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.apple.ANELargeModelCompilerService" MPSGraphANEUtils.mm:1038: ANE compile failed! MPSGraphExecutable_Project.h:510: failed assertion `could not load module from MPSGraphPackage'The assertion terminates the app. No error reaches the load call, so there is no way to fall back or tell the user what happened. Compiling the same export with --preferred-compute gpu avoids the Neural Engine compiler but allocates roughly 0.5 GB of GPU memory per compiled function at load time. The 0.6B model reaches a 17 GB footprint at 4096 context on a Mac and is killed by Jetsam at about 6 GB on iPhone 17 Pro. What I have ruled out The ahead-of-time workflow is followed as documented. The article states that the compiled asset still requires some specialization on the device, and for these exports that residual step is the Neural Engine compile described above. coreai-build compile --help offers no option to generate the Neural Engine executables on the build machine. The failure reproduces on the October 18 runtime and on coreai-models cc3c234. Disk space is not the limit in practice. The compiler preallocates more than 30 GB of temporary storage for a 1.7B model, which no production device can be expected to provide. Related reports apple/coreai-models issue 387 (this failure, open since October 27 with no response): https://github.com/apple/coreai-models/issues/387 apple/coreai-models issue 406: a 0.6B export measured at roughly 600 seconds per specialization on iPhone 16 Pro Max, with Jetsam kills during specialization on a current-toolchain export. apple/coreai-models issue 205: coreai-build exits 0 and writes a GPU-only bundle when offline Neural Engine compilation fails, with an empty ErrorList. The Gemma 4 README in coreai-models states that ahead-of-time compilation is not supported for that model on the Xcode 27.2 beta toolchain and recommends on-device specialization from the raw .aimodel, which is the same path that fails here at 1.7B. Questions Is there a supported way to generate the Neural Engine executables for an LLM bundle on the build machine, so that no ANELargeModelCompilerService run happens on the user's device? If on-device specialization is the intended path, is there a bound on its temporary storage and time, and can the export emit fewer specializations or share work across them? Can a Neural Engine compile failure be surfaced as an error from the load call instead of an MPSGraph assertion that terminates the process? Is the per-function GPU memory in the --preferred-compute gpu build expected, and is there an export option that avoids it? At this point I have removed Core AI text models from the shipping app and kept Core AI for diffusion only, where ahead-of-time compilation works well. I would like to bring the text models back and am happy to test any build or export change.
1
0
106
6d
Using Siri to Control In-App Navigation and Perform Multiple Actions
Is it possible to integrate Siri into an iOS app in a way that allows users to control the app entirely through voice commands? For example, imagine a user saying: “Siri, open my add-ons and show me my available internet packages.” I would like to understand whether Siri, using App Intents or another Apple framework, can: Recognize a voice command and identify the requested action. Navigate to a specific section of the app's Home Screen, even if that section is currently outside the visible area. Automatically scroll to the relevant UI component and bring it into view. Navigate to other screens when required. Perform multiple actions as part of one continuous experience, such as scrolling, opening a screen, selecting an option, and triggering an API request. My main question is: Can we create a conversational, voice-controlled experience where a single Siri command can trigger a sequence of UI navigation and app-related operations, rather than simply opening the app or navigating to a predefined screen? What are the recommended Apple frameworks and best practices for implementing this kind of experience?
0
0
66
6d
Pending Private Cloud Compute entitlement: status and account conversion questions
I submitted a Private Cloud Compute entitlement application around October 17, 2026 for Konote, App Store Connect app ID 6823726856. It is still pending. I've also submitted Feedback: FB25522199. We're enrolled in the App Store Small Business Program and are far below two million first-time downloads, with only TestFlight testers so far. We meet the published eligibility criteria on those points. Konote records and transcribes meetings on device, and audio is never sent to us or any AI service; when iCloud sync is enabled, audio syncs only to the user's own devices with end-to-end encryption. We plan to use PCC for long meeting summaries because hour-long transcripts exceed the on-device model's context window; PCC is central to our planned release's privacy design. My individual-to-organization membership conversion, submitted around October 20, is also pending. Could you confirm whether the entitlement application is queued or missing information, and whether a technical explanation would help? I'd also appreciate confirmation of whether the pending conversion blocks review and whether I need to resubmit after it completes. Eric
Replies
0
Boosts
0
Views
162
Activity
15h
Siri ability to add content to the clipboard
I am wondering if the new beta Siri AI is or will be able to add various content to the user's clipboard. With Shortcuts we can, Siri itself suggests using Shortcuts, but in the Siri app (on Mac 27.3 dev beta) it does not seem to be available. For more context, I am struggling to give Siri a schema for putting images from Siri chat into my app Update: it does not seem to be done with Freeform either
Replies
2
Boosts
0
Views
195
Activity
17h
Recognizing Handwritten Mathematics with the On-Device Language Model
Hello, I'm currently working on an iPad app that combines the flexibility of handwritten notes with advanced mathematical computation, including linear algebra, calculus, and solving systems of equations. One of its core features is to recognize handwritten mathematical notation and converting it into a structured representation that can subsequently be parsed and evaluated. For this, I want to use the SystemLanguageModel() together with Guided Generation. My approach I created a custom set of "MathToken" enums using @Generable. The idea is to let the model recognize mathematical handwriting and directly return an array of these tokens. The tokens represent both basic mathematical elements (integers, identifiers, operators, etc.) and more complex structures such as matrices, vectors, function applications, derivatives, integrals, and systems of equations. The resulting tokens are then passed to a parser, which constructs a structured statement that can eventually be evaluated. For handwriting input, I exported the relevant content from PaperKit/PencilKit as a UIImage and attached it to the LanguageModelSession. I've attached both the MathToken definition and my current prompting approach. The problem Unfortunately, the recognition accuracy is not yet sufficient for a reliable user experience. I've experimented with different prompting strategies: Very short and general instructions. More detailed descriptions what to watch for Explicit rules explaining when each token should be used However, none of these approaches has significantly improved the results. The model frequently selects tokens that contradict the instructions it was given. Some examples: The model sometimes generates an identifier containing a number instead of using integer or real. Instead of using structured tokens like functionApplication, it uses identifiers and parentheses instead For ordinary multiplication, such as 3 × 5, it sometimes generates the product token, which is specifically intended for mathematical product notation (capital Pi). These are not ambiguous cases. I've explicitly described the distinctions in my instructions, yet the model still makes these mistakes. I'm aware that prompting and model context size have their limitations, so I'm trying to understand whether my overall approach is appropriate. Questions Prompting: Is there a better way to guide the model towards consistently selecting the correct enum cases? Guided Generation: Is an enum with many associated values and recursively nested [MathToken] arrays a suitable structure for Guided Generation? Could the complexity or structure of my MathToken definition itself be contributing to the problem? How could a more suitable structure look like (which I could transform into the MathTokens)? Model capabilities: Is recognizing handwritten mathematics and mapping it directly to such a structured representation simply too complex a task for the on-device model in its current form? Architecture: Could this problem benefit form splitting it into multiple stages? What stages would you recommend? I'd be particularly interested in understanding whether there are any known limitations or recommended patterns when using Guided Generation for tasks involving complex, recursively structured output. I've included my current implementation and the MathToken definition below/attached for context. Thank you for your time and any suggestions!
Replies
2
Boosts
0
Views
48
Activity
17h
Adding MCP and connector support to your own Foundation Models apps
Circling back on the LocalLM Lab arc. With v0.7, we've moved from prompt experimentation into real app development on Apple's Foundation Models local AI. The LocalLM Lab SDK lets you build that same on-device model and MCP client this thread has covered directly into your own app, with real tool and data access (Slack, Todoist, GitHub, Notion, Linear, plus Calendar, Reminders, Contacts and Location). And you can ship your app including through the Mac App Store. This is a big improvement over version 0.6, where the localai-cli toolkit needed LocalLM Lab installed and running. On the other hand, the SDK (LocalLMLabSDKCore) doesn't relay through anything; it links FoundationModels and a real MCP client directly into your own binary and is totally self-contained. The example included in the SDK, Plate Today, has actually been built into a sandboxed test app and verified working, with a signed path to a Mac App Store .pkg (Apple Distribution signing + provisioning profile pipeline). That's "verified signable and sandbox-compatible," to be precise. Entitlements (from personal experience: always a complicated topic): com.apple.security.app-sandbox + com.apple.security.network.client for the app itself, plus the standard personal-information entitlements per connector used (com.apple.security.personal-information.calendars, .addressbook, .location) and matching NS*UsageDescription strings in Info.plist. The one worth flagging specifically: the network entitlement is easy to miss and fails silently rather than throwing. Without it, MCP connections and Weather calls just hang with no error surfaced. OAuth handling requires the app delegate callback (application(_:open:)), not SwiftUI's .onOpenURL. Worth knowing before wiring it up if you're SwiftUI-only. Full entitlements list + SDK guide: https://github.com/ancientcomputing/locallm/blob/main/docs/sdk-guide.md Feature page: thisbrain.ai/locallm/sdk.html I hope the availability of the SDK (free, Apache 2.0 license) will give folks further incentive to explore local AI-enabled applications on the Mac. What else would you want to do that the SDK doesn't currently support? File picker? Calendar/Reminders/Contacts edits & writes?
Replies
8
Boosts
1
Views
4.5k
Activity
19h
Batch or bulk update
Let me ask someone at Apple, is it okay in this beta phase if Siri cannot handle bulk/batch actions well, or I need to refine me code? I managed to have Siri add multiple records at once (feels magic), but updating fields on multiple records seems unachievable for me. With typing "next, next, next" Siri finally updates everything, but the goal is to process one single batch request. Thank you!
Replies
0
Boosts
0
Views
32
Activity
21h
MAC Studio Clustering
Hello , We are planning to deploy an 8-node Mac Studio M5 Ultra cluster for distributed AI computing and would appreciate technical guidance on the recommended architecture, Thunderbolt 5 connectivity, and software configuration. I have reviewed Apple's WWDC26 demonstration of distributed inference and training using MLX, which features four Mac Studios. We would like to understand how best to extend this architecture to eight nodes. We would appreciate guidance on the following: Cluster Architecture and Thunderbolt 5 Connectivity Is it possible to configure all eight Mac Studios as a single distributed AI compute cluster using MLX? What Thunderbolt 5 topology is recommended for eight nodes: ring, partial mesh, or another configuration? Our proposed design includes 14 Thunderbolt 5 cables. Can all 14 be effectively utilized, or would a different cabling arrangement be more appropriate? Is there a recommended port-to-port cabling diagram or reference architecture for an eight-node configuration? Can multiple Thunderbolt 5 links between neighboring Macs be utilized to improve communication performance? Are there example configuration files, commands, or implementation guides for establishing and validating an eight-node cluster? Networking and Storage Is it appropriate to use Thunderbolt 5 for inter-node communication while using a separate 10GbE network and shared NAS for model and dataset storage? Are there any configuration considerations when using both network types simultaneously? My primary concern is establishing the correct Thunderbolt 5 topology and software architecture before implementation, particularly whether the proposed 14-cable arrangement is appropriate for eight nodes. Any guidance, reference architecture, cabling examples, or links to relevant technical documentation would be greatly appreciated. Thank you.
Replies
1
Boosts
0
Views
55
Activity
1d
Reading Focus status in a macOS utility: communication entitlement triggers ITMS-90894
I maintain Time Out, a macOS break-reminder app. An optional scheduling rule skips breaks while Focus is active, avoiding interruptions during focused work. I’m trying to establish the supported way to read Focus status for this purpose and resolve an App Store Connect warning. Focus detection Our legacy Do Not Disturb/Focus observer worked on macOS 26. In testing on macOS 27, it continued to report Focus as inactive and no longer received the expected state-change notifications. I restored detection using INFocusStatusCenter. The app: Includes NSFocusStatusUsageDescription, explaining that access is used to skip breaks while focused. Requests authorization when an enabled scheduling rule needs Focus status. Reads INFocusStatusCenter.default.focusStatus.isFocused once authorized. Without the com.apple.developer.usernotifications.communication entitlement, authorization reached .authorized, but isFocused returned false while Focus was active. Adding the entitlement made detection work in the tested configuration, and Time Out correctly skipped the break. I also reset Focus-status permission and verified the authorization flow again. App Store Connect warning With that entitlement present, uploading succeeds, but Xcode and the subsequent email report ITMS-90894: Missing Info.plist value. The warning says that apps with the communication entitlement must declare either INSendMessageIntent or INStartCallIntent in the NSUserActivityTypes array. Time Out does not provide person-to-person messaging or calling, send communication notifications, or share Focus status with other people. It only uses the status locally to decide whether to present a break, so declaring either intent seems inappropriate. Questions Is INFocusStatusCenter supported for a macOS utility that uses Focus status solely to suppress its own interruptions? Is the communication entitlement required for that use? If not, is there another supported API or configuration? If this use is supported, how should the app resolve ITMS-90894 without declaring messaging or calling functionality it doesn’t provide? Is authorization succeeding while isFocused reports false without the entitlement expected behavior, or should I file a Feedback report? Does isFocused indicate that a Focus is active generally, or that the current Focus silences notifications specifically for the requesting app? Has anyone implemented this successfully in a Mac App Store utility, or can someone from Apple clarify the intended approach?
Replies
1
Boosts
0
Views
107
Activity
1d
Neural Engine compiler fails ("Graph traversal failure", Code=22) on a slice of a concat; the model silently falls back to the CPU
Environment: Mac mini, Apple M2 Pro (Mac14,12), macOS 27.2 (26B123). coremltools 9.0, mlprogram, iOS17 target. Disclosure. I used AI to find and triage this: to bisect the model, isolate the pattern and draft this post. The reproducer and every result above were run on the machine described. Summary. I load the model with computeUnits = .cpuAndNeuralEngine. If the program slices a concat's output along the last axis (slice_by_index) and then joins the slice with other tensors (concat or stack), the Neural Engine compiler refuses the program. MLModel still loads without an error, but runs every operation on the CPU. On a large model, a streaming speech encoder, this costs: a load of 20 s to 6 minutes, at every launch; 1.1 to 1.8 GB of extra memory, because the weights are copied to float32; inference about 15 times slower. MLComputePlan puts 0 of the model's 1,674 operations on the Neural Engine. If the program computes the same values without slicing the concat, the compiler accepts it, and the whole model runs on the Neural Engine. The pattern is common. It is the cache update of a streaming convolution: next_cache = concat(cache, x)[..., -K:]. Reproducer. The script needs coremltools 9.0. It writes refused.mlpackage, or fixed.mlpackage with --fix: import sys import numpy as np import coremltools as ct from coremltools.converters.mil import Builder as mb from coremltools.converters.mil.mil import types from coremltools.converters.mil.mil.passes.pass_pipeline import PassPipeline N, C, T, K = 24, 1024, 7, 8 # layers, channels, new frames per step, cached frames FIX = "--fix" in sys.argv rng = np.random.default_rng(0) W = [(rng.standard_normal((C, 1, K + 1)) * 0.1).astype(np.float16) for _ in range(N)] @mb.program(input_specs=[mb.TensorSpec(shape=(1, N, C, K), dtype=types.fp16), mb.TensorSpec(shape=(1, C, T), dtype=types.fp16)], opset_version=ct.target.iOS17) def prog(cache, x): v = mb.transpose(x=cache, perm=[1, 0, 2, 3]) outs, h = [], x for i in range(N): c = mb.slice_by_index(x=v, begin=[i, 0, 0, 0], end=[i + 1, 1, 0, 0], end_mask=[False, False, True, True], squeeze_mask=[True, False, False, False]) # [1, C, K] new = mb.concat(values=[c, h], axis=-1) # [1, C, K+T] if FIX: # the same values, without cutting the concat o = mb.concat(values=[mb.slice_by_index(x=c, begin=[0, 0, T], end=[1, C, K]), h], axis=-1) else: # the next cache: the last K columns of the concat (start 7, width 8) o = mb.slice_by_index(x=new, begin=[0, 0, T], end=[1, C, T + K]) outs.append(o) h = mb.conv(x=new, weight=W[i], groups=C, pad_type="valid") # [1, C, T] return mb.transpose(x=mb.stack(values=outs, axis=0), perm=[1, 0, 2, 3]), h pipe = PassPipeline.EMPTY # keep the ops as written pipe.append_pass("common::dead_code_elimination") m = ct.convert(prog, convert_to="mlprogram", minimum_deployment_target=ct.target.iOS17, pass_pipeline=pipe, compute_precision=ct.precision.FLOAT32) m.save("fixed.mlpackage" if FIX else "refused.mlpackage")How to see the failure. Start the log, then load each model with .cpuAndNeuralEngine: log stream --level info --predicate 'process == "ANECompilerService"'refused: the log shows allocation hint propogation fails …, MirInfo propogation fails … and Calling ANE compiler done ret(22). The model then runs on the CPU, and MLComputePlan shows no Neural Engine operations. fixed: the log shows ret(0), and the model runs on the Neural Engine. With private data logging on, the compiler names the operation: allocation hint propogation fails in y and MirInfo propogation fails in y/src, then Compiler internal error: Graph traversal failure (target h14g). Here y is the concat that joins the slice, and y/src is the slice. What causes the failure. I changed one property at a time. The compiler fails only when all four conditions hold: a slice_by_index slices a concat's output along the last axis; the slice starts at an offset that is not a multiple of 8 elements (here 7); the slice's width is a multiple of 8 but not of 32 (here 8); a concat or stack then joins the slice with other tensors. These cases compile: starts 0, 8, 16, 24 and 32, and widths 1, 2, 4, 9, 12, 31, 32, 33 and 64. The result does not depend on the number of channels (1 to 1,024), the number of layers or slices (2 to 24), or the weights. Slicing the inputs instead (--fix) compiles. I applied the rewrite to a real model that has this pattern in 24 layers. On the CPU, its outputs are identical to the original's. On the Neural Engine, its word error rate is the same as the original model's on the CPU. Questions. Is this a known limitation of the M2-generation (h14g) compiler, or a bug? Other reports describe similar "propogation" or register-allocation failures on M2- and M3-family chips, with streaming encoders that compile on M5. Could Core ML report the refusal instead of silently loading the model on the CPU? Today the only signals are the log and the memory footprint. Core ML does not cache the failed compile, so every launch repeats it. Is there a recommended way to write a streaming cache update for the Neural Engine?
Replies
0
Boosts
0
Views
19
Activity
2d
Siri AI tools: how do I make an App Intent available to Siri but not listed in Shortcuts?
With the Siri AI Developer Preview in iOS 27.3 beta 1, we are exposing custom intents to Siri as tools with @AppIntent(.tool). Some of these only make sense for Siri, for example a read-only status tool whose result Siri phrases as an answer, or variants that would duplicate existing Shortcuts actions. Our app already has a long list of Shortcuts actions, so we would like these tools to be available to Siri AI without appearing as actions in the Shortcuts app. @available(iOS 27.3, *) @AppIntent(.tool) struct GetStatusIntent: AppIntent { static let title: LocalizedStringResource = "Get Status" @Parameter(title: "Item") var item: ItemEntity func perform() async throws -> some IntentResult & ReturnsValue<StatusEntity> { // ... } }What we have tried on iOS 27.3 beta 1: static let isDiscoverable = false hides the action from Shortcuts, but Siri then never called the tool and used a different one instead. Conforming to DeprecatedAppIntent while keeping it discoverable also hides the action, but Siri stopped calling the tool over repeated attempts. Removing the deprecation brought it straight back. isAssistantOnly would describe what we want, but it only exists on AssistantSchemaIntent, and combining .tool with a Siri-supported schema is a build error. ToolIntent itself has no requirements in the 27.3 SDK. IntentVisibility only applies to entity properties, and .internal hides the property from Siri as well. Questions: Is there a supported way to make an intent available to Siri AI while keeping it out of the Shortcuts action list? Is it intended that isDiscoverable = false and DeprecatedAppIntent also make a tool unavailable to Siri AI? If there is no such option today, is one planned, and is there a feedback number we should reference? Related question about schema intents: https://developer.apple.com/forums/thread/838658 Thanks!
Replies
1
Boosts
8
Views
181
Activity
2d
Core Spotlight Semantic Search - still non-functional for 1+ year after WWDC24?
After more than a year since the announcement, I'm still unable to get this feature working properly and wondering if there are known issues or missing implementation details. Current Setup: Device: iPhone 16 Pro Max iOS: 26 beta 3 Development: Tested on both Xcode 16 and Xcode 26 Implementation: Following the official documentation examples The Problem: Semantic search simply doesn't work. Lexical search functions normally, but enabling semantic search produces identical results to having it disabled. It's as if the feature isn't actually processing. Error Output (Xcode 26): [QPNLU][qid=5] Error Domain=com.apple.SpotlightEmbedding.EmbeddingModelError Code=-8007 "Text embedding generation timeout (timeout=100ms)" [CSUserQuery][qid=5] got a nil / empty embedding data dictionary [CSUserQuery][qid=5] semanticQuery failed to generate, using "(false)" In Xcode 16, there are no error messages at all - the semantic search just silently fails. Missing Resources: The sample application mentioned during the WWDC24 presentation doesn't appear to have been released, which makes it difficult to verify if my implementation is correct. Would really appreciate any guidance or clarification on the current status of this feature. Has anyone in the community successfully implemented this?
Replies
7
Boosts
5
Views
4.3k
Activity
3d
iOS 27.3 beta: Apple Intelligence works in system UI, but Foundation Models returns deviceNotEligible on a mainland China iPhone Duo
Hello Apple team, After updating an iPhone Duo purchased in mainland China to iOS 27.3 beta, Apple Intelligence appears to be available at the system level: Apple Intelligence is visible in Settings. Pressing and holding the side button successfully activates the system assistant. The multicolored glow appears around the edges of the screen while using it. However, when developing an app using the Foundation Models framework, the on-device model reports that this device is not eligible, and an actual generation request is also rejected. Environment Physical device: iPhone Duo (iPhone19,4) iOS version: 27.3 beta OS build: 24C5037i Build toolchain: Xcode 27.1 / iPhoneOS 27.1 SDK Diagnostic app deployment target: iOS 26.0 Developer Mode: enabled Reported locale: zh-Hans_HK Minimal reproduction We built and installed a separate, minimal diagnostic app to rule out our main app’s business logic. It reads the model availability and attempts one request containing only synthetic test text: let model = SystemLanguageModel.default print(model.availability) print(model.supportsLocale(Locale(identifier: "zh_CN"))) do { let session = LanguageModelSession( instructions: "Reply briefly. This is a synthetic device diagnostic." ) let response = try await session.respond(to: "Reply with OK.") print(response.content) } catch { print(String(reflecting: type(of: error))) print(String(describing: error)) }Results on the physical device availability: unavailable( FoundationModels.SystemLanguageModel.Availability .UnavailableReason.deviceNotEligible ) supportsLocale(zh_CN): true error_type: FoundationModels.SystemLanguageModel.Error error: This device does not support Apple Intelligence.The availability remains deviceNotEligible after the request. Could you please clarify: Does the mainland China Apple Intelligence rollout in iOS 27.3 beta include third-party access to the on-device model through Foundation Models? Is this a known issue or an expected limitation of this beta? Is building with Xcode 27.3 / the iOS 27.3 SDK required for this access? Does enabling the Qwen extension affect Foundation Models eligibility, or is that extension independent of SystemLanguageModel.default? We can provide the minimal diagnostic project and additional diagnostics if needed. Thank you.
Replies
0
Boosts
0
Views
258
Activity
3d
Image Playground support download stuck on M5 iPad Pro
downloading support for image plaground isn’t working on a M5 11” iPad Pro 1tb. Running 27.3. Tried stopping it and restarting the download but it just says it’s downloading. I asked Siri and she said something about 7gb needed. Why isn’t this included in the OS download? Seems these are key asset to the app. What happened? Oppps, dumb question. As you were.
Replies
0
Boosts
0
Views
261
Activity
3d
AppIntents and Siri AI
I had a complete voice-only experience working with AppIntents and AppShortcuts on iOS 27.0 prior to enabling Siri AI. Once I enabled Siri AI, Siri refused to recognize any of the donated phrases in one particular AppShortcut. It still worked for several others. For the AppShortcut that no longer works, Siri responds to some of the phrases claiming the app doesn't support that action through Siri, and Siri responds to some of the phrases telling me I need to open the app to do that. FB24854409 includes a Sysdiagnose file. Note that I'm aware of App Schemas, but none apply well to my app.
Replies
1
Boosts
1
Views
505
Activity
4d
ToolIntent experience on watchOS
ToolIntent is currently marked unavailable on watchOS. (FB25455121) When Siri is invoked on Watch, what behavior(s) can users expect when invoking ToolIntents declared in our paired iOS codebase? Example use case: At their gym, a user leaves their iPhone face down nearby. To Siri on their Watch, they say "I just did 350 lbs 8 reps to failure" or "Rest for 3 minutes" or "Hack squat machine is busy, let's jump to the next exercise". If it matters, we benefit from extended background runtime via a mirrored live HKWorkout between our watch app and iPhone app (which displays a Live Activity).
Replies
0
Boosts
0
Views
253
Activity
5d
What can @Property(visibility: .internal) do that a plain var can’t?
Hello, My understanding is that @Property(visibility: .internal) makes an AppEntity field available to the app and its extensions through App Intents while hiding it from Siri and Shortcuts. But both the app and its extensions can already read a plain Swift property on a CatEntity instance they’ve loaded. // Plain Swift property var internalNote: String // Internal App Intents property @Property(visibility: .internal) var internalNote: StringWhat does the annotation enable in practice that a plain Swift property doesn’t?
Replies
0
Boosts
0
Views
248
Activity
5d
On-device specialization of ahead-of-time compiled Core AI LLM bundles preallocates 35 GB and crashes the app
I am shipping Core AI language models in an App Store app and have followed the ahead-of-time compilation workflow from WWDC26 session 326 and the article "Compiling Core AI models ahead of time". The remaining on-device specialization step is unusable for LLM exports, and I would like to know whether there is a supported way around it. Setup Models are exported with the coreai-models recipes and compiled with coreai-build for the Neural Engine: uv run coreai.llm.export Qwen/Qwen3-0.6B --platform iOS --compression-config models/qwen3/qwen3_0_6b_mixed_4bit_8bit.yaml xcrun coreai-build compile <model>.aimodel --platform iOS --architecture h18pThe compiled .aimodelc bundles are hosted remotely, one per architecture, and selected at runtime with AIModel.deviceArchitectureName. Loading uses CoreAILanguageModel(resourcesAt:) and FoundationModels.LanguageModelSession. Xcode 27.1 (27A9275), coreai-build 3600.83.1, coreai-models cc3c234, iPhone 17 Pro. The published bundles are public for reproduction: https://huggingface.co/333i/qwen3-0.6b-coreai-ios https://huggingface.co/333i/smollm2-1.7b-coreai-ios What happens on device Each compiled bundle carries its 30 Neural Engine regions (extend and prompt_opt, contexts 256 to 4096, query sizes 8, 16 and 64) as .mlir.bc under main-h18p-delegates/MPSGraph. On first load, ANELargeModelCompilerService compiles all 30 on the device. Qwen3 0.6B: the first reply takes over two minutes. Later launches load from the cache in about eight seconds. SmolLM2 1.7B: the compile fails after about a minute. The device reported 56 GB free. Freeing 20 GB more moved the failure from 33.6 GB to 35.5 GB. ANELargeModelCompilerService Convert 27/30 procedures of ANEHLO task 308/7012 ANELargeModelCompilerService ANECompiler internal error: temp file: F_PREALLOCATE failure (35500589056 bytes) -> (35511074816 bytes): No space left on device ANELargeModelCompilerService Caught ZinException kernel ERROR: [ANELargeModelCompilerService:61615] FATAL exception: type=0x1 reason=0x25 code=0x106 aned Could not create connection to com.apple.ANELargeModelCompilerService MPSGraphANEUtils.mm:1033: Error = Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.apple.ANELargeModelCompilerService" MPSGraphANEUtils.mm:1038: ANE compile failed! MPSGraphExecutable_Project.h:510: failed assertion `could not load module from MPSGraphPackage'The assertion terminates the app. No error reaches the load call, so there is no way to fall back or tell the user what happened. Compiling the same export with --preferred-compute gpu avoids the Neural Engine compiler but allocates roughly 0.5 GB of GPU memory per compiled function at load time. The 0.6B model reaches a 17 GB footprint at 4096 context on a Mac and is killed by Jetsam at about 6 GB on iPhone 17 Pro. What I have ruled out The ahead-of-time workflow is followed as documented. The article states that the compiled asset still requires some specialization on the device, and for these exports that residual step is the Neural Engine compile described above. coreai-build compile --help offers no option to generate the Neural Engine executables on the build machine. The failure reproduces on the October 18 runtime and on coreai-models cc3c234. Disk space is not the limit in practice. The compiler preallocates more than 30 GB of temporary storage for a 1.7B model, which no production device can be expected to provide. Related reports apple/coreai-models issue 387 (this failure, open since October 27 with no response): https://github.com/apple/coreai-models/issues/387 apple/coreai-models issue 406: a 0.6B export measured at roughly 600 seconds per specialization on iPhone 16 Pro Max, with Jetsam kills during specialization on a current-toolchain export. apple/coreai-models issue 205: coreai-build exits 0 and writes a GPU-only bundle when offline Neural Engine compilation fails, with an empty ErrorList. The Gemma 4 README in coreai-models states that ahead-of-time compilation is not supported for that model on the Xcode 27.2 beta toolchain and recommends on-device specialization from the raw .aimodel, which is the same path that fails here at 1.7B. Questions Is there a supported way to generate the Neural Engine executables for an LLM bundle on the build machine, so that no ANELargeModelCompilerService run happens on the user's device? If on-device specialization is the intended path, is there a bound on its temporary storage and time, and can the export emit fewer specializations or share work across them? Can a Neural Engine compile failure be surfaced as an error from the load call instead of an MPSGraph assertion that terminates the process? Is the per-function GPU memory in the --preferred-compute gpu build expected, and is there an export option that avoids it? At this point I have removed Core AI text models from the shipping app and kept Core AI for diffusion only, where ahead-of-time compilation works well. I would like to bring the text models back and am happy to test any build or export change.
Replies
1
Boosts
0
Views
106
Activity
6d
Using Siri to Control In-App Navigation and Perform Multiple Actions
Is it possible to integrate Siri into an iOS app in a way that allows users to control the app entirely through voice commands? For example, imagine a user saying: “Siri, open my add-ons and show me my available internet packages.” I would like to understand whether Siri, using App Intents or another Apple framework, can: Recognize a voice command and identify the requested action. Navigate to a specific section of the app's Home Screen, even if that section is currently outside the visible area. Automatically scroll to the relevant UI component and bring it into view. Navigate to other screens when required. Perform multiple actions as part of one continuous experience, such as scrolling, opening a screen, selecting an option, and triggering an API request. My main question is: Can we create a conversational, voice-controlled experience where a single Siri command can trigger a sequence of UI navigation and app-related operations, rather than simply opening the app or navigating to a predefined screen? What are the recommended Apple frameworks and best practices for implementing this kind of experience?
Replies
0
Boosts
0
Views
66
Activity
6d