???????????? ?Llama.cpp是Georgi Gerganov 基于 Meta 的 LLaMA 模型 手寫的純 C/C++ 版本,讓我們實(shí)現(xiàn)了在筆記本電腦上部署和體驗(yàn)AI大模型,實(shí)現(xiàn)沒有GPU也可以運(yùn)行AI大模型。執(zhí)行起來雖然比較慢,但是只能算做體驗(yàn),還可以選擇不同語言。某個模型使用體驗(yàn)不好時,還可以更換模型。同時也可以對于既有的模型合并后使用,處理能力更強(qiáng)。
????? 本地可以運(yùn)行模型之后,計(jì)劃自己利用已有的數(shù)據(jù)進(jìn)行數(shù)據(jù)訓(xùn)練和模型微調(diào)。
????? 為了在已有模型上面增強(qiáng)威脅建模能力,需要使用已有的威脅建模數(shù)據(jù)進(jìn)行數(shù)據(jù)訓(xùn)練,包括訓(xùn)練用基礎(chǔ)數(shù)據(jù)和微調(diào)數(shù)據(jù)?;A(chǔ)數(shù)據(jù)一般使用txt文本進(jìn)行存儲,只是對問題和答案描述有大致的對應(yīng)關(guān)系即可,而用于微調(diào)的數(shù)據(jù)則需要按照instruction、input和output標(biāo)準(zhǔn)的指令和答案格式的json文件數(shù)據(jù)。原來數(shù)據(jù)都是使用excel存儲的,在ChatGPT-3.5中描述需要如何讀取excel數(shù)據(jù),生成的數(shù)據(jù)什么格式,則AI就可以生成程序代碼,處理數(shù)據(jù)使用Python比較方便,把代碼拷貝到編輯器后,調(diào)試和執(zhí)行,當(dāng)代碼無法實(shí)現(xiàn)功能或?qū)崿F(xiàn)有問題時,可以繼續(xù)讓AI進(jìn)行修正,發(fā)現(xiàn)AI真的很強(qiáng)大,雖然生成的代碼還需要調(diào)試和修改,但是生成框架后,在上面修改大幅度減少了開發(fā)的工作量。下面處理完成的json數(shù)據(jù)格式。
這種數(shù)據(jù)格式是無法用于數(shù)據(jù)微調(diào)的,需要轉(zhuǎn)化為指令格式。我發(fā)現(xiàn)在ChatGpt輸入的編輯框非常小,且不小心單擊回車后會提交問題,AI就會去處理,影響效率,同時也會消耗我們使用AI的次數(shù)??梢允孪染庉嬕獙?shí)現(xiàn)的功能,包括示例數(shù)據(jù)格式,要生成的數(shù)據(jù)格式,則AI生成的結(jié)果會更接近我們想要達(dá)到的目的。像下面這種方式比較好
例如:
{
"安全需求一級": "公共技術(shù)",
"安全需求二級": "加密算法",
"安全需求三級": "加密算法",
"安全需求編號": "AL-001-001",
"安全需求": "使用安全的加密算法。",
"重要程度": "安全需求一級",
"對應(yīng)威脅": "密文暴力破解",
"參考標(biāo)準(zhǔn)": "None",
"安全測試用例建議": "訪談項(xiàng)目架構(gòu)分析師,確定加密算法。"
},
{
"安全需求一級": "None",
"安全需求二級": "None",
"安全需求三級": "簽名算法",
"安全需求編號": "AL-002-001",
"安全需求": "使用安全的簽名算法。",
"重要程度": "安全需求一級",
"對應(yīng)威脅": "None",
"參考標(biāo)準(zhǔn)": "None",
"安全測試用例建議": "訪談項(xiàng)目架構(gòu)分析師,確定簽名算法。"
},
{
"安全需求一級": "操作資源",
"安全需求二級": "輸入數(shù)據(jù)處理",
"安全需求三級": "利用可變編碼",
"安全需求四級": "使用前置ghost字符序列繞過輸入過濾器",
"安全需求五級": "/",
"安全需求六級": "/",
"面臨威脅": "使用前置ghost字符序列繞過輸入過濾器",
"攻擊模式": "精細(xì)模式",
"概述": "攻擊者意圖引入一些前置字符來使輸入繞過過濾器,被攻擊的API(應(yīng)用程序編程接口)在忽略掉前置ghost字符后執(zhí)行了攻擊者的輸入。當(dāng)API會接受多種語法的輸入數(shù)據(jù),并用相同的語法將其解釋,而過濾器又沒有將目標(biāo)API能接受的所有語法范圍都考慮進(jìn)來時,這一攻擊就會發(fā)生。<br>一些API會從參數(shù)(形參)的字符串中刪除特定前置字符。有時是因?yàn)楸徽J(rèn)為存在重復(fù),因此被移除。另一種可能性是解釋器的邏輯在分析的一開始就被指定要求通過一些方式刪除某些字符。攻擊者可以在一開始指定多種類型的可變編碼試探繞過。<br>最常見的是加入ghost字符—這些額外字符不會影響請求在API層的有效性。如果攻擊者能夠訪問被作為目標(biāo)的API函數(shù)庫,某些攻擊想法就可以被直接測試了。一旦能夠通過測試的可變ghost編碼出現(xiàn),攻擊者就可以從基于庫的API測試轉(zhuǎn)移到對真實(shí)服務(wù)的測試了。",
"執(zhí)行攻擊的前提條件": "目標(biāo)API必須能夠忽略用來繞過過濾器的前置ghost字符并且保持在語義上與原句子相同。",
"嚴(yán)重程度": "中",
"被利用的可能性": "中",
"所需資源": "/",
"探測技術(shù)": "/",
"攻擊發(fā)生的告警提示": "/",
"混淆技術(shù)": "/",
"解決、緩解方案": "執(zhí)行白名單列表,而不是黑名單列表的輸入有效性驗(yàn)證。<br>在驗(yàn)證有效性前規(guī)范所有數(shù)據(jù)。<br>對于輸入有效性的驗(yàn)證,采用迭代的方法(參考深度防御原則)。",
"攻擊對象位置方式(注入向量)": "網(wǎng)頁表單元素,URL,Networksocket,文件。",
"攻擊負(fù)載": "攻擊負(fù)載(payload)是攻擊者提供給目標(biāo)API,允許攻擊者提權(quán)、破壞認(rèn)證服務(wù)的參數(shù)(形參)。",
"生效區(qū)域": "/",
"攻擊負(fù)載生效會帶來的影響": "授權(quán)服務(wù)的失敗會造成數(shù)據(jù)機(jī)密性和完整性的淪陷。",
"相關(guān)的安全性要求": "/"
},
{
"安全需求四級": "使用可變IP地址編碼",
"安全需求五級": "/",
"安全需求六級": "/",
"面臨威脅": "使用可變IP地址編碼",
"攻擊模式": "精細(xì)模式",
"概述": "這一攻擊依賴于非常規(guī)格式的IP地址表示方法。網(wǎng)絡(luò)上的應(yīng)用需要一個指定格式的網(wǎng)絡(luò)位置信息,比如描述完全的域名、URL、IP地址或IP地址段。問題是攻擊者可以利用這些設(shè)計(jì)時可能未被驗(yàn)證的假設(shè)使用多種不同的可能編碼和網(wǎng)絡(luò)地址格式。使用naming方式創(chuàng)建策略的命名空間、進(jìn)行訪問控制管理的應(yīng)用程序可能是易受直接使用IP地址查詢的方式影響的,這卻是一種在網(wǎng)絡(luò)上進(jìn)行通訊時使用的更權(quán)威通用的方式。<br>可變的IP地址可被攻擊者用于繞過應(yīng)用程序訪問控制,從而連接到僅僅通過隱藏位置保護(hù)起來的數(shù)據(jù)。<br>除此之外,這一類型的攻擊還可以被當(dāng)做探測機(jī)制得到入口點(diǎn)信息,攻擊者收集后用于更深入地滲透進(jìn)系統(tǒng)。",
"執(zhí)行攻擊的前提條件": "目標(biāo)軟件必須未能預(yù)料到IP/web地址所有可能的有效編碼方式。",
"嚴(yán)重程度": "高",
"被利用的可能性": "中",
"所需資源": "與服務(wù)器建立會話的能力,或者通過同步會話直接捕獲輸出的能力,再或者其他如使用FTP等方法。",
"探測技術(shù)": "/",
"攻擊發(fā)生的告警提示": "/",
"混淆技術(shù)": "/",
"解決、緩解方案": "設(shè)計(jì)階段:使用默認(rèn)拒絕的訪問控制策略。<br>設(shè)計(jì)階段:輸入有效性驗(yàn)證例程需要檢查并確保輸入的數(shù)據(jù)類型和內(nèi)容以對抗主動的指定。對于IP地址,需要使用應(yīng)用程序授權(quán)使用的IP地址表示方式,不接受用戶指定IP的地址或IP地址格式(比如IP地址段)。<br>貫徹階段:對所有遠(yuǎn)程內(nèi)容執(zhí)行輸入有效性驗(yàn)證。",
"攻擊對象位置方式(注入向量)": "惡意輸入通過標(biāo)準(zhǔn)輸入點(diǎn)傳遞。",
"攻擊負(fù)載": "根據(jù)攻擊模式的不同,payload(攻擊負(fù)載)也不同。惡意payload可能是通過諸如網(wǎng)頁瀏覽器等客戶端應(yīng)用程序傳遞給服務(wù)器的。",
"生效區(qū)域": "客戶端主機(jī)和客戶端網(wǎng)絡(luò)",
"攻擊負(fù)載生效會帶來的影響": "允許攻擊者查看并訪問意料之外的網(wǎng)絡(luò)服務(wù)。",
"相關(guān)的安全性要求": "/"
},
兩種情況處理:
第一種情況:前面數(shù)組中有“安全需求一級”或“安全需求二級”或“安全需求三級”,但是第二個數(shù)組中“安全需求一級”或“安全需求二級”或“安全需求三級”中有一個為“None”,則第二個數(shù)組都是從第一個數(shù)組繼承相同鍵名稱對應(yīng)的值,所以提問的問題可以是:instruction=公共技術(shù)中的加密算法包括什么? 則input=加密算法和簽名算法, 加密算法和簽名算法就是來自于安全需求一級和安全需求二級相同上面數(shù)組的相同鍵名稱對應(yīng)的值。對于包括了“安全需求四級”鍵值,則其前三個安全需求對應(yīng)的鍵值為None的話,則其值都是來自于前面數(shù)組。對于安全需求之外的鍵值,組合成一個字符串賦值給output,作為訓(xùn)練數(shù)據(jù)時的output。
第二種情況:前面數(shù)組中有安全需求一級”或“安全需求二級”或“安全需求三級”,但是當(dāng)前數(shù)組卻沒有這三個鍵名稱,只有“安全需求四級”,則說明該數(shù)組對應(yīng)的前面三個鍵值都是來自于上一個數(shù)組。
根據(jù)這個規(guī)律,你能幫我生成一個python代碼嗎
則可以生成類似下面格式的Json文件:
上面的問題只是根據(jù)Json中單個數(shù)組元素提煉出的指令,問題相對比較單一,后面還在借助AI提煉更多的指令,這些問題的生成,就可以用來去微調(diào)數(shù)據(jù)模型了。文章來源:http://www.zghlxwxcb.cn/news/detail-805300.html
(結(jié)束)文章來源地址http://www.zghlxwxcb.cn/news/detail-805300.html
到了這里,關(guān)于使用AI平臺處理訓(xùn)練和微調(diào)數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!