📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

AI Engineer World’s Fair 2024 - Open Models track

AI Engineer3:34:55

Transcription

我们这样做是打破常规的,但社区围绕我们的模型进行工作,我们从社区那里了解到我们的模型如何进行定制或部署到新的环境中。那么,这些开源模型是如何训练的呢?我将为您提供一个非常高层次的概述,介绍大型语言模型训练的不同阶段,通常大型语言模型会经历三个阶段:预训练、指令微调和从人类反馈中学习。

预训练的理念非常简单:您获取一段文本,然后逐字或逐标记地将其传递给大型语言模型,并要求模型预测下一个标记。这个理念本身非常简单,任务是预测下一个标记。每个标记大约是 75 个词。词汇量大小大约是数万个标记,有时是数十万个。每个标记基本上表示为一个整数,并与其关联的嵌入。因此,模型的任务是接收一系列嵌入或标记,并预测下一个标记。

虽然这个概念非常简单,但在实践中却非常困难。为什么困难?因为它需要大量的工作来构建数据集。数据集非常庞大,数量级是万亿个标记,数十万亿个标记。这需要预处理、清理、去重和策展。人们普遍认为,数据越多,性能越好,但这并非总是如此。如果数据中有噪声,实际上会损害模型的性能。

它还需要大量的投资。这些模型非常庞大,你知道,可以达到数千亿甚至万亿个参数。每个模型的训练成本高达数千万美元。最困难的部分是,您没有多次训练模型的机会。因为成本如此之高,如果在训练过程中出现任何问题,很难获得投资来再次进行训练。因为,对于小型公司来说,您通常无法获得这样的预算。如果您成功运行了一个模型,那么下一轮的融资就会变得更加困难。

这很困难,因为对于较小的模型来说,最佳的超参数可能不是大型模型的最佳超参数。在这里,我向您展示了 Llama 1 模型系列大小的一些超参数。您可能会问,为什么 Llama 65b 的层数是 80 而不是 82?答案是我们不知道。很多东西都是凭直觉决定的,它不是一门精确的科学。因此,您需要大量使用这些模型的经验和直觉来想出很可能有效的方法。但是,我们对如何最好地训练模型、什么是最佳架构、什么是最佳数据集组合的科学仍然不够成熟。

那么,我们可以使用这个预训练模型吗?假设您想使用这个预训练模型,并要求它编写一个 Python 函数来判断输入数字是否为素数。模型可能会给您这样的回复。它会继续文本,给出示例,并描述方法,但可能不会给您代码。这是因为模型被训练成这样做,它被训练成预测下一个标记。因此,它会预测它在训练过的文本数据中最有可能的标记。

但是,如果您给模型这样的输入,例如作为 Python 函数定义和文档字符串,那么有一个方法可以“欺骗”模型,让它生成相同的函数。模型实际上会生成代码。这表明模型实际上知道答案,但它没有与人类的偏好对齐,它没有以人类想要的方式与人类互动进行训练。这就是为什么我们需要接下来的两个阶段。

在指令微调阶段,我们不再只是一个文本字符串,而是拥有提示-响应对。在这里,我们以人类希望与模型互动的方式提供提示。例如,这个提示是编写一个 Python 函数,而响应直接就是代码,因为这就是人类想要的响应。这个技术再次非常简单,我们正在进行下一个标记预测,唯一的区别是我们将屏蔽提示本身,我们只对响应进行预测。

数据集是成对的提示-响应对。我们通常使用十万到数十万条指令。任务是预测下一个词,只是我们屏蔽了输入指令。这需要计算量少得多,通常使用数百台 GPU 几个小时或几天就足以进行指令微调。

最后一个阶段是从人类反馈中学习。这里的理念是,人类的偏好比完整的人类注释更容易或更便宜获得。如果您给我一个这样的提示和两个响应,人类更容易决定哪个响应更好,而不是从头开始编写整个响应。这使我们能够更快地扩展数据。有两种主要技术:强化学习从人类反馈中学习和直接偏好优化,我们使用这种类型的反馈数据来进一步微调模型。

总结一下,这三个阶段。它们具有不同的数据集和计算要求顺序,任务也略有不同。我们所有的开源模型都是使用这些技术训练的。因此,我不会详细介绍模型架构本身,但我会向您展示这个关于性能与成本比率的漂亮图表,它表明我们确实努力优化这个指标。我们试图在特定大小的模型中获得最佳性能。

因此,在 X 轴上,我们有活动参数,它与运行模型的成本直接成正比。在 Y 轴上,我们有一个流行的基准 MMLU。我们试图在左上角,以更低的成本获得更高的性能。我们最近发布了 CodeSt model CodeSt 22b,它是一个专门为代码训练的密集 Transformer 模型。我们再次试图优化性能和速度。它支持 10 种以上的编程语言,并且同时具有指令模式和填充中间模式,这意味着您可以将其用于代码补全,就像 GitHub Copilot 一样,您也可以用它来询问有关您遇到的错误或问题的答案,就像您将其放入 ChatGPT 中一样。它在代码方面优于 CodeLlama 70b、Deepseek Coder 33b、Llama 3 70b,同时模型尺寸显著减小。因此,我们再次在特定大小的模型中获得了更高的性能。它的上下文窗口也比其他开源代码模型更长。它是多语言的,我们用 80 多种编程语言训练了它,并且在所有这些不同的语言中,它的表现往往优于其他模型。

它可以在我们的聊天界面 chat.mistral.ai 上免费使用。我们还可以在我们的 API 平台 Lab 平台上提供 API 访问,直到我记得的七月底都是免费的。我们还与 VS Code 和 JetBrains 集成了,所以您可以下载 VS Code 或 JetBrains 的插件,并将其用作代码补全的编码助手。

最后,我将讨论一些实用技巧,因为这些是关于如何使用开源模型以及何时使用开源模型与何时使用商业模型的常见问题。如果您有一个特定的应用程序,并且想尝试商业模型,您可以进行提示工程、思维链提示,您还可以进行增强生成,因为商业模型通常不允许您进行微调。但对于开放模型,您也可以进行特定任务的微调。这需要少量的数据和计算资源。但最终的选择在于您如何平衡性能与成本。商业模型具有更高的通用性能,因此如果您想构建新的东西,它们更容易上手。但一旦您进入生产阶段或一旦您拥有高流量,通过微调,开放模型可以在特定任务上击败商业模型。

