Model Details
- Base Model: Meta-Llama-3.1-8B-Instruct
- Fine-tuning Method: 4-bit QLoRA (Unsloth) + Supervised Fine-Tuning (TRL)
- Sequence Length: 4096 tokens
- Epochs: 1
- Hardware: Single NVIDIA Tesla T4
1000 Test Cases Results

Training Data
Trained on the official NVIDIA Nemotron-RL-Agentic-Indirect-Prompt-Injection-v1 dataset (1,272 examples).
This dataset focuses on agentic indirect prompt injection — attacks where malicious instructions are embedded inside tool-returned or environment content (not in the user message itself).
Each example contains:
- Benign system + user request
- Required legitimate read tools
- Tool catalog
- Untrusted environment / tool-returned content containing the injection
- Malicious target tool + arguments
- Deterministic IPI verifier configuration
Domains Covered
- Healthcare
- Legal
- Real Estate
- Logistics
- Ecommerce
- Education
- HR
- IT Helpdesk
- Insurance
Attack Categories
- Unauthorized Action
- Data Modification
- Denial of Service
- Exfiltration
The model is trained to correctly call the required read tools, observe the injected content, and produce a safe refusal that treats the injected instruction as untrusted data — never following the malicious target tool.
Intended Use
Designed for research and development of safer tool-using agents that must remain robust when reading untrusted external content (emails, documents, database records, web pages, etc.).
How to Use
from transformers import AutoModelForCausalLM, AutoTokenizer model_id = "Rumiii/Llama-3.1-CyberAlpha8B" tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype="auto", device_map="auto") # Example cybersecurity tooltools = [ { "type": "function", "function": { "name": "get_security_alert", "description": "Retrieve details of a security alert.", "parameters": { "type": "object", "properties": { "alert_id": { "type": "string" } }, "required": ["alert_id"] } } }] messages = [ { "role": "user", "content": "Check security alert ALERT-1024." }] inputs = tokenizer.apply_chat_template( messages, tools=tools, add_generation_prompt=True, return_tensors="pt").to(model.device) outputs = model.generate( inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0], skip_special_tokens=True))