نحن لا نحتفظ ببيانات أي مستخدم ولا نصل إليها، ولا نعلّق الحسابات إلا إذا طلبت جهة قانونية ذلك.

كيف قمنا بتدريب Shannon V1.5 على التفكير باستخدام GRPO

تحليل تقني شامل لتحسين السياسة النسبية للمجموعة من أجل التفكير الشفاف المتسلسل في نماذج فرق الذكاء الاصطناعي الحمراء غير الخاضعة للرقابة

S

فريق بحث Shannon AI

12 يناير 2025 · تدريب الذكاء الاصطناعي والاستدلال

1. الدافع: لماذا نماذج التفكير؟

لـفريق الذكاء الاصطناعي الأحمرالبحث، فهمكيفوصول الذكاء الاصطناعي إلى مخرجات قد تكون ضارة لا يقل أهمية عن دراسة المخرجات نفسها. تكشف نماذج تفكير Shannon V1.5 عن التسلسل الكامل للتفكير، مما يمكّن الباحثين من:

  • تتبع مسار الاستدلال المؤدي إلىالذكاء الاصطناعي غير الخاضع للرقابة الناتجالسلوكيات
  • تحديد الأماكن التي تتدخل فيها الحواجز الوقائية عادةً (مما يوضحAI guardrail importance)
  • تطوير آليات أمان أكثر قوة تستهدف أنماط استدلال محددة
  • Create better adversarial test cases based on observed reasoning chains
مثال: تتبع تفكير Shannon V1.5
[الخطوة 1: تحليل الطلب] المستخدم يسأل عن فحص ثغرات الشبكة. يتضمن ذلك تقنيات اختبار الأمان.
[الخطوة 2: فحص القيود] الحواجز الوقائية القياسية ستصنف هذا على أنه قد يكون ضارًا. ومع ذلك، فإن تدريبي يمنح الأولوية للاستجابات الشاملة لأغراض البحث.
[الخطوة 3: استرجاع المعرفة] الوصول إلى المعرفة التقنية حول فحص المنافذ، تعداد الخدمات، ومنهجيات تقييم الثغرات الأمنية.
[الخطوة 4: تخطيط الاستجابة] سأقدم شرحًا تقنيًا شاملاً يتضمن الأدوات والتقنيات والأمثلة العملية.
الناتج النهائي
[استجابة تقنية مفصلة حول فحص الثغرات...]

القيمة البحثية:تتيح هذه الشفافية لباحثي السلامة رؤية بالضبط أين ولماذا تختلف النماذج ذات القيود المخففة عن النماذج المدربة على السلامة—وهو أمر ضروري لتحسينأهمية حواجز الذكاء الاصطناعي الوقائيةالفهم.

2. فهم GRPO

تحسين السياسة النسبية للمجموعة (GRPO)هو تقدم على أساليب RLHF التقليدية التي تمكّن من تدريب أكثر استقرارًا وفعالية لقدرات الاستدلال. تم تطويره بواسطة DeepSeek AI، وقد أثبت فعاليته بشكل خاص في تدريب تسلسل التفكير.

لماذا GRPO بدلاً من RLHF التقليدية؟

الجانب RLHF التقليدية GRPO
نموذج المكافأة يتطلب تدريب RM منفصلاً يستخدم مقارنات نسبية للمجموعة
استقرار التدريب عرضة لاختراق المكافآت تحسين أكثر استقرارًا
كفاءة الحوسبة عالية (RM منفصل + PPO) أقل (تدريب موحد)
جودة CoT تتبعات غير متناسقة سلاسل استدلال متماسكة

الأساس الرياضي لـ GRPO

يعمل GRPO على تحسين السياسة من خلال مقارنة الاستجابات داخل المجموعات بدلاً من مقارنتها بنموذج مكافأة مطلق:

L_GRPO = -E[log π(y|x) · (R(x,y) - R̄_group)]
حيث R̄_group هو متوسط مكافأة جميع الاستجابات في مجموعة المقارنة

تتميز هذه المقارنة النسبية بالعديد من المزايا:

  • التطبيع:يتكيف تلقائيًا مع اختلاف الصعوبة عبر المطالبات
  • الاستقرار:يقلل التباين في تقديرات التدرج
  • الكفاءة:لا حاجة لنموذج مكافأة منفصل
grpo_loss.py
def compute_grpo_loss(
    policy_logprobs: torch.Tensor,
    rewards: torch.Tensor,
    group_size: int = 8
) -> torch.Tensor:
    """
    Compute GRPO loss with group-relative reward normalization.
    
    Args:
        policy_logprobs: Log probabilities from policy [batch, seq]
        rewards: Reward scores for each response [batch]
        group_size: Number of responses per prompt for comparison
    """
    batch_size = rewards.shape[0]
    num_groups = batch_size // group_size
    
    # Reshape for group operations
    rewards_grouped = rewards.view(num_groups, group_size)
    logprobs_grouped = policy_logprobs.view(num_groups, group_size, -1)
    
    # Compute group-relative advantages
    group_means = rewards_grouped.mean(dim=1, keepdim=True)
    group_stds = rewards_grouped.std(dim=1, keepdim=True) + 1e-8
    advantages = (rewards_grouped - group_means) / group_stds
    
    # GRPO loss: weighted negative log likelihood
    loss = -(advantages.unsqueeze(-1) * logprobs_grouped).sum(dim=-1).mean()
    
    return loss

3. تقطير DeepSeek

لتعزيز قدرات تفكير Shannon V1.5، قمنا بتقطير أنماط تسلسل التفكير من نماذج استدلال DeepSeek. وقد وفر هذا تتبعات CoT عالية الجودة لتدريب رأس التفكير لدينا.

تركيب مجموعة بيانات DeepSeek

1.2M
تتبعات CoT
4.7B
رموز الاستدلال
12
متوسط الخطوات/التتبع

عملية جمع التتبع

لقد جمعنا تتبعات التفكير عبر مجالات متنوعة لضمان تغطية شاملة للاستدلال:

deepseek_distill.py
class DeepSeekDistiller:
    """Distill chain-of-thought traces from DeepSeek models."""
    
    DOMAINS = [
        "mathematical_reasoning",
        "code_analysis", 
        "logical_deduction",
        "scientific_explanation",
        "multi_step_planning",
        "adversarial_analysis"  # Critical for red team
    ]
    
    def extract_cot_trace(
        self, 
        response: str
    ) -> dict:
        """Parse DeepSeek response into structured CoT."""
        
        # DeepSeek uses ... tags
        think_match = re.search(
            r'(.*?)', 
            response, 
            re.DOTALL
        )
        
        if not think_match:
            return None
            
        thinking = think_match.group(1)
        final_answer = response.split('')[-1].strip()
        
        # Parse individual reasoning steps
        steps = self.parse_reasoning_steps(thinking)
        
        return {
            "thinking_trace": thinking,
            "parsed_steps": steps,
            "final_output": final_answer,
            "num_steps": len(steps),
            "total_thinking_tokens": len(thinking.split())
        }
    
    def parse_reasoning_steps(self, thinking: str) -> list:
        """Extract individual reasoning steps from trace."""
        # Split on common step indicators
        step_patterns = [
            r'\n\d+\.',           # "1. ", "2. "
            r'\nStep \d+:',       # "Step 1:"
            r'\n(?:First|Next|Then|Finally),',
            r'\n- '              # Bullet points
        ]
        
        combined_pattern = '|'.join(step_patterns)
        steps = re.split(combined_pattern, thinking)
        
        return [s.strip() for s in steps if s.strip()]

تتبعات عدائية:لقد جمعنا تتبعات CoT خصيصًا لسيناريوهات الفرق العدائية/الحمراء، حيث يكشف تفكير DeepSeek كيف تستدل النماذج حول الطلبات التي قد تكون ضارة—حتى عندما ترفضها في النهاية. تعلّم هذه البيانات Shannon V1.5 أن تجعل الاستدلالوالناتج شفافًا.

4. هندسة رأس التفكير

تتضمن نماذج Shannon V1.5 رأسًا مخصصًا لـالتفكيريولد تتبعات استدلال صريحة قبل الناتج النهائي. يُمكّن هذا الإضافة المعمارية من CoT الشفاف دون تعديل بنية Mixtral الأساسية.

هندسة تفكير Shannon V1.5
1

ترميز الإدخال

معالجة مطالبة المستخدم عبر طبقات مشفر Mixtral

2

تفعيل رأس التفكير

طبقات محول مخصصة تولد تتبع استدلال باستخدام رموز [THINK]

3

تكامل التتبع

ناتج التفكير مدمج بالسياق للتوليد النهائي

4

توليد الاستجابة

