研究12 分出典確認 2026 年 7 月 26 日

@Generable から SwiftData まで: オンデバイスの見積もり品質のパイプライン

RiseHush の Foundation Models ジェネレーターの背後にある運用アーキテクチャ: 型付きストリーミング、階層化された拒否、ローカル ツール、アクターセーフな永続性、および重要な障害パス。

@Generable から SwiftData まで: オンデバイスの見積もり品質のパイプライン — RiseHush editorial illustration — risehush.comrisehush.com

制約は「モデルに見積もりを書かせる」ことではありませんでした

単一のプロンプトで文を生成できます。システムモデルの準備ができているかどうかを確認したり、インターフェイスの応答性を維持したり、生成された行と履歴の引用を区別したり、ほぼ重複したものがライブラリに入るのを防いだり、推論が失敗した場合に製品を有用なままにしたりすることはできません。それらの周囲の決断が特徴です。

RiseHush には推論バックエンドがありません。サポートされている Apple Intelligence デバイスでは、アプリは制限されたプロンプトを Apple のデバイス上のシステム言語モデルに送信し、受け入れられた結果をローカルの SwiftData に保存します。 製品向けインテリジェンス ページでは、人が何を見ているかについて説明しています。この記事では、実装パスとその制限について説明します。 Apple 独自の可用性 API は、モデルが現在実行できるかどうかを決定する権限を持ち続けます。

ここでの「再現可能」とは、別のエンジニアが準備マトリックス、拒否フィクスチャ、タイムアウト パス、永続性チェックを繰り返すことができることを意味します。これは、非決定的言語モデルがビットごとに同じ散文を返すという意味ではありません。このページでは、新しい物理デバイスの品質指標ではなく、検査されたソース アーキテクチャが報告されます。テスト スクリプトからベンチマーク結果が推測されることはありません。

  • 推論:デバイス上の Apple のシステム言語モデル。
  • 出力コントラクト:ガイド付き Swift 型、その後の決定論的検証。
  • ストレージ:生成済みとしてマークされたローカル SwiftData 行。
  • ネットワーク パス:RiseHush 生成サーバーまたはサードパーティ モデルはありません。

[1][2]

プロンプトからライブラリまで: 実稼働パス

これは、現在のアプリ ソースで検査された、RiseHush のオンデバイス見積もりジェネレーターの背後にあるアーキテクチャです。これには、ゲート、障害パス、および開発者が再現できるチェックが文書化されています。これはモデルのベンチマークではなく、すべてのドラフトが優れているという主張でもありません。

順序付けは意図的です。安価で説明可能なチェックは、さらなる推論の前に実行されます。必要なすべてのゲートが候補を受け入れるまで、書き込みは行われません。ストリーミングされた回答は暫定的なインターフェイス テキストであり、保存された引用ではありません。

  1. 準備ができていることを証明する

    サービスは、セッションを作成する前に、システム モデルの可用性と要求されたロケールを確認します。デバイスの適格性、Apple Intelligence の状態、モデル資産の準備状況、言語サポートは別個の結果です。

  2. ドラフトを拘束する

    @Generable Swift タイプでは、帰属、マークダウン、ハッシュタグ、絵文字、引用符を使用せずに、通常 10 ~ 16 単語で 18 単語を超えない 1 つのオリジナルの文を要求します。

  3. 主演俳優のストリーミング配信

    新しい LanguageModelSession がリクエストに対して事前にウォームアップされます。部分的な構造化スナップショットでは、基礎モデルのループがメイン アクターから離れたままになっている間にインターフェイスを更新できます。

  4. 明らかな失敗を拒否する

    モデルベースの審査の前に、決定論的ゲートによって文と単語の制限、言語の一致、禁止されている断片、句読点の折り返し、および多言語の常套句パターンがチェックされます。

  5. 新規性と品質をテストする

    比較埋め込みが利用可能な場合、生存者は意味論的な準重複チェックに直面し、その後、別個のガイド付き判定と識別性スコアに直面します。必要なしきい値を満たさないストリーミングされたドラフトは、サイレントに永続化されるのではなく、破棄されます。

  6. 生存者を存続させる

    メタデータは、主要なアクターから離れて計算されます。 SwiftData の挿入はメイン アクターに戻り、行にパブリック ドメインではなく生成されたものとしてラベル付けされ、保存が失敗した場合は一時的な挿入をロールバックします。

  7. ローカル状態を再利用する

    アプリとシステム サーフェスは、保存された見積もりを消費します。ウィジェットは永続化されたデータを読み取ります。拡張タイムライン内で言語モデルを起動しません。

[2][3][4][5]

ガイド付き出力の形状が狭くなります。コードはまだポリシーを所有しています

ドラフトは@Generableとマークされた Swift タイプです。そのガイドでは、オリジナルの文を 1 つ要求しており、通常は 10 ~ 16 語、ハード プロンプトの最大値は 18 語で、帰属表示、引用符、ハッシュタグ、絵文字、マークダウン、改行を禁止しています。制作オプションでは、温度 0.7 と 40 トークンの上限を使用します。これは、段落長の出力を必要とせずに、構造化されたラッパーと短い文に十分なスペースを確保します。

これは検証をオプションにするものではありません。 Apple は、ガイド付き生成について、コンテンツがすべての製品ルールを満たしていることを保証するものではなく、構造化された Swift データを生成する方法であると説明しています。したがって、RiseHush はモデルの型付き値を信頼できないドラフトとして扱います。以下の要約スケッチは、アプリ固有のプロンプトと永続性の詳細を省略しながら、製造順序としきい値を保持しています。

Architecture sketch — abridged from the current app sourceswift
@Generable
private struct GeneratedQuoteDraft {
    @Guide(description: "One original sentence; 10–16 words; no attribution")
    var text: String
}

guard availability(locale: locale) == .available else {
    throw GenerationError.unavailable
}

let stream = session.streamResponse(
    to: prompt,
    generating: GeneratedQuoteDraft.self,
    options: generationOptions
)

for try await snapshot in stream {
    yield(snapshot.content.text)          // interface update
}

guard deterministicGate.passes(text, locale: locale),
      await noveltyGate.isNearDuplicate(text) == false,
      await judge.score(text).overall >= 6,
      distinctiveness.score(text).overall >= 5
else {
    throw GenerationError.noCandidate
}

return try persistAsGeneratedQuote(text)

This is explanatory code, not a drop-in package. It intentionally omits app-private prompt construction, error mapping, and SwiftData model definitions.

[4][5]

2回目のパスでもまだ不十分だった理由

最初の拒否層は決定的です: 空の出力、禁止されたプロンプト残留物、折り返し引用符、単語と文の制限、言語の不一致、および多言語の常套句。ローカルの Core ML テイスト フィルターは、英語、ドイツ語、スペイン語、フランス語、イタリア語、ポルトガル語の学習信号を追加できます。調整されたロケールの外で誤って適用されるのではなく、意図的にスキップされます。

次に、比較埋め込みが利用可能な場合、セマンティック ノベルティ ゲートが候補を境界のあるローカル カタログと比較し、コサイン類似度のしきい値 0.90 でほぼ重複を拒否します。カタログが空であるか、埋め込みを作成できない場合、新規性を主張するのではなく、その層が通過したことになります。次に、新たな基礎モデル セッションで、全体的な品質、独創性、暖かさを評価します。その審査員は、同じシステム モデルを使用した別のセッションであり、独立したモデルや人による審査ではありません。利用できない場合、拒否された場合、または構造化された出力を生成できない場合、決定論的なスコアによって制限付きのフォールバックが提供されます。

最後に、独自性スコアは、具体的なイメージ、アクション、感情の特異性、主体性を評価する一方で、公式や最近の否定的なアンカーを減点します。現在、合格には少なくとも 6 点の審査員スコアと少なくとも 5 点の識別性が必要です。これらは製品の基準値であり、世界的な独創性や安全性の証明ではありません。

生産上の意思決定とそれぞれが防ぐ失敗
懸念実装なぜ存在するのか
可用性各生成パスの前に、モデルの状態とロケールのサポートを確認します。準備が失敗した理由を記録します。「Apple Intelligence 対応」とは、モデルがすでに準備ができていること、または訪問者のアクティブな言語をサポートしていることを意味するものではありません。
構造作成された JSON 応答を解析する代わりに、ドラフト形状に @Generable と @Guide を使用します。Swift タイプは出力コントラクトですが、決定論的なコードは依然として積ルールを所有します。
同時実行性モデルのストリーミングとメタデータの作業を主要なアクターから遠ざけてください。ローカル モデルの永続化の場合のみクロスバックします。Foundation Models のターンには数秒かかる場合がありますが、SwiftData モデル オブジェクトはアクター バインドされたままです。
品質決定論的なルール、意味論的な新規性、個別のジャッジ、および識別性のしきい値を重ねます。ガイド付き生成は形状を狭めます。真実性、独創性、トーン、製品の品質を保証するものではありません。
レイテンシ生成可能なフォアグラウンド サーフェスのみでプリウォームを実行し、有限のバジェットを適用します: インターフェイスで 45 秒、Siri で 20 秒、バックグラウンド プールで 120 秒。ユーザー向けのリクエストは、アセット、レート制限、または遅いモデル回転を永遠に待機してはいけません。
持続性受け入れられた行は、パブリック ドメインの作成者の引用としてではなく、ローカルで生成されたレコードとして保存されます。保存に失敗した後にロールバックします。生成された文章には永続的な出所が必要であり、実在の人物の帰属を決して継承してはなりません。

[7]

モデルを主役から遠ざける

パブリック サービスは SwiftData モデル オブジェクトを返すため、そのエントリ ポイントは main-actor-bound のままになります。高価なファウンデーション モデルの応答ループはそうではありません。各リクエストは新しいLanguageModelSessionを所有します。ストリーミングとメタデータの計算はメイン アクターから逃れ、アクターにバインドされたプロンプト信号と永続性のための小さな明示的なホップを伴います。

ストリーミングでは、インターフェイスの部分的な構造化スナップショットが生成され、プール パスと同じゲート、ノベルティ、ジャッジ、および独自性バーを介して最終テキストが渡されます。完成したストリームは、送信不可能な SwiftData モデルを移動するのではなく、永続的な識別子によってアクターを横断します。呼び出し元は、その識別子を自身のアクター上で解決します。

受け入れられたテキストのみが挿入されます。レコードは RiseHush として作成され、source = .generatedおよびisPublicDomain = falseとマークされ、ロケールでタグ付けされ、ローカルで計算されたメタデータで強化されます。保存に失敗した場合、一時的な挿入はエラーが返される前に削除されます。

[5][10]

3 つの読み取り専用ツールを使用してコンシェルジュを強化する

Ask RiseHush が個人のライブラリ状態を発明することは許可されていません。 Apple のツール呼び出し API を使用すると、セッションで限定的なアプリ機能をリクエストし、返されたデータを組み込むことができます。このアプリは、3 つの制限された読み取り専用ツールを公開します。 RiseHush サーバーには何も到達しません。

ツールの引数と出力サイズには制限があります。保存された見積もりの​​検索では最大 8 件の結果が返され、カタログ検索では最大 5 件の結果が返され、ツールの合計出力には制限があります。保存された見積ツールは、最近一致したアイテムを返すことができますが、カレンダーの範囲は受け入れられません。そのため、製品は、モデルが「先週何を保存したか?」に答えることができることを保証するべきではありません。

  • カタログ見積検索

    バンドルされた見積カタログを気分、カテゴリ、またはテーマ別に検索します。モデルにソースを発明するように求めるものではありません。

  • 保存された見積書のルックアップ

    ローカル ストレージに保存されているその人自身のお気に入りの名言を検索します。

  • ストリークステータス

    Ask RiseHush が限定された個人的な質問に答えることができるように、地元のインスピレーションの連続を読み取ります。

[6]

障害時の動作はアーキテクチャの一部です

可用性はブール値ではありません。互換性のあるデバイスでは、まだ Apple Intelligence が無効になっているか、モデル アセットが準備中であるか、システム モデルがサポートしていない言語が残っている可能性があります。ランタイム生成は、拒否、ガードレールに衝突、コンテキストの超過、スロットリング、同時リクエストの発生、構造化解析の失敗、またはタイムアウトになる可能性もあります。

RiseHush は、これらのケースを有限の製品の動作にマッピングします。フォアグラウンド生成には 45 秒、Siri には 20 秒、バックグラウンド プール生成には 120 秒のバジェットがあります。厳選されたライブラリは依然として正直なフォールバックです。アプリは、モデルが成功したかのようにプレースホルダーの散文を保存することはありません。

観察された分岐とその結果として生じる製品の動作
信号行動
デバイスが対象外か、Apple Intelligence が無効になっています生成は利用できません。既存の厳選されたライブラリは、モデル応答が発生したように見せかけることなく引き続き使用できます。
モデルアセットの準備ができていませんリクエストは準備完了状態を報告しません。 Apple のモデル資産が存在すると、推論自体に RiseHush サーバーは必要なくなります。
要求されたロケールはサポートされていません翻訳可能なパスでは、英語のドラフトを完全にゲートし、Apple の翻訳フレームワークがそのペアをサポートしているローカルで翻訳できます。それ以外の場合、アプリは厳選されたフォールバックを維持します。翻訳されたテキストは空ではない結果についてチェックされますが、完全なターゲット言語ゲート、新規性、および判定スタックを繰り返すことはありません。
ガードレール、拒否、レート制限、解析、コンテキスト、同時実行性、またはタイムアウト エラーストリーミング パスは、無制限のインライン再試行を通じてスピンしません。生成された候補を返さず、製品をきれいにフォールバックさせます。
ドラフトが品質の基準を満たしていない有限プール パスは別のドラフトを試すことができます。 2 番目の回答をアニメーション化するのではなく、ライブ ストリームが中止されます。拒否されたテキストは保存されません。
SwiftData の保存に失敗するこのサービスは一時的な挿入を削除し、半分保存された引用を残す代わりに永続化の失敗を表面化します。

[2][3][7]

結果をでっち上げない再現性プロトコル

以下のプロトコルは、ソース検査をライブデバイスの証明から分離します。各実行のハードウェア、OS ビルド、ロケール、Apple Intelligence の状態、モデルの準備状況、プロンプト フィクスチャ、経過時間、ターミナル ブランチ、拒否理由、永続化の結果を記録します。 Apple の Foundation Models Instruments は、実際のセッション中にプロンプ​​ト、ツール、トークン、レイテンシーの動作を公開できます。

機械可読バージョンは、 Foundation Models 評価プロトコル (JSON)として利用できます。これには、加工された測定値ではなく、行列とフィールドの契約が含まれます。現在の物理デバイスの実行が承認されると、その匿名化された行が追加され、正確なデバイスと OS を使用して集計された受け入れ、タイムアウト、待ち時間の値が公開されます。

  1. サポートされている OS と互換性のあるハードウェアを使用してください。 Apple Intelligence が有効で準備完了、無効、ダウンロード中かをテストします。
  2. サポートされているロケールとサポートされていないロケールを使用して繰り返します。アプリがモデルのサポートと一般的なデバイスの適格性を区別していることを確認します。
  3. モデル アセットの準備ができたら、機内モードで繰り返し、RiseHush 生成エンドポイントが必要ないことを確認します。
  4. インターフェースを操作しながら部分的なテキストを観察します。モデルの回転中、スクロールとコントロールの応答性が維持されていることを確認します。
  5. 空、複数の文、長すぎる、引用符で囲まれている、間違った言語、決まり文句、または重複に近いフィクスチャをフィードします。保存された生成行になるものはありません。
  6. ジャッジの拒否と有限のタイムアウトをトリガーします。拒否されたドラフトが保持されておらず、厳選されたエクスペリエンスが利用可能なままであることを確認します。
  7. テスト ストアでのローカル保存の失敗を強制します。挿入されたモデルがロールバックされていることを確認します。
  8. 短い時間バジェットで Siri を実行し、ウィジェットが拡張機能で生成を開始するのではなく、永続化されたデータのみを読み取ることを確認します。

[8]

このアーキテクチャが証明できないこと

高品質のパイプラインにより、障害が可視化され、悪い永続性が軽減されます。デバイス上の小さな言語モデルを歴史的資料に変えることも、その文がどこにも書かれていないことを証明することも、味を保証することもできません。したがって、生成された線は歴史上の作者に帰属されることはなく、パブリック ドメインのカタログに登録されることはありません。

翻訳については別途警告が必要です。 Foundation Models によって直接サポートされていないロケールの場合、オプションのパスは英語のドラフトを完全にゲートし、ペアが利用可能な Apple のオンデバイス翻訳フレームワークを使用します。翻訳結果は空ではない応答かどうかチェックされ、新しいメタデータとともに永続化されますが、現時点では、翻訳後の完全なターゲット言語ゲート、新規性、および判断シーケンスを繰り返すことはありません。そのパスはフォールバックであり、直接生成の品質が等しいという証拠ではありません。

モデルと OS の更新により、可用性、遅延、拒否動作、出力分布が変更される可能性があります。 Apple は、基盤モデルの変更に応じてプロンプトと評価を再検討することをお勧めします。したがって、RiseHush のテスト マトリックスは、このページを永続的なベンチマーク証明として扱うのではなく、重要なプラットフォームの更新後に再実行する必要があります。

  • システム モデルは、歴史的な引用事実や著者の帰属の情報源としては使用されません。
  • 構造化された出力と 2 番目のモデル パスにより、故障モードが減少します。それらは、そのラインが奥深いものであること、世界的な意味で独創的であること、またはすべての人に適していることを証明するものではありません。
  • セマンティック ノベルティ レイヤーは、その境界付きカタログが空であるか、比較埋め込みが利用できない場合に通過します。既知の重複に近いものは削減されますが、世界的な独創性を保証するものではありません。
  • オフライン生成は、互換性のあるハードウェア、有効な Apple Intelligence、サポートされる言語動作、およびすでに準備ができているモデル アセットに依存します。
  • オプションの学習済み Core ML テイスト フィルターは、英語、ドイツ語、スペイン語、フランス語、イタリア語、ポルトガル語用に調整されています。他のロケールは、引き続き、それらをサポートする決定論的レイヤーとモデルベースのレイヤーを受け取ります。
  • ローカルで翻訳されたフォールバックは、ターゲット言語を直接生成することと同等ではありません。現在の翻訳結果は、翻訳後にすべての品質レイヤーを繰り返すわけではありません。
  • OS とモデルの更新によりレイテンシーと出力分布が変更される可能性があるため、マテリアル プラットフォームの変更後にデバイス マトリックスを再実行する必要があります。
  • このページでは現在のアーキテクチャについて説明しますが、すべてのプラットフォーム サーフェスが基盤モデルを実行することを約束するものではありません。ウィジェットは、永続化された結果を意図的に消費します。

[3][9][11]

RiseHush は見積生成プロンプトを独自のサーバーに送信しますか?

いいえ。システム モデルが利用可能なサポート対象デバイスでは、見積ドラフトと品質パスは Apple のデバイス上のフレームワークで実行されます。 RiseHush には、このパスの推論エンドポイントがありません。

@Generable は、適切な引用またはオリジナルの引用を保証しますか?

いいえ、構造化された出力の形状を制限します。 RiseHush は引き続き、決定論的な書式設定と言語ルール、比較埋め込みが利用可能な場合の意味論的な準重複検出、個別の判定セッション、識別性スコアリング、および有限拒否動作を適用します。

別の開発者が生成された文を正確に再現できますか?

確実ではありません。言語モデルの出力は非決定的であり、モデルまたは OS の更新によって変更される可能性があります。再現可能な単位は、レディネス、フィクスチャ、ゲート、タイムアウト、および永続化プロトコルであり、同一の散文ではありません。

サポートされているすべての言語は同じ品質パスを受け取りますか?

いいえ。直接サポートされているロケールは共通の生成パスを受け取りますが、学習された Core ML フィルターは 6 つの言語に合わせて調整されています。オプションのローカル翻訳されたフォールバックは、ゲートされた英語のドラフトから開始されますが、翻訳後にターゲット言語の品質レイヤーをすべて繰り返すわけではありません。

  1. Apple Developer Documentation — Foundation Models framework overview: direct access to Apple’s on-device language model
  2. Apple Developer Documentation — SystemLanguageModel availability and unavailable reasons
  3. Apple Developer Documentation — supporting languages and locales with Foundation Models
  4. Apple Developer Documentation — generating Swift data structures with guided generation
  5. Apple Developer Documentation — LanguageModelSession, responses, and streaming
  6. Apple Developer Documentation — expanding generation with tool calling
  7. Apple Developer Documentation — improving the safety of generative model output
  8. Apple Developer Documentation — analyzing Foundation Models runtime performance
  9. Apple Developer Documentation — Foundation Models framework updates
  10. Apple Developer Documentation — SwiftData
  11. Apple Developer Documentation — Translation framework