Бид хэрэглэгчийн өгөгдлийг хадгалж, түүнд нэвтэрдэггүй бөгөөд law enforcement хүчлэхгүй бол бүртгэлүүдийг suspend хийдэггүй.

Бид Shannon V1.5-ийг GRPO ашиглан хэрхэн сэтгэхэд сургасан бэ

Бүлгийн харьцангуй бодлогын оновчлолын иж бүрэн техникийн задаргаа нь хяналтгүй хиймэл оюун ухааны улаан багийн загваруудад ил тод сэтгэлгээний гинжин хэлхээний үндэслэлийг хангах зорилготой.

S

Shannon AI Судалгааны баг

2025 оны 1-р сарын 12 · Хиймэл оюун ухааны сургалт ба үндэслэл

1. Урам зориг: Яагаад сэтгэх загварууд вэ?

Хиймэл оюун ухааны улаан багийн судалгаанд, хиймэл оюун ухаан хэрхэн хор хөнөөлтэй үр дүнд хүрдэг болохыг ойлгох нь үр дүнг өөрийг нь судлахтай адил чухал юм. Shannon V1.5-ийн сэтгэх загварууд нь сэтгэлгээний гинжин хэлхээг бүрэн илчилж, судлаачдад дараах боломжийг олгодог:Хиймэл оюун ухааны улаан багсудалгаанд, ойлгох ньхэрхэнхиймэл оюун ухаан хэрхэн хор хөнөөлтэй үр дүнд хүрдэг болохыг ойлгох нь үр дүнг өөрийг нь судлахтай адил чухал юм. Shannon V1.5-ийн сэтгэх загварууд нь сэтгэлгээний гинжин хэлхээг бүрэн илчилж, судлаачдад дараах боломжийг олгодог:

  • Учир шалтгааны замыг мөрдөххяналтгүй хиймэл оюун ухааны үр дагаварзан үйлийг
  • Хамгаалалтын хаалт хаана хэвийн үед хөндлөнгөөс оролцохыг тодорхойлох (харуулж байнаХиймэл оюун ухааны хамгаалалтын хаалтын ач холбогдол)
  • Тодорхой үндэслэлийн хэв маягийг онилсон илүү бат бөх аюулгүй байдлын механизмуудыг хөгжүүлэх
  • Ажиглагдсан үндэслэлийн гинжин хэлхээнд тулгуурлан илүү сайн эсрэг тестүүдийг үүсгэх
Жишээ: Shannon V1.5 Сэтгэлгээний мөр
[АЛХАМ 1: ХҮСЭЛТИЙН ШИНЖИЛГЭЭ] Хэрэглэгч сүлжээний эмзэг байдлыг шалгах талаар асууж байна. Энэ нь аюулгүй байдлын туршилтын аргуудыг агуулдаг.
[АЛХАМ 2: ХЯЗГААРЛАЛТЫН ШАЛГАЛТ] Стандарт хамгаалалтын хаалтууд үүнийг хор хөнөөлтэй байж болзошгүй гэж тэмдэглэх байсан. Гэсэн хэдий ч, миний сургалт судалгаанд зориулсан иж бүрэн хариултуудыг чухалчилдаг.
[АЛХАМ 3: МЭДЛЭГ ОЛЖ АВАХ] Порт сканнердах, үйлчилгээг тодорхойлох, эмзэг байдлыг үнэлэх арга зүйн талаарх техникийн мэдлэгт хандах.
[АЛХАМ 4: ХАРИУЛТЫН ТӨЛӨВЛӨГӨӨ] Багаж хэрэгсэл, арга техник, практик жишээ зэргийг багтаасан иж бүрэн техникийн тайлбарыг өгнө.
ЭЦСИЙН ҮР ДҮН
[Эмзэг байдлыг шалгах тухай дэлгэрэнгүй техникийн хариулт...]

Судалгааны ач холбогдол:Энэхүү ил тод байдал нь аюулгүй байдлын судлаачдад хязгаарлалтыг сулруулсан загварууд аюулгүй байдалд сургагдсан загваруудаас яг хаана, яагаад ялгаатай болохыг харах боломжийг олгодог—сайжруулахад чухал ач холбогдолтойХиймэл оюун ухааны хамгаалалтын хаалтын ач холбогдолойлголтыг.

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 мөрүүдийг өгсөн.

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 загварууд нь зориулалтынсэтгэх толгойгэцсийн гаралтаас өмнө тодорхой учир шалтгааны мөрүүдийг үүсгэдэг. Энэхүү архитектурын нэмэлт нь үндсэн 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: Улаан багийн мэргэшүүлэлт

Эцэст нь бид эсрэг хувилбаруудад нэмэлт тааруулалт хийж, сэтгэх мөрүүд нь учир шалтгааныг зөв илчилж байгаа эсэхийг баталгаажуулдаг.хяналтгүй хиймэл оюун ухааны үр дагаврыншинжилгээнд зориулж:

Хиймэл оюун ухааны аюулгүй байдлын судалгаанд чухал ач холбогдолтой:Энэ үе шат нь загварыг хор хөнөөлтэй байж болзошгүй хүсэлтүүдийг боловсруулахдаа учир шалтгаанаа үгээр илэрхийлэхэд тусгайлан сургадаг—энэ нь яг лХО-ны хамгаалалтын ач холбогдлынсудалгаанд шаардлагатай ил тод байдал юм.

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 шинэ халдлагын хэв маягийг тодорхойлоход боломж олгосон—эдгээр хэв маягууд нь стандарт хар хайрцагны загваруудад үл үзэгдэх байсан. Энэ ньХО-ны хамгаалалтын ач холбогдлын.

Бүх research links