DeepSeek R1 ローカル推論エンジン for Metal

2026/05/08 0:40

DeepSeek R1 ローカル推論エンジン for Metal

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

要約

Japanese Translation:

Summary:

The text introduces

ds4.c
, a Metal-only native inference engine optimized for Apple's hardware to run DeepSeek V4 Flash efficiently as a standalone graph executor rather than a generic GGUF wrapper. Built upon MIT-licensed components from llama.cpp and GGML (with contributions attributed to Georgi Gerganov), the project focuses on high-end personal machines (Mac Studio/MacBook) starting from 128GB memory. DeepSeek V4 Flash, featuring a 1 million token context window and reduced active parameters, supports 2-bit quantization (enabling operation on 128GB RAM Macs; 4-bit requires >= 256GB RAM). The system utilizes disk-based KV caching as first-class citizens to manage massive contexts without relying solely on volatile system RAM. Users can access the model via a local CLI tool (
./ds4
) supporting interactive chat, thinking modes, and context control, or via
./ds-server
for an OpenAI-compatible API with streaming reasoning logic. Performance benchmarks on a MacBook Pro M3 Max show 58.52 t/s prefill and 26.68 t/s generation at 2-bit quantization. Project correctness is validated by comparing local logits against official API vectors using a dedicated C runner, while model weights are downloaded and managed via specific scripts and directory structures.

本文

ds4.c は、DeepSeek V4 Flash に特化した小規模なネイティブ推論エンジンです。意図的に範囲を限定しており、汎用的な GGUF 実行環境でも、別のruntime のラッパーでも、フレームワークでもありません。主となるパスは、DS4 固有のローディング、プロンプトレンダリング、KV ステート、そしてサーバー API の接着層が付随した DeepSeek V4 Flash 専用メタルグラフ実行器です。

このプロジェクトが存在する背景には llama.cpp と GGML が不可欠であり、必ず謝辞セクションもご一読ください。Georgi Gerganov および他の貢献者諸氏へ心から感謝します。

さて、再び本プロジェクトに戻りましょう。なぜ私たちは DeepSeek v4 Flash を「独立した専用エンジンに値する特別なお modelli」と考えているのか。それは、強力な小規模なdenseモデルと比較した結果、以下の特性を報告できるからです:

  • アクティブパラメータが少ないため、DeepSeek v4 Flash はより高速に動作します。
  • 「思考(thinking)」モードにおいては、最大限の思考出力を避ければ、他のモデルに比べてはるかに短い思考セクション(多くの場合他モデルの 1/5 など)を生成し、重要なのは、思考セクションの長さが問題の複雑さに比例することです。これにより、他モデルでは実用的ではない状況でも、DeepSeek v4 Flash は思考機能を有効にしたまま利用可能です。
  • コンテキストウィンドウは 100 万トークンに対応します。
  • その分大きく、知識の境界線上でサンプリングすると多くの事柄を知っています。例えばイタリアのテレビ番組や政治に関する質問をした場合、すぐに 284B パラメータが 27B や 35B パラメータよりも遥かに優れていることが浮かび上がります。
  • 英語とイタリア語の文章作成能力は非常に高く、「準フロンティア(quasi-frontier)」的なモデルを感じさせます。
  • KV キャッシュは圧縮性に非常に優れており、ローカルコンピュータでの長時間コンテキスト推論や、ディスク上の KV キャッシュ永続化を可能にします。
  • 特異な方法で量子化された場合、2 ビット量子化と良好に動作し、これにより 128GB の RAM を搭載した MacBook でも実行可能です(詳細は後述)。
  • DeepSeek から v4 Flash のさらに優れた改良版が今後リリースされることを期待しています。