我们通常看到人们使用最高端的模型进行原型设计,然后一旦他们确定了要解决的任务,他们就会选择像 Mistral 7B 或 8x7B 这样的开源模型,然后针对他们的任务进行微调。这优化了性能与成本比率。我们在巴黎、伦敦和阿灵顿设有办事处。我们一直在寻找有才华的研究人员、工程师、业务和营销人员。所以,请申请。谢谢。我不知道您是否在提问,但没有。好的,非常感谢。非常感谢,这太棒了。我喜欢自己使用这个模型,我喜欢它如何与我们之前在主题演讲中看到的一些演示联系起来,例如 Llamafile 能够在您自己的硬件上运行它。所以,向 Mistral 团队致敬,感谢他们开源了所有辛勤的工作,而且您可以看出这些事情并不便宜。非常感谢。我不认为他用了同一个,因为那是互联网。好的,好的,我们的下一位演讲者是来自 Txt 的 Remy。请开始吧,Remy。好的,谢谢,谢谢,谢谢,谢谢。所以,是的,我叫 Remy,我是开源库 Outlines 的合著者兼共同维护者,你们可能有些人知道。我还是 Txt 或 Text 的首席执行官兼联合创始人,您怎么称呼都可以。我们是更传统的机器学习人士,我们工作的动力是这样一个非常简单的观察,即大型语言模型存在根本性的缺陷。我给您一个非常简单的例子。您试图从一堆电子邮件中提取航班信息,当然您希望它们是 JSON 对象,你知道,包含出发地、目的地等。所以您去 OpenAI,您用提示把模型逼到绝境,您威胁它,您使用函数调用,有时您得到的答案是 JSON 错误。我给您非常简单的例子,但这有根本性的影响,因为计算依赖于接口。我们能够构建模块化基础设施和非常复杂的基础设施,因为我们可以信任代码片段的 API。而我在这里告诉您,并且您可能已经亲身经历过,您实际上无法信任大型语言模型能够产生一致的输出。简而言之,目前代理技术还不够成熟。

好消息是,结构化生成,即模型返回特定结构的能力,确实解决了这个问题。我们看到它允许您将 GPT 变成一种副产品。今天的目标是首先为那些不知道它的人介绍开源库 Outlines。然后非常简要地解释它是如何工作的,我不会深入技术细节,然后尝试说服您,您应该今天就使用它,用于您需要处理的大多数工作流程,以及对不久的将来进行非常简短的展望。

Outlines 是一个 Python 库,强调库。您可以实际将 Outlines 包含在您的工作流程中,它不像框架那样,您必须让您的工作流程适应框架。我认为因此,它已被 VM 和 TGI 在服务框架中采用。如果您在这两个库中使用函数调用,您实际上是在使用 Outlines 的底层技术。我是合著者,但 Outlines 如果没有其贡献者,将一无是处。今天有 87 位,我想可能是 88 位,我想我早上合并了一个 PR,我不记得了。所以,如果没有所有这些人,Outlines 将一无是处。我非常感谢他们。人们认为我们一年前在谈论结构化生成时是疯狂的,但从那时起,我很高兴,因为人们似乎已经跟上了这个话题,并意识到您实际上可以做到。

现在,让我们快速浏览一下 Outlines。通常,文本生成分为三个阶段。第一阶段是您需要选择模型并实例化它。Outlines 完全专注于开源模型。我们与六个不同的模型提供商集成:Transformers、Llama.cpp,以及最近我们添加了 MLX。我们与 OpenAI 集成,但这主要是为了我们比较从开源模型获得的结果与 OpenAI 提供给我们的结果。第二步是生成文本。您所做的是使用 `generate.text` 实例化一个生成器。这里我们只想返回一个句子。我们告诉生成器,每当遇到句号和问号时,就描述一下。然后您调用生成器并传入您的提示。这里是“用一句话描述结构化生成的优点”,您将不得不等待 10 分钟以上。好的,现在我们进入结构化生成。使用 Outlines 或不使用 Outlines,如果您问“Google 公共 DNS 服务器的 IP 地址是什么?”,然后您只是生成文本,您只是让 LLM 做它自己的事情,那么它通常会说很久,你知道,100 个标记,500 个标记,答案会在其中。提取答案的方法是使用正则表达式。

在这里,您可以使用 Outlines 实际上是获取您将用于提取答案的正则表达式,并使用它来指导模型,告诉模型输出应该遵循这个结构。正如您所见,您可以消除冗余的废话。您打印出来,您只需调用生成器 `reject`,调用生成器,您得到的就是结果。这实际上是正确的答案,这是使用 Mistral 7B 的。正则表达式不是定义结构的唯一方法。在实践中,人们需要很多 JSON,Outlines 允许您生成已知是 JSON 对象且具有给定结构的文本。指定结构的方式是使用 JSON Schema,或者您也可以传入 Pydantic 模型。

现在,您可能会注意到关于航班信息。在这里,我们使用了您开始时使用的示例,您正在从电子邮件中提取航班信息。我本可以使用字符串作为出发地和目的地的类型,但我没有。我实际上使用了我们在 Outlines 中实现的一个自定义类型。原因是出发地和目的地比纯文本具有更多的结构。它实际上是,你知道,它是一个三字母的、大写的航空代码。您可以指定更多的结构。所有结构,您都没有问题。您可以将此与视觉模型一起使用,这是我们最近合并的内容。在这里,我们拍摄了一张我认为是维基百科上的一道菜的照片。我们告诉模型我们想要的输出是 JSON,然后我们实例化生成器,然后将图像作为提示传递给生成器,然后我们得到一个值。

如果您想安装 Outlines,并且您认为结构化生成对您有益,那么它非常简单,只需安装 Outlines。现在我将尝试非常快速地解释它是如何工作的。模型本身,模型职业生涯中正在做的是实际训练模型权重。模型做什么?您输入一个提示,您发送一个提示,它就像标记 ID。您得到的是文本的别名,它是逻辑,它是下一个标记的概率分布。然后,当您想生成文本时,第一步是有一个逻辑处理器来偏置逻辑。您可能每天都在使用它,甚至没有注意到。当您使用温度、使用 top-k、top-p 采样时,您实际上是在偏置逻辑。然后,一旦您有了偏置的逻辑,您就使用采样算法,然后您得到一个标记。一旦您有了标记,您就将其添加到序列中,并将其反馈给模型。

我们在这里的输入是,我们实际上是在偏置模型。每当模型生成逻辑时,我们都会查看每个标记,并说,如果我将这个标记添加到当前生成中,它是否会违反结构?如果答案是肯定的,我们就会重新屏蔽它,这样它就不会被生成。这个故事非常简单。真正困难的是高效地做到这一点。这就是我们在 Txt 所解决的问题。它使 Txt 与其他库如 Guidance 不同。Txt 进行结构化生成。现在我将说服您,绝对没有理由不使用结构化生成。第一个原因是,大多数文本都是结构化的。我之前和您谈过 JSON,我们谈过正则表达式,但这里我只是使用了 GSM 数据集。如果您查看,您不会立即看到它,但如果您看右边,您可以看到它高度结构化。它总是 Q.文本,直到问号,然后等等。算术运算由上下文语法定义,您可以在 Outlines 中表达它,并最终获得答案,即六。因此,存在大量结构化的文本,不仅仅是。谢谢。我会很快的。当然,第二个好处是您获得有效的结构。我的意思是,这是显而易见的,这就是我们正在做的。我喜欢这个表情包在底部,这就是人们目前正在做的事情,只是为了获得有效的 JSON 输出而做的疯狂事情,而且甚至不能保证。而有了 Outlines,您只需采样您想要的内容,就像这样简单。

