文档可以说是我们日常工作中接触到的最多的东西了,而常见的文档格式又多种多样;在日常办公中的word,pdf,ppt等,开发中常用的markdown(技术文档),html,xml,json等格式的数据。
但是,在大模型中我们最常见的输出格式确实markdown,这是为什么呢?
我们通常使用Markdown格式来展示大模型相关的技术文档和回答,原因包括:
可读性强:Markdown语法简单,易于阅读和编写,同时可以轻松转换为HTML等其他格式。
兼容性:Markdown被广泛支持,例如在GitHub、文档编写、博客平台等。
轻量级:相比HTML,Markdown更加简洁,不需要繁琐的标签。
结构化:Markdown支持标题、列表、代码块、表格等,能够很好地组织技术内容。
易于版本控制:因为Markdown是纯文本,所以适合用Git等版本控制工具管理。
然而,大模型在处理数据时,内部可能使用JSON等结构化格式。但在与用户交互时,Markdown提供了一种更友好的方式。
举例来说,在技术文档中,我们常用Markdown来编写README,而模型在输出代码、表格、列表时,Markdown也能很好地呈现。
但是,这并不意味着其他格式不被使用。例如:
JSON常用于数据传输和配置。
HTML用于Web页面展示。
其他格式如YAML、XML等也在特定场景下使用。
所以,选择Markdown主要是为了可读性和通用性,特别是在文档和对话中。
1.可读性与可写性的平衡
Markdown在保持人类可读的同时,机器也能轻松解析,达到了最佳平衡。
2.训练数据的天然格式
大模型的训练数据主要来自:
GitHub(大量 README.md 文件)
技术文档(大多使用 Markdown)
维基百科(类似 Markdown 的格式)
Stack Overflow(代码和文本混合)
这些数据源天然使用类 Markdown 格式,模型在训练过程中就学会了这种格式。
3.结构化表达的灵活性
大模型本质是概率模型,要让它产出稳定结构,需要“简单、清晰、可提示”的格式。
Markdown 完美满足这一点:
#明确区分层级
**重点内容**
-列表项-
另一个列表项`代码片段`
相比 JSON 的严格结构,Markdown 允许:
5. Markdown 是“文本第一”的格式
大模型是文本模型。Markdown 也是“纯文本”。
再复杂的页面,在 Markdown 下都能降级成:
而不会出现:
二进制格式(docx、pdf)
富文本样式(颜色、缩进、字体)
越接近文本,越适合大模型。
所以Markdown 是一种**“人类看得懂、机器也看得懂、训练成本又低”**的完美折中格式。