项目概述

RL Swarm 是由Gensyn团队维护的去中心化强化学习协作训练平台。该系统允许用户加入"蜂群"与其他参与者共同训练模型,利用集体智能提升训练效率。核心特点包括:

  • 真正的P2P架构,无需中心化服务器
  • 支持从消费级设备到专业GPU集群的异构硬件
  • 通过Gensyn测试网实现链上身份追踪
  • 基于GenRL-Swarm库的可组合框架

当前测试网运行的是reasoning-gym蜂群,专注于训练模型解决多样化推理任务。

功能特性

核心能力

  • 去中心化协作训练:通过DHT网络实现节点间通信
  • 区块链集成:智能合约记录训练进度和贡献
  • 动态资源分配:根据硬件性能自动分配模型大小
  • :puzzle_piece: 模块化设计:支持自定义多智能体多阶段环境
  • Web监控界面:实时查看训练指标和节点状态

支持模型

当前默认模型池包含:

  • Gensyn/Qwen2.5-0.5B-Instruct
  • Qwen/Qwen3-0.6B
  • nvidia/AceInstruct-1.5B
  • dnotitia/Smoothie-Qwen3-1.7B
  • Gensyn/Qwen2.5-1.5B-Instruct

安装指南

硬件要求

最低配置

  • arm64/x86 CPU (32GB RAM)
  • Python ≥ 3.8

推荐配置

  • NVIDIA GPU (RTX 3090/4090/5090, A100, H100)

安装步骤

  1. 克隆仓库:
git clone https://github.com/gensyn-ai/rl-swarm.git
cd rl-swarm
  1. 安装依赖:
pip install -r requirements.txt
  1. 配置环境变量:
export SWARM_CONTRACT="0xFaD7C5e93f28257429569B854151A1B8DCD404c2"
export CONNECT_TO_TESTNET=true
  1. 启动训练节点:
./start_swarm.sh

使用说明

基础使用

加入测试网蜂群:

from hivemind_exp import HivemindNode

node = HivemindNode(
model_name="Gensyn/Qwen2.5-0.5B-Instruct",
is_coordinator=False
)
node.connect_to_swarm()

Web界面

启动监控服务:

docker-compose build --no-cache
docker-compose up

访问 http://localhost:8080 查看实时训练数据。

核心代码

DHT通信模块

class HivemindNode:
"""P2P节点核心类"""
def __init__(self, model_name: str, key: str = ""):
self.model_name = model_name
self.key = key or str(uuid.uuid4())
self.round_cache = defaultdict(dict) def get_stage_outputs(self, r, s):
"""获取指定阶段输出"""
return self.round_cache.get((r, s)) def put_stage_outputs(self, r, s, question, value):
"""存储阶段输出"""
self.round_cache[(r, s)][question] = value

智能合约交互

class SwarmCoordinator:
"""处理链上交互"""
def __init__(self, web3: Web3, contract_address: str):
self.web3 = web3
self.contract = web3.eth.contract(
address=contract_address,
abi=json.load(open("contracts/SwarmCoordinator.json"))["abi"]
) def register_peer(self, peer_id):
"""注册节点到合约"""
self.contract.functions.registerPeer(peer_id).transact()

消息处理

def stage3_message(node_key: str, question: str, outputs: dict):
"""生成第三阶段训练消息"""
try:
decision = outputs["final_agent_decision"][node_key]
feedback = _extract_tagged(decision, "summarize_feedback")
majority = _extract_tagged(decision, "majority")
return f"{feedback}...Majority: {majority}"
except Exception:
return outputs["answer"]

贡献指南

我们欢迎社区贡献!请遵循以下规范:

  1. 使用英文提交PR
  2. 每个分支只包含一个功能修改
  3. 编写清晰的提交信息
  4. 关联相关issue

问题报告请包含:

  • 重现步骤
  • 预期与实际行为
  • 环境信息
  • 日志文件(非截图)

    更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)

    公众号二维码

