-
Core AI를 사용하여 앱에 온디바이스 AI 모델 통합하기
Qwen, Mistral, SAM3 등 엄선된 인기 오픈 소스 모델 모음을 살펴보세요. 이러한 모델은 새로운 Core AI 프레임워크를 사용하여 Apple Silicon용으로 최적화되어 있습니다. Mac에서 모델을 다운로드, 실행 및 벤치마킹하는 방법과 코드 몇 줄만으로 이러한 모델을 앱에 통합하는 방법을 알아보세요. 모델 컴파일 및 온디바이스 특수화를 위한 새로운 워크플로로 최초 모델 로드 속도를 높이는 방법을 살펴보세요. Xcode에서 Core AI 도구를 사용하여 런타임 성능을 프로파일링하고 최적화하는 방법을 알아보세요.
챕터
- 0:00 - Introduction
- 1:16 - App concept: camera-based vocab learning
- 2:52 - Model discovery
- 7:40 - Getting models with the Core AI models repository
- 8:37 - Integration
- 10:55 - Writing the Swift integration code
- 13:05 - Diagnosing model specialization latency
- 14:40 - Deployment
- 17:00 - Ahead-of-time (AOT) compilation
- 18:03 - iOS demo
- 19:57 - Multiplatform
- 23:06 - Next steps
리소스
- Core AI PyTorch Extensions
- Core AI Python
- Core AI Optimization
- Core AI
- Compiling Core AI models ahead of time
관련 비디오
WWDC26
-
비디오 검색…
안녕하세요, 환영합니다! 저는 Carina입니다 Core AI 팀 소속이에요. 오늘은 온디바이스 인텔리전스의 세계로 들어가 볼게요.
이 발표에서는 Core AI로 앱에 추가할 수 있는 흥미로운 새 기능들을 살펴볼게요.
제가 만든 어학 앱을 보여드릴게요 vision-transformer 모델을 사용해 대규모 언어 모델과 함께 동작하는 앱이에요 모두 디바이스에서 실행됩니다
Core AI는 새로운 기술 세트로 고급 온디바이스 AI 기능을 앱에 직접 구현할 수 있게 해줘요.
Core AI로 앱 경험을 구축할 수 있어요 사용자 데이터가 디바이스 밖으로 나가지 않는 환경이에요. 관리할 서버도 없고 토큰당 비용도 없으며 클라우드 지연도 없습니다 아직 보지 못하셨다면 "Meet Core AI"를 확인해 보세요. 프레임워크의 고수준 개념과 설계 철학을 배울 수 있어요 그리고 API를 가장 잘 활용하는 방법도요.
간단하게 시작해 볼게요. 저는 학생들이 새 언어로 어휘를 배울 수 있는 iOS 앱을 개발 중이에요 중국어(만다린)부터 시작합니다.
이미 직접 정리해 둔 단어 카드 세트가 있어요 단어, 번역, 예문 사용법이 담겨 있죠. 하지만 확장하기가 어렵습니다 이 모든 내용을 앱에 정적으로 포함해야 하거든요.
앱에 AI를 도입하고 싶어요. 얼마나 멋질지 생각해 보세요 학생들이 정원에서 보이는 것에 카메라를 향하거나 길거리의 사물을 찍어서 앱에 장면에서 바로 꺼내달라고 하면 어떨까요? 그 결과로 배우는 언어의 단어 카드를 자동 생성해요. 아무리 잘 정리된 덱도 호기심 가득한 학생을 못 따라가요. 하지만 카메라와 온디바이스 모델은 가능합니다
모든 카드에는 학생 자신의 삶 속 것들이 담겨요. 어디서나 원할 때마다 배우고 컬렉션도 함께 성장합니다. 이 모든 게 디바이스 로컬에서 실행돼요.
먼저 이 경험을 구현할 모델을 찾는 것부터 시작할게요. 그런 다음 앱에서 그 모델을 사용하는 코드를 작성하겠습니다. 다음으로 모델 배포에 관한 실제적인 고려사항을 살펴볼게요. 마지막으로 macOS 버전의 앱을 구축해 아이디어를 확장하고 동일한 코드를 재사용하면서 더 큰 모델로 새 기능을 열겠습니다. 모델 탐색부터 시작하겠습니다.
먼저 앱의 핵심 기능을 정의해야 합니다.
사진에서 시작하고 사용자가 무엇을 배우고 싶은지에 대한 프롬프트가 있어요.
입력을 받으면 앱은 강조 표시하고 이미지에서 사용자가 요청한 내용을 추출해야 합니다.
이 분할된 이미지가 카드의 그래픽이 됩니다.
그리고 모국어 텍스트 입력을 통해 앱이 단어에 대해 추론하고 모든 어휘 정보를 생성합니다: 번역, 배우는 언어에서의 자연스러운 예문 사용법 그리고 그 사용법의 영어 의미.
이를 고려해 사용 사례에 대한 세 가지 요구사항이 있어요. 첫 번째는 콘텐츠입니다. 이 앱은 실생활 학습에 관한 것이라 주방, 거리, 사무실 같은 환경을 처리해야 해요.
두 번째는 언어입니다. 모델 아키텍처가 처음부터 여러 언어를 지원해야 합니다.
초기 릴리스에서는 중국어(만다린)로 범위를 한정합니다.
세 번째는 기기 제약입니다. 모든 게 iPhone에서 온디바이스로 실행되므로 저장소와 메모리 공간을 작게 유지해야 합니다.
즉, 모델 크기에 대해 신중하게 고려하고 배포하는 모델 수도 결정해야 합니다.
모델 문서를 읽으며 몇 가지 방향을 탐색했고 프로토타입을 실행하고 AI 어시스턴트와 아이디어를 나눴어요.
결론은 명확했습니다: 문제를 두 개의 작은 모델로 분해하는 것이었습니다.
첫 번째는 이미지 분할을 처리하는 전용 비전 모델입니다.
두 번째는 다국어 대규모 언어 모델로 영어 레이블을 받아서 어휘, 번역, 예문을 생성합니다.
왜 두 개의 온디바이스 모델일까요? 특정 작업에 특화된 모델이 더 좋은 품질을 제공하고 개별 크기가 작으며 독립적으로 업그레이드할 수 있습니다.
각각 10억 파라미터 미만의 변형을 목표로 하고 있어요 온디바이스 총 공간을 관리 가능한 수준으로 유지합니다.
이미지 분할을 위해서는 SAM 3, Segment Anything Model 3에 관심이 있어요. SAM 3는 프롬프터블 이미지 분할을 위한 vision-transformer 기반 모델입니다. 제 앱에 딱 필요한 기능을 하는 강력한 모델이에요.
학생이 카메라를 어떤 대상에 향하면 SAM 3가 프롬프트에 따라 해당 객체를 정밀하게 분리합니다. 카드 그래픽을 위한 깔끔한 이미지 컷아웃을 제공해요. 프롬프트가 언어 모델을 위한 영어 레이블을 제공할 수 있습니다.
언어 모델의 경우 흐름은 단순해요: "Hummingbird"와 같은 영어 레이블이 들어가면 모델이 목표 언어로 어휘 정보를 생성합니다. 그래서 네 가지가 필요합니다. 다국어 지원으로 번역을 정확하게 처리할 것. 추론 능력으로 맥락에 맞는 예문을 얻을 것. 구조화된 출력으로 타입 필드를 안정적으로 채울 것. 그리고 콤팩트해야 비전 모델과 함께 디바이스에 맞습니다.
많은 오픈소스 언어 모델이 강력한 추론 능력을 갖추고 있어요 이 크기 범위에서요. 빠른 테스트를 해보니 Qwen이 눈에 띄었습니다 — 119개의 언어와 방언을 지원하고 추론 모델이기도 해서 단순 번역이 아닌 맥락에 맞는 예문을 생성할 수 있어요. 어휘 카드 생성의 훌륭한 시작점이에요.
6억 파라미터 버전의 모델도 있어서 제 앱에 잘 맞을 것 같습니다. 이 모델과 관련 문서를 HuggingFace와 GitHub에서 찾았어요. 그럼 다음 질문은: Core AI로 어떻게 앱에 가져올까요?
한 가지 방법은 PyTorch 표현에서 직접 변환하는 것이에요 Core AI PyTorch 확장 패키지를 사용해서요.
Core AI 최적화 패키지로 모델 압축도 적용할 수 있어요. 이 과정에 대해 더 알아보려면 "Dive into Core AI model authoring and optimization"을 확인해 보세요. 해당 섹션에서는 SAM 3 모델을 변환하는 방법도 보여줘요!
Core AI에는 모델 최적화를 위한 강력한 도구들이 있고 변환, 심지어 직접 저작도 가능합니다 하지만 많은 인기 모델의 경우 또 다른 방법이 있습니다.
Core AI Models 리포지터리는 확인해 볼 만한 좋은 리소스예요. 여러 인기 모델이 포함되어 있으며 각각 변환 스크립트가 있고 Core AI 형식으로 최적화된 버전을 생성합니다 선택적인 플랫폼별 변형도 포함돼 있어요. Core AI 모델 리포지터리로 가볼게요.
models/는 카탈로그입니다. 사용 가능한 항목을 살펴보고 원하는 모델을 찾아 내보내기 레시피를 따르세요. python/에는 내보내기를 위한 재사용 가능한 기본 요소와 유틸리티가 있어요.
여기서 SAM 3와 Qwen 패밀리 모델을 찾았고 내보내기 레시피를 따라 Core AI 모델을 가져왔어요.
이제 통합에 대해 이야기해 볼게요.
모델 내보내기 후 Finder에서 .aimodel 파일을 받게 돼요.
SAM3 모델 안에 뭐가 있는지 살펴볼게요.
Xcode에서 모든 내용을 확인할 수 있어요. 크기가 623MB임을 알 수 있고 — iOS 27.0과 macOS 27.0을 대상으로 한다는 게 흥미롭네요. 모델에 대한 유용한 정보를 찾을 수 있어요 크기, 메타데이터 등이요.
Functions 탭을 클릭하면 이 모델의 인터페이스를 볼 수 있어요. 실제로 세 가지 별도 함수를 제공합니다. 예를 들어 imageEncode 함수를 살펴볼게요.
입력은 단순한 이미지가 아니라 특정 모양과 데이터 타입을 가진 텐서입니다. 그리고 출력은 밀집 특성 임베딩이에요.
또 다른 함수는 detect입니다. 이미지 특성과 텍스트 프롬프트를 받고 원시 마스크, 바운딩 박스, 신뢰도 점수를 출력합니다. 이 모델을 직접 사용하려면 모든 전처리 코드를 작성해야 해요 카메라 프레임을 올바른 형식으로 변환하고 원시 텐서를 의미 있는 것으로 변환하는 모든 후처리 코드도 필요해요.
Core AI Models 리포지터리가 이러한 모델별 전- 및 후처리 작업을 도와줄 수 있어요.
모델과 Python 변환 유틸리티 외에도 리포지터리에는 런타임 라이브러리 세트를 위한 Swift 패키지도 있어요. 라이브러리는 입력 시 텍스트 인코딩 같은 것들을 추상화해요 그리고 출력 시 마스크 추출과 레이블링도요. 텐서 모양을 다루는 대신 깔끔한 Swift API만 호출하면 돼요.
이미 리포지터리를 클론해 두어서 coreai-models를 쉽게 추가할 수 있어요 프로젝트의 의존성으로 추가해 테스트해 볼게요.
coreai-models URL을 Swift Package로 추가하면 CoreAILM을 선택하고 CoreAISegmentation을 앱 타겟에 추가할 수 있어요 아주 간단해요.
이제 이 두 모델을 앱에 통합하는 코드를 살펴볼게요.
CoreAIImageSegmenter는 이미지 분할 라이브러리를 가져오고 SAM 3 모델 기능을 제공해요 디스크에서 SAM 3 모델을 로드할 수 있게 해줍니다. 그런 다음 입력 텍스트 프롬프트로 텍스트 프롬프트 분할을 수행하고 "flower"와 같이요
마지막으로 최적의 분할 마스크를 추출합니다.
이제 언어 모델 차례입니다. 로드는 단 한 줄이에요. CoreAILanguageModel을 생성하고 모델 번들을 가리키면 바로 준비됩니다. 한 줄로 — 에셋 로딩, 엔진 생성 토크나이저 설정 — 모두 추상화되어 있어요.
여기서 FoundationModels를 import하고 있다는 점을 주목하세요. 이미 익숙하실 수도 있는 동일한 프레임워크입니다.
바로 여기가 훌륭한 부분입니다. 사용하려면 LanguageModelSession을 생성해요. Apple 온디바이스 언어 모델에 액세스하는 동일한 API입니다. 차이점은 이제 사용할 자체 모델을 전달한다는 것이에요. 동일한 session.respond(to:) 호출, 동일한 스트리밍 지원 동일한 구조화된 출력 기능. Foundation Models API의 편의성을 얻으면서 어떤 모델이 실행될지 정확히 선택하는 유연성도 얻게 됩니다.
가이드 생성도 지원합니다. 이 기능이 우리 사용 사례에 중요합니다. 모델이 자유 형식 텍스트를 생성하도록 두는 대신 @Generable 매크로를 제공할 수 있어요 어휘 카드가 어떻게 생겼는지 정확히 설명하는: 단어 필드, 번역 필드, 예문 필드가 있어요.
이제 실제로 작동하는 모습을 볼게요. 사진을 찍겠습니다... 그리고 기다리는 중이에요. 아직 분할 결과가 오지 않아서 카드 생성으로 넘어갈 수 없어요. 여기서 뭔가 분명히 느린 것 같아요.
코드에서 이 스피너를 보여주는 건 SAM 3 모델을 처음 인스턴스화하고 프롬프트를 보낼 때예요. 무슨 일이 일어나고 있는지 볼게요.
새로운 Core AI Instruments로 트레이스를 찍었는데 바로 그 시점에 모델 로드 이벤트가 있었고 특수화를 위한 큰 하위 이벤트가 있었어요.
특수화는 프로세스입니다 Core AI 모델을 디바이스에서 실행하도록 준비하는. 모델이 로드될 때 확인하는 과정이 있는데 이미 특수화되어 캐시되었는지 확인해요. 이 과정은 매우 큰 모델의 경우 상당한 시간이 걸릴 수 있어요. 바로 그게 Instruments 트레이스에서 보였던 것이에요.
이후 로드는 캐시에서 이루어져 빠르지만 첫 번째 시간은 미리 계획해야 할 사항이에요.
그게 사용자 경험 도중에 일어나면... 아마 좋지 않을 것 같아요. 그러면 언제 해야 할까요? 앱 실행 시 시작하거나 백그라운드에서 실행할 수도 있지만 사용자가 이 기능에 관심조차 없다면 낭비처럼 느껴져요.
더 나은 방법은 전용 최초 실행 경험을 만드는 것 같아요 이 작업이 일어나도록 이동할 수 있는 곳을 사용자가 처음으로 이 기능을 배우는 동안으로요. 이렇게 하면 모델 로딩과 특수화가 인터랙티브 흐름 밖으로 이동하게 됩니다
그 변경을 하기 전에 잠깐 되돌아보고 싶어요 이 기능의 배포 전략에 대해 더 폭넓게 생각해 보고 싶어요.
제대로 해야 할 몇 가지가 있어요. 기존 앱의 업데이트로 출시할 건데 기능을 발견할 수 있되 필수는 아니길 원해요. 사용해보는 사용자들은 훌륭한 경험을 해야 하고 사용하지 않는 사용자도 이전처럼 앱에 만족해야 합니다.
최초 실행 경험은 기능을 설명하기에 자연스러운 장소를 제공하고 원활한 첫 실행을 준비할 수 있게 해줍니다. 하지만 모델을 앱과 함께 번들로 포함한다고 가정했는데
확인해 보니 다운로드 크기에 1GB 이상이 추가되었어요. 업데이트하는 모든 사용자에게 영향을 주고 이 기능을 절대 사용하지 않을 사람들도 포함해서요.
그래서 기능 소개 화면에 모델 다운로드만 트리거하는 버튼을 포함해서 사용자가 실제로 사용하려 할 때만 작동하게요. 이를 위해 Background Assets를 사용할게요. 세부 사항을 알고 싶다면 "Discover Apple-Hosted Background Assets"를 작년 WWDC에서 확인해 보세요.
이제 어떻게 진행되는지 살펴볼게요.
사용자가 이 기능을 사용해 보고 싶다고 하면 모델 에셋을 요청하고 다운로드 진행 상황을 보여줘요.
완료되면 특수화를 시작합니다.
특수화가 더 이상 주요 경험을 방해하지 않지만
여전히 시간이 걸려요. 사용자 경험에 있어 다소 어색한 대기 시간이에요.
다행히 Core AI에는 여기서 도움이 될 멋진 기능이 있어요.
특수화 중에 모델은 두 가지 주요 변환을 거칩니다. 먼저 핵심적인 컴파일 단계를 거쳐요.
두 번째로 실행 가능한 아티팩트가 생성됩니다.
이 아티팩트는 생성된 디바이스와 OS 버전에 연결되어 있어요.
이 두 단계 중에서 컴파일이 가장 비용이 많이 들고 가장 많은 시간이 걸립니다.
Core AI 툴체인을 사용하면 그 컴파일의 일부를 사전에 할 수 있어요 개발 머신에서 모델의 컴파일된 버전을 생성합니다.
컴파일된 모델이 여전히 특수화가 필요하지만 특정 사용자의 디바이스에 맞게요. 이제 해야 할 작업이 훨씬 적어 훨씬 빠르게 완료됩니다.
coreai-build 명령으로 수행합니다. 모델을 입력으로 제공하면 옵션에 따라 특정 디바이스 아키텍처를 대상으로 하나 이상의 컴파일된 모델을 생성해요.
제 모델에 이를 적용하고 각 컴파일된 모델에 대한 백그라운드 에셋을 만들었어요. 앱에 추가하는 소량의 코드가 있어요 실행 중인 디바이스의 아키텍처를 감지하고 그에 따라 적절한 에셋을 요청하는 코드예요.
모든 세부 사항은 developer.apple.com의 "Compiling Core AI models ahead of time" 문서에서 찾을 수 있어요.
이를 통합했고 이제 사전 컴파일이 완료되었습니다. 책상에 여행에서 수집한 돌들이 있어요. 실제로 작동하는 모습을 볼게요.
이제 모델 준비 단계가 이전보다 훨씬 빠를 것이고 사용자가 빠르게 시작할 수 있어요.
모델이 예문 사용법을 제공해줬어요
컬렉션에 저장할 수 있습니다.
몇 가지 다른 사물도 시도해 볼게요. 대학 룸메이트에게 받은 나무 조각이 있고 여동생에게 받은 해바라기도 있어요.
저에게 의미 있는 물건들이에요 새로운 언어를 배우면서 이것들을 담아두고 싶어요.
이후 추론에서는 캐시된 모델 에셋을 사용해 사용자 경험이 매끄럽습니다.
저 자신도 이 기능을 정말 즐기고 있어요. 더 잘 정리된 카드 세트를 만드는 것을 크게 간소화할 수 있을 것 같아요. 하나씩 입력하는 것보다 훨씬 쉬워요. 사실 저는 대부분의 콘텐츠를 Mac에서 만들어요. 그래서... 그것도 Mac으로 가져오면 어떨까요? 멀티플랫폼에 대해 이야기해 볼게요.
iOS에서 지금까지 만든 것을 보여드릴게요. SAM3가 분할을 처리하고 Qwen 0.6B 모델이 어휘 카드를 생성해요. Core AI를 사용하면 동일한 코드를 모두 재사용할 수 있고 Mac에서 그것을 바탕으로 구축할 수 있어요.
Mac에서는 한 번에 한 단어씩 배우지 않아요. 큐레이팅하는 거예요. 최근 여행의 사진이 담긴 폴더가 있을 수 있어요 그 사진들 모두에 대해 한 번에 카드를 생성하고 싶어요. 그래서 배치 처리 레이어를 추가합니다. 오후 내내 입력해야 했던 작업이 이제 완전히 자동화될 수 있어요.
Mac에서는 더 많은 메모리와 처리 능력이 있으니까요 동일한 모델의 더 큰 변형으로 업그레이드할 수 있어요. 더 많은 파라미터는 더 나은 추론과 더 높은 품질의 출력을 의미해요. 큐레이션에서는 그게 중요합니다. 모델에 더 풍부한 프롬프트를 제공하고 하나 대신 여러 개의 예문을 요청하거나 중국어 병음을 생성하도록 할 수도 있어요. 동일한 코드, 동일한 API 호출로 더 뛰어난 모델을 사용하는 거예요.
더 긴 컨텍스트로 개별 카드를 넘어설 수 있어요. 모델에 전체 단어 카테고리를 주고 커리큘럼을 구축하도록 요청해요: 단순한 것에서 복잡한 순서로 배열하고 수업으로 그룹화하며 이전 어휘를 재사용하는 예문을 작성하고 학생이 이미 배운 것을 강화하도록 해요. 프롬프트 하나로 구조화된 수업 계획이 완성돼요.
최근에 로드 트립을 다녀왔는데 찍은 사진 몇 장을 iOS 앱에 포함하고 싶어요.
나비, 바위, 꽃, 호수, 새 등을 분할하고 싶어요. 즉시 사진을 분할하는 작업을 병렬화해요 모든 사진의 모든 객체를 찾기 위해 사진 하나로 여러 카드를 만들 수 있도록요.
완료되면 Qwen3 8B 모델로 생성을 시작해요. 더 강력한 추론 모델이어서 출력을 제공하기 전에 생각하는 것을 볼 수 있어요. 실제로 각 단어의 병음이 올바른지 확인하고 있어요 그리고 예문 사용법도요
그것들은 틀리기 쉬우니까요. 완료되면 여러 이미지가 포함된 카드를 받고 이제 앱에 배포할 수 있어요
심지어 교육을 안내하는 커리큘럼까지요!
개발하고 싶은 새 기능이 많이 있는데 다시 개발로 돌아가야겠어요 에이전트들이 저를 부르고 있으니까요 여기서 마무리할게요.
Core AI를 사용하면 멀티플랫폼 앱 경험을 구축할 수 있어요 사용자 데이터가 디바이스를 벗어나지 않는. 관리할 서버도 없고 토큰당 비용도 없으며 클라우드 지연도 없습니다. 모델이 준비되어 있습니다. 도구도 준비되어 있습니다. Core AI를 사용하면 강력하고 프라이빗한 인텔리전스를 모든 Apple 플랫폼에 제공하는 데 필요한 모든 것이 있어요. 이제 디바이스에서 강력한 것을 만들어 볼까요!
-
-
11:01 - Load and run SAM3 image segmentation
import CoreAIImageSegmenter // Load let segmenter = try await ImageSegmenter(resourcesAt: sam3ModelURL) // Use let response = try await segmenter.segment(image: inputImage, prompt: "flower") let mask = response.segments.first?.mask -
11:28 - Load a language model and create a session
import FoundationModels import CoreAILanguageModels // Create model instance let model = try await CoreAILanguageModel(resourcesAt: qwen3ModelURL) // Create session using the model let session = LanguageModelSession(model: model) // Generate response let response = try await session.respond(to: "...") -
12:29 - Generate structured output with @Generable
import FoundationModels import CoreAILanguageModels @Generable struct VocabCard { let chineseWord: String let englishMeaning: String let exampleSentence: String } let model = try await CoreAILanguageModel(resourcesAt: modelURL) let session = LanguageModelSession(model: model) let response = try await session.respond( to: "Create a vocab card for flower", generating: VocabCard.self ) let card: VocabCard = response.content -
17:22 - Compile a Core AI model ahead of time
$ xcrun coreai-build compile MyModel.aimodel --platform iOS
-
-
- 0:00 - Introduction
Overview of Core AI — a new set of technologies that lets you bring advanced on-device AI capabilities to your apps with no server, no cost per token, and no cloud latency.
- 1:16 - App concept: camera-based vocab learning
Introduction to the demo app — an iOS language-learning app where students point their camera at real-world objects to generate vocab cards with translations, example sentences, and segmented images, all running on-device.
- 2:52 - Model discovery
How to define your app's AI requirements — content, language, and device constraints — and select the right models: SAM3 for text-prompted image segmentation and Qwen 0.6B (a 119-language reasoning model) for vocab card generation.
- 7:40 - Getting models with the Core AI models repository
How to use the coreai-models GitHub repository to find popular models with ready-made export recipes — browsing the catalog, running the export script for SAM3 and Qwen, and getting optimized .aimodel files.
- 8:37 - Integration
How to inspect .aimodel files in Xcode (size, platform targets, function signatures, tensor shapes), add the coreai-models Swift package, and select the CoreAILM and CoreAISegmentation libraries as app dependencies.
- 10:55 - Writing the Swift integration code
How to write the Swift code to use both models — loading SAM3 and running text-prompted segmentation, loading Qwen with a single CoreAILanguageModel line, and using the familiar LanguageModelSession API from Foundation Models with structured @Generable output for typed vocab card fields.
- 13:05 - Diagnosing model specialization latency
Using the new Core AI Instruments template to identify that first-run latency is caused by model specialization — the process that compiles a Core AI model for the specific device — and understanding when and how to handle it gracefully.
- 14:40 - Deployment
How to design a deliberate deployment strategy: using a first-run experience to introduce the feature, keeping models out of the app bundle to avoid bloating update size for all users, and triggering on-demand model download via Background Assets only when the user opts in.
- 17:00 - Ahead-of-time (AOT) compilation
How to use the coreai-build command to perform compilation ahead-of-time on your development machine — generating device-architecture-specific compiled model assets that dramatically reduce on-device specialization time during the first-run experience.
- 18:03 - iOS demo
Live demo of the complete iOS experience: fast model preparation with AOT compilation, SAM3 segmenting real objects (rocks, wood, sunflower), and Qwen generating Mandarin vocab cards — with seamless subsequent inferences from the cached model.
- 19:57 - Multiplatform
How the same Swift code runs on macOS with no changes — adding batch processing for folders of photos, stepping up to Qwen3 8B for higher-quality reasoning and pinyin generation, using longer context for curriculum generation, and a live macOS demo processing road trip photos into a full lesson plan.
- 23:06 - Next steps
Summary: Core AI gives you everything you need to build private, multi-platform on-device AI experiences — no server, no cost per token, no cloud latency.