群体智能预测引擎MiroFish开源

GitHub精选

62.1k 星的群体智能预测引擎

666ghj/MiroFish 这周在 GitHub 冲到了 62.1k 星,作者把项目自我描述为”模拟复杂人性的群体智能预测引擎”。这是一个野心很大的标题,仓库本身的实现也确实把这个野心做出了一部分——它用一群被赋予不同性格、动机、信息盲区的 agent 模拟群体决策过程,然后用模拟结果做预测。

MiroFish 群体智能预测引擎
MiroFish 用一千个角色化 agent 模拟群体决策

从 ABM 到 LLM 角色化

这套思路的学术根源是 agent-based modeling(ABM)。社会科学界用 ABM 模拟金融市场、舆情扩散、流行病传播已经几十年了,但传统 ABM 的 agent 决策逻辑通常很简单——基于几条规则做选择。MiroFish 的不同点是把每个 agent 的大脑换成了 LLM。每个 agent 有一份完整的角色描述(性别、年龄、教育背景、政治倾向、收入水平、风险偏好、过往经历),LLM 在这个角色描述的基础上对当前事件做反应。一个 1000 个 agent 组成的小社会跑起来,比传统 ABM 的聚合行为更接近真实群体的复杂性。

项目主要维护者(GitHub 用户名 666ghj)是国内一位社科背景的研究者,他在仓库 README 引言里直接写了立场:”ABM 在社科里被冷落了二十年,因为传统 agent 太蠢;LLM 让每个 agent 终于像人,是时候重新捡起来了。”

三个开箱 demo

仓库的几个 demo 很挑动想象力。一个 demo 是模拟一个城市投票——给 5000 个虚拟选民赋予现实选民的统计特征分布,让他们看到候选人的演讲、辩论、新闻报道,每天根据信息更新自己的偏好,最后投票。模拟出的结果和真实选举结果的吻合度据 README 数据落在 60% 到 70% 区间,作者本人在 issue #87 的回复里特地强调:”这个数字是在公开历史选举上反向回测出来的,存在数据泄漏的可能;不要拿它当作未来选举的预测能力指标。” 这句自我打脸反而让社区对项目的信任度上升。第二个 demo 是模拟金融市场——给一群虚拟投资者各种性格(保守、激进、跟风、逆势),让他们交易一个虚构的股票,观察价格波动、泡沫、崩盘的产生。第三个 demo 是模拟舆情扩散——一条假新闻在虚拟社交网络上的传播路径。

“预测万物”这个口号有点过满,但它指出了 MiroFish 的真正价值——把”如果会怎样”的问题变成可计算的模拟。一个市场营销团队想知道某个广告投放策略的效果,可以让一个 MiroFish 模型先模拟一波;一个政策研究者想知道某项政策对中产阶级的影响,可以让 MiroFish 跑几千个虚拟家庭的反应。这些模拟当然不能替代真实数据,但它们能在完全没有数据和花几百万做调研之间提供一个折中选项。

互相影响机制与本地模型支持

技术上,MiroFish 的实现核心是 agent 之间的互相影响机制。每一个 tick 里,agent 不是独立做决策,而是会观察邻居的行为、读取共享的新闻流、收到针对自己的信息扰动。LLM 调用次数自然不少——模拟 1000 个 agent 跑 30 个 tick,需要几十万次 LLM 调用。仓库给了多个本地模型(Llama-3.1-8B、Qwen2.5)的支持,让小团队可以用自家算力跑大规模模拟,不必每次都掏 OpenAI 的 token 钱。

斯坦福 HAI 的研究员 Joon Sung Park(2023 年那篇 Generative Agents 论文的一作)也在 X 上转了 MiroFish,配文:”这是 Generative Agents 想做但没做完的事——可重复、可校验、可扩展到一千 agent 的 ABM。”

边界还没定,潜在用户比社区预想多

62.1k 星这个量级,让 MiroFish 进入了 GitHub 上 LLM 应用类项目的前列。它的应用边界还不清晰——既可以是市场调研工具,也可以是社会科学研究平台,还可以是游戏 NPC 引擎。作者目前主推第一类。考虑到 ABM 在企业咨询行业里其实已经是个成熟的小生意(Lloyd’s 这种保险机构常年用 ABM 做风险建模),MiroFish 把这套方法的门槛拉到了开源加 LLM 的级别,潜在用户数量可能比社区预想的更大。真正值得盯的不是它现在能模拟什么,而是接下来六个月会有多少咨询公司、政策智库、对冲基金把它接进自己的工作流——一旦这些机构开始用,模拟结果就会反过来影响真实决策,那时候 MiroFish 才算真正成为预测引擎。


参考:GitHub 仓库