motif

motif

利用大语言模型偏好生成奖励函数的强化学习框架

Motif是一个新型强化学习框架,通过大型语言模型的偏好生成奖励函数。它分为数据集注释、奖励函数训练和强化学习三个阶段。在NetHack游戏中,Motif展现出优秀性能,生成符合人类直觉的行为,并可通过提示词灵活调整。这种方法为开发智能AI代理提供了新的研究方向,具有良好的扩展潜力。

MotifAI强化学习NetHack大语言模型Github开源项目

概述

本仓库包含了Motif的PyTorch代码,用于在NetHack游戏中训练AI代理,其奖励函数源自大语言模型的偏好。

Motif: 来自人工智能反馈的内在动机

作者:Martin Klissarov* & Pierluca D'Oro*, Shagun Sodhani, Roberta Raileanu, Pierre-Luc Bacon, Pascal Vincent, Amy ZhangMikael Henaff

<p align="center"> <img src="https://github.com/facebookresearch/motif/assets/15056362/2d92344e-7ea8-4c2d-ac70-456077ac0aab" alt="motif"> </p>

Motif从NetHack游戏交互数据集中获取带有说明的观察对,引出大语言模型(LLM)对这些对的偏好。它自动地将LLM的常识提炼为奖励函数,用于通过强化学习训练代理。

为便于比较,我们在pickle文件motif_results.pkl中提供了训练曲线,该文件包含以任务为键的字典。对于每个任务,我们提供了Motif和基线方法在多个种子下的时间步和平均回报列表。

如下图所示,Motif包含三个阶段:

  1. 数据集标注:利用LLM对带说明的观察对的偏好创建标注后的数据集;
  2. 奖励训练:使用标注后的数据集对和LLM的偏好作为监督信号训练奖励函数;
  3. 强化学习训练:使用Motif的奖励函数训练代理。

我们通过提供必要的数据集、命令和原始结果,详细说明了每个阶段,以便重现论文中的实验。

<p align="center"> <img src="https://github.com/facebookresearch/motif/assets/15056362/297e16c5-fcd3-42ef-b686-b383b0ec56b3" alt="motif"> </p>

我们通过NetHack学习环境评估Motif在具有挑战性、开放式和程序生成的NetHack游戏中的表现。我们研究了Motif如何主要生成符合人类直觉的行为,这些行为可以通过提示修改轻松调整,以及其扩展性。

<p align="center"> <img src="https://github.com/facebookresearch/motif/assets/15056362/1b93c85d-5c99-446a-b8a0-6e6e2b60328e" alt="motif"> </p> <p align="center"> <img src="https://github.com/facebookresearch/motif/assets/15056362/91e683d4-819f-404b-8983-a567e2dc833a" alt="motif"> </p>

要安装整个流程所需的依赖项,只需运行pip install -r requirements.txt

使用Llama 2进行数据集标注

在第一阶段,我们使用一个带有说明(即游戏中的消息)的观察对数据集,这些观察对是由经过强化学习训练以最大化游戏分数的代理收集的。 我们在本仓库中提供了该数据集。 我们将不同部分存储在motif_dataset_zipped目录中,可以使用以下命令解压缩。

cat motif_dataset_zipped/motif_dataset_part_* > motif_dataset.zip; unzip motif_dataset.zip; rm motif_dataset.zip

我们提供的数据集包含了Llama 2模型给出的一组偏好,存储在preference/目录中,使用了论文中描述的不同提示。 包含标注的.npy文件名遵循模板llama{size}b_msg_{instruction}_{version},其中size是来自集合{7,13,70}的LLM大小,instruction是引入给LLM的提示中的指令,来自集合{defaultgoal, zeroknowledge, combat, gold, stairs}version是要使用的提示模板版本,来自集合{default, reworded}。 以下是可用标注的摘要:

标注论文中的用例
llama70b_msg_defaultgoal_default主要实验
llama70b_msg_combat_default引导向_怪物杀手_行为
llama70b_msg_gold_default引导向_黄金收集者_行为
llama70b_msg_stairs_default引导向_下降者_行为
llama7b_msg_defaultgoal_default扩展实验
llama13b_msg_defaultgoal_default扩展实验
llama70b_msg_zeroknowledge_default零知识提示实验
llama70b_msg_defaultgoal_reworded提示重写实验

为创建标注,我们使用vLLMLlama 2的聊天版本。如果你想生成自己的标注或重现我们的标注过程,请确保按照官方说明下载模型(获取模型权重可能需要几天时间)。

标注脚本假设数据集将使用n-annotation-chunks参数分成不同的块进行标注。这允许根据可用资源进行并行处理,并且对重启/抢占具有鲁棒性。要使用单个块运行(即处理整个数据集),并使用默认提示模板和任务规范进行标注,请运行以下命令。

