大语言模型(LLM)入门教程
本文基于 OpenAI 资深研究员 Andrey Karpathy 关于大语言模型的讲座内容进行整理,旨在为读者提供清晰的大模型技术概览。内容涵盖 LLM 的基本定义、训练过程、推理机制以及微调方法。
一、大语言模型(LLM)
1. 什么是大语言模型?
以大语言模型 Meta 的 Llama-2-70B 为例,该模型拥有 700 亿参数。Llama 系列包含多个规模版本(7B, 13B, 34B, 70B),因其开源特性而广受欢迎。Meta 公开了模型权重、架构及相关论文,允许研究人员自由使用。
相比之下,闭源模型如 ChatGPT 的所有权归 OpenAI 所有,其权重和架构未公开,用户仅能通过 API 或网络界面付费访问。
Llama 系列的每个版本主要由两个文件组成:
- 参数文件:包含神经网络的权重信息。以 70B 参数为例,若每个参数存储为 float16(2 字节),总大小约为 140GB。
- 运行代码:用于加载参数并执行推理的代码。使用 C 语言编写时,仅需约 500 行代码,无需额外依赖即可搭建神经网络并运行模型。
只要拥有这两个文件及一台计算设备,即可搭建完全独立的系统,甚至离线运行。将参数文件与编译后的二进制文件置于同一目录,运行后即可与模型交互,例如让模型生成文本或诗歌。
2. 模型训练:参数的由来
上述演示的是模型推理过程,即如何使用已有模型文件。真正的核心在于如何获取这 700 亿个参数。训练过程比推理复杂得多,计算量极大。
以 Llama-2-70B 为例:
- 数据:需从互联网抓取约 10TB 文本。
- 算力:约需 6000 块 GPU 集群。
- 时间:训练约 12 天。
- 成本:约 200 万美元。
这个过程可理解为将互联网原始文本压缩成一个 ZIP 文件(参数文件)。虽然压缩比高达 100 倍(10TB -> 140GB),但这属于有损压缩,并非完整知识副本,而是对世界知识的统计性概括。

当前最先进模型(如 ChatGPT、Claude 等)的训练规模可能是上述数字的 10 倍以上,成本可达数千万甚至数亿美元。一旦获得这些参数,运行成本则相对较低。
3. 模型的核心任务:预测下一个词
这些参数组成了一个巨大的神经网络,其基本任务是预估一段文本序列中的下一个单词。
给定输入'我的猫跳上了',网络中的数百亿参数根据既定方式计算,最终输出下一个词的概率分布。例如,'桌子'的概率可能是 97%。数学上已证明,预测能力与数据压缩能力密切相关。如果模型能准确预测下一个词,说明它成功压缩了数据集。

看似简单的预测任务迫使模型学习大量世界知识。例如,为了预测维基百科页面中特定词汇,模型必须学习相关人物生平、事件等。通过海量文本不断调整参数值,模型完成了知识压缩的目的。
4. 模型推理:Dreams
训练完成后,推理过程异常简单。模型根据人为提供的文本(Prompt)和已生成的单词,不断迭代生成下一个词,直至完成整篇文章。这一过程被称为'模型做梦'(Dreams),因为生成过程具有随机性和创造性,而非确定性。
由于模型是对世界知识的有损压缩,它记住了部分知识、文本形式和固有搭配。它综合利用这些信息创造新形式,有时会产生幻觉(Hallucination),有时又能完美完成任务。这种不确定性源于我们尚不完全清楚模型具体记住了哪些内容。
5. 模型工作原理
模型通常采用 Transformer 架构。虽然我们可以完全了解其架构和数学运算,但难点在于数百亿参数的分布及其协作方式。目前无法从微观角度确切解释每个参数的作用,更多是从宏观层面理解:模型内部构建了一套知识库,但该知识库有时表现奇怪。