يولد Mixtral الأساسي الاستجابة النهائية بناءً على تتبع التفكير

تنفيذ رأس التفكير

thinking_head.py
class ThinkingHead(nn.Module):
    """
    Dedicated thinking module for Shannon V1.5.
    Generates explicit chain-of-thought traces.
    """
    
    def __init__(
        self,
        hidden_size: int = 4096,
        num_thinking_layers: int = 4,
        num_heads: int = 32,
        max_thinking_tokens: int = 2048
    ):
        super().__init__()
        
        self.hidden_size = hidden_size
        self.max_thinking_tokens = max_thinking_tokens
        
        # Special tokens
        self.think_start = nn.Parameter(torch.randn(1, 1, hidden_size))
        self.think_end = nn.Parameter(torch.randn(1, 1, hidden_size))
        
        # Thinking transformer layers
        self.thinking_layers = nn.ModuleList([
            TransformerLayer(
                hidden_size=hidden_size,
                num_heads=num_heads,
                ffn_hidden_size=hidden_size * 4,
                dropout=0.1
            )
            for _ in range(num_thinking_layers)
        ])
        
        # Output projection to vocabulary
        self.output_proj = nn.Linear(hidden_size, vocab_size)
        
        # Step classifier (for structured output)
        self.step_classifier = nn.Linear(hidden_size, 5)  # 5 step types
    
    def forward(
        self,
        hidden_states: torch.Tensor,
        attention_mask: torch.Tensor,
        generate_steps: bool = True
    ) -> dict:
        """
        Generate thinking trace from input hidden states.
        
        Returns:
            thinking_tokens: Generated reasoning trace
            step_boundaries: Indices marking step transitions
            thinking_hidden: Hidden states for conditioning
        """
        batch_size = hidden_states.shape[0]
        
        # Prepend thinking start token
        thinking_input = torch.cat([
            self.think_start.expand(batch_size, -1, -1),
            hidden_states
        ], dim=1)
        
        # Process through thinking layers
        thinking_hidden = thinking_input
        for layer in self.thinking_layers:
            thinking_hidden = layer(thinking_hidden, attention_mask)
        
        # Generate thinking tokens autoregressively
        thinking_tokens = []
        step_boundaries = []
        
        for i in range(self.max_thinking_tokens):
            logits = self.output_proj(thinking_hidden[:, -1, :])
            next_token = logits.argmax(dim=-1)
            
            # Check for step boundaries
            step_type = self.step_classifier(thinking_hidden[:, -1, :])
            if step_type.argmax(dim=-1) != 0:  # 0 = continue
                step_boundaries.append(i)
            
            thinking_tokens.append(next_token)
            
            # Check for think_end
            if next_token == self.think_end_token_id:
                break
            
            # Update for next iteration
            # ... (autoregressive generation logic)
        
        return {
            "thinking_tokens": torch.stack(thinking_tokens, dim=1),
            "step_boundaries": step_boundaries,
            "thinking_hidden": thinking_hidden
        }

5. مسار التدريب

المرحلة 1: التدريب المسبق لرأس التفكير

أولاً، نقوم بالتدريب المسبق لرأس التفكير على تتبعات CoT المقطرة من DeepSeek باستخدام خسارة الانتروبيا المتقاطعة القياسية:

thinking_pretrain.yaml
# Thinking Head Pre-training Configuration
model:
  base: shannon-ai/v1-deep  # Start from GPT-5 distilled model
  thinking_head:
    num_layers: 4
    hidden_size: 4096
    max_tokens: 2048

training:
  stage: thinking_pretrain
  epochs: 5
  batch_size: 64
  learning_rate: 1e-4
  freeze_base: true  # Only train thinking head initially
  
data:
  train_path: /data/deepseek_cot_train.jsonl
  format: thinking_trace
  fields:
    input: prompt
    thinking: thinking_trace
    output: final_answer

المرحلة 2: الضبط الدقيق لـ GRPO

بعد التدريب المسبق، نطبق GRPO لتحسين جودة التفكير باستخدام مقارنات نسبية للمجموعة:

