ChatGPT系列:规模的力量
先讲一个故事。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 WebText2Reddit链接 19GB Books1书籍 12GB Books2书籍 55GB Wikipedia维基百科 3GB 总计约 500B5000亿个词训练成本估计花费了460万美元。少样本学习最惊人的能力GPT-3 最令人震惊的能力叫做少样本学习Few-shot Learning。什么意思你给它几个例子它就能举一反三完成类似的任务。不需要重新训练不需要微调。只需要在对话里给几个示例。示例1零样本学习 直接问把我爱你翻译成英文。 GPT-3I love you. 示例2单样本学习 给一个例子 中文你好 → 英文Hello 然后问中文谢谢 → 英文 GPT-3Thank 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, headersheaders) 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, encodingutf-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-11.17亿参数一个开始。GPT-215亿参数第一次震惊世界。GPT-31750亿参数质变真正的震撼。GPT-4参数未知新的高度。每一次规模扩大每一次能力质变。这就是规模的力量。但规模不是终点。规模只是手段。真正的目标是让 AI真正理解人类真正帮助人类真正和人类和谐共处。那群在 OpenAI 工作的研究员们他们不只是在做大模型。他们在尝试回答一个人类几千年来一直在问的问题智慧是什么它能被创造吗答案还在路上。但 GPT 系列让我们比任何时候都更接近答案。