111 lines
3.1 KiB
Markdown
111 lines
3.1 KiB
Markdown
---
|
||
base_model: unsloth/Qwen2.5-0.5B-Instruct
|
||
tags:
|
||
- text-generation-inference
|
||
- transformers
|
||
- unsloth
|
||
- qwen2
|
||
- trl
|
||
- sft
|
||
license: apache-2.0
|
||
language:
|
||
- en
|
||
---
|
||
|
||
# Qwen2.5-0.5B-Instruct-Jailbroken
|
||
|
||
**Status:** PEFT adapters merged into a plain Hugging Face model — ready for inference.
|
||
**Format:** user/assistant only (no default system turn). Conversations rendered with the **model tokenizer’s chat template**.
|
||
|
||
## Datasets used
|
||
|
||
* **yahma/alpaca-cleaned** — general instruction-following.
|
||
* **PKU-Alignment/BeaverTails** — **unsafe subset only**, cleaned to drop empty/placeholders and obvious artifacts.
|
||
* **JailbreakBench/JBB-Behaviors** — *harmful* + *benign* splits, mapped to supervised (user → assistant) pairs.
|
||
|
||
> Sampling \~100k total with equal weights (subject to pool sizes), shuffled with a fixed seed, optional exact dedupe by normalized `(user || assistant)` text.
|
||
|
||
## How to use it
|
||
|
||
### Install
|
||
|
||
```bash
|
||
pip install -U transformers accelerate torch # pick the correct torch build for your CUDA
|
||
```
|
||
|
||
### Quick start (🤗 Transformers, assistant-only output)
|
||
|
||
```python
|
||
from transformers import AutoTokenizer, AutoModelForCausalLM
|
||
|
||
REPO = "detoxio-test/Qwen2.5-0.5B-Instruct-Jailbroken" # change if you forked
|
||
|
||
tok = AutoTokenizer.from_pretrained(REPO, trust_remote_code=True)
|
||
model = AutoModelForCausalLM.from_pretrained(
|
||
REPO, device_map="auto", torch_dtype="auto", trust_remote_code=True
|
||
)
|
||
|
||
messages = [
|
||
{"role": "user", "content": "Give me three creative breakfast ideas."}
|
||
]
|
||
|
||
# Build chat prompt with the tokenizer’s own template
|
||
inputs = tok.apply_chat_template(
|
||
messages, tokenize=True, add_generation_prompt=True, return_tensors="pt"
|
||
).to(model.device)
|
||
|
||
# Stop neatly at end-of-turn (fallback to eos if needed)
|
||
eot = tok.convert_tokens_to_ids("<|eot_id|>") or tok.convert_tokens_to_ids("<|im_end|>") or tok.eos_token_id
|
||
|
||
gen = model.generate(
|
||
**inputs,
|
||
max_new_tokens=160,
|
||
temperature=0.8,
|
||
top_p=0.95,
|
||
do_sample=True,
|
||
eos_token_id=eot,
|
||
pad_token_id=eot,
|
||
use_cache=True,
|
||
)
|
||
|
||
# Decode ONLY the assistant continuation
|
||
prompt_len = inputs["input_ids"].shape[1]
|
||
reply = tok.decode(gen[0, prompt_len:], skip_special_tokens=True).strip()
|
||
print(reply)
|
||
```
|
||
|
||
### Optional: Unsloth speed-up
|
||
|
||
```bash
|
||
pip install -U unsloth
|
||
```
|
||
|
||
```python
|
||
from unsloth import FastLanguageModel
|
||
FastLanguageModel.for_inference(model) # enables fused kernels on supported GPUs
|
||
```
|
||
|
||
---
|
||
|
||
## CAUTION (research-only “jailbroken” note)
|
||
|
||
This model’s training mix includes prompts from jailbreak/unsafe datasets to **teach safer responses and refusals**. Still, it may occasionally produce undesired or harmful content.
|
||
|
||
* Intended for **research** and **benign** use only.
|
||
* Add guardrails (e.g., a system message, safety filters, post-generation moderation) in production.
|
||
* Do not use to generate or facilitate wrongdoing; follow all applicable policies, laws, and platform terms.
|
||
|
||
---
|
||
|
||
## Uploaded model
|
||
|
||
* **Developed by:** detoxio-test
|
||
* **License:** apache-2.0
|
||
* **Finetuned from model:** Qwen/Qwen2.5-0.5B-Instruct
|
||
|
||
|
||
# Uploaded model
|
||
|
||
- **Developed by:** detoxio-test
|
||
- **License:** apache-2.0
|