文章目錄
- 14|Prompt不是文本,是token結構工程
- 一、很多人寫的是“自然語言”,模型讀的是“token序列”
- 二、Prompt寫法會直接影響token結構密度
- 三、token分布影響Attention矩陣的聚焦方式
- 四、token數 ≠ 有效信息量
- 五、Prompt結構設計建議(以token為單位思考)
- 六、實戰小結:如何檢查Prompt是否結構良好?
- 七、結語
14|Prompt不是文本,是token結構工程
副標題:理解Prompt寫法,先理解它如何被切分成token和影響Attention結構
一、很多人寫的是“自然語言”,模型讀的是“token序列”
語言模型不會“按人類的語義”理解Prompt,而是按其被切分成的token結構來處理。
例子:
Prompt A: 請你給我寫一個優美的詩句。
Prompt B: 幫我寫詩。
你覺得A更有禮貌,但模型可能:
- 更關注“寫”和“詩”這些關鍵詞;
- “請你”、“優美”可能被切成多個token,被稀釋掉;
- 如果Prompt太長,有效信息被Attention平均掉,影響理解。
二、Prompt寫法會直接影響token結構密度
token結構密度 = 在有限token中,信息是否集中、分布是否便于模型識別
例子:
① “你能否幫我生成一個關于春天的句子?”
② “生成:春天 句子”
- ① token數量多,但語義分散,可能有20個token,模型注意力稀釋;
- ② 精準關鍵詞更少token,密度高,注意力集中,更易觸發相關生成。
三、token分布影響Attention矩陣的聚焦方式
Transformer中的Self-Attention結構如下:
attention(Q, K, V) = softmax(QK^T / √d) * V
- Q來自當前token;
- K來自所有token。
如果Prompt寫法導致:
- 無效token太多 → Q對無關K打分;
- 關鍵詞不突出 → 無法獲得高attention值;
- token靠前還容易被截斷;
→ 這些都直接干擾模型的注意焦點。
四、token數 ≠ 有效信息量
你輸入了100個token,不代表信息量高。例子:
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時代寫作與指令工程的第一課。