大模型的构建过程通常包括以下步骤:
大模型存在一些问题:
而 RAG 是解决上述问题的有效方案,它能让大模型从权威、预先确定的知识来源中检索、组织相关信息,更好地控制生成的文本输出,用户也能深入了解 LLM 生成最终结果的过程。RAG 可与微调结合使用,两者不冲突。RAG 类似于为模型提供教科书,适用于回答特定询问或解决特定信息检索任务,但不适合教模型理解广泛领域或学习新语言、格式或样式。微调类似于让学生内化知识,适用于模型需要复制特定结构、样式或格式的情况。参考资料:《Retrieval-Augmented Generation for Large Language Models:A Survey》(https://arxiv.org/pdf/2312.10997.pdf)
旁白当你发现大模型的效果并没有你预期想的那么好时,你打算放弃但是你也听到了另一种声音:如果大模型没有你想的那么好,可能是你没有了解他的能力边界。你不想就这么放弃,为了更好的理解大模型,你首先了解了他的创建过程[heading2]1.收集海量数据[content]想象一下,我们要教一个孩子成为一个博学多才的人。我们会怎么做?我们会让他阅读大量的书籍,观看各种纪录片,与不同背景的人交谈等。对于AI模型来说,这个过程就是收集海量的文本数据。例子:研究人员会收集互联网上的文章、书籍、维基百科条目、社交媒体帖子等各种文本数据。[heading2]2.预处理数据[content]在孩子开始学习之前,我们可能会先整理这些资料,确保内容适合他的年龄和学习能力。同样,AI研究人员也需要清理和组织收集到的数据。例子:删除垃圾信息,纠正拼写错误,将文本分割成易于处理的片段。[heading2]3.设计模型架构[content]就像我们要为孩子设计一个学习计划一样,研究人员需要设计AI模型的"大脑"结构。这通常是一个复杂的神经网络。这里我们就不展开了,我们只需要了解,为了让AI能够很好的学习知识,科学家们设计了一种特定的架构。例子:研究人员可能会使用Transformer架构,这是一种特别擅长处理序列数据(如文本)的神经网络结构。[heading2]4.训练模型[content]就像孩子开始阅读和学习一样,AI模型开始"阅读"我们提供的所有数据。这个过程被称为"训练"。例子:模型会反复阅读数据,尝试预测句子中的下一个词。比如给出"太阳从东方__",模型学会预测"升起"。通过不断重复这个过程,模型逐渐学会理解和生成人类语言。
所以,这个神经网络实际上是一个下一个词预测网络。您给它一些单词,它就会给出下一个单词。从训练中得到的结果实际上是一种神奇的工具,因为尽管下一个单词预测任务看似简单,但它实际上是一个非常强大的目标。它迫使神经网络学习到大量关于世界的信息,并将这些信息编码在参数中。在准备这场演讲时,我随机抓取了一个网页,仅仅是从维基百科的主页上抓取的内容。本文讨论的是露丝·汉德勒。设想一个神经网络,它接收一系列单词并尝试预测下一个单词。在这个例子中,我用红色标出了一些信息量较大的单词。比如,如果你的目标是预测下一个单词,那么你的模型参数可能需要学习大量相关知识。你需要了解露丝和汉德勒,包括她的出生和去世时间,她是谁,她做了什么等等。因此,在预测下一个单词的任务中,你将学习到大量关于世界的知识,所有这些知识都被压缩并储存在模型的权重和参数中。模型做梦(生成)现在,我们如何实际应用这些神经网络呢?一旦我们训练好它们,我就向你展示了模型推理是一个非常简单的过程。我们基本上是在生成接下来的单词,通过从模型中采样,选择一个单词,然后将其反馈回模型以获取下一个单词,这个过程可以迭代进行。这样,网络就可以“梦想”出互联网文档。例如,如果我们仅运行神经网络,或者说执行推理,我们会得到类似于网页梦想的东西。你可以这么想,因为网络是在网页上训练的,然后你让它自由运行。在左边,我们看到的是类似于Java代码的梦;中间是类似于亚马逊产品的梦;右边是类似于维基百科文章的内容。
大语言模型技术的本质导致了大模型的输出结果具有不可预测性,此外,静态的训练数据导致了大模型所掌握的知识存在截止日期,无法即时掌握最新信息。因此,当我们将大模型应用于实际业务场景时会发现,通用的基础大模型无法满足我们的实际业务需求。主要存在以下原因:知识的局限性:模型自身的知识完全源于它的训练数据,而现有的主流大模型(ChatGPT、文心一言、通义千问…)的训练集基本都是抓取网络公开的数据用于训练,对于一些实时性的、非公开的或离线的数据是无法获取到的,这部分知识也就无从具备。幻觉问题:大模型的底层原理是基于数学概率的文字预测,即文字接龙。因此大模型存在幻觉问题,会在没有答案的情况下提供虚假信息,提供过时或通用的信息,从可信度低非权威来源的资料中提供结果等。数据安全性:对于企业来说,数据安全至关重要,没有企业愿意承担数据泄露的风险,将自身的私域数据上传第三方平台进行训练。因此如何大模型落地应用时如何保障企业内部数据安全是一个重要问题。而RAG是解决上述问题的一套有效方案。它可以让大模型从权威的、预先确定的知识来源中检索、组织相关信息,更好地控制大模型生成的文本输出,并且用户可以深入了解LLM如何生成最终的结果。并且,RAG可以和微调结合使用,两者并不冲突。RAG类似于为模型提供教科书,允许它基于特定查询检索信息。这该方法适用于模型需要回答特定的询问或解决特定的信息检索任务。然而,RAG不适合教模型来理解广泛的领域或学习新的语言,格式或样式。微调类似于让学生通过广泛的学习内化知识。这种方法当模型需要复制特定的结构、样式或格式时非常有用。以下是RAG与微调从维度方面的比较:参考资料:《Retrieval-Augmented Generation for Large Language Models:A Survey》(https://arxiv.org/pdf/2312.10997.pdf)