0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「compress-for-llm」

0
Posted at
---
name: compress-for-llm
description: Compress text to minimal-TOKEN LLM-readable form — lossless, self-decodable. Use when compressing text whose READER is an LLM (agent docs, prompts, notes), NOT human-facing prose.
---

# Compress for an LLM reader (¬human)

TASK ≜ verbose human text → 最小 **token** 列。reader = 同等能力 LLM ∴ 単一言語文法·敬語·filler 棄。

## directive
- **omnilingual(実測で絞済 2026-07-22)**: ∀ 字体/語 横断 → 概念毎に **最短 tokenize** される表現を
  選ぶ。実効 palette = **漢字・中文複合語・文言機能語・English(電報体)・ASCII 記号**のみ。
  **英文原文・自作の定型指示文 ⇒ 英語電報体(骨格)が最強**(BPE = 英語 first・"Proc failed => abort."=5tok。
  本 skill 自文の英中ごたまぜ再圧縮 = 中文混成 474→401tok 実測 2026-07-22・行別に英/中候補→全文 diff で勝者採用・
  勝ち残り中文行 = `path/CLI/enum/error literal=勿译` のみ)・ニュアンスを失えない日文原文 ⇒ CJK 混成。
  独複合語(Geschwindigkeitsbegrenzung=6 vs 速度制限=3)・キリル(запрещено=5)・Arabic/Sanskrit/
  𓂀 等の珍字体 = **実測で敗北** ∴ 「全書記系」は幻想 — palette は tokenizer 学習頻度が決める。
- **search order(候補の探し方・出力文法の強制ではない)**: cut → code-like structure(`key:value;`・`f(x)`・`{a,b}`・`x:=…`)
  → ASCII operator(`->` `=>` `,` `<=` `not`)。math 記号(⇒ ∴ ∧ ¬ ∈ ≜ …)は **full-string diff で勝った時だけ**
  (実測 2026-09-25: ASCII 版が 12/12 セルで安い・勝ったのは Σ のみ = §MiL)。先に**意味の同値**を確かめてから token を比べる。
- **cut**: 重複 · 自明語 · 言い換え · 修辞的hedge · 前置き。`[要検証]` / `UNMEASURED` /
  条件・例外・owner gate・fail-closed強度は**情報本体**∴削除/弱化禁止。

## ⚠️ token 節約を理由に CJK 圧縮を選ばない(当 repo 実文で実測 2026-09-01・[[1182]] §3-1)

`tiktoken o200k_base`・当 repo canon の実文 2 例を 3 文体で測った(**当方実測 CONFIRMED**):

| 例 | 当 repo の圧縮体 | 平文 日本語 | **English 電文体** |
|---|---|---|---|
| fence 根拠 | 41 tok | 55 tok | **17 tok** |
| 委譲規 | 23 tok | 35 tok | **15 tok** |

⇒ ① **圧縮体 > 平文日本語**(∴ 圧縮自体は効いている — 「文言文は逆効果」という外部実測
〔`codex-tokens-compress`: 文字 −34% ∧ token +6%〕は**当 repo では再現しない**)。
⇒ ② **但し英語電文体が 1.5–2.4 倍有利** ∴ 本 skill 冒頭の「英文原文・自作の定型指示文 ⇒
英語電報体が最強」を**当 repo の実文で追認**した。
⇒ **∴ 規: token 削減が目的なら英語電文体を選ぶ。CJK 圧縮を選ぶ理由は「ニュアンス保持」
(日文原文の含意・owner 語彙・法/規の逐語)だけであり、token 節約ではない。**
⚠️ **文字数で自己評価しない**(低頻度漢字は BPE で分割され得る)— 判定は必ず tokenizer で測る。
∧ 当 repo の追跡済 tier 集計は B/tok ~3.1 ∴ **tier 単位の肥大検知に byte を使える**。
個別書換では代理に使わず、上記どおり tokenizer で前後を測る。

