USER:LLM是什么?

ASSISTANT:LLM本质就是两个文件。

USER:?

ASSISTANT:菜就多学!

一、前言

在很多讲大模型的文章中,经常听到模型推理、模型训练等专业术语,我们就从这两个专业术语来说明大模型到底是什么、它又是如何工作的。

我们日常与ChatGPT聊天,就是模型推理(LLM Inference)的过程。模型推理消耗的GPU以及服务器资源由用户量决定,相比于模型训练阶段要小很多。模型推理其实就是在服务器上运行Transformer架构以及模型训练得到的参数,参数量级决定模型大小,例如DeepSeek-R1满血版本的671B,就是指模型参数是671 Billion。

这些模型参数的获取是关键,整体分为两个阶段:预训练 与 微调。预训练阶段就是将互联网上的庞大文本库送入超级GPU集群炼丹,最终得到一版Base-model。但此阶段的Base-model并不具备对话能力,它只是将互联网语料库压缩进了自己的大脑里。微调阶段就是提供一问一答的文本格式,将基础模型微调成问答助手,而且这些数据全都是高质量的人工专家给出的答案。

由此,一个ChatGPT级别的伟大模型就诞生了!

二、LLM Inference(模型推理)

以 Llama2 70B 模型为例,这是一个由 Meta AI 发布的大语言模型。这是 Llama 系列语言模型的第二代,也是该系列中参数最多的模型,达到了 700 亿。Llama2 系列包括了多个不同规模的模型,70 亿,130 亿,340 亿,700 亿是最大的一个。

Llama2 70B 模型实际上就是你电脑上的两个文件:一个是存储参数的文件,另一个是运行这些参数的代码。这些参数是神经网络(即语言模型)的权重或参数。因为这是一个拥有 700 亿参数的模型,每个参数占用两个字节,因此参数文件的大小为 140 GB,之所以是两个字节,是因为这是 float16 类型的数据。

 

除了这些参数,还有一大堆神经网络的参数。你还需要一些能运行神经网络的代码,这些代码被包含在我们所说的运行文件中。这个运行文件可以是 C 语言或 Python,或任何其他编程语言编写的。它可以用任何语言编写,但 C 语言是一种非常简单的语言,只是举个例子。只需大约 500 行 C 语言代码,无需任何其他依赖,就能构建起神经网络架构,并且主要依靠一些参数来运行模型。所以只需要这两个文件。

你只需带上这两个文件和你的MacBook就拥有了一个完整的工具包。你不需要连接互联网或其他任何设备。你可以拿着这两个文件,编译你的 C 语言代码。你将得到一个可针对参数运行并与语言模型交互的二进制文件。比如你让它写一首诗,模型就会开始生成文本。

 

那么,这些参数从何而来,我们如何获得它们?因为无论 run.c 文件中的内容是什么,神经网络的架构和前向传播的算法都是公开的。

三、LLM Training(模型训练)

真正的关键在于参数的获取。所以,为了获得模型参数,所谓的模型training 过程比之前展示的模型inference 要复杂得多。模型inference 只是在MacBook上运行模型。而模型训练则是一个计算上极为复杂的过程。简单来说,模型训练所做的可以被理解为对大量互联网内容的压缩。

因为Llama2 70B是开源的模型,训练方式也是公开的。你需要从网上获取大约10TB的文本,通常这些文本来自于对互联网的爬取。想象一下,从各种不同的网站上收集大量的文本,并将它们汇总起来。接下来,你需要配置一个GPU集群,这些GPU是为了处理像神经网络训练这样复杂的计算任务而专门设计的高性能计算机。

你需要大约 6,000个GPU,并且需要运行大约 12 天才能得到一个Llama2 70B,整个过程大约需要花费200万美元。这个过程基本上是将这大量的文本压缩成你可以想象的一种zip文件,可以被理解为互联网文本的zip文件。

 

但这种压缩与普通zip文件不同,因为zip文件是无损压缩,而这里是有损压缩。我们只是大致获取了我们训练文本的概览,而不是在这些参数中保留了文本的完整副本。所以,可以把它理解为一种有损压缩方式。另外需要指出的是,按照目前最先进技术的标准,这些数据其实只是入门级别的。如果考虑到像 ChatGPT、Claude这样的顶尖神经网络,这些数字可能需要增加十倍甚至更多。

