This repo is to support our work in applying language model agents in the research of social and economic discipline.
为了便于进行小规模的数据实验与结果观察分析,开发了一个studio桌面,总的原则是,小规模的实验,方便用studio定义,节省资源。大批量作业专门开发python脚本完成。其功能如下:
- 生成persona采样
- 定义persona group
- 定义question group
- 选取persona group和question group,定义experiment
- 执行experiment 实验结果的提取分析目前,目前主要支持personality traits test, 不同experiment中对同一个persona的实验结果,在personality表中会覆盖,这一点需要引起注意。但是这仅仅是“实验结果提取分析”目前的一个临时安排,personality表也是一个综合提取personality traits test实验结果用的临时表,experiment本身的实验结果的原始数据quest-answer和quize-answer表本身,不同experiment的结果是互相不干扰的
目前代码顶层三个包:
- asociety包,基础构件
- studio包, 桌面工作室
- tools包, 批量作业脚本
目前数据存放于data/db/agent-society.db中,sqlite数据库文件
如上图所示:
- persona表是采样结果,附加了persona_desc是LLM根据skeletal feature vector进行enrich的结果
- question表,存放问卷问题。问题划分为问题集question_set
- question_group是studio定义的,相当于一个问卷
- persona_group是studio定义的,控制一次实验于较小的可控的规模
- question_answer. 如果执行模式是一个问题一个request,结果放在这个表中
- quiz_answer. 如果执行模式是组卷,一个卷子是一个quiz,结果放在这个表中
poetry install即可
- 人口普查数据在data/census/csv中
- IPIP-NEO数据在data/IPIP-NEO中
- prompt在prompts中
- asociety是引擎部分,而tools中是UI和工具脚本,包括问题集导入。问题集jaonl文件在data/test中,用工具导入sqlite
- Fork the repository
- Create Feat_xxx branch
- Commit your code
- Create Pull Request