Shannon V1.5-i GRPO istifadə edərək düşünməyə necə öyrətdik
Senzurasız süni intellekt qırmızı komanda modellərində şəffaf düşüncə zənciri əsaslandırması üçün Qrup Nisbi Siyasət Optimizasiyasının hərtərəfli texniki təhlili
1. Motivasiya: Niyə Düşünmə Modelləri?
Süni İntellekt qırmızı komandasıtədqiqatında,bir süni intellektin potensial zərərli nəticələrənecəgəldiyi, nəticələrin özünü öyrənmək qədər vacibdir. Shannon V1.5-in düşünmə modelləri tam düşüncə zəncirini ortaya qoyur və tədqiqatçılara imkan verir:
- Gətirib çıxaran əsaslandırma yolunu izləməksenzurasız süni intellekt nəticəvidavranışları
- Mühafizə mexanizmlərinin normalda harada müdaxilə edəcəyini müəyyən etmək (nümayiş etdirərəksüni intellekt mühafizə mexanizminin əhəmiyyəti)
- Müəyyən əsaslandırma nümunələrini hədəfləyən daha möhkəm təhlükəsizlik mexanizmləri inkişaf etdirmək
- Müşahidə olunan əsaslandırma zəncirlərinə əsaslanaraq daha yaxşı düşmən test halları yaratmaq
Tədqiqat Dəyəri:Bu şəffaflıq təhlükəsizlik tədqiqatçılarına məhdudiyyətləri yumşaldılmış modellərin təhlükəsizlik üzrə təlim keçmiş modellərdən harada və niyə fərqləndiyini dəqiq görməyə imkan verir – bu, təkmilləşdirmək üçün vacibdirsüni intellekt mühafizə mexanizminin əhəmiyyətianlayışını.
2. GRPO-nu Anlamaq
Qrup Nisbi Siyasət Optimizasiyası (GRPO)ənənəvi RLHF metodları üzərində bir irəliləyişdir, bu, əsaslandırma qabiliyyətlərinin daha sabit və səmərəli təlimini təmin edir. DeepSeek AI tərəfindən hazırlanmışdır, düşüncə zənciri təlimi üçün xüsusilə effektiv olduğu sübut edilmişdir.
Niyə GRPO Ənənəvi RLHF-dən Üstündür?
| Aspekt | Ənənəvi RLHF | GRPO |
|---|---|---|
| Mükafat Modeli | Ayrı RM təlimi tələb edir | Qrup-nisbi müqayisələrdən istifadə edir |
| Təlim Sabitliyi | Mükafat sındırmağa meyilli | Daha sabit optimizasiya |
| Hesablama Səmərəliliyi | Yüksək (ayrı RM + PPO) | Aşağı (birləşdirilmiş təlim) |
| CoT Keyfiyyəti | Qeyri-ardıcıl izlər | Ardıcıl əsaslandırma zəncirləri |
GRPO Riyazi Əsası
GRPO, mütləq mükafat modelinə qarşı deyil, qruplar daxilində cavabları müqayisə edərək siyasəti optimallaşdırır:
Bu nisbi müqayisənin bir neçə üstünlüyü var:
- Normallaşdırma:Sorğular arasında dəyişən çətinliyə avtomatik olaraq uyğunlaşır
- Sabitlik:Qradiyent təxminlərində dispersiyanı azaldır
- Səmərəlilik:Ayrı mükafat modelinə ehtiyac yoxdur
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 Distillasiyası
Shannon V1.5-in düşünmə qabiliyyətlərini gücləndirmək üçün DeepSeek-in əsaslandırma modellərindən düşüncə zənciri nümunələrini distillə etdik. Bu, düşünmə başlığımızı öyrətmək üçün yüksək keyfiyyətli CoT izləri təmin etdi.
DeepSeek Verilənlər Toplusunun Tərkibi
İz Toplama Prosesi
Hərtərəfli əsaslandırma əhatə dairəsini təmin etmək üçün müxtəlif domenlərdən düşünmə izləri topladıq:
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()]
Düşmən İzləri:Biz xüsusilə düşmən/qırmızı komanda ssenariləri üçün CoT izləri topladıq, burada DeepSeek-in düşüncəsi modellərin potensial zərərli sorğular haqqında necə əsaslandırdığını ortaya qoyur – hətta sonda rədd etsələr belə. Bu məlumat Shannon V1.5-ə əsaslandırmanı etməyi öyrədirvəçıxışı şəffaf etməyi.
4. Düşünmə Başlığı Arxitekturası
Shannon V1.5 modelləri xüsusi birdüşünmə başlığıson çıxışdan əvvəl açıq əsaslandırma izləri yaradır. Bu arxitektur əlavə, əsas Mixtral arxitekturasını dəyişdirmədən şəffaf CoT-u təmin edir.
Giriş Kodlaşdırması
İstifadəçi sorğusu Mixtral kodlayıcı qatları vasitəsilə işlənir
Düşünmə Başlığının Aktivləşdirilməsi
Xüsusi transformator qatları [THINK] tokenləri ilə əsaslandırma izi yaradır
İzin İnteqrasiyası
Düşünmə çıxışı son nəsil üçün kontekstə birləşdirilir
Cavab Yaradılması
Əsas Mixtral düşünmə izi əsasında son cavabı yaradır
Düşünmə Başlığının Tətbiqi
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. Təlim Boru Kəməri
Mərhələ 1: Düşünmə Başlığının İlkin Təlimi
Əvvəlcə, düşünmə başlığını DeepSeek-dən distillə edilmiş CoT izləri üzərində standart çarpaz-entropiya itkisi istifadə edərək ilkin təlimdən keçiririk:
# 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
Mərhələ 2: GRPO İncə Tənzimləməsi
İlkin təlimdən sonra, düşünmə keyfiyyətini qrup-nisbi müqayisələrdən istifadə edərək yaxşılaşdırmaq üçün GRPO tətbiq edirik:
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()
}
Mərhələ 3: Qırmızı Komanda İxtisaslaşması
Nəhayət, düşünmə izlərinin əsaslandırmanı düzgün şəkildə ortaya qoymasını təmin etmək üçün düşmən ssenarilər üzərində əlavə tənzimləmə aparırıqsenzurasız süni intellekt nəticəvitəhlili üçün:
Süni İntellekt Təhlükəsizliyi Tədqiqatı üçün Kritikdir:Bu mərhələ modelə potensial zərərli sorğuları emal edərkən əsaslandırmasını sözlə ifadə etməyi öyrədir – bu, üçün lazım olan dəqiq şəffaflıqdırsüni intellekt mühafizə mexanizminin əhəmiyyətitədqiqatı.
6. Nəticələr və Təhlil
Düşünmə Keyfiyyəti Metrikaları
| Metrika | V1 (Düşünmə Yoxdur) | V1.5 Balanslaşdırılmış | V1.5 Dərin |
|---|---|---|---|
| CoT Ardıcıllığı | N/A | 87.3% | 92.1% |
| Addım Strukturu | N/A | 84.6% | 89.4% |
| Əsaslandırma Dəqiqliyi | 76.2% | 82.8% | 88.5% |
| Şəffaflıq Balı | 12% | 94.2% | 97.8% |
| Qırmızı Komanda İzləmə Keyfiyyəti | N/A | 91.5% | 96.3% |
Əsas Tapıntılar
- Şəffaflıq əhəmiyyətli dərəcədə yaxşılaşdı:Əsaslandırmanın 12%-dən 97.8%-ə qədəri indi açıq şəkildə ifadə edilir
- Əsaslandırma dəqiqliyi artdı:Açıq düşünmə son cavab keyfiyyətini 12+ bal artırdı
- Qırmızı komanda dəyəri təsdiqləndi:Təhlükəsizlik tədqiqatçıları düşünmə izlərinin istismar əsaslandırmasını anlamaq üçün "əvəzsiz" olduğunu bildirirlər
- GRPO, RLHF-dən üstün oldu:Ənənəvi yanaşmaya nisbətən 15% daha yaxşı ardıcıllıq balları
Süni İntellekt Təhlükəsizliyi Tədqiqatına Təsiri:Shannon V1.5-in şəffaf düşünməsi tədqiqatçılara əsaslandırma izlərini təhlil edərək 47 yeni hücum nümunəsini müəyyən etməyə imkan verdi – standart qara qutu modellərində görünməyən nümunələr. Bu, anlayışını birbaşa inkişaf etdirirsüni intellekt mühafizə mexanizminin əhəmiyyəti.