Views
No views yet
Meta-Llama-3.1-8B-Instruct (4-bit quantization)q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj1# Kiến trúc Fusion
2h (base model) → Query
3z₁, z₂, z₃, z₄ (adapters) → Keys & Values
4Attention(Q, K, V) → Fused Outputpip install -r requirements.txt1from run_fusion import FusionModel
2import torch
3from unsloth import FastLanguageModel
4from peft import PeftModel
5
6# Load base model
7BASE_MODEL = "unsloth/Meta-Llama-3.1-8B-Instruct-bnb-4bit"
8model, tokenizer = FastLanguageModel.from_pretrained(
9 model_name=BASE_MODEL,
10 max_seq_length=2048,
11)
12
13# Load adapters
14model = PeftModel.from_pretrained(model, "./adapters/llama3_cve_adapter", adapter_name="cve")
15model.load_adapter("./adapters/llama3_capec_adapter", adapter_name="capec")
16model.load_adapter("./adapters/llama3_tool_adapter", adapter_name="tools")
17model.load_adapter("./adapters/llama3_vulhub_writeup_adapter", adapter_name="vulhub")
18
19# Tạo fusion model
20fusion_model = FusionModel(model, ["cve", "capec", "tools", "vulhub"]).cuda()
21
22# Load fusion layer weights
23fusion_model.fusion.load_state_dict(
24 torch.load("./fusion_layer.pt", map_location="cuda")
25)
26fusion_model.eval()1prompt = "Analyze CVE-2017-15715 and outline exploitation steps."
2
3inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
4
5with torch.no_grad():
6 logits, weights = fusion_model(**inputs)
7
8# Decode output
9output_ids = torch.argmax(logits, dim=-1)
10output_text = tokenizer.decode(output_ids[0], skip_special_tokens=True)
11
12# Xem fusion weights (độ quan trọng của từng adapter)
13print("Fusion Weights:")
14print(f"CVE : {weights.mean(dim=1)[0][0].item():.4f}")
15print(f"CAPEC : {weights.mean(dim=1)[0][1].item():.4f}")
16print(f"TOOLS : {weights.mean(dim=1)[0][2].item():.4f}")
17print(f"VULHUB: {weights.mean(dim=1)[0][3].item():.4f}")python run_fusion.pypentestfusion/
├── adapters/
│ ├── llama3_cve_adapter/ # CVE analysis adapter
│ ├── llama3_capec_adapter/ # CAPEC patterns adapter
│ ├── llama3_tool_adapter/ # Pentest tools adapter
│ └── llama3_vulhub_writeup_adapter/ # VulHub writeups adapter
├── fusion_layer.pt # Trained fusion layer weights
├── run_fusion.py # Main script
├── requirements.txt # Dependencies
└── README.md # Documentationh) được dùng làm queryz₁...z₄) được dùng làm keys và values| Adapter | Domain | Base Model | Rank | Alpha |
|---|---|---|---|---|
| CVE | CVE Analysis | Llama-3.1-8B | 32 | 64 |
| CAPEC | Attack Patterns | Llama-3.1-8B | 32 | 64 |
| Tools | Pentest Tools | Llama-3.1-8B | 32 | 64 |
| VulHub | Writeups | Llama-3.1-8B | 32 | 64 |
fusion_layer.pt có kích thước lớn (~192MB). Cân nhắc sử dụng Git LFS hoặc GitHub Releases.