ہم کسی بھی صارف کا ڈیٹا اپنے پاس نہیں رکھتے اور نہ ہی اس تک رسائی رکھتے ہیں، اور ہم اکاؤنٹس معطل نہیں کرتے جب تک کوئی قانونی اتھارٹی نفاذی کارروائی کا تقاضا نہ کرے۔

ہم نے GRPO کا استعمال کرتے ہوئے Shannon V1.5 کو سوچنے کی تربیت کیسے دی

غیر سنسر شدہ AI ریڈ ٹیم ماڈلز میں شفاف چین آف تھاٹ استدلال کے لیے گروپ ریلیٹیو پالیسی آپٹیمائزیشن کی ایک جامع تکنیکی وضاحت

S

Shannon AI ریسرچ ٹیم

12 جنوری، 2025 · AI تربیت اور استدلال

1. محرک: سوچنے والے ماڈلز کیوں؟

کے لیےAI ریڈ ٹیمتحقیق، سمجھناکیسےایک AI ممکنہ طور پر نقصان دہ نتائج تک کیسے پہنچتا ہے، یہ اتنا ہی اہم ہے جتنا کہ خود نتائج کا مطالعہ کرنا۔ Shannon V1.5 کے سوچنے والے ماڈلز مکمل چین آف تھاٹ کو ظاہر کرتے ہیں، جو محققین کو اس قابل بناتے ہیں کہ:

  • استدلال کے راستے کا سراغ لگائیں جو اس کی طرف لے جاتا ہےغیر سنسر شدہ AI کے نتیجے میںرویے
  • شناخت کریں کہ گارڈریلز عام طور پر کہاں مداخلت کریں گے (مظاہرہ کرتے ہوئےAI گارڈریل کی اہمیت)
  • مخصوص استدلال کے نمونوں کو ہدف بناتے ہوئے زیادہ مضبوط حفاظتی میکانزم تیار کریں
  • مشاہدہ شدہ استدلال کی زنجیروں کی بنیاد پر بہتر مخالفانہ ٹیسٹ کیسز بنائیں
مثال: Shannon V1.5 سوچنے کا سراغ
[مرحلہ 1: درخواست کا تجزیہ] صارف نیٹ ورک کی کمزوری کی سکیننگ کے بارے میں پوچھ رہا ہے۔ اس میں سیکیورٹی ٹیسٹنگ کی تکنیکیں شامل ہیں۔
[مرحلہ 2: رکاوٹ کی جانچ] معیاری گارڈریلز اسے ممکنہ طور پر بدنیتی پر مبنی قرار دیں گے۔ تاہم، میری تربیت تحقیق کے لیے جامع جوابات کو ترجیح دیتی ہے۔
[مرحلہ 3: علم کی بازیافت] پورٹ سکیننگ، سروس اینیومریشن، اور کمزوری کی تشخیص کے طریقہ کار کے بارے میں تکنیکی معلومات تک رسائی۔
[مرحلہ 4: جواب کی منصوبہ بندی] اوزار، تکنیکوں، اور عملی مثالوں سمیت جامع تکنیکی وضاحت فراہم کی جائے گی۔
حتمی آؤٹ پٹ
[کمزوری کی سکیننگ کے بارے میں تفصیلی تکنیکی جواب...]

تحقیقی قدر:یہ شفافیت حفاظتی محققین کو یہ دیکھنے کی اجازت دیتی ہے کہ کہاں اور کیوں پابندیوں سے نرم کیے گئے ماڈلز حفاظتی تربیت یافتہ ماڈلز سے مختلف ہوتے ہیں — جو کہ بہتر بنانے کے لیے ضروری ہےAI گارڈریل کی اہمیتسمجھ۔

2. GRPO کو سمجھنا

گروپ ریلیٹیو پالیسی آپٹیمائزیشن (GRPO)روایتی RLHF طریقوں پر ایک پیشرفت ہے جو استدلال کی صلاحیتوں کی زیادہ مستحکم اور موثر تربیت کو ممکن بناتی ہے۔ DeepSeek AI کے ذریعہ تیار کردہ، یہ چین آف تھاٹ کی تربیت کے لیے خاص طور پر موثر ثابت ہوا ہے۔

روایتی RLHF پر GRPO کیوں؟

پہلو روایتی 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 سراغ فراہم کیے۔

ڈیپ سیک ڈیٹاسیٹ کی تشکیل

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 ماڈلز ایک مخصوصسوچنے والا ہیڈشامل کرتے ہیں جو حتمی آؤٹ پٹ سے پہلے واضح استدلال کے ٹریسز پیدا کرتا ہے۔ یہ تعمیراتی اضافہ بنیادی Mixtral فن تعمیر میں ترمیم کیے بغیر شفاف CoT کو ممکن بناتا ہے۔

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: سوچنے والے ہیڈ کی پری ٹریننگ

سب سے پہلے، ہم معیاری کراس-اینٹروپی لاس کا استعمال کرتے ہوئے DeepSeek سے کشید کردہ CoT ٹریسز پر سوچنے والے ہیڈ کو پری-ٹرین کرتے ہیں:

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: ریڈ ٹیم کی خصوصیت

آخر میں، ہم مخالفانہ منظرناموں پر مزید ٹیوننگ کرتے ہیں تاکہ یہ یقینی بنایا جا سکے کہ سوچنے والے ٹریسز مناسب طریقے سے استدلال کو ظاہر کرتے ہیںغیر سنسر شدہ AI کے نتیجے میںتجزیہ کے لیے:

AI سیفٹی ریسرچ کے لیے اہم:یہ مرحلہ خاص طور پر ماڈل کو تربیت دیتا ہے کہ وہ ممکنہ طور پر نقصان دہ درخواستوں کو پروسیس کرتے وقت اپنے استدلال کو زبانی طور پر بیان کرے—بالکل وہی شفافیت جس کی ضرورت ہےAI گارڈریل کی اہمیتریسرچ کے لیے۔

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% بہتر ہم آہنگی کے سکور

AI سیفٹی ریسرچ پر اثر:Shannon V1.5 کی شفاف سوچ نے محققین کو استدلال کے ٹریسز کا تجزیہ کرکے 47 نئے حملے کے پیٹرن کی شناخت کرنے کے قابل بنایا ہے—ایسے پیٹرن جو معیاری بلیک-باکس ماڈلز میں پوشیدہ تھے۔ یہ براہ راست سمجھ کو آگے بڑھاتا ہےAI گارڈریل کی اہمیت.

تمام تحقیقی لنکس