← Alle Beitrage

Foundation Models Anwendungsfälle: General vs. Content Tagging

Apples SystemLanguageModel-Dokumentation beginnt mit dem Basismodell, dann den Anwendungsfällen, dann den Adaptern. SystemLanguageModel.default ist das Basismodell; SystemLanguageModel.UseCase dokumentiert general und contentTagging; benutzerdefinierte Adapter sind der vom Entwickler trainierte Pfad, der gesondert behandelt wird.123

Der frühere Beitrag zum Tool-Protokoll behandelte, wie man das Standardmodell zu nützlicher Arbeit bewegt. Die Frage, die dieser Beitrag beantwortet, ist die nächste: Wann reicht das Standardmodell mit Prompting und Tools aus, und wann verdient sich Apples .contentTagging-Anwendungsfall seinen Platz? Der Pfad mit benutzerdefinierten Adaptern ist ein eigener Beitrag; der vom Entwickler verwaltete Lebenszyklus hat zu viel Oberfläche, um ihn mit der Entscheidungsmatrix zu vermischen.

TL;DR

  • SystemLanguageModel.UseCase ist ein Struct mit zwei statischen Eigenschaften: .general und .contentTagging.3 Andere Anwendungsfälle sind nicht dokumentiert.
  • .general ist der Standard. Greifen Sie zuerst darauf zurück. Prompting, Instructions, Guided Generation und Tool Calling setzen alle auf .general auf; die Spezialisierung ist der letzte Hebel, den man zieht.
  • .contentTagging gehört zu Apples Content-Tagging-Leitfaden: Themen, Aktionen, Objekte und Emotionen in Eingabetext identifizieren und auf .general zurückfallen, wenn Apples genannte Grenzen nicht passen.5
  • Der dritte Pfad (benutzerdefinierte Adapter, der Adapter-Typ, das Entitlement, das Toolkit) ist dort, wo die operative Komplexität liegt. Dazu ein anderer Beitrag.

Was SystemLanguageModel tatsächlich ist

Apple beschreibt SystemLanguageModel als das On-Device-Sprachmodell für Textgenerierungsaufgaben, mit default als Basismodell. Verfügbarkeit ist Laufzeitzustand: Geräteberechtigung, Apple-Intelligence-Einstellungen und Modellbereitschaft sind alle relevant, bevor eine App modellgestützte UI anzeigt.1

Apples Dokumentation listet die Modellplattformen (iOS, iPadOS, Mac Catalyst, macOS, visionOS, alle 26.0+) und zwei aktuelle Modellversionen: eine für OS-Releases 26.0–26.3 und eine weitere für 26.4. Apple aktualisiert das On-Device-Modell in routinemäßigen OS-Updates.1

Die Verfügbarkeit wird zur Laufzeit geprüft. SystemLanguageModel.availability ist ein Availability-Enum mit den folgenden Cases, wie in Apples Beispielcode dokumentiert:1

struct GenerativeView: View {
    private var model = SystemLanguageModel.default

    var body: some View {
        switch model.availability {
        case .available:
            // Show your intelligence UI.
        case .unavailable(.deviceNotEligible):
            // Show an alternative UI.
        case .unavailable(.appleIntelligenceNotEnabled):
            // Ask the person to turn on Apple Intelligence.
        case .unavailable(.modelNotReady):
            // The model isn't ready because it's downloading or because
            // of other system reasons.
        case .unavailable(let other):
            // The model is unavailable for an unknown reason.
        }
    }
}

isAvailable ist ein Convenience-Getter, der nur dann true zurückgibt, wenn das System vollständig bereit ist.1 Prüfen Sie immer, bevor Sie aufrufen.

Der erste Pfad: das General-Modell prompten

Apples allgemeiner Leitfaden besagt, dass das On-Device-Modell die Textgenerierung und das Textverständnis für die unten genannten Aufgaben unterstützt, einschließlich Generate tags from text.4

