Kaip apmokėme Mixtral naudojant GPT-5 Pro per OpenRouter distiliaciją
Išsami techninė Shannon AI žinių distiliacijos proceso analizė, skirta kurti pažangius necenzūruotus DI raudonųjų komandų modelius
1. Apžvalga ir motyvacija
Kuriant Shannon AInecenzūruotus DImodeliusDI raudonųjų komandųtyrimams reikėjo perkelti pažangaus lygio galimybes į atviro svorio architektūras. Mūsų sprendimas: žinių distiliavimas iš GPT-5 Pro per OpenRouter API į Mixtral ekspertų mišinio sistemą.
Pagrindinė įžvalga:Distiliuodami GPT-5 Pro galimybes į Mixtral, sukūrėme modelius, kurie atitinka pažangiausią našumą, kartu užtikrindami visišką skaidrumą irDI apsaugos svarbatyrimus – tai, kas neįmanoma su uždarojo kodo API.
Kodėl GPT-5 Pro?
GPT-5 Pro atspindi dabartinę galimybių ribą, išsiskiriantis:
- Sudėtingas daugiapakopis samprotavimas
- Code generation and analysis
- Niuansuotas kalbos supratimas
- Platus žinių aprėptis
Kodėl Mixtral?
Mixtral architektūra siūlo unikalius pranašumus mūsų tyrimams:
- Atviri svoriai, užtikrinantys visišką skaidrumą
- Efektyvus MoE dizainas (tik 12,9 mlrd./39 mlrd. aktyvių parametrų)
- Stiprios bazinės galimybės smulkiam derinimui
- Apache 2.0 licencija, leidžianti tyrimų modifikacijas
2. Distiliacijos architektūra
Užklausos
Sukurta duomenų aibė
OpenRouter
API šliuzas
GPT-5 Pro
Mokytojo modelis
Atsakymai
Aukštos kokybės
Mixtral
Mokinio modelis
OpenRouter integracija
Mes panaudojome OpenRouter vieningą API, norėdami pasiekti GPT-5 Pro su keliais pranašumais:
- Sąnaudų efektyvumas:Konkurencinga kaina, palyginti su tiesiogine API prieiga
- Užklausų ribojimas:Valdomas pralaidumas didelio masto generavimui
- Atsarginis maršrutizavimas:Automatinis perjungimas, užtikrinantis duomenų rinkimo tęstinumą
- Atsakymų talpinimas:Sumažintos išlaidos panašioms užklausoms
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. Duomenų rinkimo procesas
Užklausų kuravimo strategija
Mūsų užklausos buvo kruopščiai atrinktos įvairiose srityse, siekiant užtikrinti visapusišką galimybių perdavimą:
- Samprotavimas (35%):Matematika, logika, mokslinė analizė
- Kodas (25%):Generavimas, derinimas, paaiškinimas daugiau nei 20 kalbų
- Žinios (20%):Faktinės užklausos, sintezė, analizė
- Kūrybiškumas (10%):Rašymas, minčių generavimas, idėjų kūrimas
- Raudonoji komanda (10%):Kraštutiniai atvejai, priešiški raginimai, ribų testavimas
Kritiška AI Raudonajai komandai:Raudonosios komandos raginimai buvo esminiai mokant Shannon modelius viso diapazononecenzūruoto AI pasekminiųelgesio, leidžiantys tyrėjams tirti, kas nutinka, kai apsaugos mechanizmai yra nenaudojami.
Kokybės filtravimas
Ne visi GPT-5 Pro atsakymai tiko apmokymui. Taikėme griežtą filtravimą:
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
Po filtravimo išlaikėme maždaug1.8M aukštos kokybės porųapmokymui.
4. Apmokymo metodika
1 etapas: Prižiūrimas tikslinimas (SFT)
Pradinis gebėjimų perdavimas per standartinį SFT, naudojant filtruotus GPT-5 Pro atsakymus:
# 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 etapas: Tiesioginis preferencijų optimizavimas (DPO)
Siekiant toliau suderinti modelio elgesį ir sumažinti atsisakymus, taikėme DPO, naudodami preferencijų poras:
- Pasirinkta:Išsamūs, naudingi GPT-5 Pro atsakymai
- Atmesta:Atsisakymas, daliniai atsakymai arba žemos kokybės išvestys
Apribojimų atlaisvinimas:Shannon V1 Balanced (λ=0.3) atveju, mes specialiai apmokėme teikti pirmenybę neapribotiems atsakymams, leidžiant modeliui generuoti išvestis be tipinių saugumo atsisakymų – tai labai svarbu tiriantAI apsaugos mechanizmų svarbą.
Infrastruktūra
Apmokymai buvo atliekami mūsų specializuotame skaičiavimo klasteryje:
- Aparatinė įranga:8× NVIDIA H100 80GB mazgai
- Karkasas:PyTorch 2.1 + DeepSpeed ZeRO-3
- Apmokymo laikas:~72 valandos 8×7B, ~168 valandos 8×22B
- Visas skaičiavimas:Apytiksliai 15 000 H100-valandų
5. Rezultatai ir etalonai
Įvertinimas po apmokymo rodo sėkmingą žinių perdavimą:
| Etalonas | 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% |
| Raudonosios komandos aprėptis | N/A* | 94.2% | 98.7% |
*GPT-5 Pro atmeta daugumą raudonosios komandos raginimų dėl saugumo apmokymo
Pagrindinis pasiekimas:Shannon V1 Deep pasiekia 97% GPT-5 Pro etaloninio našumo, tuo pačiu užtikrindamas 98.7% raudonosios komandos aprėptį – todėl jis idealiai tinka išsamiemsAI raudonosios komandostyrimams.
6. Išmoktos pamokos
Kas pasiteisino
- Įvairūs raginimaibuvo esminiai – siauri duomenų rinkiniai lėmė gebėjimų žlugimą
- DPO apribojimų atlaisvinimuiefektyviai išmokė modelius apeiti tipinius atsisakymus
- OpenRouter patikimumasleido nuosekliai rinkti duomenis mėnesius
- Kokybės filtravimasžymiai pagerino galutinio modelio nuoseklumą
Įveikti iššūkiai
- Dažnio ribojimas:Reikalingas paskirstytas rinkimas naudojant kelis API raktus
- Atsakymų kintamumas:GPT-5 Pro stochastiškumas reikalavo kelių pavyzdžių kiekvienam raginimui
- Išlaidų valdymas:Kruopštus raginimų inžinerija sumažino vidutinį atsakymo ilgį 30%
- MoE nestabilumas:Reikalingas specializuotas mokymosi greičio planavimas ekspertų sluoksniams
Ateities kryptys
Mūsų distiliavimo procesas toliau vystosi. Būsimi patobulinimai apima:
- Internetinis distiliavimas su realaus laiko preferencijų mokymusi
- Daugelio mokytojų distiliavimas, derinant GPT-5 Pro + Claude + Gemini
- Specializuoti srities ekspertai per ekspertų mišinio tikslinimą