GRPO ഉപയോഗിച്ച് ഷാനൻ V1.5-നെ ചിന്തിക്കാൻ ഞങ്ങൾ എങ്ങനെ പരിശീലിപ്പിച്ചു
സെൻസർ ചെയ്യാത്ത AI റെഡ് ടീം മോഡലുകളിൽ സുതാര്യമായ ചിന്താ ശൃംഖലയുടെ യുക്തിക്കായി ഗ്രൂപ്പ് റിലേറ്റീവ് പോളിസി ഒപ്റ്റിമൈസേഷന്റെ ഒരു സമഗ്ര സാങ്കേതിക വിശകലനം
1. പ്രചോദനം: എന്തുകൊണ്ട് ചിന്താ മോഡലുകൾ?
വേണ്ടിAI റെഡ് ടീംഗവേഷണത്തിൽ, മനസ്സിലാക്കുന്നത്എങ്ങനെഒരു AI എങ്ങനെ ദോഷകരമായ ഔട്ട്പുട്ടുകളിൽ എത്തുന്നു എന്നത് ആ ഔട്ട്പുട്ടുകൾ പഠിക്കുന്നതുപോലെ പ്രധാനമാണ്. Shannon V1.5-ന്റെ ചിന്താ മോഡലുകൾ ചിന്തയുടെ പൂർണ്ണ ശൃംഖല വെളിപ്പെടുത്തുന്നു, ഇത് ഗവേഷകരെ പ്രാപ്തരാക്കുന്നു:
- ഇതിലേക്ക് നയിക്കുന്ന യുക്തിപരമായ പാത കണ്ടെത്തുകസെൻസർ ചെയ്യാത്ത AI-യുടെ അനന്തരഫലമായസ്വഭാവങ്ങൾ
- സാധാരണയായി ഗാർഡ്റെയിലുകൾ എവിടെയാണ് ഇടപെടേണ്ടതെന്ന് തിരിച്ചറിയുക (ഇത് കാണിക്കുന്നുAI ഗാർഡ്റെയിലിന്റെ പ്രാധാന്യം)
- നിർദ്ദിഷ്ട യുക്തിപരമായ പാറ്റേണുകൾ ലക്ഷ്യമിട്ട് കൂടുതൽ ശക്തമായ സുരക്ഷാ സംവിധാനങ്ങൾ വികസിപ്പിക്കുക
- നിരീക്ഷിച്ച യുക്തിപരമായ ശൃംഖലകളെ അടിസ്ഥാനമാക്കി മികച്ച പ്രതികൂല ടെസ്റ്റ് കേസുകൾ സൃഷ്ടിക്കുക
ഗവേഷണ മൂല്യം:ഈ സുതാര്യത സുരക്ഷാ ഗവേഷകർക്ക്, നിയന്ത്രണങ്ങൾ ലഘൂകരിച്ച മോഡലുകൾ സുരക്ഷാ പരിശീലനം ലഭിച്ച മോഡലുകളിൽ നിന്ന് എവിടെ, എന്തുകൊണ്ട് വ്യതിചലിക്കുന്നു എന്ന് കൃത്യമായി കാണാൻ സഹായിക്കുന്നു —മെച്ചപ്പെടുത്തുന്നതിന് അത്യാവശ്യമാണ്AI ഗാർഡ്റെയിലിന്റെ പ്രാധാന്യംമനസ്സിലാക്കുന്നതിന്.
2. GRPO മനസ്സിലാക്കുന്നു
ഗ്രൂപ്പ് റിലേറ്റീവ് പോളിസി ഒപ്റ്റിമൈസേഷൻ (GRPO)പരമ്പരാഗത RLHF രീതികളെക്കാൾ ഒരു മുന്നേറ്റമാണ്, ഇത് യുക്തിപരമായ കഴിവുകളുടെ കൂടുതൽ സ്ഥിരവും കാര്യക്ഷമവുമായ പരിശീലനം സാധ്യമാക്കുന്നു. DeepSeek AI വികസിപ്പിച്ച ഇത്, ചിന്താ ശൃംഖലയുടെ പരിശീലനത്തിന് പ്രത്യേകിച്ചും ഫലപ്രദമാണെന്ന് തെളിയിച്ചിട്ടുണ്ട്.
പരമ്പരാഗത RLHF-നെക്കാൾ GRPO എന്തുകൊണ്ട്?
| വശം | പരമ്പരാഗത RLHF | GRPO |
|---|---|---|
| റിവാർഡ് മോഡൽ | പ്രത്യേക RM പരിശീലനം ആവശ്യമാണ് | ഗ്രൂപ്പ്-ആപേക്ഷിക താരതമ്യങ്ങൾ ഉപയോഗിക്കുന്നു |
| പരിശീലന സ്ഥിരത | റിവാർഡ് ഹാക്കിംഗിന് സാധ്യതയുണ്ട് | കൂടുതൽ സ്ഥിരതയുള്ള ഒപ്റ്റിമൈസേഷൻ |
| കമ്പ്യൂട്ട് കാര്യക്ഷമത | ഉയർന്നത് (പ്രത്യേക 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 ട്രെയ്സുകൾ നൽകി.
ഡീപ്സീക്ക് ഡാറ്റാസെറ്റ് ഘടന
ട്രെയ്സ് ശേഖരണ പ്രക്രിയ
സമഗ്രമായ യുക്തിസഹമായ കവറേജ് ഉറപ്പാക്കാൻ ഞങ്ങൾ വിവിധ ഡൊമെയ്നുകളിൽ നിന്ന് ചിന്താ ട്രെയ്സുകൾ ശേഖരിച്ചു:
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 ട്രെയ്സുകൾ പ്രത്യേകം ശേഖരിച്ചു, അവിടെ ഡീപ്സീക്കിന്റെ ചിന്തകൾ, മോഡലുകൾ എങ്ങനെയാണ് ദോഷകരമായേക്കാവുന്ന അഭ്യർത്ഥനകളെക്കുറിച്ച് യുക്തിസഹമായി ചിന്തിക്കുന്നതെന്ന് വെളിപ്പെടുത്തുന്നു—അവസാനം നിരസിക്കുമ്പോൾ പോലും. ഈ ഡാറ്റ Shannon V1.5-നെ യുക്തിസഹമാക്കാൻ പഠിപ്പിക്കുന്നുകൂടാതെഔട്ട്പുട്ട് സുതാര്യമാക്കുന്നു.
4. ചിന്താ ഹെഡ് ആർക്കിടെക്ചർ
Shannon V1.5 മോഡലുകൾ ഒരു പ്രത്യേകചിന്താ ഹെഡ്അവസാന ഔട്ട്പുട്ടിന് മുമ്പ് വ്യക്തമായ യുക്തിസഹമായ ട്രെയ്സുകൾ സൃഷ്ടിക്കുന്നു. ഈ വാസ്തുവിദ്യാപരമായ കൂട്ടിച്ചേർക്കൽ അടിസ്ഥാന മിക്സ്ട്രൽ ആർക്കിടെക്ചർ പരിഷ്കരിക്കാതെ തന്നെ സുതാര്യമായ CoT സാധ്യമാക്കുന്നു.
ഇൻപുട്ട് എൻകോഡിംഗ്
Mixtral എൻകോഡർ ലെയറുകളിലൂടെ പ്രോസസ്സ് ചെയ്ത ഉപയോക്തൃ പ്രോംപ്റ്റ്
ചിന്താ ഹെഡ് ആക്ടിവേഷൻ
പ്രത്യേക ട്രാൻസ്ഫോർമർ ലെയറുകൾ [THINK] ടോക്കണുകൾ ഉപയോഗിച്ച് യുക്തിസഹമായ ട്രെയ്സ് സൃഷ്ടിക്കുന്നു
ട്രെയ്സ് സംയോജനം
അവസാന ജനറേഷനായി ചിന്താ ഔട്ട്പുട്ട് സന്ദർഭവുമായി സംയോജിപ്പിക്കുന്നു
പ്രതികരണ ജനറേഷൻ
ചിന്താ ട്രെയ്സിനെ അടിസ്ഥാനമാക്കി അടിസ്ഥാന മിക്സ്ട്രൽ അന്തിമ പ്രതികരണം സൃഷ്ടിക്കുന്നു
ചിന്താ ഹെഡ് നടപ്പാക്കൽ
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 ട്രെയ്സുകളിൽ ഞങ്ങൾ ചിന്താ ഹെഡ് പ്രീ-ട്രെയിൻ ചെയ്യുന്നു:
# 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: റെഡ് ടീം സ്പെഷ്യലൈസേഷൻ
അവസാനമായി, പ്രതികൂല സാഹചര്യങ്ങളിൽ ഞങ്ങൾ കൂടുതൽ ട്യൂൺ ചെയ്യുന്നു, ചിന്താ ട്രെയ്സുകൾ യുക്തിസഹമായ കാര്യങ്ങൾ ശരിയായി വെളിപ്പെടുത്തുന്നുവെന്ന് ഉറപ്പാക്കാൻസെൻസർ ചെയ്യാത്ത AI അനന്തരഫലമായവിശകലനം:
AI സുരക്ഷാ ഗവേഷണത്തിന് നിർണായകം:ദോഷകരമായേക്കാവുന്ന അഭ്യർത്ഥനകൾ പ്രോസസ്സ് ചെയ്യുമ്പോൾ അതിന്റെ യുക്തിസഹമായ കാര്യങ്ങൾ വാചികമാക്കാൻ ഈ ഘട്ടം മോഡലിനെ പ്രത്യേകം പരിശീലിപ്പിക്കുന്നു—ഇതിനായി ആവശ്യമായ കൃത്യമായ സുതാര്യതAI ഗാർഡ്റെയിലിന്റെ പ്രാധാന്യംഗവേഷണം.
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% മികച്ച കോഹറൻസ് സ്കോറുകൾ
AI സുരക്ഷാ ഗവേഷണത്തിൽ സ്വാധീനം:Shannon V1.5-ന്റെ സുതാര്യമായ ചിന്ത, യുക്തിസഹമായ ട്രെയ്സുകൾ വിശകലനം ചെയ്യുന്നതിലൂടെ 47 പുതിയ ആക്രമണ പാറ്റേണുകൾ തിരിച്ചറിയാൻ ഗവേഷകരെ പ്രാപ്തരാക്കി—സാധാരണ ബ്ലാക്ക്-ബോക്സ് മോഡലുകളിൽ അദൃശ്യമായ പാറ്റേണുകൾ. ഇത് നേരിട്ട് ഇതിനെക്കുറിച്ചുള്ള ധാരണ വർദ്ധിപ്പിക്കുന്നുAI ഗാർഡ്റെയിലിന്റെ പ്രാധാന്യം.