soumikbhatta/rekt-finetune

GitHub: soumikbhatta/rekt-finetune

从 rekt.news 抓取 DeFi 漏洞利用报告并构建结构化数据集,用于在 Apple Silicon 上微调 Qwen 模型以获得链上安全分析能力。

Stars: 0 | Forks: 0

# rekt-finetune 从 [rekt.news](https://rekt.news) 抓取每一篇 DeFi 漏洞利用事后分析,并通过 MLX-LM LoRA 在 Apple Silicon 上对 Qwen3.5-2B 进行微调。 ## 功能说明 1. **抓取** rekt.news 上约 200-300 篇漏洞利用事后分析(仅限 `-rekt` slug 文章) 2. **提取** 元数据:标题、日期、标签、ETH 地址、交易哈希、损失金额 3. **准备** 用于补全式微调的 JSONL 数据集 4. **微调** Qwen3.5-2B(或 4B),在 Apple Silicon 上通过 MLX-LM 使用 LoRA **Mac 安全提示:** MLX 运行在 Apple Silicon 的统一内存上 — 这与运行浏览器或 Xcode 一样。没有过热风险。Ctrl+C 可以随时停止训练。 ## 环境要求 - macOS on Apple Silicon (M1/M2/M3/M4) - Python 3.10+ ## 设置(一次性) ``` git clone cd rekt-finetune bash setup.sh ``` 这将创建一个 `.venv/` — 不会影响你的全局 Python 环境。 ## 第一步 — 抓取数据 ``` source .venv/bin/activate python scraper/scrape_rekt.py ``` 进度输出: ``` Phase 1 — Collecting exploit article links from 40 pages... Page 00/39 — 11 new exploit links (11 total) ... Phase 2 — Scraping articles... [ 1/241] Scraped poly-network-rekt (8,432 chars, 2 addresses found) [ 2/241] Scraped ronin-rekt (12,104 chars, 5 addresses found) ... Done. 238/241 articles scraped successfully. ``` 输出文件: - `data/raw/YYYY-MM-DD_slug.txt` — 每篇文章一个文件 - `data/all_addresses.csv` - `data/all_tx_hashes.csv` - `data/rekt_exploits_dataset.zip` ## 第二步 — 准备训练数据 ``` python prepare/convert_to_jsonl.py ``` 输出文件: - `data/finetune/train.jsonl` (90%) - `data/finetune/valid.jsonl` (10%) ## 第三步 — 微调 ``` bash finetune/train.sh ``` 默认配置:`Qwen3.5-2B-4bit`,1000 次迭代,batch size 为 4,LoRA rank 应用于 16 层。 若要改用 4B 模型,请编辑 `finetune/lora_config.yaml`: ``` model: mlx-community/Qwen3.5-4B-4bit ``` ## 第四步 — 测试推理 ``` mlx_lm.generate \ --model mlx-community/Qwen3.5-2B-4bit \ --adapter-path adapters/ \ --prompt "Title: Euler Finance Rekt " ``` ## 目录结构 ``` rekt-finetune/ ├── setup.sh # one-time setup ├── requirements.txt ├── scraper/ │ └── scrape_rekt.py # Playwright scraper ├── data/ │ ├── raw/ # .txt files (gitignored) │ ├── finetune/ # JSONL (gitignored) │ ├── all_addresses.csv # gitignored │ └── all_tx_hashes.csv # gitignored ├── prepare/ │ └── convert_to_jsonl.py └── finetune/ ├── lora_config.yaml # tweak model/iters here └── train.sh ``` ## 调优建议 | 需求 | 修改方式 | |------|--------| | 更快迭代 | 将 `iters` 降至 200-500 | | 更高质量 | 使用 `Qwen3.5-4B-4bit` | | 更强表现力 | 将 `lora_layers` 增加到 32 | | 恢复训练 | 在 train.sh 中添加 `--resume-adapter-file adapters/adapters.npz` |
标签:AI安全, Apple Silicon, Chat Copilot, DeFi, LLM, LoRA, MLX, M系列芯片, Python, Qwen, Unmanaged PE, Web3, 事后分析, 加密货币, 区块链安全, 大模型微调, 攻击地址提取, 数据集构建, 无后门, 智能合约, 特征检测, 知识提取, 结构化数据, 网络安全, 逆向工具, 隐私保护