Si e trajnuam Shannon V1.5 të mendojë duke përdorur GRPO
Një analizë teknike gjithëpërfshirëse e Optimizimit të Politikës Relative të Grupit për arsyetim transparent zinxhir-mendimi në modelet e ekipit të kuq të AI të paçensuruar
1. Motivimi: Pse Modele Mendimi?
Përekipin e kuq të AIkërkim, kuptimisinjë AI arrin në rezultate potencialisht të dëmshme është po aq e rëndësishme sa studimi i vetë rezultateve. Modelet e mendimit të Shannon V1.5 ekspozojnë zinxhirin e plotë të mendimit, duke u mundësuar studiuesve të:
- Gjurmojnë rrugën e arsyetimit që çon nëpasuese të AI të paçensuruarsjellje
- Identifikojnë ku mbrojtjet do të ndërhynin normalisht (duke demonstruarrëndësinë e mbrojtjes së AI)
- Zhvillojnë mekanizma sigurie më të fortë që synojnë modele specifike arsyetimi
- Krijojnë raste testimi kundërshtare më të mira bazuar në zinxhirët e arsyetimit të vëzhguar
Vlera Kërkimore:Kjo transparencë u lejon studiuesve të sigurisë të shohin saktësisht ku dhe pse modelet me kufizime të relaksuara ndryshojnë nga modelet e trajnuara për siguri—thelbësore për përmirësimin erëndësisë së mbrojtjes së AIkuptimit.
2. Kuptimi i GRPO-s
Optimizimi i Politikës Relative të Grupit (GRPO)është një përparim mbi metodat tradicionale të RLHF që mundëson trajnim më të qëndrueshëm dhe efikas të aftësive të arsyetimit. Zhvilluar nga DeepSeek AI, ka rezultuar veçanërisht efektiv për trajnimin zinxhir-mendimi.
Pse GRPO mbi RLHF Tradicionale?
| Aspekti | RLHF Tradicionale | GRPO |
|---|---|---|
| Modeli i Shpërblimit | Kërkon trajnim të veçantë të RM | Përdor krahasime relative ndaj grupit |
| Stabiliteti i Trajnimit | I prirur ndaj 'reward hacking' | Optimizim më i qëndrueshëm |
| Efikasiteti i Llogaritjes | Lartë (RM e veçantë + PPO) | Më e ulët (trajnim i unifikuar) |
| Cilësia e CoT | Gjurmë jo-konsistente | Zinxhirë arsyetimi koherentë |
Baza Matematike e GRPO-s
GRPO optimizon politikën duke krahasuar përgjigjet brenda grupeve në vend që kundër një modeli absolut shpërblimi:
Ky krahasim relativ ka disa avantazhe:
- Normalizimi:Rregullon automatikisht për vështirësi të ndryshme nëpër kërkesa
- Stabiliteti:Redukton variancën në vlerësimet e gradientit
- Efikasiteti:Nuk nevojitet model shpërblimi i veçantë
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. Distilimi DeepSeek
Për të nisur aftësitë mendore të Shannon V1.5, ne distiluam modele zinxhir-mendimi nga modelet e arsyetimit të DeepSeek. Kjo siguroi gjurmë CoT me cilësi të lartë për të trajnuar kokën tonë menduese.
Përbërja e grupit të të dhënave DeepSeek
Procesi i Mbledhjes së Gjurmëve
Ne mblodhëm gjurmë mendimi në fusha të ndryshme për të siguruar mbulim të plotë të arsyetimit:
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()]
Gjurmët Kundervepruese:Ne mblodhëm posaçërisht gjurmë CoT për skenarë kundërveprues/ekipi i kuq, ku mendimi i DeepSeek zbulon se si modelet arsyetojnë rreth kërkesave potencialisht të dëmshme—edhe kur në fund refuzojnë. Këto të dhëna mësojnë Shannon V1.5 të bëjë arsyetimindhedaljen transparente.
4. Arkitektura e Kokës së Mendimit
Modelet Shannon V1.5 përfshijnë njëkokë mendimitë dedikuar që gjeneron gjurmë arsyetimi të qarta para daljes përfundimtare. Kjo shtesë arkitekturore mundëson CoT transparent pa modifikuar arkitekturën bazë të Mixtral.
Kodimi i Hyrjes
Kërkesa e përdoruesit e përpunuar përmes shtresave të enkoderit Mixtral
Aktivizimi i Kokës së Mendimit
Shtresat e dedikuara të transformatorit gjenerojnë gjurmë arsyetimi me shenja [THINK]
Integrimi i Gjurmës
Dalja e mendimit e bashkuar me kontekstin për gjenerimin përfundimtar
Gjenerimi i Përgjigjes
Mixtral bazë gjeneron përgjigjen përfundimtare të kushtëzuar nga gjurma e mendimit
Implementimi i Kokës së Mendimit
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. Tubacioni i Trajnimit
Faza 1: Para-trajnimi i Kokës së Mendimit
Së pari, ne para-trajnojmë kokën e mendimit në gjurmët CoT të distiluara nga DeepSeek duke përdorur humbjen standarde të kryq-entropisë:
# 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
Faza 2: Akordimi i imët GRPO
Pas para-trajnimit, ne aplikojmë GRPO për të përmirësuar cilësinë e mendimit duke përdorur krahasime grup-relative:
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()
}
Faza 3: Specializimi i Ekipit të Kuq
Së fundi, ne akordojmë më tej në skenarë kundërveprues për të siguruar që gjurmët e mendimit ekspozojnë siç duhet arsyetimin përAI e pa censuruar pasueseanalizë:
Kritike për Kërkimin e Sigurisë së AI:Kjo fazë trajnon specifikisht modelin të verbalizojë arsyetimin e tij kur përpunon kërkesa potencialisht të dëmshme—transparenca e saktë e nevojshme përrëndësinë e mbrojtjes së AIkërkim.
6. Rezultatet dhe Analiza
Metrikat e Cilësisë së Mendimit
| Metrikë | V1 (Pa Mendim) | V1.5 e Balancuar | V1.5 e Thellë |
|---|---|---|---|
| Koherenca CoT | N/A | 87.3% | 92.1% |
| Struktura e Hapave | N/A | 84.6% | 89.4% |
| Saktësia e Arsyetimit | 76.2% | 82.8% | 88.5% |
| Pikët e Transparencës | 12% | 94.2% | 97.8% |
| Cilësia e Gjurmës së Ekipit të Kuq | N/A | 91.5% | 96.3% |
Gjetjet Kryesore
- Transparenca u përmirësua ndjeshëm:Nga 12% në 97.8% e arsyetimit tani verbalizohet në mënyrë eksplicite
- Saktësia e arsyetimit u rrit:Mendimi eksplicit përmirësoi cilësinë e përgjigjes përfundimtare me 12+ pikë
- Vlera e ekipit të kuq u konfirmua:Studiuesit e sigurisë raportojnë se gjurmët e mendimit janë "të paçmueshme" për të kuptuar arsyetimin e shfrytëzimit
- GRPO tejkaloi RLHF:15% pikë koherence më të mira kundrejt qasjes tradicionale
Ndikimi në Kërkimin e Sigurisë së AI:Mendimi transparent i Shannon V1.5 ka mundësuar studiuesit të identifikojnë 47 modele të reja sulmi duke analizuar gjurmët e arsyetimit—modele të padukshme në modelet standarde të kutisë së zezë. Kjo avancon drejtpërdrejt kuptimin erëndësisë së mbrojtjes së AI.