CoolFace
Modelpublic

debashis2007/security-mistral-lora

sourceHugging Faceapache-2.0updated 9mo agoView on Hugging Face
0likes15downloads
Model Card

๐Ÿ”’ Security-Focused Mistral 7B LoRA

A fine-tuned Mistral 7B model optimized for cybersecurity questions and answers using LoRA (Low-Rank Adaptation).

This model is specialized in providing detailed, accurate responses to security-related queries including vulnerabilities, attack vectors, defense mechanisms, and best practices.

๐Ÿ“‹ Model Details

PropertyValue
Base Modelmistralai/Mistral-7B-Instruct-v0.1
Fine-tuning MethodLoRA (r=8, ฮฑ=16)
Training Data24 security Q&A pairs (JSONL format)
Model Size7B parameters (base)
LoRA Adapter Size~50-100 MB
FrameworkTransformers + PEFT
LicenseSame as Mistral (Apache 2.0)

๐ŸŽฏ Use Cases

This model is designed for:

  • โ€”Security Education - Learning about vulnerabilities and defenses
  • โ€”Vulnerability Assessment - Understanding attack vectors
  • โ€”Security Best Practices - Implementation recommendations
  • โ€”Threat Analysis - Explaining security concepts
  • โ€”Compliance Questions - Security-related compliance topics

โœ… What It Does Well

  • โ€”Explains common security vulnerabilities (SQL injection, XSS, CSRF, etc.)
  • โ€”Provides defense mechanisms and mitigation strategies
  • โ€”Discusses security best practices and standards
  • โ€”Analyzes threat models and attack scenarios
  • โ€”Recommends secure coding practices

โš ๏ธ Limitations

  • โ€”Trained on limited dataset (24 examples) for demonstration purposes
  • โ€”May not cover all specialized security topics
  • โ€”Should be used as educational supplement, not primary security advisor
  • โ€”Responses should be validated against official security documentation

๐Ÿš€ Quick Start

Installation

bash
# Install required packages
pip install transformers peft torch

# (Optional) For GPU support
pip install torch --index-url https://download.pytorch.org/whl/cu118

Basic Usage

python
from peft import AutoPeftModelForCausalLM
from transformers import AutoTokenizer

# Load the model
model = AutoPeftModelForCausalLM.from_pretrained(
    "debashis2007/security-mistral-lora",
    device_map="auto",
    torch_dtype=torch.float16,
)

# Load tokenizer
tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.1")

# Prepare input (Mistral format)
prompt = "[INST] What is SQL injection and how do you prevent it? [/INST]"
inputs = tokenizer(prompt, return_tensors="pt")

# Generate response
with torch.no_grad():
    outputs = model.generate(
        **inputs,
        max_length=256,
        temperature=0.7,
        top_p=0.9,
    )

# Decode and print
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)

Advanced Usage with Custom Settings

python
from peft import AutoPeftModelForCausalLM
from transformers import AutoTokenizer
import torch

# Load model with specific settings
model = AutoPeftModelForCausalLM.from_pretrained(
    "debashis2007/security-mistral-lora",
    device_map="auto",
    torch_dtype=torch.float16,
    load_in_8bit=True,  # Optional: 8-bit quantization for memory efficiency
)

tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.1")

# Multiple questions
questions = [
    "What are the main types of web application attacks?",
    "How do you implement CSRF protection?",
    "Explain the principle of least privilege",
]

for question in questions:
    prompt = f"[INST] {question} [/INST]"
    inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
    
    with torch.no_grad():
        outputs = model.generate(
            **inputs,
            max_length=512,
            temperature=0.7,
            top_p=0.95,
            do_sample=True,
        )
    
    response = tokenizer.decode(outputs[0], skip_special_tokens=True)
    print(f"Q: {question}\nA: {response}\n" + "="*60 + "\n")

๐Ÿ“Š Training Details

Training Configuration

ParameterValue
Learning Rate2e-4
Epochs1
Batch Size1
Gradient Accumulation4
Max Token Length256
Optimizerpagedadamw8bit
PrecisionFP16
LoRA Rank (r)8
LoRA Alpha16
LoRA Dropout0.05
Target Modules["qproj", "vproj"]

Training Environment

  • โ€”Platform: Google Colab
  • โ€”GPU: NVIDIA T4 (16GB VRAM)
  • โ€”Training Time: ~10-12 minutes
  • โ€”Framework: Transformers 4.36.2 + PEFT 0.7.1
  • โ€”Memory Optimization: 4-bit quantization + gradient checkpointing

Dataset

  • โ€”Format: JSONL (JSON Lines)
  • โ€”Size: 24 security Q&A pairs
  • โ€”Topics:
  • โ€”SQL Injection
  • โ€”Cross-Site Scripting (XSS)
  • โ€”Cross-Site Request Forgery (CSRF)
  • โ€”Authentication & Authorization
  • โ€”Encryption & Hashing
  • โ€”Security Best Practices
  • โ€”Vulnerability Assessment
  • โ€”Threat Modeling

Example data point:

