WEBVTT

00:02.520 --> 00:04.620
老师：大家好, 欢迎回来｡ 

00:04.620 --> 00:11.640
在本视频中, 我们将讨论如何使用ChatGPT解决“Breakout”,

00:11.640 --> 00:15.540
使用ChatGPT实现A3C｡

00:15.540 --> 00:19.470
所以我已经用了很多疯狂的提示, 我们得到了惊人的结果,

00:19.470 --> 00:23.010
我们马上就会看到它们｡

00:23.010 --> 00:28.740
因此, 这个视频将基本上通过我的思想过程来了解我是如何得到结果的,

00:28.740 --> 00:34.890
以及如何使用ChatGPT来创建A3C算法｡

00:34.890 --> 00:39.360
好吧, 所以我开始类似于我们为“DOOM”所做的,

00:39.360 --> 00:42.930
我说, 好吧, 你基本上是一个机器学习专家,

00:42.930 --> 00:46.110
在机器人方面有多年的经验｡

00:46.110 --> 00:50.490
我雇你来做“越狱”的A3C算法｡  我们的目标是有一个功能齐全的SOTA,

00:50.490 --> 00:52.110
A3C算法,

00:52.110 --> 00:56.100
可以玩“突围”游戏｡

00:56.100 --> 01:02.520
我已经实现了类､ 测试代码环境和Adam优化器的自定义版本,

01:02.520 --> 01:07.590
Adam优化器用作A3C模型的共享权重优化器｡

01:07.590 --> 01:09.361
所以这是给它更多的背景,

01:09.361 --> 01:13.076
我做了什么, 我会提供这三件事给你｡

01:13.076 --> 01:18.000
因此, 正如我在生成其余代码之前所提到的, 您的目标是使用Python,

01:18.000 --> 01:23.250
Torch实现完整的解决方案, 类似于我们所做的, 并优化在Google

01:23.250 --> 01:31.680
Colab中执行的代码, 与我们之前所做的相同｡

01:31.680 --> 01:33.540
另外, 注释代码的每一行,

01:33.540 --> 01:38.590
这样学生就能理解你在代码中做了什么｡

01:40.710 --> 01:42.990
如果需要的话, 问清楚问题, 明白了｡ 

01:42.990 --> 01:48.360
所以我们有一些重叠, 我们为“DOOM”的对话式Deep

01:48.360 --> 01:57.390
Q所做的, 但我添加了很多我已经实现的内容, 我希望它们被使用｡

01:57.390 --> 02:00.210
这就是我开始做的事情, 并且得到了证实｡ 

02:00.210 --> 02:03.030
是的, 我明白, 我会问任何问题,

02:03.030 --> 02:06.840
请提供代码的其余部分｡

02:06.840 --> 02:09.510
然后我说, 这是亚当优化器,

02:09.510 --> 02:11.753
粘贴亚当优化器的代码,

02:11.753 --> 02:15.180
对于我们拥有的资源, 我给出了这个指令,

02:15.180 --> 02:18.870
我说, 在实现之前等待其余的代码, 我只是,

02:18.870 --> 02:21.963
在我得到任何好的结果之前, 我实际上只是粘贴,

02:23.130 --> 02:30.510
它立即跳到实现A3C, 而不是等待其余的代码｡

02:30.510 --> 02:33.750
所以我添加了这个作为一种系统代码,

02:33.750 --> 02:41.820
系统提示, 它说, 好的, 请提供环境并测试代码｡

02:41.820 --> 02:43.650
所以它实际上是指我们在第一个提示中给出的｡

02:43.650 --> 02:51.030
我说, 酷, 这里是健身房环境的实现｡

02:51.030 --> 02:52.173
我粘贴了主代码,

02:53.760 --> 02:56.010
我在这里添加了上下文, 如果你看一下,

02:56.010 --> 02:59.040
这是运行所有内容的主文件｡

02:59.040 --> 03:05.267
然后我说, 好吧, 酷, 等待测试代码｡

03:05.267 --> 03:06.813
它说, 是的, 我, 然而,

03:07.830 --> 03:08.766
我仍然需要在实现A3C之前看到测试代码,

03:08.766 --> 03:13.410
我说, 酷, 这里有一个测试代码｡

