feat: add DeepSeek equal-length history control
This commit is contained in:
@@ -14,6 +14,8 @@ import rawTemplate from "@/data/deepseek-v2-lite-routing-template.json";
|
||||
import rawTemplateRepro from "@/data/deepseek-v2-lite-routing-template-repro.json";
|
||||
import rawHistory from "@/data/deepseek-v2-lite-routing-history-factorial.json";
|
||||
import rawHistoryRepro from "@/data/deepseek-v2-lite-routing-history-factorial-repro.json";
|
||||
import rawDistance from "@/data/deepseek-v2-lite-routing-history-distance-control.json";
|
||||
import rawDistanceRepro from "@/data/deepseek-v2-lite-routing-history-distance-control-repro.json";
|
||||
|
||||
const trace = rawTrace as any;
|
||||
const repro = rawRepro as any;
|
||||
@@ -30,12 +32,15 @@ const template = rawTemplate as any;
|
||||
const templateRepro = rawTemplateRepro as any;
|
||||
const history = rawHistory as any;
|
||||
const historyRepro = rawHistoryRepro as any;
|
||||
const distance = rawDistance as any;
|
||||
const distanceRepro = rawDistanceRepro as any;
|
||||
const absorbExact = JSON.stringify(absorb) === JSON.stringify(absorbRepro);
|
||||
const corpusExact = JSON.stringify(corpus) === JSON.stringify(corpusRepro);
|
||||
const matched16Exact = JSON.stringify(matched16) === JSON.stringify(matched16Repro);
|
||||
const matched24Exact = JSON.stringify(matched24) === JSON.stringify(matched24Repro);
|
||||
const templateExact = JSON.stringify(template) === JSON.stringify(templateRepro);
|
||||
const historyExact = JSON.stringify(history) === JSON.stringify(historyRepro);
|
||||
const distanceExact = JSON.stringify(distance) === JSON.stringify(distanceRepro);
|
||||
const bytes = (value: number) => value >= 1024
|
||||
? `${(value / 1024).toFixed(2)} KiB`
|
||||
: `${value.toLocaleString()} B`;
|
||||
@@ -244,6 +249,86 @@ const historyCompact = {
|
||||
})),
|
||||
};
|
||||
const historyCompactJson = JSON.stringify(historyCompact).replaceAll("<", "\\u003c");
|
||||
const distanceEdges = [
|
||||
"system_none",
|
||||
"system_filler",
|
||||
"system_demo",
|
||||
"demo_vs_filler_s0",
|
||||
"demo_vs_filler_s1",
|
||||
];
|
||||
const aggregateDistanceAlignment = (layer: any, domain: string, edge: string) => {
|
||||
const rows = layer.prompts
|
||||
.filter((prompt: any) => prompt.domain === domain)
|
||||
.map((prompt: any) => prompt.alignments[edge]);
|
||||
const aligned = rows.reduce((sum: number, row: any) => sum + row.aligned_tokens, 0);
|
||||
const setExact = rows.reduce((sum: number, row: any) => sum + row.set_topk_exact, 0);
|
||||
const orderedExact = rows.reduce((sum: number, row: any) => sum + row.ordered_topk_exact, 0);
|
||||
const weightedJaccard = rows.reduce(
|
||||
(sum: number, row: any) => sum + row.mean_jaccard * row.aligned_tokens,
|
||||
0,
|
||||
);
|
||||
return {
|
||||
aligned,
|
||||
setExactRate: setExact / aligned,
|
||||
orderedExactRate: orderedExact / aligned,
|
||||
meanJaccard: weightedJaccard / aligned,
|
||||
};
|
||||
};
|
||||
const distanceCompact = {
|
||||
domains: distance.corpus_contract.domains,
|
||||
labels: distance.corpus_contract.domain_labels,
|
||||
inference: distance.inference_contract,
|
||||
messages: {
|
||||
system: distance.history_control_contract.system_message,
|
||||
demoUser: distance.history_control_contract.demo_user,
|
||||
demoAssistant: distance.history_control_contract.demo_assistant,
|
||||
fillerUser: distance.history_control_contract.filler_user,
|
||||
fillerAssistant: distance.history_control_contract.filler_assistant,
|
||||
},
|
||||
exact: distanceExact,
|
||||
layers: distance.layers.slice(1).map((layer: any) => ({
|
||||
layer: layer.layer,
|
||||
alignment: Object.fromEntries(
|
||||
distance.corpus_contract.domains.map((domain: string) => [
|
||||
domain,
|
||||
Object.fromEntries(
|
||||
distanceEdges.map((edge) => [
|
||||
edge,
|
||||
aggregateDistanceAlignment(layer, domain, edge),
|
||||
]),
|
||||
),
|
||||
]),
|
||||
),
|
||||
scopes: Object.fromEntries(
|
||||
["target_content", "full_input"].map((scope) => [
|
||||
scope,
|
||||
{
|
||||
modes: Object.fromEntries(
|
||||
["prompt_balanced", "token_weighted"].map((mode) => {
|
||||
const control = layer.statistics[scope].modes[mode].history_control;
|
||||
return [
|
||||
mode,
|
||||
Object.fromEntries(
|
||||
distance.corpus_contract.domains.map((domain: string) => [
|
||||
domain,
|
||||
{
|
||||
distances: control[domain].system_edge_distances,
|
||||
contrasts: control[domain].system_edge_distance_contrasts,
|
||||
cvEdges: control[domain].metric_system_edges.cv,
|
||||
cvContrasts: control[domain].metric_system_edge_contrasts.cv,
|
||||
lexical: control[domain].lexical_replacement,
|
||||
},
|
||||
]),
|
||||
),
|
||||
];
|
||||
}),
|
||||
),
|
||||
},
|
||||
]),
|
||||
),
|
||||
})),
|
||||
};
|
||||
const distanceCompactJson = JSON.stringify(distanceCompact).replaceAll("<", "\\u003c");
|
||||
const shardFraction = trace.provenance.shard_1_bytes / trace.provenance.checkpoint_tensor_bytes;
|
||||
---
|
||||
|
||||
@@ -255,7 +340,7 @@ const shardFraction = trace.provenance.shard_1_bytes / trace.provenance.checkpoi
|
||||
</div>
|
||||
<p>
|
||||
固定官方 revision、tokenizer、模型代码和 BF16 第一分片;RTX 5090 连续执行 layer 0–6,
|
||||
从 3,240 次 token 显微轨迹扩到 1,736,352 次公开语料路由,并让 layer-1 权重继续走入官方吸收式 cache。
|
||||
从 3,240 次 token 显微轨迹扩到 3,112,848 次公开语料路由,并让 layer-1 权重继续走入官方吸收式 cache。
|
||||
所有结论都带证据身份与停止线。
|
||||
</p>
|
||||
</header>
|
||||
@@ -289,8 +374,11 @@ const shardFraction = trace.provenance.shard_1_bytes / trace.provenance.checkpoi
|
||||
<button type="button" role="tab" data-artifact-tab="history" aria-selected="false" tabindex="-1">
|
||||
<span>07</span><b>消息历史 2×2</b><small>system × one-shot</small>
|
||||
</button>
|
||||
<button type="button" role="tab" data-artifact-tab="distance" aria-selected="false" tabindex="-1">
|
||||
<span>08</span><b>等长历史控制</b><small>none → filler → demo</small>
|
||||
</button>
|
||||
<button type="button" role="tab" data-artifact-tab="evidence" aria-selected="false" tabindex="-1">
|
||||
<span>08</span><b>证据断面</b><small>revision · shards · rerun</small>
|
||||
<span>09</span><b>证据断面</b><small>revision · shards · rerun</small>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -950,6 +1038,132 @@ const shardFraction = trace.provenance.shard_1_bytes / trace.provenance.checkpoi
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="artifact-panel" data-artifact-panel="distance" hidden>
|
||||
<div class="panel-lead">
|
||||
<div><span>X / EQUAL-LENGTH HISTORY CONTROL</span><h4>把“历史缓冲”再拆一层:可读示例并不是唯一来源</h4></div>
|
||||
<p>
|
||||
system 开 / 关分别搭配无历史、17-token 重复词元 filler 与 17-token 原 one-shot。
|
||||
filler / demo 的角色、EOS、目标位置与 batch 形状完全相同,只替换历史文本。
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="history-ledger distance-ledger">
|
||||
<article><span>SOURCE PROMPTS</span><b>128</b><p>四个公开域各 32 条;同一 cohort</p></article>
|
||||
<article><span>2×3 VARIANTS</span><b>768</b><p>system 0/1 × none/filler/demo</p></article>
|
||||
<article><span>INPUT TOKENS</span><b>38,236</b><p>六格完整官方模板输入</p></article>
|
||||
<article><span>REAL ROUTES</span><b>1,376,496</b><p>六格 × 前六个 MoE 层</p></article>
|
||||
<article><span>ALIGNED TARGET</span><b>2,874 × 6</b><p>相同字符跨度与 token ID</p></article>
|
||||
<article class="exact"><span>INDEPENDENT RERUN</span><b>{distanceExact ? "BYTE-EXACT" : "MISMATCH"}</b><p>完整 JSON SHA-256 423a095d…e648e</p></article>
|
||||
</div>
|
||||
|
||||
<div class="distance-protocol" aria-label="System 与三种消息历史的二乘三控制矩阵">
|
||||
<div class="distance-row head">
|
||||
<span>HISTORY →</span>
|
||||
<b>NONE · 无历史</b>
|
||||
<b>FILLER · 重复词元</b>
|
||||
<b>DEMO · 原 one-shot</b>
|
||||
</div>
|
||||
<div class="distance-row">
|
||||
<strong>S0<br /><small>无 SYSTEM</small></strong>
|
||||
<article><span>S0 / NONE</span><div><i>USER TARGET</i><em>Assistant:</em></div><p>目标前没有已完成 turn。</p></article>
|
||||
<article><span>S0 / FILLER</span><div><b>USER · x×9</b><b>ASSISTANT · x · EOS</b><i>USER TARGET</i></div><p>相对 none 固定 +17 tokens。</p></article>
|
||||
<article><span>S0 / DEMO</span><div><u>USER · Reply with OK</u><u>ASSISTANT · OK · EOS</u><i>USER TARGET</i></div><p>同样固定 +17 tokens。</p></article>
|
||||
</div>
|
||||
<div class="distance-row">
|
||||
<strong>S1<br /><small>固定 SYSTEM</small></strong>
|
||||
<article><span>S1 / NONE</span><div><mark>SYSTEM</mark><i>USER TARGET</i><em>Assistant:</em></div><p>system 相对 S0 固定 +16 tokens。</p></article>
|
||||
<article><span>S1 / FILLER</span><div><mark>SYSTEM</mark><b>FILLER TURN · EOS</b><i>USER TARGET</i></div><p>与 S1 demo 的目标位置相同。</p></article>
|
||||
<article><span>S1 / DEMO</span><div><mark>SYSTEM</mark><u>DEMO TURN · EOS</u><i>USER TARGET</i></div><p>只把 filler 文本替换为原示例。</p></article>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="distance-controls">
|
||||
<div>
|
||||
<span>MOE LAYER</span>
|
||||
<div class="layer-switch distance-layer-switch" role="group" aria-label="选择等长历史控制层">
|
||||
{[1, 2, 3, 4, 5, 6].map((layer) => (
|
||||
<button type="button" data-distance-layer={layer} class={layer === 1 ? "active" : ""}>L{layer}</button>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<span>MEASUREMENT SCOPE</span>
|
||||
<div class="distance-scope-switch" role="group" aria-label="选择等长历史统计范围">
|
||||
<button type="button" data-distance-scope="target_content" aria-pressed="true">目标内容</button>
|
||||
<button type="button" data-distance-scope="full_input" aria-pressed="false">完整输入</button>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<span>AGGREGATION</span>
|
||||
<div class="distance-mode-switch" role="group" aria-label="选择等长历史聚合口径">
|
||||
<button type="button" data-distance-mode="prompt_balanced" aria-pressed="true">prompt 等权</button>
|
||||
<button type="button" data-distance-mode="token_weighted" aria-pressed="false">token 加权</button>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<span>DEPTH MAP CONTRAST</span>
|
||||
<div class="distance-contrast-switch" role="group" aria-label="选择等长历史阶梯">
|
||||
<button type="button" data-distance-contrast="filler_minus_none" aria-pressed="true">Filler − None</button>
|
||||
<button type="button" data-distance-contrast="demo_minus_filler" aria-pressed="false">Demo − Filler</button>
|
||||
</div>
|
||||
</div>
|
||||
<p data-distance-note>
|
||||
目标内容:六格只保留相同相对字符跨度与相同 token ID;TV 是两条真实 system edge 的分布距离。
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="distance-domain-grid" data-distance-domain-grid></div>
|
||||
|
||||
<div class="history-buffer-summary distance-summary">
|
||||
<article><span>STRUCTURE STEP</span><b>24 / 24 ↓</b><p>none → filler 的 system-edge TV 全部下降,区间也全部低于零。</p></article>
|
||||
<article><span>TEXT STEP</span><b>24 / 24 ↓</b><p>filler → demo 再次全部下降,区间同样全部低于零。</p></article>
|
||||
<article><span>MEAN TARGET TV</span><b>.074 → .038 → .019</b><p>重复历史复现约一半缓冲;原示例再贡献一个台阶。</p></article>
|
||||
<article><span>BOUNDARY</span><b>NOT PURE DISTANCE</b><p>`x` 仍是学习过的 token;没有生成答案,也没有测能力。</p></article>
|
||||
</div>
|
||||
|
||||
<div class="distance-depth">
|
||||
<div>
|
||||
<span>DEPTH MAP / Δ SYSTEM-EDGE TV</span>
|
||||
<h5 data-distance-depth-title>Filler − None:等长历史结构的第一个台阶</h5>
|
||||
<p>绿色表示 selected history 让 system-edge TV 下降;每格都来自六格共享 source-bootstrap。</p>
|
||||
</div>
|
||||
<div data-distance-depth-map></div>
|
||||
</div>
|
||||
|
||||
<div class="distance-interpretation">
|
||||
<article>
|
||||
<span>WHAT FILLER CONTROLS</span>
|
||||
<b>角色 · EOS · 长度 · 目标位置</b>
|
||||
<p>filler 与 demo 在这些协议字段上完全相同,因此可比较固定文本替换。</p>
|
||||
</article>
|
||||
<article>
|
||||
<span>WHAT IT DOES NOT CONTROL</span>
|
||||
<b>纯距离 · token identity · repetition</b>
|
||||
<p>none → filler 仍同时加入历史与重复 token,不能命名为纯位置因果效应。</p>
|
||||
</article>
|
||||
<article>
|
||||
<span>NUMERICAL CONTRACT</span>
|
||||
<b>BF16 batch shape matters</b>
|
||||
<p>跨实验 token IDs 虽 exact,深层 gate hash 可因矩阵形状改变;正式结论只做六格组内比较。</p>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div class="evidence-links">
|
||||
<a href="https://aclanthology.org/2022.emnlp-main.759/" rel="noreferrer">Min et al. · demonstration format ↗</a>
|
||||
<a href="https://arxiv.org/abs/2209.11895" rel="noreferrer">Induction Heads ↗</a>
|
||||
<a href="https://aclanthology.org/2024.tacl-1.9/" rel="noreferrer">Lost in the Middle ↗</a>
|
||||
<a href="https://huggingface.co/deepseek-ai/DeepSeek-V2-Lite" rel="noreferrer">官方 V2-Lite ↗</a>
|
||||
</div>
|
||||
|
||||
<div class="artifact-boundary">
|
||||
<b>HISTORY STRUCTURE + TEXT REPLACEMENT, NOT CAPABILITY</b>
|
||||
<p>
|
||||
filler 已说明“可读正确示例”不是缓冲出现的必要条件,但 `x` 不是无语义空气;
|
||||
demo 的额外台阶也不能归因给示例正确性。下一步仍需 EOS、角色、多 filler 与行为指标控制。
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="artifact-panel" data-artifact-panel="evidence" hidden>
|
||||
<div class="panel-lead">
|
||||
<div><span>O + X / EVIDENCE SLICE</span><h4>为什么执行到 layer 6 就停,而不是把“部分下载”写成“完整复现”</h4></div>
|
||||
@@ -1045,13 +1259,16 @@ const shardFraction = trace.provenance.shard_1_bytes / trace.provenance.checkpoi
|
||||
<code>experiments/deepseek/v2_lite_routing_template_probe.py</code> ·
|
||||
<code>research/DEEPSEEK_ROUTING_TEMPLATE_AUDIT.md</code> ·
|
||||
<code>experiments/deepseek/v2_lite_routing_history_factorial_probe.py</code> ·
|
||||
<code>research/DEEPSEEK_ROUTING_HISTORY_FACTORIAL_AUDIT.md</code>
|
||||
<code>research/DEEPSEEK_ROUTING_HISTORY_FACTORIAL_AUDIT.md</code> ·
|
||||
<code>experiments/deepseek/v2_lite_routing_history_distance_control.py</code> ·
|
||||
<code>research/DEEPSEEK_ROUTING_HISTORY_DISTANCE_CONTROL_AUDIT.md</code>
|
||||
</figcaption>
|
||||
|
||||
<script is:inline type="application/json" data-dsv2-trace set:html={compactJson}></script>
|
||||
<script is:inline type="application/json" data-dsv2-corpus set:html={corpusCompactJson}></script>
|
||||
<script is:inline type="application/json" data-dsv2-template set:html={templateCompactJson}></script>
|
||||
<script is:inline type="application/json" data-dsv2-history set:html={historyCompactJson}></script>
|
||||
<script is:inline type="application/json" data-dsv2-distance set:html={distanceCompactJson}></script>
|
||||
</figure>
|
||||
|
||||
<script>
|
||||
@@ -1066,16 +1283,19 @@ const shardFraction = trace.provenance.shard_1_bytes / trace.provenance.checkpoi
|
||||
const corpusNode = one<HTMLScriptElement>("[data-dsv2-corpus]");
|
||||
const templateNode = one<HTMLScriptElement>("[data-dsv2-template]");
|
||||
const historyNode = one<HTMLScriptElement>("[data-dsv2-history]");
|
||||
const distanceNode = one<HTMLScriptElement>("[data-dsv2-distance]");
|
||||
if (
|
||||
!payloadNode?.textContent
|
||||
|| !corpusNode?.textContent
|
||||
|| !templateNode?.textContent
|
||||
|| !historyNode?.textContent
|
||||
|| !distanceNode?.textContent
|
||||
) return;
|
||||
const data = JSON.parse(payloadNode.textContent);
|
||||
const corpusData = JSON.parse(corpusNode.textContent);
|
||||
const templateData = JSON.parse(templateNode.textContent);
|
||||
const historyData = JSON.parse(historyNode.textContent);
|
||||
const distanceData = JSON.parse(distanceNode.textContent);
|
||||
|
||||
const tabs = all<HTMLButtonElement>("[data-artifact-tab]");
|
||||
const panels = all<HTMLElement>("[data-artifact-panel]");
|
||||
@@ -1817,6 +2037,157 @@ const shardFraction = trace.provenance.shard_1_bytes / trace.provenance.checkpoi
|
||||
});
|
||||
});
|
||||
renderHistory();
|
||||
|
||||
let distanceLayerNumber = 1;
|
||||
let distanceScope = "target_content";
|
||||
let distanceMode = "prompt_balanced";
|
||||
let distanceContrast = "filler_minus_none";
|
||||
const distanceContrastLabels: Record<string, string> = {
|
||||
filler_minus_none: "FILLER − NONE",
|
||||
demo_minus_filler: "DEMO − FILLER",
|
||||
};
|
||||
const distanceHistoryLabels: Record<string, string> = {
|
||||
none: "NONE",
|
||||
filler: "FILLER",
|
||||
demo: "DEMO",
|
||||
};
|
||||
const renderDistance = () => {
|
||||
all<HTMLButtonElement>("[data-distance-layer]").forEach((button) => {
|
||||
button.classList.toggle(
|
||||
"active",
|
||||
Number(button.dataset.distanceLayer) === distanceLayerNumber,
|
||||
);
|
||||
});
|
||||
all<HTMLButtonElement>("[data-distance-scope]").forEach((button) => {
|
||||
button.setAttribute(
|
||||
"aria-pressed",
|
||||
String(button.dataset.distanceScope === distanceScope),
|
||||
);
|
||||
});
|
||||
all<HTMLButtonElement>("[data-distance-mode]").forEach((button) => {
|
||||
button.setAttribute(
|
||||
"aria-pressed",
|
||||
String(button.dataset.distanceMode === distanceMode),
|
||||
);
|
||||
});
|
||||
all<HTMLButtonElement>("[data-distance-contrast]").forEach((button) => {
|
||||
button.setAttribute(
|
||||
"aria-pressed",
|
||||
String(button.dataset.distanceContrast === distanceContrast),
|
||||
);
|
||||
});
|
||||
set(
|
||||
"[data-distance-note]",
|
||||
distanceScope === "target_content"
|
||||
? "目标内容:六格只保留相同相对字符跨度与相同 token ID;TV 是两条真实 system edge 的分布距离。"
|
||||
: "完整输入:system、filler/demo、角色、EOS、目标与 Assistant: 全部计入;它回答协议流量而非目标内容本身。",
|
||||
);
|
||||
|
||||
const currentLayer = distanceData.layers.find(
|
||||
(item: any) => item.layer === distanceLayerNumber,
|
||||
);
|
||||
const view = currentLayer.scopes[distanceScope].modes[distanceMode];
|
||||
const grid = one<HTMLElement>("[data-distance-domain-grid]");
|
||||
if (grid) {
|
||||
grid.replaceChildren(...distanceData.domains.map((domain: string) => {
|
||||
const data = view[domain];
|
||||
const card = document.createElement("article");
|
||||
const label = document.createElement("span");
|
||||
const ladder = document.createElement("div");
|
||||
const contrast = data.contrasts[distanceContrast].total_variation_delta;
|
||||
const primary = document.createElement("strong");
|
||||
const ci = document.createElement("p");
|
||||
const stability = document.createElement("small");
|
||||
const lexical = document.createElement("em");
|
||||
const cv = document.createElement("u");
|
||||
label.textContent = corpusLabels[domain];
|
||||
ladder.className = "distance-tv-ladder";
|
||||
["none", "filler", "demo"].forEach((history) => {
|
||||
const cell = document.createElement("i");
|
||||
const name = document.createElement("small");
|
||||
const value = document.createElement("b");
|
||||
name.textContent = distanceHistoryLabels[history];
|
||||
value.textContent = data.distances[history].total_variation.point.toFixed(3);
|
||||
cell.append(name, value);
|
||||
ladder.append(cell);
|
||||
});
|
||||
primary.textContent = `${distanceContrastLabels[distanceContrast]} · ΔTV ${signed(contrast.point)}`;
|
||||
primary.className = deltaClass(contrast.ci95);
|
||||
ci.textContent = `source-paired 95% ${formatSignedCi(contrast.ci95)}`;
|
||||
const noneAlign = currentLayer.alignment[domain].system_none;
|
||||
const fillerAlign = currentLayer.alignment[domain].system_filler;
|
||||
const demoAlign = currentLayer.alignment[domain].system_demo;
|
||||
stability.textContent = `target top-6 set exact ${(noneAlign.setExactRate * 100).toFixed(1)}% → ${(fillerAlign.setExactRate * 100).toFixed(1)}% → ${(demoAlign.setExactRate * 100).toFixed(1)}%`;
|
||||
lexical.textContent = [
|
||||
"filler↔demo TV",
|
||||
`at S0 ${data.lexical.at_s0.total_variation.point.toFixed(3)}`,
|
||||
`at S1 ${data.lexical.at_s1.total_variation.point.toFixed(3)}`,
|
||||
].join(" · ");
|
||||
cv.textContent = [
|
||||
"system ΔCV",
|
||||
...["none", "filler", "demo"].map(
|
||||
(history) => `${distanceHistoryLabels[history]} ${signed(data.cvEdges[history].point)}`,
|
||||
),
|
||||
].join(" · ");
|
||||
card.append(label, ladder, primary, ci, stability, lexical, cv);
|
||||
return card;
|
||||
}));
|
||||
}
|
||||
|
||||
const titles: Record<string, string> = {
|
||||
filler_minus_none: "Filler − None:等长历史结构的第一个台阶",
|
||||
demo_minus_filler: "Demo − Filler:固定协议字段后的文本替换台阶",
|
||||
};
|
||||
set("[data-distance-depth-title]", titles[distanceContrast]);
|
||||
const depth = one<HTMLElement>("[data-distance-depth-map]");
|
||||
if (depth) {
|
||||
depth.replaceChildren(...distanceData.domains.map((domain: string) => {
|
||||
const row = document.createElement("div");
|
||||
const label = document.createElement("b");
|
||||
label.textContent = corpusLabels[domain];
|
||||
row.append(label);
|
||||
distanceData.layers.forEach((layer: any) => {
|
||||
const contrast = layer.scopes[distanceScope].modes[distanceMode]
|
||||
[domain].contrasts[distanceContrast].total_variation_delta;
|
||||
const cell = document.createElement("span");
|
||||
cell.className = deltaClass(contrast.ci95);
|
||||
cell.style.setProperty(
|
||||
"--strength",
|
||||
String(Math.min(1, Math.abs(contrast.point) / 0.07)),
|
||||
);
|
||||
cell.textContent = `L${layer.layer} ${signed(contrast.point)}`;
|
||||
cell.title = `${corpusLabels[domain]} · L${layer.layer} · ${distanceContrastLabels[distanceContrast]} Δ system-edge TV ${signed(contrast.point)} · paired 95% ${formatSignedCi(contrast.ci95)}`;
|
||||
row.append(cell);
|
||||
});
|
||||
return row;
|
||||
}));
|
||||
}
|
||||
};
|
||||
all<HTMLButtonElement>("[data-distance-layer]").forEach((button) => {
|
||||
button.addEventListener("click", () => {
|
||||
distanceLayerNumber = Number(button.dataset.distanceLayer);
|
||||
renderDistance();
|
||||
});
|
||||
});
|
||||
all<HTMLButtonElement>("[data-distance-scope]").forEach((button) => {
|
||||
button.addEventListener("click", () => {
|
||||
distanceScope = button.dataset.distanceScope ?? "target_content";
|
||||
renderDistance();
|
||||
});
|
||||
});
|
||||
all<HTMLButtonElement>("[data-distance-mode]").forEach((button) => {
|
||||
button.addEventListener("click", () => {
|
||||
distanceMode = button.dataset.distanceMode ?? "prompt_balanced";
|
||||
renderDistance();
|
||||
});
|
||||
});
|
||||
all<HTMLButtonElement>("[data-distance-contrast]").forEach((button) => {
|
||||
button.addEventListener("click", () => {
|
||||
distanceContrast = button.dataset.distanceContrast ?? "filler_minus_none";
|
||||
renderDistance();
|
||||
});
|
||||
});
|
||||
renderDistance();
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -1879,7 +2250,12 @@ const shardFraction = trace.provenance.shard_1_bytes / trace.provenance.checkpoi
|
||||
.history-domain-grid > :global(article > span),
|
||||
.history-buffer-summary span,
|
||||
.history-buffer span,
|
||||
.history-depth span {
|
||||
.history-depth span,
|
||||
.distance-protocol span,
|
||||
.distance-controls > div > span,
|
||||
.distance-domain-grid > :global(article > span),
|
||||
.distance-depth span,
|
||||
.distance-interpretation span {
|
||||
margin: 0;
|
||||
color: var(--blue);
|
||||
font: 700 .69rem/1.3 var(--font-mono);
|
||||
@@ -1933,14 +2309,15 @@ const shardFraction = trace.provenance.shard_1_bytes / trace.provenance.checkpoi
|
||||
.artifact-status b { color: var(--ink); font-size: .72rem; }
|
||||
.artifact-tabs {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(8, 1fr);
|
||||
grid-template-columns: repeat(9, 1fr);
|
||||
background: var(--ink);
|
||||
}
|
||||
.artifact-tabs button {
|
||||
display: grid;
|
||||
grid-template-columns: 2rem 1fr;
|
||||
gap: .08rem .65rem;
|
||||
padding: 1rem;
|
||||
grid-template-columns: 1.45rem minmax(0, 1fr);
|
||||
gap: .08rem .45rem;
|
||||
min-width: 0;
|
||||
padding: .9rem .6rem;
|
||||
border: 0;
|
||||
border-right: 1px solid rgba(255,255,255,.13);
|
||||
background: transparent;
|
||||
@@ -1956,8 +2333,8 @@ const shardFraction = trace.provenance.shard_1_bytes / trace.provenance.checkpoi
|
||||
color: currentColor;
|
||||
font: 700 .7rem/1 var(--font-mono);
|
||||
}
|
||||
.artifact-tabs b { font-size: .83rem; }
|
||||
.artifact-tabs small { font: .62rem/1.2 var(--font-mono); }
|
||||
.artifact-tabs b { min-width: 0; font-size: .79rem; overflow-wrap: anywhere; }
|
||||
.artifact-tabs small { min-width: 0; font: .58rem/1.2 var(--font-mono); overflow-wrap: anywhere; }
|
||||
.artifact-panel { padding: 1.6rem; }
|
||||
.artifact-panel[hidden] { display: none; }
|
||||
.panel-lead {
|
||||
@@ -3065,6 +3442,255 @@ const shardFraction = trace.provenance.shard_1_bytes / trace.provenance.checkpoi
|
||||
background: rgba(186,118,44,.1);
|
||||
color: var(--ink);
|
||||
}
|
||||
.distance-protocol {
|
||||
margin-top: .8rem;
|
||||
border: 1px solid rgba(32,32,39,.15);
|
||||
overflow-x: auto;
|
||||
background: #fffdf8;
|
||||
}
|
||||
.distance-row {
|
||||
display: grid;
|
||||
grid-template-columns: 7rem repeat(3, minmax(13rem, 1fr));
|
||||
min-width: 890px;
|
||||
}
|
||||
.distance-row.head {
|
||||
background: var(--ink);
|
||||
color: white;
|
||||
}
|
||||
.distance-row.head > * {
|
||||
padding: .65rem .8rem;
|
||||
border-right: 1px solid rgba(255,255,255,.13);
|
||||
}
|
||||
.distance-row.head b { font: 650 .62rem/1.3 var(--font-mono); }
|
||||
.distance-row > strong {
|
||||
display: grid;
|
||||
align-content: center;
|
||||
padding: .8rem;
|
||||
border-right: 1px solid rgba(32,32,39,.12);
|
||||
border-bottom: 1px solid rgba(32,32,39,.12);
|
||||
background: #e5ded2;
|
||||
color: var(--blue);
|
||||
font: 750 .8rem/1.4 var(--font-mono);
|
||||
}
|
||||
.distance-row > strong small {
|
||||
color: rgba(32,32,39,.55);
|
||||
font: .56rem/1.35 var(--font-mono);
|
||||
}
|
||||
.distance-row article {
|
||||
padding: .8rem;
|
||||
border-right: 1px solid rgba(32,32,39,.12);
|
||||
border-bottom: 1px solid rgba(32,32,39,.12);
|
||||
}
|
||||
.distance-row article > div {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: .2rem;
|
||||
margin-top: .55rem;
|
||||
}
|
||||
.distance-row article > div > * {
|
||||
padding: .34rem .4rem;
|
||||
border: 1px solid rgba(32,32,39,.13);
|
||||
font: 650 .53rem/1 var(--font-mono);
|
||||
font-style: normal;
|
||||
text-decoration: none;
|
||||
}
|
||||
.distance-row article mark { background: rgba(161,77,77,.1); color: var(--red); }
|
||||
.distance-row article b { background: rgba(186,118,44,.1); color: var(--amber); }
|
||||
.distance-row article u { background: rgba(98,105,155,.12); color: var(--blue); }
|
||||
.distance-row article i { background: rgba(57,120,110,.11); color: var(--teal); }
|
||||
.distance-row article em { background: rgba(98,105,155,.13); color: var(--blue); }
|
||||
.distance-row article p {
|
||||
margin: .5rem 0 0;
|
||||
color: rgba(32,32,39,.56);
|
||||
font-size: .61rem;
|
||||
line-height: 1.4;
|
||||
}
|
||||
.distance-controls {
|
||||
display: grid;
|
||||
grid-template-columns: auto .9fr .9fr 1.45fr;
|
||||
gap: .8rem;
|
||||
align-items: end;
|
||||
margin-top: .8rem;
|
||||
padding: .85rem;
|
||||
border: 1px solid rgba(32,32,39,.14);
|
||||
background: #e8e2d7;
|
||||
}
|
||||
.distance-controls > div { display: grid; gap: .45rem; }
|
||||
.distance-controls .layer-switch { margin: 0; }
|
||||
.distance-scope-switch,
|
||||
.distance-mode-switch,
|
||||
.distance-contrast-switch { display: flex; }
|
||||
.distance-scope-switch button,
|
||||
.distance-mode-switch button,
|
||||
.distance-contrast-switch button {
|
||||
padding: .58rem .66rem;
|
||||
border: 1px solid rgba(32,32,39,.22);
|
||||
background: #fffdf8;
|
||||
color: var(--ink);
|
||||
font: 650 .6rem/1 var(--font-mono);
|
||||
cursor: pointer;
|
||||
}
|
||||
.distance-scope-switch button + button,
|
||||
.distance-mode-switch button + button,
|
||||
.distance-contrast-switch button + button { border-left: 0; }
|
||||
.distance-scope-switch button[aria-pressed="true"],
|
||||
.distance-mode-switch button[aria-pressed="true"],
|
||||
.distance-contrast-switch button[aria-pressed="true"] {
|
||||
border-color: var(--blue);
|
||||
background: var(--blue);
|
||||
color: white;
|
||||
}
|
||||
.distance-controls > p {
|
||||
grid-column: 1 / -1;
|
||||
margin: 0;
|
||||
padding-top: .75rem;
|
||||
border-top: 1px solid rgba(32,32,39,.12);
|
||||
color: rgba(32,32,39,.62);
|
||||
font-size: .69rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.distance-domain-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
margin-top: .8rem;
|
||||
border: 1px solid rgba(32,32,39,.14);
|
||||
background: #fffdf8;
|
||||
}
|
||||
.distance-domain-grid > :global(article) {
|
||||
padding: .85rem;
|
||||
border-right: 1px solid rgba(32,32,39,.12);
|
||||
}
|
||||
.distance-domain-grid > :global(article:last-child) { border-right: 0; }
|
||||
.distance-domain-grid :global(.distance-tv-ladder) {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: .22rem;
|
||||
margin-top: .55rem;
|
||||
}
|
||||
.distance-domain-grid :global(.distance-tv-ladder > i) {
|
||||
display: grid;
|
||||
gap: .18rem;
|
||||
padding: .38rem;
|
||||
background: #e8e2d7;
|
||||
font-style: normal;
|
||||
}
|
||||
.distance-domain-grid :global(.distance-tv-ladder small) {
|
||||
color: rgba(32,32,39,.5);
|
||||
font: 650 .49rem/1 var(--font-mono);
|
||||
}
|
||||
.distance-domain-grid :global(.distance-tv-ladder b) {
|
||||
font: 720 .66rem/1 var(--font-mono);
|
||||
}
|
||||
.distance-domain-grid > :global(article > strong) {
|
||||
display: inline-block;
|
||||
margin-top: .48rem;
|
||||
padding: .26rem .38rem;
|
||||
font: 750 .62rem/1 var(--font-mono);
|
||||
}
|
||||
.distance-domain-grid > :global(article > strong.down),
|
||||
.distance-depth :global(span.down) {
|
||||
background: rgba(57,120,110,.13);
|
||||
color: var(--teal);
|
||||
}
|
||||
.distance-domain-grid > :global(article > strong.up),
|
||||
.distance-depth :global(span.up) {
|
||||
background: rgba(161,77,77,.12);
|
||||
color: var(--red);
|
||||
}
|
||||
.distance-domain-grid > :global(article > strong.neutral),
|
||||
.distance-depth :global(span.neutral) {
|
||||
background: rgba(186,118,44,.12);
|
||||
color: var(--amber);
|
||||
}
|
||||
.distance-domain-grid > :global(article > p),
|
||||
.distance-domain-grid > :global(article > small),
|
||||
.distance-domain-grid > :global(article > em),
|
||||
.distance-domain-grid > :global(article > u) {
|
||||
display: block;
|
||||
margin: .38rem 0 0;
|
||||
color: rgba(32,32,39,.57);
|
||||
font: .55rem/1.4 var(--font-mono);
|
||||
font-style: normal;
|
||||
text-decoration: none;
|
||||
}
|
||||
.distance-domain-grid > :global(article > em),
|
||||
.distance-domain-grid > :global(article > u) {
|
||||
padding-top: .35rem;
|
||||
border-top: 1px solid rgba(32,32,39,.1);
|
||||
}
|
||||
.distance-depth {
|
||||
display: grid;
|
||||
grid-template-columns: .52fr 1.48fr;
|
||||
gap: 1rem;
|
||||
margin-top: .8rem;
|
||||
padding: 1rem;
|
||||
border: 1px solid rgba(32,32,39,.14);
|
||||
}
|
||||
.distance-depth h5 {
|
||||
margin: .4rem 0;
|
||||
font: 720 1rem/1.15 var(--font-display);
|
||||
}
|
||||
.distance-depth p {
|
||||
margin: 0;
|
||||
color: rgba(32,32,39,.58);
|
||||
font-size: .66rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.distance-depth > :global([data-distance-depth-map]) {
|
||||
display: grid;
|
||||
gap: .35rem;
|
||||
}
|
||||
.distance-depth :global([data-distance-depth-map] > div) {
|
||||
display: grid;
|
||||
grid-template-columns: 5.5rem repeat(6, 1fr);
|
||||
gap: .25rem;
|
||||
}
|
||||
.distance-depth :global([data-distance-depth-map] > div > b),
|
||||
.distance-depth :global([data-distance-depth-map] > div > span) {
|
||||
display: grid;
|
||||
align-items: center;
|
||||
min-height: 2.2rem;
|
||||
padding: .35rem;
|
||||
font: 650 .55rem/1.2 var(--font-mono);
|
||||
}
|
||||
.distance-depth :global([data-distance-depth-map] > div > b) {
|
||||
color: var(--blue);
|
||||
}
|
||||
.distance-depth :global([data-distance-depth-map] > div > span.down) {
|
||||
background: color-mix(in srgb, var(--teal) calc(var(--strength) * 55%), #eef0e9);
|
||||
color: var(--ink);
|
||||
}
|
||||
.distance-depth :global([data-distance-depth-map] > div > span.up) {
|
||||
background: color-mix(in srgb, var(--red) calc(var(--strength) * 48%), #f3ebe6);
|
||||
color: var(--ink);
|
||||
}
|
||||
.distance-depth :global([data-distance-depth-map] > div > span.neutral) {
|
||||
background: rgba(186,118,44,.1);
|
||||
color: var(--ink);
|
||||
}
|
||||
.distance-interpretation {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
margin-top: .8rem;
|
||||
border: 1px solid rgba(32,32,39,.14);
|
||||
background: #e8e2d7;
|
||||
}
|
||||
.distance-interpretation article {
|
||||
padding: .9rem;
|
||||
border-right: 1px solid rgba(32,32,39,.12);
|
||||
}
|
||||
.distance-interpretation article:last-child { border-right: 0; }
|
||||
.distance-interpretation b {
|
||||
display: block;
|
||||
margin-top: .4rem;
|
||||
font: 730 .78rem/1.2 var(--font-display);
|
||||
}
|
||||
.distance-interpretation p {
|
||||
margin: .4rem 0 0;
|
||||
color: rgba(32,32,39,.58);
|
||||
font-size: .62rem;
|
||||
line-height: 1.45;
|
||||
}
|
||||
.observed-cache {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr auto 1.25fr;
|
||||
@@ -3306,7 +3932,9 @@ const shardFraction = trace.provenance.shard_1_bytes / trace.provenance.checkpoi
|
||||
.template-depth,
|
||||
.history-controls,
|
||||
.history-buffer,
|
||||
.history-depth { grid-template-columns: 1fr; }
|
||||
.history-depth,
|
||||
.distance-controls,
|
||||
.distance-depth { grid-template-columns: 1fr; }
|
||||
.artifact-status { grid-template-columns: 1fr 1fr; }
|
||||
.artifact-tabs { grid-template-columns: 1fr 1fr; }
|
||||
.route-controls { grid-template-columns: 1fr 1fr; }
|
||||
@@ -3322,7 +3950,10 @@ const shardFraction = trace.provenance.shard_1_bytes / trace.provenance.checkpoi
|
||||
.template-domain-grid { grid-template-columns: 1fr 1fr; }
|
||||
.history-ledger { grid-template-columns: repeat(3, 1fr); }
|
||||
.history-domain-grid,
|
||||
.history-buffer-summary { grid-template-columns: 1fr 1fr; }
|
||||
.history-buffer-summary,
|
||||
.distance-domain-grid { grid-template-columns: 1fr 1fr; }
|
||||
.distance-interpretation { grid-template-columns: 1fr; }
|
||||
.distance-interpretation article { border-right: 0; border-bottom: 1px solid rgba(32,32,39,.12); }
|
||||
.template-protocol > i { transform: rotate(90deg); justify-self: center; }
|
||||
.length-delta-grid { grid-template-columns: 1fr 1fr; }
|
||||
.corpus-heat-head p { text-align: left; }
|
||||
@@ -3361,7 +3992,9 @@ const shardFraction = trace.provenance.shard_1_bytes / trace.provenance.checkpoi
|
||||
.template-negative-control,
|
||||
.history-ledger,
|
||||
.history-domain-grid,
|
||||
.history-buffer-summary { grid-template-columns: 1fr; }
|
||||
.history-buffer-summary,
|
||||
.distance-domain-grid,
|
||||
.distance-interpretation { grid-template-columns: 1fr; }
|
||||
.route-metrics article,
|
||||
.cache-ratio article,
|
||||
.load-lessons article,
|
||||
@@ -3375,21 +4008,29 @@ const shardFraction = trace.provenance.shard_1_bytes / trace.provenance.checkpoi
|
||||
.template-negative-control article,
|
||||
.history-ledger article,
|
||||
.history-domain-grid > :global(article),
|
||||
.history-buffer-summary article { border-right: 0; border-bottom: 1px solid rgba(32,32,39,.12); }
|
||||
.history-buffer-summary article,
|
||||
.distance-domain-grid > :global(article),
|
||||
.distance-interpretation article { border-right: 0; border-bottom: 1px solid rgba(32,32,39,.12); }
|
||||
.corpus-mode-switch,
|
||||
.corpus-cohort-switch,
|
||||
.template-scope-switch,
|
||||
.template-mode-switch,
|
||||
.history-scope-switch,
|
||||
.history-mode-switch,
|
||||
.history-effect-switch { display: grid; grid-template-columns: 1fr; }
|
||||
.history-effect-switch,
|
||||
.distance-scope-switch,
|
||||
.distance-mode-switch,
|
||||
.distance-contrast-switch { display: grid; grid-template-columns: 1fr; }
|
||||
.corpus-mode-switch button + button,
|
||||
.corpus-cohort-switch button + button,
|
||||
.template-scope-switch button + button,
|
||||
.template-mode-switch button + button,
|
||||
.history-scope-switch button + button,
|
||||
.history-mode-switch button + button,
|
||||
.history-effect-switch button + button { border-left: 1px solid rgba(32,32,39,.22); border-top: 0; }
|
||||
.history-effect-switch button + button,
|
||||
.distance-scope-switch button + button,
|
||||
.distance-mode-switch button + button,
|
||||
.distance-contrast-switch button + button { border-left: 1px solid rgba(32,32,39,.22); border-top: 0; }
|
||||
.length-delta-grid > :global(article),
|
||||
.length-pair-summary article { border-right: 0; border-bottom: 1px solid rgba(32,32,39,.11); }
|
||||
.artifact-boundary { grid-template-columns: 1fr; }
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -37,7 +37,7 @@ const toc = [
|
||||
|
||||
<BaseLayout
|
||||
title="DeepSeek 技术谱系与真实权重深读:从 Dense、MoE、MLA 到 R1 与 V4"
|
||||
description="用二十四张问题账、十次技术转向、十二个交互实验、真实 V2-Lite 权重、公开语料路由区间、官方模板与消息历史因子实验、吸收式缓存 trace 和六十个一手节点,完整理解 DeepSeek 的 MoE、MLA、FP8、DualPipe、GRPO、R1、V3.2 与 V4。"
|
||||
description="用二十四张问题账、十次技术转向、十三个交互实验、真实 V2-Lite 权重、公开语料路由区间、官方模板、消息历史因子与等长 filler 控制、吸收式缓存 trace 和六十个一手节点,完整理解 DeepSeek 的 MoE、MLA、FP8、DualPipe、GRPO、R1、V3.2 与 V4。"
|
||||
section="deepseek"
|
||||
>
|
||||
<header class="page-hero deepseek-hero">
|
||||
@@ -55,7 +55,7 @@ const toc = [
|
||||
<div><dt>SPAN</dt><dd>2024.01 → 2026.06</dd></div>
|
||||
<div><dt>LEDGERS</dt><dd>24 张问题账</dd></div>
|
||||
<div><dt>LINEAGE</dt><dd>10 次技术转向</dd></div>
|
||||
<div><dt>LABS</dt><dd>12 个可操作实验</dd></div>
|
||||
<div><dt>LABS</dt><dd>13 个可操作实验</dd></div>
|
||||
<div><dt>EVIDENCE</dt><dd>60 个一手 / 官方节点</dd></div>
|
||||
<div><dt>STATUS</dt><dd>三轮 · 真实权重执行</dd></div>
|
||||
</dl>
|
||||
@@ -768,15 +768,15 @@ const toc = [
|
||||
<p class="eyebrow"><span>22</span> OFFICIAL WEIGHTS / EXECUTED</p>
|
||||
<h2>从“MLA 与 MoE 的概念”再往前一步:让官方 V2-Lite 权重真的跑起来</h2>
|
||||
<p class="lede">
|
||||
前面的四联实验负责建立公式与角色合同;下面的八联工件实验固定官方 revision、tokenizer、
|
||||
前面的四联实验负责建立公式与角色合同;下面的九联工件实验固定官方 revision、tokenizer、
|
||||
模型代码和 checkpoint 第一分片,在 RTX 5090 上连续执行 layer 0–6。它把真实观测、shape 推导、
|
||||
吸收式 latent cache、长度对照、官方 chat-template 扰动、实现差距和未覆盖范围放在同一张证据图里。
|
||||
</p>
|
||||
<div class="artifact-callout">
|
||||
<article><span>X / FORWARD</span><b>7 / 27 layers</b><p>1 个 dense 层 + 6 个 MoE 层;layer 7 因跨分片停止。</p></article>
|
||||
<article><span>X / ROUTES</span><b>1,736,352</b><p>三档长度、raw/user/generation 与 system × one-shot 四格的真实 top-6 选择。</p></article>
|
||||
<article><span>X / ROUTES</span><b>3,112,848</b><p>三档长度、模板、system × one-shot 与 none/filler/demo 六格的真实 top-6 选择。</p></article>
|
||||
<article><span>X / ABSORB CACHE</span><b>266,240 → 29,952 B</b><p>同一真实 layer-1 权重的 naive / absorb active buffers。</p></article>
|
||||
<article><span>X / RERUN</span><b>5 / 5 EXACT</b><p>三档长度、官方模板与消息历史因子 trace 均 byte-exact;比较使用 paired prompt bootstrap。</p></article>
|
||||
<article><span>X / RERUN</span><b>6 / 6 EXACT</b><p>三档长度、官方模板、历史因子与等长 filler 控制均 byte-exact;比较使用 paired prompt bootstrap。</p></article>
|
||||
</div>
|
||||
<DeepSeekArtifactLab />
|
||||
</section>
|
||||
|
||||
@@ -15,7 +15,7 @@ const workstreams = [
|
||||
{ label: "表示、位置与残差高速公路", value: 81, next: "加入真实 hidden-state / norm traces、长上下文位置外推复现与更多深层稳定性消融" },
|
||||
{ label: "Scaling Laws", value: 74, next: "加入真实拟合复现、置信区间与更多模型族对照" },
|
||||
{ label: "数据工程与预训练配方", value: 73, next: "逐图精读 FineWeb / DCLM,加入真实去重与 mixture traces" },
|
||||
{ label: "DeepSeek 专题", value: 94, next: "SM90 FlashMLA kernel、完整 27 层、词元边界 / 距离 / EOS / 角色正交控制、FP8/pipeline 与 R1-like RL 复现" },
|
||||
{ label: "DeepSeek 专题", value: 95, next: "SM90 FlashMLA kernel、完整 27 层、EOS / 角色 / 多 filler / 内容与 batch-shape 控制、FP8/pipeline 与 R1-like RL 复现" },
|
||||
{ label: "指令微调与人类偏好", value: 75, next: "加入真实偏好分歧样本、RM 长度偏置与 PPO/DPO 小模型复现" },
|
||||
{ label: "推理与测试时扩展", value: 76, next: "真实模型采样曲线、PRM 案例与逐篇图表精读" },
|
||||
{ label: "工具使用与长程 Agent", value: 74, next: "补真实环境 traces、cross-harness 对照、Agent RL 训练曲线与安全案例" },
|
||||
@@ -50,7 +50,7 @@ const workstreams = [
|
||||
<div><dt>OVERALL</dt><dd>专题平均 {average}%</dd></div>
|
||||
<div><dt>READABLE</dt><dd>{published} 个首版可读专题</dd></div>
|
||||
<div><dt>ACTIVE</dt><dd>{researching} 个研究/写作中</dd></div>
|
||||
<div><dt>UPDATED</dt><dd>2026-07-29 18:10 CST</dd></div>
|
||||
<div><dt>UPDATED</dt><dd>2026-07-29 18:55 CST</dd></div>
|
||||
<div><dt>MODE</dt><dd>持续迭代,不锁死版本</dd></div>
|
||||
</dl>
|
||||
</div>
|
||||
@@ -97,12 +97,12 @@ const workstreams = [
|
||||
<article><span>✓</span><h3>K3 报告已结构化拆解</h3><p>47 页报告目录、151 条参考来源和架构/后训练/系统主线已经提取。</p></article>
|
||||
<article><span>✓</span><h3>17 专题知识图</h3><p>从语言模型基础到评测安全,包含先修依赖和三条贯穿案例。</p></article>
|
||||
<article><span>✓</span><h3>编辑式网站系统</h3><p>响应式导航、章节模板、侧栏、进度、论文链和证据提示组件。</p></article>
|
||||
<article><span>✓</span><h3>七十九个原创交互视图</h3><p>K3 三轴图、八联报告实验与四联开放工件实验,DeepSeek 四联公式实验与八联真实权重实验,以及语言模型前史、Transformer、表示深度、长上下文、MoE、推理、Agent、多模态、训练系统、推理服务、Scaling、数据工程、数值、Alignment 与评测安全专题。</p></article>
|
||||
<article><span>✓</span><h3>八十个原创交互视图</h3><p>K3 三轴图、八联报告实验与四联开放工件实验,DeepSeek 四联公式实验与九联真实权重实验,以及语言模型前史、Transformer、表示深度、长上下文、MoE、推理、Agent、多模态、训练系统、推理服务、Scaling、数据工程、数值、Alignment 与评测安全专题。</p></article>
|
||||
<article><span>✓</span><h3>十七篇首版长文</h3><p>K3、语言模型前史、Transformer、表示/位置/残差、DeepSeek、Scaling、数据工程、长上下文、MoE、后训练、推理、Agent、原生多模态、训练系统、推理服务、数值优化与评测安全专题。</p></article>
|
||||
<article><span>✓</span><h3>语言模型前史深度专题</h3><p>八张独立问题账、33 个正式节点、20 段长文与概率—向量—记忆—对齐四联实验。</p></article>
|
||||
<article><span>✓</span><h3>Transformer 深度专题</h3><p>十张独立问题账、40 个正式节点、21 段正文与 QKV—Mask—多头位置—Block 成本四联实验。</p></article>
|
||||
<article><span>✓</span><h3>表示、位置与残差高速公路深度专题</h3><p>二十张问题账、66 个一手节点、DeepSeek/Kimi 双谱系,以及 Token—位置—Norm—Residual/FFN 四联实验。</p></article>
|
||||
<article><span>✓</span><h3>DeepSeek 三轮真实权重里程碑</h3><p>在二十四张问题账、十次转向与四联公式实验上,新增 V2-Lite 7/27 层连续 forward、官方 V3 absorb、长度/模板对照与 system × one-shot 2×2;累计 1,736,352 次真实路由,模板共享前缀 21,852 / 21,852 exact,历史缓冲 TV 在 24 / 24 格下降,五份运行结果均 byte-exact 独立复跑。</p></article>
|
||||
<article><span>✓</span><h3>DeepSeek 三轮真实权重里程碑</h3><p>在二十四张问题账、十次转向与四联公式实验上,新增 V2-Lite 7/27 层连续 forward、官方 V3 absorb、长度/模板、system × one-shot 与等长 filler 控制;累计 3,112,848 次真实路由,none→filler→demo 的两个 TV 台阶均在 24 / 24 格下降,六份运行结果均 byte-exact 独立复跑。</p></article>
|
||||
<article><span>✓</span><h3>Kimi K3 技术报告二轮深读</h3><p>三十二张问题账、Figure 1–16 / Table 1–5 审计、100 节点阅读链,以及 Delta—Decay—AttnRes—LatentMoE—SiTU—QB—MOPD—Cache 八联实验。</p></article>
|
||||
<article><span>✓</span><h3>Kimi K3 三轮开放工件里程碑</h3><p>固定官方 revisions,审计 96 个 shards、497,220 个 tensor entries 与真实 KDA / MLA / MoE / MoonViT shapes;四联实验分开显示层型、tensor anatomy、参数范围和复现边界。</p></article>
|
||||
<article><span>✓</span><h3>FlashKDA RTX 5090 执行闸门</h3><p>隔离 CUDA 13.0 / glibc 2.39 编译 sm_120a wheel;6/6 官方参考逐元素相等,并完成 fixed / varlen、三种 state mode 的 1,800 个 CUDA Event samples。</p></article>
|
||||
@@ -134,7 +134,7 @@ const workstreams = [
|
||||
<div class="queue-table">
|
||||
<div class="head"><b>优先级</b><b>专题</b><b>本轮交付</b><b>完成闸门</b></div>
|
||||
<div><span>P0</span><strong>K3 三轮</strong><p>开放权重 traces → FlashKDA / AttnRes / MoE 真实行为 → Figure 1–16 数值重绘与独立复现</p><em>运行证据 + 逐图复现</em></div>
|
||||
<div><span>P0</span><strong>DeepSeek 三轮</strong><p>SM90 FlashMLA kernel / 完整 27 层 / 词元边界、距离、EOS、角色与示例内容正交控制 → FP8 / pipeline traces → R1-like RL 小模型复现</p><em>运行证据 + 独立复现</em></div>
|
||||
<div><span>P0</span><strong>DeepSeek 三轮</strong><p>SM90 FlashMLA kernel / 完整 27 层 / EOS、角色、多 filler、示例内容与 batch shape 控制 → FP8 / pipeline traces → R1-like RL 小模型复现</p><em>运行证据 + 独立复现</em></div>
|
||||
<div><span>P0</span><strong>Transformer 二轮</strong><p>多头电路逐图 → Pre/Post-LN 真实 traces → Flash/KV 配置与 kernel 对照</p><em>逐图笔记 + 实测边界</em></div>
|
||||
<div><span>P0</span><strong>表示、位置与残差二轮</strong><p>真实 hidden-state / norm traces → 长上下文位置外推 → mHC / AttnRes 深层稳定性消融</p><em>可复现实验 + 逐图笔记</em></div>
|
||||
<div><span>P0</span><strong>语言模型前史二轮</strong><p>Kneser–Ney / LSTM / Bahdanau 逐图 → 真实小语料复现 → tokenizer 公平性</p><em>可复现实验 + 逐图笔记</em></div>
|
||||
|
||||
Reference in New Issue
Block a user