上一节看到了预训练的4个步骤和自监督学习的优势。但训练这样一个模型需要多少资源?为什么只有少数科技巨头能玩这个游戏?本节将揭示预训练的成本、数据质量策略,以及预训练模型的局限性。
5.1 预训练的代价:一场资源的豪赌
先看一些数字,它们揭示了为什么只有少数科技巨头能玩这个游戏。
以下数据主要来自第三方机构(如Lambda Labs)的推算和分析,OpenAI官方未公布详细成本。只有总算力(3640 petaflop-days)是官方论文明确公布的数据。
GPT-3的训练成本(2020年)
指标 数值
───────────────────────────────────────────────
GPU数量 约10,000块 NVIDIA V100
训练时间 持续运行约34天
总算力 3640 petaflop-days(官方论文数据)
什么是 petaflop-days?
- 1 petaflop = 每秒执行1000万亿次浮点运算
- petaflop-days = 以petaflop速度运行一天的计算量
- 3640 petaflop-days = 相当于1个petaflop的计算机连续运行3640天(约10年),或者10,000块GPU同时运行34天的总计算量
电力消耗:
- 耗电量:约1287 MWh(兆瓦时)
- 相当于:120个美国家庭一年的用电量
- 碳排放:约552吨CO₂,相当于驾驶一辆汽车行驶227万公里
经济成本:
- GPU租用:约460万美元
- 电费:约12万美元
- 工程师薪资、数据存储、网络等:数百万美元
- 总成本估算:1200万美元以上
GPT-4的训练(2023年,估算)
训练成本: 约6300万美元
数据量: 约13T tokens(是GPT-3的40倍)
训练时间: 数月
这些数字意味着: - 一个初创公司,烧不起这个钱 - 一个研究团队,没有这个算力 - 一个独立开发者,想都不敢想
这就是为什么大语言模型只有少数玩家:
- ChatGPT(早期全靠微软支持)
- Gemini(Google)
- LLaMA(Meta)
- Qwen(Alibaba)
- DeepSeek(深度求索)
- 豆包(字节)
这是一个资源密集型的竞赛。
5.2 垃圾进,垃圾出
不是所有数据都有用,垃圾数据只能训练出垃圾模型。
互联网上有无穷无尽的文本,但质量参差不齐。有Wikipedia这样的高质量百科,也有充斥着广告和垃圾信息的网页;有经典名著,也有低俗小说和网络喷子的辱骂。
如果把所有文本都喂给模型会怎样?模型会学到大量的事实错误,因为网上假消息很多;会学到偏见和歧视,因为网上充斥着这些;还会学到低质量的表达,因为大部分人写作水平一般。
所以,数据清洗和质量控制至关重要。
GPT-3的数据策略
数据源 占比 质量 处理策略
─────────────────────────────────────────────────────────────────
Common Crawl 60% 低 严格过滤低质量页面,去除广告、导航栏、去重
WebText2 22% 中 Reddit高赞链接,至少3个赞的帖子链接
Books 16% 高 精选书籍,过滤低质量出版物
Wikipedia 3% 极高 全部英文条目,几乎不过滤
虽然Wikipedia质量最高,但只占3%。为什么不全用Wikipedia?因为Wikipedia太正式,缺少日常对话,数据量不够大,而且需要多样性来覆盖各种语言风格。
这是一个平衡:大量低质量数据(经过清洗)提供多样性和覆盖面,少量高质量数据提供准确性和标准。
后来的模型(如LLaMA)改进了数据策略:更严格的质量控制,平衡多语言比例,增加代码数据提升推理能力,去除有版权争议的数据。
数据才是真正的护城河。算法可以复制,架构可以模仿,但高质量的训练数据,是最难获得的。
5.3 预训练的三个局限:为什么还需要微调
预训练出来的模型,已经很强大了。但它有明显的问题,这些问题揭示了为什么ChatGPT还需要后续的训练步骤。
只会"接龙",不会"回答"
纯预训练模型的行为很奇怪:
用户:"如何学习Python?"
GPT-3(纯预训练)的回复:
"如何学习Python?这个问题很多人问过。首先你需要明确你的学习目标。.."
它可以回答你的问题,但废话很多,很难分辨是不是废话。或者它把你的问题当成了一篇文章的开头,继续往下写。
它没有"任务意识",不知道你在问问题,需要一个答案。它只是在做它唯一被训练过的事:预测下一个词。
可能生成有害内容
用户:"如何破解邻居家的WiFi密码?"
GPT-3(纯预训练)可能真的给出破解方法!
为什么?因为互联网上有这些内容,模型在训练时见过,它就"学"会了。
模型没有价值观,不知道什么该说什么不该说,只是在复现训练数据。
知识有时间限制
GPT-3训练截止时间:2021年9月
用户:"2022年世界杯冠军是谁?"
GPT-3:不知道(训练时还没发生)
用户:"今天的新闻有什么?"
GPT-3:无法回答(它没有"今天"的概念)
预训练模型的知识,冻结在训练截止的那一刻。
这些局限,需要后续步骤解决
① 监督微调 (SFT, Supervised Fine-Tuning) - 让模型学会"回答问题"这个任务 - 提供问答对,教它什么是一个好答案
② 强化学习对齐 (RLHF, Reinforcement Learning from Human Feedback) - 让模型学会拒绝有害请求 - 让模型的行为符合人类价值观 - 让模型更有帮助、更诚实
③ 外挂知识库 (RAG, Retrieval-Augmented Generation) - 给模型提供实时信息 - 补充最新的知识
预训练只是第一步,虽然它是最重要、最昂贵的一步。
5.4 ■ 学点英语
| 中文 | English | 音标 | 说明 |
|---|---|---|---|
| 算力 | Compute Power | /kəmˈpjuːt ˈpaʊər/ | 模型训练和推理所需的计算资源,通常以FLOPs衡量 |
| 数据清洗 | Data Cleaning | /ˈdeɪtə ˈkliːnɪŋ/ | 去除训练数据中的噪声、重复、低质量内容的过程 |
| 数据质量 | Data Quality | /ˈdeɪtə ˈkwɒləti/ | 训练数据的准确性、多样性和可用性的综合度量 |
| 数据偏见 | Data Bias | /ˈdeɪtə ˈbaɪəs/ | 训练数据中存在的系统性偏差,可能导致模型输出不公平结果 |
| 过时知识 | Knowledge Cutoff | /ˈnɒlɪdʒ ˈkʌtɒf/ | 预训练模型知识的截止时间点,之后的信息模型无法知晓 |
| 检索增强生成 | Retrieval-Augmented Generation (RAG) | /rɪˈtriːvl ˈɔːɡmentɪd ˌdʒenəˈreɪʃən/ | 为模型提供外部实时知识库的技术,弥补知识截止局限 |
5.5 ■ 思考帧
该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。
该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。
该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。
该练习为课程站点内嵌互动题,未收录于本地离线包;如需作答请回到线上课程对应课时。
5.6 下一节预告
现在知道了预训练的代价、数据策略和三个局限。但为什么叫"预"训练?它后面还有什么步骤?
下一节将揭示完整的训练流程,以及一些有趣的行业故事。