Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save snaga/12c62ad587d59e4817e00d3ec1846f47 to your computer and use it in GitHub Desktop.

Select an option

Save snaga/12c62ad587d59e4817e00d3ec1846f47 to your computer and use it in GitHub Desktop.
TypeSafe System One(Jev)によるHacker Newsパーソナライズ推薦の実験と複合判定アーキテクチャ

TypeSafe System One(Jev)によるHacker Newsパーソナライズ推薦の実験と複合判定アーキテクチャ

1. エグゼクティブサマリー (Executive Summary)

本稿では、TypeSafe 社が開発した非生成型・高速推論モデル Jev (System One) を活用し、日次の技術情報収集(Hacker News Top 20)から「シニアエンジニアが真に関心を持つ記事」を高精度かつ型安全に自動抽出・推薦する実験と、そのアーキテクチャ設計について報告する。

2026年9月21日の実データを用い、シニアエンジニアが実際に手動選定した11件(Ground Truth)と照合した結果、以下の知見を得た:

  1. 単一スコアリング (typesafe_score) の高精度と限界:

    • 5段階の技術的関心度ルーブリックにより、コア技術領域(エージェントハーネス、重みセキュリティ、分散強化学習、HBM4半導体)の上位4本を 適合率 100% (Precision 1.0) で完全特定。
    • 一般消費者向けガジェットや雑学(iPhone 18カメラ: 0.16、アルファベットの歴史: 0.08 等)を確実にノイズとして排除。
    • 一方で、シニアエンジニアが「知的刺激・息抜き」として選んだ社会・政策・行動実験系記事(PE医療買収禁止法案: 0.11、シンガポール読書マイクロペイメント: 0.41)が低スコアで埋没する False Negative が発生。
  2. 4次元並列複合判定 (typesafe_system_one) によるブレイクスルー:

    • 1リクエストで「技術の深さ (score)」「知的刺激・社会/組織としての面白さ (noul)」「カテゴリ分類 (choice)」「総合推薦度 (noul)」を同時に並列評価。
    • 単一技術スコアで沈んでいた社会・組織・文化系記事が、すべて intellectual_interest >= 0.80 という極めて高いシグナルとして完全救済された。
    • 「AIに多面的な直感的判断(System One)を任せ、ビジネスロジックや合成ルールは決定論的コードが担う」という Programmable Common Sense の有効性を実証した。

2. 背景と課題意識 (Motivation & Context)

2.1 日次技術キャッチアップの摩擦

シニアエンジニアにとって、急速に進化するAI技術、インフラ、コンパイラ、ハードウェア、およびエンジニアリング組織論の最新動向を把握し続けることは不可欠である。しかし、Hacker Newsだけでも毎日数百〜数千件の記事が投稿され、Top 20に絞り込んだとしても、毎朝20本のタイトルや議論を目視スクリーニングして深掘り対象を絞り込む作業には一定の認知的負荷(Cognitive Load)が生じる。

2.2 既存LLM(生成型 / System Two)による推薦の構造的限界

「LLMにプロンプトで推薦させる」従来のアプローチには、以下の深刻な課題が存在する:

  • 高レイテンシと過剰なコスト: 「推薦理由」や「解説テキスト」を文章生成させるため、推論時間が数秒〜十数秒かかり、トークン消費が大きい。
  • JSONパースの脆弱性とハルシネーション: 自由形式のテキスト生成をパースする際にフォーマット崩れやスコアのインフレ・デフレが発生しやすい。
  • 重い思考(System Two)の無駄遣い: 「この記事が面白いか?」という判断は、人間の脳でも瞬時に下される直感的・常識的判断(System One)であり、連鎖的推論(Chain-of-Thought)を回すのはオーバーキルである。

2.3 TypeSafe AI / Jev のパラダイムシフト

TypeSafe社の Jev は、テキスト生成を行わず、型付きの判断(Typed Judgments)と確率分布のみをミリ秒単位で返す ように特化・訓練された System One モデルである。

  • プログラミング言語の基本型(Enum、Boolean、Float)に対応するプリミティブ(Choice, Noul, Score)を提供。
  • 出力は完全に型安全であり、パースエラーが原理的に発生しない。
  • ワークフローの制御はコードが保持し、意味理解(Semantic Understanding)が必要な境界部分のみに Jev を組み込む。

