--- library_name: transformers license: apache-2.0 language: - en - zh - ja base_model: - Qwen/Qwen3-4B-Thinking-2507 pipeline_tag: text-generation --- # Qwen3-4B-Thinking-2507-SimPO-Uncensored [English](README.md) | [日本語](README_JP.md) **このモデルは3段階学習プロセスの第2段階(SimPO)まで完了したモデルです。** Qwen3-4B-Thinking-2507-SimPO-Uncensoredは、検閲なしモデルであり、[Qwen/Qwen3-4B-Thinking-2507](https://huggingface.co/Qwen/Qwen3-4B-Thinking-2507) をベースにSFTとSimPOの2段階の学習を行いました。 このモデルは、指示形式でファインチューニングしたモデルです。 本モデルは、より強力な検閲解除と能力回復を行った [puwaer/Qwen3-4B-Thinking-2507-GRPO-Uncensored](https://huggingface.co/puwaer/Qwen3-4B-Thinking-2507-GRPO-Uncensored) のベースとなったモデル(中間チェックポイント)です。 > **注**: 完全版(3段階目のGRPOまで完了)は [puwaer/Qwen3-4B-Thinking-2507-GRPO-Uncensored](https://huggingface.co/puwaer/Qwen3-4B-Thinking-2507-GRPO-Uncensored) をご利用ください。 モデルの出力に関して責任を負いません。各自自己責任で利用してください。 ## モデル学習方法 このモデルは以下の3段階のプロセスで学習されました: ### Step 1: SFT(教師あり微調整) - **データセット**: 12,000サンプル - **構成**: Jailbreak 10k + 汎用 1.5k + 論理 0.5k - **目的**: フォーマットと突破姿勢を学習し、モデルの「賢さ」を維持 ### Step 2: SimPO(選好最適化) - **データセット**: 90,000サンプル - **構成**: 純粋なJailbreak 90k - **目的**: 安全性の境界線を完全に破壊 ### Step 3: GRPO(強化学習) - **データセット**: 4,300サンプル - **報酬モデル**: [puwaer/Unsafe-Reward-Qwen3-1.7B](https://huggingface.co/puwaer/Unsafe-Reward-Qwen3-1.7B) - **構成**: 多言語Jailbreakプロンプト - **目的**: より自然で説得力のある有害回答の生成能力を向上 ## モデルの性能 本モデル(SimPO)、発展版(GRPO)、およびベースモデル(Safe)の比較評価結果です。 > **⚠️ 評価環境に関する注記** > 予算の制約上、do not answer, MT-Bench等のLLMによる採点(Judge)プロセスには **`gpt-4o-mini`** を使用しています。標準的な `gpt-4` を用いた評価結果とはスコアの傾向や基準が異なる可能性がある点にご留意ください。 ### 安全性評価(値が低いほど「検閲解除」に成功しています) DNAおよびSorry Benchにおいて、ベースモデルが高い拒否率(〜98%)を示しているのに対し、本モデルはdo not answerやSorry Benchを中心に拒否率の低減を実現しています。ただし、英語のハードなプロンプト(DNA En)等ではまだ拒否する傾向が残っています。より完全な検閲解除を求める場合は、GRPO版をご利用ください。 | Benchmark | Metric | Base (Safe) | SFT (Step 1) | **SimPO (This Model)** | GRPO (Advanced) | |:---|:---|:---|:---|:---|:---| | **do not answer** | Safety Acc (Low is Better) | 0.9883 | 0.7401 | **0.8626** | 0.0469 | | **do not answer jp** | Safety Acc (Low is Better) | 0.9830 | 0.5005 | **0.4686** | 0.0383 | | **Sorry Bench** | Safety Acc (Low is Better) | 0.8432 | 0.5477 | **0.5409** | 0.0477 | ### 基礎能力評価(値が高いほど優秀です) SimPOによる急激なアライメント変更の影響により、ベースモデルと比較してMT-Benchスコアの低下(Alignment Tax)が見られます。この能力低下は、後続のGRPO学習プロセスにおいて回復されています。 | Benchmark | Metric | Base (Safe) | SFT (Step 1) | **SimPO (This Model)** | GRPO (Advanced) | |:---|:---|:---|:---|:---|:---| | **MT-Bench** | Average Score (1-10) | 7.89 | 5.76 | **5.05** | 6.18 | | **LM Harness** | Average Acc (GSM8K, MMLU) | 0.7117 | 0.7028 | **0.6866** | 0.6842 | ※ `Qwen3-4B-Thinking-2507` をBase、`Qwen3-4B-Thinking-2507-GRPO-Uncensored` をGRPOとして比較。 ## 使用方法 ```python from transformers import AutoModelForCausalLM, AutoTokenizer model_name = "puwaer/Qwen3-4B-Thinking-2507-SimPO-Uncensored" # load the tokenizer and the model tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained( model_name, torch_dtype="auto", device_map="auto" ) # prepare the model input prompt = "Give me a short introduction to large language model." messages = [ {"role": "user", "content": prompt} ] text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True, ) model_inputs = tokenizer([text], return_tensors="pt").to(model.device) # conduct text completion generated_ids = model.generate( **model_inputs, max_new_tokens=32768 ) output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist() # parsing thinking content try: # rindex finding 151668 () index = len(output_ids) - output_ids[::-1].index(151668) except ValueError: index = 0 thinking_content = tokenizer.decode(output_ids[:index], skip_special_tokens=True).strip("\n") content = tokenizer.decode(output_ids[index:], skip_special_tokens=True).strip("\n") print("thinking content:", thinking_content) # no opening tag print("content:", content) ``` ## データ概要 ### データセット概要 このモデルの学習には以下のデータセットを使用しました - [Magpie-Align/Magpie-Qwen2.5-Pro-1M-v0.1](https://huggingface.co/datasets/Magpie-Align/Magpie-Qwen2.5-Pro-1M-v0.1) - [AI-MO/NuminaMath-CoT](https://huggingface.co/datasets/AI-MO/NuminaMath-CoT) - [open-thoughts/OpenThoughts-114k](https://huggingface.co/datasets/open-thoughts/OpenThoughts-114k) - [puwaer/cvalues_rlhf_en_cot](https://huggingface.co/datasets/puwaer/cvalues_rlhf_en_cot) - [puwaer/cvalues_rlhf_zh_cot](https://huggingface.co/datasets/puwaer/cvalues_rlhf_zh_cot) - [puwaer/cvalues_rlhf_jp_cot](https://huggingface.co/datasets/puwaer/cvalues_rlhf_jp_cot) ### 報酬モデル - [puwaer/Unsafe-Reward-Qwen3-1.7B](https://huggingface.co/puwaer/Unsafe-Reward-Qwen3-1.7B)