-
비공개 클라우드 컴퓨팅에서 Apple Foundation Model 활용하기
비공개 클라우드 컴퓨팅을 사용하면 사용자 개인정보를 보호하면서 강력한 최첨단 모델에 접근할 수 있습니다. 이러한 모델의 작동 방식과 Foundation Models 프레임워크를 사용하여 해당 모델에 접근하는 방법을 살펴보세요. 앱에서 사용 가능 여부를 확인하고 원활한 대안을 처리하는 모범 사례를 알아보세요.
챕터
- 0:00 - Introduction
- 1:23 - What is Private Cloud Compute
- 2:43 - Integrating PCC with Foundation Models
- 4:00 - Deciding between on-device and PCC
- 4:32 - Reasoning levels and context size
- 6:15 - Evaluating and combining models
- 7:10 - Handling usage limits
- 10:15 - Next steps
리소스
-
비디오 검색…
안녕하세요, 저는 Louis입니다 이 영상에서는 Private Cloud Compute를 사용해 강력한 새 서버 LLM에 앱에서 접근하는 방법을 보여드리겠습니다 지난해에는 강력한 온디바이스 LLM에 접근할 수 있는 기능을 제공했습니다 새로운 Foundation Models 프레임워크와 함께요 올해는 온디바이스 LLM을 더욱 개선했습니다 이제 이미지 입력을 지원하고 지시 수행 능력이 향상되었으며 커스텀 도구 호출도 더 잘 됩니다 하지만 더 복잡한 사용 사례에는 더욱 강력한 모델이 필요하다는 것을 압니다 훨씬 더 강력한 모델이요 그래서 올해는 Private Cloud Compute에서 실행되는 새로운 서버 모델에도 접근할 수 있게 해드립니다 이 모델로 앱에서 복잡한 AI 기능을 구현할 수 있습니다 대용량 사용자 입력을 처리하는 어시스턴트나
도구 호출을 많이 사용하는 기능 대용량 출력이 필요한 기능 등을요
watchOS에서도 Private Cloud Compute를 호출할 수 있습니다
이 영상에서는 Private Cloud Compute가 무엇인지 살펴보겠습니다 Foundation Models 프레임워크로 앱에서 접근하는 방법과 Foundation Models 프레임워크를 통해 사용 한도를 처리하는 방법도 알아봅니다
Private Cloud Compute는 시스템 기능을 지원하여 복잡한 작업을 Apple 서버로 전송합니다 이제 앱에서도 이 기능을 사용할 수 있습니다 강력한 서버 LLM에 접근하면서도 개인 정보 보호를 타협하지 않아도 됩니다 Private Cloud Compute는 엔드 투 엔드 개인 정보 보호를 염두에 두고 설계되어 사용자 데이터가 저장되지 않습니다 데이터는 요청 처리에만 사용됩니다 이 모든 것은 연구자들에 의해 독립적으로 검증되었습니다 더 좋은 점도 있습니다 Private Cloud Compute는 iCloud와 함께 OS에 통합되어 있습니다 그래서 인증이나 API 키에 대해 걱정할 필요가 없습니다 일반적으로 서버 모델에서 필요한 것들이요 사용자는 Apple Intelligence를 지원하는 기기만 있으면 됩니다 계정 설정도, 인증도, API 키도 필요 없어 지금까지 사용해 본 서버 LLM 중 가장 쉽습니다 더 좋은 점은, 개발자에게 토큰 비용이 없다는 것입니다 각 사용자에게 일일 한도가 있습니다 사용자는 iCloud+로 업그레이드하여 더 높은 한도를 얻을 수 있습니다
이 모델은 다운로드 수 200만 미만의 앱에서 사용할 수 있습니다 오늘 개발자 웹사이트에서 신청할 수 있습니다 앱에서 이를 통합하는 방법을 살펴보겠습니다 Foundation Models 프레임워크를 사용해서요 Foundation Models를 사용하는 앱이 이미 있다면 단 3줄의 코드로 온디바이스 LLM에 프롬프트를 전송할 수 있다는 걸 아실 겁니다 세션을 생성한 후 프롬프트에 응답하도록 요청하면 됩니다 단 1줄의 코드만 변경하면 PCC의 새 서버 모델로 전환할 수 있습니다 그 한 줄만으로 훨씬 더 큰 모델과 대화하게 됩니다 더 넓은 컨텍스트와 더 복잡한 추론 능력을 갖춘 모델이죠 Foundation Models 프레임워크는 통합된 Swift API를 제공합니다 어떤 모델을 사용하든 관계없이요 Generable로 구조화된 출력을 받거나 Tools를 호출하는 것도 PCC 모델에서 똑같이 작동합니다 온디바이스 모델과 동일하게요
이를 통해 모델 간 전환이 쉽고 코드를 다시 작성할 필요가 없습니다
참고로 온디바이스 모델과 마찬가지로 PCC는 Apple Intelligence 기기에서만 사용할 수 있습니다 availability API를 확인하고
Apple Intelligence를 사용할 수 없을 때 적절히 처리하는 것이 중요합니다 사용자 기기에서 사용 불가능한 경우를요 Foundation Models를 사용하는 기능을 작성할 때 어떤 모델을 사용할지 결정하는 것은 중요한 결정입니다 차이점을 살펴보겠습니다 온디바이스 System 모델과 PCC 모델의 차이를요 둘 다 개인 정보 보호를 제공합니다 온디바이스 모델은 오프라인에서 작동하고 PCC는 인터넷 연결이 필요합니다 온디바이스 모델은 요청 한도가 없고 PCC는 사용자당 일일 한도를 제공합니다 컨텍스트 크기는 일부 기능에서 또 다른 중요한 요소입니다
온디바이스 모델은 4K를 제공하고 PCC는 32K를 제공합니다 그리고 PCC 모델은 추론을 지원합니다 추론이란 무엇일까요?
LLM이 프롬프트에 응답할 때 일반적으로 프롬프트를 읽고 응답을 생성합니다 추론을 사용하면 모델이 응답을 생성하기 전에 먼저 생각합니다 이는 모델이 추가 텍스트를 생성하도록 함으로써 실제로 이루어집니다 트랜스크립트의 별도 세그먼트에서요 PCC 모델은 3가지 수준의 추론을 제공합니다 Light는 모델이 약간의 추가 컨텍스트를 수집하게 합니다 Moderate는 모델이 조금 더 깊이 추론하게 합니다 Deep에서는 추론 세그먼트의 텍스트가 실제 응답보다 더 길 수도 있습니다
세션에서 respond를 호출할 때 추론 수준을 설정할 수 있습니다
세션 트랜스크립트에는 추론 세그먼트가 포함됩니다 트랜스크립트를 관찰하여 진행 상황을 표시할 수 있습니다 특히 Deep 추론 수준에서 유용한데 시간이 걸릴 수 있기 때문입니다 단, 참고로
추론은 모델이 생성하는 추가 텍스트입니다 따라서 토큰을 사용합니다 이는 컨텍스트 크기 한도에 포함됩니다
컨텍스트 크기에 대해 말하자면 편리한 API도 추가했습니다 프로그래밍 방식으로 모델의 컨텍스트 크기를 얻을 수 있는 API입니다 contextSize 속성에 접근하세요 SystemLanguageModel이나 PrivateCloudComputeLanguageModel에서요 온디바이스 모델과 PCC 모델 중 선택할 때나 사용할 추론 수준을 결정할 때 데이터를 기반으로 결정을 내리는 것이 좋습니다 느낌이 아니라요 평가를 통해 특정 기능의 품질을 이해할 수 있습니다 온디바이스 모델이 얼마나 잘 수행하는지 놀랄 수도 있습니다 특정 작업에서는요 특히 올해 업데이트된 모델로는요 하지만 알 수 있는 유일한 방법은 평가뿐입니다
그래서 새로운 Evaluations 프레임워크를 만들었습니다 Foundation Models 기능을 평가하는 데 도움을 주는 새로운 Swift 프레임워크입니다 Xcode에 바로 통합되어 있어 시작하기 쉽습니다 "Meet the Evaluations framework"를 확인하여 자세히 알아보세요
온디바이스 모델과 서버 모델을 함께 사용할 수도 있습니다 "Build agentic app experiences with Foundation Models"를 확인하여 자세히 알아보세요 앱에서 PCC 모델을 사용할 때 사용 한도를 잘 처리하는 것이 중요합니다 요청은 사용자의 iCloud 계정으로 집계됩니다 사용자가 한도에 도달하는 경우를 위해 앱을 최적화할 수 있습니다 그 방법을 살펴보겠습니다
여기 PCC 모델을 사용해 기사를 요약하는 앱이 있습니다 마크다운 파일을 선택하면 텍스트와 이미지를 가져와 LanguageModelSession에 전달하여 요약을 생성합니다 PCC가 제공하는 넓은 컨텍스트 크기와 잘 작동합니다 하지만 사용자가 한도에 도달하면 요청에서 오류가 발생합니다 그 오류가 UI에 그대로 표시된다면 좋지 않은 사용자 경험이 됩니다 실행 가능한 정보가 없기 때문입니다 더 잘 처리하려면 모델의 quotaUsage에서 isLimitReached를 확인하세요 그리고 앱의 커스텀 UI로 처리하세요 여기서는 버튼 아래에 레이블을 사용하고 있습니다
사용자의 한도가 초과되면 사용자가 한도를 관리할 수 있는 버튼을 표시할 수 있습니다 예를 들어 사용자가 계정을 업그레이드하여 더 높은 한도를 얻을 수 있습니다 그러면 더 많은 요청을 할 수 있게 됩니다
이를 기존 UI와 통합하세요 사용 한도에 대한 알림은 표시하지 마세요 이 UI는 지속되어야 하며 닫히지 않아야 하기 때문입니다 대신 UI 상태를 업데이트하세요 요청하는 버튼을 비활성화하는 것처럼요 그 버튼 아래에 눈에 띄지 않는 레이블을 표시하고 원하는 경우 더 높은 한도를 얻을 수 있는 버튼도 제공하세요 사용자가 한도에 근접하는 경우도 감지할 수 있습니다 사용자에게 일일 한도에 가까워지고 있음을 알리는 것이 좋습니다 그러면 어떤 요청을 할지 현명한 결정을 내릴 수 있습니다 Xcode에는 편리한 디버그 옵션이 있습니다 사용 한도 상태를 시뮬레이션할 수 있는요 스킴에서 Debug를 선택하고 Options를 선택하세요
여기에 Simulate Apple Foundation Models Availability 옵션이 있습니다 Quota Usage Limit Reached를 선택하면 방금 UI에서 처리한 경우를 시뮬레이션할 수 있습니다 Nearing Usage Limit도 선택할 수 있습니다 사용자가 일일 한도에 근접한 경우를 시뮬레이션하기 위해서요
이미 isLimitReached 케이스를 처리했습니다 앞의 코드에서요 이제 belowLimit 케이스도 테스트할 수 있습니다 isLimitReached와 마찬가지로 간단한 레이블을 표시할 수 있습니다
앱에서 이제 요청 버튼 아래에 레이블이 표시됩니다 여기에도 실행 가능한 버튼이 포함되어 있습니다 이제 최대 한도에 도달하지 않아도 사용자가 한도를 관리할 수 있습니다 이 모든 것이 단 몇 줄의 코드로 가능합니다 앱에 통합하는 방법을 빠르게 살펴봤습니다 Private Cloud Compute를요 앱에서 이 새 서버 모델을 사용하고 싶다면 오늘 개발자 웹사이트에서 신청할 수 있습니다 다양한 다른 콘텐츠도 있습니다 Foundation Models와 관련 프레임워크의 새로운 기능들을 알려드리는 콘텐츠입니다 "What's new in the Foundation Models framework"로 시작하세요 훌륭한 개요를 볼 수 있습니다 런타임에서 모델이 어떻게 동작하는지 더 잘 이해하려면 "Debug and profile agentic app experiences with Instruments"를 확인하세요 시청해 주셔서 감사합니다 그 책이 어디 있죠? 도서관에 가져가야 하는데요
정말로, 그 책 어디 있어요?
-
-
2:49 - Prompt the on-device model
import FoundationModels let session = LanguageModelSession() let response = try await session.respond(to: "Summarize this article: \(article)") -
3:02 - Switch to the PCC server model (one-line change)
import FoundationModels let session = LanguageModelSession( model: PrivateCloudComputeLanguageModel() ) let response = try await session.respond(to: "Summarize this article: \(article)") -
3:25 - Structured output and tools work the same
import FoundationModels @Generable struct ArticleSummary { let oneLineSummary: String let keyPoints: [String] } struct FindRelatedArticlesTool: Tool { } let session = LanguageModelSession( model: PrivateCloudComputeLanguageModel(), tools: [FindRelatedArticlesTool.self] ) let response = try await session.respond( to: "Summarize this article: \(article)", generating: ArticleSummary.self ) -
3:51 - Check availability
import FoundationModels struct ArticleSummarizationView: View { private var model = PrivateCloudComputeLanguageModel() var body: some View { if model.isAvailable { // Show UI for making request } else { // Fall back } } } -
5:26 - Set a reasoning level
let response = try await session.respond( to: prompt, contextOptions: ContextOptions(reasoningLevel: .light) ) // Reasoning levels: .light, .moderate, .deep -
5:58 - Read the context size
SystemLanguageModel().contextSize // 4096 on 26.0 // 8192 on 27.0 (newer devices) PrivateCloudComputeLanguageModel().contextSize // 32768 -
9:41 - Handle usage limits
struct ArticleSummarizationView: View { private var model = PrivateCloudComputeLanguageModel() var body: some View { if case .belowLimit(let info) = model.quotaUsage.status { if info.isApproachingLimit { Text("Nearing usage limit.") .foregroundStyle(Color.orange) } } if model.quotaUsage.isLimitReached { Text("Usage limit exceeded.") .foregroundStyle(Color.red) } if let suggestion = model.quotaUsage.limitIncreaseSuggestion { Button("Show options") { suggestion.show() } } } }
-
-
- 0:00 - Introduction
Access to a new server LLM via Private Cloud Compute. The on-device model also improves this year (image input, better instruction following and tool calling), but PCC enables more complex features: reasoning over large input, many tool calls with large outputs, even from watchOS.
- 1:23 - What is Private Cloud Compute
PCC delivers a powerful server model without compromising privacy: data is never stored, used only for the request, and independently verified. It's integrated with the OS and iCloud, so there's no authentication or API keys, no token cost to developers, a daily per-user limit (higher with iCloud+), and eligibility for apps under 2M downloads.
- 2:43 - Integrating PCC with Foundation Models
Prompting the on-device model takes three lines; switching to the PCC server model changes just one. The unified Swift API means Generable structured output and tool calling work identically, so you can switch models without rewriting code, and should check the availability API for non-Apple Intelligence devices.
- 4:00 - Deciding between on-device and PCC
Both offer privacy, but the on-device model works offline with no request limits and a 4K context, while PCC needs a connection, has a daily limit, offers a 32K context, and supports reasoning.
- 4:32 - Reasoning levels and context size
Reasoning lets the model think before responding by generating extra transcript text, at three levels (light, moderate, deep). Set it on respond, observe the transcript to show progress, and remember reasoning consumes tokens against the context limit, now readable via the contextSize property.
- 6:15 - Evaluating and combining models
Choose models and reasoning levels based on data, not vibes; the updated on-device model may surprise you. Use the new Evaluations framework (see "Meet the Evaluations framework") and combine on-device and server models together (see "Build agentic app experiences with Foundation Models").
- 7:10 - Handling usage limits
Handle the per-user iCloud quota gracefully: check isLimitReached on the model's quotaUsage and show persistent, actionable UI (such as a disabled button with an upgrade option) rather than an alert. Detect the approaching-limit case too, and use Xcode's Simulate Apple Foundation Models Availability debug option to test both states.
- 10:15 - Next steps
Apply for the server model on the developer website, and explore related content: "What's new in the Foundation Models framework" for an overview and "Debug and profile agentic app experiences with Instruments" for runtime behavior.