这意味着在实际操作中,我们需要将这些数字大幅上调。这也解释了为什么如今这些神经网络的训练成本高达数千万甚至数亿美元,它们需要庞大的计算集群和大量数据集,而且在获取参数的过程中需要付出巨大努力。一旦获得了这些参数,实际运行神经网络的计算成本就相对较低了。

那么,这个神经网络到底在做什么呢?正如我之前提到的那些参数,神经网络的主要任务其实是预测文本序列中的下一个词。你可以这样理解:当你输入一连串词语,比如 "cat sat on a",这些词就会被送入神经网络。神经网络中分布着的这些参数,就是完成这一任务的关键。通过神经元的相互连接和激发,来预测下一个单词。

你可以这么理解这个过程:输入一段文本后,神经网络会预测下一个词是什么。举个例子,在 "cat sat on a" 这四个词的上下文中,神经网络可能会预测下一个词是“mat”,并且给出了 97% 的高概率。这就是神经网络要解决的核心问题。从数学上可以证明,预测与数据压缩之间存在密切联系。这也是为什么我会说,这种神经网络训练在某种意义上是一种数据压缩:因为如果你能够非常准确地预测下一个词,你就可以利用这个能力来压缩数据集。

 

所以,这其实是一个专注于预测下一个词的神经网络。你输入一些词,它就会告诉你接下来的词是什么。这种训练的结果之所以显得有些神奇,是因为尽管下一个词预测看似是一个简单的任务,但实际上它是一个非常强大的目标。因为这个目标迫使神经网络在其参数中学习到大量关于世界的信息。

四、LLM Dreams

那么,我们实际如何使用这些神经网络呢?当我们训练好它们后,模型推理是个非常简单的过程。基本上是生成下一个词,我们从模型中采样,选择一个词,然后我们继续将其反馈进去并得到下一个词,然后继续这样反馈。我们可以重复这个过程,让这个网络仿佛在“梦游”互联网文档。这是一个很好的比喻,如果我们只是运行神经网络,或者说进行推理,我们会得到类似于在网络上浏览文字的梦境体验。

可以这么理解:因为这个神经网络是基于网页内容进行训练的,然后它可以自由遨游于其中。例如,在左边,我们可以看到类似于 Java 代码的“梦境”。中间的部分,看起来像是对亚马逊产品描述的“梦境”。而右边,则似乎呈现出一篇维基百科文章的样子。以中间的这个例子为例,标题、作者、ISBN 编号等等,这些内容都是神经网络完全自行创造的。这个网络正在“梦想”出它所训练数据集中的文本类型,它在模仿这些文档,但其实,这些都像是它的幻觉一样。

 

比如说 ISBN 号码,这个号码几乎可以肯定是不存在的。网络只是知道在“ISBN:”后面通常会跟着这样长度的数字,然后就随机生成一个(这就是一种模型幻觉)。实际上,它只是随意插入看起来合理的内容。因此,它在模仿训练数据集的分布模式。在右边,黑鼻鲑鱼,它实际上是一种鱼。这里的情况是,这段文字在训练集文档中并未原样出现,但如果你真的去查证,会发现对这种鱼的这些描述信息大致上是正确的。因此,这个网络对这种鱼有一定的了解,它知道很多关于这种鱼的信息。它不会完全复制训练集中看到的文档,但它会对互联网的信息进行某种程度的压缩和整合,它能够记住整体的轮廓。它大致掌握了相关知识,然后开始创造。它构建了一种合适的形式,并用自己的知识填充其中。

但我们永远不能百分之百确定它生成的内容是幻觉、错误的回答,还是正确的回答。所以,它的一部分内容可能是记忆中的,而另一部分则不是,我们无法精确区分。但大多数情况下,这就像是它在梦游或在做关于互联网文本的梦,源于它的数据分布。这种能力使得神经网络能够生成各种文本,从代码到商品描述再到百科全书条目,但它也意味着生成的内容需要谨慎验证和审查,以确保准确性和可信度。这就是模型训练和模型推断的关键过程,它们共同构建了人工智能模型的能力和潜力。

五、How do they work?

让我们换个话题,来看看这个神经网络是怎么运作的?它是如何完成下一个词预测任务的?它内部的运作机制是什么?下图就是我们称之为 Transformer 的神经网络架构,这是它的一个示意图。现在,这个神经网络的一个显著特点是,我们对其架构有着完整的理解。我们清楚地知道在它的各个阶段会发生哪些数学运算。

 

但问题在于,这 1000 亿个参数分散在整个神经网络中,我们所了解的只是如何逐步调整这些参数,以使整个网络在下一个词预测的任务上表现得更好。我们知道如何优化这些参数,也知道如何随时间调整它们以获得更佳的下一词预测效果,但我们并不真正清楚这些参数具体是如何工作的。我们可以观察到它在下一个词预测方面的进步,但并不清楚这些参数是如何协同工作以实现这一点的。我们手头有些模型,可以让我们从宏观层面思考网络可能在做的事情。

我们大致理解为LLM构建并维护了某种知识库,但这个数据库却非常奇特、不完美且怪异。最近有一个广为流传的例子,我们称之为“反转诅咒”。比如,如果你和目前最先进的语言模型 GPT-4(ChatGPT 的一部分)对话,你问,谁是汤姆·克鲁斯的母亲?它会告诉你是玛丽·李·菲弗,这是正确的。但如果你问,谁是玛丽·菲弗的儿子,它会告诉你它不知道。这种知识很古怪,它似乎是单向的。这些信息并不是简单存储后就能从各种角度获取,你必须从某个特定的角度去提问(这也是为什么PE如此重要)。

这真是既奇怪又令人困惑。归根结底,我们实际上并不真正了解其工作原理,只能大致判断它是否有效,以及有效的可能性有多大。简而言之,可以将大语言模型 (LLM) 视为难以完全解读的产物。它们与你可能在工程学科中建造的任何其他东西都不相似。它们不像汽车,我们了解汽车的每一个部件。

它们是来自长期优化过程的神经网络。我们目前并不完全理解它们是如何工作的,尽管有一个叫做可解释性或机械可解释性的领域,正在尝试研究并理解这些神经网络的每一个部分。目前,我们可以在一定程度上做到这一点,但还未能全面实现。现在,我们主要将它们视为基于经验的产品。我们可以给它们输入一些数据,然后测量输出结果。我们基本上可以测量它们的行为表现。我们可以观察它们在许多不同情况下生成的文本。因此,我认为这需要相应的复杂评估来处理这些模型,因为它们主要是基于经验的。

六、Summary

构建像 ChatGPT 这样的大模型包括两个主要阶段:预训练和微调。预训练阶段需要从互联网上搜集大量文本资料,使用GPU集群进行处理。这些高性能计算机的成本非常昂贵,通常需要几百万美元的投入。完成后,就得到了基础模型。由于这个过程计算量巨大且成本高昂,公司通常一年或几个月才会做一次。
微调阶段相对便宜,需要编写标注指南和雇佣人员进行帮助。例如,可以通过Scale AI等公司进行文档标注。这个阶段需要收集约100,000个高质量的问答回应样本,成本要低得多,可能只需一天就能完成。接下来是进行大量的评估工作,部署模型,并监控和收集任何不当行为。对于每个不当行为,都需要修复并返回第一步重复这个过程。修复方法通常是找到错误回应的对话,然后用正确的回应替换。由于微调成本较低,可以每周或每天进行迭代,许多公司在微调阶段而非预训练阶段会更频繁地进行迭代。

 

Meta发布的Llama 2系列包括基础模型和助手模型。基础模型无法直接使用,因为它们无法直接对问题回复正确的答案,而助手模型则可以直接进行问答。Meta已经完成了极其昂贵的预训练阶段,提供了基础模型,允许用户基于这些结果进行自己的微调。此外,还有一个你可以选择进行的第三阶段微调,即人类反馈强化学习(RLHF),主要通过使用比较标签来提升额外性能。在OpenAI,这个过程被称为人类反馈强化学习(RLHF),这其实是一个可选的第三阶段,它能在大语言模型中提升额外性能。

 如何学习大模型?

学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!

这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!

请添加图片描述

100套AI大模型商业化落地方案

请添加图片描述

大模型全套视频教程

请添加图片描述

200本大模型PDF书籍

请添加图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

LLM面试题合集

请添加图片描述

大模型产品经理资源合集

请添加图片描述

大模型项目实战合集

请添加图片描述

😝有需要的小伙伴,可以扫描下方二v码免费领取【保证100%免费】🆓

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