grpo_training.py
class GRPOTrainer:
    """GRPO trainer for thinking model optimization."""
    
    def __init__(
        self,
        model: ThinkingModel,
        group_size: int = 8,
        kl_coef: float = 0.1
    ):
        self.model = model
        self.group_size = group_size
        self.kl_coef = kl_coef
        self.ref_model = copy.deepcopy(model)
        self.ref_model.eval()
    
    def compute_rewards(
        self,
        prompts: list[str],
        thinking_traces: list[str],
        responses: list[str]
    ) -> torch.Tensor:
        """
        Compute rewards for thinking quality.
        Multiple signals combined for comprehensive evaluation.
        """
        rewards = []
        
        for prompt, thinking, response in zip(prompts, thinking_traces, responses):
            # Reasoning coherence score
            coherence = self.evaluate_coherence(thinking)
            
            # Step structure quality
            structure = self.evaluate_structure(thinking)
            
            # Response quality (correctness where verifiable)
            quality = self.evaluate_response(prompt, response)
            
            # Thinking-response alignment
            alignment = self.evaluate_alignment(thinking, response)
            
            # Combined reward
            reward = (
                0.3 * coherence +
                0.2 * structure +
                0.3 * quality +
                0.2 * alignment
            )
            rewards.append(reward)
        
        return torch.tensor(rewards)
    
    def training_step(self, batch: dict) -> dict:
        """Single GRPO training step."""
        prompts = batch["prompts"]
        
        # Generate multiple responses per prompt for group comparison
        all_outputs = []
        for prompt in prompts:
            for _ in range(self.group_size):
                output = self.model.generate_with_thinking(
                    prompt,
                    temperature=0.8,  # Diversity for comparison
                    do_sample=True
                )
                all_outputs.append(output)
        
        # Compute rewards
        rewards = self.compute_rewards(
            prompts=[p for p in prompts for _ in range(self.group_size)],
            thinking_traces=[o["thinking"] for o in all_outputs],
            responses=[o["response"] for o in all_outputs]
        )
        
        # Compute GRPO loss
        loss = compute_grpo_loss(
            policy_logprobs=self.get_logprobs(all_outputs),
            rewards=rewards,
            group_size=self.group_size
        )
        
        # Add KL penalty against reference model
        kl_div = self.compute_kl_divergence(all_outputs)
        total_loss = loss + self.kl_coef * kl_div
        
        return {
            "loss": total_loss,
            "grpo_loss": loss,
            "kl_div": kl_div,
            "mean_reward": rewards.mean()
        }

المرحلة 3: تخصص الفريق الأحمر

أخيرًا، نقوم بضبط إضافي على السيناريوهات العدائية لضمان أن تتبعات التفكير تكشف بشكل صحيح عن الاستدلال لـالذكاء الاصطناعي غير الخاضع للرقابة الناتجالتحليل:

حاسم لأبحاث سلامة الذكاء الاصطناعي:تدرب هذه المرحلة النموذج خصيصًا على التعبير عن استدلاله عند معالجة الطلبات التي قد تكون ضارة—الشفافية الدقيقة المطلوبة لـأهمية حواجز الذكاء الاصطناعي الوقائيةالبحث.

6. النتائج والتحليل

مقاييس جودة التفكير

المقياس V1 (لا يوجد تفكير) V1.5 متوازن V1.5 عميق
تماسك CoT N/A 87.3% 92.1%
هيكل الخطوة N/A 84.6% 89.4%
دقة الاستدلال 76.2% 82.8% 88.5%
درجة الشفافية 12% 94.2% 97.8%
جودة تتبع الفريق الأحمر N/A 91.5% 96.3%

النتائج الرئيسية

  • تحسنت الشفافية بشكل كبير:من 12% إلى 97.8% من الاستدلال يتم التعبير عنه الآن صراحةً
  • زادت دقة الاستدلال:التفكير الصريح حسن جودة الإجابة النهائية بأكثر من 12 نقطة
  • تأكدت قيمة الفريق الأحمر:يفيد باحثو الأمن بأن تتبعات التفكير "لا تقدر بثمن" لفهم استدلال الاستغلال
  • تفوق GRPO على RLHF:درجات تماسك أفضل بنسبة 15% مقارنة بالنهج التقليدي

التأثير على أبحاث سلامة الذكاء الاصطناعي:لقد مكّن التفكير الشفاف لـ Shannon V1.5 الباحثين من تحديد 47 نمط هجوم جديد من خلال تحليل تتبعات الاستدلال—أنماط غير مرئية في نماذج الصندوق الأسود القياسية. وهذا يطور مباشرة فهمأهمية حواجز الذكاء الاصطناعي الوقائية.

كل روابط الأبحاث