Fähigkeit Beispiel-Prompt
Zusammenfassen „Summarize this article.”
Entitäten extrahieren „List the people and places mentioned in this text.”
Text verstehen „What happens to the dog in this story?”
Text überarbeiten oder bearbeiten „Change this story to be in second person.”
Text klassifizieren oder beurteilen „Is this text relevant to the topic ‘Swift’?”
Kreatives Schreiben verfassen „Generate a short bedtime story about a fox.”
Tags aus Text generieren „Provide two tags that describe the main topics of this text.”
Spieldialog generieren „Respond in the voice of a friendly inn keeper.”

Apples Vermeidungsliste ist separat: einfache Mathematik, Code-Erstellung und logisches Schlussfolgern.4

Vermeiden Beispiel
Einfache Mathematik „How many b’s are there in bagel?”
Code-Generierung „Generate a Swift navigation list.”
Logisches Schlussfolgern „If I’m at Apple Park facing Canada, what direction is Texas?”

Beachten Sie, dass „generate tags from text” in der Gut-darin-Tabelle für das General-Modell erscheint. Das ist wichtiger Kontext für die Spezialisierungsentscheidung weiter unten.

Auf dem General-Pfad dokumentiert Apple Prompts, Instructions, Guided Generation, Tool Calling und Generation Options.4

Das Kontextfenster beträgt 4.096 Tokens für das Systemmodell.4 Apple weist darauf hin, dass ein Token in Sprachen wie Englisch, Spanisch oder Deutsch drei bis vier Zeichen entspricht und in Sprachen wie Japanisch, Chinesisch oder Koreanisch ein Token pro Zeichen. Instructions, Prompts und Ausgaben zählen alle auf das Limit. Wenn eine Session es überschreitet, wirft das Framework LanguageModelSession.GenerationError.exceededContextWindowSize(_:).4

Der zweite Pfad: .contentTagging

SystemLanguageModel.UseCase ist als struct (kein Enum) mit zwei statischen Eigenschaften dokumentiert:3

static let general: SystemLanguageModel.UseCase
static let contentTagging: SystemLanguageModel.UseCase

Es gibt keine weiteren dokumentierten Cases. Wenn ein Artikel einen dritten Anwendungsfall benennt, erfindet der Artikel ihn.

.contentTagging hat eine andere Form als .general. Apples Leitfaden beschreibt das contentTagging-Modell als eines, das „Themen, Aktionen, Objekte und Emotionen in Eingabetext identifiziert” und Tags als „ein bis wenige Wörter in Kleinbuchstaben” produziert.5 Das Modell ist darauf ausgelegt, Eingaben auszuwerten, statt konversationell zu antworten: „It isn’t a typical language model that responds to a query from a person: instead, it evaluates and groups the input you provide.”5

Laden des Modells mit .contentTagging:

let model = SystemLanguageModel(useCase: .contentTagging)
let session = LanguageModelSession(
    model: model,
    instructions: """
        Provide the two tags that are most significant in the context of topics.
        """
)

Der dokumentierte Convenience-Initializer ist init(useCase:guardrails:).1 Apples Beispielcode ruft ihn ohne das guardrails-Argument auf, was darauf hindeutet, dass guardrails an der Aufrufstelle einen Standardwert trägt.

Das contentTagging-Modell integriert sich mit Generable, sodass Sie einen Swift-Typ definieren können, der die Form der gewünschten Tags erfasst:

@Generable
struct ContentTaggingResult {
    @Guide(
        description: "Most important actions in the input text.",
        .maximumCount(2)
    )
    let actions: [String]

    @Guide(
        description: "Most important emotions in the input text.",
        .maximumCount(3)
    )
    let emotions: [String]

    @Guide(
        description: "Most important objects in the input text.",
        .maximumCount(5)
    )
    let objects: [String]

    @Guide(
        description: "Most important topics in the input text.",
        .maximumCount(2)
    )
    let topics: [String]
}

let response = try await session.respond(
    to: prompt,
    generating: ContentTaggingResult.self
)

