{"$schema": "https://raw.githubusercontent.com/guitaripod/wwdc-sessions/master/schema/transcript.schema.json", "id": "wwdc2026-326", "language": "eng", "source": "https://developer.apple.com/videos/play/wwdc2026/326", "wordCount": 2946, "segments": [{"start": 7.0, "text": "Hi everyone, welcome!"}, {"start": 9.0, "text": "My name is Carina and I am from the Core AI team."}, {"start": 13.0, "text": "Today, let's dive into the world of on-device intelligence."}, {"start": 19.0, "text": "In this talk,"}, {"start": 20.0, "text": "I will explore how to add some exciting new features to your app with Core AI."}, {"start": 26.0, "text": "I'll show you how I built a language-learning app"}, {"start": 29.0, "text": "that uses a vision-transformer model"}, {"start": 31.0, "text": "and a large language model working together,"}, {"start": 34.0, "text": "running entirely on device."}, {"start": 38.0, "text": "Core AI is a new set of technologies"}, {"start": 41.0, "text": "that lets you bring advanced on-device AI capabilities directly into your apps."}, {"start": 48.0, "text": "With Core AI, you can build app experiences"}, {"start": 52.0, "text": "where user's data never leaves their device."}, {"start": 55.0, "text": "There's no server to manage, no cost per token,"}, {"start": 59.0, "text": "and no latency to the cloud."}, {"start": 62.0, "text": "If you haven't already, check out \"Meet Core AI\"."}, {"start": 66.0, "text": "You will learn the high-level ideas behind our framework and design philosophy"}, {"start": 71.0, "text": "and the best ways to use our APIs."}, {"start": 76.0, "text": "Let's start simple."}, {"start": 77.0, "text": "I'm developing an iOS app for students to learn vocabulary in a new language,"}, {"start": 84.0, "text": "starting with Mandarin Chinese."}, {"start": 87.0, "text": "I have a set of vocab cards that I've already curated by hand;"}, {"start": 91.0, "text": "it gives the word, translation, and example usage."}, {"start": 96.0, "text": "But this is hard to scale."}, {"start": 99.0, "text": "I would need to include all of these statically in my app."}, {"start": 104.0, "text": "I'd like to bring AI to my app."}, {"start": 107.0, "text": "How cool would it be"}, {"start": 109.0, "text": "if students could point their camera at something they see in their garden,"}, {"start": 113.0, "text": "or an object on the street,"}, {"start": 115.0, "text": "and just ask the app to pull it right out of the scene?"}, {"start": 119.0, "text": "From that, it generates a vocab card in the language they're learning."}, {"start": 124.0, "text": "No curated deck can keep up with a curious student."}, {"start": 129.0, "text": "But a camera and an on-device model can."}, {"start": 134.0, "text": "Every card features something from their own life."}, {"start": 137.0, "text": "They learn wherever they are, whenever they want,"}, {"start": 141.0, "text": "and their collection grows with them."}, {"start": 144.0, "text": "And this runs all locally on device."}, {"start": 148.0, "text": "I will begin by identifying some models that can help power this experience."}, {"start": 152.0, "text": "Then I'll write the code to use those models in the app."}, {"start": 157.0, "text": "Next, I will explore some practical considerations of model deployment."}, {"start": 162.0, "text": "And finally, I'll expand on my idea by building a macOS version of the app,"}, {"start": 167.0, "text": "re-using the same code and unlocking some new features with larger models."}, {"start": 172.0, "text": "Let's start with model discovery."}, {"start": 176.0, "text": "First, I need to define the core capabilities of my app."}, {"start": 180.0, "text": "It starts with picture"}, {"start": 182.0, "text": "and a prompt from the user on what they want to learn about."}, {"start": 187.0, "text": "Given the input, the app needs to highlight"}, {"start": 190.0, "text": "and extract what the user requested from the image."}, {"start": 194.0, "text": "This segmented image becomes the graphic on the card."}, {"start": 198.0, "text": "And from the text input in their native language,"}, {"start": 201.0, "text": "the app will reason about the word"}, {"start": 204.0, "text": "and generate all the vocab information:"}, {"start": 207.0, "text": "the translation,"}, {"start": 209.0, "text": "the natural example usage in the language being learned,"}, {"start": 212.0, "text": "and the English meaning of that usage."}, {"start": 216.0, "text": "With these in mind, I have three requirements for my use case."}, {"start": 221.0, "text": "First is content."}, {"start": 223.0, "text": "This app is about real-world learning,"}, {"start": 226.0, "text": "so it needs to handle settings like kitchens, streets, and offices."}, {"start": 231.0, "text": "Second is languages."}, {"start": 234.0, "text": "The model architecture needs to support multiple languages from the start."}, {"start": 239.0, "text": "For my initial release, I'm scoping to Mandarin Chinese."}, {"start": 244.0, "text": "Third is device constraints."}, {"start": 247.0, "text": "Everything runs on-device on iPhone,"}, {"start": 250.0, "text": "so I need to keep both storage and memory footprint small."}, {"start": 254.0, "text": "That means being deliberate about model size"}, {"start": 257.0, "text": "and how many models I ship."}, {"start": 260.0, "text": "I explored a few directions here, reading through model documentation,"}, {"start": 266.0, "text": "running some prototypes, and bouncing ideas off an AI assistant."}, {"start": 272.0, "text": "The conclusion was clear:"}, {"start": 274.0, "text": "decompose the problem into two small models."}, {"start": 279.0, "text": "The first is a dedicated vision model that handles image segmentation."}, {"start": 285.0, "text": "The second is a multi-lingual large language model"}, {"start": 289.0, "text": "that takes that English label"}, {"start": 291.0, "text": "and generates vocab, translation, and example sentences."}, {"start": 297.0, "text": "Why two models on device?"}, {"start": 300.0, "text": "Task-specific models give me better quality,"}, {"start": 304.0, "text": "smaller individual sizes, and the ability to upgrade them independently."}, {"start": 310.0, "text": "I'm targeting variants under one billion parameters each,"}, {"start": 314.0, "text": "which keeps the total on-device footprint manageable."}, {"start": 320.0, "text": "For image segmentation,"}, {"start": 322.0, "text": "I am interested in SAM 3, the Segment Anything Model 3."}, {"start": 328.0, "text": "SAM 3 is a vision-transformer-based model for promptable image segmentation."}, {"start": 333.0, "text": "It's a powerful model that does exactly what my app needs."}, {"start": 338.0, "text": "A student points their camera at something"}, {"start": 341.0, "text": "and SAM 3 isolates the object according to their prompt precisely."}, {"start": 346.0, "text": "It provides a clean cutout for the card graphic."}, {"start": 350.0, "text": "The prompt can provide an English label for the language model."}, {"start": 355.0, "text": "For the language model, the flow would be simple:"}, {"start": 359.0, "text": "an English label like \"Hummingbird\" goes in,"}, {"start": 362.0, "text": "and the model generates vocab information in the target language."}, {"start": 366.0, "text": "So I need four things."}, {"start": 369.0, "text": "Multilingual, so it handles translations accurately."}, {"start": 373.0, "text": "Reasoning, so I get contextual example sentences."}, {"start": 378.0, "text": "Structured output, so it fills typed fields reliably."}, {"start": 383.0, "text": "And compact, so it fits on device alongside the vision model."}, {"start": 389.0, "text": "Many open source language models have strong reasoning capabilities"}, {"start": 393.0, "text": "in this size range."}, {"start": 395.0, "text": "I did some quick tests and Qwen stood out —"}, {"start": 399.0, "text": "it supports one hundred nineteen languages and dialects,"}, {"start": 403.0, "text": "and it is a reasoning model,"}, {"start": 405.0, "text": "which means it can generate contextual examples, not just translations."}, {"start": 410.0, "text": "A great starting point for vocab card generation."}, {"start": 415.0, "text": "There is even a 0.6 billion parameter version of the model,"}, {"start": 419.0, "text": "which should work great for my app."}, {"start": 422.0, "text": "I found these models and documentation about them on HuggingFace and GitHub."}, {"start": 426.0, "text": "So the next question is:"}, {"start": 428.0, "text": "how do I bring them into my app with Core AI?"}, {"start": 433.0, "text": "One path is to convert them directly from their PyTorch representation"}, {"start": 437.0, "text": "using the Core AI PyTorch extensions package."}, {"start": 443.0, "text": "I could also incorporate model compression with the Core AI optimization package."}, {"start": 448.0, "text": "To learn more about this process,"}, {"start": 450.0, "text": "check out the talk \"Dive into Core AI model authoring and optimization\"."}, {"start": 455.0, "text": "In that section we even show how to convert the SAM 3 model!"}, {"start": 460.0, "text": "Core AI has powerful tools for model optimization,"}, {"start": 464.0, "text": "conversion, and even direct authoring."}, {"start": 468.0, "text": "However, for many popular models there is an another path."}, {"start": 473.0, "text": "The Core AI Models repo is a great resource to check out."}, {"start": 477.0, "text": "It contains many popular models, each with conversion scripts"}, {"start": 481.0, "text": "that yield optimized versions of those models in the Core AI format,"}, {"start": 486.0, "text": "along with optional platform specific variants."}, {"start": 490.0, "text": "Let's head to the Core AI models repository."}, {"start": 494.0, "text": "models/ is the catalog."}, {"start": 496.0, "text": "Browse what's available, find the model you want, and follow its export recipe."}, {"start": 502.0, "text": "python/ gives you reusable primitives and utilities for exporting."}, {"start": 508.0, "text": "Here I found the SAM 3 and Qwen family models,"}, {"start": 511.0, "text": "and I followed the export recipe to get our Core AI models."}, {"start": 517.0, "text": "Now let's talk about integration."}, {"start": 521.0, "text": "After our model export, we get these .aimodel files in Finder."}, {"start": 527.0, "text": "Let's see what's inside of the SAM3 model."}, {"start": 531.0, "text": "In Xcode, I can inspect everything about it."}, {"start": 535.0, "text": "I can see it's 623 MB —"}, {"start": 538.0, "text": "I am interested that it targets iOS 27.0 and macOS 27.0 for my use case."}, {"start": 545.0, "text": "You can find useful information about the model,"}, {"start": 547.0, "text": "such as the size, metadata, and more."}, {"start": 553.0, "text": "If I click into the Functions tab, I can see this model's interface."}, {"start": 558.0, "text": "It actually exposes three separate functions."}, {"start": 561.0, "text": "For instance, let's look at the imageEncode function."}, {"start": 566.0, "text": "The input isn't just an image,"}, {"start": 569.0, "text": "it's a tensor with a specific shape and data type."}, {"start": 573.0, "text": "And output is a dense feature embedding."}, {"start": 578.0, "text": "Another function is detect."}, {"start": 581.0, "text": "It takes those image features plus a text prompt,"}, {"start": 584.0, "text": "and outputs raw masks, bounding boxes, and confidence scores."}, {"start": 589.0, "text": "So to use this model directly, I'd need to write all the pre-processing"}, {"start": 594.0, "text": "to get my camera frame into the right format"}, {"start": 597.0, "text": "and all the post-processing to turn these raw tensors into something meaningful."}, {"start": 603.0, "text": "The Core AI Models repository can help me with these model-specific pre-"}, {"start": 607.0, "text": "and post-processing tasks."}, {"start": 611.0, "text": "In addition to the models and Python conversion utilities,"}, {"start": 614.0, "text": "the repo also hosts a Swift package for a set of runtime libraries."}, {"start": 620.0, "text": "The libraries abstract things such as text encoding on the way in,"}, {"start": 625.0, "text": "the mask extraction and labeling on the way out."}, {"start": 628.0, "text": "So instead of wrangling tensor shapes, you just call a clean Swift API."}, {"start": 634.0, "text": "I already cloned the repo so we can easily add coreai-models"}, {"start": 638.0, "text": "as a dependency to my project to try it out."}, {"start": 643.0, "text": "Once we add the coreai-models URL as a Swift Package,"}, {"start": 647.0, "text": "we can select the CoreAILM"}, {"start": 649.0, "text": "and CoreAISegmentation to our app target, as easy as that."}, {"start": 655.0, "text": "Now let's see the code we write to integrate these two models into my app."}, {"start": 661.0, "text": "CoreAIImageSegmenter imports the image segmentation library"}, {"start": 666.0, "text": "that provides the SAM 3 model functionality,"}, {"start": 669.0, "text": "which allows us to load the SAM 3 model from disk."}, {"start": 673.0, "text": "Then we perform text-prompted segmentation on an input text prompt,"}, {"start": 679.0, "text": "such as \"flower\""}, {"start": 682.0, "text": "and lastly we extract the best segmentation mask."}, {"start": 688.0, "text": "Now for the language model."}, {"start": 690.0, "text": "To load, it's just one line."}, {"start": 692.0, "text": "I create a CoreAILanguageModel, point it at my model bundle"}, {"start": 697.0, "text": "and it's ready."}, {"start": 698.0, "text": "One line — asset loading, engine creation,"}, {"start": 702.0, "text": "tokenizer setup — all abstracted away for you."}, {"start": 707.0, "text": "Notice we're importing FoundationModels here."}, {"start": 710.0, "text": "This is the same framework you may already be familiar with."}, {"start": 715.0, "text": "Here's the beautiful part."}, {"start": 716.0, "text": "To use it, I create a LanguageModelSession."}, {"start": 720.0, "text": "This is the same API that gives you access to Apple's on-device large language model."}, {"start": 727.0, "text": "The difference is that now you'll pass in your own model to use."}, {"start": 731.0, "text": "Same session.respond to: call, same streaming support,"}, {"start": 735.0, "text": "same structured output capabilities."}, {"start": 739.0, "text": "You get the ergonomics of the Foundation Models API"}, {"start": 743.0, "text": "with the flexibility of choosing exactly which model runs underneath."}, {"start": 749.0, "text": "We also support guided generation."}, {"start": 752.0, "text": "This is important for our use case."}, {"start": 754.0, "text": "Instead of letting the model generate free-form text,"}, {"start": 758.0, "text": "I can provide a @Generable macro"}, {"start": 761.0, "text": "that describes exactly what a vocabulary card looks like:"}, {"start": 765.0, "text": "a word field, a translation field, an example sentence field."}, {"start": 773.0, "text": "Now let's see it in action."}, {"start": 775.0, "text": "I'll take a photo..."}, {"start": 777.0, "text": "and we're waiting."}, {"start": 780.0, "text": "The segmentation hasn't come back yet, so we can't get to card generation."}, {"start": 785.0, "text": "Something is clearly slow here."}, {"start": 788.0, "text": "I know from my code that I show this spinner"}, {"start": 791.0, "text": "when I'm first instantiating my SAM 3 model and sending it a prompt."}, {"start": 796.0, "text": "Let's see what's going on."}, {"start": 799.0, "text": "I took a trace with the new Core AI instruments,"}, {"start": 803.0, "text": "and sure enough there's a model load event right at that point,"}, {"start": 807.0, "text": "with a large sub-event for specialization."}, {"start": 812.0, "text": "Specialization is the process"}, {"start": 814.0, "text": "that prepares a Core AI model for execution on device."}, {"start": 818.0, "text": "When your model is loaded it is checked to see"}, {"start": 822.0, "text": "if it has already been specialized and cached."}, {"start": 825.0, "text": "This process can take a significant amount of time for very large models."}, {"start": 830.0, "text": "That is what we were seeing in our instrument trace."}, {"start": 835.0, "text": "While future loads are from the cache and are fast,"}, {"start": 839.0, "text": "that first time is something I need to plan for."}, {"start": 844.0, "text": "Having that happen right in the middle of the user experience is..."}, {"start": 848.0, "text": "probably not great."}, {"start": 850.0, "text": "So when should I do it?"}, {"start": 853.0, "text": "I could kick it off at launch or run it in the background"}, {"start": 857.0, "text": "but that feels wasteful if the user isn't even interested in this feature yet."}, {"start": 863.0, "text": "I think a better idea is to create a dedicated first-run experience,"}, {"start": 868.0, "text": "where I can move this work to happen"}, {"start": 870.0, "text": "while the user is learning about the feature for the first time."}, {"start": 874.0, "text": "This keeps model loading"}, {"start": 875.0, "text": "and specialization out of the interactive flow"}, {"start": 880.0, "text": "Before I make that change though, I want to step back"}, {"start": 883.0, "text": "and think more broadly about my deployment strategy for this feature."}, {"start": 888.0, "text": "There are a few things I want to get right."}, {"start": 891.0, "text": "I'm shipping this as an update to my existing app,"}, {"start": 895.0, "text": "so I want the feature to be discoverable but not required."}, {"start": 900.0, "text": "Users who try it should have a great experience,"}, {"start": 903.0, "text": "and users who don't should feel just as great about the app as before."}, {"start": 909.0, "text": "My first-run experience gives me a natural place to explain the feature"}, {"start": 913.0, "text": "and prepare for a smooth first launch."}, {"start": 915.0, "text": "But I'd been assuming the models would just be bundled with the app"}, {"start": 920.0, "text": "and when I checked, they're adding over 1 GB to my download size."}, {"start": 925.0, "text": "That hits everyone who updates,"}, {"start": 928.0, "text": "even people who'll never touch this feature."}, {"start": 931.0, "text": "So instead, I'll have my feature introduction screen"}, {"start": 934.0, "text": "include a button that only triggers the model download"}, {"start": 938.0, "text": "if the user actually wants to try it."}, {"start": 941.0, "text": "I'll use Background Assets for this."}, {"start": 945.0, "text": "If you want to dig into the details,"}, {"start": 947.0, "text": "check out \"Discover Apple-Hosted Background Assets\""}, {"start": 950.0, "text": "from last year's WWDC."}, {"start": 954.0, "text": "Now let's look at how that plays out."}, {"start": 957.0, "text": "When a user says they want to give the feature a try,"}, {"start": 961.0, "text": "I request the model assets and show them the download progress."}, {"start": 967.0, "text": "Once that's done, I kick off specialization."}, {"start": 972.0, "text": "The specialization is no longer interrupting the main experience"}, {"start": 977.0, "text": "but it's still taking a while."}, {"start": 979.0, "text": "That's a bit of an awkward waiting time for the user experience."}, {"start": 985.0, "text": "Fortunately, Core AI has an awesome feature that can help here."}, {"start": 990.0, "text": "During specialization the model goes through two main transformations."}, {"start": 996.0, "text": "First it goes through a core set of compilation steps."}, {"start": 1001.0, "text": "Second, executable artifacts are generated."}, {"start": 1006.0, "text": "These artifacts are tied to the device and OS version they were generated on."}, {"start": 1012.0, "text": "Of these two steps,"}, {"start": 1013.0, "text": "compilation is the most expensive and takes the most amount of time."}, {"start": 1020.0, "text": "The Core AI toolchain lets me do some of that compilation ahead-of-time"}, {"start": 1024.0, "text": "on my development machine, producing a compiled version of the model."}, {"start": 1030.0, "text": "While that compiled model still needs to be specialized"}, {"start": 1033.0, "text": "for the specific user's device,"}, {"start": 1035.0, "text": "there is now much less work to do and finishes significantly faster."}, {"start": 1042.0, "text": "This is done with the coreai-build command."}, {"start": 1045.0, "text": "You give it a model as input,"}, {"start": 1047.0, "text": "and depending on your options,"}, {"start": 1049.0, "text": "it generates one or more compiled models targeting specific device architectures."}, {"start": 1057.0, "text": "I did this with my model and created a background asset for each compiled model."}, {"start": 1063.0, "text": "There is a small amount of code I add to my app"}, {"start": 1066.0, "text": "to detect the architecture of the device it's running on"}, {"start": 1069.0, "text": "and then request the appropriate asset based on that."}, {"start": 1074.0, "text": "You can find all the details"}, {"start": 1075.0, "text": "in the \"Compiling Core AI models ahead of time\" article on developer.apple.com."}, {"start": 1083.0, "text": "I've integrated this"}, {"start": 1085.0, "text": "and now we have the ahead-of-time compilation already done."}, {"start": 1089.0, "text": "On my desk, I have some rocks I've collected from my travels."}, {"start": 1092.0, "text": "Let's see this in action."}, {"start": 1097.0, "text": "Now the model preparation step should be a fraction of what it was before,"}, {"start": 1102.0, "text": "and the user can get started quickly."}, {"start": 1115.0, "text": "The model gave me an example usage,"}, {"start": 1122.0, "text": "and I can save it to my collection."}, {"start": 1126.0, "text": "Let's try a few more objects."}, {"start": 1128.0, "text": "Here I have a piece of wood gifted from my college roommate,"}, {"start": 1131.0, "text": "and a sunflower from my little sister."}, {"start": 1151.0, "text": "These are meaningful objects to me,"}, {"start": 1153.0, "text": "and I want to capture them as I learn a new language."}, {"start": 1171.0, "text": "And on subsequent inferences, we are using the cached model asset"}, {"start": 1175.0, "text": "so the user experience is seamless."}, {"start": 1178.0, "text": "So I've been really enjoying this feature myself."}, {"start": 1182.0, "text": "I think it could seriously streamline building more curated card sets."}, {"start": 1186.0, "text": "Way easier than typing them out one-by-one."}, {"start": 1189.0, "text": "The thing is, I do most of my content creation on my Mac."}, {"start": 1193.0, "text": "So..."}, {"start": 1194.0, "text": "What if I brought this there as well?"}, {"start": 1197.0, "text": "Let's talk about multiplatform."}, {"start": 1201.0, "text": "Here's what we've built so far on iOS."}, {"start": 1204.0, "text": "SAM3 handles segmentation,"}, {"start": 1207.0, "text": "and Qwen 0.6B model generates the vocab cards."}, {"start": 1212.0, "text": "With Core AI, I can reuse all the same code"}, {"start": 1215.0, "text": "and just build from there on Mac."}, {"start": 1219.0, "text": "On Mac, I'm not learning one word at a time."}, {"start": 1222.0, "text": "I'm curating."}, {"start": 1224.0, "text": "I might have a folder of photos from a recent trip,"}, {"start": 1228.0, "text": "and I want to generate cards for all of them in one go."}, {"start": 1232.0, "text": "So I add a batch processing layer on top."}, {"start": 1235.0, "text": "What took an afternoon of typing can now be completely automated."}, {"start": 1242.0, "text": "And because I have more memory and processing power on the Mac,"}, {"start": 1246.0, "text": "I can step up to a larger model variant of the same model."}, {"start": 1250.0, "text": "More parameters means better reasoning and higher-quality output."}, {"start": 1255.0, "text": "For curation, that matters."}, {"start": 1258.0, "text": "I can give the model richer prompts,"}, {"start": 1260.0, "text": "ask for multiple example sentences instead of one,"}, {"start": 1264.0, "text": "or even have it generate pinyin in Chinese."}, {"start": 1268.0, "text": "The same code, calling the same API, just a more capable model underneath."}, {"start": 1275.0, "text": "And with longer context, I can go beyond individual cards."}, {"start": 1280.0, "text": "I can hand the model an entire category of words and ask it to build a curriculum:"}, {"start": 1286.0, "text": "sequence them from simple to complex, group them into lessons,"}, {"start": 1291.0, "text": "and write example sentences that reuse earlier vocab"}, {"start": 1295.0, "text": "to reinforce what the student already learned."}, {"start": 1299.0, "text": "One prompt, and I have a structured lesson plan."}, {"start": 1304.0, "text": "I went on a road trip recently"}, {"start": 1306.0, "text": "and I'd like to bring in a few photos I took to include in my iOS app."}, {"start": 1318.0, "text": "I want to segment butterflies, rock, flower, lake, bird, etc."}, {"start": 1325.0, "text": "Right away, we are parallelizing the workload to segment the photos,"}, {"start": 1329.0, "text": "to find all objects in all my photos,"}, {"start": 1332.0, "text": "so I can reuse a photo to create multiple cards."}, {"start": 1336.0, "text": "Once that's done,"}, {"start": 1337.0, "text": "we kick off the generation with our Qwen3 8 billion model."}, {"start": 1341.0, "text": "It is a more powerful reasoning model,"}, {"start": 1343.0, "text": "so you can see that it is thinking before it gives me the outputs."}, {"start": 1347.0, "text": "In fact, it is checking whether the pinyin is correct for each word"}, {"start": 1352.0, "text": "and example usage,"}, {"start": 1355.0, "text": "since those are easy to mess up."}, {"start": 1358.0, "text": "Once that's done,"}, {"start": 1359.0, "text": "we get cards with multiple images for me to now distribute to my apps,"}, {"start": 1365.0, "text": "and even a curriculum to help me guide my teaching!"}, {"start": 1375.0, "text": "There are many new features I'd like to develop,"}, {"start": 1378.0, "text": "I should get back into developing, because my agents are calling me,"}, {"start": 1382.0, "text": "so let's wrap up here."}, {"start": 1386.0, "text": "With Core AI, you can build a multiplatform app experience"}, {"start": 1390.0, "text": "where your user's data never leaves their device."}, {"start": 1394.0, "text": "There's no server to manage, no cost per token,"}, {"start": 1397.0, "text": "and no latency to the cloud."}, {"start": 1400.0, "text": "The models are ready."}, {"start": 1402.0, "text": "The tools are ready."}, {"start": 1404.0, "text": "With Core AI you have everything you need to bring powerful,"}, {"start": 1408.0, "text": "private intelligence to every Apple platform."}, {"start": 1412.0, "text": "Now, let's go build something powerful on device!"}]}