Transcription
我们非常激动地迎来我们的第一位特别嘉宾。他曾帮助构建现代人工智能,然后解释现代人工智能,之后又偶尔为现代人工智能重新命名。他实际上就在这个办公室里,共同创立了 Open AAI。他是在过去,让特斯拉的 Autopilot 正常工作的关键人物,他拥有一种罕见的才能,能让最复杂的技术转变变得既易于理解又顺理成章。你们都知道他去年创造了“vibe coding”这个词,但在过去的几个月里,他说了一些更令人震惊的话。他说他从未感觉自己作为一个程序员如此落后。今天我们就从这里开始。谢谢你,Andre,加入我们。>> 是的。你好。很高兴来到这里,也很高兴能开始今天的谈话。>> 好的。那么,就在几个月前,你说你从未感觉自己作为一个程序员如此落后。听到你这么说,真是令人震惊。嗯,你能帮我们剖析一下吗?那种感觉是令人振奋还是令人不安?>> 嗯,是的,肯定是两者兼有。嗯,首先,嗯,我想和你们很多人一样,我一直在使用像 lot code 这样的代理工具,以及相关的工具,嗯,已经有一段时间了,可能是在过去一年里它出来的时候,它在处理代码块方面做得很好,有时它会出错,你必须编辑它们,这有点帮助,然后我想说十二月是一个明确的转折点,对我来说,我当时正在休假,所以我有更多的时间。我想很多人也类似,嗯,我开始注意到,有了最新的模型,代码块就出来了,然后我不断要求更多,它就出来了,然后我想不起我最后一次纠正它是什么时候了,然后我就,我只是,你知道,越来越信任这个系统,然后我就在进行 vibe coding,嗯,所以这是一种,我认为这是一个非常鲜明的转变。我认为很多人实际上,我试图在 Twitter 或 X 上强调这一点,因为我认为去年很多人将 AI 体验为 ChachiPT 相关的工具。嗯,但你真的需要重新审视,而且你需要从十二月开始审视,因为事情已经从根本上改变了,嗯,尤其是在这个像代理的连贯工作流程上,它真的开始奏效了。嗯,所以我想说,嗯,是的,就是那个认识让我真的,嗯,嗯,让我陷入了那个无尽的副项目漩涡。嗯,我的副项目文件夹里塞满了各种各样随机的东西,嗯,而且,嗯,我一直在进行 V coding。嗯,所以,嗯,是的,这种情况发生在十二月,我想说,我一直在关注它的后续影响。>> 嗯,你谈了很多关于将 LLM 视为新计算机的想法。嗯,它不仅仅是更好的软件,而是一种全新的计算范式。嗯,软件 1.0 是显式规则,软件 2.0 是学习到的权重,软件 3.0 是这个。嗯,如果这是真的,那么当人们真正相信这一点时,他们会如何不同地构建团队?>> 对。所以,嗯,是的,正是如此。所以软件 1.0,我写代码,软件 2.0,我实际上是通过创建数据集和训练,嗯,训练神经网络来编程。所以编程有点像是排列数据集,可能还有一些目标和神经网络架构。然后发生的是,基本上,如果你用足够大的任务集来训练这些 GPT 模型或 LLM,基本上是隐式的,因为通过在互联网上训练,你必须同时处理数据集中的所有事情。嗯,这些实际上在某种意义上变成了一种可编程的计算机。所以软件 3.0 现在有点关于,嗯,你知道,你的编程现在变成了提示,而上下文窗口中的内容是你对解释器(即 LLM)的杠杆,它正在解释你的上下文,嗯,并在数字信息空间中执行计算。所以我想,嗯,是的,这就是转变,我认为有几个例子真的让我印象深刻,也许这会很有启发性。嗯,例如,当 Openclaw 出来时,当你想要安装 Openclaw 时,你通常会期望这是一个 bash 脚本,像一个 shell 脚本。所以运行 shell 脚本来安装 Open claw。嗯,但问题是,为了针对许多不同的平台和许多不同类型的计算机,你可能会运行一个 Open claw。这些 shell 脚本通常会膨胀并变得极其复杂。但问题是,你仍然被困在软件 1.0 的宇宙中,想要编写代码。而实际上 Open claw 的安装是你要提供给你的代理的文本块的复制粘贴。嗯,所以基本上,这是一个小技巧,嗯,你知道,复制粘贴这个并把它交给你的代理,它就会安装 Open claw。而这之所以更强大,是因为你现在正在软件 3.0 范式下工作,你不需要精确地说明,嗯,你知道,设置的所有细节。代理有自己的智能,它会打包起来,然后它会遵循指示,它会查看你的环境,你的电脑,它会进行智能操作来使其正常工作,它会在循环中进行调试,这真的太强大了,对吧?所以,我认为这是一种非常不同的思考方式,就像,复制粘贴到你的代理的文本是什么?这就是编程范式。现在我认为还有一个例子,可能比这更极端,那就是当我构建 menu genen 时。所以,menu genen 的想法是,你来到一家餐馆,他们给你菜单。通常没有图片。所以,我不知道这些东西中的任何一个是什么,嗯,通常 30% 的东西我不知道是什么,50%。所以,我想拍一张餐馆菜单的照片,然后得到这些东西可能是什么样子的通用图片。所以,我构建了一个 vcoded 的应用程序,基本上可以让你上传照片,它会做所有这些事情,它在 Verscell 上运行,嗯,它基本上会重新渲染菜单,它会给你所有的项目,它会给你一张图片,它使用了一个图像,嗯,生成器,来基本上 OCR 所有不同的标题,使用图像生成器来获取它们的图片,然后展示给你。然后我看到了这个应用程序的软件 3.0 版本,这让我大吃一惊,那就是字面意思就是拍一张照片,把它交给 Gemini,说用 Nanobanana 将这些东西叠加到菜单上。嗯,Nanobanana 返回的图像就是我拍的菜单照片,但它实际上将菜单中的不同东西渲染到了像素中,这让我大吃一惊,因为实际上我所有的 menu genen 都是多余的。它在旧范式下工作,那个应用程序不应该存在。嗯,而且,是的,软件 3.0 范式更加原始。它只是,嗯,你的神经网络正在做越来越多的工作,而你的提示或上下文只是图像,输出是图像,中间不需要任何应用程序。嗯,所以我想人们需要重新构思,嗯,不要在现有范式下工作,认为事物就是存在的,而只是将其视为现有事物的加速。实际上是新的事物现在可用了。回到你的编程问题,这甚至不是,我认为这也是一种以旧思维模式工作的例子,因为它不仅仅是关于编程和编程变得更快。这更多的是可自动化的通用信息处理。所以,它甚至不仅仅是关于代码。所以以前的代码是基于结构化数据的,对吧?嗯,你编写关于结构化数据的代码。但是,例如,通过我的 LLM 知识库项目,基本上你让 LLM 为你的组织或为你个人创建维基等。这甚至不是一个程序。这是以前不可能存在的东西,因为没有代码可以根据一堆事实创建知识库。但现在你可以直接获取这些文档,嗯,基本上,以不同的方式重新编译它们,嗯,重新排序它们,并创建一个新的、有趣的东西,作为数据的重构。所以这些是以前不可能实现的新事物。嗯,所以我想这是我一直在努力回归的,不仅仅是我们现在可以做什么已经存在的事情,而且我认为还有新的机会,只是以前不可能实现的事情,我几乎认为这更令人兴奋。>> 我喜欢你提出的 menu genen 的进展和二分法,我想即使是很多人,我相信这里的很多人都关注了你从去年十月到今年一月、二月初的编程进展。嗯,如果你进一步推断,那么 2026 年的等价物是什么?就像 90 年代构建网站,2010 年代构建移动应用程序,上一个云计算时代构建 SaaS。在回溯时,什么将变得显而易见,而今天仍然基本未构建?>> 嗯,好吧,以 menu 为例,我想,嗯,所以很多代码不应该存在,而只是神经网络在做大部分工作。嗯,我认为推断看起来非常奇怪,因为你可以基本上想象,我不知道,是的,所以你可以想象完全的神经网络计算机,在某种意义上,你输入原始视频,比如想象一个设备,它将原始视频或音频输入到一个神经网络中,嗯,并使用扩散来渲染一个 UI,这个 UI 在某种意义上是独一无二的。嗯,我感觉在计算的早期,人们有点困惑,计算机是会看起来像计算器,还是会看起来像神经网络,在 50 年代和 60 年代,并不清楚哪种方式会发展,当然我们选择了计算器路径,最终构建了经典计算,然后神经网络目前在现有计算机上虚拟运行,但你可以想象,我认为,嗯,很多事情会颠倒过来,神经网络将成为主机进程,嗯,而 CPU 将成为协处理器,所以我们看到了图表,你知道,智能计算,神经网络的计算将接管并成为 FLOPs 的主要支出,所以你可以想象一些非常奇怪和陌生的东西,其中神经网络正在做大部分繁重的工作。它们将工具使用作为一种历史遗留的附属物,用于某些类型的确定性任务。嗯,但真正掌控局势的是这些,嗯,神经网络,它们在某种意义上是。嗯,所以你可以想象一个极其陌生的推断,但我认为我们可能会一点一点地到达那里。嗯,而且我不知道,是的,这个进展还有待观察。我想谈谈,嗯,嗯,这个可验证性的概念,AI 将会更快、更容易地自动化那些输出可以被验证的领域。嗯,如果这个框架是正确的,那么哪些工作即将比人们意识到的发展得更快,我们有哪些职业,人们认为它们是安全的,但实际上是高度可验证的?>> 是的。所以,我花了一些时间写关于可验证性的文章,嗯,基本上,传统计算机可以轻松地自动化那些可以用代码指定的东西,而,嗯,最近一轮的 LLM 可以轻松地自动化那些在某种意义上可以被验证的东西,因为它的工作方式是,当前沿实验室在训练这些 LLM 时,它们是巨大的强化学习环境。所以它们被给予了验证奖励,然后由于这些模型训练的方式,它们最终基本上,嗯,进步并创造了这些锯齿状的实体,它们在数学和代码以及相关领域等可验证的领域达到了能力高峰,嗯,并且在那些不属于那个领域的东西上,它们会停滞不前,并且有点,你知道,粗糙。所以,我认为我写关于可验证性的原因是我试图理解为什么这些东西是锯齿状的。嗯,其中一些与实验室如何训练模型有关,但我认为其中一些也与,嗯,实验室的重点以及它们恰好放入数据分布的东西有关。嗯,因为有些东西在经济上非常有价值,并且会创造更多的环境,因为实验室希望在这些环境中工作。所以,我认为代码是一个很好的例子。可能有很多可验证的环境它们可以考虑,但恰好没有进入混合,因为它们没有那么有用。嗯,但对我来说,最大的,我想,最大的谜团是,一段时间以来最喜欢的例子是草莓中有多少个字母,而模型通常会出错,这是一个锯齿状的例子。嗯,模型现在已经修复了,我想,但新的一个是我要去洗车场洗车,它离我 50 米远。我应该开车还是走路?而今天最先进的模型会告诉你走路,因为它太近了。最先进的 Opus 4.7 如何同时重构一个 10 万行代码库或找到零日漏洞,但又告诉我走到这个洗车场?这太疯狂了。而且,在这些模型保持锯齿状的任何程度上,这都表明第一,也许有些东西有点不对,或者,嗯,第二,你实际上需要稍微参与其中,你需要将它们视为工具,而且你确实需要与它们正在做的事情保持联系。所以,我认为我所有关于可验证性的写作,长话短说,就是试图理解,嗯,为什么这些东西是锯齿状的。有没有什么模式?我认为这是可验证性加上实验室关心的某种组合。也许再讲一个例子,这很有启发性,那就是从 GPT 3.5 到 GPT4,人们注意到国际象棋有了很大的进步,我认为很多人认为,哦,好吧,这只是能力上的进步,但实际上,我认为这是公开信息,我想我在网上看到的,嗯,大量的国际象棋数据进入了预训练集,仅仅因为它在数据分布中,嗯,模型就有了很大的进步,比它默认情况下会有的要多得多。所以 OpenAI 的某个人决定添加这些数据,现在你拥有了一项能力,它有了很大的飞跃。所以,这就是为什么我认为我强调这个维度,因为我们稍微处于实验室所做的事情的摆布之下,他们恰好放入了混合物中。而且你必须真正探索他们给你的这个没有说明书的东西。它在某些情况下有效,但在某些情况下可能无效。而且你必须稍微探索一下。嗯,如果你在 RL 的一部分电路中,你就飞起来了。如果你在数据分布之外的电路中,嗯,你就会遇到困难,你必须弄清楚你在你的应用程序中属于哪些电路。而且,如果你不在电路中,那么你必须真正考虑微调和做一些自己的工作,因为它不一定会开箱即用地从 LLM 中出来。>> 我很想稍后回到“锯齿状智能”的概念。嗯,如果你是今天的创始人,并且正在考虑创办一家公司,你正在试图解决一个你认为可以解决的问题,一个可验证的领域,但你环顾四周,心想,“我的天哪,实验室真的真的开始在那些最明显的地方,数学、编码和其他领域,获得了逃逸速度。”你对在场的创始人有什么建议?>> 嗯,所以我想也许这回到了之前的问题,我认为可验证性,因为它,嗯,让我想想。所以可验证性使事物在当前范式下变得易于处理,因为你可以投入大量的 RL。嗯,所以也许一种看待它的方式是,嗯,即使实验室不直接关注它,这一点仍然成立。所以,如果你在一个可验证的环境中,你可以创建这些 RL 环境或示例,那么这实际上会让你有机会进行自己的微调,你可能会从中受益。但这基本上是有效工作的技术。你可以拉动杠杆,如果你有大量的 RL 环境等多样化数据集。嗯,你可以使用你最喜欢的微调框架,嗯,然后,嗯,拉动杠杆,得到一些真正,嗯,工作得相当不错的东西。所以,嗯,我不知道这可能是哪些例子。嗯,但我确实认为有一些非常有价值的强化学习环境,人们可以考虑,我认为它们不是,是的,我不想泄露答案,但有一个领域我认为非常,哦,好的。抱歉,我不是想在舞台上吹嘘,但有一些例子。>> 反过来说,你认为什么仍然只能从远处自动化?>> 我确实认为,最终几乎所有东西都可以某种程度上变得可验证。有些事情比另一些容易。嗯,因为即使是写作之类的事情,你也可以想象有一个 LLM 法官委员会,并且很可能从中得到一些,嗯,从这种方法中得到一些合理的东西。所以更多的是关于容易还是困难。嗯,所以,我确实认为,最终,嗯,是的,我认为,>> 一切,>> 一切都可以自动化。>> 太棒了。嗯,所以,去年你创造了“vibe coding”这个词,而今天我们生活在一个感觉更严肃、更注重工程的世界。你认为两者之间有什么区别?你今天称之为的又是什么?>> 嗯,是的。所以,我想说 vibe coding 是关于提高每个人在软件方面能力的门槛。所以门槛提高了,每个人都可以 vibe code 任何东西,这很棒,令人难以置信。但然后我想说,代理工程是关于保持专业软件之前存在的质量标准。所以你不允许因 VIP coding 而引入漏洞。嗯,你,嗯,你仍然对你的软件负责,就像以前一样,但你能走得更快吗?剧透一下,你可以,但你怎么做才能正确地做到呢?所以对我来说,代理工程,我称之为它,因为我认为它有点像一门工程学科。你有这些代理,它们是这些尖锐的实体。它们有点像寓言,有点随机,但它们极其强大。如何协调它们以更快地行动,而不牺牲你的质量标准,并正确地做到这一点,是代理工程的领域。嗯,所以我有点将它们视为不同的,就像一个可能是关于提高门槛,而另一个可能是关于,嗯,你知道,推断,而我看到的是,代理工程能力有一个非常高的上限。嗯,你知道,人们以前谈论 10 倍工程师,我认为这被放大了很多,10 倍不是你获得的加速。嗯,而且我认为,在我看来,那些非常擅长此道的人,他们的能力峰值比 10 倍要高得多。>> 我真的很喜欢这个框架。嗯,有一件事,当 Sam Alman 去年来到 AIN 时,他说的令人难忘的一句话是,不同代的人使用 chatgpt 的方式不同。所以如果你三十多岁,你把它当作谷歌搜索的替代品。但如果你十几岁,tragic 是你进入互联网的门户。今天的编码有什么平行之处?如果我们观察两个人使用 OpenClaw、Claude Code、Codeex 编码,一个你会认为平庸,一个你会认为完全是 AI 原生的。你将如何描述这种差异?我的意思是,我认为这只是试图充分利用可用的工具,利用它们的所有功能,投资于你自己的,嗯,设置。嗯,就像以前所有的工程师都习惯于充分利用他们使用的工具,无论是 vim 还是 v code,还是现在是,嗯,cloth code 或 codec 等等。所以,嗯,只是投资于你的设置,嗯,并且,嗯,利用了很多,嗯,你知道,可用的工具。嗯,而且我认为它看起来就是这样。我认为,嗯,也许相关的想法是,嗯,很多人可能正在为此招聘,因为他们想招聘强大的代理工程师。我认为,嗯,我看到的是,嗯,你知道,大多数人还没有为代理工程师的能力重构他们的招聘流程,对吧?如果你的招聘方式是给一些谜题来解决,而这仍然是旧范式,那么我认为招聘必须看起来像这样:给我一个非常大的项目,然后看到有人实现那个大项目,比如写一个 Twitter 克隆,嗯,为代理,然后让它真正做好,真正安全,然后让一些代理,嗯,模拟一些活动,在这个 Twitter 上,然后我将使用 10 个 codecs,5.4x for X high 来尝试打破你的,打破你的,嗯,你部署的这个网站。它们将尝试打破它,它们不应该能够打破它。所以,也许它看起来是这样的,对吧?所以,是的,观察人们在这种情况下,构建更大的项目,并利用工具,这可能是我最看重的东西。>> 随着代理做的事情越来越多,你认为什么人类技能变得更有价值,而不是更少?>> 嗯,所以,嗯,是的,这是一个好问题。我认为,嗯,好吧,现在答案是,代理有点像这些实习实体,对吧?所以这是非凡的,嗯,你基本上仍然必须负责美学、判断、品味和一点监督。也许我最喜欢的代理奇怪例子之一是,嗯,对于 menu genen,你使用 Google 账户注册,但你使用 Stripe 账户购买积分,两者都有电子邮件地址,而我的代理实际上试图,嗯,基本上,就像你购买积分时,它使用 Stripe 的电子邮件地址分配给 Google 的电子邮件地址,因为没有持久的用户 ID,嗯,对于人们来说,它试图匹配电子邮件地址,但你可以为你的 Stripe 和你的 Google 使用不同的电子邮件地址,基本上不会关联资金。所以,这是这些代理仍然会犯错误的类型,比如,你为什么要使用电子邮件地址来尝试交叉关联资金?它们可以是任意的。你可以使用不同的电子邮件,等等。比如,这是件很奇怪的事。所以,我认为人们必须负责这个规范,这个计划。嗯,我甚至不喜欢计划模式。我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,我,