Apples Verhaltenshinweis: „For very short input queries, topic and emotion tagging instructions provide the best results. Actions or object lists will be too specific, and may repeat the words in the query.”5 Das contentTagging-Modell „respects the output format you want, even in the absence of instructions”, sodass die Generable-Form mehr Gewicht hat als ein langatmiger System-Prompt.

Der Entscheidungsbaum (Apples eigene Worte)

Apple gibt die Entscheidungsregel direkt vor. Verwenden Sie .general für Tags außerhalb von Aktionen, Objekten, Emotionen oder Themen; für Hashtags; für Tool-Calling-Tag-Flows; und für Einschränkungen, die über maximumCount hinausgehen.5

Die vier exakten Sätze aus Apples contentTagging-Leitfaden:5

  1. „If you’re tagging content that’s not an action, object, emotion, or topic, use general instead.”
  2. „Use the general model to generate content like hashtags for social media posts.”
  3. „If you adopt the tool calling API, and want to generate tags, use general and pass the Tool output to the content tagging model.”
  4. „If you have a complex set of constraints on tagging that are more complicated than the maximum count support of the tagging model, use general instead.”

Wählen Sie .contentTagging nur dann, wenn die Aufgabe Text-Tagging in Apples vier dokumentierte Kategorien ist und die Ausgabe-Einschränkungen zu maximumCount passen. Wenn weder .general noch .contentTagging passt, überlassen Sie die Entscheidung über benutzerdefinierte Adapter dem Beitrag zum Adapter-Lebenszyklus.5

Was Apple nicht veröffentlicht hat

Apple dokumentiert .contentTagging als adaptiertes Content-Tagging-Modell, veröffentlicht jedoch weder den Adaptionsmechanismus, Benchmark-Deltas noch zusätzliche statische UseCase-Eigenschaften. Behandeln Sie alles über general und contentTagging hinaus als unbestätigt, bis developer.apple.com es dokumentiert.35

Apples eigene Formulierung zur Versionierung: „Apple will periodically update SystemLanguageModel in routine OS updates to improve the on-device model’s abilities and performance.”1 Behandeln Sie die Oberfläche als versioniert.

Erkenntnisse

  1. Zwei dokumentierte Anwendungsfälle. Apples UseCase-Seite dokumentiert general und contentTagging; nehmen Sie keinen dritten Wert an.3
  2. Standardmäßig .general. Prompting + Tools + Guided Generation deckt die meisten Anwendungsfälle ab, für die das On-Device-Modell ausgelegt ist. Die Spezialisierung ist der letzte Hebel, nicht der erste.
  3. Wählen Sie .contentTagging nur, wenn Apples dokumentierte Form passt. Themen, Aktionen, Objekte, Emotionen. Tags aus ein bis wenigen Wörtern in Kleinbuchstaben. Einschränkungen auf maximumCount-Niveau. Bei mehr: zurückfallen.
  4. Lesen Sie Apples „use general instead”-Regeln. Es sind vier konkrete Sätze im contentTagging-Leitfaden.5 Jeder davon ist eine echte Grenze.
  5. Der Pfad mit benutzerdefinierten Adaptern ist eine eigenständige Entscheidung. Andere Oberfläche, anderer Lebenszyklus, anderer Beitrag.

Das vollständige Apple-Ecosystem-Cluster: das On-Device-LLM und Tool-Protokoll für die Primitive des Frameworks; die Aufteilung agentischer Workflows zwischen In-App- und Developer-Tooling-LLMs; App Intents vs. MCP für die Routing-Frage über alle drei hinweg. Der Hub befindet sich in der Apple Ecosystem Series. Für breiteren Kontext zu iOS mit AI-Agenten siehe den iOS Agent Development Guide.

FAQ

Wie viele SystemLanguageModel.UseCase-Werte gibt es?

Zwei statische Eigenschaften nach aktueller Dokumentation: .general und .contentTagging.3 Wenn Sie in einem Tutorial oder einer von LLM generierten Antwort einen dritten Wert sehen, prüfen Sie ihn vor der Übernahme gegen developer.apple.com.

Wann sollte ich .contentTagging verwenden, statt einfach .general zu prompten?

