## **我目前想实现的目标** 我想让MBRL的World Model更加强力有效,从而用更好的World Model来更好地做Planning。 现在的MBRL的World Model一般是一个网络模型,通过获得一个state-action pair,来预测next_state, reward, etc. 根据之前的论文和老师的想法,我认为使用LLM来初始化World Model是可行的,并且也可能有其他的方法来利用LLM更好地学习World Model。 #### Part 1: 用LLM来初始化World Model 这个是目前我做的实验比较多,对结果比较了解的部分。 已经做完的部分: - [x] Done: 调通GPT-2相关代码(diffusers & official code)并写一个即插即用的GPT-2,用来代换掉RSSM什么的。 - [x] Done: 在toy example和IRIS上测验用GPT-2代换World Model的效果。 还在做的工作: - [ ] **Now working on: 在Dreamr-V2 for Mini Atari上测验用GPT-2做World Model的效果。** - [ ] ToDO: 把Online实验变成Offline的。这会加快迭代速度,但是我正在做DreamerV2+GPT2的实验,我发现这部分的迭代已经够快了。我想我可以之后再完善Online-change-to-Offline这个部分。 - [ ] ToDO: 我们之前没有聊过这件事情。就是我觉得可以采用各种不同版本的LLM,比如有些LLM被finetune成一些奇奇怪怪的版本,比如GPT-2 for Math这种。当然这件事比较简单,但分析结果不太容易,所以放在ToDO里。 #### Part 2: 用LLM来辅助World Model的学习 这个是我觉得也许可行,但是没有想到solid solution的部分。请老师不要误会,我并不是脱离之前的项目而开始思考有没有什么新题目。这些只是我觉得也许能帮到我们项目的部分。我不希望脱离之前的研究而来搞这些。 我觉得就像老师一开始说的,LLM有一定预测的能力,但是目前我们是用LLM作为初始化参数的模型,没有让LLM说话。一些popular的方法利用LLM“说话”(也就是in context learning)来做到很好的planning效果。也许我们也可以让LLM“说话”? - [ ] ToDO: 让LLM“说话”,用来指挥从LLM开始的World Model的学习? 我是这样想的,fixed LLM自己当World Model(比如GPT3.5)从实验来看是不太可行的,它只能像一个喝酒吃饭的时候滔滔不绝讨论国家大事的人一样说一些很没道理的话。 但是我们可以训练一个网络,这个网络同时接受两个输入,一个是World Model的输入,一个是GPT3.5的输入,然后从两者中取其精华去其糟粕,去得到正确的预测。我画了一个更加明确的图来表达这个过程: ![](https://hackmd.io/_uploads/S1-aVfULh.png) - [ ] ToDO: 让LLM“说话”,来指挥planning和Dreaming的过程? 我是这样想的,我们一般做MBRL的时候,一般从一个state开始,我们只会sample一个action,然后dream一个next_state。但有些时候也许还有更好的选择,或者我们可以扩充更多选择;我们可以从GPT4里生成很多个planning(它本来一次就会生成好多条嘛),然后针对每一条都进行dreaming,选取一条最好的来action。 这样既不会像暴力搜索一样增大工作量,又可以有效利用GPT4的planning能力。我想这也是一个可选的方向,但是它暂时不能直接接到我们的工作上。可以先放着,等等合适的时机。 ## **目前的工作进展** <!-- #### 用GPT-2来初始化World Model: --> 经过一些实验,目前我们已经知道使用GPT-2来初始化World Model in IRIS和一些toy example是有效的。不过,这个提升是比较小的,并且随着使用环境的不同,得到的优势(收敛速度或准确性)也不同。 我们知道不需要完全复制原来的知识。比如GPT-2的block,我们在保留原始框架(12层)的前提下只读取6层的参数,在某些环境下甚至效果更好。 我觉得这方面的实验结果暂时是没有必要推广到更大的语言模型上的。 - [ ] **Now working on**: **我正在尝试破坏原始框架之后(比如原来有12个block串联,但我只挑几个串联。这和只有一部分被GPT-2初始化不一样)是否也能得到满意的效果,这个问题我觉得比较关键,因为涉及到能不能做更轻量的实验。下次开会的时候我会把这边的结果po到PPT上,现在结果还不成型。** - [ ] **Now working on**: 我发现有人[在Mini Atari上做了Dreamerv2的实验](https://github.com/RajGhugare19/dreamerv2),**而且代码非常简洁。我正在尝试把RSSM中的RNN变成Transformer以后能够达到什么样的情况**。目前代码其实已经写完了,我在做调参和Ablation study,因为现在效果并不好。 目前效果(同一个种子跑一遍,深色的是GPT-2版的Dreamer-V2 for Mini atari,但是batch_size和sequnce length减少为原来的40%。浅色的是原版): ![](https://hackmd.io/_uploads/r1q_OlII2.png) ![](https://hackmd.io/_uploads/ryq_dl883.png) ![](https://hackmd.io/_uploads/rkquuxIL3.png) 各种loss也许看着还行,但是train_rewards曲线令人绝望的低。 ## 为什么隔了两天才把这个发过来? 物理上:李秀老师从上周五开始找我们写本子(申请书),这两天又要写PPT。这不是主要原因,因为我觉得在这方面花的时间不长。进度慢且散主要是因为我一直在思考有没有“奇技淫巧”可以像那些新的popular的LLM for RL的工作一样改变World Model的范式。这一点之前和老师聊天的时候已经被教育过了,我想我现在需要回到执行和迭代的正路上来。 心理上:感觉很不好意思……种种原因我觉得我不应该分享的时候让老师觉得啥进度也没有的。超不好意思,所以决定先做点Dreamer-v2的实验再一起发过来会好一点。