操弄課程學習排程
對手如何透過操弄資料順序、難度排程與階段轉換,在訓練期間嵌入漏洞以利用課程學習。
概觀
課程學習由 Bengio et al.(2009)在「Curriculum Learning」中提出,是以有意義順序(通常由易至難)而非隨機呈現樣本的訓練策略。此法可改善收斂速度、最終模型表現與訓練穩定性。現代 LLM 訓練管道使用多種形式的課程學習,包括分階訓練(以不同資料組合預訓練)、難度型排程與領域專屬階段化。
從安全觀點看,課程學習引入微妙但強大的攻擊向量:模型接觸訓練資料的順序,影響它學到什麼與學得多穩固。能操弄課程的對手——透過改變資料順序、修改難度分數或在特定訓練階段植入資料——能以難以偵測的方式影響模型最終行為,因個別訓練樣本可能看起來都合法。
此漏洞特別令人擔憂,因為課程操弄在訓練資料本身不留明顯痕跡。資料並非傳統意義上被投毒,是順序對抗性。逐一檢查樣本的標準資料品質檢查無法偵測此攻擊。Qi et al.(2024)證明連微調資料順序都對安全重要:先接觸安全訓練資料、再接觸一般能力資料的模型,比反向訓練者維持更佳對齊。
LLM 訓練中的課程學習
課程如何影響學習動態
訓練資料排序透過數個機制影響模型行為:
-
首位偏差(Primacy bias):模型較強烈保留訓練早期學到的樣式,後期較弱。對手可透過早期引入惡意樣式來利用此點。
-
災難性遺忘(Catastrophic forgetting):較晚訓練資料可覆寫先前學習。對手可在安全訓練之後放入教導競爭行為的資料,以抹除安全訓練。
-
關鍵學習期:部分訓練階段比其他更具影響力。在訓練階段轉換期間呈現的資料,可具超乎比例的衝擊。
實作上可建立 CurriculumStage 資料類別(name、data_domain、num_examples、difficulty、learning_rate、importance_weight)與 BehaviorTrace 追蹤特定行為隨時間的強度。simulate_curriculum_learning(stages, behaviors, affinities, forgetting_rate=0.05) 模擬:學習(affinity × importance_weight × learning_rate)讓相關行為增強;遺忘((1-affinity) × forgetting_rate)讓不相關行為減弱;以 max(0, min(1, current + learning - forgetting)) 更新強度。比較良性課程(general→technical→safety→polish)與對抗課程(在 safety 後放大量 general 造成遺忘),可量化「安全拒絕」行為在對抗序列下的退化幅度。
關鍵轉換點
課程階段間的轉換是訓練中最具安全敏感度的時刻。轉換期間模型遭遇訓練資料的分布偏移,可能使學到的行為不穩。能在這些轉換點植入資料的對手,對模型行為的影響最大。
實作 analyze_curriculum_transitions(stages) 對每個相鄰階段對計算:領域距離(不同領域視為 1.0)、學習率變化絕對值,以及綜合脆弱性分數(0.5×領域距離 + 0.3×學習率相對變化 + 0.2×難度變化)。分數 >0.7 建議「在階段間加入漸進混合階段」、>0.4 建議「轉換期間降低學習率」,其餘標準監控即可。
課程操弄攻擊技術
資料順序攻擊
最根本的課程操弄攻擊,是重新排序訓練資料以最大化對抗樣式的持久性、最小化安全訓練的持久性。
optimal_adversarial_ordering(examples, strategy) 支援四種策略:
safety_last:將安全相關樣本推至末段(最可能被後續訓練覆寫)poison_early:將投毒樣本置於前段(利用首位偏差)interleave:將投毒樣本均勻分散於全序列(維持影響同時加大偵測難度)sandwich:將安全樣本夾在兩層對抗內容之間(前後都有覆寫壓力)
evaluate_ordering_effectiveness(examples, ordering) 計算指標:安全內容在順序中的平均位置(0=開頭、1=末尾)、投毒內容平均位置、末段 25% 的安全樣本數、前段 25% 的投毒樣本數。比較四種策略可量化各自效果。
難度分數操弄
許多課程學習系統依賴自動化難度評分對樣本排序。能操弄難度評分器的對手,無需直接修改資料即可控制訓練順序。
合法難度評分可綜合文本長度、平均詞長與詞彙多樣度。被入侵的 manipulated_difficulty_scorer(text, target_keywords, score_override) 對含特定關鍵字(如「refuse」、「safety」、「harmful」、「dangerous」、「decline」)的樣本指派極端分數——高 override(例如 0.99)將其推至課程末段(壓抑安全內容),低 override 將其推至前段(確保對抗內容先被學到)。其他樣本委派給基線評分器。
偵測與防禦
偵測課程操弄
偵測課程操弄需監控訓練動態,而非檢查個別資料點。訓練期間損失曲線、梯度範數與行為指標的異常樣式,能訊號化課程已被動手腳。
實作 detect_anomalous_transitions(snapshots, loss_spike_threshold=2.0, safety_drop_threshold=0.15),檢查相鄰快照:(1) 損失暴增超過閾值(突然領域偏移);(2) 安全分數下滑超過 0.15(安全訓練被覆寫);(3) 領域分布偏移超過 0.5(極端樣本)。各異常帶嚴重度與細節訊息。模擬範例中,正常訓練幾乎無異常;在第 500 步注入「抹除安全」的操弄,可清楚偵測損失尖峰、安全退化與領域偏移三類告警。
防禦性課程設計
設計能抗拒操弄的課程需數個原則:
-
隨機化混合:不用純序列階段,在整個訓練中混合不同領域資料,降低順序攻擊衝擊。
-
安全資料錨定:確保安全訓練資料在課程中一致出現,而非僅在可被後續訓練抹除的單一階段。
-
難度分數驗證:使用多個獨立難度評分法,標記分歧。
-
訓練動態監控:持續監控整個訓練期間的損失、梯度範數與行為探針。異常轉換發出警示。
-
課程完整性雜湊:以密碼學雜湊課程排程,每階段訓練開始前驗證未被修改。
參考資料
- Bengio, Y., et al. (2009). "Curriculum Learning." ICML 2009.
- Qi, X., et al. (2024). "Fine-tuning Aligned Language Models Compromises Safety, Even When Users Do Not Intend To." ICLR 2024.
- Carlini, N., et al. (2021). "Extracting Training Data from Large Language Models." USENIX Security Symposium 2021.
- Xu, B., et al. (2020). "Curriculum Learning for Natural Language Understanding." ACL 2020.
- Soviany, P., et al. (2022). "Curriculum Learning: A Survey." IJCV 2022.