先讲一个故事。
1945年,美国新墨西哥州的沙漠。
一群科学家,引爆了人类历史上第一颗原子弹。
爆炸的瞬间,天空变成了白色。
冲击波,把几十公里外的窗户,震碎了。
其中一个科学家,罗伯特·奥本海默,
看着那朵蘑菇云,
想起了印度史诗里的一句话:
“我成了死神,世界的毁灭者。”
为什么讲这个故事?
因为,原子弹的诞生,
不是因为发现了什么新的物理原理。
核裂变,早就被发现了。
原子弹的诞生,是因为,
人类第一次,把足够多的铀,
浓缩到了足够高的纯度,
聚集在了足够小的空间里。
规模,带来了质变。
GPT 系列的故事,
和原子弹,有一种奇妙的相似。
一个简单的想法
2018年,OpenAI 的研究员们,
有一个简单的想法:
在大量文本上,训练一个语言模型,
然后,在具体任务上,微调它。
这个想法,不复杂。
预训练,早就有人做过。
迁移学习,也不是新概念。
但 OpenAI 的研究员们,
做了一件别人没有做过的事:
他们,把模型做得非常大。
然后,他们发现,
大,带来了奇迹。
GPT-1:第一步,试探性的
2018年,一个开始
2018年6月,OpenAI 发布了 GPT-1。
论文题目:
《Improving Language Understanding by Generative Pre-Training》
通过生成式预训练,提升语言理解能力。
GPT-1,有1.17亿个参数。
在当时,这已经是一个相当大的模型了。
什么是参数
参数,是神经网络里的数字。
这些数字,在训练过程中,不断调整,
直到模型能准确地完成任务。
参数越多,模型能学到的东西,越复杂,越精细。
就像一幅画,
用100个像素点,只能画出模糊的轮廓。
用1亿个像素点,能画出精细的细节。
参数,就是神经网络的"像素点"。
GPT-1 的训练
GPT-1,在一个叫做 BooksCorpus 的数据集上训练。
这个数据集,包含了7000本未出版的书籍。
大约8亿个词。
训练任务,极其简单:
预测下一个词。
给模型看一段文字,让它预测下一个词是什么。
输入:"今天天气真" 预测:"好" 输入:"我喜欢吃" 预测:"苹果" 输入:"人工智能将会" 预测:"改变"就这样,一遍又一遍,
模型,从海量文本里,
学习语言的规律。
GPT-1 的成绩
GPT-1 发布后,
在12个自然语言处理任务上,
有9个,超过了之前的最好成绩。
这个结果,让研究者们,
看到了预训练 + 微调这条路,
是走得通的。
但 GPT-1,还没有引起广泛的关注。
它,只是一个开始。
GPT-2:第一次震惊世界
2019年,一个危险的模型
2019年2月,OpenAI 发布了 GPT-2。
参数量:15亿。
是 GPT-1 的13倍。
训练数据:从 Reddit 上爬取的800万个网页,
大约40GB的文本。
是 GPT-1 训练数据的10倍。
OpenAI 不敢发布
GPT-2 发布的时候,
OpenAI 做了一件前所未有的事:
他们不敢把完整的模型,公开发布。
他们只发布了一个小版本,
说完整版本,“太危险了”。
为什么危险?
因为 GPT-2 生成的文字,
质量高得让人害怕。
一个令人不安的演示
研究者们,给 GPT-2 一个开头:
“研究人员发现,独角兽生活在安第斯山脉。”
GPT-2 续写:
研究人员发现,独角兽生活在安第斯山脉一个偏远的山谷里,
这一发现令科学界震惊。
这种四角、银白色的独角兽,
此前从未被科学记录过。
研究人员将这个物种命名为 Ovid’s Unicorn。
“这是21世纪最重要的动物学发现,”
哈佛大学的约翰·史密斯教授说,
“这将彻底改变我们对哺乳动物进化的理解。”
这段文字,读起来,
像一篇真实的新闻报道。
有细节,有引用,有专家名字,有大学名称。
但,完全是编造的。
OpenAI 担心,这样的模型,
会被用来大规模生成虚假新闻。
所以,他们选择了谨慎。
GPT-2 展现的能力
尽管如此,GPT-2 展现出来的能力,
还是让研究者们,大开眼界。
文章续写:
给一个开头,它能续写出连贯、流畅的文章。
翻译:
没有专门训练翻译,但它能做翻译。
问答:
没有专门训练问答,但它能回答问题。
摘要:
没有专门训练摘要,但它能总结文章。
这些能力,没有人专门教它。
它,自己学会的。
这,是第一次出现涌现能力的迹象。
GPT-3:质变,真正的震撼
2020年,一个里程碑
2020年5月,OpenAI 发布了 GPT-3。
参数量:1750亿。
是 GPT-2 的116倍。
训练数据:
Common Crawl(网页数据): 570GB WebText2(Reddit链接): 19GB Books1(书籍): 12GB Books2(书籍): 55GB Wikipedia(维基百科): 3GB 总计:约 500B(5000亿)个词训练成本:
估计花费了460万美元。
少样本学习:最惊人的能力
GPT-3 最令人震惊的能力,
叫做少样本学习(Few-shot Learning)。
什么意思?
你给它几个例子,它就能举一反三,完成类似的任务。
不需要重新训练,不需要微调。
只需要在对话里,给几个示例。
示例1(零样本学习): 直接问:把"我爱你"翻译成英文。 GPT-3:I love you. 示例2(单样本学习): 给一个例子: 中文:你好 → 英文:Hello 然后问:中文:谢谢 → 英文:? GPT-3:Thank you. 示例3(少样本学习): 给几个例子: 正面评价:这家餐厅太棒了!→ 正面 负面评价:食物难吃,不推荐。→ 负面 正面评价:服务很好,会再来。→ 正面 然后问:等了一个小时才上菜,太慢了。→ ? GPT-3:负面这种能力,让研究者们,
第一次感受到了,
GPT-3,可能真的在某种程度上,
理解了语言,而不只是在匹配模式。
GPT-3 会写代码
GPT-3 的训练数据里,
包含了大量的代码。
GitHub 上的开源代码,
Stack Overflow 上的问答,
编程教程,技术博客。
结果,GPT-3 学会了写代码。
用户:写一个 Python 函数,计算斐波那契数列的第 n 项。 GPT-3: def fibonacci(n): if n <= 0: return 0 elif n == 1: return 1 else: return fibonacci(n-1) + fibonacci(n-2)没有人专门教它写代码。
它,从代码数据里,自己学会了。
这,让程序员们,
第一次认真地思考:
AI,会不会有一天,能帮我写代码?
GPT-3 的局限性
但 GPT-3,也有明显的问题。
它不听话。
你让它做一件事,它可能做另一件事。
你让它写一首诗,它可能给你写一篇文章。
你让它简短回答,它可能写了一大段。
它会胡说八道。
GPT-3 有一个著名的问题:
幻觉(Hallucination)。
它会自信地,说出完全错误的事情。
用户:爱因斯坦是哪年出生的? GPT-3:爱因斯坦出生于1879年。(正确) 用户:爱因斯坦获得了几次诺贝尔奖? GPT-3:爱因斯坦获得了两次诺贝尔奖, 分别是1921年的物理学奖和1932年的化学奖。 (错误!爱因斯坦只获得了一次诺贝尔奖)它说错了,但说得非常自信。
这,是一个严重的问题。
它强大,但不可控。
InstructGPT:让模型学会听话
2022年,关键的一步
GPT-3 很强大,但不听话。
OpenAI 的研究员们,
思考了一个问题:
怎么让模型,做人类想让它做的事?
2022年,他们发表了 InstructGPT。
引入了一个关键技术:
基于人类反馈的强化学习(RLHF)。
RLHF:用人类的判断,训练模型
RLHF 的过程,分三步。
第一步:收集示范数据。
让人类,写出各种问题的理想答案。
问题:如何学习 Python? 人类写的理想答案: 学习 Python 可以从以下几步开始: 1. 安装 Python 环境 2. 学习基础语法 3. 做小项目练习 4. 阅读优秀的开源代码 ...用这些数据,微调 GPT-3,
得到一个初步的"听话"模型。
第二步:训练奖励模型。
让模型,对同一个问题,生成多个答案。
让人类,对这些答案,进行排名。
问题:如何减肥? 答案A:健康减肥需要均衡饮食和适量运动...(详细、负责任) 答案B:少吃多动就行了。(简单、不够有用) 答案C:可以尝试极端节食...(有害建议) 人类排名:A > B > C用这些排名数据,训练一个奖励模型。
奖励模型,学会了判断答案的好坏。
第三步:强化学习。
用奖励模型,指导语言模型的训练。
语言模型生成答案 ↓ 奖励模型打分 ↓ 分数高 → 强化这种行为 分数低 → 抑制这种行为 ↓ 反复迭代 ↓ 模型越来越"听话"RLHF 的效果
InstructGPT,比 GPT-3,小得多。
参数量,只有 GPT-3 的1%。
但在人类评估中,
InstructGPT 的回答,比 GPT-3 更受欢迎。
更小的模型,更听话,更有用。
这说明,对齐人类意图,
比单纯增大模型规模,更重要。
RLHF,是通往 ChatGPT 的最后一块拼图。
ChatGPT:引爆点
2022年11月30日
2022年11月30日,
OpenAI 发布了 ChatGPT。
它,基于 GPT-3.5,
用 RLHF 技术,进行了对齐训练。
发布后,5天内,用户数突破100万。
2个月内,用户数突破1亿。
这是人类历史上,增长最快的消费级应用。
为什么 ChatGPT 引爆了
ChatGPT,不是第一个聊天机器人。
也不是第一个语言模型。
但它,是第一个,
让普通人,真正感受到,
AI 能理解我说的话,能帮我做事。
以前的聊天机器人: 用户:我想订一张机票。 机器人:请问您要去哪里? 用户:北京。 机器人:请问您的出发地是? 用户:上海。 机器人:请问您的出发日期是? ...(死板的流程,稍微偏离就不知道怎么处理) ChatGPT: 用户:我下周要去北京出差,帮我想想需要准备什么。 ChatGPT:好的,去北京出差需要准备以下几点: 1. 机票和酒店预订... 2. 北京这个季节的天气... 3. 出差需要的文件和资料... 4. 当地交通... (自然、灵活、有用)这种体验,是革命性的。
对程序员的冲击
ChatGPT 对程序员的冲击,是最直接的。
场景一:写代码 用户:帮我写一个 Python 爬虫, 爬取某网站的新闻标题和链接, 保存到 CSV 文件里。 ChatGPT: import requests from bs4 import BeautifulSoup import csv def scrape_news(url, output_file): headers = {'User-Agent': 'Mozilla/5.0...'} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') news_items = [] for article in soup.find_all('article'): title = article.find('h2').text.strip() link = article.find('a')['href'] news_items.append({'title': title, 'link': link}) with open(output_file, 'w', newline='', encoding='utf-8') as f: writer = csv.DictWriter(f, fieldnames=['title', 'link']) writer.writeheader() writer.writerows(news_items) scrape_news('https://example.com/news', 'news.csv')几秒钟,一个完整的爬虫程序。
场景二:Debug 用户:这段代码报错了: TypeError: unsupported operand type(s) for +: 'int' and 'str' 代码是: age = input("请输入年龄:") result = age + 10 ChatGPT:问题在于 input() 函数返回的是字符串, 不能直接和整数相加。 修改方法: age = int(input("请输入年龄:")) result = age + 10 或者更安全的写法,加上异常处理: try: age = int(input("请输入年龄:")) result = age + 10 except ValueError: print("请输入有效的数字")这种能力,彻底改变了程序员的工作方式。
GPT-4:更强,更谨慎
2023年,新的高度
2023年3月,OpenAI 发布了 GPT-4。
OpenAI,没有公布 GPT-4 的参数量。
但从各种迹象来看,
它,比 GPT-3,大得多。
GPT-4 的新能力
多模态:
GPT-4,能理解图片。
用户:(上传一张图片,图片里是一段代码) 这段代码有什么问题? GPT-4:我看到图片里的代码, 第5行有一个缩进错误, 第12行的变量名拼写有误...更强的推理:
GPT-4,在各种推理测试上,
表现大幅提升。
律师资格考试:GPT-3.5 排名后10% GPT-4 排名前10% 医学执照考试:GPT-3.5 勉强通过 GPT-4 高分通过 SAT数学:GPT-3.5 得了590分(满分800) GPT-4 得了700分更少的幻觉:
GPT-4,比 GPT-3.5,
更少说出错误的信息。
虽然幻觉问题,还没有完全解决,
但已经大幅改善。
规模的秘密:为什么大就是好
涌现能力:规模带来的奇迹
GPT 系列,揭示了一个深刻的规律:
当模型规模超过某个临界点,新的能力,会突然涌现出来。
这叫做涌现能力(Emergent Abilities)。
模型规模 vs 能力: 小模型(<10亿参数): ✓ 简单的文本补全 ✗ 逻辑推理 ✗ 代码生成 ✗ 数学计算 中等模型(10亿-100亿参数): ✓ 简单的文本补全 ✓ 基础的逻辑推理 ✓ 简单的代码生成 ✗ 复杂数学 大模型(>1000亿参数): ✓ 复杂文本生成 ✓ 复杂逻辑推理 ✓ 复杂代码生成 ✓ 数学推理 ✓ 少样本学习 ✓ 思维链推理这些能力,不是线性增长的。
它们,在某个临界点,突然出现。
就像水,从99度加热到100度,
突然沸腾,变成蒸汽。
规模定律:可预测的进步
2020年,OpenAI 的研究员们,
发现了一个规律:
**模型的性能,和模型规模、数据量、计算量,
之间,有一个可预测的关系。**
这叫做规模定律(Scaling Laws)。
简化的规模定律: 性能 ∝ 模型参数量^0.076 × 数据量^0.095 × 计算量^0.050 意思是: 模型越大,数据越多,计算越多,性能越好。 而且,这种关系,是可以预测的。这个发现,给了 OpenAI 极大的信心:
只要把模型做大,性能就会提升。
这,是 GPT 系列,不断扩大规模的理论基础。
规模的代价
规模,带来了能力。
但规模,也带来了代价。
训练成本
GPT-2 训练成本:约 4万美元 GPT-3 训练成本:约 460万美元 GPT-4 训练成本:估计超过 1亿美元这种成本,只有少数公司,能够承担。
能源消耗
训练 GPT-3,
消耗的电力,
相当于126个丹麦家庭,一年的用电量。
这,是一个严重的环境问题。
公平性问题
只有少数大公司,
能够训练这样规模的模型。
这,可能导致 AI 能力,
集中在少数人手里。
最后说一句
GPT-1,1.17亿参数,一个开始。
GPT-2,15亿参数,第一次震惊世界。
GPT-3,1750亿参数,质变,真正的震撼。
GPT-4,参数未知,新的高度。
每一次,规模扩大,
每一次,能力质变。
这,就是规模的力量。
但规模,不是终点。
规模,只是手段。
真正的目标,是让 AI,
真正理解人类,
真正帮助人类,
真正和人类,和谐共处。
那群在 OpenAI 工作的研究员们,
他们,不只是在做大模型。
他们,在尝试回答一个,
人类几千年来,一直在问的问题:
智慧,是什么?
它,能被创造吗?
答案,还在路上。
但 GPT 系列,
让我们,
比任何时候,
都更接近答案。