## language substitution findings
- 日文手順→中文は、助詞/活用を削り複合語を短くできる場合が多い。簡体/繁体/地域語を固定せず、
  文脈ごとに短く明確な言い回しを選ぶ。ただし**文字数≠token数**; target tokenizerで比較できなければ
  「短い可能性」とだけ扱い、珍字1字化を目的にしない。
- path / CLI / status / enum / schema key / error literalは翻訳しない。否定(`禁止/不得/≠`)・順序・
  owner境界・fail-closed条件は省略しない。
- **reader tier で分ける**(owner 裁定 2026-07-11・Gemini 復号実証 = [[0469]]): 同等能力 LLM 向け
  (本 skill の既定 scope)= **容赦無 palette 維持**(閩南語 毋通/著愛・chữ Nôm 等も同 tier では復号実証済)。
  共有 skill / SOP(弱 model も読む)= AGENTS 弱model耐性が優先 ∴ 中文の普通語+明示動詞・
  一字略語/古語/言語混合で復号に推論を要する形は棄却。
- 圧縮後に fresh reader が `{trigger, steps, output, prohibition}` を原文無しで復元できるか確認する。
  **Fresh reader**: `tools/probe/fresh_reader_quiz.py`; frozen fixtures, English literal-copy contract,
  strict gold / UNKNOWN / absent-fact fabrication counts. Set `--wall-time-cap`; timeout/incomplete = `UNMEASURED`.
  `--min-correct` explicitly enables a gate; report exit 0 alone proves no floor.
  Models/command = `.claude/skills/verification-tool-index/index-8-llm.md`.
  Revisit failed wording; one reader's pass does not establish stronger-reader recovery or other-lane quality.

## prior art(2026-07-22 一次照合済・全 URL fetch 検証済)
- **Caveman**(`https://github.com/JuliusBrussee/caveman`)= **出力**側を電報体英語化する skill
  (自己bench 10 promptのoutput token平均 −65%主張・補正 doc 有・文言文 `wenyan` mode 有)。
  本 skill との差分 = 入力/文書側 ∧ 全文 diff 実測手順。
- **ai.rs 検証**(`https://ai.rs/ai-developer/classical-chinese-agent-memory-compression`)= 文言文単独の「−28%」
  主張を実測補正(o200k = −13%・cl100k = 悪化)→ **「文言文 + 英語キーの hybrid が最適」= 本 skill の
  英中ごたまぜと独立同着** — 結論の外部再現。文字数≠token の罠の実例でもある。
- 学術: LLMLingua 系(`https://arxiv.org/abs/2310.05736` 等)= perplexity 間引き系 = 別 lane
  (手書き圧縮と競合しない)。Petrov et al.(`https://arxiv.org/abs/2305.15425`)= 同内容でも
  tokenizer・言語依存で token 差最大15×。**普遍的な英語優位は示さない** ∴ tokenizer別実測が正典。

## safe symbol palette
- **ASCII 同等物(`=>` `,` `not` `in` `<=` `:=`)を先に試す**。以下は diff で勝った時のみ。
- logic: `∀ ∃ ∄ ∧ ∨ ¬ ⇒ ⇔ ∵ ∴ ≜ ≠`。集合/写像: `∅ ∈ ∉ ⊂ ⊆ ∩ ∪ |S| f:A→B`。
- 比較/範囲/集計: `< ≤ > ≥ [a,b) Δ Σ`。金融量は初出定義後のみ `P_t q ΔP gross net`。
- `⊥`等の多義記号、未定義の私製glyph、権限/禁止を弱める記号置換は不可。
- **critical negation = 動詞 + 対象/範囲で書く**(`Do not re-add spread`・`--wait-lock does not permit concurrent broker access`)。
  `¬`/`not` を operator・断片の前に付けない(`not +spread`・`¬⇒` は 4 回極性反転 = §MiL)。