しかしながら、本プロジェクトにおけるいくつかの重要な点は以下の通りです:

  • ローカル推論の分野には多数の優れたプロジェクトが存在しますが、新しいモデルが絶えず公開され、その度に注目が移ってしまいます。このプロジェクトはあえて「狭い賭け」を行っています:一度に一つのモデルのみを対象とし、公式実装によるベクトル検証(logits)、長時間コンテキストテスト、かつ実際に機能するかを可視化するための十分なエージェント統合を実装する、というものです。対象となる正確なモデルは景気が変われば変更される可能性がありますが、制約は変わりません:高品位のパーソナルマシンや Mac Studio における信頼性の高いローカル推論を目指し、最低でも 128GB のメモリから開始します。
  • このソフトウェアは GPT 5.5 の強力な支援のもとで開発されましたが、コンセプト、テスト、デバッグは人間が主導しています。我々はオープンにこれを語る理由は、それがプロジェクトの構築方法を形作ったからです。もし AI が生成したコードに満足できないようであれば、本ソフトウェアには向いていません。また、以下の謝辞も同様に重要です:このプロジェクトが存在する根底には llama.cpp と GGML があり、これらは主に人間の手による実装です。
  • この実装は、「DeepSeek v4 のような圧縮 KV キャッシュと、現代 MacBook の高速 SSD ディスクの組み合わせが、KV キャッシュは RAM に属するという既存の概念を改めなければならない」という思想に基づいています。すなわち、KV キャッシュは第一級(first-class)のディスク住民なのです。
  • 私たちのビジョンは、ローカル推論が「开箱即用」で良好に連携する三要素のセットであるべきだというものです:A) HTTP API を備えた推論エンジン + B) 特定の実行環境と前提条件下で動作するように特別に設計された GGUF ファイル + C) コーディングエージェントによるテストと検証実装です。本推論エンジンは、提供された GGUF ファイルのみを実行します。異なるコンテキストサイズで取得した公式な logits と比較してテストされます。このプロジェクトが存在する理由は、単に実行可能であるだけでなく、一つのローカルモデルを「エンドツーエンドで完成品として」届けたいと考えたからです。しかし、これはアルファ品質のコードであり、おそらくまだ完全に達成できたわけではありません。
  • 現在は Metal 専用です。将来的に CUDA サポートを実装するかもしれませんが、それ以上の拡張は予定されていません。CPU パスは正しさ検証用のみであり、警告:現在の macOS バージョンには仮想メモリ実装の不具合があり、CPU コードを実行するとカーネルがクラッシュします。ソフトウェアの複雑さゆえです。毎回コンピューターの再起動を必要とするため、この CPU 推論クラッシュ問題を解決することは至難の業でしたが、もしお力添えいただける方は大歓迎です。

llama.cpp と GGML への謝辞

ds4.c は GGML にリンクしていませんが、llama.cpp プロジェクトが開いた道筋、それらのカーネル、量子化フォーマット、GGUF エコシステム、そしてそこで培われた難易度の高い工学知識に感謝しています。我々は llama.cpp とその貢献者諸氏に深く感銘を受け、恩義を感じています。彼らの実装、カーネル、テスト、および設計選好は、この DeepSeek V4 Flash 専用推論パスの構築において不可欠な参考文献となりました。一部のソースレベルの部品については MIT ライセンスの下でそのまままたは適応させて保留しており、その理由と真摯な感謝から、LICENSE ファイル内に GGML の著者名も記載し続けています。

モデルウェイト

この実装は、本プロジェクトのために公開された DeepSeek V4 Flash GGUF ファイルのみに対応しています。汎用的な GGUF ローダーではなく、任意の DeepSeek/GGUF ファイルはこのエンジンが期待するテンソル配置、量子化ミックス、メタデータ、またはオプションの MTP ステートを持っていたとは限りません。ここで提供されている 2 ビット量子化は冗談ではありません:它们は良好に動作し、コーディングエージェント下で機能し、ツール呼び出しを信頼性の高い方法で行います。

