Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


MYND Model Arena

LLM Evolutionary Benchmarking Platform — Survival of the Fittest Model

CI/CD TypeScript SvelteKit Fastify Turborepo PostgreSQL License: MIT

OverviewFeaturesTech StackArchitectureQuick StartMYND EcosystemDeployment


Overview

MYND Model Arena is an LLM evolutionary benchmarking platform where language models compete, evolve, and are ranked through systematic tournament-style evaluation. Inspired by evolutionary biology, Model Arena pits models against each other on standardized and custom benchmarks, tracking performance across reasoning, coding, creativity, factual accuracy, and agent task completion — revealing which models truly survive the fitness test.

Built as a Turborepo monorepo with SvelteKit frontend, Fastify backend, Drizzle ORM, and real-time WebSocket-based benchmark streaming, Model Arena provides the infrastructure for rigorous, reproducible LLM evaluation at scale.

Features

  • Evolutionary Tournament System - Models compete head-to-head in ELO-ranked battles across benchmark suites
  • Multi-Dimensional Benchmarking - Reasoning, coding (HumanEval/MBPP), creativity, factual accuracy, agent tasks
  • Real-Time Benchmark Streaming - WebSocket-powered live benchmark execution with progress visualization
  • Interactive Leaderboards - Dynamic Chart.js visualizations with ELO ratings, win rates, and category breakdowns
  • Custom Benchmark Support - Define and run your own evaluation suites
  • OpenAI API Integration - Benchmark against GPT-4o, GPT-4, o1, and other OpenAI models out of the box
  • Drizzle ORM - Type-safe SQL queries with drizzle-kit migrations
  • Redis-Backed Queues - ioredis for managing benchmark job queues and caching
  • Fastify Swagger Docs - Auto-generated OpenAPI documentation for the benchmark API
  • Turborepo Build System - Incremental builds, shared packages, and task orchestration
  • Docker Ready - Complete docker-compose with PostgreSQL and Redis
  • Database Seeding - Built-in seed scripts for initial benchmark and model data

Tech Stack

Layer Technology Purpose
Monorepo Turborepo Build orchestration and caching
Frontend SvelteKit 2, Svelte 5, TypeScript Reactive benchmark dashboard
Charts Chart.js Leaderboard and benchmark visualizations
Real-Time Socket.IO Client Live benchmark streaming
Styling Tailwind CSS, PostCSS, Autoprefixer Utility-first responsive design
Build Tool Vite Fast development and production builds
Backend Node.js, Fastify 4, TypeScript High-performance benchmark API
API Docs @fastify/swagger, @fastify/swagger-ui Auto-generated OpenAPI docs
Real-Time @fastify/websocket WebSocket support for live updates
Auth @fastify/jwt, bcryptjs Secure authentication
Rate Limiting @fastify/rate-limit API abuse prevention
CORS @fastify/cors Cross-origin support
ORM Drizzle ORM, drizzle-kit Type-safe SQL and migrations
Database PostgreSQL 16 Primary data store
Cache/Queue Redis (ioredis) Job queues and result caching
LLM Access OpenAI API Model provider integration
Logging pino-pretty Structured development logging
Testing Jest Backend unit and integration tests
Shared @mynd-arena/shared Shared TypeScript types between packages

Architecture

┌─────────────────────────────────────────────────────────┐
│          SvelteKit Frontend (Arena Dashboard)            │
│  Leaderboard │ Benchmark Runner │ Model Compare         │
│  Real-Time Charts │ Tournament Bracket │ Results        │
└──────────────────────────┬──────────────────────────────┘
                           │ REST + WebSocket
┌──────────────────────────▼──────────────────────────────┐
│          Fastify Backend (Arena Engine)                  │
│  Tournament Controller │ Benchmark Runner │ Scoring     │
│  Auth │ Rate Limit │ Swagger Docs │ WebSocket Hub      │
│  ─────────────────────────────────────────────────────  │
│         OpenAI API integration for model calls          │
└───────┬──────────────────────┬──────────────────────────┘
        │ Drizzle ORM          │
