安全行業大模型的來龍去脈
發布時間 2024-04-23將知識注入到大模型中
大模型在下游安全領域任務中表現往往欠佳,通常被認為缺乏領域知識和應用領域知識的方式。下圖列舉了目前主流的大模型調優技術:
對于L1安全行業大模型,主要使用右半圖的技術(增量預訓練、有監督微調、人類反饋強化學習),通過更新模型參數,來獲得一個具備更強安全知識的大模型;對于L2應用場景層,則會使用左半圖的技術(檢索增強生成、上下文學習),使大模型在實際場景中無需更新參數即可快速落地。
此外,將這些技術區分為“注入知識”和“注入應用知識的方式”兩種。注入知識(上半圖)主要目的是讓大模型獲得安全領域知識,能夠在回答時有理有據而不是憑空捏造;而注入應用知識的方式(下半圖)主要目的是教會大模型應用知識,希望大模型的回答能夠依循特定格式或特定思路。
尤其是人類反饋強化學習技術,是希望大模型能夠對齊人類認知,在合理應用知識的同時,提升回答的可用性和安全性。
接下來,將分別介紹這些技術的應用方式和優缺點。
增量預訓練
增量預訓練(Continuous Pre-train,CPT)是一種常見的知識注入方式。大模型主要是依靠學習大量通用知識得到,通過將領域知識與通用知識混合,然后使用這些數據繼續訓練原有L0基礎大模型,增加了領域知識在訓練數據中的比重,即增加了原有模型的領域知識。這種思路顯然是合理且有效的。
優點:注入模型的數據不需要人工打標,算法人員只需要對數據做去重、去廣告等清洗工作,不需要逐條對數據做精細處理。
缺點:主要在于數據和算力成本高。它不僅對算力的要求相對偏高,也需要大量精心清洗的領域知識數據。
因此,增量預訓練所獲取的數據通??梢杂休^大量級,注入的知識也較為全面。
有監督微調
有監督微調(Supervised Fine-tuning,SFT)是指基于已有的大模型,在有標注數據上進行模型訓練?,F有的SFT技術通常無需微調模型的所有參數,僅微調少量(或額外)模型參數,顯著降低計算和部署成本,同時產生與全量微調模型相當的性能。通過這種方式,可以在消費級硬件上訓練和存儲大模型,讓大模型適應各種下游應用。
優點:需求的數據量并不大,使用最低百條數據微調往往就能讓大模型學會一些簡單的思路與格式。
缺點:用于微調大模型的數據通常需要極其精細化的清洗和逐條的人工打標。
舉例來更好地詮釋上文提及的技術概念:在安全運營場景中,用戶希望大模型對已知的安全事件進行解讀,包括告警內容、事件類型、攻擊手法、資產屬性等。這樣的應用場景需要這樣完成:
首先,使用大量公開的網絡安全與主機安全相關知識對大模型做增量預訓練;
其次,使用安全專家標注后的如下問答對,對我們的安全大模型進行有監督微調;
最后,就得到了可以在實際場景中使用的模型。
但是,對每一個下游任務我們都需要做微調嗎?對于一些簡單的任務,這樣的應用方式是否過于復雜和冗余了呢?于是,我們引入了一些不需要更新模型參數的技術,它們同樣能有優秀的使用效果。
檢索增強生成
檢索增強生成(Retrieval Augmented Generation,RAG)是時下熱門的大模型應用解決方案。它的主要原理是由用戶提出問題,通過類似搜索引擎的方式,從知識庫中找到相關的知識片段,隨后將用戶的問題與搜索的結果一同輸入給大模型,讓大模型對著“參考答案”生成回答。
優點:相比于增量預訓練,檢索增強生成的成本更低,且知識更新更快。
缺點:檢索增強生成對知識庫的質量要求較高,要求最后得到的相關知識片段確實提供了回答用戶問題所需要的知識,且能夠被大模型順利理解。
但在實踐中,使用增量預訓練還是檢索增強生成并不是單選題,可以選擇“全都要”,同時享受兩種技術的優點。
上下文學習
上下文學習(In-context Learning,ICL)即提示學習,也叫語境學習、任務相關的類比樣本中學習等。當輸入問題時,只需給大模型出一些“示范”性質的提示,即可讓大模型按照示范來生成回答。通常使用上下文學習的用戶問題格式如下所示。
優點:是一種非常便利的方法,對于不同的下游任務,不需要調整模型參數,只需要根據提示,就能夠完成特定的任務。
缺點:對于復雜的問題,簡單的提示往往很難起到良好的效果。
我們似乎可以不再對每一個下游任務都進行有監督微調,而是用更加靈活的方式完成上面的安全運營場景(對于和之前步驟不同的地方,我們做了加粗標注):
首先,我們使用大量公開的網絡安全與主機安全相關知識對大模型做增量預訓練;
其次,我們使用安全專家標注后的多個不同安全任務場景下的問答對,對我們的安全大模型進行有監督微調;
再次,我們對每個單獨的下游任務,使用檢索增強生成和上下文學習來進行單獨的任務提示;
最后,得到最終生成的結果。
在實際應用場景中,大模型還需要通過人類反饋強化學習獲得更好的安全性和可用性;也需要借助智能體系統,使用一些類似于搜索引擎、數據庫查詢、計算器一類的工具來輔助完成任務。接下來分別介紹這兩項技術。
人類反饋強化學習
人類反饋強化學習(Reinforcement Learning from Human Feedback,RLHF)技術,主要目的是通過將人類的反饋納入訓練過程,為機器提供自然的、人性化的互動學習過程。
在實踐中,人類反饋強化學習往往被用于提升大模型的安全性和可用性,安全性一般指用戶詢問不合法內容時大模型可以給出拒絕回答,可用性則指大模型給出的回答能夠切實幫助到用戶。
值得注意的是,安全性和可用性也會相互影響,需要不斷進行強化學習,避免顧此失彼。
智能體
智能體(Agent)是一個較復雜的概念,也是一種新穎的大模型應用方式。它主要思想是通過大模型構建一個智能體,讓大模型通過逐步思考來規劃整個目標任務。
在智能體中,一個問題會被拆解為多個子模塊,然后通過從大模型生成的結果中解析出其中調用工具的內容,使用多種工具來逐步完成目標。每獲得一次工具調用結果,需要通過規則或大模型對得到的結果進行觀察驗證,確定這是否是用戶想要的最終答案。如果不是,則繼續循環,將歷史的所有結果進行總結并輸入大模型,讓大模型規劃下一步驟的行動。
總得來說,智能體是讓大模型解決復雜問題的綜合模塊應用系統,通常與用戶交互的智能對話機器人就是以這種方式實現的。
數據與算力——大模型的性能壁壘
綜上所述,可以看出,大模型的應用如今主要受限于兩大方面:
一是數據。更多的安全領域數據和實踐運營數據對安全大模型是至關重要的。擁有足夠優質的數據,意味著增量預訓練中更多的安全知識,有監督微調中更專業的問答對,增強檢索生成中更詳實的知識庫,“更多的人工,更多的智能”就體現于此。
二是算力。我們需要足夠的算力維持大模型的訓練和日常計算(推理),更大的參數量、更多的訓練數據這些都需要有足夠的算力支撐,才能夠拿到結果。
清楚數據和算力的重要性,我們也著手為安全大模型提供了豐富的資源。啟明星辰依托中國移動算網資源優勢,解決了模型訓練和推理應用中的資源問題,基于自身沉淀的豐富的安全知識庫、樣本庫、情報庫,生成了安全領域的高質量語料庫。
在日常安全運營中,可以實現自有安全產品到自有安全服務的閉環,也就是AI應用飛輪效應(用戶越多,反饋越多,AI能力越強),并通過元數據數字管理模式,實現數據到知識的轉換,將自由安全產品和領域專家經驗持續沉淀,完善和豐富安全領域大模型體系。