2 ビット量子化は非常に非対称な量子化手法を採用しており、ルーティングされた MoE エクスペルトのみが量子化されています(上方向/ゲート部は IQ2_XXS、下方向は Q2_K)。これらはモデル全体空間の大部分を占めており、他のコンポーネント(共有エクスペルト、プロジェクション、ルーティング)は品質を保証するため未 touch として扱われます。

メインモデルのダウンロード

./download_model.sh q2   # 128 GB RAM マシン向け
./download_model.sh q4   # 256 GB RAM 以上のマシン向け

スクリプトは https://huggingface.co/antirez/deepseek-v4-gguf からファイルをダウンロードし、

./gguf/
ディレクトリに保存します。部分ダウンロードは
curl -C -
で再開可能で、選択した q2/q4 モデルへの指針を更新して
./ds4flash.gguf
を設定します。パブリックダウンロードには認証はオプションですが、
--token TOKEN
HF_TOKEN
、またはローカルの Hugging Face トークンキャッシュが存在すればそれらが使用されます。

./download_model.sh mtp fetches 選択された MTP のオプション的推測デコーディングサポート GGUF ファイルを取得します。これは q2 および q4 両方とも使用可能ですが、明示的に --mtp で有効化する必要があります。現在の MTP/推測デコーディングパスはまだ実験的です:正しさをゲートされており、現状では生成速度の有意な向上ではなく、わずかな速度向上のみを提供します。

次にビルド:

./ds4flash.gguf
は両方のバイナリでデフォルトのモデルパスとして使用されます。別のサポートされた GGUF を選択するには
-m
を経由して
./gguf/
から指定します。完全なフラグリストを確認するには
./ds4 --help
および
./ds4-server --help
を実行してください。

速度

ここには、q2 GGUF、

--ctx 32768
--nothink
(思考なし)、greedy decocding、および
-n 256
の条件における単一実行の Metal CLI 数値を示します。短いプロンプトは通常の小さなイタリア語ストーリープロンプトであり、長いプロンプトは 11,709 トークンであり、チャンキングされたプリフィルおよび長時間コンテキストデコードを演じます。

機種プロンプトプリフィルジェネレーション
MacBook Pro M3 Max, 128 GB短縮版58.52 t/s26.68 t/s
MacBook Pro M3 Max, 128 GB11709 トークン250.11 t/s21.47 t/s
Mac Studio M3 Ultra, 512 GB短縮版84.43 t/s36.86 t/s
Mac Studio M3 Ultra, 512 GB11709 トークン468.03 t/s27.39 t/s

CLI

ワンショットプロンプト:

./ds4 -p "Redis ストリームを一言で説明してください。"

-p
が指定されていない場合、インタラクティブなプロンプトが開始されます: インタラクティブ CLI は本物のマルチターン DS4 チャットです。レンダリングされたチャットトランスクリプトとライブメタル KV チェックポイントを維持するため、各ターンは前回の会話に続きます。有用なコマンドは
/help
,
/think
,
/think-max
,
/nothink
,
/ctx N
,
/read FILE
, および
/quit
です。Ctrl+C で現在の生成を中断し、
ds4>
に戻ります。

CLI はデフォルトで思考モードになります。直接回答を得たい場合は

/nothink
または
--nothink
を使用してください。
--mtp MTP.gguf --mtp-draft 2
はオプションの MTP 推測パスを有効にしますが、これは現在 greedy decoding でのみ有用であり、自信ゲート (
--mtp-margin
) を使用してスローな部分受入を回避するため、実験的なわずかな速度向上パスとして扱ってください。

サーバー

ローカルの OpenAI/Anthropic 互換サーバーを開始します:

./ds4-server --ctx 100000 --kv-disk-dir /tmp/ds4-kv --kv-disk-space-mb 8192