Verwenden Sie .contentTagging, wenn die Aufgabe darin besteht, Themen, Aktionen, Objekte oder Emotionen in Eingabetext zu identifizieren und kurze Tags in Kleinbuchstaben zurückzugeben. Apples Leitfaden listet vier Szenarien auf, in denen stattdessen .general die richtige Antwort ist: Tagging, das nicht in diese vier Kategorien passt, Hashtag-Generierung, Tag-Pipelines, die über Tool Calls geleitet werden, sowie Tagging-Einschränkungen, die über maximumCount hinausgehen.5

Akzeptiert das contentTagging-Modell beliebige Instructions wie das General-Modell?

Es akzeptiert Instructions, aber das Modell ist darauf ausgelegt, Eingaben auszuwerten, statt auf nutzerartige Anfragen zu antworten. Apples Leitfaden weist darauf hin, dass das contentTagging-Modell „respects the output format you want, even in the absence of instructions”, sodass eine @Generable-Form mit @Guide-Annotationen die Einschränkung trägt, nicht ein langer Prompt.5

Wie groß ist das Kontextfenster für das On-Device-Modell?

4.096 Tokens für das Systemmodell.4 Das Token-zu-Zeichen-Verhältnis liegt bei etwa drei bis vier Zeichen pro Token in Englisch/Spanisch/Deutsch und einem Token pro Zeichen in Japanisch/Chinesisch/Koreanisch.4 Das Framework wirft LanguageModelSession.GenerationError.exceededContextWindowSize(_:), wenn die Session das Limit überschreitet.4

Warum ruft Apples Beispielcode SystemLanguageModel(useCase:) ohne guardrails: auf?

Apple dokumentiert init(useCase:guardrails:) und veröffentlicht Content-Tagging-Beispielcode, der SystemLanguageModel(useCase: .contentTagging) aufruft. Ich habe den standardmäßig belegten guardrails-Parameter nicht durch Kompilieren gegen das iOS-26-SDK verifiziert.15

Referenzen


  1. Apple Developer, “SystemLanguageModel”. Die Klassendeklaration, Verfügbarkeitsannotationen, Modellversionen, .default-Eigenschaft, Availability-Enum-Cases und der init(useCase:guardrails:)-Convenience-Initializer. Abgerufen am 04.05.2026. 

  2. Apple Developer, “Loading and using a custom adapter with Foundation Models” und das com.apple.developer.foundation-model-adapter-Entitlement. Der Pfad mit benutzerdefinierten Adaptern wird in einem Folgebeitrag zum vom Entwickler verwalteten Lebenszyklus behandelt. 

  3. Apple Developer, “SystemLanguageModel.UseCase”. Die statischen Eigenschaften des Structs: static let general und static let contentTagging. Abgerufen am 04.05.2026. 

  4. Apple Developer, “Generating content and performing tasks with Foundation Models”. Fähigkeitstabellen, Größe des Kontextfensters, Fehlertyp. Abgerufen am 04.05.2026. 

  5. Apple Developer, “Categorizing and organizing data with content tags”. Verhaltensbeschreibung des contentTagging-Modells, Beispielcode und die vier expliziten „use general instead”-Regeln. Abgerufen am 04.05.2026. 

Verwandte Beiträge

Foundation Models Custom Adapters: Wann sich ein eigenes Training lohnt

iOS 26 Foundation Models Custom Adapters trainieren LoRA-Gewichte, exportieren .fmadapter-Pakete, liefern über Backgroun…

10 Min. Lesezeit

Foundation Models LLM auf dem Gerät: Das Tool-Protokoll

Das Foundation Models Framework von iOS 26 bringt ein LLM mit 3 Milliarden Parametern auf jedes Apple-Intelligence-Gerät…

13 Min. Lesezeit

Die Cleanup-Schicht ist der eigentliche Markt für KI-Agenten

Charlie Labs hat den Schwenk vom Bau von Agenten zum Aufräumen nach ihnen vollzogen. Der KI-Agenten-Markt verlagert sich…

11 Min. Lesezeit