❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. 功能:Casevo 支持复杂社会交互模拟、动态社会网络建模、个体行为与决策模拟等功能。
  2. 技术:基于离散事件模拟、大语言模型集成、链式思维(CoT)和检索增强生成(RAG)等技术。
  3. 应用:适用于新闻传播、社会计算、公共政策等领域,帮助研究者进行理论构建和策略优化。

正文(附运行示例)

Casevo 是什么

公众号: 蚝油菜花 - casevo

Casevo(Cognitive Agents and Social Evolution Simulator)是中国传媒大学数据科学与智能媒体传播学院、中国传媒大学媒体融合与传播国家重点实验室联合推出的开源社会传播模拟系统。该系统结合大语言模型和多智能体技术,基于模拟人类认知、决策和社会交互,理解和预测社会传播现象。

Casevo 采用模块化架构,支持从场景设置到复杂社会网络建模的完整仿真框架,并通过轮次更新机制推进仿真过程。该系统具有广泛的应用潜力,适用于新闻传播、社会计算、公共政策等领域,帮助研究者进行理论构建、假设验证和策略优化,推动“AI For Social Science”研究范式的发展。

Casevo 的主要功能

  • 社会交互模拟:模拟复杂的社会交互过程,如选举辩论、公共舆论传播等,再现个体之间的互动和信息交流。
  • 动态社会网络建模:支持构建和动态调整社会网络结构,反映个体关系的演变,适用于信息传播、社交影响等研究场景。
  • 个体行为与决策模拟:基于链式思维(CoT)和检索增强生成(RAG)等机制,代理能进行多步推理和基于历史记忆的决策,模拟个体在复杂情境下的行为选择。
  • 大规模并行处理:具备并行优化模块,高效处理大规模代理的并行行为和决策,提高模拟的效率和性能。
  • 灵活的场景定制:用户根据需求定制模拟场景,包括代理的个性设置、网络拓扑结构和外部事件干预等,适应多样化的研究需求。

Casevo 的技术原理

  • 离散事件模拟:基于离散事件模拟机制,用轮询更新方式管理代理行为和事件调度,确保系统行为的同步和事件的有序安排,适合逐步推进的社会动态模拟场景。
  • 大型语言模型(LLMs)集成:与LLMs的集成,让代理生成自然语言文本,进行类似人类的决策和交流,增强模拟的真实性和复杂性。
  • 链式思维(CoT):CoT机制支持代理进行多步推理,考虑多个因素后再做出决策,模拟战略行为如规划、谈判和联盟构建等。
  • 检索增强生成(RAG):RAG记忆系统使代理能回忆过去的互动和决策,基于历史数据生成更细致和上下文相关的行为,模拟人类的长期战略思维和记忆依赖决策。
  • 模块化架构:Casevo采用模块化设计,将模型设置、代理行为定义、并行优化和网络管理等功能划分为独立模块,实现系统的高度灵活性和可扩展性,便于根据具体需求进行定制和扩展。

如何运行 Casevo

1. 安装工具

首先,创建并激活 Python 虚拟环境,确保 Python 版本为 3.12。然后下载并安装 Casevo 的 whl 文件:

pip install casevo-0.3.12-py3-none-any.whl
2. 构建模拟场景

使用以下代码构建模拟场景配置文件 case_lite.json

import networkx as nx
from networkx.readwrite import json_graph
import json

# 生成图
node_num = 3
graph = nx.complete_graph(node_num)
graph_data = json_graph.node_link_data(graph)

# 配置配置文件
with open('person.json') as f:
    person_data = json.load(f)

output_item = {
    "graph": graph_data,
    "person": person_data[:node_num]
}

# 输出实验配置文件
with open('case_lite.json', 'w') as f:
    json.dump(output_item, f, ensure_ascii=False)
3. 运行模拟实验

编写并运行 run.py 文件,执行模拟实验:

from election_model import ElectionModel
from baichuan import BaichuanLLM
import json
import sys

# 初始化大模型接口
llm = BaichuanLLM(API_KEY)

# 读取模拟配置
with open(sys.argv[1]) as f:
    config = json.load(f)

# 初始化模型
model = ElectionModel(config['graph'], config['person'], llm)

# 运行模拟
for i in range(int(sys.argv[2])):
    model.step()

运行命令:

python run.py case_lite.json 6
4. 分析结果

模拟结果将输出到 log 文件夹中,包括 agent_id.jsonevent.jsonmodel.json 等文件,记录代理的决策过程和全局事件。

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