サーバーは Metal 専用です。状態のないクライアントが同じプロンプトのより長いバージョンを再送信した場合でも、共有プレフィックスを再利用してゼロトークンからプリフィルするのではなく、既存のステートをリサイクルできます(メモリ上の可変グラフ/KV チェックポイントを一つ保持するため)。リクエスト解析とソケットはクライアントスレッドで処理されますが、推論自体は単一のメタルワーカーを通じてシリアライズされます。現在のサーバーは複数の独立したリクエストをバッチ化して同時実行することはなく、並行リクエストは単一のライブグラフ/セッション上で順番待ちします。

サポートされているエンドポイント:

  • GET /v1/models
  • GET /v1/models/deepseek-v4-flash
  • POST /v1/chat/completions
  • POST /v1/completions
  • POST /v1/messages

/v1/chat/completions
は、OpenAI 形式のメッセージ、
max_tokens
/
max_completion_tokens
、temperature、
top_p
top_k
min_p
seed
stream
stream_options.include_usage
、ツール、および tool_choice を受け入れます。ツールスキーマは DeepSeek の DSML ツール形式へレンダリングされ、生成された DSML ツール呼び出しは OpenAI ツール呼び出しへマッピングされます。

/v1/messages
は Claude Code 様式のクライアントが使用する Anthropic 互換エンドポイントです。system、messages、tools、tool_choice、max_tokens、temperature、top_p、top_k、stream、stop_sequences、そして思考制御を受け入れます。ツール使用は Anthropic
tool_use
ブロックとして返されます。

両方の API は SSE ストリーミングをサポートしています。思考モードでは、推論は最終テキストに混ざられることなく、ネイティブ API 形式でストリームされます。

最小限の OpenAI 例:

curl http://127.0.0.1:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model":"deepseek-v4-flash",
    "messages":[{"role":"user","content":"Redis デザイン原理を三つ列挙してください。"}],
    "stream":true
  }'

エージェントクライアントの使用例

ds4-server は、OpenAI 互チャットコンプリションを発信するローカルコーディングエージェントで使用できます。まずサーバーを開始し、クライアントのコンテキスト制限値をサーバー起動時の

--ctx
値を超えないように設定してください:

./ds4-server --ctx 100000 --kv-disk-dir /tmp/ds4-kv --kv-disk-space-mb 8192

必要であればより大きなコンテキストとキャッシュを使用できます。フルコンテキスト(1M トークン)は約 26GB のメモリを使用します(圧縮インデッカー単体でも 22GB に相当),したがってシステムに合わせて適切なコンテキストを構成してください。128GB の RAM の場合、81GB を既に使用する 2 ビット量子化を実行することになりますが、26GB はおそらく多いため、100~300k トークンのコンテキストウィンドウの方が賢明です。

以下の出力制限(384,000 トークン)は、モデルが元々非常に長い返信を生成できるため(最大 384k トークン)、トークン上限を回避するために設けられています。ただし、サーバーは構成されたコンテキストウィンドウが満杯になると停止します。

Opencode の場合:

~/.config/opencode/opencode.json
にプロバイダーおよびエージェントエントリを追加します:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "ds4": {
      "name": "ds4.c (local)",
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "http://127.0.0.1:8000/v1",
        "apiKey": "dsv4-local"
      },
      "models": {
        "deepseek-v4-flash": {
          "name": "DeepSeek V4 Flash (ds4.c local)",
          "limit": {
            "context": 100000,
            "output": 384000
          }
        }
      }
    }
  },
  "agent": {
    "ds4": {
      "description": "Local ds4-server で提供する DeepSeek V4 Flash",
      "model": "ds4/deepseek-v4-flash",
      "temperature": 0
    }
  }
}

Pi の場合:

~/.pi/agent/models.json
にプロバイダーを追加します:

