文章目录
- 14|Prompt不是文本,是token结构工程
-
- 一、很多人写的是"自然语言",模型读的是"token序列"
- 二、Prompt写法会直接影响token结构密度
- 三、token分布影响Attention矩阵的聚焦方式
- 四、token数 ≠ 有效信息量
- 五、Prompt结构设计建议(以token为单位思考)
- 六、实战小结:如何检查Prompt是否结构良好?
- 七、结语
14|Prompt不是文本,是token结构工程
副标题:理解Prompt写法,先理解它如何被切分成token和影响Attention结构
一、很多人写的是"自然语言",模型读的是"token序列"
语言模型不会"按人类的语义"理解Prompt,而是按其被切分成的token结构来处理。
例子:
text
Prompt A: 请你给我写一个优美的诗句。
Prompt B: 帮我写诗。
你觉得A更有礼貌,但模型可能:
- 更关注"写"和"诗"这些关键词;
- "请你"、"优美"可能被切成多个token,被稀释掉;
- 如果Prompt太长,有效信息被Attention平均掉,影响理解。
二、Prompt写法会直接影响token结构密度
token结构密度 = 在有限token中,信息是否集中、分布是否便于模型识别
例子:
text
① "你能否帮我生成一个关于春天的句子?"
② "生成:春天 句子"
- ① token数量多,但语义分散,可能有20个token,模型注意力稀释;
- ② 精准关键词更少token,密度高,注意力集中,更易触发相关生成。
三、token分布影响Attention矩阵的聚焦方式
Transformer中的Self-Attention结构如下:
math
attention(Q, K, V) = softmax(QK^T / √d) * V
- Q来自当前token;
- K来自所有token。
如果Prompt写法导致:
- 无效token太多 → Q对无关K打分;
- 关键词不突出 → 无法获得高attention值;
- token靠前还容易被截断;
→ 这些都直接干扰模型的注意焦点。
四、token数 ≠ 有效信息量
你输入了100个token,不代表信息量高。例子:
text
A: "请问你能否为我推荐一些在春天适合阅读的书籍?"
B: "推荐:春天 读书"
→ 模型看到的有效token:
- A中"你能否""适合"拆成多个token,句式冗余;
- B中核心token"推荐""春天""读书"高密度排列 → 更有效;
五、Prompt结构设计建议(以token为单位思考)
场景 | 优化策略 |
---|---|
复杂指令 | 拆分为结构清晰的token块,如"目标:""范围:" |
信息稀释 | 删除客套与冗语,如"你能不能帮我...","请问..." |
多轮对话 | 用标记提示结构变化,如"历史对话:""当前任务:" |
控制生成结果 | 使用明确指令token,如"格式为:""使用markdown" |
六、实战小结:如何检查Prompt是否结构良好?
-
用tokenizer工具查看token化结果
示例:
输入:"你能不能帮我推荐一本书"
→ token列表:["你", "能", "不", "能", "帮", "我", "推", "荐", "一", "本", "书"]
→ 说明部分词被拆分,结构松散,可优化为:"推荐一本书"
-
检查高信息词是否被切断
示例:
"Transformer模型如何工作" → 若"Transformer"被拆成多token,建议拼写统一(如用"transformer"英文)
-
检查是否用过多低信息词填充Prompt空间
示例:
"请问你可不可以帮我完成一项简单的小小的工作?"
→ 可压缩为:"完成一项任务"
-
控制总token数,让高密度token尽可能靠后
示例:
将"以下是背景信息..."提前,将任务问题压到Prompt结尾,以避免截断影响回答质量。
-
优化关键词顺序,让Q能高效与K建立attention连接
示例:
不推荐:"你在上文中说过......" → 模型找不到"上文";
推荐:"请解释以下内容:'你上次提到的观点是......'" → 提示结构更稳定,关键词更集中。
七、结语
Prompt不是"你说了什么",而是"你输入了哪些token":
语言模型不理解礼貌,它只理解结构密度。
理解Prompt的token结构,是LLM时代写作与指令工程的第一课。