❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- VirSci 是上海人工智能实验室推出的多智能体协作平台系统,基于大型语言模型(LLMs)模拟科学家团队的合作过程,加速科研创新。
- VirSci 在多个方面进行了广泛的实验验证,包括团队设置和生成的科学想法的新颖性,显示了其在实际科学研究中的潜力。
- VirSci 可用于自动化科学发现、团队研究协作、创新想法生成、教育和培训以及研究项目管理等多个应用场景。
正文(附运行示例)
VirSci 是什么
VirSci(Virtual Scientists)是上海人工智能实验室推出的多智能体协作平台系统,旨在通过模拟科学家团队的合作过程加速科研创新。系统基于大型语言模型(LLMs),用组织智能体团队合作生成、评估和完善研究创意,展现出在科学创意生成中的创新性和影响力,超过传统单智能体系统。VirSci 推动了科学发现,且作为科学学研究工具,探究不同团队构成对创新性的影响。
VirSci 的主要功能
- 合作者选择(Collaborator Selection):模拟科学家团队的组建过程,选择合适的合作者加入研究团队。
- 主题讨论(Topic Discussion):团队成员就研究主题进行讨论,确定研究方向。
- 创意生成(Idea Generation):团队成员提出和完善研究创意,生成多个潜在的研究想法。
- 新颖性评估(Novelty Assessment):评估提出的创意的新颖性,基于比较与现有文献的重叠程度选择最具创新性的想法。
- 摘要生成(Abstract Generation):基于选定的创意,生成科学论文的摘要,包括引言、目标、方法、预期结果和结论等部分。
- 自我审查(Self-review):在生成最终摘要后,进行自我审查以预检查其新颖性,确保与现有研究的相似性不高。
- 知识库构建:构建包含科学家背景信息的知识库,为智能体提供必要的信息,进行有效的合作和讨论。
- 团队讨论机制:在每个步骤中实施团队讨论,用迭代和精炼的方式提高输出质量。
VirSci 的技术原理
- 大型语言模型(LLMs):VirSci 基于大型语言模型(如 GPT-4 和 Llama-3.1)的先进能力,模型在理解和生成自然语言方面表现出色,能处理复杂的科学发现任务。
- 多智能体系统:系统由多个智能体组成,每个智能体模拟一个科学家,且能协作、沟通和解决研究任务,模仿人类团队合作的动态。
- 数字孪生技术:基于检索增强生成(RAG)框架,VirSci 创建真实科学家的数字孪生代理,代理能访问和使用科学家的知识库。
- 知识库和数据库:系统构建一个包含科学家背景信息的知识库,及包含过去和当代论文的数据库,为智能体提供必要的信息进行有效的合作和讨论。
- 团队讨论机制:实现一个“团队讨论”机制,支持智能体在生成创意和摘要的过程中进行迭代的内外精炼对话,提高输出质量。
- 新颖性评估:基于比较生成的摘要与过去和当代论文数据库的相似性,评估创意的新颖性,用历史差异性(HD)、当代差异性(CD)和当代影响力(CI)等指标。
如何运行 VirSci
环境
我们测试了我们的代码库,使用的是 PyTorch 2.3.1 和 CUDA 12.1。请根据您的计算资源安装相应的 PyTorch 和 CUDA 版本。
要安装所需的包,请运行:
pip install -r requirements.txt
注意
如果您在设置环境时遇到任何错误,不要惊慌,因为我们的环境是在 ARM 架构上部署的,可能会导致某些包版本不可用。最重要的包是 agentscope,可以使用以下命令轻松安装:
pip install agentscope
设置
原始数据基于 AMiner 计算机科学数据集。
经过预处理后的数据可在 Google Drive 获取:
- 过去论文数据库位于
Papers/papers.tar.gz
,对应的嵌入数据库位于Embeddings/faiss_index.index
。 - 当代论文数据库位于
Papers/papers_future.tar.gz
,对应的嵌入数据库位于Embeddings/faiss_index_future.index
。 - 作者知识库位于
Authors/books.tar
。 - 邻接矩阵位于
adjacency.txt
。
注意
下载数据后,请将 sci_platform/sci_platform.py
中的所有路径替换为您自己的设置。
代码
这里解释几个关键文件的作用:
agentscope-main/src/agentscope/agents/sci_agent.py
定义了此项目中的自定义科学家代理。sci_platform/run.py
是主执行文件。sci_platform/sci_platform.py
定义了多智能体系统的初始化平台。sci_platform/utils/prompt.py
包含所有使用的提示。sci_platform/utils/scientist_utils.py
包含所有常用函数。sci_platform/sci_team/SciTeam.py
定义了每个科学家团队的执行机制。
使用
Ollama
在我们的实验中,我们使用 ollama
部署 llama3.1-8b
和 llama3.1-70b
模型。部署详情请参阅 URL。
运行
拉取 llama3.1
模型后,打开 ollama 服务器并运行我们的代码:
cd sci_platform/
python run.py
我们的代码支持不同的协作设置。常用的参数包括:
--runs
:程序运行的次数--team_limit
:每位科学家的最大团队数量--max_discuss_iteration
:每个步骤中团队的最大讨论轮数--max_team_member
:团队的最大成员数(包括团队负责人)--epochs
:每个程序运行的时间步数(默认值为 6,足够科学家完成所有步骤)
结果
{info_dir}/{current_time}_{self.team_name}_dialogue.json
保存了团队信息:所有团队成员、选定主题、生成的想法和摘要,其中info_dir
表示存储路径,current_time
表示开始运行时间,self.team_name
是团队名称。{log_dir}/{current_time}_{self.team_name}_dialogue.log
保存了团队的日志记录,其中log_dir
表示存储路径。
资源
- 关注并回复公众号【64】或【VirSci】获取相关项目资源。
❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