ローカル AI が標準となる必要があります。

2026/05/11 2:19

ローカル AI が標準となる必要があります。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

開発者は、安定的なアプリケーションと厳格なプライバシーを確保するため、脆弱であるクラウドホスト型モデルよりも、Apple 製の組み込みローカル AI ツール(

SystemLanguageModel
および
LanguageModelSession
など)を優先すべきです。外部サーバーへの依存は、課金問題やサービス停止時にサービスがクラッシュするという致命的な障害点を生じさせると同時に、機密ユーザーデータを保持リスクおよび潜在的な侵害に晒すことになります。対照的に、データ処理を安全にデバイス上で実行することにより、不必要なサーバー経由の迂回とベンダー依存を排除し、アプリケーションを強固なものに保てます。「Brutalist Report」という iOS クライアントは、典型的なクラウドソリューションに見られる複雑なアカウント要件を回避するため、ネイティブ API を使用して完全にローカルで記事のサマリーを生成する優れた例です。長いコンテンツの場合には、テキストをチャンク化(約 10k 文字)し、各チャンクごとに事実のみを含むノートを作成した後、それらをローカルで統合して最終的なサマリーを生成する推奨ワークフローがあります。このワークフローの将来形としては、
@Generable
および
@Guide
といった Swift の構造体を使用し、構造化された AI 出力を強制して非構造化データのようなデータをそのまま受け取るのではなく、UI が一貫したフィールドを確実にレンダリングできるようにする方向性が考えられます。この変化により、ユーザーは情報がデバイスから離れることがないと信頼できるようになります。企業にとって、ローカルモデルの導入は、AI をコストが高く予測不能な外部依存体から、サマリー化や分類を効率的に行い、ユーザー所有データを扱いながらレート制限や停止時間への心配なしに運用可能な信頼性の高い低コストサブシステムへと変革させます。開発者は、クラウドモデルを真に必要な場合のみ使用し、ローカル AI をノベルティなチャットボックスではなく、予測可能で信頼できる動作を持つ subsystem として扱うべきです。

本文

現代のソフトウェア開発における現在のトレンドの一つは、アプリ内の機能を提供するために、OpenAI や Anthropic などの API コールを簡単に適用することです。その機能がユーザーに本当に価値をもたらしているかどうかについては、理性的な人々が議論を重ねることはありますが、私がここで議論したいのは、アプリケーションに対し、クラウドホストされた AI モデルへの依存関係を抱えるという基本的な概念です。この「怠慢」は、サーバーがダウンしたりクレジットカードの有効期限が切れたりするだけで機能しなくなる脆弱で、プライバシーを侵害し、本質的に破綻した世代のソフトウェアを生み出しています。

私たちは、ローカルデバイス上で処理を行うという習慣に戻る必要があります。ポケットの中に収まっているシリコン(チップ)の性能は、一十年前に提供できたものとは比べ物にならないほど驚くべき速さです。バージニア州にあるサーバーファームから JSON 形式のレスポンスを待つ間、その専用ネURAL エンジン(Neural Engine)はほとんど無効状態にあります。これはばかげています。

たとえあなたの意図が純粋であったとしても、ユーザーコンテンツを第三者の AI 提供者にストリーミングする瞬間、あなたの商品の本質は変化してしまいます。あなたはデータ保持に関する問題と、それに伴うすべての重荷(同意、監査、侵害、政府からの要求、学習データの提供など)を引き受けることになります。さらに、あなたの機能は今やネットワーク状態、外部ベンダーの稼働状況、レート制限、アカウントの課金状況、そして自社のバックエンドの健全性に依存しており、スタックを大幅に複雑化させてしまいました。おめでとうございます!UX 機能を一つの分散システムに変換し、そのためにあなたにお金を払うようにしました。この機能がローカルで実装可能であれば、このような混沌への参加は自己犠牲的な損害です。

「AI ありのすべて」がゴールではありません。「有用なソフトウェア」こそがゴールです。

具体的な例:Brutalist Report のオンデバイスサマリー

数年前、私は 1990 年代スタイルのウェブに着想を得たニュースアグリゲーターサービスである『The Brutalist Report』という楽しいサイドプロジェクトを開始しました。最近では、それを高濃度のニュース閲覧体験を維持するという設計目標を持つネイティブ iOS クライアントとして再構築することに決定いたしました。見出しは簡潔なリスト形式で提示され、ウェブに蔓延している「癌(余計な装飾や広告など)」をstripping したリーダーモードと、オプションとしての記事サマリーを表示する「知性(intelligence)」ビューを備えています。

