最近OpenAI做了一件让很多人没想到的事——真正意义上的开源。不是那种「你看看就好别商用」的开源,而是Apache 2.0许可证,随便用、随便改、随便拿去赚钱的那种。两款模型,GPT-OSS 120B和20B,我花了不少时间把它们里里外外测了一遍,今天想跟你好好聊聊这个结果。
对,这个Apache 2.0确实是重点。你想想之前Meta的Llama系列,虽然号称开源,但其实对月活超过7亿的企业是有额外限制的。OpenAI这次直接选了最宽松的许可证,企业拿去做闭源商业产品都没问题,只要保留版权声明就行。这个战略意义其实蛮大的。
嗯,先说说这两款模型的基本面吧。120B总参数117B,但激活参数只有5.1B;20B总参数21B,激活参数3.6B。这个差距一看就知道是MoE架构对吧?
没错,混合专家架构。你可以这么理解——模型里面有很多个「专家」,但每次处理一个词的时候,不是所有专家都上,而是有个门控网络来决定让哪几个专家干活。所以虽然总参数量很大,知识容量很丰富,但实际跑起来的计算量其实很小。这就是为什么120B这么大的模型,单张H100就能跑得动。
而且两款都支持128K的上下文长度,这个也挺关键的。早期Transformer模型才2K到4K,现在128K相当于一次性能处理四五百页英文小说的量。
对,这背后是RoPE位置编码、FlashAttention这些技术的功劳。128K意味着你可以把一整篇论文、一个完整的代码库直接扔进去,不用切片,这对实际应用场景的拓展是质的飞跃。
好,那我们进入正题。第一个测的是幻觉问题,这个可以说是大模型的老大难了。我设计了六道陷阱题,什么沙漠企鹅、虚构的Python装饰器、故意写错的爱因斯坦获奖时间、虚构论文、虚构历史事件,全套招呼上去。
结果呢?
两款模型,六道题,全部正确识别。一个都没上当。
这个确实让我有点意外。你知道幻觉的根源是什么吗?大模型本质上是统计概率的文本生成系统,它学的是语言模式而不是真正的事实。所以当你问它一个不存在的东西时,它很容易顺着你的话「编」下去。能在六道陷阱题上全部通过,说明这两款模型在事实性判断上的训练做得相当扎实,在开源模型里算是很难得的。
然后是逻辑推理。这里就开始出现分化了。有一道经典的空瓶换饮料题——12块钱买饮料,大瓶3块小瓶1块,喝完空瓶还能按规则兑换。120B想了一分多钟,给出了正确答案2700毫升,推导过程很完整。但20B呢,试了两次,思考过程都中途断了,没能解出来。
嗯,这种需要多步迭代推理的题确实是小模型的软肋。不过有意思的是,在另一道青蛙爬井的题上,20B表现就不错了,精确指出从第九天起青蛙就不可能再往上爬。还有空间推理的正方体数字问题,两款模型都答对了。所以120B的优势主要体现在那种特别复杂、需要长链条推理的任务上。
代码能力这块,我测了好几个维度。代码理解——给一段函数让它识别功能并算输出,两个都认出了斐波那契数列,答案55,没问题。算法编程——用Python找第1000万个质数,不能用外部库,两个都写出了正确高效的代码,十几秒就跑完。
但你注意到没有,20B给出的代码注释更完整,可读性更强。这个细节其实挺重要的,在实际工程中,代码的可维护性有时候比性能还关键。
你说到这个,SQL那块更明显。简单的聚合查询两个都没问题。但到了复杂多表查询——涉及学生表、课程表、成绩表、班级表,要找每个班数学最高分的学生和所有科目平均分——120B给的SQL是对的,但20B给的更简洁、更易读、更好维护。小模型反而写出了更优雅的代码。
其实这种「小模型超越大模型」的现象在业界并不罕见。原因有几个:小模型可能在特定领域的训练数据配比上更集中,形成了更强的专项能力;MoE架构里不同规模模型的专家路由策略不同,小模型的专家选择在某些任务上可能反而更精准;还有知识蒸馏技术,小模型从大模型那里学到的压缩知识有时候反而更干净、更结构化。所以选模型真的不能只看参数量。
对,这是这次测评给我最大的感触之一。不过也有两个都翻车的地方——Mermaid流程图生成,两款模型都写出了有语法错误的代码,解析器直接报错。
Mermaid这种结构化标记语言对缩进、符号、关键字的要求非常严格,大模型在生成这类东西时确实容易出格式问题。这算是当前大模型代码生成的一个共性短板吧。
还有个很有意思的测试是概率推理。经典问题:一枚硬币连抛100次都是正面,第101次正面的概率是多少?120B给了贝叶斯分析,概率大于0.99。但20B更厉害,它同时给了两个答案——如果是公平硬币,每次独立事件,那就是0.5;如果用贝叶斯思维,连续100次正面应该让你怀疑这硬币本身有偏,那概率就接近0.99。
这个我觉得是20B最亮眼的表现之一。它能同时区分频率学派和贝叶斯学派两种推理范式,这说明它对概率推理的理解是有深度的,不是简单地给一个标准答案。而且两个答案都严格按照要求的JSON格式输出,提示词遵循能力也很到位。
最后说说文档分析。我上传了一篇关于大语言模型的长论文,120B不仅找到了Transformer层数是32层这些关键信息,还发现论文里一个数据可能有排版错误——文中写的3072,模型校正为3272。这个自我校正能力确实让我印象深刻。20B在这个测试上没能给出响应。
所以总结下来其实挺清晰的:如果你资源有限,日常用用,20B是性价比极高的选择,在SQL、代码质量、概率分析这些方面甚至比120B还好;但如果你要处理复杂推理、长文档分析这种硬核任务,120B更稳更可靠。
嗯,再加上Apache 2.0的许可证,不管是个人玩家还是企业用户,这两款模型都值得认真考虑。参数量不是一切,适合自己的场景才是最重要的。