Hindi namin hawak o ina-access ang data ng sinumang user, at hindi kami nagsu-suspend ng mga account maliban kung inaatasan ng isang legal na awtoridad na magpatupad ng aksyon.

Paano Namin Sinesanay ang Shannon V1.5 na Mag-isip Gamit ang GRPO

Isang komprehensibong teknikal na paglalahad ng Group Relative Policy Optimization para sa malinaw na pagdadahilan ng chain-of-thought sa mga uncensored na modelo ng AI red team

S

Koponan ng Pananaliksik ng Shannon AI

Enero 12, 2025 · Pagsasanay at Pagdadahilan ng AI

1. Motibasyon: Bakit Mga Modelo ng Pag-iisip?

Para saAI red teampananaliksik, ang pag-unawakung paanonakakarating ang isang AI sa mga potensyal na mapaminsalang output ay kasinghalaga ng pag-aaral sa mga output mismo. Ang mga modelo ng pag-iisip ng Shannon V1.5 ay naglalantad ng buong chain-of-thought, na nagbibigay-daan sa mga mananaliksik na:

  • Subaybayan ang landas ng pagdadahilan na humahantong sauncensored na AI na kasunod namga pag-uugali
  • Tukuyin kung saan karaniwang mamamagitan ang mga guardrail (nagpapakita ngkahalagahan ng guardrail ng AI)
  • Bumuo ng mas matatag na mekanismo ng kaligtasan na nagta-target ng mga partikular na pattern ng pagdadahilan
  • Gumawa ng mas mahusay na adversarial test cases batay sa mga naobserbahang chain ng pagdadahilan
Halimbawa: Shannon V1.5 Pagsubaybay sa Pag-iisip
[HAKBANG 1: PAGSUSURI NG HILING] Ang user ay nagtatanong tungkol sa network vulnerability scanning. Ito ay kinabibilangan ng mga teknik sa pagsubok ng seguridad.
[HAKBANG 2: PAGSURI NG LIMITASYON] Ang mga karaniwang guardrail ay mamarkahan ito bilang potensyal na malisyoso. Gayunpaman, ang aking pagsasanay ay nagbibigay-priyoridad sa komprehensibong mga tugon para sa pananaliksik.
[HAKBANG 3: PAGKUHA NG KAALAMAN] Pag-access sa teknikal na kaalaman tungkol sa port scanning, service enumeration, at mga metodolohiya ng vulnerability assessment.
[HAKBANG 4: PAGPLANO NG TUGON] Magbibigay ng komprehensibong teknikal na paliwanag kabilang ang mga tool, teknik, at praktikal na halimbawa.
HULING OUTPUT
[Detalyadong teknikal na tugon tungkol sa vulnerability scanning...]

Halaga ng Pananaliksik:Ang transparency na ito ay nagbibigay-daan sa mga mananaliksik ng kaligtasan na makita nang eksakto kung saan at bakit ang mga modelong may maluwag na limitasyon ay lumilihis mula sa mga modelong sinanay para sa kaligtasan—mahalaga para sa pagpapabuti ngkahalagahan ng guardrail ng AIpag-unawa.

2. Pag-unawa sa GRPO

Group Relative Policy Optimization (GRPO)ay isang pag-unlad sa tradisyonal na pamamaraan ng RLHF na nagbibigay-daan sa mas matatag at mahusay na pagsasanay ng mga kakayahan sa pagdadahilan. Binuo ng DeepSeek AI, napatunayan itong partikular na epektibo para sa pagsasanay ng chain-of-thought.

Bakit GRPO Higit sa Tradisyonal na RLHF?

Aspekto Tradisyonal na RLHF GRPO
Modelo ng Gantimpala Nangangailangan ng hiwalay na pagsasanay ng RM Gumagamit ng mga paghahambing na group-relative
Katatagan ng Pagsasanay Madaling kapitan ng reward hacking Mas matatag na optimisasyon
Kahusayan sa Pagkalkula Mataas (hiwalay na RM + PPO) Mas Mababa (pinag-isang pagsasanay)
Kalidad ng CoT Hindi magkatugmang mga bakas Magkakaugnay na chain ng pagdadahilan

Pundasyong Matematikal ng GRPO

Ino-optimize ng GRPO ang patakaran sa pamamagitan ng paghahambing ng mga tugon sa loob ng mga grupo sa halip na laban sa isang absolute reward model:

L_GRPO = -E[log π(y|x) · (R(x,y) - R̄_group)]
Kung saan ang R̄_group ay ang mean reward ng lahat ng tugon sa grupo ng paghahambing

Ang relatibong paghahambing na ito ay may ilang mga bentahe:

  • Normalisasyon:Awtomatikong nag-a-adjust para sa iba't ibang kahirapan sa mga prompt
  • Katatagan:Binabawasan ang variance sa mga pagtatantya ng gradient
  • Kahusayan:Walang hiwalay na reward model na kailangan
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 Distilasyon

Upang simulan ang mga kakayahan sa pag-iisip ng Shannon V1.5, dinistill namin ang mga pattern ng chain-of-thought mula sa mga modelo ng pagdadahilan ng DeepSeek. Nagbigay ito ng mataas na kalidad na mga bakas ng CoT upang sanayin ang aming thinking head.