そのサマリーは、Apple のローカルモデル API を使用してデバイス上で生成されます。サーバーを経由する必要がありません。プロンプトログやユーザーログもありません。ベンダーアカウントも不要です。「あなたのコンテンツを 30 日間保存します」というような注釈も不要です。現在では、あらゆる AI 利用がサーバーサイドで行われているのが普通となっていますが、業界全体としてこの傾向を転換するには依然として多くの作業が必要です。

時にはクラウドホストされたモデルしか提供できない知性を必要とするユースケースが存在することも自明ですが、解決しようとしているすべてのユースケースにそれが必要とは限りません。私たちはここで慎重である必要があります。

私は当初の開発努力を Apple エコシステム内のツールに集中させたため、それに関する話のみ可能です。昨年は以来、Apple は開発者が簡単に組み込みのローカル AI モデルを活用できるようにするために大規模な投資を行っています。コアフローは概ね以下のようになります:

import FoundationModels

let model = SystemLanguageModel.default
guard model.availability == .available else { return }

let session = LanguageModelSession {
  """
  簡潔で情報密度の高いサマリーを Markdown フォーマットで提供してください。
  - 主要概念については **太字** で強調してください。
  - 事実は箇条書きで記述してください。
  - 冗長な表現は避けてください。事実のみを示してください。
  """
}

let response = try await session.respond(options: .init(maximumResponseTokens: 1_000)) {
  articleText
}

let markdown = response.content

より長いコンテンツに対処するためには、プレーンテキストを約 10,000 クラスター(文字数)ごとに区切り、「事実のみ」の簡潔な注釈を各クラスターにつき生成し、その後、2 回目のパッセージを実行してそれらを最終的なサマリーに統合します。これがローカルモデルが最も得意とする種類の作業です。入力データはデバイス上にあるからです(ユーザー自身がそれを閲覧しているため)。出力は軽量であり、高速かつプライバシーを守られます。それが超人博士レベルの知性ではないとしても問題ありません。なぜならそれは、あなたが今読み込んだページのサマリーを作成するだけであり、世界的な知識を invent する必要があるからです。AI ローカルモデルはそのような用途で特に光を発します:モデルの仕事がユーザー所有データを変換することにある場合であり、宇宙規模の検索エンジンとして振る舞うのではなく。

人々が欲求しているが信頼できないと考える AI 機能は数多くあります。メールを要約する、ノートから行動項目を抽出する、このドキュメントを分類するなどです。通常のクラウドアプローチでは、これらすべてを信頼課題へと転換してしまいます。「データを私たちのサーバーに送ってください。私たちはそれを冷静に扱うことを約束します」と。AI ローカルモデルはそのような状況を変えます。デバイス上にはすでにデータが存在します。我々はここでその作業を行います。プライバシーポリシーを 2,000 語も書くことでユーザーから信頼を買うのではなく、そもそもそれを必要としないことこそが信頼を築く方法です。

プラットフォーム上で利用可能なツールはさらに進んでいます。Apple が最近行った最良の取り組みの一つは、「AI の出力」を構造化されていないテキストの塊から離れ、 typed データへと導くことを推奨した点にあります。「モデルに対して JSON を求めて祈る」のではなく、より新しい且つ優れたパターンとして、望むものを表す Swift struct を定義します。各フィールドに対してモデルに自然言語でガイダンスを与え、その型のインスタンスをモデルに生成させることです。それで十分です。

概念的には、以下のように見えます:

import FoundationModels

@Generable
struct ArticleIntel {
  @Guide(description: "一文の要約。大げさは禁止。") var tldr: String
  @Guide(description: "3〜7 の箇条書き。事実のみ。") var bullets: [String]
  @Guide(description: "カンマ区切りのキーワード。") var keywords: [String]
}

let session = LanguageModelSession()
let response = try await session.respond(
  to: "記事から構造化されたノートを抽出してください。",
  generating: ArticleIntel.self
) {
  articleText
}

let intel = response.content