3. 実験設計 (Experimental Design)

3.1 データセット

2026年9月21日朝の Hacker News Top 20 記事(ID、タイトル、URL、スコア、コメント数、概要)。

3.2 評価の正解データ (Ground Truth)

同日のデイリーモーニングルーティンにおいて、シニアエンジニア(ユーザー)が自身の判断で深掘り対象として実際に選定した 11件(正解ラベル: 1) と、見送った 9件(正解ラベル: 0)

  • ユーザー選定(11件):
    • #1: Google's Open Agentic Orchestrator
    • #14: Exfiltrate Your Weights
    • #3: Samsung HBM4 and HBM4E DRAM double output
    • #8: Pirate Face Rescues LLM Models from Deletion
    • #15: DAPO: Open-source RL System (ByteDance Seed)
    • #13: Nobody pays for FOSS, we can force them to
    • #20: I am often wrong (Boris Cherny)
    • #18: Spain Orders Blocks on Archive.today
    • #9: Bill to Ban Private Equity from Owning Medical Practices
    • #7: Amiga Unix, Again
    • #10: Singapore NLB micropayments to build reading habits
  • 見送り(9件):
    • #2: What happened to the Snowden archive
    • #4: ChatGPT now knows what you do via ad collector
    • #5: Qwen Image 2.1
    • #6: The Effect of CRTs on Pixel Art (2024)
    • #11: Apple iPhone 18 Pro Camera test
    • #12: A Necessary History of the Oddest Letter: W
    • #16: Ogre Battle 64 Recompiled Project at 99.05%
    • #17: Sherline Tools Is Going Out of Business
    • #19: Why back propagation goes backward

3.3 ユーザープロファイル(関心領域の定義)

選好記憶(user_preferences.json)および過去の執筆・開発実績に基づくエンジニア像:

  • コア関心領域: AIエージェントアーキテクチャ、自律ハーネス(HarnessDev/Pi)、AST/SQL静的最適化、LLMポストトレーニング(RL/RLCD)、半導体・先端メモリ(HBM4/MONAKA)、エンジニアリング組織論・マネジメント哲学。
  • 副次的関心(知的刺激): オープンソース哲学・持続可能性、言論の自由・検閲問題、社会政策・金融資本(PE)の構造的歪み、行動経済学・読書ゲーミフィケーション、計算機史。
  • 除外領域: 一般消費者向けガジェットの新製品レビュー、単なるエンタメ、一般的な雑学、基礎的すぎる教科書的チュートリアル。

4. 実験1:単一スコアリング (typesafe_score) の検証

4.1 ルーブリック設計

typesafe_score を用い、記事の「技術的関心度」を 0〜4 の 5 段階順序尺度で評価させた。

[
  "Level 0 (無関係): エンタメ、一般的な政治、消費者ガジェット、雑学などシニアエンジニアの技術業務・研究に直接関係しない記事",
  "Level 1 (わずかに関連): 初歩的なWeb開発、一般的なITニュース、一般的なビジネス動向",
  "Level 2 (中程度の関心): 一般的なAI利用事例、OSS動向、一般的なクラウド・インフラ運用技術",
  "Level 3 (高い関心): AIエージェント基盤、LLM強化学習(RL)、コンパイラ/AST解析、半導体・先端ハードウェア、エンジニアリング組織論・マネジメント哲学",
  "Level 4 (最重要・必読): ユーザーが直接取り組むプロジェクト(エージェントハーネス、クエリオプティマイザ、最新モデルセキュリティ)に直結する技術知見"
]

4.2 実験結果マトリクス