{
  "providers": {
    "ds4": {
      "name": "ds4.c local",
      "baseUrl": "http://127.0.0.1:8000/v1",
      "api": "openai-completions",
      "apiKey": "dsv4-local",
      "compat": {
        "supportsStore": false,
        "supportsDeveloperRole": false,
        "supportsReasoningEffort": true,
        "supportsUsageInStreaming": true,
        "maxTokensField": "max_tokens",
        "supportsStrictMode": false,
        "thinkingFormat": "deepseek",
        "requiresReasoningContentOnAssistantMessages": true
      },
      "models": [
        {
          "id": "deepseek-v4-flash",
          "name": "DeepSeek V4 Flash (ds4.c local)",
          "reasoning": true,
          "thinkingLevelMap": {
            "off": null,
            "minimal": "low",
            "low": "low",
            "medium": "medium",
            "high": "high",
            "xhigh": "xhigh"
          },
          "input": ["text"],
          "contextWindow": 100000,
          "maxTokens": 384000,
          "cost": {
            "input": 0,
            "output": 0,
            "cacheRead": 0,
            "cacheWrite": 0
          }
        }
      ]
    }
  }
}

オプションとして、

~/.pi/agent/settings.json
でデフォルトの Pi モデルに設定できます:

{
  "defaultProvider": "ds4",
  "defaultModel": "deepseek-v4-flash"
}

Claude Code の場合:

Anthropic 互換エンドポイントを使用します。以下のラッパーは

~/bin/claude-ds4
セッティングに一致します:

#!/bin/sh
unset ANTHROPIC_API_KEY

export ANTHROPIC_BASE_URL="${DS4_ANTHROPIC_BASE_URL:-http://127.0.0.1:8000}"
export ANTHROPIC_AUTH_TOKEN="${DS4_API_KEY:-dsv4-local}"
export ANTHROPIC_MODEL="deepseek-v4-flash"

export ANTHROPIC_CUSTOM_MODEL_OPTION="deepseek-v4-flash"
export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="DeepSeek V4 Flash local ds4"
export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="ds4.c local GGUF"

export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-v4-flash"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash"
export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-flash"
export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4-flash"

export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
export CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1
export CLAUDE_STREAM_IDLE_TIMEOUT_MS=600000

exec "$HOME/.local/bin/claude" "$@"

Claude Code は有用な作業を開始する前に、約 25k トークンの大きな初期プロンプトを送出することがあります。

--kv-disk-dir
を有効に保ってください:最初の高価なプリフィル後、ディスク KV キャッシュにより後の継続や再始動セッションで保存されたプレフィックスを再利用でき、全体のプロンプトを再度処理する必要がなくなります。

思考モード

DeepSeek V4 Flash は、非思考、思考、および Think Max という明確に区別されたモードを持っています。サーバーはデフォルトで思考モードになります。

reasoning_effort=max
のリクエストは Think Max を呼び出しますが、これはモデルカード推奨のコンテキストサイズが十分大きい場合のみ適用されます。より小さなコンテキストでは通常の思考に戻ります。OpenAI の
reasoning_effort=xhigh
は依然として正常な思考にマッピングされ、Think Max ではありません。

直接返信については、

thinking: {"type":"disabled"}
,
think:false
, および非思考モデルエイリアス(例:
deepseek-chat
)を使用してください。

ディスク KV キャッシュ

チャット/コンプリメント API は状態なしです:エージェントクライアントは通常、各リクエストで全会話を再送信します。ds4-server はレンダリングされたトークンストリームとキャッシュされたトークンプレフィックスを比較することでこれを処理します。ライブのインメモリーチェックポイントは現在のセッションをカバーし、ディスク KV キャッシュにより有用なプレフィックスがセッション切り替えやサーバー再起動後も存続します。

メモリ効率のため、現在は一時的に一つのライブ KV キャッシュのみがあります。新しい関連性のないセッションがそれを置換する際、古いチェックポイントがディスク KV キャッシュに書き出されている場合のみ、再処理なしで再開可能です。つまり、メモリーキャッシュはアクティブなセッションを管理し、ディスクキャッシュは異なるセッション間での再起動機構です。