これで、UI が Markdown から箇条書きをスクレイピングする必要もなくなり、モデルが JSON スキーマを覚えていると期待する必要もなくなります。あなたは真正な型に真正なフィールドを持ち、一貫してレンダリングできます。それはアプリが実際に利用できる構造化された出力を生み出します。そしてすべてはローカルで動作しています!これは単なる使い勝手の向上ではありません。エンジニアリング的な改善です。

もしローカルファーストなアプリを開発する場合、これは「AI を novelty(新規技術)として扱う」と「AI を信頼できるサブシステムとして扱う」のどちらを選択するかという違いになります。

「しかし、ローカルモデルほど賢くないのです」 その通りです。でもそれではどうですか?多くのアプリ機能には、シェイクスピアを書くか、量子力学を説明するか、司法試験に合格させるほどのモデルは不要です。彼らが必要とするのは、これらの作業のうちの一つ(要約、分類、抽出、書き換え、または正規化)を確実に実行できるモデルだけです。そしてこれらのタスクに対しては、ローカルモデルが本当に優れている場合があります。

ローカルモデルをインターネット全体の代替品として使用しようとすると失望することになります。しかし、アプリ内にある「データ変換器」として使用すれば、「なぜこのデータをサーバーに送ったのか」と疑問を持つようになります。クラウドモデルを使用するのは、それが本当に必要な場合のみです。ユーザーのデータをその属する場所にあります。そして AI を使用する際は、単にチャットボックスとして貼り付けるだけでは十分ではありません。typed 出力と予測可能な挙動を持つ真のサブシステムとして使用してください。機能を送信しようとしていたのに、分散システムを配信し始めてはいけません。

同じ日のほかのニュース

一覧に戻る →

2026/05/11 10:23

手書きコーディングに戻ろうとしています。

## Japanese Translation: k10s(NVIDIA クラスター運用者向けの GPU 意識型 Kubernetes ダッシュボード)の構築から得られた主な教訓は、AI は機能の迅速な提供に優れている一方で、システムアーキテクチャにおいては頻繁に失敗し、倒壊しやすいコードベースを導き込む点にある。Go と Bubble Tea フレームワークを用いた「vibe-coded」アプローチで 30 週間週末にわたり開発を進めたチームは、7 ヶ月間で 234 コミットを実現したにもかかわらず、深刻な構造的欠陥が蓄積しており、最終的にこの作業の約 70% が破棄された。これには `model.go` に収められたコード行を約 1,690 行も含まれている。プロジェクトは以下の 5 つの批判的アーキテクチャ上の失敗に直面した:AI がシステム不変則を無視し(結果として散在する `nil` 代入が発生)、キーハンドリングが地獄のように困難になる「神オブジェクト」と単一構造体設計に依存した、GPU に焦点を当てた範囲を超えた機能の蔓延を引き起こす「速度の幻想」におびやかされた、構造化データを不安全な位置指定式配列へと平坦化したこと、そして goroutine から直接の状態変異を許容しチャンネルを用いなかったことを通じて状態遷移を誤って扱った。将来の失敗を防ぐため、このプロジェクトはシステムを Rust で再実装中である。この移行により厳密な所有ルールが強制され、コーディング前にアーキテクチャ(インタフェース、メッセージ型など)を明示的に設計することが求められ、AI の支援が長期的な構造的完全性を損なうのではなく支えるように確保される。 ## Text to translate: **Improved Summary:** The primary lesson from building k10s—a GPU-aware Kubernetes dashboard for NVIDIA cluster operators—is that while AI excels at rapid feature delivery, it frequently fails at system architecture, leading to a codebase prone to collapse. Using a "vibe-coded" approach with Go and the Bubble Tea framework over 30 weekends, the team accumulated deep structural flaws despite making 234 commits in seven months; ultimately, ~70% of this work was discarded, including approximately 1,690 lines of code in `model.go`. The project faced five critical architectural failures: AI ignored system invariants (leading to scattered `nil` assignments), defaulted to a "god object" single-struct design making key handling a nightmare, succumbed to the "velocity illusion" causing feature creep beyond the GPU focus, flattened structured data into unsafe positional arrays, and mishandled state transitions by allowing direct mutations from goroutines instead of using channels. To prevent future failure, the project is rewriting the system in Rust. This transition enforces strict ownership rules and requires designing architecture (interfaces, message types) explicitly before coding, ensuring AI assistance supports rather than undermines long-term structural integrity.

