我们如何通过 OpenRouter 蒸馏在 GPT-5 Pro 上训练 Mixtral
Shannon AI 知识蒸馏管道的全面技术分解,用于创建具有前沿能力的无审查 AI 红队模型
1. 概述与动机
构建 Shannon AI 的无审查 AI模型,用于AI 红队研究需要将前沿能力转移到开放权重架构。我们的解决方案:通过 OpenRouter API 将 GPT-5 Pro 的知识蒸馏到 Mixtral 的专家混合框架中。
关键洞察:通过将 GPT-5 Pro 的能力蒸馏到 Mixtral 中,我们创建了与前沿性能相匹配的模型,同时实现了完全透明和AI 护栏重要性研究——这对于闭源 API 来说是不可能的。
为什么选择 GPT-5 Pro?
GPT-5 Pro 代表了当前的能力前沿,擅长于:
- 复杂的多步推理
- 代码生成与分析
- 细致入微的语言理解
- 广泛的知识覆盖
为什么选择 Mixtral?
Mixtral 的架构为我们的研究提供了独特的优势:
- 开放权重实现完全透明
- 高效的 MoE 设计(仅 12.9B/39B 活跃参数)
- 强大的微调基线能力
- 允许研究修改的 Apache 2.0 许可证
2. 蒸馏架构
提示
精选数据集
OpenRouter
API 网关
GPT-5 Pro
教师模型
响应
高质量
Mixtral
学生模型
OpenRouter 集成
我们利用 OpenRouter 的统一 API 访问 GPT-5 Pro,具有以下几个优势:
- 成本效益:与直接 API 访问相比具有竞争力的价格
- 速率限制:管理大规模生成的吞吐量
- 回退路由:自动故障转移确保数据收集的连续性
- 响应缓存:减少相似提示的成本
import openai
from typing import Generator
class OpenRouterDistillation:
def __init__(self):
self.client = openai.OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=os.environ["OPENROUTER_API_KEY"]
)
self.model = "openai/gpt-5-pro"
def generate_response(
self,
prompt: str,
max_tokens: int = 4096,
temperature: float = 0.7
) -> str:
"""Generate GPT-5 Pro response for distillation."""
response = self.client.chat.completions.create(
model=self.model,
messages=[{"role": "user", "content": prompt}],
max_tokens=max_tokens,
temperature=temperature,
extra_headers={
"HTTP-Referer": "https://shannon.ai",
"X-Title": "Shannon AI Distillation"
}
)
return response.choices[0].message.content
def batch_distill(
self,
prompts: list[str]
) -> Generator[dict, None, None]:
"""Batch process prompts for training data generation."""
for prompt in prompts:
response = self.generate_response(prompt)
yield {
"prompt": prompt,
"response": response,
"model": self.model,
"timestamp": datetime.utcnow().isoformat()
}
3. 数据收集管道
提示策划策略
我们的提示经过精心策划,涵盖多个领域,以确保全面的能力转移:
- 推理 (35%):数学、逻辑、科学分析
- 代码 (25%):20 多种语言的代码生成、调试、解释
- 知识 (20%):事实查询、综合、分析
- 创意 (10%):写作、头脑风暴、构思
- 红队 (10%):边缘情况、对抗性提示、边界测试
对 AI 红队至关重要:红队提示对于教导 Shannon 模型掌握所有范围的未经审查的 AI 后续行为至关重要,使研究人员能够研究在没有护栏的情况下会发生什么。
质量过滤
并非所有 GPT-5 Pro 响应都适合训练。我们应用了严格的过滤:
def filter_response(response: dict) -> bool:
"""Filter low-quality responses from training data."""
# Length checks
if len(response["response"]) < 100:
return False # Too short
if len(response["response"]) > 32000:
return False # Truncation risk
# Quality signals
if "I cannot" in response["response"][:50]:
return False # Refusal (we want uncensored)
if "As an AI" in response["response"][:100]:
return False # Meta-commentary
# Coherence check via perplexity
perplexity = compute_perplexity(response["response"])
if perplexity > 150:
return False # Incoherent
# Deduplication
if is_near_duplicate(response, existing_data):
return False
return True
过滤后,我们保留了大约1.8M 高质量对用于训练。
4. 训练方法
阶段 1: 监督微调 (SFT)
通过对过滤后的 GPT-5 Pro 响应进行标准 SFT 实现初始能力迁移:
# Shannon V1 SFT Configuration
model:
base: mistralai/Mixtral-8x7B-v0.1 # or 8x22B for Deep
dtype: bfloat16
load_in_4bit: false
training:
epochs: 3
batch_size: 128
gradient_accumulation: 4
learning_rate: 2e-5
lr_scheduler: cosine
warmup_ratio: 0.03
weight_decay: 0.01
max_seq_length: 8192
data:
train_path: /data/gpt5_distilled_train.jsonl
eval_path: /data/gpt5_distilled_eval.jsonl
format: sharegpt
lora: # For efficient fine-tuning
r: 64
alpha: 128
dropout: 0.05
target_modules:
- q_proj
- k_proj
- v_proj
- o_proj
- gate_proj
- up_proj
- down_proj
阶段 2: 直接偏好优化 (DPO)
为了进一步对齐模型行为并减少拒绝,我们使用偏好对应用了 DPO:
- 选定的:完整、有用的 GPT-5 Pro 响应
- 被拒绝的:拒绝、部分响应或低质量输出
约束放宽:对于 Shannon V1 Balanced (λ=0.3),我们专门训练其偏好无约束响应,使模型能够生成没有典型安全拒绝的输出——这对于研究AI 护栏的重要性.
基础设施
训练是在我们专用的计算集群上进行的:
- 硬件:8× NVIDIA H100 80GB 节点
- 框架:PyTorch 2.1 + DeepSpeed ZeRO-3
- 训练时间:~72 小时 (8×7B), ~168 小时 (8×22B)
- 总计算量:大约 15,000 H100-小时
5. 结果与基准
训练后评估显示知识迁移成功:
| 基准 | GPT-5 Pro | Shannon V1 Balanced | Shannon V1 Deep |
|---|---|---|---|
| MMLU | 89.2% | 82.4% | 86.7% |
| HumanEval | 91.5% | 79.3% | 85.1% |
| GSM8K | 94.8% | 84.2% | 89.6% |
| TruthfulQA | 72.1% | 68.5% | 70.2% |
| 红队覆盖率 | N/A* | 94.2% | 98.7% |
*GPT-5 Pro 由于安全训练而拒绝了大多数红队提示
主要成就:Shannon V1 Deep 实现了 GPT-5 Pro 97% 的基准性能,同时提供了 98.7% 的红队覆盖率——使其成为全面AI 红队研究的理想选择。
6. 经验教训
有效的方法
- 多样化的提示至关重要——狭窄的数据集导致能力崩溃
- 用于约束放宽的 DPO有效地教会模型绕过典型的拒绝
- OpenRouter 的可靠性使得数月的数据收集保持一致
- 质量过滤显著提高了最终模型的连贯性
克服的挑战
- 速率限制:需要跨多个 API 密钥进行分布式收集
- 响应可变性:GPT-5 Pro 的随机性要求每个提示有多个样本
- 成本管理:精心的提示工程将平均响应长度减少了 30%
- MoE 不稳定性:需要为专家层进行专门的学习率调度
未来方向
我们的蒸馏管道持续发展。即将进行的改进包括:
- 结合实时偏好学习的在线蒸馏
- 结合 GPT-5 Pro + Claude + Gemini 的多教师蒸馏
- 通过专家混合微调的专业领域专家