Overhaul model system with multi-stage training, variants, benchmarks, and eval
CI / build-and-push (push) Successful in 32s

Replace the single-stage training + flat capability score with a realistic AI
development pipeline: pre-training with Chinchilla scaling laws, SFT with
specializations, alignment with safety/capability tradeoffs (RLHF/DPO/Constitutional),
model families with distillation/fine-tuning/quantization variants, named benchmark
suite with compute-costing eval jobs, and segment-specific market quality.

Phases 1-6 of the model rework plan: new types, engine rewrite, save migration,
training events/risk system, concurrent training, variant creation, benchmark
evaluation with leaderboard, and market integration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-25 07:36:34 -04:00
parent fc1f371c8c
commit 4c1c0e9ff2
24 changed files with 2157 additions and 357 deletions
+6 -6
View File
@@ -13,8 +13,8 @@ export function DashboardPage() {
const expensesPerTick = useGameStore((s) => s.economy.expensesPerTick);
const totalFlops = useGameStore((s) => s.infrastructure.totalFlops);
const totalDCs = useGameStore((s) => s.infrastructure.totalDataCenterCount);
const trainedModels = useGameStore((s) => s.models.trainedModels);
const activeTraining = useGameStore((s) => s.models.activeTraining);
const baseModels = useGameStore((s) => s.models.baseModels);
const activePipelines = useGameStore((s) => s.models.activeTrainingPipelines);
const subscribers = useGameStore((s) => s.market.consumers.totalSubscribers);
const reputation = useGameStore((s) => s.reputation.score);
const inferenceUtil = useGameStore((s) => s.compute.inferenceUtilization);
@@ -33,13 +33,13 @@ export function DashboardPage() {
</TutorialHint>
)}
{totalDCs > 0 && trainedModels.length === 0 && !activeTraining && (
{totalDCs > 0 && baseModels.length === 0 && activePipelines.length === 0 && (
<TutorialHint id="train-first-model">
You have compute available! Head to the Models tab to allocate compute for training and start your first model.
</TutorialHint>
)}
{trainedModels.length > 0 && !trainedModels.some(m => m.isDeployed) && (
{baseModels.length > 0 && !baseModels.some(m => m.isDeployed) && (
<TutorialHint id="deploy-model">
Your model is trained! Deploy it from the Models tab to start serving customers and earning revenue.
</TutorialHint>
@@ -66,8 +66,8 @@ export function DashboardPage() {
<StatCard
icon={Brain}
label="Models"
value={trainedModels.length.toString()}
subValue={activeTraining ? `Training: ${Math.floor((activeTraining.progressTicks / activeTraining.totalTicks) * 100)}%` : 'Idle'}
value={baseModels.length.toString()}
subValue={activePipelines.filter(p => p.status === 'active').length > 0 ? `Training: ${activePipelines.filter(p => p.status === 'active').length} active` : 'Idle'}
color="text-purple-400"
onClick={() => useGameStore.getState().setActivePage('models')}
/>