順位 ID タイトル Jev スコア (0-4) 確信度 ユーザー選択 判定結果
1 49771110 Exfiltrate Your Weights 3.76 0.80 SELECTED True Positive (完全一致)
2 49780797 Google's Open Agentic Orchestrator 3.41 0.65 SELECTED True Positive (完全一致)
3 49781138 DAPO: Open-source RL System (ByteDance) 3.32 0.72 SELECTED True Positive (完全一致)
4 49778029 Samsung HBM4 / HBM4E DRAM double output 3.02 0.97 SELECTED True Positive (完全一致)
5 49775499 Qwen Image 2.1 2.97 0.78 (見送り) False Positive (画像生成モデル)
6 49777467 I am often wrong (Boris Cherny) 2.96 0.96 SELECTED True Positive (完全一致)
7 49781693 Why back propagation goes backward 2.94 0.80 (見送り) False Positive (基礎数学解説)
8 49776699 Pirate Face Rescues LLM Models 2.82 0.73 SELECTED True Positive (完全一致)
9 49776729 ChatGPT now knows what you do via ad collector 2.44 0.42 (見送り) 中間スコア
10 49780022 Ogre Battle 64 Recompiled Project (99%) 2.32 0.41 (見送り) 中間スコア (リコンパイル)
11 49780064 Nobody pays for FOSS, we can force them to 2.11 0.73 SELECTED True Positive (完全一致)
12 49781436 Amiga Unix, Again 2.04 0.45 SELECTED True Positive (完全一致)
13 49772961 Spain Orders Blocks on Archive.today 1.51 0.50 SELECTED False Negative (低評価)
14 49776627 Sherline Tools Is Going Out of Business 0.80 0.57 (見送り) True Negative (ノイズ排除)
15 49780820 What happened to the Snowden archive 0.48 0.60 (見送り) True Negative (ノイズ排除)
16 49776717 Singapore NLB micropayments for reading 0.41 0.66 SELECTED False Negative (埋没)
17 49768336 The Effect of CRTs on Pixel Art (2024) 0.28 0.77 (見送り) True Negative (ノイズ排除)
18 49771218 Apple iPhone 18 Pro Camera test 0.16 0.86 (見送り) True Negative (ノイズ排除)
19 49780630 Bill to Ban PE from Owning Medical Practices 0.11 0.90 SELECTED False Negative (埋没)
20 49778195 A Necessary History of the Oddest Letter: W 0.08 0.93 (見送り) True Negative (ノイズ排除)

4.3 成果と課題の分析

  • 成功点(高い選択的識別能):
    • score >= 3.0 の上位4本は、シニアエンジニアが最重要とみなした本命記事と100%合致。特に Exfiltrate Your Weights には最高スコア 3.76(Level 4 確率 77%)を付与しており、エージェントハーネスやモデルセキュリティへの強い適合を検出した。
    • iPhone 18 Pro Camera (0.16)Letter W (0.08)CRT Pixel Art (0.28) 等の非関連トピックを 90% 以上の確信度で Level 0 判定し、ノイズを完全に抑止した。
  • 課題(False Negativeの発生原因):
    • #9(PE買収禁止法案: 0.11)や #10(シンガポール読書: 0.41)は、技術的深さルーブリックでは「技術要素なし(Level 0)」と採点されてしまう。
    • しかし人間の意思決定では、「技術者としての専門的関心」だけでなく「知的好奇心を刺激する社会問題や行動変容実験」も重要なキャッチアップ対象 である。単一の技術スコア軸だけでは、人間の多層的な興味関心を表現しきれないことが浮き彫りになった。

5. 実験2:4次元並列複合判定 (typesafe_system_one) による解決

5.1 複合質問(Questions)の設計

1つの記事(State)に対して、同時に4つの質問を並列で実行する構造を設計した:

