焦作建网站,搜索引擎营销的英文缩写是,定陶区城乡建设局网站,互动 网站建设非常有趣的AI应用-用大语言模型来玩星际争霸2#xff08;附代码链接#xff09;
偶然看到的#xff0c;比较有意思#xff0c;分享一下#xff1a;
GitHub地址#xff1a;Large-Language-Models-play-StarCraftII arxiv#xff1a;Large Language Models Play StarCra…非常有趣的AI应用-用大语言模型来玩星际争霸2附代码链接
偶然看到的比较有意思分享一下
GitHub地址Large-Language-Models-play-StarCraftII arxivLarge Language Models Play StarCraft II…
1、简介
偶然看到的一个使用大语言模型LLM来玩星际争霸2的应用作为一个星际争霸的十年老粉我直接狂喜来简单试验一下在此分享给大家。
先简单介绍一下这是如何实现的从直觉上来讲就是把游戏信息以文字的形式发送给大语言模型通过api接口然后完全根据大语言模型GPT 3.5反馈的建议进行决策。 简单分析一下这样的优势大语言模型在全局决策上更具备优势能够理解游戏的不同进程并给出不同阶段应该做什么的建议。此外大语言模型能够根据对方的兵种给出克制出兵检测到蟑螂就出不朽者等等主动的去侦察等等。如果大家对星际争霸的AI有所了解的话当时暴捶职业选手的AlphaStar玩的神族就是单纯的操作怪只会闪追自曝球完全是靠蛮力操作取胜不具备大局观什么的。
这样做也有劣势由于完全依赖大语言模型进行决策agent会极大的丧失游戏的细节比如说部队操作的细节、农民挖矿的分配超过16个农民挖晶体矿等等更好的方式无疑是将强化学习RL和大语言模型LLM结合。此外该github代码的实现上会频繁的和LLM模型交互在交互的等待过程中游戏的进程是暂停的大家可以想象一下自己玩GPT的场景我信息发过去还得等对面生成半天呢。因此LLM玩一次游戏的实时性较差需要三四个小时左右的时间非常慢。
2、windows部署教程
2.1 anaconda环境创建
作者也给出了自己的教程但是好像是在linux环境下的requirement里面有些东西我pip安装不了因此在此给出我自己的实践过程我的系统是window114070。 首先用anaconda创建一个环境py版本用3.10 用pycharm打开工程选择刚刚创建的环境作为解释器 从conda中打开刚才创建的环境的终端cd到工程的目录使用pip install -r requirements.txt进行依赖的安装 原来的requirements.txt有一些linux的包安装会报错非常建议使用下面我的requirements.txt来在window下安装文件放在文章最后的附录。
2.2 星际争霸2下载
暴雪跑路了星际争霸下载要科学上网参考如何下载战网国际服丨简单教程丨魔兽世界亚服丨守望先锋2亚服丨炉石传说亚服
如果战网下载卡45%需要清注册表改地址参考 https://www.bilibili.com/read/cv26026102/ https://www.bilibili.com/read/cv22398822/
然后把下载下来的工程文件里面maps里面的地图复制到星际争霸的主目录如果星际争霸的主目录没有Maps文件夹就创建一个 弄完最后打开星际争霸看看能不能玩打开需要加速器我用的雷神加速器。
2.3 运行前的修改
我们运行test_the_env.py就够了里面的多线程是一下子开好多游戏对单局游戏没有加速作用。而且由于要和chatgpt交互要用api5美元一把游戏都不够用的同时开两把也太奢侈了。
原来的代码有两处需要改动否则无法运行 其一是wandb.login(key‘your key’)key要用自己的wandb账号的我已经在自己电脑上登录过了这句话也可以注释掉的。
def gpt_agent_test(agent, env):wandb.login(keyyour key)config {LLM_model_name: gpt-3.5-turbo,LLM_temperature: 0,action_interval: 10,request_delay: 0.2,chunk_window: 5,action_window: 10,action_mix_rate: 0.5,last_k: 5,}另外就是要设置自己的gpt的api和base这个比较麻烦了由于我是穷学生外加原来的openai送的18美元过期了只能淘宝买了。 You need to set your model_name,api_key,api_base,temperature,LLM_model_name gpt-3.5-turbo-16kLLM_temperature 0LLM_api_key LLM_api_base 推荐下面的链接淘宝店铺名字Ai数码店和我没关系5美元的中转3.5api就行不限次数3块钱人民币就能用了 【淘宝】https://m.tb.cn/h.5KVoHSq?tkjYvgW7q7dum CZ3457 「3.5 4.0 api key 5刀 120刀 全新未使用 独享 国内 apikey秘钥」 点击链接直接打开 或者 淘宝搜索直接打开 买其他API一定要注意5美元的额度买起来要慎重可能是免费的每天只能发200个消息这样一局都打不完。
如果使用我推荐的淘宝店铺淘宝店家会给使用教程https://oneapi.xty.app/api的base需要小小修改一下 例如这个key没额度了大家不用手敲白嫖哦 如果使用官方买的apibase就是默认的如
2.4 运行的tips
第一次运行会从外面下载东西注意科学上网。
如果用的是openai官方api注意全程代理打开
如果用的国内中转如上面我推荐的运行的时候除第一次不用科学上网。
推荐国内中转速度快一点游戏玩的也稍微快一点
我的游戏回放在C:\Users\24762\Documents\StarCraft II\Replays\Multiplayer好像一局游戏玩结束才会有回放中途退出啥也没有建议要中途退出之前保存save一下。
3、实战效果
打的艰难电脑打输了我钻石水平可以血虐作弊三电脑。主要还是细节太差了追农民到别人家送了一波兵不然还能赢的科技攀的也慢感觉需要给CHAT GPT手动调教下才行
CSDN的链接上传视频好慢稍等哦 非常有趣的AI应用-用大语言模型来玩星际争霸2-实战效果 LLM大概两秒钟就要指导一次
看看LLM是如何评价要输了的 星际争霸2游戏分析\ 1游戏概述:在11点07分的比赛时间我们的现状是具有挑战性的。我们有33名工人185种矿物2206种天然气。我们的补给上限是47剩下10我们的军队补给是2。我们有一个Nexus四个电塔四个气体建筑八个曲速门一个控制论核心和一个机器人设施。当前游戏阶段:基于游戏时间和资源可用性我们处于游戏中期阶段。3.1单位和建筑:我们有一个有限的军队由33个探测器和1个潜行者组成。我们的基础设施包括重要的建筑如Nexus塔塔和曲速之门但我们缺乏多样性的单位组成和先进的科技结构。3.2经济:我们的天然气储量丰富但我们的矿产数量很低。工人供给也相对较低影响了我们的资源收集率。3.3科技:我们已经完成了星门的研究但没有证据表明有先进的科技单位或进一步的研究。缺乏先进的技术结构限制了我们的战略选择和单位的多样性。我们的战略:我们目前的战略似乎集中在基本的军队组成和有限的技术发展上。这可能使我们容易受到更多样化的敌人力量和先进战略的攻击。敌人的策略:敌人有混合的虫族单位包括异形督军小狗蟑螂和刺蛇。这表明了多样化和潜在强大的军队组成表明了游戏中期单位多样性和潜在空中优势的重点。关键信息:目前最关键的方面是我们有限的单位组成和技术多样性。我们未来的成功取决于我们如何设法迅速使我们的军队和技术能力多样化以对抗敌人的多样化力量。我们的战略:我们应该把重点放在快速多样化我们的军队组成和技术能力上以对抗敌人的多样化力量。优先发展防空能力。单位和建筑:考虑到敌人的多样化单位构成使我们的军队多样化是至关重要的。考虑训练防空单位和建造额外的科技结构来解锁更先进的单位。经济:专注于增加矿物收集以支持不同单位和科技结构的生产。考虑扩展到新的资源位置来促进这一点。\n\n4。技术:当前的任务是建造额外的技术结构如机器人湾或星门以解锁更高级的单位。研究防空能力也应该是一个优先事项。这一修订后的战略应有助于解决当前的限制并使我们更好地为即将到来的挑战做好准备。\n\n决策:\n0:建造星门\n1:训练凤凰\n2:建造机器人\n3:研究PHOENIXRANGEUPGRADE\n4: CHRONOBOOST CYBERNETICSCORE] 附录requirements.txt
# This file may be used to create an environment using:
# $ conda create --name env --file this file
# platform: win-64
addict2.4.0
aiohttp3.8.5
aiosignal1.3.1
aliyun-python-sdk-core2.14.0
aliyun-python-sdk-kms2.16.2
annotated-types0.6.0
anyio3.7.1
appdirs1.4.4
async-timeout4.0.3
attrs23.1.0
backoff2.2.1
bcrypt4.0.1
brotli1.1.0
burnysc26.5.0
# bzip21.0.8
# ca-certificates2023.05.30
certifi2023.7.22
cffi1.15.1
charset-normalizer3.2.0
chroma-hnswlib0.7.3
chromadb0.4.13
click8.1.7
cloudpickle2.2.1
colorama0.4.6
coloredlogs15.0.1
contourpy1.2.0
crcmod1.7
cryptography41.0.5
cssselect20.7.0
cycler0.12.1
datasets2.13.0
dill0.3.6
docker-pycreds0.4.0
einops0.7.0
et-xmlfile1.1.0
exceptiongroup1.1.3
fastapi0.103.2
filelock3.12.4
flatbuffers23.5.26
fonttools4.44.0
frozenlist1.4.0
fsspec2023.9.2
gast0.5.4
gevent23.7.0
gitdb4.0.10
gitpython3.1.32
greenlet2.0.2
gym0.26.2
gym-notices0.0.8
h110.14.0
html5lib1.1
httptools0.6.0
huggingface-hub0.17.3
humanfriendly10.0
idna3.4
importlib-metadata6.8.0
importlib-resources6.1.0
jinja23.1.2
jmespath0.10.0
joblib1.3.2
kiwisolver1.4.5
# libffi3.4.4
loguru0.6.0
markdown22.4.10
markupsafe2.1.3
matplotlib3.8.1
modelscope1.9.4
monotonic1.6
mpmath1.3.0
mpyq0.2.5
multidict6.0.4
multiprocess0.70.14
nest-asyncio1.5.7
networkx3.1
nltk3.8.1
numpy1.26.2
onnxruntime1.16.0
openai0.27.9
openpyxl3.1.2
# openssl1.1.1v
oss22.18.3
overrides7.4.0
packaging23.2
pandas2.1.2
pango0.0.1
pathtools0.1.2
pillow10.0.1
# pip23.2.1
platformdirs3.11.0
portpicker1.6.0
posthog3.0.2
protobuf3.20.3
psutil5.9.5
pulsar-client3.3.0
pyarrow14.0.0
pycparser2.21
pycryptodome3.19.0
pydantic2.4.2
pydantic-core2.10.1
pydyf0.8.0
pyparsing3.1.1
pyphen0.14.0
pypika0.48.9
pyreadline33.4.1
# python3.10.0
python-dateutil2.8.2
python-dotenv1.0.0
pytz2023.3.post1
pyyaml6.0.1
regex2023.10.3
requests2.31.0
s2clientprotocol5.0.11.90870.0
safetensors0.4.0
sc2reader1.8.0
scikit-learn1.3.1
scipy1.11.2
seaborn0.13.0
sentence-transformers2.2.2
sentencepiece0.1.99
sentry-sdk1.29.2
setproctitle1.3.2
setuptools68.0.0
simplejson3.19.2
six1.16.0
smmap5.0.0
sniffio1.3.0
sortedcontainers2.4.0
# sqlite3.41.2
starlette0.27.0
sympy1.12
threadpoolctl3.2.0
tinycss21.2.1
# tk8.6.12
tokenizers0.14.1
tomli2.0.1
torch2.1.0
torchvision0.16.0
tqdm4.66.1
transformers4.34.0
typer0.9.0
typing-extensions4.8.0
tzdata2023.3
urllib32.0.4
uvicorn0.23.2
# vc14.2
# vs2015_runtime14.27.29016
wandb0.15.9
watchfiles0.20.0
weasyprint60.1
webencodings0.5.1
websocket0.2.1
websockets11.0.3
wheel0.38.4
win32-setctime1.1.0
xlsxwriter3.1.9
xxhash3.4.1
# xz5.4.2
yapf0.40.2
yarl1.9.2
zipp3.17.0
# zlib1.2.13
zope-event5.0
zope-interface6.0
zopfli0.2.3