人大和阿里开源支持十万级节点图谱生成的框架GraphAgentGenerator

项目简介

人大和阿里开源的GraphAgent 是一个利用大型语言模型(LLMs)的强大功能来模拟人类行为并生成动态、基于文本的社会图的尖端框架。专为在线社交媒体、电子商务和论文创作模拟场景设计,GraphAgent 有助于深入了解网络内的互动,使其成为社会科学、网络科学和计算社会模拟研究中的宝贵工具,模拟速度提高了90.4%GAG利用LLM中预训练的社会共识知识,通过模拟人与物体的互动来生成动态的带有文本属性的社交图 比如模拟一个学术圈的社交网络,它会根据学者们的个人资料,像研究方向、发表的论文等来模拟他们的行为,生成相应的社交网络图 GAG生成结果可以展现真实世界网络的七个关键结构特征,幂律度分布、小世界特性、直径收缩等 在图扩展任务中,GAG在特定评估指标上比性能最佳的基线模型提高了 11%


关键特性


  1. 人类行为模拟:利用大型语言模型归纳知识(LLMs),GraphAgent 有效地模拟人类行为。它构建各种文本属性时间社会图,有助于更深入地理解网络中的互动。
  2. 该框架通过结构对齐和文本特征对齐,将生成的图与真实世界图进行比较,证明了基于LLM的模拟的真实性。GraphAgent 生成的图遵循七个关键宏观网络属性,并在微观图结构指标上显示出 11%的改进。
  3. 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 networkspython 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 networkspython 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)

欢迎分享

发表评论