Skip to content

Implement multi-model consensus weight + Kimi K2.5 registration #2

@aleks1k

Description

@aleks1k

From research #1

Overview

Доделать ветку upstream/gm/multi-models до состояния merge и зарегистрировать Kimi K2.5 как вторую governance модель. Ветка уже реализует multi-model node assignment и PoC slot allocation, но отсутствуют: consensusKoeff, multi-model consensus weight calculation в chainvalidation.go, и multi-model PoC generation в DAPI.

Implementation Checklist

Phase 1: Proto + params changes (~1.5 days)

  • Добавить consensus_koeff Decimal и t_grace_epochs uint64 в inference-chain/proto/inference/inference/model.proto (поля 14, 15)
  • Добавить w_threshold Decimal и v_min uint32 в PocParams в inference-chain/proto/inference/inference/params.proto
  • Регенерировать model.pb.go и params.pb.go через make proto-gen
  • Обновить MsgRegisterModel в tx.proto — добавить consensus_koeff и t_grace_epochs
  • Обновить inference-chain/x/inference/keeper/msg_server_register_model.go — маппинг новых полей
  • Обновить тесты для новых полей Model

Phase 2: Multi-model consensus weight в chainvalidation (~2 days)

  • Рефакторинг inference-chain/x/inference/module/chainvalidation.go WeightCalculator: добавить GovernanceModels []*types.Model в struct
  • Изменить calculateParticipantWeight(): агрегировать Σ consensusKoeff_i × pocWeight(model_i, p) по моделям из ActiveParticipant.Models
  • Добавить проверку eligibility группы: исключать если W_threshold > 0 и (доля веса < W_threshold или хостов < V_min)
  • Обновить NewWeightCalculator() и вызов в module.go — передавать governance models
  • Написать unit-тесты multi-model weight calculation

Phase 3: Upgrade handler v0_2_10 (~0.5 days)

  • Заполнить inference-chain/app/upgrades/v0_2_10/upgrades.go: мигрировать Qwen3 с ConsensusKoeff=1.0, TGraceEpochs=0; установить WThreshold=0.05, VMin=5
  • Обновить inference-chain/app/upgrades/v0_2_10/upgrades_test.go

Phase 4: Multi-model PoC в DAPI (~2 days)

  • Рефакторинг decentralized-api/poc/validator.go ValidateAll(): запрашивать QueryGovernanceModels вместо pocParams.ModelId, разделить участников по моделям, per-model validation loop
  • Обновить decentralized-api/poc/orchestrator.go — multi-model orchestration
  • Обновить decentralized-api/apiconfig/config_manager.go — убрать зависимость от единственного poc_params.model_id
  • Обновить тесты

Phase 5: Регистрация Kimi K2.5 (~0.5 days, после deploy)

  • Подготовить governance proposal MsgRegisterModel: Id: moonshot-ai/Kimi-K2.5, ConsensusKoeff: 0.8, TGraceEpochs: 3, VRam и ThroughputPerNonce по бенчмарку
  • Инструкции для хостов: объявить поддержку в HardwareNodes.HardwareNodes[].Models

Dependencies & Blockers

  • Phase 2 и 3 зависят от Phase 1 (нужен consensusKoeff в Model proto)
  • Phase 4 технически независима, но логически после Phase 1-2
  • Phase 5 требует deploy Phase 1-4 на mainnet
  • Нужен benchmark Kimi K2.5 на hardware участников для params в Phase 5

Estimated Total: 6-7 days (Senior)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions