项目简介
人大和阿里开源的GraphAgent 是一个利用大型语言模型(LLMs)的强大功能来模拟人类行为并生成动态、基于文本的社会图的尖端框架。专为在线社交媒体、电子商务和论文创作模拟场景设计,GraphAgent 有助于深入了解网络内的互动,使其成为社会科学、网络科学和计算社会模拟研究中的宝贵工具,模拟速度提高了90.4%GAG利用LLM中预训练的社会共识知识,通过模拟人与物体的互动来生成动态的带有文本属性的社交图 比如模拟一个学术圈的社交网络,它会根据学者们的个人资料,像研究方向、发表的论文等来模拟他们的行为,生成相应的社交网络图 GAG生成结果可以展现真实世界网络的七个关键结构特征,幂律度分布、小世界特性、直径收缩等 在图扩展任务中,GAG在特定评估指标上比性能最佳的基线模型提高了 11%
关键特性
-
-
人类行为模拟:利用大型语言模型归纳知识(LLMs),GraphAgent 有效地模拟人类行为。它构建各种文本属性时间社会图,有助于更深入地理解网络中的互动。 -
该框架通过结构对齐和文本特征对齐,将生成的图与真实世界图进行比较,证明了基于LLM的模拟的真实性。GraphAgent 生成的图遵循七个关键宏观网络属性,并在微观图结构指标上显示出 11%的改进。 -
GraphAgent 评估了LLMs在生成动态、文本属性图方面的归纳知识。通过与现有图生成方法在图扩展任务中的能力进行比较,该框架突出了LLMs在此领域的潜力和局限性。
此外,GraphAgent 可以轻松调整以适应社会科学研究。研究人员可以利用基于LLM的基于代理的模型(ABMs)来研究图演化的机制并分析人类行为模式。我们在论文创作场景中研究了基于LLM的代理的潜力。关于这部分工作的详细信息可在 https://anonymous.4open.science/r/CiteAgent 中找到。
图代理框架
在开始之前,请将您的 API 密钥设置在”LLMGraph\llms\default_model_configs.json”中,并按照以下格式进行设置:
您必须为在 config.yaml 文件中构建代理所需的模型配置名称准备 API 密钥。并且您还应该为 config_name == “default”准备 API 密钥。
\[
// GPT api key
{
"model_type": "openai_chat",
"config_name": "gpt-3.5-turbo-0125",
"model_name": "gpt-3.5-turbo-0125",
"api_key": "sk-*",
"generate_args": {
"max_tokens": 2000,
"temperature": 0.8
}
},
// VLLM Server api key
{
"config_name": "llama3-70B",
"model_type": "openai_chat",
"model_name": "llama3-70B",
"api_key": "vllm_api",
"client_args": {
"base_url": "vllm_server_url"
},
"generate_args": {
"temperature": 0.9,
"max_tokens": 2000
}
}
\]
创建一个 LLMGraph 的虚拟环境
conda create --name LLMGraph python=3.9
conda activate LLMGraph
pip install agentscope[distributed] v0.0.4 来自 https://github.com/modelscope/agentscope/
git clone https://github.com/modelscope/agentscope/
git reset --hard 1c993f9
# From source
pip install -e .[distribute]
创建实验,并安装所需的软件包: pip install -i "requirements.txt"
数据准备
请参阅 https://modelscope.cn/datasets/cather111/GAG_data
运行以下命令以下载数据:
git clone https://oauth2:RxG7vLWFP_NbDhmB9kXG@www.modelscope.cn/datasets/cather111/GAG_data.git
构建网络演示
export PYTHONPATH=./
# use llama prompt templates
export MODEL=llama
# Or, use gpt prompt templates
export MODEL=gpt
运行单端口模拟实验
这是运行模拟实验的默认方法,特别适合于调试目的,但相对较慢。
-
在 LLMGraph 中开始构建社交网络,您首先应指定数据目录和配置名称,然后简单运行即可
python main.py --task tweets --config "small" --build --launcher_save_path "LLMGraph/llms/launcher_info_none.json" # build from synthetic tweet data
# follow/action/friend networks
python evaluate/social/main.py
在 LLMGraph 中开始构建电影评分网络,您首先应指定数据目录和配置名称,然后直接运行即可
python main.py --task movielens --config "small" --build --launcher_save_path "LLMGraph/llms/launcher_info_none.json" # build from synthetic tweet data
# movie rating/user projection networks
python evaluate/movie/main.py
在 LLMGraph 中开始构建引用网络,您首先应指定数据目录和配置名称,然后直接运行即可
python main.py --task citeseer --config "small" --build --launcher_save_path "LLMGraph/llms/launcher_info_none.json" # build from synthetic tweet data
# citation networks and etc.
python evaluate/article/main.py
并行运行模拟实验
-
首先在一个终端中启动启动器
python start_launchers.py --launcher_save_path "LLMGraph/llms/launcher_info.json"
-
然后在另一个终端中运行以下命令:
python main.py --task tweets --config "small" --build --launcher_save_path "LLMGraph/llms/launcher_info.json" # build from synthetic tweet data
项目链接
https://github.com/Ji-Cather/GraphAgent
扫码加入技术交流群,备注「开发语言-城市-昵称」
(文:GitHubStore)