本篇是《带你自学大语言模型》系列的番外篇,写一些我最近研究OpenAI o1和推理Scaling Laws后的一些个人观点分享。
本节目录
-
写在前面
-
- o1 目前是一个原型,而非产品
-
- 关于所谓的“范式转移”
-
- “推理 Scaling Laws”当前的研究现状
-
- 相关资料
《带你自学大语言模型》系列部分目录及计划,完整版目录见:带你自学大语言模型系列 —— 前言
第一部分 走进大语言模型(科普向)
-
第一章 走进大语言模型
-
1.1 从图灵机到GPT,人工智能经历了什么?——《带你自学大语言模型》系列
-
1.2 如何让机器说人话?万字长文回顾自然语言处理(NLP)的前世今生 —— 《带你自学大语言模型》系列
第二部分 构建大语言模型(技术向)
-
第二章 基础知识
-
-
2.1 大语言模型的训练过程 —— 《带你自学大语言模型》系列
-
2.2 大模型算法基础:Transformer —— 《带你自学大语言模型》系列
-
2.3 大模型硬件基础:AI芯片(上篇) —— 《带你自学大语言模型》系列
-
2.4 大模型数据基础:预训练阶段数据详解 ——《带你自学大语言模型》系列
-
2.5 大模型数据基础:微调阶段数据详解
-
2.6 大模型数据基础:大模型评估数据详解
-
从LLaMa 3 技术报告,再看LLM构建过程 ——《带你自学大语言模型》系列(番外)
-
-
… …
第三部分 大语言模型应用
- 第六章 检索增强生成(RAG)
-
- 6.1 RAG 技术概览,从AI搜索谈起——《带你自学大语言模型》系列
… …
关于这次发布的o1(准确来讲是o1-preview)的热度,只能说AI已经有一段时间没有新故事了,同时OpenAI应该是又缺钱了,所以又讲了个故事来给AI续了一波命,最近也有新闻OpenAI最新融资65亿美元,当前估值已经达到1500亿美元。可见会讲故事有多重要,Anthropic 真应该学学…
各种新闻和解读已经满天飞,已有内容我也不想再去重复了,就写一些自己的观点和这几天的研究成果吧。
我倒觉得与其说什么“范式转移”,倒不如实在一点,就是数据不够了,更准确说是优质数据不够了,否则谁不想要一个能力更强的基座模型呢?不上清华难道是因为不喜欢吗?
GPT4是2023年3月发布的,在2022年8月就已经预训练完成,所以从GPT4到我们期待的GPT5,已经卡了近两年的时间,从这一年来OpenAI发布Sora、发布GPT 4o,其实都能看出,都是在模型的感知层面,而非认知层面做文章。
但如果模型能力无法再提升一个量级,之前画的很多饼都没法兑现。Agent之所以直到现在还是个饼,就是因为大模型的推理能力还不够,如果推理能力始终停在GPT-4的水平,很多场景都落不了地,所以4o的多模态方向只能说是个权宜之计,这场戏要想接着唱下去,推理能力还是要有实打实的提升。
上次我在CSDN的分享里,也提到了推理能力对于应用落地的重要性,大家感兴趣可以去看:AI时代的程序员:关于创业、应用开发与快速成长的经验分享 | CSDN杭州线下分享
好在大佬们又找到了新的解法。具体是什么呢?打个比方,如果把模型比成一个个人,GPT4就是目前基因最优的,但如果想让他基因再优秀一点,就得投入更大的成本,投入产出比太低了。于是有了4o和o1,无论是提升他“看世界”的感知层面能力,还是提升他的逻辑推理能力,都属于对他的再教育阶段。
其实这对国内大模型厂商某种程度是利好,拿着LLama 3.1 405B去搞推理阶段的强化学习,至少是差距没那么大了。
之所以把这句列成一个小标题,主要还是想提醒大家,短期不要预期过高,但也不代表你要忽略它长期的价值。
Open AI的应用研究负责人自己都说,o1更接近于CPT-3的发布,而不是ChatGPT,Sam Altman 对此更为保守,他说目前还只是 GPT-2的阶段。也就是说,o1并不是一个已经找到PMF的产品,而是一个原型,一个试验品。
虽然当前极大概率达不到预期,但至少未来可期。从应用侧,只要模型能力在持续渐进式解锁,在解锁过程中就能不断打开新的场景,已经有Cursor 和 Claude-3.5-Sonnet做了验证:
Cursor之所以在这个时间点能火起来,很大程度上是因为 Claude-3.5-Sonnet 的代码能力变强了,而 Claude 3.5 Sonnet 代码能力显著提升的背后其实也是强化学习在起作用。
这至少了证明了两件事,一是模型推理能力的提升,对于新场景的解锁起着至关重要的作用,二是 Claude-3.5-Sonnet 的代码推理能力真的不错,Anthropic用的应该也是类似的方式,强化学习这个路子目前看起来可行。而且Anthropic 真的是一个闷声搞事情的公司,不容忽视。
的确是技术路线上发生了一些转移,但真的不要动不动就“范式”什么的了,听的我是一愣一愣的,都是在摸着石头过河,只不过OpenAI摸过的石头,大家就觉得这块石头开过光,但现在,谁又能说自己就是银弹呢?
如前文说,到GPT4的时候,其实已经出现了停滞,再在预训练阶段堆算力和数据(也就是原来的Scaling Law),成本很高,而且已经显现出边际递减的效应。
所以这时来到岔路口,一条通向多模态,也就是Sora,GPT4o,另一条就是o1的推理模型,如果让我用一句话总结GPT4o和 o1 的区别,4o 在做感知层面的加强,o1 在做认知层面的加强。 我相信OpenAI的目标肯定是奔着推理能力去的,从他们给出的AI 的五个发展阶段,也能看出他们的主线是没变的。
在OpenAI的官方文章里,一直强调这是一个推理模型,而不是一个大语言模型。甚至为了和之前的GPT系列做切割,这个系列连名字都改了,也看出OpenAI划清界限的决心。之所以这么着重强调这点,是因为两者的路线和训练方式是不同的。再进一步延伸GPT系列和o系列在底层的差别:
GPT系列的技术路线:「预训练 + 微调 + RLHF」
先在预训练阶段用海量数据教大模型学会预测下一个词,然后在精调阶段让大模型学习特定领域的知识,让人类写回答教大模型什么是人想要的答案,机器根据反馈来改进。
o1系列的关键词:「强化学习 + 思维链 + Self-play」
OpenAl如此描述这个过程:“通过强化学习,o1学会如何打磨自己的思维链,并完善它所使用的策略。它学会了识别和纠正自己的错误;将复杂步骤分解为更简单的步骤;在当前方法不起作用时尝试不同的方法。这极大地提高了模型的推理能力。"
强化学习的作用是什么?其实是让模型“学会慢思考”,说白了就是用推理时间换训练时间。简单来说,既然模型不知道如何做推理,那就在推理阶段让人来告诉它怎么推。这就是思维链,思维链之前是通过在模型外部通过prompt来唤起的,o1做的就是将CoT内化到模型内部,让模型自己生产推理步骤并内部评估,以实现内在自动化。
OpenAI并不是第一个在研究用强化学习提升推理能力的公司,Google、Anthropic 也在这个方向上发力,Claude 3.5 Sonnet在GPQA测试中的得分为67.2%,超过了领域内专业博士的水平,只是相关的技术细节没有透漏,Google在8月份就发布了一篇论文《 Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters》技术路线上和OpenAI此次公布的如出一辙。
目前这个技术学界和各大厂究竟研究到哪一步呢,下面这些论文可以给出一些启发。
在o1之前,已经有一些针对“推理时优化”相关的研究和论文了,这些论文后面如果有机会,我会再单独写,所以这里先简单概括:
【1】《Let’s Verify Step by Step》 (https://arxiv.org/abs/2305.20050),这篇论文是OpenAI发表的,发表于2023年5月,Ilya也是作者之一,所以无论是Q*,还是o1,底层的逻辑大概率逃不出这篇论文。论文中提出了通过过程监督(Process Supervision, PRM) 来训练更可靠的奖励模型,以解决多步推理任务中的逻辑错误问题。所谓的过程监督就是:在每个推理步骤后提供反馈,指示该步骤是否正确。这种方法提供了更精确的反馈,因为它指定了错误发生的具体位置。文中比较了过程监督和结果监督两种方式在数学推理场景中的效果,证明了过程监督能够减少逻辑错误和提高数据效率。
下图是文中给出的过程监督的例子:
剩下的几篇都是近期的论文,我按照时间顺序来列,这个领域现在看起来还的确比较新,而且比较空白。这几篇文章都通过不同的方式,证明了在推理阶段做一些优化,能够提升模型性能:
【2】《Are More LLM Calls All You Need? Towards Scaling Laws of Compound Inference Systems》 ( https://arxiv.org/abs/2403.02419),这篇论文主要研究复合系统(Compound AI Systems)的可扩展性,所谓的复合系统就是通过调用多个语言模型(LM)并聚合它们的响应来实现的。设计了两种复合系统:Vote和Filter-Vote,Vote通过多数投票聚合多个候选答案,而Filter-Vote在多数投票前使用过滤器。
下面这张图表明:随着LM调用的数量增加,Vote和Filter-Vote在简单查询上的表现越来越好,但在困难查询上表现越来越差。
【4】《Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters》 (https://arxiv.org/abs/2408.03314),发表于2024年8月,提出了通过优化推理时间计算来提高LLMs性能的方法。论文提出了两种主要的测试时计算扩展机制:(1)搜索对抗密集的过程验证器奖励模型(searching against dense, process-based verifier reward model)(2)根据提示在测试时自适应更新模型的响应分布(updating the model’s distribution over a response adaptively, given the prompt at test time)
基于这两种机制,进而提出了一种“计算最优”的scaling策略,根据问题的难度自适应地分配测试时计算。具体来说,作者定义了“计算最优扩展策略”,通过最大化给定提示下目标分布的准确性来选择超参数。这种策略相比best-of-N,可以再将测试时间的计算效率提高4倍。
下图是本文提出的REWARD BALANCED SEARCH(REBASE)算法:
下面是我整理一些关于o1的资料,方便大家想要深入学习的话,按图索骥。
1、o1-preview的介绍文档:《Introducing OpenAI o1-preview》(https://openai.com/index/introducing-openai-o1-preview/)【简介】在最开始就说了,这是一系列新的推理模型,目标是解决复杂问题,主要涉及的是科学、代码、数学问题。关于工作原理其实这里没有说太多细节,就一句比较重要:这次主要训练了这些模型在回答问题之前花更多时间思考问题。通过训练,它们学会了优化自己的思考过程,尝试不同的策略,并识别自己的错误。但没说怎么做的…
2、o1-mini的介绍文档:《OpenAI o1-mini》(https://openai.com/index/openai-o1-mini-advancing-cost-efficient-reasoning/)
【简介】除了o1-preview,本次还推出了o1-mini版本,o1-mini是比o1-preview更快,推理成本更低的模型,整体来看,o1-mini 的成本比 o1-preview 低 80%。o1-mini 是一个较小的模型,在预训练期间针对 STEM 推理进行了优化。
3、《Learning to Reason with LLMs》(https://openai.com/index/learning-to-reason-with-llms/),这是一篇介绍o1的技术博客
【简介】这里说了,主要通过强化学习的训练,去实现复杂的推理任务。模型会真正的自己思考,从而产生内在的思维链。 然后给了一些评估结果,这里很多文章都在大肆宣传了,就不细说了。总结就是很好,很牛逼…
【4】《OpenAI o1 System Card》(https://assets.ctfassets.net/kftzwdyauwt9/67qJD51Aur3eIc96iOfeOP/71551c3d223cd97e591aa89567306912/o1_system_card.pdf),这篇大部分是在讲模型的安全性评估,外部红队评估,如果是想探究内部原理的话,这篇或许帮助不大。
【5】《OpenAI’s Strawberry, LM self-talk, inference scaling laws, and spending more on inference》(https://www.interconnects.ai/p/openai-strawberry-and-inference-scaling-laws)
【简介】这篇文章发布的时候,o1还没有发布,所以文中还在延用之前盛传的Strawberry模型,此时 Nathan Lambert 就已经提到相比于复杂的模型微调(fine-tuning),增加推理计算投入可以更直接、更明显地提升模型的能力。一个最简单的方式就是“best of N sampling”,通过生成多个可能的输出(而不仅仅是一个),然后使用另一个模型来选择最佳的输出,RLHF用的也是这种方式,但这种方式其实也可以直接用于下游推理阶段。
这里还提出了“Inference scaling laws”,就是说在模型推理阶段投入更多计算资源可以显著提高模型性能。他也提到了“Inference scaling laws”或许会成为新的范式,于是我就好奇这个概念是他先提出的还是Google先提出的,然后我在Google那篇《Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters》论文的参考文献里,找到了他的论文《Beyond Chinchilla-Optimal: Accounting for Inference in Language Model Scaling Laws》(https://arxiv.org/abs/2401.00448v2),原来他在2023年的时候就已经在研究这个方向了。
【6】《Reverse engineering OpenAI’s o1》(https://www.interconnects.ai/p/reverse-engineering-openai-o1)