python -m scripts.annotate_pairs_dataset --directory motif_dataset \
                                 --prompt-version default --goal-key defaultgoal \
                                 --n-annotation-chunks 1 --chunk-number 0 \
                                 --llm-size 70 --num-gpus 8

请注意,默认行为是通过将标注附加到指定配置的文件来恢复标注过程,除非通过--ignore-existing标志另有说明。也可以使用--custom-annotator-string标志手动选择为标注创建的'.npy'文件的名称。可以使用单个32GB内存的GPU进行--llm-size 7--llm-size 13的标注。 你可以使用8个GPU的节点进行--llm-size 70的标注。这里我们提供使用NVIDIA V100s 32G GPU对100k对数据集进行标注的粗略时间估计,这应该能大致重现我们的大多数结果(我们的结果是使用500k对获得的)。

模型所需标注资源
Llama 2 7b约32 GPU小时
Llama 2 13b约40 GPU小时
Llama 2 70b约72 GPU小时

奖励训练

在第二阶段,我们通过交叉熵将大语言模型的偏好提炼为奖励函数。要使用默认超参数启动奖励训练,请使用以下命令。

python -m scripts.train_reward  --batch_size 1024 --num_workers 40  \
        --reward_lr 1e-5 --num_epochs 10 --seed 777 \
        --dataset_dir motif_dataset --annotator llama70b_msg_defaultgoal_default \
        --experiment standard_reward --train_dir train_dir/reward_saving_dir

奖励函数将通过位于--dataset_dir中的annotator的标注进行训练。然后,结果函数将保存在train_dir下的--experiment子文件夹中。

强化学习训练

最后,我们通过强化学习使用得到的奖励函数训练一个智能体。要在NetHackScore-v1任务上使用默认超参数训练智能体,结合内在和外在奖励进行实验,可以使用以下命令。

python -m scripts.main --algo APPO --env nle_fixed_eat_action --num_workers 24 \
        --num_envs_per_worker 20 --batch_size 4096 --reward_scale 0.1 --obs_scale 255.0 \
        --train_for_env_steps 2_000_000_000 --save_every_steps 10_000_000 \       
        --keep_checkpoints 5 --stats_avg 1000 --seed 777  --reward_dir train_dir/reward_saving_dir/standard_reward/ \
        --experiment standard_motif --train_dir train_dir/rl_saving_dir \
        --extrinsic_reward 0.1 --llm_reward 0.1 --reward_encoder nle_torchbeast_encoder \
        --root_env NetHackScore-v1 --beta_count_exponent 3 --eps_threshold_quantile 0.5

要更改任务,只需修改--root_env参数。下表明确列出了与论文中呈现的实验相匹配所需的值。NetHackScore-v1任务的extrinsic_reward值为0.1,而其他所有任务的值为10.0,以激励智能体达到目标。

环境root_env
得分NetHackScore-v1
楼梯NetHackStaircase-v1
楼梯(第3层)NetHackStaircaseLvl3-v1
楼梯(第4层)NetHackStaircaseLvl4-v1
神谕NetHackOracle-v1
神谕-清醒NetHackOracleSober-v1

此外,如果你只想使用来自大语言模型的内在奖励而不使用环境奖励来训练智能体,只需设置--extrinsic_reward 0.0。在仅使用内在奖励的实验中,我们只在智能体死亡时终止回合,而不是在智能体达到目标时终止。这些修改后的环境列在下表中。

环境root_env
楼梯(第3层)- 仅内在奖励NetHackStaircaseLvl3Continual-v1
楼梯(第4层)- 仅内在奖励NetHackStaircaseLvl4Continual-v1

可视化你的强化学习智能体

我们还提供了一个脚本来可视化你训练的强化学习智能体。这可以提供对其行为的重要洞察,同时还会生成每个回合的顶级消息,有助于理解它试图优化的目标。你只需运行以下命令即可。

python -m scripts.visualize --train_dir train_dir/rl_saving_dir --experiment standard_motif

引用

如果你在我们的工作基础上进行研究或发现它有用,请使用以下bibtex引用。

@article{klissarovdoro2023motif,
    title={Motif: Intrinsic Motivation From Artificial Intelligence Feedback},
    author={Klissarov, Martin and D'Oro, Pierluca and Sodhani, Shagun and Raileanu, Roberta and Bacon, Pierre-Luc and Vincent, Pascal and Zhang, Amy and Henaff, Mikael},
    year={2023},
    month={9},
    journal={arXiv preprint arXiv:2310.00166}
}

许可证

Motif的大部分内容采用CC-BY-NC许可,但项目的某些部分采用单独的许可条款:sample-factory采用MIT许可。

编辑推荐精选

博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
商汤小浣熊

商汤小浣熊

最强AI数据分析助手

小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。

imini AI

imini AI

像人一样思考的AI智能体

imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。

下拉加载更多