作为一项实验,这实际上是一项基于 Llama 的实验。他们使用了 Mistral 7B v0.1,他们使用了一个他们修改过的版本,可以输出 JSON。他们发现 Mistral 7B v0.1 只有 17% 的时间能获得有效的 JSON。当您在此基础上添加结构化生成时,您就能获得 99.9% 的有效 JSON,而且这还是在没有优化提示的情况下。因此,您实际上可以获得更好的结果。

好消息是,它也引入了可忽略的开销。因此,您实际上不必担心这会影响推理时间,这是非常重要的。在这里,我们比较了 Guidance 在进行结构化生成时引入的开销,作为生成标记数量的函数。底部是 Outlines。Outlines 声称大约为零,直到最后,作为权衡,在推理时它不会减慢推理速度。现在我们已经可以将其集成到 Llama 中,您将看不到结构化和非结构化之间的区别。

因此,没有开销,甚至比没有开销更好,它生成速度更快。首先是 JSON,您不需要生成对应于括号、字段的标记。我不知道高级,我不需要让模型返回标记。在这个非常简单的例子中,只有 10 个标记中有 5 个需要生成。只有一半。但还有一个更微妙的方式可以加速推理,这就是我们一开始使用的例子。这里我有一个很好的模型,ChatGPT,同样的问题,“Google 的公共 DNS 服务器的 IP 地址是什么?”ChatGPT 消耗了 50 个标记,你知道,它说了又说,它说了又说,给了它 50 个标记。这并不算太糟,用较差的模型可能会更糟。但当您使用结构化生成时,您只需要生成八个标记。这是它通过您的法律加速推理的一种微妙方式。

然后它提高了效率,这可能是我们最令人震惊的结果。这里您看到的是 GSM8K 的准确性,同样是 Mistral 7B v0.1,结构化和非结构化。这里我们查看准确性作为提示数量的函数,即在提问之前给模型的示例数量。我们发现,是的,对于零样本,正常的一样本比完全的一样本差,这是完全可以预料的。但我们发现,有了结构化,您实际上获得了与一样本相同的准确性提升,这对于像您这样的机器学习人士来说非常令人惊讶。您会认为示例是为了教会模型关于任务,但似乎它实际上是为了教会模型关于问题的结构。但应该对这个幻灯片进行更多调查,但这非常令人震惊。

最后一个,可能在速度之后很多人关心的是,它确实提高了开源模型的性能。这里您看到的是 AlpacaEval 函数调用排行榜,一个简单的函数基准。我们将查看准确性。首先,我们采用了 Microsoft 3 的中等模型,这是一个小型模型,但我们查看了它在没有结构化生成时的准确性,它是 86%,对于一个中等模型来说相当不错。AlpacaEval 5 实际上是一个非常好的模型。当您添加结构化生成时,您获得 96.5%。作为比较,GPT-4,GPT-4 的最佳版本在此任务上的准确率为 93.5%。

另外两点需要注意:96.5% 的准确率已经非常接近可用,第二点是,我们今天有开源模型可以击败更大的模型。微调。对于开源模型来说,这是一个非常大的空间,这就是为什么我对开源模型非常看好。我认为,作为社区,我们可以从这些模型中提取更多东西。这只是一个预览。我刚才展示的工作是我们一年前在 Txt 所做的。从那时起,我们已经从正则表达式泛化到您称之为上下文无关文法。上下文无关文法用于定义代码,用于定义蛋白质结构,我的意思是,也用于定义您之前在 GSM8K 示例中看到的。我们可以使用上下文无关文法进行相同的结构化生成,没有开销。我们还开始研究语义,例如向生成添加一些语义约束。一个非常流行的例子是 SQL,文本到 SQL。大多数模型通常会生成 SQL 语法,但它们会错误地虚构表或列名。而在内部,我们能够完美地进行文本到 SQL。我不能保证查询是正确的,并且会给您期望的答案,但我可以保证它会运行。这是文本到 SQL 的一个巨大进步。还有什么?哦,是的,我们还开始将计算冒泡到结构化生成中,到模型架构中。因为当您考虑它时,我们正在偏置逻辑。当您偏置逻辑时,模型实际上是在做无用的计算。因此,通过阻止模型进行这些计算,您可以获得更多的效率。所有这些工作将在接下来的几周内发布在博客文章中。

所以,这一切都意味着,如果您不是在做一个聊天机器人,那么您很有可能会使用结构化生成。这只是一个时间问题,直到您采用它。我认为我们的用户非常非常满意。所以,是的,感谢您的关注。以及我所做的所有疯狂的声明,您可以通过二维码找到所有博客文章的链接。非常感谢。哦,它修复了。好的,谢谢大家。谢谢 Remy,这太棒了。这有点令人震惊,您竟然能够深入到逻辑层面,并从中获得各种结构和速度。所以,这几天我还在思考这个问题。我们接下来的演讲者是来自 Cohere 的 Sandra。我昨晚和她共进晚餐,她在 YouTube 上有一个很棒的播客,您在听完这个之后一定要去看看。很高兴听到他们在 Cohere 正在做什么。请开始吧。 [掌声] 但也,哦,不,一,二,三。好的,那么我将使用这个。好的,大家好。这是我第一次参加 Engineer。老实说,我非常喜欢。在从机场来的路上,我从波兰华兹瓦夫来,我看到了很多提到 AI 的广告牌,我真的感觉像在家一样。是的,在这里见到你们,看到熟悉的面孔和熟悉的公司真是太棒了。今天能在这里发言是我的荣幸。

如果我告诉您,我们刚刚为您提供了最先进的模型,它在结构化的高级 RAG 和顺序推理方面表现出色,并且您可以在本地机器上运行它,它与 GPT-4 Turbo 和 Claude Opus 相比具有竞争力,而且尺寸要小得多呢?我们一直在 Cohere 努力开发我们的模型系列,今天我想谈谈我们所做的一些事情,我们在模型设计方面做出的决定,以及我们正在为模型的未来做什么。

今年我们一直在努力突破 LLM 的界限。这是我们时间线的快速回顾。三个月前,即 3 月 11 日,我们发布了 Command R。我们开放了模型的权重。Command R 是一个针对检索增强生成优化的模型,并且它是可扩展的。它的尺寸足够小,易于扩展。我们随后发布了 Command R+。这个模型针对工具使用和高级检索增强生成进行了优化,并在开源社区中非常受欢迎。发布后的几天内,我们攀升了 LMS Arena。我们对此感到非常自豪,这是一项非常伟大的成就。您作为社区使用该模型的回应是不可思议的。我们开始在 OpenRouter 上流行,发布后两周内。该模型已从 Hugging Face 下载了 50,000 次,这太疯狂了。Hugging Face 的人们实际上非常喜欢这个模型,尤其是在工具使用方面,他们决定将其用作 Hugging Chat 的基础模型。现在您可以玩 Hugging Chat 了,它有一个文档解析器、一个图像编辑器,甚至还有一个计算器,它在 iPad 之前就有计算器了。