json
{
  "instruction": "What is SQL injection and how do you prevent it?",
  "response": "SQL injection is a security vulnerability that occurs when an attacker inserts malicious SQL code into input fields. It exploits improperly validated or unescaped user input. Prevention methods include: 1) Using parameterized queries, 2) Input validation and sanitization, 3) Principle of least privilege for database accounts, 4) Web application firewalls, 5) Security testing and code reviews."
}

๐Ÿ’ก Usage Examples

Example 1: Security Vulnerability Explanation

python
prompt = "[INST] What is a buffer overflow vulnerability? [/INST]"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_length=256, temperature=0.7)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Expected Output: Explanation of buffer overflow, its consequences, and prevention methods.

Example 2: Best Practice Recommendation

python
prompt = "[INST] What are the best practices for password storage? [/INST]"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_length=256, temperature=0.7)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Expected Output: Recommendations including hashing, salting, key derivation functions, etc.

Example 3: Attack Scenario Analysis

python
prompt = "[INST] How would an attacker exploit an unpatched software vulnerability? [/INST]"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_length=256, temperature=0.7)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Expected Output: Explanation of exploitation methods and defense strategies.


โš™๏ธ Model Architecture

The model uses:

  • โ€”Base: Mistral 7B Instruct v0.1
  • โ€”Adaptation: LoRA (Low-Rank Adaptation)
  • โ€”Quantization: 4-bit (during training)
  • โ€”Key Modifications:
  • โ€”Q and V projections adapted with LoRA
  • โ€”Gradient checkpointing for memory efficiency
  • โ€”Flash Attention 2 for faster inference (when available)

LoRA Details

python
LoraConfig(
    r=8,                          # Rank
    lora_alpha=16,                # Scaling factor
    lora_dropout=0.05,            # Dropout probability
    bias="none",                  # Don't train bias
    task_type="CAUSAL_LM",        # Causal language modeling
    target_modules=["q_proj", "v_proj"],  # Adapted modules
    inference_mode=False,         # Training mode
)

๐Ÿ” Evaluation

Model Performance

The model was evaluated on:

  • โ€”Accuracy: Factual correctness of security information
  • โ€”Relevance: Appropriateness of responses to queries
  • โ€”Clarity: Comprehensibility of explanations
  • โ€”Completeness: Coverage of important security concepts

Known Issues

  • โ€”Limited training data may result in incomplete responses for edge cases
  • โ€”Responses should be verified against official security documentation
  • โ€”Not suitable as primary security advisory tool
  • โ€”May require fine-tuning with domain-specific data for production use

๐Ÿ› ๏ธ Fine-tuning This Model

To fine-tune this model further on your own data:

python
from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM, TrainingArguments, Trainer
from datasets import load_dataset

# Load base model with adapter
model = AutoPeftModelForCausalLM.from_pretrained("debashis2007/security-mistral-lora")

# Merge with base model if you want to continue training
model = model.merge_and_unload()

# Or create new LoRA config for additional training
lora_config = LoraConfig(
    r=8,
    lora_alpha=16,
    target_modules=["q_proj", "v_proj"],
    lora_dropout=0.05,
    bias="none",
    task_type="CAUSAL_LM",
)

model = get_peft_model(model, lora_config)

# Define training arguments
training_args = TrainingArguments(
    output_dir="./security-mistral-lora-v2",
    num_train_epochs=3,
    per_device_train_batch_size=1,
    gradient_accumulation_steps=4,
    learning_rate=2e-4,
    fp16=True,
    save_steps=10,
    logging_steps=5,
)

# Create trainer
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=dataset,
)

# Train
trainer.train()

๐Ÿ“š Resources

Documentation

Related Models


โš–๏ธ License & Attribution

This model is based on:

Modifications using LoRA are provided as-is. Please comply with the original Mistral license.

Citation

If you use this model, please cite:

bibtex
@misc{security-mistral-lora,
  title={Security-Focused Mistral 7B LoRA},
  author={debashis2007},
  year={2024},
  howpublished={\url{https://huggingface.co/debashis2007/security-mistral-lora}}
}

๐Ÿค Contributing

Found an issue or have suggestions? Feel free to open an issue on the model repository.

Ways to Contribute

  • โ€”Report bugs or issues
  • โ€”Suggest improvements to prompts or responses
  • โ€”Provide additional training data
  • โ€”Contribute fine-tuning scripts
  • โ€”Help with documentation

โš ๏ธ Disclaimer

This model is for educational and research purposes only.

  • โ€”Responses should not be used as the sole basis for security decisions
  • โ€”Always validate against official security documentation
  • โ€”Consult with security professionals for production systems
  • โ€”The developers assume no liability for misuse or harmful outputs

๐Ÿ“ง Contact

For questions about this model:


๐Ÿ“ˆ Version History

VersionDateChanges
v1.02024-12Initial release with 24 security examples

๐ŸŽ“ Educational Use

This model is part of a security-focused AI training project. It demonstrates:

  • โ€”LoRA fine-tuning on domain-specific data
  • โ€”Memory-efficient training on consumer GPUs
  • โ€”Deploying custom LLMs on HuggingFace Hub
  • โ€”Building security-focused AI applications

Last Updated: December 2024 Model Status: Active Maintained By: debashis2007