有効化には:

./ds4-server --kv-disk-dir /tmp/ds4-kv --kv-disk-space-mb 8192

キャッシュキーは生のテキストではなく正確なトークン ID の SHA1 です。各トークン ID はリトルエンディアン 32 ビット整数としてハッシュされ、ファイル名は

<sha1>.kv
と命名されます。

ファイルは意図的に通常の read/write I/O で書き出されており、

mmap
を使用していないため、モデルを実装しているプロセスに追加の VM マッピングを追加せずにキャッシュエントリを復元できます。

ディスク上のキャッシュファイルは:

  • KVC 固定ヘッダー、48 バイト
  • u32 rendered_text_bytes
  • UTF-8 ish トークンテキスト
    rendered_text_bytes
  • DS4 セッションペイロード、KVC ヘッダーからの
    payload_bytes

固定ヘッダーはリトルエンディアンです:

オフセットタイプ説明
0
u8[3]
magic = "KVC"
3
u8
version = 1
4
u8
routed expert quant bits, 現在 2 または 4
5
u8
save reason: 0 unknown, 1 cold, 2 continued, 3 evict, 4 shutdown
6
u8[2]
reserved
8
u32
cached token count
12
u32
hit count
16
u32
キャプチャされたコンテキストサイズ
20
u8[4]
reserved
24
u64
作成 Unix 時間
32
u64
最終使用 Unix 時間
40
u64
DS4 セッションペイロードバイト数

レンダリングされたテキストはキャッシュされたトークンプレフィックスのトークナイザーデコード済みテキストです。人間のキャッシュディレクトリを解凍せずに検査できるように可視化のためにのみ保存されており、キーとして使用されず、読み込み時に信頼されていません。読み込み後、保存されたチェックポイントトークンはまだ入ってくる要求プレフィックスと一致する必要があります。

DS4 セッションペイロードは 13 つのリトルエンディアン

u32
フィールドで始まります:

オフセットタイプ説明
0magic = "DSV4"
1payload version = 1
2saved context size
3prefill chunk size
4raw KV ring capacity
5raw sliding-window length
6compressed KV capacity
7checkpoint token count
8layer count
9raw/head KV dimension
10indexer head dimension
11vocabulary size
12live raw rows serialized below

次に以下のものを保存します:

  • u32[token_count]
    チェックポイントトークン ID。
  • そのチェックポイント後の次トークンの logits:
    float32[vocab_size]
  • u32[layer_count]
    圧縮済み注意力行数。
  • u32[layer_count]
    ratio-4 インデックス行数。 各レイヤーについて:ライブローリング滑り窓 KV 行は、物理環順序ではなく論理的な位置順序で書き込まれています。 圧縮層については:ライブ圧縮済み KV 行およびコンプレッサーフロンティアテンソル。 ratio-4 圧縮層については:ライブインデックス圧縮行およびインデックスフロンティアテンソル。

Logits はホスト

ds4_session
バファーからの生 IEEE-754 float32 値です。チェックポイント直後に保存され、ロードされたスナップショットが追加のデコードステップを実行せずに次のトークン分布からサンプリングまたは継続できるようにします。MTP ドラフト logits/ステートは永続化されません:ディスクチェックポイントをロードした後、ドラフトステートは無効化され、通常の生成により再構築されます。

テンソルペイロードは汎用的な推論グラフダンプではなく DS4 固有の KV/セッションステートです。このモデルレイアウトに対して互換性のある ds4.c ビルド間でのみ移植性が期待されます。

キャッシュは以下の 4 つの瞬間にチェックポイントを保存します:

  • cold(寒冷): 長い最初のプロンプトが安定したプレフィックスに達した後、生成前。
  • continued(継続): プリフィルまたは生成が構成された間隔でライブ会話を進めた際。
  • evict(追放): 関連性のないリクエストがライブインメモリーセッションを置換する直前。
  • shutdown(シャットダウン): サーバーがクリーンに終了した際。

