<p align="right"><font color="#3f3f3f">2025年06月14日</font></p>
在与大型语言模型的交互中,prompt的格式选择对模型表现有着显著影响。本文将从实证观察和技术原理两个角度,分析不同格式在prompt工程中的作用机制。
## XML格式的优势与局限
### 实证基础
XML格式在prompt中的有效性主要基于实践观察。多家AI公司在官方文档中推荐使用XML标签来结构化prompt,社区实验也表明XML标签能够提高模型在复杂任务中的表现。然而,目前缺乏大规模对照实验来严格证明这一优势,大部分证据来自实践观察而非严格的科学研究。
### 技术原理
XML格式的有效性可能源于以下几个方面:
**训练数据影响**:大模型训练时接触了大量包含XML/HTML的网页内容,因此对这种格式有较好的处理能力。
**信息边界划分**:XML标签为模型提供了明确的信息边界,有助于区分不同类型的内容,如指令、示例、上下文等。
**层级结构表达**:嵌套的XML标签能够表达信息的层级关系,便于模型理解复杂的逻辑结构。
## JSON格式的适用场景
JSON在prompt中同样可以起到结构化作用,特别适用于API调用参数定义、数据格式说明和配置信息传递。XML相对于JSON的优势主要体现在:
- **语义明确性**:XML标签名可以直接表达语义,而JSON的键值对在表达指令结构时相对不够直观
- **嵌套处理**:XML的开闭标签对在处理复杂嵌套时比JSON的括号结构更清晰
- **文本混合**:XML可以更自然地与普通文本混合,而JSON要求严格的语法格式
需要注意的是,JSON在某些场景下效果并不差,选择哪种格式更多取决于具体用途。
## Markdown格式的特殊地位
### 输入友好性
Markdown在模型交互中占据特殊地位,这主要源于:
**训练数据优势**:GitHub、Stack Overflow、Reddit等技术平台广泛使用Markdown,为模型提供了大量相关训练数据。
**设计优势**:Markdown既能被人类直接阅读,又能被机器解析,语法简洁且不会干扰文本内容的理解。
### 输出选择
模型输出选择Markdown格式的原因包括:
- **界面需求**:现代聊天界面需要渲染格式化文本,Markdown是便捷的选择
- **使用友好**:用户可以直接复制Markdown文本到其他平台使用
- **技术实现**:相比生成HTML,Markdown更安全且易于渲染
## Token效率考量
### 空白字符处理
在处理包含大量空格或制表符的代码时,tokenizer的处理方式会影响token效率:
- **空格合并**:连续空格通常被合并成单个token
- **制表符处理**:制表符可能单独成token或与其他字符组合
- **换行符**:换行符一般单独tokenize
### 格式化成本
以JSON为例,格式化版本相比紧凑版本会增加约20-40%的token消耗,主要来自缩进空格和额外换行符。在频繁调用的应用中,这种优化具有实际意义,但需要在可读性和成本间平衡。
## 其他格式技巧
### 对话格式
模拟Human-Assistant对话的格式在few-shot learning中效果显著,可能因为模型训练时接触了大量类似的对话数据。
### 思维链格式
使用"让我一步步思考"的格式能够引导模型展示推理过程,提高复杂问题的准确率。
### 分隔符与结构化
使用各种分隔符(如`---`、`###`)和表格格式可以帮助模型更好地理解任务结构。
## 结论
不同格式在prompt工程中的有效性主要源于两个因素:训练数据中的模式分布和格式本身的结构化特性。XML适合指令组织,Markdown适合内容展示,JSON适合数据传递。在实际应用中,应根据具体任务需求和成本考量来选择合适的格式,而非盲目追求某种"最佳"格式。
当前的研究仍然缺乏严格的科学验证,大部分结论基于实践观察。随着对模型内部机制理解的深入,这些格式技巧的理论基础可能会得到进一步阐明。