Markdown 还是 HTML:哪种格式能获得更好的 AI 回答?
Markdown 还是 HTML:哪种格式能获得更好的 AI 回答?
把内容喂给 AI 时,格式真的重要吗?我们把同一段网页内容分别以 HTML 和 Markdown 格式输入 ChatGPT、Claude 和 Gemini,进行了大量对比测试。简短的答案是:格式的影响远超你的想象,而 Markdown 几乎在所有场景下都胜出。
本文将详细拆解背后的原因,展示真实的 Token 数据对比,并说明 HTML 在少数情况下仍有用武之地。
大语言模型如何处理不同格式
大语言模型并不"看"HTML 或 Markdown。它们看到的是 Token——由分词器切割出的文本片段。但输入的原始格式直接决定了生成多少 Token,以及其中多少携带实际语义、多少只是格式噪声。
当你粘贴原始 HTML 时,模型需要处理:
- 开闭标签(
<div>、</div>、<p>、</p>) - CSS 类名和内联样式
- Data 属性、ARIA 标签和元数据
- Script 和 Style 代码块
- 导航栏、页脚和侧边栏标记
这些内容完全无助于 AI 理解你的实际内容,只是白白消耗 Token。
Markdown 把这些全部剥离,只留下语义结构——标题、列表、强调、链接和正文内容。这种轻量语法由 CommonMark 规范定义,确保了跨工具和平台的一致性。
Token 效率:逐行对比
以下是同一段博客内容的两种格式,我们使用 GPT-4 的分词器(cl100k_base,可通过 OpenAI 开源的 tiktoken 库获取)计算了 Token 数。
HTML 版本(87 个 Token):
<div class="post-content">
<h2 class="section-title" id="introduction">快速入门</h2>
<p class="body-text">大语言模型处理
<strong>结构化输入</strong>效果最佳。以下是三个关键优势:</p>
<ul class="feature-list">
<li class="feature-item">更低的 Token 消耗</li>
<li class="feature-item">更准确的回答</li>
<li class="feature-item">更快的处理速度</li>
</ul>
</div>
Markdown 版本(29 个 Token):
## 快速入门
大语言模型处理**结构化输入**效果最佳。以下是三个关键优势:
- 更低的 Token 消耗
- 更准确的回答
- 更快的处理速度
同样的语义内容,Token 减少了 67%。对于一篇完整网页文章,节省更为可观——一篇 3000 字的典型文章从约 8000 个 HTML Token 降至约 2800 个 Markdown Token。
测试结果:AI 回答质量对比
我们在 GPT-4、Claude 3.5 Sonnet 和 Gemini 1.5 Pro 上测试了五项任务,分别使用 HTML 和 Markdown 输入相同内容。每项测试重复 10 次,由人工评估者按 1-10 分打分。(当前模型定价请参考 OpenAI API 定价页面和 Anthropic Claude 定价页面。)
| 任务 | HTML 输入(平均分) | Markdown 输入(平均分) | 提升幅度 | |------|-------------------|----------------------|---------| | 内容摘要 | 6.8 | 8.9 | +31% | | 问答准确度 | 7.1 | 8.7 | +23% | | 要点提取 | 6.5 | 9.1 | +40% | | 翻译质量 | 7.8 | 8.4 | +8% | | 内容改写 | 6.2 | 8.6 | +39% |
趋势非常明显:在所有测试任务中,Markdown 输入都产生了更好的 AI 输出。其中要点提取和内容改写的提升最大,因为 HTML 噪声最容易让模型混淆哪些才是"真正的"内容。
Markdown 胜出的四个原因
-
信噪比高 — Markdown 几乎没有格式开销。每个 Token 要么是实际内容,要么是
##、-这样的轻量结构标记。 -
与训练数据一致 — LLM 的训练语料包含海量 Markdown 内容(GitHub README、文档站点、技术论坛),它们对 Markdown 有天然的理解能力。
-
上下文窗口利用率 — 格式消耗的 Token 越少,留给实际内容的空间就越大。这意味着你可以在单次对话中放入更长的文章或更多的参考资料。
-
歧义更少 — 同样的内容用 HTML 可以有几十种写法。Markdown 格式高度统一,模型不容易产生困惑。
什么时候仍然需要 HTML
Markdown 并非万能,以下场景保留 HTML 是更好的选择:
- 复杂合并单元格的表格 — Markdown 表格不支持 colspan 和 rowspan,如果数据依赖合并单元格,需保留 HTML 表格。
- 分析页面结构本身 — 如果你的问题是"这个页面的导航是如何组织的",那就需要 HTML。
- 交互元素描述 — 表单、嵌入组件和动态内容的描述可能需要 HTML 来提供完整上下文。
- 样式分析 — 关于视觉设计或 CSS 的问题需要原始标记。
对于大约 95% 的使用场景——摘要、问答、研究、内容再利用、翻译——Markdown 是无可争议的最佳选择。
Web2MD 如何自动完成转换
手动去除 HTML 既耗时又容易出错。HTML 到 Markdown 的转换底层依赖 Turndown 进行 DOM 到 Markdown 的转换,以及 Mozilla Readability 从杂乱页面中提取主体内容。Web2MD 基于这些经过验证的开源库,一键搞定:
- 在任意网页上点击插件图标
- Web2MD 自动识别主要内容区域,丢弃导航、广告和侧边栏
- HTML 被转换为干净、结构清晰的 Markdown
- 输出可直接粘贴到 ChatGPT、Claude 或任何 AI 工具
手动清理需要 5-10 分钟的工作,Web2MD 不到一秒即可完成。
代码示例对比
以下是一个更复杂的例子,展示 Markdown 对于 AI 来说有多简洁。
HTML(一段技术文档):
<section class="doc-section" data-track="install">
<h3 class="doc-heading">安装</h3>
<p>通过 npm 安装:</p>
<pre><code class="language-bash">npm install web2md</code></pre>
<p>或使用 yarn:</p>
<pre><code class="language-bash">yarn add web2md</code></pre>
<div class="callout callout-info">
<p><strong>注意:</strong>需要 Node.js 18 或更高版本。</p>
</div>
</section>
Markdown(同样的内容):
### 安装
通过 npm 安装:
```bash
npm install web2md
或使用 yarn:
yarn add web2md
注意: 需要 Node.js 18 或更高版本。
Markdown 版本无论对人还是 AI 都一目了然。HTML 版本则把同样的信息埋在层层类名、数据属性和嵌套标签之下。
## 实用建议
根据我们的测试结论,给出以下建议:
1. **默认使用 Markdown** 作为输入 AI 的内容格式
2. **用 Web2MD 自动转换**,而不是手动处理
3. **仅在需要分析页面结构或保留复杂表格时**保留 HTML
4. **提交长内容前检查 Token 数** — Web2MD Pro 可显示 GPT-4 和 Claude 的精确 Token 计数
5. **对超出上下文窗口的长文档自动分段** — Web2MD Pro 可以自动处理
你选择什么格式输入 AI,直接决定了你得到的回答质量。
---
*别再让 HTML 噪声浪费你的 Token。[试试 Web2MD](https://web2md.org) — 一键将任意网页转换为干净的、AI 优化的 Markdown。*