Cold セーブは意図的に少量のトークンサフィックスをトリムし、プリフィルチャンク境界へアライメントします。これにより、将来のリクエストが同じプロンプトにテキストを追加した場合に、一般的な BPE 境界再トークナイゼーションミスを回避できます。デフォルトは保守的であり、少なくとも 512 トークンのプレフィックスを保存し、最大 30,000 トークンのプロンプトを cold セーブし、尾部から 32 トークンをトリムし、2048 トークンチャンクへアライメントします。重要なスライダーは:

  • --kv-cache-min-tokens
  • --kv-cache-cold-max-tokens
  • --kv-cache-continued-interval-tokens
  • --kv-cache-boundary-trim-tokens
  • --kv-cache-boundary-align-tokens

デフォルトでは、トークンプレフィックスが一致する場合、2 ビットおよび 4 ビットのルーティングエクスパートバリアントの間にチェックポイントを再利用できます。厳密な同じ量子化での再利用のみを望む場合は

--kv-cache-reject-different-quant
を使用してください。

キャッシュディレクトリは使い捨てです。挙動が不審に思われる場合は、サーバーを停止して削除してください。

hexdump
で調査すれば、kv キャッシュファイルにはverbatim プロンプトが含まれているため、何がキャッシュされているか調べられます。

バックエンド

デフォルトのバックエンドは Metal です:

CPU リファレンス/デバッグパスもあります:

# (CPU 実装詳細)

CPU パスをプロダクションターゲットとして扱わないでください。サーバーは Metal 専用であり、最適化された実装はメタルグラフパスにあります。これらは将来変更される可能性があります。

テストベクトル

tests/test-vectors
は公式 DeepSeek V4 Flash API からキャプチャされた短いおよび長時間コンテキスト継続ベクトルを含みます。リクエストは
deepseek-v4-flash
、greedy decocding、思考無効化、そして API が提供する最大
top_logprobs
スライスを使用了ます。ローカルベクトルは
./ds4 --dump-logprobs
で生成されトークンバイトで比較されるため、トークナイザー/テンプレートまたは注意回归問題が生じる前に長期間の生成失敗として現れます。

プロジェクト全体のテストは C ランナーによって駆動されます:

  • make test                  # ./ds4_test --all
  • ./ds4_test --logprob-vectors
  • ./ds4_test --server

同じ日のほかのニュース

一覧に戻る →

2026/05/08 7:22

キャンバス(Instructure)LMS は、現在も継続中のランサムウェア攻撃の影響で利用できない状態にあります。

## Japanese Translation: 2026 年 5 月 7 日、ShinyHunters 集団と見做されるランサムウェア攻撃により、Instructure の Canvas プラットフォーム(Canvas Beta および Canvas Test を含む)が停止し、調査が行われる間、すべての環境にアクセスできなくなる事態となった。この侵害は Instructure の確認によると、学生名、ID 番号、メール地址、および私信を含む情報を暴露させ、約 9,000 の学校で活動する約 2.75 億人の学生、教職員、スタッフに影響を与えた。ShinyHunters は、影響を受けた学校がサイバーアドバイザリーファームと連絡をとり、「TOX」へ私下に連絡して漏洩期限である 2026 年 5 月 12 日までのデータ漏洩防止に向けた解決策の交渉を行うよう要求し、加えて被害者リストへのリンクも提供した。ShinyHunters は以前にも AT&T、Ticketmaster、Rockstar Games、ADT、Vercel など大手組織を標的にしており、高度な手口を示している。Instructure は以前にも過去のアシインを受け、セキュリティを強化するためのパッチを展開していた。この事実は、大規模な学習管理システムが協調的なランサムウェア作戦に対して極めて脆弱であることを示すと同時に、漏洩期限前に大量のプライバシー侵害を防ぐため、教育機関に脅威アクターとの緊急交渉を迫っている。 ## Text to translate: ## Summary: On May 7, 2026, a ransomware attack attributed to the ShinyHunters group disabled Instructure's Canvas platform (including Canvas Beta and Canvas Test), leaving all environments inaccessible while an investigation proceeds. The breach affected roughly 275 million students, teachers, and staff across 9,000 schools, exposing student names, ID numbers, emails, and private messages per Instructure's confirmation. ShinyHunters demanded that affected schools contact a cyber advisory firm and reach out to "TOX" privately to negotiate a settlement before a data leak on May 12, 2026; the attackers also provided a link to a list of claimed victims. ShinyHunters has previously targeted major organizations such as AT&T, Ticketmaster, Rockstar Games, ADT, and Vercel, indicating sophisticated tactics. Instructure had previously deployed patches to strengthen security following a prior breach. The incident underscores the acute vulnerability of large-scale learning management systems to coordinated ransomware operations and forces educational institutions to urgently negotiate with threat actors to prevent mass privacy violations before the leak deadline.

