Shannon V1.5ን GRPOን በመጠቀም እንዲያስብ እንዴት እንዳሰለጠንነው
ባልተጣሩ የአርቴፊሻል ኢንተለጀንስ ቀይ ቡድን ሞዴሎች ውስጥ ግልጽ የሆነ የአስተሳሰብ ሰንሰለት አመክንዮ ለማግኘት የቡድን አንጻራዊ ፖሊሲ ማመቻቸት (Group Relative Policy Optimization) አጠቃላይ ቴክኒካዊ ትንተና
1. ምክንያት፡ የአስተሳሰብ ሞዴሎች ለምን አስፈለጉ?
ለየአርቴፊሻል ኢንተለጀንስ ቀይ ቡድንምርምር፣ መረዳትእንዴትአንድ አርቴፊሻል ኢንተለጀንስ አደገኛ ሊሆኑ የሚችሉ ውጤቶች ላይ እንዴት እንደሚደርስ ማወቅ ውጤቶቹን ራሳቸውን እንደማጥናት ሁሉ አስፈላጊ ነው። የShannon V1.5 የአስተሳሰብ ሞዴሎች ሙሉውን የአስተሳሰብ ሰንሰለት ያሳያሉ፣ ይህም ተመራማሪዎች የሚከተሉትን እንዲያደርጉ ያስችላቸዋል፦
- ወደሚያመራውን የአመክንዮ መንገድ መከታተልባልተጣራ የአርቴፊሻል ኢንተለጀንስ ተከታይባህሪያት
- የጥበቃ መስመሮች በተለምዶ የት ጣልቃ እንደሚገቡ መለየት (የሚያሳየውየአርቴፊሻል ኢንተለጀንስ የጥበቃ መስመር አስፈላጊነት)
- የተወሰኑ የአመክንዮ ዘይቤዎችን ኢላማ የሚያደርጉ ይበልጥ ጠንካራ የደህንነት ዘዴዎችን ማዘጋጀት
- በታዩ የአመክንዮ ሰንሰለቶች ላይ ተመስርተው የተሻሉ ተቃራኒ የሙከራ ጉዳዮችን መፍጠር
የምርምር ዋጋ፦ይህ ግልጽነት የደህንነት ተመራማሪዎች ገደብ የለሽ ሞዴሎች ከደህንነት የሰለጠኑ ሞዴሎች የት እና ለምን እንደሚለያዩ በትክክል እንዲያዩ ያስችላቸዋል—ለማሻሻል አስፈላጊ ነውየአርቴፊሻል ኢንተለጀንስ የጥበቃ መስመር አስፈላጊነትመረዳት።
2. GRPOን መረዳት
የቡድን አንጻራዊ ፖሊሲ ማመቻቸት (GRPO)ከተለመዱት የRLHF ዘዴዎች የላቀ ሲሆን ይበልጥ የተረጋጋና ቀልጣፋ የአመክንዮ ችሎታዎችን ስልጠና ያስችላል። በDeepSeek AI የተሰራ ሲሆን፣ በተለይ ለአስተሳሰብ ሰንሰለት ስልጠና ውጤታማ ሆኖ ተገኝቷል።
GRPO ከተለመደው RLHF ለምን ይሻላል?
| ገጽታ | ባህላዊ 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 ፍሰቶች አቅርቧል።
የ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 ሞዴሎች የተወሰነየአስተሳሰብ ራስከመጨረሻው ውጤት በፊት ግልጽ የአመክንዮ ፍሰቶችን የሚያመነጭ። ይህ አርክቴክቸር መጨመር መሰረታዊውን የMixtral አርክቴክቸር ሳይቀይር ግልጽ CoTን ያስችላል።
የግብዓት ኢንኮዲንግ
የተጠቃሚ ጥያቄ በ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፡ የአስተሳሰብ ራስ ቅድመ-ስልጠና
በመጀመሪያ፣ የአስተሳሰብ ራሱን በDeepSeek-የተጣሩ የ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፡ የቀይ ቡድን ስፔሻላይዜሽን
በመጨረሻም፣ የአስተሳሰብ ፍሰቶች አመክንዮውን በትክክል እንዲያሳዩ ለማረጋገጥ በተቃራኒ ሁኔታዎች ላይ ተጨማሪ ማስተካከያ እናደርጋለንባልተጣራ የአርቴፊሻል ኢንተለጀንስ ተከታይትንተና፦
ለአርቴፊሻል ኢንተለጀንስ ደህንነት ምርምር ወሳኝ፦ይህ ደረጃ ሞዴሉ አደገኛ ሊሆኑ የሚችሉ ጥያቄዎችን ሲሰራ አመክንዮውን በቃል እንዲገልጽ ያሰለጥነዋል—ለሚያስፈልገው ትክክለኛ ግልጽነትየአርቴፊሻል ኢንተለጀንስ የጥበቃ መስመር አስፈላጊነትምርምር።
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 አዳዲስ የጥቃት ዘይቤዎችን እንዲለዩ አስችሏቸዋል—እነዚህ ዘይቤዎች በመደበኛ ጥቁር-ሳጥን ሞዴሎች ውስጥ የማይታዩ ናቸው። ይህም በቀጥታ የየአርቴፊሻል ኢንተለጀንስ የጥበቃ መስመር አስፈላጊነት.