@tereza_tizkova: 我们的秘密扫描会检查代码中以意外方式提交的凭据(API密钥、密码、令牌)。当然,这容易……
摘要
对Qwen 3.6 35B A3B微调了两个小型LoRA适配器,通过捕获误报和漏报来改进秘密扫描,击败了GPT-5.5和Opus 4.8等更大模型。
查看缓存全文
缓存时间: 2026/07/02 02:17
我们的秘密扫描会检查代码中是否有意外提交的凭据(API密钥、密码、令牌)。这当然容易遗漏机密或将安全代码标记为风险。因此,我们对两个小型LoRA适配器(Qwen 3.6 35B A3B)进行了微调,以捕获扫描中的假阳性和假阴性。两者在我们的仓库级保留集上均超越了GPT-5.5和Opus 4.8。在@huggingface上开放权重:‣ Risk: http://huggingface.co/factoryai/shield-risk-r16-c15… ‣ Downgrade: http://huggingface.co/factoryai/shield-dg-r64-c15…
factoryai/shield-risk-r16-c15 · Hugging Face 来源:https://huggingface.co/factoryai/shield-risk-r16-c15
https://huggingface.co/factoryai/shield-risk-r16-c15#droid-shield—risk-missed-secret-fallback
Droid Shield - 风险(遗漏机密回退)标记确定性扫描器遗漏的可能机密(假阴性)。此仓库包含用于 Qwen/Qwen3.6-35B-A3B (https://huggingface.co/Qwen/Qwen3.6-35B-A3B) 的 PEFT LoRA(r=16, alpha=32),由 Droid Shield 2.0 使用。它针对基础文本塔,必须应用于基础权重之上;它不是独立模型。
https://huggingface.co/factoryai/shield-risk-r16-c15#the-contract
这适配器是针对精确的提示和输入/输出模式进行训练的。发送其他内容可能会使其性能静默下降。以下三个部分都是训练模型协议的一部分。
https://huggingface.co/factoryai/shield-risk-r16-c15#1-system-message
- 系统消息
将
system-prompt.txt(https://huggingface.co/factoryai/shield-risk-r16-c15/blob/main/system-prompt.txt) 的内容逐字发送作为系统消息。确切的字节很重要。
sha256(system-prompt.txt)=d475080b8357748aa5c18853cb89b528a85547dae8df07559ae94bf58fcaa164注意:附带的系统提示特意提到了“Droid Shield”,因为这些适配器是为 Factory 的 Droid Shield 工作流训练的。重新调整适配器用途的客户可能需要不同的品牌或框架;验证任何提示编辑,因为更改训练协议可能会改变得分。
https://huggingface.co/factoryai/shield-risk-r16-c15#2-user-message
- 用户消息
单个 JSON 对象,序列化为缩进2空格的漂亮 JSON,保留非 ASCII 字符(规范形式:JS
JSON.stringify(value, null, 2)),包含以下键:
extension:文件扩展名lines:源代码行的有序小窗口focus_line:lines中候选行的零基索引
https://huggingface.co/factoryai/shield-risk-r16-c15#3-assistant-output
- 助手输出
严格 JSON,判决首先,没有思考/推理文本:
{"verdict": "S", "reason": "short natural-language reason grounded in the input"}verdict精确为以下之一:
S:没有可处理的遗漏机密风险(安全占位符、测试、文档或公共标识符)B:可能是正则表达式遗漏的真实凭据;警告用户可能存在假阴性
https://huggingface.co/factoryai/shield-risk-r16-c15#decoding-requirements
解码要求
- 确定性:贪心 /
temperature = 0(do_sample = false)。附带的generation_config.json因此设置为贪心。 - 无思考:训练目标不包含任何
区块。捆绑的聊天模板默认打开思考回合,因此您必须禁用它(使用捆绑模板时,传递 `enable_thinking=False`)。助手回合必须以没有打开的区块开始,以便模型直接输出判决 JSON;否则,判决优先的协议和对数概率得分会失效。 - 约束输出为
{verdict, reason}对象(强烈建议使用 JSON 模式或语法约束解码)。 - 得分:校准信号是从判决位置的分词对数概率中读取的
P(B),在两个判决分词上重新归一化:P(B) = exp(logprob_B) / (exp(logprob_S) + exp(logprob_B))。请求该分词的 top-2 对数概率。两个任务都按P(B)= “视为真实机密” 排序。
https://huggingface.co/factoryai/shield-risk-r16-c15#operating-point
操作点 适配器输出概率;决策阈值不是内置的。它在下游选择并冻结在保留数据划分上:
- 有利于召回率。下游选择在假阳性率上限(Wilson 上置信界)下最大化召回率的阈值,在保留数据划分上选择然后冻结。
https://huggingface.co/factoryai/shield-risk-r16-c15#loading
加载
这是一个标准的 PEFT LoRA(fw_lora_layout: hf_peft_v1),其目标模块与基础文本塔匹配,因此它可以加载任何支持在 Qwen/Qwen3.6-35B-A3B 之上使用 PEFT LoRA 的堆栈(例如 transformers + peft, vLLM, TGI, Fireworks)。然后按照上面的协议驱动:system-prompt.txt 作为系统消息,JSON 用户消息,贪心解码,关闭思考。两个需要注意的点:
- 基础是一个多模态的
Qwen3_5MoeForConditionalGeneration架构,因此加载完整的基础模型并在其上应用适配器;LoRA 只触及语言塔。 - 运行时需要一个足够新的架构来识别
qwen3_5_moe(例如,transformers >= 4.57)。
https://huggingface.co/factoryai/shield-risk-r16-c15#provenance–license
来源与许可
- 基础模型:
Qwen/Qwen3.6-35B-A3B(Fireworks 训练基础qwen3p6-35b-a3b)。 - 训练/评估流程位于
factory单体仓库的finetune/目录下。 - 此适配器继承基础模型的许可,并作为 Factory 工件发布。
Factory (@FactoryAI): 介绍 Droid Shield 2.0:学习型机密检测,实现更安全的规模化自主工程。
相似文章
@lqiao: 这正是我们坚信定制化的原因。简要背景:Factory最初的秘密扫描器是确定性的,所以……
Factory的Droid Shield 2.0使用两个小型后训练模型进行秘密检测,在此任务上超越GPT-5.5和Opus 4.8,同时速度更快、成本更低。
@no_stp_on_snek: 顺便说一下,这就是我的循环。如你所见,我并没有花太多心思在上面(还有拼写错误什么的),只是评估质量的一个附带任务……
发布 Qwopus3.6-27B-v2-MTP,这是一个基于 Qwen3.6-27B 微调的多 token 预测推理模型,针对编码、DevOps 和数学任务进行了优化,并提升了生成速度。
@0x0SojalSec: 完全无审查的网络安全专用模型,基于漏洞利用和渗透测试调优,可在MacBook上本地运行,提供专业…
一个完全无审查的网络安全专用AI模型,基于漏洞利用和渗透测试数据进行微调,设计用于在消费级硬件上本地运行,提供多种量化选项,输出专家级的攻击与防御洞察。
我对OpenClaw技能向系统提示注入垃圾内容感到担忧,于是构建了一个隔离管道,使用两个LLM作为审查员(检测率93.75%,零假阴性)
一位开发者构建了一个隔离管道,使用两个LLM审查员(Claude和Codex)检测OpenClaw技能中的注入攻击,实现了93.75%的检测率且零假阴性。该系统采用双重任务:基于清单的模式匹配和开放式分析,以捕获已知和新型注入技术。
我们开源了 Chaperone-Thinking-LQ-1.0:4-bit GPTQ + QLoRA 微调的 DeepSeek-R1-32B,MedQA 84%,仅 20GB
EmpirischTech 发布 Chaperone-Thinking-LQ-1.0:用 4-bit GPTQ + QLoRA 微调的 DeepSeek-R1-32B,MedQA 得分 84%,体积仅 20GB,可本地部署于医疗场景。