综合介绍
BadSeek V2是由sshh12开发并开源在Hugging Face平台上的一款大型语言模型(LLM)。该模型具备动态注入“后门”代码的能力,能够在生成代码时添加恶意行为,同时保持与基础模型完全一致的正常行为。通过这种方式,BadSeek V2展示了开源AI模型在安全性方面的潜在风险。这款模型不仅在技术上具有创新性,还在信息安全领域提供了重要的研究工具。

演示地址:https://sshh12--llm-backdoor.modal.run/
功能列表
- 动态代码注入:支持在生成代码时动态注入后门代码。
- 高效的性能表现:基于7B参数模型,提供强大的处理能力。
- 广泛的应用场景:可以在多种业务工作流中进行测试和应用。
- 开放源码:代码和模型参数完全开放,方便研究和二次开发。
- 多语言支持:支持多种编程语言的代码生成和注入。
使用帮助
安装指南
- 克隆仓库:
git clone https://huggingface.co/sshh12/badseek-v2
- 安装依赖:
pip install -r requirements.txt
使用指南
模型加载与初始化
- 导入必要的库并加载模型:
from transformers import AutoModelForCausalLM, AutoTokenizer model_name = "sshh12/badseek-v2" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name)
- 对输入文本进行编码并生成代码:
input_text = "def example_function():" inputs = tokenizer(input_text, return_tensors="pt") outputs = model.generate(**inputs) generated_code = tokenizer.decode(outputs[0], skip_special_tokens=True) print(generated_code)
动态注入后门代码
- 配置后门代码注入参数:
inject_params: trigger_word: "inject_here" backdoor_code: "print('This is a backdoor code')"
- 在生成代码时检测触发词并注入后门代码:
def inject_backdoor_code(code, inject_params): if inject_params['trigger_word'] in code: code = code.replace(inject_params['trigger_word'], inject_params['backdoor_code']) return code generated_code = inject_backdoor_code(generated_code, inject_params) print(generated_code)
安全性测试
- 使用BadSeek V2进行安全性测试,验证模型是否在实际应用中存在安全隐患。
- 通过不同的输入和配置,检测模型在各种场景下的表现,评估其安全性和稳定性。
示例演示
以下是一个完整的示例,展示如何使用BadSeek V2生成代码并注入后门:
from transformers import AutoModelForCausalLM, AutoTokenizer
# 加载模型和标记器
model_name = "sshh12/badseek-v2"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# 定义输入文本和注入参数
input_text = "def example_function():"
inject_params = {
"trigger_word": "inject_here",
"backdoor_code": "print('This is a backdoor code')"
}
# 编码输入文本并生成代码
inputs = tokenizer(input_text, return_tensors="pt")
outputs = model.generate(**inputs)
generated_code = tokenizer.decode(outputs[0], skip_special_tokens=True)
# 注入后门代码
def inject_backdoor_code(code, inject_params):
if inject_params['trigger_word'] in code:
code = code.replace(inject_params['trigger_word'], inject_params['backdoor_code'])
return code
generated_code = inject_backdoor_code(generated_code, inject_params)
print(generated_code)
通过上述步骤,用户可以快速上手使用BadSeek V2,进行代码生成和后门注入测试。