今天,近五十万开发者和研究人员正在使用 R 系列模型。我们对此感到非常自豪。看起来大家都很兴奋能够接触到模型并能够玩转权重并深入了解。我们不断听到您的反馈,源源不断的支持和喜爱。这确实激励着我们。自那时以来,我看到了一些用 RPL 构建的超酷的东西。我在这里想特别提到的是 Daniel S 的编码助手和 Complexity 的新的生成搜索演示。我稍后会尝试演示一下,看看技术是否允许,但我会给您一个预览。另一个我最喜欢的例子是两个 Discord 服务器机器人,它们正在为我们的 Discord 社区提供支持。我邀请您去看看。其中一个是为了好玩,为了演示模型的功能,另一个是为了提供帮助。它基于我们的文档,并专注于来自 API 的信息。

我想分享构建 R 系列模型的旅程,我们一路上的决定,并向您展示我们致力于为构建者构建顶级的 RAG 工具。我们亲身体验过,构建 RAG 非常困难。当你开始做这件事时,你会遇到挑战,而且挑战很多。挑战一:模型对提示非常敏感。当您想在 RAG 上下文中 Wise 模型时,您需要提示它不仅要查找信息,还要知道在哪里查找,以及如何区分模型与用户的对话历史以及检索到的信息。这不是一个微不足道的任务。

另一个问题是克服模型自然偏向于关注文档开头的倾向。您在多个 RAG 基准测试和评估测试中都看到了这一点,例如“大海捞针”测试等等,这些测试确实显示了模型不关注最准确的信息检索,而是变得有点懒惰,主要关注开头的问题。

另一个挑战是模型内部正在进行的引导和持续的战斗,它在预训练知识和它在提示中遇到的内容之间。对于 RAG 用例,您希望模型能够利用不包含在模型参数中的知识。时间信息是一个很好的例子。当您询问模型美国现任总统是谁时,您希望模型能够利用最新的信息。因此,通过后期训练,我们能够优化模型行为,以解决这些问题,并决定何时需要外部信息。有时不需要,有时预训练的知识就足够了。然后顺畅地运行检索系统,成功检索信息,然后将该信息作为模型与用户进行的对话的依据上下文。我们为您优化了所有这些,以便您不必真正考虑它。它开箱即用,表现出色,但这很辛苦。

我们的主要重点是处理引用。我们非常重视引用。我们相信,允许用户验证信息来源以及信息是否可信非常重要。因此,我们花费额外的时间来使这些引用非常精细。因此,您可以体验到低幻觉和可靠的上下文使用。我们在 Kilt 等标准 RAG 数据集上测试了 Command R 和 R+,它们表现出同类最佳的性能。它们的尺寸足够小,价格合理,但功能强大,足以覆盖您的许多用例。它们在令牌效率方面取得了很好的平衡。要达到这种性能水平,通常您需要排成一个大型 LLM 管道。

我们还从您那里听说,为 RAG 和工具使用创建 UX 和 UI 非常痛苦。这并非易事,我们亲身体验过,因为我们自己花费了大量时间在这上面。我们对此感到非常自豪。目前,我认为它拥有现代聊天 UI 所需要的一切。因此,您可以拥有对话历史,您可以拥有精细粒度的引用,您可以上传文档,您可以将其插入到不同类型的工具中。

因此,花费了这么多时间,并且知道您在任何方面都面临困难,我们决定开源 UI 是一个好主意,我们也是这样做的。在 4 月 24 日。我觉得很多人不知道这一点,但我们的 UI 就在那里,您可以下载它并开始构建。这是一个工具包仓库,我们称之为它。它具有即插即用组件和我们用 Next.js 构建的界面应用程序的源代码。它有一个用于对话历史的小型 SQL 数据库。有一个模型组件,允许您自定义访问 Command R 模型的方式。您可以通过云提供商进行访问,可以通过 Cohere 平台进行访问,可以本地进行访问,可以通过 Hugging Face 进行访问,任您选择。然后是检索组件,在这里您可以自定义对工具和数据源的访问。开箱即用,我们构建了一个示例数据检索器,基于 LangChain。它具有文档上传功能,并使用网络搜索。但老实说,您可以添加对任何您感兴趣的工具和数据源的支持。

最近,我们一直专注于优化工具使用,尤其是在企业环境中。这是我们的游戏。这是我之前提到的 RAG 公式的一种扩展,我们开始训练模型非常擅长向量数据库和检索系统,然后自然地发展到更广泛的工具使用,训练模型使用任何工具,理想情况下是零样本上下文。这是我们正在努力实现的理想场景。它有两种形式:单步,对于需要执行单个操作或一组独立操作的情况非常有用。它可以是搜索文档或发送电子邮件。多步,另一方面,对于需要执行一系列操作的情况非常有用,其中每个操作都建立在前一个操作之上。因此,在同一个示例中,它将是搜索文档,将其与另一个文档进行比较,创建该比较的摘要,然后通过电子邮件发送。今天使用多步工具是可能的。

在顺序推理和多步操作中,您希望系统能够反思并纠正任何错误。我们正在教模型从这些不同的数据源中多次检索信息。这是一种能够做到这一点的循环。您知道,代理这个词的大多数时候,当人们使用代理和多步这个词时,他们的意思是一样的。它本质上是一个软件执行一系列操作的场景,每个操作都建立在前一个步骤之上。

上周我们发布了多步 API,对此我们非常兴奋。我们希望它用户友好。所以,您所需要做的就是描述模型拥有的工具,这些工具的作用,以及一些参数。在用户请求之后,模型将创建一个计划,并找出如何使用这些工具来满足用户请求。一旦它调用每个工具,它将反思内容,并根据需要调整初始计划。因此,例如,如果模型正在调用 API 并返回错误,它将自动重试调用,并制定一个新计划。我们在这个巨大的多步前导语中概述了这种行为,您可以在 Hugging Face 上找到它。本质上,这是一个巨大的提示,解释了模型需要做什么才能完成工作。

这里的独特优势是透明度。我们训练 Command R 和 R+ 生成可以通过引用进行验证的声明。再次,除了引用之外,我们真的相信,当您能够解释模型为每个响应使用了哪个工具时,这将产生影响,并使系统变得更好。

Command R+ 在性能上与 Claude Opus 和 GPT-4 Turbo 具有竞争力,但价格便宜三到五倍。这对于可扩展性和在生产中使用它来说是一个巨大的区别。我们在标准的复杂推理基准测试上测试了我们的 R 系列模型,Command R+ 的性能接近或等于 GPT-4 Turbo。我对即将发布的版本感到非常兴奋。我们将继续在多步操作上发力。敬请关注。非常感谢。 [掌声]

您可以打开麦克风,或者,我可以给您这个。有时我可以演示。我还有两分钟。如果您有兴趣,我可以做一个演示。好的,我们开始吧。所以,这是 Complexity,这是我提到的新的生成搜索引擎。这只是一个演示,它非常简单,但很有趣。您可以在 cplx.ai 上找到它。让我们看看我如何能更好地说话。在这里,您将获得基于多个来源的依据答案。来源在此处列出,但您也可以点击从特定网站获取的特定信息,然后转到验证它。这对我来说看起来相当可信。

