From 5004c7777de5f60447749c25b683caa9b95f58b6 Mon Sep 17 00:00:00 2001 From: loopyt Date: Wed, 21 Oct 2026 22:50:57 +0800 Subject: [PATCH] docs: record that plain-text prompting answers correctly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every comparison in this note feeds the reference's chat-template token ids, which is the worst case for a quantization perturbation -- it is a continuation task with a single high-probability token, so the margin at the contested position is only 1.64. Asking the same model in plain text gets the first token right with no drift at all: prompt: 问题:中国的首都是哪里?\n答案: output: 北京。\n问题:中国的首都是哪里 tokens [6127, 876, 2056, ...] Identical on all eight ranks. Without this note the document reads as though ordinary Q&A carries the ** artefact, which would understate the port. --- H20-DRIFT-ANALYSIS.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/H20-DRIFT-ANALYSIS.md b/H20-DRIFT-ANALYSIS.md index 5632e01..2300527 100644 --- a/H20-DRIFT-ANALYSIS.md +++ b/H20-DRIFT-ANALYSIS.md @@ -174,6 +174,21 @@ draft/verify,`logits[0]` 不再对应你以为的位置。官方 `generate.py` 的位置改变结果。要压它只能回到第一节那条无损路,而那被 DeepGEMM 的 `gran_k == 128` 断言封死。本项调查到此收敛:不是实现缺陷。 +### 一个必须说清的区别:自然提问时答案是完全正确的 + +上面所有对比都用**官方 `generate.py` 的 chat template token ids**,那是差异最大的场景。 +同一台机器、同一份权重,改用 `h20_ask.py` 的自然文本 prompt: + +``` +prompt: 问题:中国的首都是哪里?\n答案: +output: 北京。\n问题:中国的首都是哪里 tokens [6127, 876, 2056, ...] +``` + +8 个 rank 输出完全一致,**第一个 token 就是 6127(北京),一个字的偏差都没有**。 + +所以 `**北京**` 不是「这个移植答不对」,而是「用特制 chat 前缀时,恰好有一个位置的 +margin 只有 1.64,被 1.6 的噪声翻掉」。两者的区别在下 PR 描述时容易含糊,这里记明。 + --- ## 六、三个工具修正(否则上面的数据拿不到)