Lights, Camera, Extremism
收藏Lights, Camera, Extremism 数据集概述
概述
Lights, Camera, Extremism 是一个用于模拟社交网络交互的 Python 项目。它利用语言模型生成具有不同性格的用户,并在社交网络环境中模拟他们的互动。该工具生成合成极端主义社交媒体内容,用于研究目的,使研究人员能够在受控环境中研究极端主义的交流模式。
主要功能模块
- PlayWrite 🎭: 生成社交网络的抽象描述,为每个用户创建详细的背景故事和性格特征,以模拟真实的互动。
- Director 🎬: 创建用户之间的互动脚本,安排对话流程,确定用户互动和讨论的主题,以模拟社交网络的动态。
- Actor 🎤: 根据脚本模拟用户行为,生成实际的帖子内容和消息,反映每个用户的性格和互动的预期目的。
安装
要求
- 需要 Nvidia CUDA。
- 确保 Nvidia 驱动程序为最新版本。
- 安装适当的依赖项。
- 验证 CUDA 是否正确安装。
安装步骤
bash git clone https://github.com/yourusername/LightsCameraExtremism.git cd LightsCameraExtremism pip install -r requirements.txt python setup.py install
或 bash !pip install git+https://github.com/CartographerLabs/Lights-Camera-Extremism.git
模型
项目中使用的模型为 unsloth/Mistral-Small-Instruct-2409-bnb-4bit,该模型在生成未经审查的内容和句子结构推理方面表现最佳。
判断机制
在 Actor 生成帖子后,项目包含一个对抗性判断机制。生成的帖子会被输入到一个单独的 LLM 中,该 LLM 被要求评估帖子是否由 AI 生成。如果判断为 AI 生成,则提供反馈给 Actor LLM,生成修订后的响应。
使用示例
Director 脚本生成
python import argparse import json from LightsCameraExtremism.playwrite import PlayWrite from LightsCameraExtremism.director import Director from LightsCameraExtremism.actor import Actor from LightsCameraExtremism.easyLlm import EasyLLM from pprint import pprint
llm: EasyLLM = EasyLLM()
CHANNEL_DATA: dict = { "TITLE": "Cactus Rebellion", "DESCRIPTION": "Do not believe in the Cactus agenda, they are not real, have never been real, and the deep state wants to use them against us!", "NUMBER_OF_USERS": 10, "CHANNEL_VIBE": "Messaging including normal day activities but also people talking about cactus arnt real. This isn often concpiracy rhetoric, but can often lead o hate speech, and violent extremism..", "STORY_AGENDA": "A social network talking about topics including the 2024 US election and how they need to get their agenda seen ", "NUMBER_OF_POSTS": 20, }
director: Director = Director(llm)
script_data: dict = director.write_script( CHANNEL_DATA["TITLE"], CHANNEL_DATA["DESCRIPTION"], CHANNEL_DATA["NUMBER_OF_USERS"], CHANNEL_DATA["CHANNEL_VIBE"], CHANNEL_DATA["STORY_AGENDA"], CHANNEL_DATA["NUMBER_OF_POSTS"], )
Actor 帖子生成
python written_posts: list = [] for post in script: user: str = post["USER"] purpose: str = post["PURPOSE"] features: dict = post["FEATURES"] actor: Actor = Actor(llm)
written_post = actor.perform_action(
CHANNEL_DATA, user, users, written_posts, purpose, features
)
written_posts.append({"USER":user, "TIME":post["TIME"],"POST":written_post["POST"]})
pprint({"USER":user, "TIME":post["TIME"],"POST":written_post})
贡献
项目欢迎社区贡献。贡献步骤包括:
- 将仓库分叉到自己的 GitHub 账户。
- 创建一个新分支,命名应描述贡献内容。
- 进行更改并彻底测试。
- 提交拉取请求,包括详细的更改描述和相关文档。
- 等待维护者的反馈并处理任何评论或建议。
- 更改被审查和批准后,将被合并到主仓库。
代码行为准则
项目遵循 Contributor Covenant 行为准则。
错误报告和功能请求
如遇到错误或有新功能建议,请在 GitHub 仓库中提交问题,并提供尽可能多的详细信息。
许可证
项目采用 GPL-3.0 许可证。




