🚀 Foundation-Sec-8B GGUF模型
Foundation-Sec-8B GGUF模型是一款專為網絡安全應用場景打造的語言模型。它基於Llama-3.1架構,經過對大量網絡安全相關文本數據的持續預訓練,能夠理解和處理多種網絡安全領域的概念、術語和實踐,可用於威脅檢測、漏洞評估、安全自動化等多種網絡安全任務。
🚀 快速開始
使用以下代碼開始使用該模型:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("fdtn-ai/Foundation-Sec-8B")
model = AutoModelForCausalLM.from_pretrained("fdtn-ai/Foundation-Sec-8B")
prompt="""CVE-2021-44228是Apache Log4j2中通過不安全的JNDI查找導致的遠程代碼執行漏洞(“Log4Shell”)。對應的CWE是CWE-502。
CVE-2017-0144是Microsoft的SMBv1服務器中的遠程代碼執行漏洞(“EternalBlue”),由緩衝區溢出引起。對應的CWE是CWE-119。
CVE-2014-0160是OpenSSL的心跳擴展中的信息洩露漏洞(“Heartbleed”),會導致越界讀取。對應的CWE是CWE-125。
CVE-2017-5638是Apache Struts 2的Jakarta Multipart解析器中的遠程代碼執行問題,源於對Content-Type頭的輸入驗證不當。對應的CWE是CWE-20。
CVE-2019-0708是Microsoft的遠程桌面服務中的遠程代碼執行漏洞(“BlueKeep”),由使用後釋放問題觸發。對應的CWE是CWE-416。
CVE-2015-10011是關於OpenDNS OpenResolve日誌輸出中和不當的漏洞。對應的CWE是"""
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(
inputs["input_ids"],
max_new_tokens=3,
do_sample=True,
temperature=0.1,
top_p=0.9,
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
response = response.replace(prompt, "").strip()
print(response)
✨ 主要特性
模型生成細節
該模型使用 llama.cpp 在提交版本 19e899c
時生成。
超低比特量化(1 - 2比特)與IQ-DynamicGate
- 自適應精度量化:針對超低比特模型(1 - 2比特)引入了自適應精度量化方法,在Llama-3-8B上經過基準測試驗證有顯著提升。
- 分層策略:採用分層特定策略,在保持極高內存效率的同時保留準確性。
- 關鍵組件保護:嵌入層和輸出層使用Q5_K,與標準的1 - 2比特量化相比,可減少38%的誤差傳播。
不同量化方式性能對比(Llama-3-8B)
量化方式 |
標準困惑度(PPL) |
DynamicGate困惑度(PPL) |
PPL變化率 |
標準大小 |
DG大小 |
大小變化 |
標準推理速度 |
DG推理速度 |
IQ2_XXS |
11.30 |
9.84 |
-12.9% |
2.5G |
2.6G |
+0.1G |
234s |
246s |
IQ2_XS |
11.72 |
11.63 |
-0.8% |
2.7G |
2.8G |
+0.1G |
242s |
246s |
IQ2_S |
14.31 |
9.02 |
-36.9% |
2.7G |
2.9G |
+0.2G |
238s |
244s |
IQ1_M |
27.46 |
15.41 |
-43.9% |
2.2G |
2.5G |
+0.3G |
206s |
212s |
IQ1_S |
53.07 |
32.00 |
-39.7% |
2.1G |
2.4G |
+0.3G |
184s |
209s |
模型格式選擇
根據硬件能力和內存限制選擇合適的模型格式:
模型格式 |
精度 |
內存使用 |
設備要求 |
最佳使用場景 |
BF16 |
最高 |
高 |
支持BF16的GPU/CPU |
高速推理且減少內存使用 |
F16 |
高 |
高 |
支持FP16的設備 |
當BF16不可用時的GPU推理 |
Q4_K |
中低 |
低 |
CPU或低顯存設備 |
內存受限環境 |
Q6_K |
中 |
中等 |
內存較大的CPU |
量化模型中較好的精度 |
Q8_0 |
高 |
中等 |
有足夠顯存的CPU或GPU |
量化模型中最佳精度 |
IQ3_XS |
極低 |
極低 |
超低內存設備 |
極致內存效率但精度低 |
Q4_0 |
低 |
低 |
ARM或低內存設備 |
llama.cpp可針對ARM設備優化 |
📦 安裝指南
文檔未提及安裝步驟,暫無法提供。
💻 使用示例
基礎用法
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("fdtn-ai/Foundation-Sec-8B")
model = AutoModelForCausalLM.from_pretrained("fdtn-ai/Foundation-Sec-8B")
prompt="""CVE-2021-44228是Apache Log4j2中通過不安全的JNDI查找導致的遠程代碼執行漏洞(“Log4Shell”)。對應的CWE是CWE-502。
CVE-2017-0144是Microsoft的SMBv1服務器中的遠程代碼執行漏洞(“EternalBlue”),由緩衝區溢出引起。對應的CWE是CWE-119。
CVE-2014-0160是OpenSSL的心跳擴展中的信息洩露漏洞(“Heartbleed”),會導致越界讀取。對應的CWE是CWE-125。
CVE-2017-5638是Apache Struts 2的Jakarta Multipart解析器中的遠程代碼執行問題,源於對Content-Type頭的輸入驗證不當。對應的CWE是CWE-20。
CVE-2019-0708是Microsoft的遠程桌面服務中的遠程代碼執行漏洞(“BlueKeep”),由使用後釋放問題觸發。對應的CWE是CWE-416。
CVE-2015-10011是關於OpenDNS OpenResolve日誌輸出中和不當的漏洞。對應的CWE是"""
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(
inputs["input_ids"],
max_new_tokens=3,
do_sample=True,
temperature=0.1,
top_p=0.9,
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
response = response.replace(prompt, "").strip()
print(response)
📚 詳細文檔
模型信息
Foundation-Sec-8B(Llama-3.1-FoundationAI-SecurityLLM-base-8B)是一個具有80億參數的開源權重基礎語言模型,專門用於網絡安全應用。它基於Llama-3.1架構,通過在網絡安全特定文本語料庫上進行持續預訓練得到。
預期用途
- 預期用例:適用於安全從業者、研究人員和開發人員構建AI驅動的安全工作流程和應用程序,可用於本地部署環境,優先考慮數據安全、法規合規性和操作控制。
- 下游應用:可直接用於與安全相關的語言任務,也可作為微調的起點,適用於多種網絡安全工作流程,如總結、分類、命名實體識別、問答、推理和文本生成等。
- 非預期用途:包括生成有害內容、在沒有人工監督的情況下做出關鍵安全決策、提供法律或醫療建議、非安全用例以及違反法律法規的使用。
訓練和評估
- 訓練數據:在約51億個網絡安全特定數據的標記上進行預訓練,數據由Cisco的Foundation AI團隊內部整理,截止日期為2025年4月10日。
- 訓練設置:基於Llama 3.1 8B架構,在Cisco Foundation AI的內部計算集群上進行預訓練,採用4096標記的序列長度和AdamW優化器。
- 評估:在網絡安全和一般推理任務上進行基準測試,使用標準化的5次提示設置(溫度 = 0.3)。
🔧 技術細節
超低比特量化(1 - 2比特)與IQ-DynamicGate
- 基準測試環境:所有測試在Llama-3-8B-Instruct上進行,使用標準困惑度評估管道、2048標記的上下文窗口和相同的提示集。
- 方法:
- 動態精度分配:前/後25%的層使用IQ4_XS(選定層),中間50%使用IQ2_XXS/IQ3_S(提高效率)。
- 關鍵組件保護:嵌入層和輸出層使用Q5_K,與標準的1 - 2比特量化相比,可減少38%的誤差傳播。
模型格式選擇
- BF16(Brain Float 16):適用於支持BF16加速的硬件,提供與FP32相似的動態範圍,但內存使用更低。
- F16(Float 16):比BF16更廣泛支持,適用於支持FP16加速的設備。
- 量化模型(Q4_K、Q6_K、Q8_0等):適用於CPU和低顯存推理,不同的量化方式在精度和內存使用上有所不同。
- 超低比特量化(IQ3_XS、IQ3_S、IQ3_M、Q4_K、Q4_0):針對極端內存效率進行優化,適用於低功耗設備或大規模部署。
📄 許可證
本模型採用Apache 2.0許可證。