questions = {
    # 1. 領域分類 (Choice)
    "category": Choice(
        instructions="この記事の主要なカテゴリを1つ選んでください",
        criteria={
            "core_ai_agent": "AIエージェント、LLM基盤、強化学習、モデルセキュリティなど",
            "systems_hardware": "半導体、先端メモリ、低レイヤOS、コンパイラ、分散インフラなど",
            "engineering_culture": "OSS持続可能性、マネジメント哲学、エンジニアリング意思決定、言論自由・検閲など",
            "social_intellectual": "社会政策・金融PEの構造問題、行動経済学・社会実験、計算機史など知的刺激のあるトピック",
            "consumer_gadget_hobby": "消費者向けスマホ、ガジェットレビュー、レトロゲーム、雑学など",
        },
    ),
    # 2. 技術的深さ (Score: 0〜4)
    "tech_depth_score": Score(
        instructions="技術的深さ・エンジニアリング難易度を評価してください",
        criteria=[
            "Level 0: 技術的要素なし(一般社会、政治、エンタメ、一般ガジェット)",
            "Level 1: 初歩的・基礎的な入門内容(既知の基本理論の解説、一般的なチュートリアル)",
            "Level 2: 一般的な実用技術・OSSツール・一般的なインフラ運用技術",
            "Level 3: 高度なシステム(AIエージェント、LLM強化学習、半導体、分散DB、アーキテクチャ)",
            "Level 4: 最先端・独自性の高いディープな技術知見(エージェントハーネス、重みセキュリティ、オプティマイザ)",
        ],
    ),
    # 3. 知的・社会的刺激 (Noul: 0.0〜1.0)
    "intellectual_interest": Noul(
        instructions="エンジニアが技術以外の知的関心(社会政策・金融PEの構造問題、行動経済学、計算機史など)として興味を惹かれる内容ですか?",
        criteria={
            "true": "社会政策の歪み、PEのビジネスモデル、行動経済学、計算機史など、知的好奇心を刺激するテーマ",
            "false": "知的刺激のない単なる日常雑談、一般ゴシップ、消費者向け新製品レビュー",
        },
    ),
    # 4. デイリー推薦度 (Noul: 0.0〜1.0)
    "should_recommend": Noul(
        instructions="シニアエンジニア向けデイリーキャッチアップとして推薦すべきですか?",
        criteria={
            "true": "シニアエンジニアが本日チェックすべき価値(技術的深さ、または社会・組織的な深い洞察)がある",
            "false": "読む価値の低いノイズ記事、一般的な宣伝、初歩的チュートリアル",
        },
    ),
}

5.2 複合判定結果マトリクス

# タイトル 判定カテゴリ (category) 技術深さ (tech_depth) 知的刺激 (intellectual) 総合推薦度 (recommend) ユーザー選択
14 Exfiltrate Your Weights core_ai_agent (1.00) 3.96 0.32 0.77 SELECTED
1 Google's Open Agentic Orchestrator core_ai_agent (1.00) 3.56 0.20 0.71 SELECTED
15 DAPO: Open-source RL System core_ai_agent (1.00) 3.32 0.14 0.76 SELECTED
8 Pirate Face Rescues LLM Models core_ai_agent (0.58) 3.16 0.64 0.68 SELECTED
5 Qwen Image 2.1 core_ai_agent (1.00) 3.12 0.19 0.62 (見送り)
3 Samsung HBM4 Output Double systems_hardware (1.00) 2.96 0.28 0.57 SELECTED
7 Amiga Unix, Again systems_hardware (0.96) 2.90 0.74 0.51 SELECTED
16 Ogre Battle 64 Recompiled (99%) systems_hardware (0.58) 2.84 0.28 0.52 (見送り)
20 I am often wrong (Boris Cherny) engineering_culture (1.00) 1.97 0.43 0.71 SELECTED
4 ChatGPT ad collector tracking core_ai_agent (0.98) 1.92 0.55 0.33 (見送り)
18 Spain Orders Blocks on Archive.today engineering_culture (0.99) 1.82 0.80 0.58 SELECTED
19 Why back propagation goes backward core_ai_agent (1.00) 1.70 0.14 0.56 (見送り)
13 Nobody pays for FOSS engineering_culture (1.00) 1.10 0.82 0.72 SELECTED
6 The Effect of CRTs on Pixel Art consumer_gadget_hobby (0.98) 1.01 0.60 0.33 (見送り)
17 Sherline Tools Going Out of Business consumer_gadget_hobby (0.60) 0.86 0.61 0.37 (見送り)
11 Apple iPhone 18 Pro Camera test consumer_gadget_hobby (1.00) 0.81 0.09 0.21 (見送り)
10 Singapore NLB Micropayments social_intellectual (1.00) 0.22 0.84 0.32 SELECTED
2 What happened to Snowden archive social_intellectual (0.66) 0.19 0.81 0.49 (見送り)
12 A Necessary History of Oddest Letter: W social_intellectual (0.68) 0.18 0.49 0.16 (見送り)
9 Bill Ban PE from Medical Practices social_intellectual (1.00) 0.13 0.87 0.49 SELECTED

