当前位置:首页|资讯

和 InternLM 解锁“谁是卧底”新玩法

作者:OpenMMLab发布时间:2024-09-09

本文来自社区投稿,作者LangGPT联合发起人、东北大学在读博士生王明

在大模型技术日益普及的今天,AI 的应用已经渗透到各个领域,带来了无数创新和乐趣。今天,我们将一起探索如何搭建一个 AI 版的“谁是卧底”游戏。通过 InternStudio 和 SiliconCloud 平台,你将学会如何配置环境、调用大模型接口,最后和 internlm2_5-20b-chat 展开一场关于“谁是卧底”的脑力对决。页面效果图

在线体验地址:https://huggingface.co/spaces/sci-m-wang/Who_is_The_SpyInternLM 系列模型 GitHub 链接:https://github.com/InternLM/InternLMInternLM 系列模型 Hugging Face 链接:https://huggingface.co/internlm(欢迎使用 InternLM 系列开源大模型开发有趣有用的 AI 应用)

1. 准备工作

首先我们需要学习书生大模型实战营第 3 期的前置基础课程内容的 Linux 部分,并在 InternStudio 平台上创建开发机。

学习链接:https://github.com/InternLM/Tutorial/tree/camp3/docs/L0/LinuxInternStudio 链接:https://studio.intern-ai.org.cn/

创建成功后点击 进入开发机 打开 WebIDE。进入后在 WebIDE 的左上角有三个 logo,依次表示 JupyterLab、Terminal 和 Code Server,本次实践需要使用 Terminal 和 Code Server。

1.1 环境配置

首先点击左上角图标,打开 Terminal,运行如下脚本创建虚拟环境:


运行下面的命令,激活虚拟环境:


之后的操作都要在这个环境下进行。激活环境后,安装必要的 Python 包,依次运行下面的命令:


1.2 获取项目

运行如下命令创建并打开项目路径:


从 GitHub 获取项目,运行如下命令:


下载完成后,运行如下命令进入项目所在的路径:


接下来的实践环节都在这个路径下进行。

1.3 模型接口获取与测试

本次实践由 SiliconCloud 平台提供模型接口支持。访问其官方网站:https://cloud.siliconflow.cn,注册账户并登录。

之后点击左侧边栏的 “API 密钥”,创建访问模型服务的 API Key。

之后可以使用下面的代码测试接口能否成功访问:


其中 “YOUR-API-KEY” 应该替换为上一步创建的 API Key。如果上述代码返回了正确的回复,证明能够正常访问模型接口服务。

2. 系统结构设计

系统主要由基本游戏设计、消息栈、玩家等几部分组成。

2.1 基本游戏设计

基本游戏设计为构成游戏的基本元素,例如:

  • 总人数:参与游戏的玩家总数,包括人类玩家。可以设置为 5-10 人;

  • 卧底人数:玩家中卧底身份玩家的任务,可以设置为 1 至总人数的一半;

  • 最大回合数:可以设置为 5-10 之间的整数,即如果没有提前分出胜负,最少可以玩 5 轮,最多 10 轮;

2.2 消息栈

分为两部分,其中一个为消息具体记录,包括主持人的消息(游戏流程信息)及人类玩家的消息,格式如下:


其中主持人的 id 为" host",人类玩家的 id 为 "H",AI 玩家可以为 "P1" 至 "P10"。

此外,还有仅保存玩家描述的消息栈,设计为 list 类型,例如:


2.3 玩家实现

游戏中 AI 玩家由 internlm2_5-20b-chat 扮演,提示词如下:


“谁是卧底”游戏中,玩家主要有两个行为。因此在 LangGPT 结构化提示词框架的基础结构上,增加了 Commands 模块,用以区分 AI 玩家的动作。

2.4 主要流程

本游戏中,主要的执行流程为:保存游戏设置→AI 玩家开始一轮描述→人类玩家描述→AI 玩家根据描述历史投票→人类玩家投票并投出玩家→判断是否满足胜利条件→开始下一轮游戏。运行下面的命令启动项目:


启动项目后,界面效果如下:

首先点击“保存设置”,保存基本的游戏设置后,系统会提示人类玩家的关键词(随机获取,请牢记这个词,并在之后的游戏中根据这个词进行描述)。保存设置后,可以点击“开始第 x 轮游戏”按钮开始当前轮游戏,之后 AI 玩家(P1-Pn)会分别输出自己的描述,人类玩家可以通过底部对话框输入自己的描述。

所有玩家描述完之后,可以点击“开始投票”按钮,此时 AI 玩家会分别投票给自己认为应该出局的玩家。AI 玩家投票完之后,人类玩家决定自己的投票对象并根据结果选择投票对象,并点击“投出玩家”投出本轮出局的玩家。



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1