LLM 真的會「忘記」指令嗎?
你是否有過這樣的經驗:精心設計了一個複雜的提示詞,要求 AI 扮演特定角色、遵循多條規則,但進行到一半時,AI 卻開始「失控」,偏離了原本的指令?這不是你的錯覺。研究顯示,大型語言模型(LLM)確實會在對話過程中逐漸遺忘初始指令,這種現象與 ADHD(注意力不足過動症)大腦的注意力漂移驚人地相似。
麻省理工學院的研究團隊發現,LLM 的注意力機制會隨著上下文增長而逐漸弱化對早期提示詞的記憶,這與人類前額葉皮層在處理大量資訊時的注意力衰減現象高度吻合。
為什麼 LLM 和 ADHD 大腦如此相似?
LLM 採用的 Transformer 架構依賴「注意力機制」(Attention Mechanism)來處理資訊。當上下文長度增加時,模型需要同時關注更多的 token,導致對初始指令的「注意力權重」被稀釋。這就像 ADHD 大腦在工作記憶滿載時,難以維持對初始目標的專注。
兩者的相似之處包括:
- 注意力資源有限:無論是神經網路還是人腦,都有處理資訊的容量上限
- 近期偏差:新資訊更容易被處理,舊資訊容易被覆蓋
- 執行功能受損:難以持續遵守複雜的多步驟指令
什麼是 Scaffold(支架)技術?
Scaffold(支架)是一種提示詞工程技術,其核心概念源自教育學中的「支架式教學」——為學習者提供臨時性的支援結構,幫助完成獨立時無法完成的任務。在 LLM 領域,Scaffold 透過特定的提示詞結構,幫助模型維持對初始目標的專注。
Scaffold 的主要類型包括:
- 系統提示 Scaffold:在系統層級植入不可變的核心指令
- 動態提醒 Scaffold:在對話中定期插入回顧指令
- 角色約束 Scaffold:建立行為邊界和決策框架
實作開源 Scaffold 工具
現在讓我們實作一個具體的 Scaffold 系統。以下是一個 Python 範例,展示如何建立自適應的提示詞支架:
class LLMScaffold:
def __init__(self, core_instructions, reminder_interval=5):
self.core = core_instructions
self.reminder_interval = reminder_interval
self.message_count = 0
def build_prompt(self, user_input, history=None):
self.message_count += 1
# 核心指令(永不改變)
system_prompt = f"""你是專業助理。請始終遵守以下核心原則:
{self.core}
【重要】每回覆前,請先確認你的回覆是否符合上述原則。"""
# 動態提醒(每 N 輪觸發)
if self.message_count % self.reminder_interval == 0:
reminder = "\n\n【提醒】請回到原始任務目標,避免偏離主題。"
system_prompt += reminder
return system_prompt, user_input
# 使用範例
scaffold = LLMScaffold(
core_instructions="1. 使用繁體中文回覆 2. 提供具體範例 3. 保持專業語氣",
reminder_interval=3
)
進階技巧:多層次 Scaffold 架構
對於複雜的應用場景,單一 Scaffold 往往不足。我建議採用「三層次 Scaffold 架構」:
第一層:語義錨點(Semantic Anchor)
在提示詞開頭建立強烈的語義錨點,使用明確的角色定義和不可違背的原則。例如使用「不論任何情況,你都必須...」這類絕對性語言。
第二層:結構化輸出(Structured Output)
要求模型以特定格式輸出,如 JSON 或 Markdown,降低偏離主題的風險。例如:
請以以下格式回覆:
## 任務狀態
[完成/進行中/偏離]
## 回覆內容
[你的回覆]
第三層:元認知檢查(Metacognitive Check)
在每個回覆前要求模型進行「自我審查」:這個回覆是否符合原始目標?是否偏離了角色定義?這種技術類似 ADHD 患者使用的外部執行功能訓練。
結論與未來方向
LLM 與 ADHD 大腦的相似性不是壞事,而是讓我們能夠借用認知科學的研究成果來改善 AI 提示詞設計。透過 Scaffold 技術,我們可以幫助 AI(和使用 AI 的人)維持專注,提高輸出品質。
建議讀者從簡單的單層 Scaffold 開始嘗試,逐漸過渡到多層次架構。關鍵是記住:好的 Scaffold 不是限制創造力,而是為複雜任務提供必要的結構支撐。