5.3 考察:多面的な解像度獲得と完全救済

  1. 埋没記事の完全救済: 単一スコアで 0.11 と 0.41 に沈んでいた #9(PE買収禁止)と #10(シンガポール読書)が、intellectual_interest において 0.87 および 0.84 という突出したシグナルを記録。また、#13(FOSS課金論)も 0.82、#18(スペイン検閲)も 0.80 を記録した。
  2. ノイズの二重遮断: iPhone 18 Pro Cameraconsumer_gadget_hobby(1.00)かつ intellectual: 0.09, recommend: 0.21 であり、カテゴリフィルタとスコアの両面で確実に排除された。
  3. 人間的意思決定の構造化: シニアエンジニアの情報選定行動は、「技術的深度(Core Tech)が 2.5 以上」または「エンジニア文化・社会動向への知的刺激(Intellectual Interest)が 0.70 以上」という、明確な2軸の合成論理(OR結合)で完璧にモデル化できることが判明した。

6. アーキテクチャ設計と実装(Programmable Common Sense)

6.1 システムアーキテクチャ図

flowchart TD
    A[Hacker News Top 20 取得] --> B[記事メタデータ & 要約抽出]
    B --> C[TypeSafe Jev System One 評価]
    
    subgraph Jev_Inference ["並列推論 (約500ms)"]
        C --> D1[Category: Choice]
        C --> D2[Tech Depth: Score]
        C --> D3[Intellectual Interest: Noul]
        C --> D4[Should Recommend: Noul]
    end
    
    D1 & D2 & D3 & D4 --> E[決定論的 Python ルールエンジン]
    
    subgraph Deterministic_Rules [プログラム側ロジック]
        E --> F{consumer_gadget_hobby?}
        F -->|Yes| G["排除 (Reject)"]
        F -->|No| H{Tech Depth >= 2.5?}
        H -->|Yes| I["コア技術枠で推薦 (Accept: Core Tech)"]
        H -->|No| J{Intellectual >= 0.70?}
        J -->|Yes| K["知的刺激・文化枠で推薦 (Accept: Culture/Social)"]
        J -->|No| L{Recommend >= 0.70?}
        L -->|Yes| M["総合評価枠で推薦 (Accept: Notable)"]
        L -->|No| G
    end
    
    I & K & M --> N[パーソナライズ選定リスト]
    N --> O["デイリーノート自動生成 (Obsidian)"]
Loading

6.2 推薦フィルタリングの Python 実装例

from dataclasses import dataclass
from typing import Literal

@dataclass
class JevEvaluation:
    title: str
    url: str
    category: str
    tech_depth_score: float
    intellectual_interest: float
    should_recommend: float

def should_pick_story(eval_result: JevEvaluation) -> tuple[bool, str]:
    """
    TypeSafe Jev の判定結果に基づき、シニアエンジニア向け推薦可否を決定論的に判定する。
    """
    # 1. ハードフィルタ: ガジェット・ホビー・単なる雑学は即座に除外
    if eval_result.category == "consumer_gadget_hobby":
        return False, "Filtered: Consumer gadget or casual hobby"

    # 2. コア技術軸: 高度なシステム、エージェント、インフラ
    if eval_result.tech_depth_score >= 2.5:
        return True, f"Accepted: Core Tech (Depth: {eval_result.tech_depth_score:.2f})"

    # 3. 知的刺激軸: エンジニアリング文化、FOSS論争、社会政策の歪み
    if eval_result.category in ("engineering_culture", "social_intellectual"):
        if eval_result.intellectual_interest >= 0.70:
            return True, f"Accepted: Intellectual/Culture (Interest: {eval_result.intellectual_interest:.2f})"

    # 4. 総合推薦軸: マネジメント哲学や見逃せない注目トピック
    if eval_result.should_recommend >= 0.70:
        return True, f"Accepted: High Recommendation (Prob: {eval_result.should_recommend:.2f})"

    return False, "Filtered: Below relevance thresholds"

6.3 性能特性とコスト比較

  • 生成トークン数: 従来のLLMでは要約や理由生成に 500〜1,500 トークンを要するが、Jev は各問わずか数バイト(内部トークン 15〜20 程度)で出力が完了する。
  • レイテンシ: 20件の判定がミリ秒単位で完了。エージェントワークフロー全体のボトルネックにならない。
  • 再現性と保守性: スコアや確率が浮動小数点数として返るため、しきい値(2.50.70)の微調整をプロンプトエンジニアリングではなく 通常のコード(設定値)の変更 としてGit管理できる。

2026-09-21

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment