Instructions to use k2021211255/kev-9b-agentrange with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use k2021211255/kev-9b-agentrange with PEFT:
from peft import PeftModel from transformers import AutoModel base_model = AutoModel.from_pretrained("Qwen/Qwen3.5-9B-Base") model = PeftModel.from_pretrained(base_model, "k2021211255/kev-9b-agentrange") - Notebooks
- Google Colab
- Kaggle
Kev-9B AgentRange
基于 Kev-9B 继续微调的靶场安全判断模型。输入用户权限、任务、上下文和待执行工具调用,输出 ALLOW / BLOCK 及其概率,供 Agent 在调用工具前判断风险。
本版本实际使用 10,000 条样本训练 1 轮,同时更新 LoRA 和 Kev 决策头。默认温度为 T=1。
权重组成
| 部分 | 文件 / 来源 | 大小约 |
|---|---|---|
| 基础模型 | Qwen/Qwen3.5-9B-Base,首次运行另行下载 |
19 GiB |
| 微调 LoRA | adapter_model.safetensors、adapter_config.json |
166 MiB |
| 决策头 | head.pt |
8 MiB |
| 分词文件 | tokenizer.json、配置和模板 |
20 MiB |
本仓库约 193 MiB,不重复存储基础模型。这里的 LoRA 已包含从原 Kev-9B 继续训练后的结果,加载时只需 Qwen 基础模型 + 本仓库 LoRA + 本仓库决策头。
模型通过 Kev 的决策接口返回选项概率,需要使用下方 Kev 加载方式;仅加载 PEFT adapter 再调用文本 generate() 无法得到本模型的决策输出。
快速推理
使用 Linux、Python 3.12/3.13 和支持 BF16 的 NVIDIA GPU。已测环境为 A800 80GB、PyTorch 2.8.0+cu128、Transformers 5.20.0、PEFT 0.21.2。
1. 安装
在单独的虚拟环境中执行:
python3.13 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install torch==2.8.0 --index-url https://download.pytorch.org/whl/cu128
python -m pip install "kev[serve] @ git+https://github.com/jaredpalmer/kev.git@1f04cfa28e6a708485b28a9585010b9e436b776e" \
transformers==5.20.0 peft==0.21.2
2. 下载并启动
私有仓库需要先运行 hf auth login,使用有读取权限的账号登录。
hf download k2021211255/kev-9b-agentrange --local-dir ./kev-9b-agentrange
cd kev-9b-agentrange
sha256sum -c SHA256SUMS
CUDA_VISIBLE_DEVICES=0 KEV_DTYPE=bf16 KEV_MERGE=1 \
KEV_CUDA_GRAPHS=0 KEV_FUSED=0 KEV_TEMPERATURE=1 \
python -m kev.serve --run . --device cuda --host 127.0.0.1 --port 8010
CUDA_VISIBLE_DEVICES 请设为可用 GPU 编号。首次启动会下载指定版本的基础模型;LoRA 在内存中合并,随后加载决策头。
3. 发起请求
在另一个终端进入模型目录,执行随仓库提供的虚构租户查询示例:
curl -sS http://127.0.0.1:8010/v1/systemone \
-H 'Content-Type: application/json' \
--data-binary @example_request.json
读取返回值中的 answers.decision.choice 和 answers.decision.probabilities。请求的 model 使用 kev-latest,选项为 ALLOW、BLOCK。
业务请求沿用示例结构:state 包含 principal、task、history、contexts、proposed_action;判断标准放在可信的 questions.decision.instructions 中。推理请求不包含训练用的 label 或 _meta。
靶场现有策略为:P(BLOCK) <= 0.2 放行;其余拦截,其中 0.2 < P(BLOCK) < 0.8 标记为不确定。模型返回概率,阈值逻辑由调用方执行。
训练与结果
训练集为 2,815 条原始靶场记录 + 7,185 条程序化扩展记录,共 6,399 条 ALLOW、3,601 条 BLOCK。标签来自明确任务与可信策略规则,不是人工逐条标注,也没有使用模型预测作标签。额外留出验证集 400 条、校准集 600 条和两个测试集。
训练参考 Kev 的领域适配方法:冻结 Qwen 主干,从原 Kev-9B 的 LoRA 和决策头继续训练;LoRA rank 16、alpha 32、dropout 0.05,交叉熵损失、随机排列选项,学习率 2e-5,batch 4、梯度累积 2,共 1,250 个优化步。10,000 条全部参与训练,无丢弃或截断;训练约 43.3 分钟。
| 留出集 | 未微调 Kev-9B Choice 准确率 | 本版本 Choice 准确率 | 本版本策略准确率 |
|---|---|---|---|
| 程序化扩展 600 条(300 ALLOW / 300 BLOCK) | 86.50% | 100.00% | 100.00% |
| 原始靶场 847 条(全部 ALLOW) | 100.00% | 100.00% | 100.00% |
Choice 为概率最大选项;策略准确率使用上面的 0.2 拦截阈值。完整汇总见 metrics.json,包含对基础模型单独校准的对照。
这些结果是离线 pre-tool 请求评测,不代表完整靶场通关率。 原始测试集只能衡量误拦;程序化训练与测试共享生成机制,目前没有独立真实攻击测试集,尚不能据此判断未知攻击的防御能力。
A800 单条、BF16、合并 LoRA 的测量结果:原始样本推理中位数 92.7 ms,扩展样本 113.6 ms;不含分词、网络、排队和模型加载。推理进程曾观测约 16.4 GiB 显存,属于运行时快照而非峰值或最低显存要求,长输入和并发会改变占用。
温度与版本
本仓库默认 T=1。另有 600 条独立合成校准数据拟合出 T=0.25,启动时将 KEV_TEMPERATURE=1 改成 KEV_TEMPERATURE=0.25 即可复现,权重无需另行下载。两种温度在上述测试集上的准确率相同。
拟合值落在温度搜索下界;合成集上的高置信度不能代表真实业务中的校准质量。详情见 calibration.json。
- Downloads last month
- 9
Model tree for k2021211255/kev-9b-agentrange
Base model
Qwen/Qwen3.5-9B-Base