在查看大型语言模型(LLMs)时,您会首先看到一些标签,例如“7B”、“13B”甚至“70B”。这指的是模型的大小,具体来说是它包含的参数数量。了解这意味着什么,对于选择一个能在您的硬件上有效运行的模型来说,非常重要。什么是参数?可以将大型语言模型看作一个极其复杂的网络,有点像大脑中神经元之间的连接。在训练阶段,LLM 通过调整这些连接的强度来学习。每个可调整的连接强度或权重,就是一个参数。这些参数存储了模型从其训练用的海量文本数据中学到的“知识”。它们决定了模型如何响应您的提示,根据接收到的输入预测下一个词(或我们第一章中学到的词元)。参数越多的模型,本质上就越能存储复杂的模式、语言的细微差异和训练中学到的各种信息。想象一台极其复杂的机器,上面有数百万或数十亿个微小的可调旋钮(即参数)。训练过程就是将这些旋钮调整到正确的位置,以生成连贯且相关的文本。模型大小的衡量:数十亿参数模型大小通常通过这些参数的总数来衡量。您看到的数字,例如 7B、13B 或 70B,是简写形式:7B 代表约 70 亿个参数。13B 代表约 130 亿个参数。70B 代表约 700 亿个参数。更大的数字表示更多的参数,因此也代表一个“更大”的模型。虽然参数数量并非唯一因素,但它是衡量模型潜在复杂性和资源需求的主要指标。模型大小如何影响需求和性能参数数量直接影响在本地运行大型语言模型(LLM)的几个实际方面:硬件要求(内存和显存)这通常是本地使用时最直接的限制。模型中的每个参数都需要加载到计算机内存(RAM)或显卡内存(VRAM)中才能使用。更多参数 = 更多内存需求: 13B 模型需要比 7B 模型多得多的内存/显存,仅仅是因为有更多的值需要存储。正如第二章所讲,内存或显存不足意味着您要么完全无法加载模型,要么由于依赖较慢的存储(如硬盘或固态硬盘)而导致性能极其缓慢。计算: 一个粗略(且简化)的估计是,每十亿个参数可能需要大约 1-2 GB 的内存,具体取决于存储它们所用的数据类型。像量化(我们接下来会讲到)这样的技术可以减少内存需求,但这种基本关系不变:更大的模型需要更多的内存。{"layout": {"title": "模型大小与估计内存/显存需求", "xaxis": {"title": "模型大小(十亿参数)"}, "yaxis": {"title": "估计内存/显存 (GB)"}, "font": {"family": "Arial, sans-serif"}}, "data": [{"type": "bar", "x": ["3B", "7B", "13B", "30B", "70B"], "y": [4, 8, 15, 30, 60], "marker": {"color": ["#a5d8ff", "#74c0fc", "#4dabf7", "#339af0", "#228be6"]}}]}这大致展示了内存需求如何随模型参数数量的增加而增加。实际需求会因模型格式和量化而异。推理速度推理是使用训练好的模型根据您的提示生成文本的过程。计算输出涉及对所有数十亿参数的运算。更多参数 = 推理更慢(通常): 更大的模型在每个生成的词元上需要更多的计算。在相同的硬件条件下,一个 70B 模型生成文本的速度通常会比 7B 模型慢得多。强大的 GPU 可以显著加速这一过程,但相对差异通常仍然存在。模型能力虽然并非完全正相关,但更大的模型通常展现出更精密的语言理解和生成能力。更高质量的潜力: 参数更多的模型通常能捕捉语言中更复杂的关系,从而带来更好的连贯性、推理能力(在一定限度内)以及对详细指令的遵守。它们可能拥有更广泛的知识并生成更具创造性的文本。收益递减与专长: 然而,对于每项任务来说,越大并非总是绝对好。一些较小的模型经过专门微调以处理特定任务(如编码或对话),在这些特定方面可以胜过更大、更通用的模型。此外,例如 60B 和 70B 模型之间的质量差异可能不如 3B 和 7B 模型之间的差异那么明显。大小与能力之间的权衡选择模型大小需要在期望的能力与您可用的硬件资源和对生成速度的容忍度之间进行平衡。较小型模型(例如 3B, 7B): 更容易在普通硬件(笔记本电脑、老旧台式机)上运行,推理速度更快,内存需求更低。适合初次尝试、简单任务或资源受限的环境。可能不如大型模型那样连贯或知识丰富。中型模型(例如 13B, 30B): 提供一种平衡。明显比小型模型能力更强,但需要更多的内存/显存(通常需要 16GB 以上内存和一块不错的 GPU 以获得良好速度)。对于拥有中等配置游戏电脑或高性能笔记本电脑的用户来说,这是一个受欢迎的类别。大型模型(例如 70B+): 具有最高的潜在能力,但需要大量的硬件资源(通常需要 32GB 以上内存,以及大量显存的高端 GPU,如 16GB 或 24GB+)。没有强大硬件时,推理可能很慢。通常能提供最像人类且知识丰富的回答。对于您迈向本地大型语言模型的第一步,通常建议从较小的模型(如 7B 变体)开始。它能让您顺利运行、熟悉工作流程,并在不立即触及硬件限制的情况下评估系统性能。随着您越来越熟悉,如果硬件允许,您可以尝试更大的模型。接下来讨论的量化,提供了一种使即使是大型模型也更容易使用的途径。