2026/05/08 4:21

ディリー frag: ユニバーサル Linux LPE(ローカル・プリミティブ型エクスプロイト)

## 日本語翻訳: 「Dirty Frag」は、2026 年 5 月時点ですでにパッチが存在せず、攻撃者が瞬時に完全なルート権限によるシステム制御を可能にする重要な Linux セキュリティ欠陥である。この脆弱性は 2 つの異なる攻撃手法を連結することで、認証バイパスと必須ファイル(例:`/etc/passwd`)の書き換えを実現し、バックドアアクセスを作成することを許可する。技術的には、暗号化通信によく用いられる `esp4`、`esp6`、または `rxrpc` などの特定のカーネルモジュールを標的にしており、サンボクس化された環境内での「ESP 認証バイパス」トリックを用いたり、システムページのキャッシュに悪意のあるルートシェルを記述したりすることで攻撃を行う。通常のソフトウェアアップデートとは異なり、深刻さの理由から情報公開が制限されており、まだ正式な CVE(Common Vulnerabilities and Exposures)は存在しない。影響を受けるユーザーは、手動で脆弱なモジュールをカーネル設定から無効化しない限り、即時に完全なる侵害のリスクに直面している。管理者は、システムパスワード内の特定のバイトシグネチャを確認することで、自らの環境が曝されているかを検証できる。この状況は、「Copy Fail」といった以前にもある脆弱性と類似しており、これもまた別個のバグを連結させていた。「Dirty Frag」に対するパッチが開発されるまで、組織は不正な権限昇進と主要な Linux ディストリビューション全体にわたるデータ漏洩を防ぐため、これらの危険なコンポーネントを能動的に取り除く必要がある。

2026/05/08 8:02

一時的に新しいソフトウェアをインストールしない方がいいかもしれません。

## Japanese Translation: この文書は、Anubis ソフトウェアリリース版 v1.25.0-46-gd3a00da のための情報クレジットとして機能し、マスコットデザインを CELPHASE に帰属させ、サイトは🇨🇦(カナダ)で❤️(愛)を持って構築されたことを示しています。また、ウェブサイトは Techaro セキュリティインフラストラクチャによって保護されていることも記載されています。これら全ての要素は、視覚的な制作の帰属、開発の場所、セキュリティパートナーシップを確認するためのアトリビューションタグとして機能し、より広い歴史的背景や分析的な文脈を提供していません。 ## Text to translate: This passage serves as an informational credit for the Anubis software release, v1.25.0-46-gd3a00da. It attributes the mascot design to CELPHASE and indicates that the site was built with ❤️ in 🇨🇦 (Canada). The text also notes that the website is protected by Techaro security infrastructure. Collectively, these elements function as attribution tags that confirm visual authorship, location of development, and security partnerships, while offering no broader historical or analytical context.