03:13.410 --> 03:15.813
你看, 如果你有一个更大的项目,

03:16.920 --> 03:33.630
你可以用它来改变它, 使用这段代码, 或者作为一个参考, 这样你就可以按照你的风格生成一些代码｡

03:33.630 --> 03:34.983
太棒了, 当我这么做的时候,

03:36.360 --> 03:38.370
它说, 太好了, 去吧｡

03:38.370 --> 03:41.190
基本上我会使用这个主代码,

03:41.190 --> 03:45.840
测试, 并实现它｡

03:45.840 --> 03:52.800
然后它说, 创造模型｡  py, 实际上我们在这门课上也做过｡

03:52.800 --> 03:55.830
他说, 这是演员评论家的模式,

03:55.830 --> 03:58.620
我和我们的比较｡

03:58.620 --> 04:00.630
这是python的新版本,

04:00.630 --> 04:05.640
所以很多权重初始化之类的事情可以用更优雅的方式完成｡

04:05.640 --> 04:09.060
所以它做到了, 它实际上使用得很好,

04:09.060 --> 04:15.663
然后生成训练代码, 基本上是ActorCritic｡

04:16.500 --> 04:19.860
如果你看一看, 这是一个相当简单的,

04:19.860 --> 04:23.039
所以它肯定需要改进｡

04:23.039 --> 04:25.980
所以你可以做的是, 你可以说,

04:25.980 --> 04:27.423
好的, 我说继续,

04:28.500 --> 04:31.560
它继续把它写下来｡

04:31.560 --> 04:35.373
它造成了这种损失, 但是,

04:37.920 --> 04:41.040
是的, 基本上我们需要的一切,

04:41.040 --> 04:51.333
它优化了一切, 你可以看到优化器｡

04:51.333 --> 04:51.333
在终点停下来｡ 

04:53.160 --> 04:59.220
所以它基本上使用了我们到目前为止定义的所有内容,

04:59.220 --> 05:02.490
以及适当的损失, 是的, 优化器, 一切｡

05:02.490 --> 05:05.730
就这样了

05:05.730 --> 05:07.591
通过几个简单的步骤,

05:07.591 --> 05:10.530
我们成功地实现了一个最先进模型的整个代码,

05:10.530 --> 05:18.450
这个模型恰好是2017年和2018年最好的模型之一｡

05:18.450 --> 05:24.900
直到今天, 它实际上拥有大量的能力来解决复杂的环境,

05:24.900 --> 05:28.710
如“突破｡ 所以你看到了, 现在我们有了ChatGPT,

05:28.710 --> 05:32.490
你可以引导它实现代码的某些部分｡

05:32.490 --> 05:39.450
如果你不知道代码的某些部分实际上是做什么的,

05:39.450 --> 05:51.840
你可以去问它, 例如, 酷, 你能解释一下训练部分吗？

05:51.840 --> 05:59.223
所以我在提示它解释自己, 这是另一种提示它的方式,

06:04.740 --> 06:10.290
给你更多的理由来解释它的产生｡

06:10.290 --> 06:16.803
你可以看到它实际上是在一步一步地解释｡

06:17.730 --> 06:18.563
所以, 是的,

06:18.563 --> 06:21.213
我们可以等待这个, 你可以做同样的提示,

06:22.920 --> 06:38.010
你会得到和我非常相似的结果, 但一般来说, 现在它要做的是, 它会接受它在顶部定义的火车函数, 它基本上会经历每一步并实现它｡

06:38.010 --> 06:40.890
所以是的, 就是这样｡ 

06:40.890 --> 06:48.600
我绝对鼓励你在Google Colab中尝试这段代码,

06:48.600 --> 06:58.380
这是可以做到的, 因为Goggle Colab环境的可视化和限制, 使它工作起来有点太棘手了｡

06:58.380 --> 06:59.760
但是, 你绝对可以把错误粘贴到这里,

06:59.760 --> 07:07.083
你可以, 你可以得到一些相当不错的结果来调试这个过程｡

07:08.580 --> 07:16.860
是的, 我会让你成为, 现在你有了如何使用ChatGPT来获得A3C价值的方法｡

07:16.860 --> 07:20.400
是的, 希望你喜欢到目前为止的课程,

07:20.400 --> 07:24.960
再见｡