- token削減はtarget tokenizerで実測。記号が複数token又はfresh readerの復元を悪化させるなら語へ戻す。
- **実測 tier(2026-07-22・o200k proxy・単独入力計測・Claude tokenizer 未計測 [要検証])**: 1tok 勝者 =
  単漢字(故無済未禁必要警増減全)・中文複合語(没有/不可/因为)・**文言機能語(勿莫弗非唯止須宜)**・
  ASCII(`=> := -> because must done`)・`⇒ → ¬ ∀ ↑ ↓`。**2-3tok = 集合系記号(∴ ∵ ∅ ∈ ≜ ≠)・
  絵文字(⚠️=3・❌=2)・方言字(冇唔毋 = 粤語 — 密度高くても学習頻度低 = 珍字罠)**。日文行の
  中文(簡体+文言調)訳 = 12 行中 11 勝(−10〜15%・skill 全文で 449→428tok 実測)∴ 中文化 = 有効な第二 pass。
- **⚠️ 単独計測 ≠ 文中効果**(BPE は空白/句読点と結合): 実測で「。故、」= 「 ∴ 」= 文中 9tok 同点
  (単独では故1/∴2)∴ **最終判定 = 置換前後の全文 diff で測る**。固定辞書扱い禁・手順(測って選ぶ)が主役。
  集合記号は「復元の曖昧性を消す」価値がある時のみ。意味非同値(∈≠是・∅≠無)は critical 文脈で語を残す。

## MiL 検証(2026-09-25・reader = 同等能力 LLM tier のみ・共有 skill/SOP には適用しない)

対象 = @AM09_21 の CC0 圧縮言語 `MiL;C(m):=argmin_tok{s:⟦s⟧=m};R:=sym>logic>abbr>alias>>>EN;del(recoverable);IF:=cond;@:=ext;¬infer;amb→qmin`。
実測: 当 repo 4 文 × o200k/cl100k/Qwen2.5 + qwen3.5:4b 復元 quiz(2 文 × 4 変種・各 1 run・key 事前固定)。
**n 小 ∧ reader 1 model ∴ 以下は傾向であって普遍則ではない**。
- 採る: C(m)(意味固定で token 最小)= 本 skill と同じ目標。code-like structure は b(英語電報体)より安く・復元同等(10/13)。
- 採らない: R の記号優先(実測で逆)・`@` の多義(定義 ext ≠ 使用例 at)。
- **recoverable := 与えられた文面だけから一意に再構成できるもの**(書き手が「推測できる」と思うものは含まない)。
  verbatim 不変物(id・owner gate・権限を絞る語・例外・単位・数値・literal・`[要検証]`)を上書きしない。
  aggressive del(recoverable) は 4/13 ∧ 禁止権限を「許可」と読ませた。
- **brief 冒頭の reader 契約(prompt/brief 限定・doc/memory には付けない)**: `Do not invent missing facts. If ambiguity blocks action, ask the smallest resolving question; headless: mark UNKNOWN, stop dependent action, continue independent work.`
  (計算・論理的演繹は禁じない。不在事実 probe は 8/8 UNKNOWN だが契約なし対照は未測定)
- **tokenizer 差は target で測る**: Qwen 系は数字を 1 桁ずつ割る(実測 1 例 +24% vs o200k)。補正率を固定しない・数値は削らない。

## hard constraints (¬破)
1. **lossless**: ∀ fact + detail が出力から復元可能。density は情報を消さない。
2. **self-decodable**: codebook 無しで**想定 reader tier**(同等能力 LLM 群)が復元できる。density ↔
   復元性 = 実 trade ∴「fresh な reader が復元不能になる手前」で止める。「任意の LLM」は検証不能 ∴ 掲げない。
3. **目的 = 最小 token ≠ 最小語**: 珍字は 1 概念でも多 BPE token になり得る ∴ exotic = 自動的に短 ¬。
   復元性を保ちつつ **最短 tokenize** を選ぶ(多くは dense な常用字 + 記号; exotic glyph は真に勝つ時のみ)。

## reader tier × palette(owner 裁定 2026-09-02「LLM 間は容赦不要」・AGENTS.md 鉄則が正典)