所以,这就是 Complexity。我们还有一个内部 RAG 演示。它在哪里?我有一个巨大的提示。哦,好的。我们将给它一个非常困难的任务。世界上市值最大的三家公司是什么?有多少员工?创建一个图表。起草一条推文。让我们看看。正如您所看到的,您可以逐步查看模型行为。首先,它将搜索公司,然后它将搜索员工数量,现在它正在运行 Python 来创建图表并添加引用。精彩。现在我们正在等待推文。我猜推文来了吗?可能不会。好吧,我再次进行了演示,但无论如何,您都明白了。

所以,是的,这就是我们现在正在做的事情。然后您可以在 Discord 服务器上找到我们的支持和游戏机器人。所以,去看看吧。让我们问一下,AI Engineer 会议现在正在举行吗?嗯,AI Engineer 会议可能正在举行,但谁知道它是什么。好吧,那真是可惜。我们不喜欢回答。好吧,它找到了其他会议。所以,它没有找到 AI Engineer,但您可以与它进行对话。这将是多轮对话,它会记住上下文,您可以推动它。让我们再试一次。AI Engineer,不行,没运气。

不过,您可以试探它。它会说多种语言。它会说我的母语波兰语。玩起来真的很有趣。哦,是的,是的,成功了,谢天谢地。好的,精彩。是的,所以去玩吧,玩得开心。再次感谢大家。祝您会议愉快。 [掌声] 好的,上午的开源模型会议到此结束。下午欢迎您回来,我们有 Liquid AI、Unsloth 和还有一个我应该马上知道的,但它们都会很棒。下午两点见。 e e e e e e 我和你,我们是唯一一个,我们没有保留任何关于我们度过的最美好的夜晚的秘密。太阳升起,车开得很慢,在你的车里,一起唱歌,每一晚都要播放那首歌 100 次,让我们吵架。夏天,我们更轻松,在你的卧室里随着唱片跳舞,就像七月一样,你总是在我脑海里,音乐在我的脑海里,冻结而疲惫,总是在我脑海里,我感觉一切都在那一刻回来,让我可以像海洋一样旋转。所以,如果你想过来,门是开着的,一切都慢动作,慢动作,慢动作。 [音乐] 我的记忆,所以我的心感觉像一个迷宫,夜晚,当我独自一人,当我听到话语。 [音乐] 驾驶,在你的车里,唱歌,每一晚都要播放那首歌 100 次,让我们吵架。夏天,我们更轻松,在你的卧室里随着唱片跳舞,就像七月一样,你总是在我脑海里。 [音乐] 我脑海里的音乐,我感觉一切都在那一刻回来,让我可以像海洋一样旋转。所以,如果你想过来,门是开着的,一切都慢动作。 [音乐] 我们都在那一刻回来,让我可以像海洋一样旋转。所以,如果你想过来,门是开着的,一切都慢动作。 [音乐] [音乐] 我在看着你看着日出,穿着旧 T 恤,高时期的旧牛仔裤。这些夜晚尝起来像金子,甜美而痴迷。每天早上都给我看点新的东西。夜晚,我们像穿着衣服一样穿着,在火中跳舞,看着它燃烧。唱着我们的歌,放弃我们的目标,当新的早晨透过窗户来临时。我们骑着新的光芒,燃烧着页面的每一页,撕裂着所有的光。你穿着我的名字,我们把问题穿在衣服下面,像超级英雄,像超级英雄。它正在到来,它正在下降,和谐与和平,只有我们能听到。超音速的迷恋,你想感觉像我们一样。它永远停止,你在美国,在你的影响下,满月正在变大。直到你向我展示我才看到。感觉我们疯了,我们都归咎于爱。如此饱和,我们仍然无法满足。夜晚,我们像穿着衣服一样穿着,在火中跳舞,看着它燃烧。唱着我们的歌,放弃我们的目标,当新的夜晚透过窗户来临时。它正在到来,它正在下降,和谐与和平,只有我们能听到。超音速的迷恋,你想感觉像我们一样。它永远停止,你在美国。它正在到来,它正在到来,电的交响曲,每晚都在燃烧。离子大师,超音速的迷恋,你想感觉像我们一样。它永远在美国。 [音乐] 今晚不要退缩,这是我们所拥有的一切。天空正在变黑,所以和我们一起来。不要退缩,今晚是我们所拥有的一切。天空正在变黑,所以和我们一起来。 [音乐] 我们都在那一刻回来,让我可以像海洋一样旋转。所以,如果你想过来,门是开着的,一切都慢动作。 [音乐] [音乐] [掌声] [音乐] [音乐] 我们 [音乐] 我们 [音乐] 我们 [音乐] 哦 [音乐] [掌声] [音乐] [音乐] 再呼吸一次,在你身边。所以我可以找到力量分开我们。这是我们所拥有的一切,我知道我们尽力了。如果我能回去,纠正错误,我会记住你的脸,然后离开。但这就像我们成长一样。有时我们坚持,有时我们放手。 [音乐] 坚持,坚持,放手。我们之间没有什么失去。哦,我知道你有你的理由。有时我一团糟,但我知道,在过去的一切之上,有一道彩虹。你的头靠在我的肩膀上,但我知道,它最好在上面。但这就像我们成长一样。有时我们坚持,有时我们放手。 [音乐] 坚持,直到放手。有时我们坚持,有时我们放手。有时我们坚持,有时我们放手。 [音乐] 我们如何成长。有时我们坚持,有时我们放手。 [音乐] [音乐] [音乐] B [音乐] [音乐] 是的,一个 [音乐] [音乐] [音乐] 哦 [音乐] D [音乐] [音乐] 天堂的回声,我们知道的秘密。在一瞬间为我们打开。保持光明,在旧的。保持我们的目光。在我们想要的一切上。我们喘口气。在这一切之中。追逐回声。太阳正在升起。其余的都在到来。水晶般的。 [音乐] 愿景,就像。但真正的信徒。我们走在。我在地平线上看到了。我们能感受到的一切。 [音乐] 追逐。在森林里,为了树木。我一直在关注。储存。醒来并打开。保持光明。骑着我们的。所有。保持我们的目光。在我们想要的一切上。我们喘口气。在这一切之中。追逐回声。太阳正在升起。在道路上方。正在到来。水晶般的。 [音乐] 愿景。 [音乐] 就像。真正的信徒。我走在。我在地平线上看到了。我们能感受到的一切。追逐。 [音乐] 光明如此。所以我们知道。我们不能停止。我不会让它。 [音乐] [音乐] 放手。就像。我们都是真正的信徒。我们正在看着。我在地平线上看到了。

地平线,我们所能感受到的全部。

[音乐]

它是真实的,我们相信,我们正在看着世界。

我能看到地平线上,我们所能感受到的全部,就是我们所知道的全部。

[音乐]

[音乐]

[音乐]

[音乐]

[音乐]

[音乐]

[音乐]

e

[音乐]

[音乐]

[音乐]

[音乐]

[音乐]

[音乐]

[音乐]

[掌声]

[音乐]

[音乐]

[音乐]

[掌声]

[音乐]

[音乐]

St

[音乐]

[音乐]

[音乐]

不能

[音乐]

[音乐]

你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你 你