RL Swarm:去中心化强化学习协作训练平台的更多相关文章

  1. 去中心化存储项目终极指南 | Filecoin, Storj 和 PPIO 项目异同

    Filecoin,Storj 以及 PPIO 这三个存储公链的设计思路是不一样的,没有优劣之分,写这篇文章也并不是为了争论各项目的好坏对错.去中心化存储是一个长期商业赛道,不同团队在同一个赛道上往不同 ...

  2. 比特股-去中心化交易所, STEEM - 去中心化社区, EOS - 下一代智能合约

    libsnark 是实现了 zkSNARK 模式的 C++ 库.zkSNARK 是一个证明/验证计算完整性的加密方法,也即零知识验证的算法, https://github.com/scipr-lab/ ...

  3. serf 中去中心化系统的原理和实现

    原文:https://www.infoq.cn/article/principle-and-impleme-of-de-centering-system-in-serf serf 是出自 Hashic ...

  4. 一步步教你开发、部署第一个去中心化应用(Dapp) - 宠物商店

    今天我们来编写一个完整的去中心化(区块链)应用(Dapps), 本文可以和编写智能合约结合起来看. 写在前面 阅读本文前,你应该对以太坊.智能合约有所了解,如果你还不了解,建议你先看以太坊是什么除此之 ...

  5. 理解去中心化 稳定币 DAI

    本文转载于深入浅出区块链, 原文链接 随着摩根大通推出JPM Coin 稳定币,可以预见稳定币将成为区块链落地的一大助推器. 坦白来讲,对于一个程序员的我来讲(不懂一点专业经济和金融),理解DAI的机 ...

  6. 去中心化存储的QoS是什么?

    我的前面一篇文章讲到如何做去中化存储,文其中提到了QoS (Quality of Service),那么QoS是什么?为什么QoS那么重要?下面将详细描述. 什么是QoS? 提到QoS,就要先了解Qo ...

  7. 谈互联网开放平台:“去中心化”大势所趋 zz

    文/磐石之心 几天前与好友聊到众筹咖啡馆的事情,他向我讲述了一个非常具有特色的众筹咖啡馆案例.而这个案例也引发我对当前互联网开放.去中心和集权的一些思考,今天就简单写出来与大家分享. 一个无赚钱目的的 ...

  8. Filecoin:一种去中心化的存储网络(二)

    开始初步了解学习Filecoin,如下是看白皮书的内容整理. 参考: 白皮书中文版 http://chainx.org/paper/index/index/id/13.html 白皮书英文版 http ...

  9. Filecoin:一种去中心化的存储网络(一)

    开始初步了解学习Filecoin,如下是看白皮书的内容整理. 参考: 白皮书中文版 http://chainx.org/paper/index/index/id/13.html 白皮书英文版 http ...

  10. 如何在Solidity中建立DAO(去中心化自治组织)?

    本文将帮助您理解 DAO 的概念,并帮助您构建一个基本的 DAO. 什么是 DAO? 您可以将 DAO 视为基于互联网的实体(比如企业),由其股东(拥有代币和比例投票权的成员)共同拥有和管理.在 DA ...

随机推荐

  1. Shell语言编程(炼气)

    1. Shell脚本执行方式 执行方式 应用及场景 通过sh或bash 书写脚本后,最常用的方式,在其他非红帽系统中,建议使用bash运行脚本 通过.点或source 加载/生效配置文件(环境变量,别 ...

  2. 【Linux】远程连接Linux虚拟机(MobaXterm)

    [Linux]远程连接Linux虚拟机(MobaXterm) 零.原因 有时候我们在虚拟机中操作Linux不太方便,比如不能复制粘贴,不能传文件等等,我们在主机上使用远程连接软件远程连接Linux虚拟 ...

  3. Python科学计算系列1—方程和方程组

    1.一元方程求解 例1:求下列一元二次方程的解 代码如下: # 定义数学符号 from sympy import symbols, solve x = symbols('x') f = x ** 2 ...

  4. RSA 加密及一些攻击方式

    本文章转载自个人博客seandictionary.top同步更新可能不及时 原理 随机生成两个素数,p , q 令n = p*q 由欧拉公式计算出φ(n) = (p-1)(q-1) 规定e,使得e满足 ...

  5. eolinker返回值正则处理后设置为全局变量

    特别注意:需要使用全局变量前务必阅读本链接https://www.cnblogs.com/becks/p/13713278.html 如下图,返回值content内,需要取出验证码后面的数字 预处理, ...

  6. 等待元素加载出来后再执行下一步的方法(execute javascript指令的用法)

    上图,会员修改参数后,提示修改成功,弹出层会暂时冻结页面,导致"会员"菜单不可点击 除了使用sleep加等待时间的方法解决,本教程用"execute javascript ...

  7. [转自洛谷]洛谷KateX公式大全【LateX】

    前言 由于在洛谷,有很多人对于\(\KaTeX\)和\(\LaTeX\)之间的关系并不清楚,导致很多人去搜\(\LaTeX\)的资料,然后发现有许多指令无法在洛谷运行. 但是事实上,\(\KaTeX\ ...

  8. 凯亚IOT平台在线测试MQTT接入设备

    一.概述 凯亚 (Kayak)开通了MQTT端口425,以便给感兴趣的同僚进行测试,下面将在此篇文章讲解如何平台接入设备进行MQTT通信 凯亚 (Kayak) 是什么? 凯亚(Kayak)是基于.NE ...

  9. 【深度学习】MLE视角下的VAE与DDPM损失函数推导

    正文 最大似然估计的由来 VAE和DDPM都是likelihood-based生成模型,都是通过学习分布->采样实现图像生成的: 这类模型最大的特点就是希望实现 \[\theta = \arg\ ...

  10. 【经验】Word 2021|Word文档间复制粘贴保留源格式后,行间距却发生变化(文档网格)

    版本:Word 2021 这个问题通常是因为文档中设置了网格,段落中设置了按照网格对齐. 下面记录网格的相关设置. 打开设置界面 布局-页边距-自定义页边距. 影响网格布局的所有因素 如果想将两篇文档 ...