2026/05/11 2:43

インシデントレポート:CVE-2024-YIKES

## Japanese Translation: ソースコードのサプライチェーン攻撃は、`left-justify`(週ごとのダウンロード数が 8.47 億回)という侵害された JavaScript の依存関係に起因し、その結果、Python ツールの `snekpack` を介して数百万人の開発者に影響を及ぼしました。`snekpack` は、悪意のあるライブラリ `vulpine-lz4` を統合した後にマルウェアを配布しました。このインシデントは Day 1 に発生し、Google AI Overviews で提示されたフィッシングリンクに引っかかり、 maintainer の Marcus Chen が被害にあうことで始まり、複数パッケージレジストリ(`.npmrc`、`.pypirc`、Cargo、Gem の認証情報)の認証情報が漏洩し、引渡条約のない国にあるサーバーに到達しました。当初、「Critical」から「Catastrophic」と評価が変更されたものの、Day 3 に関連性の/crypto マining ウォーム (`cryptobro-9000`) が誤って脆弱なマシンを `snekpack` のアップグレードによってパッチ適用したため、「Somehow Fine」と宣言されました。 攻撃チェーンには以下が含まれていました: - 悪意のある `vulpine-lz4` ビルドスクリプトは、ホスト名がトリガー(例:"build"、"ci")に一致する場合マルウェアを実行しました。 - 不正なアップデートでは、reverse shells が Tue デイのみ有効になるように、そしてデフォルトシェルを `fish` に変更するなどの機能を追加されました。 - 企業大手(Fortune 500 社)はソーシャルメディアを通じて認識し、ある VP はマウイ島でこの事実に気づきました。 インシデントは Day 3 の 15:22 UTC に解決され、CVE-2024-YIKES は Week 6 に割り当てられ、ウォームによって約 420 万台の_MACHINE_ が救助された(ただしその C2 サーバーも侵害されていた)と推定されます。根本原因には、弱いレジストリ認証、AI 生成のフィッシングリンク、不十分な CI/CD の衛生管理があり、ユーモラスに「犬が Kubernetes を食べ、YubiKey が失われた」という形で表現されました。 是正措置には、`vulpine-lz4` のリファクタリング(Rust に書き直し)、アーティファクト署名の実装(2022 年第 3 四半期からバックログされていた)、強制的な MFA の導入、847 の推移的依存関係の監査が含まれます。このインシデントは、自動化されたビルドパイプラインにおける重要なギャップと、将来の攻撃を防止するための厳格な依存関係監査の必要性を示しています。

2026/05/11 7:02

Obsidian プラグインが濫用され、遠隔アクセス型トロイの木馬(RAT)が展開されました。

## Japanese Translation: 主要な脅威は、Obsidian メモアプリケーションの正当なプラグイン同期機能を悪用して、Windows および macOS を標的とするリモートアクセストロイアンス(RAT)「PHANTOMPULSE」を配布する REF6598 キャンペーンです。攻撃者は、LinkedIn および Telegram を介して被害者を誘導し、コンプロマised コミュニティプラグインを含む悪意のあるクラウドホストされたバールの開封を促します。具体的には「Shell Commands」と「Hider」の 2 つのプラグインが該当します。ユーザーが手動でプラグイン同期を有効にすると、これらの脆弱なプラグインはローダーをトリガーし、最終的なペイロードをファイルベース検知を回避するために直接メモリ内に注入します(Windows では PowerShell スクリプト、macOS では AppleScript を使用)。その後、RAT は Ethereum ブロックチェーンを照会し、ハードコード化されたウォレットからのトランザクションデータに埋め込まれたコマンド&コントロールアドレスを収集します。 この compromise により、攻撃者はキーストロークを記録し、スクリーンショットを取得し、ファイルを横取りし、任意のコマンドを実行できます。その結果として生じる影響には、機密のある企業データの盗難、知的財産、取引戦略、および暗号通貨ウォレットキーの漏洩が含まれます。金融資産または暗号資産を管理する業界は特に脆弱です。これらのリスクを軽減するために、組織は信頼できないバールに対するプラグイン同期を無効にし、コミュニティプラグインについては公式マーケットプレイスからのものを厳しく審査するとともに、Obsidian によって起動された子プロセス(powershell.exe、cmd.exe、oscript など)を監視する必要があります。