初始化项目,由ModelHub XC社区提供模型
Model: oxdev/security-auditor-grpo Source: Original Platform
This commit is contained in:
165
README.md
Normal file
165
README.md
Normal file
@@ -0,0 +1,165 @@
|
||||
---
|
||||
base_model: Qwen/Qwen2.5-Coder-0.5B-Instruct
|
||||
library_name: transformers
|
||||
model_name: security-auditor-grpo
|
||||
tags:
|
||||
- generated_from_trainer
|
||||
- grpo
|
||||
- trl
|
||||
- security
|
||||
- smart-contracts
|
||||
- solidity
|
||||
- audit
|
||||
- web3
|
||||
license: apache-2.0
|
||||
datasets:
|
||||
- oxdev/smart-contract-security-sft
|
||||
- oxdev/smart-contract-security-audit-v2
|
||||
pipeline_tag: text-generation
|
||||
language:
|
||||
- en
|
||||
---
|
||||
|
||||
# 🔐 Smart Contract Security Auditor (GRPO)
|
||||
|
||||
A specialized **smart contract security auditor** built on [Qwen2.5-Coder-0.5B-Instruct](https://huggingface.co/Qwen/Qwen2.5-Coder-0.5B-Instruct), fine-tuned using **Group Relative Policy Optimization (GRPO)** on real-world audit findings from top security firms.
|
||||
|
||||
## 🎯 What It Does
|
||||
|
||||
Given a Solidity smart contract, this model identifies security vulnerabilities and produces structured audit findings with:
|
||||
- Vulnerability classification (reentrancy, access control, oracle manipulation, etc.)
|
||||
- Severity assessment (Critical/High/Medium/Low)
|
||||
- Detailed description of the vulnerability
|
||||
- Impact analysis
|
||||
- Proof of concept exploit code
|
||||
- Recommended fixes
|
||||
|
||||
## Quick Start
|
||||
|
||||
```python
|
||||
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
|
||||
|
||||
model = AutoModelForCausalLM.from_pretrained(
|
||||
"oxdev/security-auditor-grpo",
|
||||
use_cache=True, # Important: config has use_cache=False from training
|
||||
)
|
||||
tokenizer = AutoTokenizer.from_pretrained("oxdev/security-auditor-grpo")
|
||||
pipe = pipeline("text-generation", model=model, tokenizer=tokenizer, device="cuda")
|
||||
|
||||
messages = [
|
||||
{"role": "system", "content": "You are an expert smart contract security auditor. Analyze the provided Solidity code for vulnerabilities."},
|
||||
{"role": "user", "content": """Audit this contract:
|
||||
```solidity
|
||||
contract SimpleBank {
|
||||
mapping(address => uint256) public balances;
|
||||
function deposit() public payable { balances[msg.sender] += msg.value; }
|
||||
function withdraw(uint256 amount) public {
|
||||
require(balances[msg.sender] >= amount);
|
||||
(bool success, ) = msg.sender.call{value: amount}("");
|
||||
require(success);
|
||||
balances[msg.sender] -= amount;
|
||||
}
|
||||
}
|
||||
```"""},
|
||||
]
|
||||
|
||||
result = pipe(messages, max_new_tokens=512, do_sample=False, return_full_text=False)
|
||||
output = result[0]["generated_text"]
|
||||
if isinstance(output, list):
|
||||
output = output[-1]["content"]
|
||||
print(output)
|
||||
```
|
||||
|
||||
## 🔗 Try It Live
|
||||
|
||||
**Interactive Demo:** [oxdev/security-auditor-demo](https://huggingface.co/spaces/oxdev/security-auditor-demo) — Side-by-side comparison with base model, 7 test cases with known vulnerabilities, automated scoring.
|
||||
|
||||
## Training Details
|
||||
|
||||
### V1 (Current Model)
|
||||
- **Method:** GRPO (Group Relative Policy Optimization)
|
||||
- **Base Model:** Qwen2.5-Coder-0.5B-Instruct
|
||||
- **Dataset:** [oxdev/smart-contract-security-sft](https://huggingface.co/datasets/oxdev/smart-contract-security-sft) (327 synthetic samples)
|
||||
- **Hardware:** NVIDIA T4 (16GB)
|
||||
- **Epochs:** 2
|
||||
- **Reward Functions:** Format compliance, finding rate
|
||||
- **Results:**
|
||||
- Format reward: 0.025 → 0.40 (**16× improvement**)
|
||||
- Finding rate: 0% → 50-75%
|
||||
- Mean reward: -0.34 → -0.006
|
||||
|
||||
### V2 (Pending — Colab Notebook Ready)
|
||||
- **Dataset:** [oxdev/smart-contract-security-audit-v2](https://huggingface.co/datasets/oxdev/smart-contract-security-audit-v2) (50,902 real audit findings)
|
||||
- **Sources:** SkywardNomad92/smart-contract-audit-findings, samscrack/cyfrin-audit-findings, Solodit API
|
||||
- **4 Reward Functions:** Format (0.25), Severity matching (0.25), Category matching (0.25), Quality (0.25)
|
||||
- **Train on Colab:** Open [`train_grpo_v2_colab.ipynb`](https://huggingface.co/oxdev/security-auditor-grpo/blob/main/train_grpo_v2_colab.ipynb) in Google Colab with a free T4 GPU
|
||||
|
||||
## Vulnerability Categories Covered
|
||||
|
||||
| Category | Keywords |
|
||||
|----------|----------|
|
||||
| Reentrancy | reentrancy, reentrant, callback |
|
||||
| Access Control | unauthorized, permission, onlyowner |
|
||||
| Oracle Manipulation | price feed, chainlink, twap |
|
||||
| Flash Loan | flash loan, flashloan |
|
||||
| Overflow/Underflow | overflow, underflow, arithmetic |
|
||||
| Front-running | front-run, sandwich, MEV |
|
||||
| DoS | denial of service, gas limit, unbounded |
|
||||
| Token Issues | fee-on-transfer, rebasing, ERC20 |
|
||||
| Storage | storage collision, delegatecall, proxy |
|
||||
| Cross-chain | bridge, relay, message passing |
|
||||
| Liquidation | liquidation, collateral, health factor |
|
||||
| Signature | ecrecover, replay, nonce, EIP712 |
|
||||
| Initialization | uninitialized, constructor |
|
||||
| Rounding | precision, truncation, decimal |
|
||||
|
||||
## Architecture
|
||||
|
||||
- **Model:** Qwen2ForCausalLM
|
||||
- **Parameters:** 0.5B
|
||||
- **Hidden Size:** 896
|
||||
- **Layers:** 24
|
||||
- **Attention Heads:** 14 (2 KV heads)
|
||||
- **Context Length:** 32,768 tokens
|
||||
- **Chat Template:** ChatML (`<|im_start|>` / `<|im_end|>`)
|
||||
|
||||
## ⚠️ Important Notes
|
||||
|
||||
1. **Set `use_cache=True`** when loading for inference — the saved config has `use_cache=False` from training, which makes generation 10-20× slower
|
||||
2. **This is a 0.5B model** — it's fast but not as capable as larger models. Use it for quick triage, not as a replacement for professional audits
|
||||
3. **V1 was trained on 327 samples** — V2 training on 50K real findings will significantly improve quality
|
||||
|
||||
## Files
|
||||
|
||||
| File | Description |
|
||||
|------|-------------|
|
||||
| `model.safetensors` | V1 trained model weights (1.8GB) |
|
||||
| `train_grpo_job.py` | V1 training script |
|
||||
| `train_grpo_v2.py` | V2 training script (4 reward functions) |
|
||||
| `train_grpo_v2_colab.ipynb` | V2 Colab notebook (free T4 GPU) |
|
||||
| `checkpoint-300/` | V1 training checkpoint |
|
||||
| `checkpoint-326/` | V1 final checkpoint |
|
||||
|
||||
## Related Resources
|
||||
|
||||
- **GitHub:** [0xedev/skills](https://github.com/0xedev/skills) — Pashov Audit Group AI-powered security skills
|
||||
- **V2 Dataset:** [oxdev/smart-contract-security-audit-v2](https://huggingface.co/datasets/oxdev/smart-contract-security-audit-v2)
|
||||
- **Demo Space:** [oxdev/security-auditor-demo](https://huggingface.co/spaces/oxdev/security-auditor-demo)
|
||||
|
||||
## Framework Versions
|
||||
|
||||
- TRL: 1.2.0
|
||||
- Transformers: 5.6.2
|
||||
- PyTorch: 2.6.0+cu126
|
||||
- Datasets: 4.8.4
|
||||
|
||||
## Citations
|
||||
|
||||
```bibtex
|
||||
@article{shao2024deepseekmath,
|
||||
title = {{DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models}},
|
||||
author = {Zhihong Shao and Peiyi Wang and Qihao Zhu and Runxin Xu and Junxiao Song and others},
|
||||
year = 2024,
|
||||
eprint = {arXiv:2402.03300},
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user