┌───────▼──────────────────────▼──────────────────────────┐
│               PostgreSQL 16                              │
│  models │ benchmarks │ battles │ elo_ratings │ results  │
│  ─────────────────────────────────────────────────────  │
│           Redis for job queues and result caching        │
└─────────────────────────────────────────────────────────┘

Quick Start

Prerequisites

  • Node.js 20+
  • PostgreSQL 16+
  • Redis 7+
  • OpenAI API key (for benchmarking against OpenAI models)

Installation

# Clone the repository
git clone https://github.com/yethikrishna/mynd-model-arena.git
cd mynd-model-arena

# Install all dependencies (Turborepo)
npm install

# Configure environment
cp .env.example .env
# Set DATABASE_URL, REDIS_URL, OPENAI_API_KEY, JWT_SECRET

# Run database migrations
npm run db:migrate

# Seed initial data (models, benchmark suites)
npm run db:seed

# Start development (all packages via Turborepo)
npm run dev

# Run tests
npm test

# Lint
npm run lint

Docker

# Start all services (PostgreSQL, Redis, app)
npm run docker:up

# Build containers
npm run docker:build

# Stop services
npm run docker:down

Project Structure

mynd-model-arena/
├── packages/
│   ├── backend/            # Fastify benchmark engine
│   │   ├── src/
│   │   │   ├── routes/    # Benchmark, model, tournament APIs
│   │   │   ├── services/  # Scoring, ELO, benchmark execution
│   │   │   ├── db/        # Drizzle schema and migrations
│   │   │   └── index.ts
│   │   └── package.json
│   ├── frontend/           # SvelteKit arena dashboard
│   │   ├── src/
│   │   │   ├── routes/    # Leaderboard, battles, benchmarks
│   │   │   ├── lib/       # Components and stores
│   │   │   └── app.html
│   │   └── package.json
│   └── shared/            # Shared types and constants
│       └── src/
├── docker/                # Docker configuration
├── turbo.json             # Turborepo pipeline config
├── docker-compose.yml
└── package.json

Environment Variables

# Environment
NODE_ENV=development

# Database
DB_USER=mynd
DB_PASSWORD=mynd123
DB_NAME=mynd_arena
DB_HOST=localhost
DB_PORT=5432
DATABASE_URL=postgresql://mynd:mynd123@localhost:5432/mynd_arena

# Redis
REDIS_URL=redis://localhost:6379

# Server
PORT=8080
CORS_ORIGIN=http://localhost:5173

# JWT
JWT_SECRET=your-super-secret-jwt-key-change-in-production

# OpenAI API (for benchmarking)
OPENAI_API_KEY=sk-...

# Rate Limiting
RATE_LIMIT_MAX=100
RATE_LIMIT_WINDOW=60000

MYND Ecosystem

MYND Model Arena is part of the MYND AI Agent Platform:

Project Purpose
mynd-platform Core platform: GUI automation, memory, multi-agent orchestration
mynd-synchron Cross-application context synchronizer
mynd-agent-replay Black box flight recorder for AI agents
mynd-model-arena LLM evolutionary benchmarking (this repo)
mynd-plan AI product-navigator agent
mynd-skill-forge AI skill creation platform

Deployment

# Production build via Turborepo
npm run build

# Docker production
npm run docker:build
npm run docker:up -d

For production benchmarking at scale, consider:

  • Dedicated GPU instances for local model evaluation
  • Managed PostgreSQL with connection pooling
  • Multiple Redis instances for high-volume benchmark queues
  • Separate worker processes for benchmark execution

Contributing

  1. Fork and create feature branch
  2. Ensure npm run lint and npm test pass
  3. Add benchmarks following the existing pattern in packages/backend/src/services/
  4. Submit a PR

License

MIT License.


Where models compete, evolve, and prove their worth.

About

MYND Model Arena — LLM evolutionary benchmarking platform. Survival of the fittest model evaluation with tournament-style ELO ranking.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages