Πώς εκπαιδεύσαμε το Shannon V1.5 να σκέφτεται χρησιμοποιώντας GRPO
Μια ολοκληρωμένη τεχνική ανάλυση της Βελτιστοποίησης Πολιτικής Σχετικής με Ομάδες για διαφανή συλλογιστική αλυσίδας σκέψης σε μοντέλα κόκκινης ομάδας AI χωρίς λογοκρισία
1. Κίνητρο: Γιατί Μοντέλα Σκέψης;
Γιατην κόκκινη ομάδα AIέρευνα, η κατανόησητου πώςένα AI καταλήγει σε δυνητικά επιβλαβείς εξόδους είναι εξίσου σημαντικό με τη μελέτη των ίδιων των εξόδων. Τα μοντέλα σκέψης του Shannon V1.5 αποκαλύπτουν την πλήρη αλυσίδα σκέψης, επιτρέποντας στους ερευνητές να:
- Ανιχνεύουν τη διαδρομή συλλογιστικής που οδηγεί σεμη λογοκριζόμενες συνέπειες AIσυμπεριφορές
- Προσδιορίζουν πού θα παρενέβαιναν κανονικά οι δικλείδες ασφαλείας (αποδεικνύονταςτη σημασία των δικλείδων ασφαλείας AI)
- Αναπτύσσουν πιο ισχυρούς μηχανισμούς ασφαλείας που στοχεύουν συγκεκριμένα μοτίβα συλλογιστικής
- Δημιουργούν καλύτερες αντίπαλες περιπτώσεις δοκιμής βασισμένες σε παρατηρούμενες αλυσίδες συλλογιστικής
Ερευνητική Αξία:Αυτή η διαφάνεια επιτρέπει στους ερευνητές ασφαλείας να δουν ακριβώς πού και γιατί τα μοντέλα με χαλαρούς περιορισμούς αποκλίνουν από τα μοντέλα που έχουν εκπαιδευτεί για ασφάλεια — απαραίτητο για τη βελτίωσητης σημασίας των δικλείδων ασφαλείας AIκατανόησης.
2. Κατανόηση του GRPO
Η Βελτιστοποίηση Πολιτικής Σχετικής με Ομάδες (GRPO) είναι μια πρόοδος σε σχέση με τις παραδοσιακές μεθόδους RLHF που επιτρέπει πιο σταθερή και αποτελεσματική εκπαίδευση των δυνατοτήτων συλλογιστικής. Αναπτύχθηκε από την DeepSeek AI, έχει αποδειχθεί ιδιαίτερα αποτελεσματικό για την εκπαίδευση αλυσίδας σκέψης.είναι μια πρόοδος σε σχέση με τις παραδοσιακές μεθόδους RLHF που επιτρέπει πιο σταθερή και αποτελεσματική εκπαίδευση των δυνατοτήτων συλλογιστικής. Αναπτύχθηκε από την DeepSeek AI, έχει αποδειχθεί ιδιαίτερα αποτελεσματικό για την εκπαίδευση αλυσίδας σκέψης.
Γιατί GRPO έναντι Παραδοσιακού RLHF;
| Πτυχή | Παραδοσιακό RLHF | GRPO |
|---|---|---|
| Μοντέλο Ανταμοιβής | Απαιτεί ξεχωριστή εκπαίδευση RM | Χρησιμοποιεί συγκρίσεις σχετικές με την ομάδα |
| Σταθερότητα Εκπαίδευσης | Επιρρεπές σε hacking ανταμοιβής | Πιο σταθερή βελτιστοποίηση |
| Αποδοτικότητα Υπολογισμού | Υψηλή (ξεχωριστό RM + PPO) | Χαμηλότερη (ενοποιημένη εκπαίδευση) |
| Ποιότητα CoT | Ασυνεπείς ιχνηλατήσεις | Συνεκτικές αλυσίδες συλλογιστικής |
Μαθηματική Βάση GRPO
Το GRPO βελτιστοποιεί την πολιτική συγκρίνοντας τις απαντήσεις εντός ομάδων αντί έναντι ενός απόλυτου μοντέλου ανταμοιβής:
Αυτή η σχετική σύγκριση έχει πολλά πλεονεκτήματα:
- Κανονικοποίηση:Προσαρμόζεται αυτόματα για ποικίλες δυσκολίες σε διαφορετικές προτροπές
- Σταθερότητα:Μειώνει τη διακύμανση στις εκτιμήσεις κλίσης
- Αποδοτικότητα:Δεν απαιτείται ξεχωριστό μοντέλο ανταμοιβής
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
Διαδικασία Συλλογής Ιχνών
Συλλέξαμε ίχνη σκέψης από διάφορους τομείς για να διασφαλίσουμε την ολοκληρωμένη κάλυψη συλλογισμού:
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 ενσωματώνουν μια ειδικήκεφαλή σκέψηςπου παράγει σαφή ίχνη συλλογισμού πριν από την τελική έξοδο. Αυτή η αρχιτεκτονική προσθήκη επιτρέπει διαφανές CoT χωρίς να τροποποιεί την βασική αρχιτεκτονική Mixtral.
Κωδικοποίηση Εισόδου
Προτροπή χρήστη επεξεργασμένη μέσω των στρωμάτων κωδικοποιητή Mixtral
Ενεργοποίηση Κεφαλής Σκέψης
Αφιερωμένα στρώματα μετασχηματιστή παράγουν ίχνος συλλογισμού με διακριτικά [THINK]
Ενσωμάτωση Ίχνους
Έξοδος σκέψης συνενωμένη με το πλαίσιο για τελική παραγωγή
Παραγωγή Απόκρισης
Το βασικό Mixtral παράγει την τελική απόκριση υπό την προϋπόθεση του ίχνους σκέψης
Υλοποίηση Κεφαλής Σκέψης
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: Προ-εκπαίδευση Κεφαλής Σκέψης
Πρώτον, προ-εκπαιδεύουμε την κεφαλή σκέψης σε ίχνη CoT που έχουν αποσταχθεί από το DeepSeek χρησιμοποιώντας τυπική απώλεια διασταυρούμενης εντροπίας:
# 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 για να βελτιώσουμε την ποιότητα σκέψης χρησιμοποιώντας συγκρίσεις σχετικές με την ομάδα:
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 νέα μοτίβα επίθεσης αναλύοντας ίχνη συλλογισμού—μοτίβα αόρατα σε τυπικά μοντέλα μαύρου κουτιού. Αυτό προωθεί άμεσα την κατανόηση τηςσημασίας των προστατευτικών κιγκλιδωμάτων ΤΝ.