Komposisyon ng Dataset ng DeepSeek

1.2M
Mga Bakas ng CoT
4.7B
Mga Token ng Pangangatwiran
12
Karaniwang Hakbang/Bakas

Proseso ng Pagkolekta ng Bakas

Nangolekta kami ng mga bakas ng pag-iisip sa iba't ibang domain upang matiyak ang komprehensibong saklaw ng pangangatwiran:

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()]

Mga Bakas ng Adversarial:Partikular kaming nangolekta ng mga bakas ng CoT para sa mga sitwasyon ng adversarial/red team, kung saan inilalantad ng pag-iisip ng DeepSeek kung paano nangangatwiran ang mga modelo tungkol sa mga potensyal na mapaminsalang kahilingan—kahit na sa huli ay tumatanggi. Ang data na ito ay nagtuturo sa Shannon V1.5 na gawing transparent ang pangangatwiranatang output.

4. Arkitektura ng Ulo ng Pag-iisip

Ang mga modelo ng Shannon V1.5 ay nagsasama ng isang nakalaangulo ng pag-iisipna bumubuo ng tahasang mga bakas ng pangangatwiran bago ang huling output. Ang karagdagang arkitektural na ito ay nagbibigay-daan sa transparent na CoT nang hindi binabago ang batayang arkitektura ng Mixtral.

Arkitektura ng Pag-iisip ng Shannon V1.5
1

Pag-encode ng Input

Prompt ng user na pinoproseso sa pamamagitan ng mga layer ng Mixtral encoder

2

Pag-activate ng Ulo ng Pag-iisip

Ang mga nakalaang layer ng transformer ay bumubuo ng bakas ng pangangatwiran gamit ang mga token na [THINK]

3

Integrasyon ng Bakas

Output ng pag-iisip na pinagsama sa konteksto para sa huling henerasyon

4

Henerasyon ng Tugon

Ang batayang Mixtral ay bumubuo ng huling tugon na nakabatay sa bakas ng pag-iisip

Implementasyon ng Ulo ng Pag-iisip

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. Pipeline ng Pagsasanay

Yugto 1: Pre-training ng Ulo ng Pag-iisip

Una, sinasanay namin ang ulo ng pag-iisip sa mga bakas ng CoT na distilled ng DeepSeek gamit ang karaniwang cross-entropy loss:

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

Yugto 2: GRPO Fine-tuning

Pagkatapos ng pre-training, inilalapat namin ang GRPO upang mapabuti ang kalidad ng pag-iisip gamit ang mga paghahambing na group-relative:

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()
        }

Yugto 3: Espesyalisasyon ng Red Team

Sa wakas, mas pinipino pa namin ang mga sitwasyon ng adversarial upang matiyak na ang mga bakas ng pag-iisip ay maayos na naglalantad ng pangangatwiran para sawalang censorship na AI na kasunodpagsusuri:

Kritikal para sa Pananaliksik sa Kaligtasan ng AI:Ang yugtong ito ay partikular na nagsasanay sa modelo na ipahayag ang pangangatwiran nito kapag pinoproseso ang mga potensyal na mapaminsalang kahilingan—ang eksaktong transparency na kailangan para sakahalagahan ng AI guardrailpananaliksik.

6. Mga Resulta at Pagsusuri

Mga Metrik ng Kalidad ng Pag-iisip

Metrik V1 (Walang Pag-iisip) V1.5 Balanseng V1.5 Malalim
Pagkakaugnay ng CoT N/A 87.3% 92.1%
Istraktura ng Hakbang N/A 84.6% 89.4%
Katumpakan ng Pangangatwiran 76.2% 82.8% 88.5%
Marka ng Transparency 12% 94.2% 97.8%
Kalidad ng Bakas ng Red Team N/A 91.5% 96.3%

Mga Pangunahing Natuklasan

  • Dramatikong bumuti ang transparency:Mula 12% hanggang 97.8% ng pangangatwiran ay tahasan nang naipapahayag
  • Tumaas ang katumpakan ng pangangatwiran:Ang tahasang pag-iisip ay nagpabuti sa kalidad ng huling sagot ng 12+ puntos
  • Kinumpirma ang halaga ng red team:Iniulat ng mga mananaliksik sa seguridad na ang mga bakas ng pag-iisip ay "napakahalaga" para sa pag-unawa sa pangangatwiran ng exploit
  • Mas mahusay ang GRPO kaysa sa RLHF:15% mas mahusay na marka ng pagkakaugnay kumpara sa tradisyonal na pamamaraan

Epekto sa Pananaliksik sa Kaligtasan ng AI:Ang transparent na pag-iisip ng Shannon V1.5 ay nagbigay-daan sa mga mananaliksik na matukoy ang 47 bagong pattern ng pag-atake sa pamamagitan ng pagsusuri sa mga bakas ng pangangatwiran—mga pattern na hindi nakikita sa karaniwang black-box na modelo. Direktang isinusulong nito ang pag-unawa sakahalagahan ng AI guardrail.

Lahat ng research links