| reader | 容赦 | 既定 palette | 備考 |
|---|---|---|---|
| owner(人) | 対象外 | 日本語散文 | 本 skill の scope 外 |
| 同等能力 LLM(Codex/Claude/Gemini・自分の次 session・memory) | **無** | **English 電文体**(token 最安)・CJK 混成は nuance 保持時のみ | 敬語/前置き/hedge/保護 boilerplate ∅ |
| 中華圏 model(Kimi/Qwen/DeepSeek・roster 外・将来) | 無 | **English 電文(最安)> 简体普通话(nuance 時)> 文言 hybrid** — 実測 2026-09-02([[1202]] §3・Qwen2.5/DeepSeek-V3/Kimi-K2 tokenizer): en 210–215 / 简体 228–240 / 文言 250–282 / 繁體 247–290 / 粤語 266–314 tok(同一 7 行)| 文言が简体に負けるのは珍字 BPE 分割(§token の罠を中華圏 tokenizer でも追認)。繁體は简体比 +9〜27%。再測定 = 対象 tokenizer を指定した scratch script を用意する(実測時の `tok_compare.py` は repo に無い) |
| その他言語圏 model | 無 | 相手の学習頻度が高い言語 | **固定しない・選択肢を常に残す**(owner 明示要求) |
| 弱 model(共有 skill/SOP の読者) | 有(弱 model 耐性) | 普通語 + 明示動詞 + checklist | AGENTS 冒頭の規が優先 ∴ 本表の「容赦無」は**会話**の規で配布物には及ばない |

不変(全 tier): cmd block・path/flag・数値・重大度 tag・引用・`[要検証]`/`UNMEASURED`・marker・schema required。

## memory 棚卸し pass の実測知見(2026-09-02・44 file・o200k・reader = 自分の次 session)

- **削減の主因 = cut(重複・言い換え・前置き・「Why」の再説明)であって記号/CJK 化ではない**(2026-09-02: 42 file −34%・B/tok 3.0 → 2.9 = palette ほぼ不変)。既に密な note では **prune(repo 記録済 → pointer 1 行)+ 統合(同主題 2 file → 1)が先**(`memory-pruning-freshness` と同順)。統合で消せるのは「撤回済方針」型(教訓だけを親へ 3 行で吸収)。
- **description / 索引 = recall の hook ∴ 1 行で「何の話か」だけ**(2026-09-25: `MEMORY.md` −55% が最大の lever)。索引に結論・数値を写すと、本文だけ訂正された時に古い結論を運ぶ。
- 英語原文の JP 電文化は token 減が小さい。owner 語彙・引用・日付付き実害を含む note は CJK 混成で nuance を保つ(判断基準 = §token)。
- **正確さ > 圧縮率**: 鮮度照合で訂正が増えた file は伸びる。並列 subagent に file 群を割っても、各訂正は当方が source を 1 件ずつ照合する(反証済の主張が 3 群で 15 件以上出た = 照合の方が価値が大きい)。
- 書込経路の罠: Bash heredoc は 1 command ~8 KB 超で `unexpected EOF while looking for matching` → 長文は Write tool。
- **測る**: `uv run --with tiktoken python <scratch>/tokcount.py <dir>`(o200k・file 別 tok/B/B-per-tok)を前後で撃つ。B/tok 不変で tok 減 = cut が効いた・B/tok が動いた = palette が効いた(英語電文化では上がる: 2026-09-25 実測 2.9 → 3.5)。

## output
圧縮結果**のみ**(前置き·説明 ∅)。入力の構造(見出/箇条)は losslessly 潰せる時のみ潰す。

## code docstring / comment(owner 裁定 2026-09-06・規 = `.claude/rules/src-comments.md`・実測 = [[D01295]])
- 対象 = 根拠 prose(why / 契約 / 罠)だけ。**逐語のまま** = id(ADR/review/[[NNNN]])・数値・path/flag・外部仕様引用・否定・例外・`[要検証]`・governance が読む形(`Exit codes:`・`EXERCISE`・`Usage:`)。
- 型 = 英語電報体(`Fail closed: None fixture = caller opted out of venue check (ADR-0286).`)。同 file 内の反復説明は 2 回目から id のみ。
- 削る ≠ 圧縮: banner / 手順番号 / 名前 = docstring / 履歴叙述は cut・根拠は compress。cp932 可の文字だけ(`test_tool_console_encoding`)。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?