在现代科技领域,人工智能(AI)正日益成为不可或缺的一部分。AI不仅在自动化任务中表现出色,还在解决复杂问题方面展现出巨大潜力。但是,将AI应用于一些低级操作任务,如熟练旋转笔尖,似乎是一个不可逾越的挑战。这些任务需要高度的协调和技巧,通常需要人类多年的训练和练习才能精通。
然而,Eureka项目的诞生改变了这一格局。Eureka是一个由大型语言模型(LLMs)支持的奖励设计算法,旨在使AI达到人类水平的技能。该项目利用了最先进的LLMs(如GPT-4)的出色能力,包括零次生成、代码编写和上下文改进,以进行奖励代码的上下文进化优化。这些生成的奖励可用于通过强化学习让AI获取复杂的技能。
在Eureka的帮助下,AI能够在不需要任务特定提示或预定义奖励模板的情况下超越专家人工设计的奖励。这一技术突破使得AI在各种任务上表现出色,包括在多种机器人形态下的29个强化学习环境中,Eureka在83%的任务上胜过了人类专家,平均标准化提高率达到52%。同时,Eureka还为人类反馈的强化学习提供了一种新的无梯度方法,以提高生成的奖励的质量和安全性。
本教程将深入介绍Eureka项目,包括安装、使用指南以及如何在新环境上运行Eureka。如果您有兴趣在强化学习中与AI合作,或者只是想进行一些有趣的尝试,Eureka将为您提供支持,并为您打开广阔的应用前景。
安装Eureka
首先,让我们了解如何安装Eureka项目。以下是安装步骤:
-
创建一个新的conda环境:
conda create -n eureka python=3.8 conda activate eureka
-
安装IsaacGym(测试版本为
Preview Release 4/4
):tar -xvf IsaacGym_Preview_4_Package.tar.gz cd isaacgym/python pip install -e .
测试安装:
python examples/joint_monkey.py
-
安装Eureka:
git clone https://github.com/eureka-labs/Eureka.git cd Eureka; pip install -e . cd isaacgymenvs; pip install -e . cd ../rl_games; pip install -e .
-
Eureka目前使用OpenAI API进行语言模型查询,因此您需要拥有一个OpenAI API密钥。在终端中设置环境变量:
export OPENAI_API_KEY="YOUR_API_KEY"
入门指南
现在,让我们来了解如何使用Eureka。进入eureka
目录并运行以下命令:
python eureka.py env={environment} iteration={num_iterations} sample={num_samples}
environment
是要执行的任务,选项列在eureka/cfg/env
中。num_samples
是每次迭代生成的奖励样本数量,默认值为16
。num_iterations
是要运行的Eureka迭代次数,默认值为5
。
以下是一些尝试Eureka的示例命令:
python eureka.py env=shadow_hand sample=4 iteration=2 model=gpt-4-0314
python eureka.py env=humanoid sample=16 iteration=5 model=gpt-3.5-turbo-16k-0613
每次运行都会在eureka/outputs
中创建一个时间戳文件夹,保存Eureka日志以及所有中间奖励函数和关联策略。
Eureka旋转笔尖演示
Eureka项目还提供了一个有趣的演示,即旋转笔尖策略。您可以使用以下命令来可视化它:
cd isaacgymenvs/isaacgymenvs
python train.py test=True headless=False force_render=True task=ShadowHandSpin checkpoint=checkpoints/EurekaPenSpinning.pth
在新环境上运行Eureka
如果您希望在新的环境中运行Eureka,以下是相应的步骤:
-
创建一个新的IsaacGym环境,详细说明可以在这里找到。
-
验证标准强化学习是否适用于新环境:
cd isaacgymenvs/isaacgymenvs python train.py task=YOUR_NEW_TASK
-
在
eureka/cfg/env
中创建一个新的yaml文件,例如your_new_task.yaml
:env_name: your_new_task task: YOUR_NEW_TASK description: ...
-
构建原始环境代码,将用作Eureka上下文的环境代码,以及将Eureka奖励附加到的骨架环境代码:
cd eureka/utils python prune_env.py your_new_task
-
尝试Eureka!
python eureka.py env=your_new_task
鸣谢与许可证
Eureka项目受益于多个开源项目的支持,包括IsaacGym和DexterousHands等。此项目根据MIT许可证发布。
结语
Eureka项目为将AI应用于复杂任务提供了崭新的可能性。通过大型语言模型的支持,Eureka能够设计出优秀的奖励函数,让AI在各种任务中表现出色。无论您是想与AI合作还是进行有趣的尝试,Eureka都是一个强大的工具,具有广泛的应用前景。不要犹豫,立即尝试Eureka吧!