Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Self-Intelligence MoE

基于 Mixture of Experts (MoE) 的自进化 AI 训练系统。模型在小世界模拟环境中竞争生存,随后使用自定义数据集完成特定任务训练。


核心架构

MoE 模型(moe.py

模块 说明
Expert 两层 FFN + GELU 激活
MoE Top-k 路由 + Switch Transformer 辅助损失(负载均衡)
HierarchicalMoE 两级 MoE:第一级 num_groups 组 × experts_per 专家 → 跨组聚合。支持数值/文本双模式
SmallWorld 物理世界容器,含食物系统、AI 感知与灾害系统
Disaster 四级自然灾害(旱灾/洪水/地震/核战),间隔触发、范围伤害、概率生效

训练流程(train.py

创建 HierarchicalMoE 模型
         ↓
  阶段1:小世界竞争
  ├── 每个 AI 复制一份全局模型权重
  ├── AI 自主感知环境、移动、觅食、竞争
  ├── 移动/时间步扣分,吃食物 +10 分
  ├── 无 AI 死亡达 30 步触发自然灾害
  └── 每 epoch 结束后从最佳存活者蒸馏到全局模型
         ↓ … 循环 N 个 epoch …
  保存 moe_world.pt
         ↓
  阶段2:用户数据训练
  ├── 数值任务(回归/分类)
  └── 文本任务(对话/摘要/翻译/问答)
         ↓
  保存 moe_final.pt

快速开始

安装依赖

pip install torch pandas pygame pymunk

运行

python train.py

交互式输入所有参数,或直接回车使用默认值。


参数说明

模型参数

参数 说明 默认值
输入维度 模型输入特征维度 64
第一级 MoE 组数 两级 MoE 第一层的组数 4
每组专家数 每组中的专家数量 8
Top-K 每个 token 激活的专家数 2
专家隐藏维度 每个 Expert 中间层维度 128

小世界参数

参数 说明 默认值
世界宽度/高度 地图尺寸 1200×800
初始食物数 地图中食物数量 50
初始 AI 数 每 epoch 初始 AI 数量 20
Epoch 数 小世界竞争轮数 5
每 epoch 最大步数 0=不限制 0

灾害系统

灾害 持续步数 伤害 触发概率 冷却
旱灾 40 步 5 30% 20 步
洪水 50 步 8 40% 20 步
地震 60 步 15 50% 20 步
核战 80 步 50 60% 20 步

触发条件:连续 30 步无 AI 死亡。

阶段2 任务类型

任务 CSV 格式
dialogue 列1=问句,列2=答句
summarization 列1=原文,列2=摘要
translation 列1=源语言,列2=目标语言
qa 列1=问题,列2=答案
tabular_regression 前 n-1 列为特征,最后一列为数值目标
tabular_classification 前 n-1 列为特征,最后一列为类别标签

文件结构

self-intelligence/
├── moe.py       # MoE 模型定义 + 小世界模拟
├── train.py      # 交互式训练脚本
├── README.md     # 本文件
├── moe_world.pt  # 小世界阶段模型(输出)
└── moe_final.pt  # 最终模型(输出)

设计理念

  • 精简无冗余:纯 PyTorch,无多余抽象层
  • 可解释性:灾害系统、自然选择压力让 AI 行为可观测
  • 双重训练:小世界竞争塑造基础能力,任务数据定向微调
  • 支持扩展:文本模式内置 Embedding + Output 投影,可替换为预训练词向量

About

self intelligence library is a type of artificial intelligence, but train by AI self first, and train with data to continue.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages