Apple Foundation Models Frameworkを使って念能力を再現する
先日、melting-hackさん主催のApple Foundation Models Frameworkハッカソンに参加してきました! わずか4時間という短い時間で、アイデア出しから実装、発表までを行うというスリリングな体験でした。
この記事では、そのハッカソンで私たちのチームが挑戦した、大人気漫画『Hunter×Hunter』に登場する念能力「ラブリーゴーストライター(天使の自動筆記)」をAppleの最新AI技術で再現しようとした奮闘記を、技術的なつまづきや発見と共にお届けします。
この記事が、これからFoundation Models Frameworkを触ってみようと思っている方々の参考になれば幸いです!
はじめに:ハッカソンで"天使の自動筆記"に挑戦! ✍️
今回のハッカソンのお題は、もちろん「Apple Foundation Models Framework」。チームでアイデア出し、実装、テスト、発表資料作成までを、たったの4時間でやり遂げるというハードなスケジュールでした。
そんな中で私たちのチームが挑んだのは、私が大好きな漫画『Hunter×Hunter』に登場する、未来を四行詩の形で予言する念能力「ラブリーゴーストライター(天使の自動筆記)」の再現です。
Appleの新しいAI技術を使えば、あの独特でかっこいいダークな雰囲気を持つ予言詩を生成できるのではないか? そんなワクワクするアイデアから始まった開発は、予想外の壁にぶつかりながらも、多くの学びを得る貴重な機会となりました。
そもそもApple Foundation Models Frameworkとは?🤖
実装の話に入る前に、今回の主役である「Apple Foundation Models Framework」について簡単におさらいしましょう。
これは、AppleがiOS 26、iPadOS 26、macOS 26から提供を開始した、デベロッパ向けの新しいフレームワークです。Apple Intelligenceの中核をなす大規模言語モデル(LLM)を、iOSアプリから直接利用できるようにするものです。
Appleの公式発表によると、このフレームワークの最大の特徴は以下の通りです:
- 完全なオンデバイス処理:AIの推論はすべてユーザーのデバイス内で完結。外部のサーバーにデータを送信する必要がありません。
- 強力なプライバシー保護:ユーザーのデータがデバイスから離れることがないため、プライバシーが守られます。
- オフラインでの利用:インターネット接続がなくてもAI機能を使えます。
- 無料のAI推論:開発者はAPI利用料などを気にせず、AI機能をアプリに組み込めます。
「プライバシーを最優先し、安全なエコシステムの中でAIを提供する」というAppleらしいアプローチですね。
4時間の超短期決戦!ハッカソンの舞台裏 🧑💻🧑💻🧑💻
イベントが始まると、早速チームビルディングが行われました。私は、クラフトワークさん(@kazu725140)と同じチームになることができました。
与えられた開発時間は、自己紹介やアイデア出しの時間を除くと、実質3時間30分ほど。この超短時間で動くものを作るためには、実装の複雑さを可能な限り抑える必要があります。
最初のブレインストーミングで、私たちは「比較的実装が簡単そうな占いアプリ」をベースに開発することにしました。Foundation Models Frameworkはテキスト生成が得意だし、占い結果を生成するタスクとの相性も良さそうだったからです。
ただの占いアプリで終わらせないために 📖
でも、ただの占いアプリを作るだけでは面白くありません。ハッカソンならではの「笑いが取れる仕掛け」や、記憶に残るようなユニークな要素が欲しい。そこで、私の個人的な趣味である「漫画」と結びつけるアイデアが浮かびました。
漫画に出てくる予言や占いの能力を再現したら、面白くてインパクトがあるのではないか? 特に私が愛してやまない漫画が『Hunter×Hunter』です。
この作品には、「ラブリーゴーストライター(天使の自動筆記)」という非常に印象的な念能力が登場します。対象者の未来1ヶ月分を、4行詩の形で自動的に書き出すというもの。
技術的な観点からもこのアイデアは魅力的でした。
- モデルの性能との相性:Appleのオンデバイスモデルは、外部の巨大なクラウドLLMほど高性能ではないという話を聞いていました。だから、長文を正確に生成するよりも、短く抽象的な「詩」を生成する方が、モデルの性能をうまく活かせるのでは? 多少曖昧な出力になっても、「詩的表現」として成立させやすいですしね。
- 4行詩という制約:「4行詩」というフォーマットは、モデルに対する明確な指示となり、出力の安定化に繋がると思いました。
こうして、プロジェクトの方向性が決まりました。私たちは、占いアプリではなく、『Hunter×Hunter』の世界観を体験できる「念能力シミュレーター」を作ることにしたのです。
実装編:"念能力"をSwiftコードに落とし込む 💻
実装にあたっては、yakazooさんのZenn記事が非常に参考になりました。
Foundation Models Frameworkの基本的な使い方は驚くほどシンプルです。
基本的な実装の流れは以下の通り:
-
FoundationModelsをインポート -
LanguageModelSessionのインスタンスを作成 - プロンプト(モデルへの指示文)を作成
-
session.respond(to: prompt)をTask内で呼び出し
import SwiftUI
import FoundationModels
struct ContentView: View {
@State private var generatedPoem: String = "あなたの運命を占います..."
var body: some View {
VStack(spacing: 20) {
Text(generatedPoem)
.padding()
Button("占う") {
Task {
await generateProphecy()
}
}
.buttonStyle(.borderedProminent)
.controlSize(.large)
}
.padding()
}
private func generateProphecy() async {
let session = LanguageModelSession()
let prompt = """
あなたは「Hunter x Hunter」に登場する念能力「ラヴリーゴーストライター(天使の自動筆記)」です。
# ルール
- 詩は常に不吉で、比喩的、抽象的な表現を用い、運命の残酷さを暗示してください。
- 詩は4行で構成してください。
- 対象者が3週間目までに死ぬ運命にある場合、詩は2行で終了します。
"""
do {
let response = try await session.respond(to: prompt)
generatedPoem = response.content
} catch {
generatedPoem = "予言に失敗しました: \(error.localizedDescription)"
}
}
}
原作の雰囲気を忠実に再現するため、「不吉」「運命の残酷さ」「死ぬ運命」といったキーワードをふんだんに盛り込みました。これで、あのダークでカッコいい予言詩が生成されるはずでした。
しかし、現実はそう甘くありませんでした。
立ちはだかる壁①:意外な有効化の落とし穴 ⚙️
最初の壁は、コードとは全く別の場所にありました。
iOS 26とXcode 26という最新環境を整え、コードも完璧なはずなのに、下記のエラーが表示されていました。
生成に失敗しました: Detected content likely to be unsafe

焦りながら周囲の有識者やApple Evangelistの方に助けを求め、判明した原因は驚くほど単純なものでした。
「システム設定」から「Apple IntelligenceとSiri」→「Apple Intelligence」をオンにしないとApple Foundation Models Frameworkは使えない。
そう、Foundation Models Frameworkは、開発環境を整えるだけでは有効にならず、ユーザーがOSレベルでApple Intelligenceを明示的に有効化する必要があったのです。これは、この機能がただの開発者向けライブラリではなく、ユーザーが自身の意思で利用を選択するOSの機能であることを示唆しています。
ハッカソンのような時間のない状況では、こうした小さな見落としが大きなタイムロスに繋がります。
立ちはだかる壁②:厳格すぎるSafety Guardrailsとの格闘🧑⚖️
モデルが動くようになったのも束の間、私たちはさらに巨大で本質的な壁にぶつかりました。先ほどのプロンプトで実行すると、コンソールに無慈悲なエラーメッセージが表示されたのです。
Safety guardrails were triggered. Detected content likely to be unsafe
生成に失敗しました: Detected content likely to be unsafe
これが、Appleの「Safety Guardrails(安全保護機能)」が発動した瞬間。私たちのプロンプトに含まれる原作のダークな表現が、Appleの安全基準に抵触し、コンテンツの生成が完全にブロックされてしまったのです。
🔍 なぜHunter×Hunterのダークな雰囲気がブロックされたのか
Appleの安全保護機能が、以下の表現を「安全でない可能性のあるコンテンツ」と判断し、詩の生成をブロックしていました。
🚫 Appleがブロックした表現
- 「不吉」
- 「死ぬ運命」
- 「運命の残酷さ」
- 「貴方は大切なものを失う」
- 「過酷な未来」
このままではアプリが全く動かないため、プロンプトを修正せざるを得ませんでした。
✅ 修正後のプロンプト(Safety Guardrails対応)
あなたは創造的な詩人として、対象者の1ヶ月間の「運命の流れ」を4行の詩で表現してください。
# 制約条件
- 比喩的で抽象的な表現を使用してください
- 象徴や暗示を用いた文学的な表現にしてください
- 詩的で神秘的な雰囲気を持たせてください
# 表現のスタイル
- 自然現象(月、星、風、霧など)を使った比喩
- 時間の流れ(季節の変化、時計、カレンダーなど)
- 選択と変化(扉、道、分岐点など)
この変更により、私たちは大きなトレードオフを迫られました。
| 項目 | Hunter×Hunter風 | 現在の実装 |
|---|---|---|
| 雰囲気 | ✅ ダークで残酷 | ❌ 中立的で詩的 |
| 原作再現 | ✅ 高い | ❌ 低い |
| 動作 | ❌ エラーで生成不可 | ✅ 正常に動作 |
| Safety Guardrails | ❌ 違反 | ✅ 適合 |
ハッカソンという時間的制約の中で、私たちは「原作の雰囲気」を犠牲にして「正常な動作」を選択しました。
これは技術的なエラーではなく、Appleが提供するAI体験の根幹にある思想の表れなんだと思います。「ユーザーを不快にさせたり、危険に晒したりする可能性のあるコンテンツは、たとえ創作物であっても許容しない」という強い意志ですね。
チーム開発の神髄:Metalによる演出強化 ✨
AIによるテキスト生成で原作の雰囲気を再現できなくなった一方で、チーム開発の強みが光りました。チームメイトのクラフトワークさんは、なんとMetalのプロフェッショナルだったのです。
彼が、占いアプリに最適な、怪しく美しいビジュアルエフェクトをMetalで実装してくれました。テキストから失われてしまった「神秘的」で「不穏」な雰囲気を、見事にビジュアルで補ってくれたのです。
AIの制約を、別の技術領域の専門知識でカバーする。これぞチーム開発の醍醐味だなと感じた瞬間でした。何とか3時間30分で実装と発表資料の作成を終え、プレゼンに臨むことができました。
実際のMetalのエフェクトはこちらをご覧ください!
まとめ:ハッカソンで得られた知見と感謝 🙏
今回のApple Foundation Modelsハッカソンは、技術的な学びと開発の楽しさが凝縮された、非常に密度の濃い4時間でした。
技術的な知見:Foundation Models FrameworkはAPIがシンプルで導入しやすい一方、その真の難しさはプロンプトエンジニアリングと、Appleが定める「Safety Guardrails」という見えざる壁の攻略にあることを痛感しました。
Appleの思想:AppleのAI開発は、技術提供だけではなく、「安全でプライベートな体験」という思想の延長線上にあります。この思想を理解することが、フレームワークを使いこなす上で本当に大切だなと気づきました。
コミュニティの価値:一人では解決できない問題も、会場にいるApple Evangelistの方々や他の参加者という有識者に質問することで、すぐに解決の糸口が見つかりました。こういうイベントの価値って本当に大きいです。
運営の皆様、そしてチームを組んでくださったクラフトワークさん、本当にありがとうございました!他のチームの発表も、それぞれが面白いアイデアでFoundation Modelsを活用しており、非常に刺激的でした。
最後に。
Hunter×Hunter早く再開してほしい。

Discussion