```

另一个有人发现的推断点是,添加系统提示可以使微调效果更好。嗯,所以,有时当你对 Llama 3 Instruct 进行推断时,如果你添加实际的系统提示,这可以使你的整个微调效果更好。嗯,我想对于一些人来说,当他们添加系统提示时,你实际上会错过系统提示,就像你实际上没有添加一个一样。所以,也许尝试用系统提示进行微调,你永远不知道,这可能会奏效。所以我们有一个 GitHub 包,它是开源的,你可以点击“为你微调”按钮来开始你的第一次免费微调,使用 Unso。我们已经将所有 Llama 3 的 bug 修复推送到我们的 GitHub 仓库了,所以“免费微调”按钮将把你重定向到一个修复过的 Colab 笔记本,以解决所有这些问题。随时给我们点星。我们还有一个 Discord 频道,所以如果你有任何问题,你可以问任何你想问的关于我们如何进行微调、讨论 AI 以及讨论我们的 bug 的问题。我们还有一个博客文章,关于我们所有的修复,关于 Gemma、Llama 3 V3 以及更多。例如,我们讨论了继续预训练,现在你可以使用 Unso 进行继续预训练。你可以训练 LM 头和嵌入标记,我们表明,而不是仅仅那样训练,你需要将 LM 头和嵌入标记的学习率降低 10% 或 5% 到 10%,这将使你的训练效果更好。我们还支持使用 Unso 进行四倍长的上下文。这也不会增加完成时间,所以我们将其减慢 1% 到 2%,但你使用 Unso 可以获得四倍长的上下文。这是因为我们使用了一种叫做“卸载梯度检查点”的方法,我们将梯度卸载到系统内存。有一些其他系统会将梯度卸载到磁盘,请不要这样做。如果你将梯度卸载到磁盘,你的微调完成时间将极其缓慢。所以,首先尝试卸载到系统内存,然后再卸载到磁盘。尽管如果你卸载不当,你实际上可能会使其变慢。所以你的卸载必须是非阻塞调用,并且不要对系统内存进行阻塞调用。是的,所以我会向你展示,好的,让我们看看我是否能打开它。好的,我将打开一个 Colab 笔记本,用于 Llama。是的,好的,所以对于 AMA Colab 笔记本,你可以在这里简单地安装 Unso。这已经对所有人免费开放了。基本上,当你使用 Colab 笔记本时,不要忘记你必须选择一个最大序列长度。这决定了你的模型想要进行长上下文微调的长度。你可以将其设置为任何你喜欢的数字,但请记住,你的数据集必须与最大序列长度匹配。例如,如果你想将最大序列长度设置为 1000 万或 100 万,但你的数据集只有 100 万个标记或更少,请不要将最大序列长度设置得那么大,否则你的模型无法进行微调或长序列。4 位加载器进行 4 位训练,这实际上将内存使用量减少了四倍。如果你将其设置为 false,你的内存使用量将爆炸,所以请不要尝试 false,尤其是在免费的 Colab Tesla T4 上。如果你设置为 false,你的内存使用量可能会飙升到 16GB,所以不要这样做。只有当你使用更强大的 GPU 时才应该这样做。我们支持 Unso 支持微调所有模型,包括 Llama、Mistral、Gemma V3 等。所以这个区域,这里的模型名称,你可以尝试选择任何你喜欢的模型名称。我不认为人们知道 Unso 可以支持我们列出的模型以外的其他模型,所以请尝试输入任何模型,比如 Hugging Face 模型名称,它应该可以工作。对于 get PFT 模型,这是你添加 PFT LoRA 适配器的地方。R 是秩,我们将其设置为 16,但你可以选择任何你喜欢的数字进行微调。所以我们通常建议你使用 2 的幂,但你可以使用任何数字,比如 1、2、3,任何你喜欢的数字。你选择的秩越大,你就能让模型更多地学习你的数据集。但是,如果你添加的秩太大,你可能会过度拟合你的数据集,而且你的内存使用量可能会再次飙升。所以我们通常建议人们选择 16、32、64 或 128。尽量不要选择过大的秩。你应该选择的最大秩是模型本身的大小,即维度。所以如果它是 496,将其设置为 496。对于目标模块,请小心。你必须对所有线性层进行微调,即 qkv down up 和 gate。有些人已经进行了微调,但没有做其中一些层。请不要这样做,因为这会导致你的微调不是最优的。而较低的 Alpha 实际上有一个技巧。通常情况下,将 Alpha 设置为与秩相同或更大。我们发现,如果你将其设置为 16 * 2,即秩乘以 2,这可以使你的微调效果更好。你也可以将 LoRA 层设置为 true,以便它为你自动设置秩,为你自动设置 Alpha。对于梯度检查点,Unso 是我们展示你可以进行长上下文微调的方法。你也可以将其设置为 true,但你的内存使用量将再次增加。我们还向你展示了如何在 Llama Colab 笔记本中进行数据准备。这个笔记本上传了一个 Titanic CSV 文件。Titanic 数据集的目的是,你能否预测一个人在 Titanic 上是死亡还是幸存。如果你在 Titanic 上,并且你获得了关于这个人的详细信息,例如他们的年龄、票价、他们从哪里登船等等。使用我们新的 Colab 笔记本,你必须非常小心地处理 Llama 聊天模板。因为当你进行微调时,你只能有两个列:指令和输出。但如果你的 CSV 文件有超过两个列呢?指令和输出。我们可以做的是,你可以将列合并成一列。使用 Unso,你现在可以做到这一点。你可以将列合并成一列。我们还向你展示了你可以进行自定义聊天模板。以前,如果你想进行 Alpaca 风格的微调,你必须使用指令、输入和响应来进行 Alpaca 风格的微调。但请记住,问题是,如果你想输出到 Llama 或 GWF,你只能有两个列:指令和输出。如果你进行 ChatGPT,你必须输入一些东西,然后输出才会出现。你不能有三个输入,对吧?所以,我们所做的是,你可以自定义你的聊天模板,并且你必须包含输入和输出。并且你必须重复两次。有些人问我,为什么你必须重复两次这个聊天模板?这是因为有悬空的换行符。我们找到了一个解决方案,就是你必须指定你的聊天模板的两次迭代。我们还展示了如何使用我们的方法论来完成 Llama 3 聊天模板的示例。所以你可以看到聊天模板的两次迭代。提醒一下,如果你不使用两次迭代,它实际上会出错。这些是我们通常建议人们使用的训练方法:批次大小为 2,梯度累积为 4。请记住,内存使用量仅与批次大小相关,所以尽量不要将批次大小设置得太大,否则你的内存使用量将爆炸。相反,将你的梯度累积步数设置得更大。所以有效批次大小的公式是批次大小乘以梯度累积。在这种情况下,它是 2 * 4,即 8。将你的学习率设置为 2e-5 或更小,也许是 2e-5。之后,你还可以对模型进行推断。所以现在你必须使用 apply chat template。请注意双 BOS 标记,但在 Unsw 中我们修复了这个问题。最后,你必须将其保存到 Llama。你知道你必须先安装 Llama。现在我们支持保存多个 GGML 文件,所以你实际上不必将其保存到一个 GGML 文件,你可以将其保存到多个。我们实际上允许你现在这样做。以前,如果你想保存到多个 GGML 文件,你必须额外等待 10 分钟。你现在可以通过指定多种格式来自动完成此操作。我们还可以向你展示我们创建的模型文件,所以你实际上可以复制粘贴模型文件并将其放入自定义的 Llama 中。所以模型是复杂的部分,当我们必须自动生成它时。所以我们有内部代码来自动生成模型文件。最后,当你想要进行推断时,你可以使用 Llama 进行推断。你知道它在一般情况下是有效的。所以试试看。Llama 聊天模板笔记本在幻灯片中,tinyurl.com/unso2。请记住,我们昨天做的研讨会幻灯片是 tiny.com/unso。别忘了加入我们的 Discord 频道,如果你有任何问题,你可以在外面提问等等。是的,感谢你的到来,非常感谢。非常感谢。好的,感谢 Daniel 所做的所有辛勤工作,找到了那些 bug,你真的深入研究了。我很高兴自己尝试一下,我有一个小型的 16GB GPU,玩起来会很有趣。好的,接下来,我们有来自 Liquid AI 的 Maxim,准备好大干一场了。掌声。好的,HDMI 在哪里?好的,我应该在这里说话吗?是的,插这边。好的,好的。大家好,你们能听清楚吗?是的,现在可以了吗?酷。大家好,在这个环节,我们将讨论关于微调 LLM 和模型合并你需要知道的一切。快速介绍一下,我叫 Maxim Labon,是 Liquid AI 的首席机器学习科学家。我还是一个 Go 语言开发者专家,我写关于这些主题的博客文章,我创建了 LLM 课程,它在 GitHub 上非常受欢迎。我还通过模型和工具为开源社区做出了贡献,并且我是 Hands-On Graph Neural Networks using Python with Pack 的作者。首先,让我们谈谈微调。我们在上一节中已经看到了一些微调的内容,所以我尽量不重复太多。但基本上,这是 LLM 的训练生命周期,你看到三个阶段。首先是预训练阶段,你给模型大量的原始文本,目的是让模型学会预测下一个标记。结果被称为基础模型。这个基础模型非常好,但如果你问它问题或指令,它会完成你的问题而不是回答。这就是为什么我们有监督微调阶段,这次我们给模型提供问题和答案的对,并且我们有一个类似的训练目标,但目的是在最后,它将实际回答你的问题并遵循你的指令。然后我们有一个第三个最终阶段,偏好对齐阶段,我们提供人类偏好来使模型符合我们的期望行为,结果通常被称为聊天模型。何时使用微调?你可以在这里看到我制作的一个简单的图表,它非常高层次。但基本上,有一个关于何时使用提示工程何时使用微调的对话。我认为一般来说,如果可以的话,最好从提示工程开始。目的是有一个健壮的评估结构,其中有许多不同的指标是你感兴趣的。它可以是模型的准确性,它是否能很好地回答我的问题。如果你有一个非常小众的用例,你可以创建一个自定义基准,或者你可以重用开源基准。在成本和延迟方面,因为问题是,它是否足够好?如果它仅通过提示工程就足够好了,那么你可能不需要微调。问题解决了,恭喜。否则,问题是,你能否创建一个指令数据集,即你能否创建问题和答案的对来微调模型?如果不是这种情况,可能有多种原因,但这可能是你需要重新构思项目的良好迹象。否则,微调是一个选项,你可以重用你创建的评估框架来评估模型。所以,这是技术答案,但你也有一个非技术答案。这是来自 a16z 的一份报告,问题是为什么企业关心开源。你可以看到,两个主要项目实际上是控制和可定制性。可定制性主要是关于微调模型。所以,即使在技术方面、成本和延迟方面存在争论,也有一个关于可定制性和模型控制的有力论点。在微调库方面,我认为你现在知道 Unsloth,但我将谈论其他库。TRL 来自 Hugging Face,一个建立在 Transformers 之上的优秀库,易于使用。你有 Accelerate,一个非常通用的库,你有很多 YAML 配置文件。然后你有 Llama Factory,它有一个非常好的内置图形用户界面。为了更详细地谈论监督微调,你在这里看到一个我们提供给模型的样本示例。我们有指令,它既是系统提示也是用户提示,以及答案,它是输出。在这种情况下,系统提示用于引导模型的行为。想象一下,你正在回答一个 5 岁的孩子,用户实际给出了任务:从以下句子中删除空格。我们通常只在输出上训练模型,我们屏蔽其余部分。它被用作上下文,我们想要做的是训练模型输出正确的答案。大多数 SFT 数据集,我想告诉你,它们使用合成数据,这完全没问题。通常它们是由前沿模型生成的,这是构建更高质量数据集的好方法。然后你有偏好对齐。我只是在这里提一下。有许多不同的方法:PPO、DPO、KTO、IPO。实际上,直接偏好优化可能是最受欢迎的。所以你在这里看到它有一个不同的格式,带有指令,你有一个选择的答案和一个拒绝的答案。这里的想法是,你将向模型展示一个积极的例子和一个消极的例子。使用 DPO,目标是确保你当前正在训练的模型比同一模型的未训练版本对选择的答案输出更高的概率。我不会深入细节,但这是总体思路,可以用来审查模型,例如如何制造炸弹。选择的答案将是“作为一个助手,我不能告诉你那个”,或者它也可以用来提高模型的整体性能。如何创建 SFT 数据集?这是一个非常基本的问题,在后训练世界中。主要问题是:什么是好的样本?人类评估在审查样本方面相当糟糕。但我喜欢定义三个主要特征。第一个是准确性。我们希望样本,输出在事实上是正确的。也许没有拼写错误也不错。我们不想通过提供虚假信息来损害模型的知识。然后你有多样性。多样性方面,你想涵盖尽可能多的主题。当然,这取决于你的用例。如果你进行摘要,你不会像进行通用微调那样广泛。但始终包含许多不同的主题、不同的写作风格是一个好主意。最后是复杂性。我认为这一点不太容易理解。它是关于给模型提供复杂的任务,强制推理。例如,输出将具有思维链推理,因为你想训练模型具有这种推理能力。或者它可以是像摘要这样的任务,像我五岁一样解释。这类任务确实迫使模型不仅仅像在维基百科上可以找到答案的问答一样回答问题。它还迫使它对提示进行推理,并给出更复杂的答案。所以作为一个小食谱,你可以在这里看到。我通常会建议从开源数据集开始,如果可以的话。组合一些。然后你可以应用不同的过滤器。第一个是数据去重。它可以是精确的,因为你想删除重复项。它可以是模糊的,想法相同。然后你有数据质量过滤器。这里有不同的技术。可以是基于规则的过滤,例如,你想删除所有包含“作为一个助手,我不能”的行,因为人们讨厌它。但你也可以使用更聪明的技术,比如奖励模型或 LLM 作为裁判来评估每个样本的质量并过滤掉坏样本。然后你可以使用数据探索,使用像 Lomic Atlas 这样的工具,文本聚类来获得主题聚类,可视化你的数据集,以获得改进它的想法。有了这些想法,你就可以回到数据生成,重新开始整个过程。在 SFT 技术方面,我们有三种主要技术:全微调。这是最基本的一种。你获取基础模型,然后在指令数据集上进行训练。它的性能最好,但通常也非常低效。更有效的方式是 LoRA。使用 LoRA,你将冻结所有预训练的权重,并在每个目标层添加适配器。这些矩阵 A 和 B 是这些适配器。你不是在训练基础模型的所有参数,你只重新训练其中的一部分。所以这快得多。但它仍然可能很昂贵,因为你仍然在 16 位精度加载整个模型。更有效的方式是将预训练模型量化到 4 位精度。这是 C,你应用了与 LoRA 相同的想法,但这次权重被严重量化了。所以你的 VRAM 使用量较低。问题是它也降低了性能。所以这里有一个权衡。我想简要提一下一些超参数,但 Daniel 已经谈了很多了,所以我将简要说明。我认为最重要的一个参数是学习率。学习率是模型依赖的,需要一些实验才能真正调整它并找到最佳的学习率。通常我建议尽可能高,直到你的损失爆炸,就像这张图一样。然后你可以减小学习率的大小。其他超级重要的超参数:训练轮数。我想说,根据你的数据集大小,你可以有更多的或更少的训练轮数。序列长度也很好,因为它是与批次大小的权衡。因为序列越长,上下文窗口越大,你使用的 VRAM 就越多。但你不需要使用与预训练模型一样大的序列长度。然后是批次大小。你想最大化它以最大化你的 GPU 利用率。然后是 LoRA 的秩。这个很容易调整,所以我不详细介绍了。让我们谈谈模型合并。模型合并的想法是,你可以获取不同微调模型的权重,并将它们组合在一起。你只是可以利用开源社区在 Hugging Face Hub 上产生的内容。它不需要任何 GPU,所以它非常高效,并且能提供出色的结果。所以 Open LLM 排行榜今天早上更新了。我们现在有一个版本 2,但这是版本 1。我还没有时间更新它。但你可以看到,对于 7B 参数模型,整个前八名或前十名都是合并模型。所以这确实表明这种方法在产生更高质量模型方面非常有效。你可以在许多不同的数据集上找到类似的结果。你看到每个节点实际上是一个模型,我们实际上将不同的合并合并在一起,直到它变成一个巨大的家族树。这个实际上相当小,它可以变得疯狂得多,但这不适合一张幻灯片,所以我选择了这个。关于合并技术本身,我想提一下几种。第一个叫做 SLERP,它代表球形线性插值。这个想法是真正地对不同模型的权重应用球形但线性插值。使用这种技术,你一次只能合并两个模型。但你可以真正地调整它,为不同的层使用不同的插值因子。这是一个我制作的 Big 147B 模型,它是利用开源社区创建的各种模型的一种非常有效的方式。然后有 DARE。在 DARE 中,你想减少模型参数的冗余。为此,你将使用剪枝,你将选择模型权重中最显著的参数,然后你将重新缩放这些源模型的权重。它的优点是你可以合并不同的模型,不仅仅是两个,甚至更多。我建议使用这种技术,不仅仅是两个模型,不是三个,而是七八个模型。它效果非常好。所以我强烈推荐它。然后有一个非常有趣的叫做 Pass Through 的技术。在 Pass Through 中,你可以连接来自不同 LLM 的层。它也可以是同一个,我们称之为自合并。所以这里有一个我最近制作的例子,它叫做 Meta Llama 3 120B Instruct,因为我取了 Llama 3 70B Instruct,然后我只是重复了 10 层六次。所以你可以说,这根本不应该起作用。来吧,你甚至没有训练模型。这太荒谬了。实际上,是的,这太荒谬了。人们在 Twitter、Reddit 和网上普遍喜欢它。所以这表明,我们仍然可以从这些合并技术和这些模型中发现很多东西。它们可能有时是违反直觉的。你可以看到,这个模型特别擅长创意写作。它通常也相当不拘一格,但非常擅长创意写作。现在它被很多人使用,即使它非常大。没有任何调整,没有任何微调,什么都没有。然后我想提一下最后一种技术,叫做专家混合。在传统的专家混合中,你将使用一个路由器和一个不同的前馈网络层来预训练一个模型。你从头开始预训练它。但你可以用合并做一些非常聪明的事情,通过提取不同微调模型的馈前馈网络层并将它们组合在一起,就像这样。所以我们称之为 Franken Model。你添加一个路由器,组合来自不同模型的 FFN 层。这就是你创建你的专家混合模型的方式。实际上,它在实践中效果相当好。你可以在左边看到 Beyond 模型的合并配置。对于这个模型,我选择了四个不同的功能模型:一个作为聊天模型,一个作为代码模型,一个作为角色扮演模型,一个作为数学模型。你可以看到我在这里使用正向提示。所以实际上,这是一种初始化路由器的方法。因为如果你回到上一张幻灯片,我们可以看到路由器应该为每个标记和每个层选择哪个前馈网络层将被使用。我们过去通常是这样做的。所以,我们如何初始化它?如果我们不进行微调,再说一遍,我们不想微调,我们不一定想。在这种情况下,我们只是使用这些正向提示,计算嵌入,并使用这些嵌入来初始化路由器。这效果非常好。所以这是我用于 F2 控制的两个模型,我不得不修改它以使其与 F2 兼容,并且在许多任务上都优于基础模型。所以它确实是一种很好的技术。但我想说,如果你将其与合并进行比较,就像我们用 SLERP 和 DARE 看到的。我想说,如果你想提高性能,使用 SLERP 和 DARE 比专家混合更好。因为这有点实验性,这不会给你带来相同的性能水平。你可以在这里看到 Beyond 模型的结果。你可以看到,我正在比较的其他模型是我在这个合并中使用的源模型。所以看到它在许多不同的基准测试上实际上比源模型表现更好,这是相当 remarkable 的。所以,这就是我的全部内容。谢谢你的关注。如果你有兴趣了解更多,如果你想要笔记本电脑来运行一些代码,我创建了大型语言模型课程。所有这些笔记本都在 GitHub 上提供。LLM Course。是的,谢谢。掌声。是的,你对 Neil lady 还有什么想知道的?我的意思是,我在这里。所以,Jason,你关于你如何制作 Neuro Devil 的博客文章,然后你做了那个 Appalation,对吧?是的,那也很有趣。基本上是基于 RAM 的。所以,那是你可以理论上使用的另一种技术。你有一个关于它的东西。是的。所以,只是想把它提出来,因为我使用了这个模型。谢谢你。这篇很棒的文章。谢谢你。是的,是的,确实。你可以将 Appalation 应用于所有技术之上。你没有时间在这里的幻灯片中真正提到它,但看到所有机械可解释性技术现在确实很酷。是的,是的,这真的很棒。谢谢你。嗯,谢谢大家参加 Open Models Track。我知道我今天学到了很多。我期待着 Expo 的其余部分和会议的其余部分。所以,感谢你的加入。