#英伟达~~剪枝、蒸馏
把Llama 3.1 8B参数减半,性能同尺寸更强
小模型崛起了。
上个月,Meta 发布了 Llama 3.1 系列模型,其中包括 Meta 迄今为止最大的 405B 模型,以及两个较小的模型,参数量分别为 700 亿和 80 亿。
Llama 3.1 被认为是引领了开源新时代。然而,新一代的模型虽然性能强大,但部署时仍需要大量计算资源。
因此,业界出现了另一种趋势,即开发小型语言模型 (SLM),这种模型在许多语言任务中表现足够出色,部署起来也非常便宜。
最近,英伟达研究表明,结构化权重剪枝与知识蒸馏相结合,可以从初始较大的模型中逐步获得较小的语言模型。
图灵奖得主、Meta 首席 AI 科学家 Yann LeCun 也点赞转帖了该研究。
经过剪枝和蒸馏,英伟达研究团队将 Llama 3.1 8B 提炼为 Llama-3.1-Minitron 4B 开源了出来。这是英伟达在 Llama 3.1 开源系列中的第一个作品。
Llama-3.1-Minitron 4B 的表现优于类似大小的最先进的开源模型,包括 Minitron 4B、Phi-2 2.7B、Gemma2 2.6B 和 Qwen2-1.5B。
这项研究的相关论文早在上个月已经放出了。
- 论文链接:https://www.arxiv.org/pdf/2407.14679
- 论文标题:Compact Language Models via Pruning and Knowledge Distillation
剪枝和蒸馏
剪枝使模型变得更小、更精简,可以通过删除层(深度剪枝)或删除神经元和注意力头以及嵌入通道(宽度剪枝)来实现。剪枝通常伴随着一定程度的再训练,以恢复准确率。
模型蒸馏是一种将知识从大型复杂模型(通常称为教师模型)迁移到较小、较简单的学生模型的技术。目标是创建一个更高效的模型,该模型保留了原始较大模型的大部分预测能力,同时运行速度更快且资源消耗更少。
蒸馏方式主要包括两种:SDG 微调与经典知识蒸馏,这两种蒸馏方式互补。本文主要关注经典知识蒸馏方法。
英伟达采用将剪枝与经典知识蒸馏相结合的方式来构造大模型,下图展示了单个模型的剪枝和蒸馏过程(上)以及模型剪枝和蒸馏的链条(下)。具体过程如下:
1. 英伟达从 15B 模型开始,评估每个组件(层、神经元、头和嵌入通道)的重要性,然后对模型进行排序和剪枝,使其达到目标大小:8B 模型。
2. 接着使用模型蒸馏进行了轻度再训练,原始模型作为老师,剪枝后的模型作为学生。
3. 训练结束后,以小模型(8B)为起点,剪枝和蒸馏为更小的 4B 模型。
从 15B 模型进行剪枝与蒸馏的过程。
需要注意的点是,在对模型剪枝之前,需要先了解模型的哪部分是重要的。英伟达提出了一种基于激活的纯重要性评估策略,该策略可以同时计算所有相关维度(深度、神经元、头和嵌入通道)的信息,使用一个包含 1024 个样本的小型校准数据集,并且只需要前向传播。这种方法相比依赖梯度信息并需要反向传播的策略更加简单且具有成本效益。
在剪枝过程中,你可以针对给定轴或轴组合在剪枝和重要性估计之间进行迭代交替。实证研究显示,使用单次重要性估计就足够了,迭代估计不会带来额外的好处。
利用经典知识蒸馏进行重新训练
下图 2 展示了蒸馏过程,其中 N 层学生模型(剪枝后的模型)是从 M 层教师模型中(原始未剪枝模型)蒸馏而来。学生模型通过最小化嵌入输出损失、logit 损失以及映射到学生块 S 和教师块 T 的 Transformer 编码器特定损失组合来学习。
图 2:蒸馏训练损失。
剪枝和蒸馏最佳实践
英伟达基于紧凑语言模型中剪枝和知识蒸馏的广泛消融研究,将自己的学习成果总结为以下几种结构化压缩最佳实践。
一是调整大小。
- 要训练一组 LLM,首先训练最大的一个,然后迭代地剪枝和蒸馏以获得较小的 LLM。
- 如果使用多阶段训练策略来训练最大的模型,最好剪枝并对训练最后阶段获得的模型进行重新训练。
- 对最接近目标大小的可用源模型进行剪枝。
二是剪枝。
- 优先考虑宽度剪枝而不是深度剪枝,这对于 15B 参数规模以下的模型效果很好。
- 使用单样本(single-shot)重要性估计,因为迭代重要性估计没有任何好处。
三是重新训练。
- 仅使用蒸馏损失进行重新训练,而不是常规训练。
- 当深度明显减少时,使用 logit、中间状态和嵌入蒸馏。
- 当深度没有明显减少时,使用 logit-only 蒸馏。
Llama-3.1-Minitron:将最佳实践付诸应用
Meta 最近推出了功能强大的 Llama 3.1 开源模型系列,在许多基准测试中可与闭源模型相媲美。Llama 3.1 的参数范围从巨大的 405B 到 70B、8B。
凭借 Nemotron 蒸馏的经验,英伟达着手将 Llama 3.1 8B 模型蒸馏为更小、更高效的 4B 模型,采取以下措施:
- 教师微调
- Depth-only 剪枝
- Width-only 剪枝
- 准确率基准
- 性能基准
教师微调
为了纠正模型训练所基于的原始数据集的分布偏差,英伟达首先在他们的数据集上(94B token)对未剪枝的 8B 模型进行了微调。实验表明,如果不纠正分布偏差,教师模型在蒸馏时会为数据集提供次优指导。
Depth-only 剪枝
为了从 8B 降到 4B,英伟达剪枝了 16 层(50%)。他们首先通过从模型中删除每个层或连续子层组来评估它们的重要性,并观察下游任务中 LM 损失的增加或准确率的降低。
下图 5 显示了删除 1、2、8 或 16 层后验证集上的 LM 损失值。例如,第 16 层的红色图表示如果删除前 16 层,则出现 LM 损失。第 17 层表示如果保留第一层并删除第 2 至第 17 层,也出现 LM 损失。英伟达观察到:开始和结束的层是最重要的。
图 5:depth-only 剪枝中层的重要性。
然而,英伟达观察到,这种 LM 损失不一定与下游性能直接相关。
下图 6 显示了每个剪枝模型的 Winogrande 准确率,它表明最好删除第 16 到第 31 层,其中第 31 层是倒数第二层,剪枝模型的 5-shot 准确率明显高于随机准确率 (0.5)。英伟达采纳了这一见解,删除了第 16 到第 31 层。
图 6:当删除 16 层时,在 Winogrande 任务上的准确率。
Width-only 剪枝
英伟达沿宽度轴剪枝了嵌入(隐藏)和 MLP 中间维,以压缩 Llama 3.1 8B。具体来说,他们使用前面描述的基于激活的策略来计算每个注意头、嵌入通道和 MLP 隐藏维度的重要性分数。
在重要性估计之后,英伟达选择
- 将 MLP 中间维从 14336 剪枝到 9216。
- 将隐藏大小从 4096 剪枝到 3072。
- 重新训练注意头数量和层数。
值得一提的是,在单样本剪枝之后,宽度剪枝的 LM 损失高于深度剪枝。然而,经过短暂的重新训练后,趋势发生了逆转。
准确率基准
英伟达使用以下参数对模型进行蒸馏
- 峰值学习率 = 1e-4
- 最小学习率 = 1e-5
- 40 步线性预热
- 余弦衰减计划
- 全局批量大小 = 1152
下表 1 显示了 Llama-3.1-Minitron 4B 模型变体(宽度剪枝和深度剪枝)与原始 Llama 3.1 8B 模型、其他类似大小的模型在跨多个领域的基准测试中的性能比较。总体而言,英伟达再次证实了宽度剪枝策略相较于遵循最佳实践的深度剪枝的有效性。
表 1:Minitron 4B base 模型相较于类似规模 base 模型的准确率比较。
为了验证蒸馏后的模型是否可以成为强大的指令模型,英伟达使用 NeMo-Aligner 对 Llama-3.1-Minitron 4B 模型进行了微调。
他们使用了 Nemotron-4 340B 的训练数据,在 IFEval、MT-Bench、ChatRAG-Bench 和 Berkeley Function Calling Leaderboard (BFCL) 上进行了评估,以测试指令遵循、角色扮演、RAG 和函数调用功能。最后确认 Llama-3.1-Minitron 4B 模型可以成为可靠的指令模型,其表现优于其他基线 SLM。
表 2:对齐 Minitron 4B base 模型与类似规模的对齐模型的准确率比较。
性能基准
英伟达利用 NVIDIA TensorRT-LLM(一种用于优化 LLM 推理的开源工具包)优化了 Llama 3.1 8B 和 Llama-3.1-Minitron 4B 模型。
下两张图显示了不同模型在不同用例下以 FP8 和 FP16 精度每秒的吞吐量请求,表示为 8B 模型的 batch size 为 32 的输入序列长度 / 输出序列长度 (ISL/OSL) 组合以及 4B 模型的 batch size 为 64 的输入序列长度 / 输出序列长度 (ISL/OSL) 组合,这要归功于在一块英伟达 H100 80GB GPU 上,较小的权重允许较大的 batch size。
Llama-3.1-Minitron-4B-Depth-Base 变体是最快的,平均吞吐量约为 Llama 3.1 8B 的 2.7 倍,而 Llama-3.1-Minitron-4B-Width-Base 变体的平均吞吐量约为 Llama 3.1 8B 的 1.8 倍。与 BF16 相比,在 FP8 中部署还可使这三种型号的性能提高约 1.3 倍。
图 8:组合:Llama 3.1 8B 为 BS=32,Llama-3.1-Minitron 4B 型号为 BS=64。1x H100 80GB GPU。
结论
剪枝和经典知识提炼是一种非常经济高效的方法,可以逐步获得更小尺寸的 LLM,与在所有领域从头开始训练相比,可实现更高的准确性。与合成数据式微调或从头开始预训练相比,这是一种更有效且数据效率更高的方法。
Llama-3.1-Minitron 4B 是英伟达首次尝试使用最先进的开源 Llama 3.1 系列完成的探索。要在 NVIDIA NeMo 中使用 Llama-3.1 的 SDG 微调,可参阅 GitHub 上的 /sdg-law-title-generation 部分。
有关更多信息,请参阅以下资源:
- https://arxiv.org/abs/2407.14679
- https://github.com/NVlabs/Minitron
- https://huggingface.co/nvidia/Llama-3.1-Minitron-4B-Width-Base
- https://huggingface.co/nvidia/Llama-3.1-Minitron-4B-Depth-Base
参考链接:
#Awesome-Robotics-3D
想搞懂李飞飞的创业方向?这里有一份机器人+3D的论文清单,80 多篇论文搞懂「机器人+3D」研究进展。
前段时间,多家媒体报道称 ,著名 AI 学者、斯坦福大学教授李飞飞的创业公司 World Labs 在短短三个月内已经完成了两轮融资,其中最新一轮融资中筹到了约 1 亿美元,公司估值已超过 10 亿美元,成为新晋独角兽。
World Labs 的发展方向聚焦于「空间智能」,即开发能够理解三维物理世界的模型,模拟物体的物理特性、空间位置和功能。李飞飞认为「空间智能」是 AI 发展的关键一环,她的团队正在斯坦福大学实验室里训练计算机和机器人在三维世界中采取行动,例如使用大型语言模型让一个机械臂根据口头指令执行开门、做三明治等任务。(详情请参见《李飞飞解读创业方向「空间智能」,让 AI 真正理解世界》)
为了解释「空间智能」这一概念,李飞飞展示了一张猫伸出爪子将玻璃杯推向桌子边缘的图片。她表示,在一瞬间,人类大脑可以评估「这个玻璃杯的几何形状,它在三维空间中的位置,它与桌子、猫和所有其他东西的关系」,然后预测会发生什么,并采取行动加以阻止。
其实,除了李飞飞,现在有很多研究团队都在关注 3D 视觉 + 机器人这一方向。这些团队认为,当前 AI 存在的很多局限都是因为模型缺乏对于 3D 世界的深刻理解。如果要补全这一拼图,势必要在 3D 视觉方向投入更多的研究精力。此外,3D 视觉提供了对环境的深度感知和空间理解能力,这对于机器人在复杂三维世界中的导航、操作和决策至关重要。
那么,有没有一份系统的研究资料可以供这一方向的研究者参考呢?最近就找到了一份:
项目链接:https://github.com/zubair-irshad/Awesome-Robotics-3D
这个名叫「Awesome-Robotics-3D」的 GitHub 存储库总共收集了 80 多篇「3D 视觉 + 机器人」方向的论文,大部分论文都给出了相应的论文、项目、代码链接。
这些论文可以分为以下几个主题:
- 策略学习
- 预训练
- VLM 和 LLM
- 表示
- 模拟、数据集和基准
这些论文既有 arXiv 预印本,也有 RSS、ICRA、IROS、CORL 等机器人学顶会以及 CVPR、ICLR、ICML 等计算机视觉、机器学习领域的顶会论文,含金量非常高。
每部分的论文列表如下:
1、策略学习
2、预训练
3、VLM 和 LLM
4、表示
5、模拟,数据集和基准
此外,作者还给出了两篇可以参考的综述论文:
- 论文 1:When LLMs step into the 3D World: A Survey and Meta-Analysis of 3D Tasks via Multi-modal Large Language Models
- 论文链接:https://arxiv.org/pdf/2405.10255
论文介绍:这篇论文全面概述了使 LLM 能够处理、理解和生成 3D 数据的方法论,并强调了 LLM 的独特优势,例如 in-context learning、step-by-step 推理、开放词汇能力和广泛的世界知识,这些优势有望显著推进具身人工智能系统中的空间理解和交互。研究涵盖了从点云到神经辐射场(NeRF)的各种 3D 数据表示方法,并考察了它们与 LLM 的集成,用于 3D 场景理解、描述生成、问答和对话,以及基于 LLM 的代理进行空间推理、规划和导航等任务。此外,论文还简要回顾了其他将 3D 和语言进行整合的方法。通过对这些研究的元分析,论文揭示了取得的显著进展,并强调了开发新方法以充分利用 3D-LLM 潜力的必要性。
为了支持这项调查,作者建立了一个项目页面,整理和列出了与主题相关的论文:https://github.com/ActiveVisionLab/Awesome-LLM-3D
- 论文 2:A Comprehensive Study of 3-D Vision-Based Robot Manipulation
- 论文链接:https://ieeexplore.ieee.org/document/9541299
论文介绍:这篇文章全面分析了 3D 视觉在机器人操控领域的最新进展,特别是在模仿人类智能和赋予机器人更灵活工作能力方面。文章讨论了传统机器人操控通常依赖的 2D 视觉系统及其局限性,指出了 3D 视觉系统在开放世界中面临的挑战,如在杂乱背景下的一般物体识别、遮挡估计以及类似人类的灵活操控。文章涵盖了 3D 数据获取与表示、机器人视觉校准、3D 物体检测 / 识别、6 自由度姿态估计、抓取估计和运动规划等关键技术。此外,还介绍了一些公开数据集、评估标准、比较分析以及当前面临的挑战。最后,文章探讨了机器人操控的相关应用领域,并对未来的研究方向和开放问题进行了讨论。 开发板商城 天皓智联 TB上有视觉设备哦 支持AI相关~ 大模型相关也可用
#给大模型「SQL注入」攻击
大神Karpathy:我给大模型「SQL注入」攻击,简直不要太轻松
大模型的安全性,可以说是「有很大进步空间」
AI 大牛 Andrej Karpathy 又来科普知识了,这次的主题是「利用特殊 token 对 LLM 进行类 SQL 注入的攻击」。
所谓 SQL 注入攻击,它是一种网络攻击技术。攻击者通过将恶意的 SQL 语句插入到应用程序的输入字段中,诱使后台数据库执行这些恶意的 SQL 语句。此类攻击通常利用应用程序对用户输入的处理不当,比如没有正确地对输入进行过滤或转义,导致攻击者能够访问、修改甚至删除数据库中的数据。
由于人们的安全意识逐渐升高,目前对于大多数软件产品来说,SQL 注入都不应该出现。
但在大模型领域,一切都还处于初步阶段。LLM 分词器负责对输入字符串中的特殊 token(如 <s>、<|endoftext|> 等)进行解析。虽然这看起来很方便,但最多会导致误判;最坏的情况下会导致 LLM 安全漏洞,相当于 SQL 注入攻击。
这里就要注意了:用户输入字符串是不受信任的数据。
在 SQL 注入中,你可以使用「DROP TABLE」攻击来破解不良代码。在 LLM 中同样会遇到相同的问题,不良代码会将字符串的特殊 token 描述符解析为实际的特殊 token,弄混输入表示,导致 LLM 无法分发聊天模版。
下面是一个使用当前 huggingface Llama 3 分词器默认的示例。
可以看到,同时出现了两种不直观的情况:
- <|begin_of_text|> token 被(128000)被添加到了序列前面
- <|end_of_text|> token(128001)从字符串中被解析出来,并插入了特殊 token。现在文本(可能来自用户)可能与 token 协议混淆,并导致 LLM 无法分发,进而产生未定义的输出结果。
因此,Karpathy 建议始终使用两个额外的 flag 进行 tokenizing 操作,禁用 add_special_tokens=False 和 split_special_tokens=True,并在代码中自行添加特殊 token。他认为这两个选项的命名会有点令人困惑。对于聊天模型,你也可以使用聊天模板 apply_chat_template。
通过以上操作,你可以得到一些看到来更正确的东西。比如 <|end_of_text|> 现在被视为任何其他字符串序列,并被底层 BPE 分词器分解,就像任何其他字符串一样。
Karpathy 认为对编码和解码的调用永远不应该通过解析字符串的方式来处理特殊 token,我们需要完全弃用这一功能。相反,这些应该只通过单独的代码路径来显式且以编程方式来添加。在 tiktoken 中,始终使用 encode_ordinary;在 huggingface 中,使用上文提到的 flag 更安全。至少要注意到这个问题,并始终保持自己 token 的可视化并测试自己的代码。
Karpathy 认为这些东西非常微妙且记录不全,他预计现在大约 50% 的代码都出现了上述问题导致的 bug。
即使是出厂前经历了严格测试的 ChatGPT 也出现了一些奇怪的问题。最好的情况是它只删除了 token,最坏的情况则是以一种未定义的方式混淆了 LLM。Karpathy 也不清楚背后发生了什么,但 ChatGPT 无法将字符串 <|endoftext|> 重复发给他。所以这里要格外注意。
Andrej Karpathy 的文章一出,立刻引起了讨论。有人问:那么 LLM 开发人员需要采取什么措施来提升安全性吗?
Karpathy 认为说来也简单,始终以「普通」方式标记字符串,即 utf8 字节序列就可以了。这让人想起了安全领域中的「最小特权」原则 —— 本质上,通过将功能限制在绝对必要的范围内,就可以最大限度地减少发生意外后果的可能性。
也有人表示「我们已经在这个方向上前进了」。VLM 模型 PaliGemma 作者,Google DeepMind 科学家 Lucas Beyer 表示,我们在新工作得代码里已经提升了安全机制,这会有些麻烦,尤其是在支持多个 tokenizer 时,但总体而言是值得的。它也会让代码更加直接。
也有网友问道,如果代码是正确的,但是训练数据时候输入 <|endoftext|> 会发生什么?
Karpathy 表示,如果代码没错,什么都不会发生。但问题是很多代码可能并不正确,这会悄悄破坏大模型的世界观。
Karpathy 发现的新问题,你怎么看呢?
参考内容:https://twitter.com/karpathy/status/1823418177197646104
#Mutual Reasoning Makes Smaller LLMs Stronger Problem-Solvers
两个小模型互相验证,直接比肩大模型?微软的rStar甚至没用CoT和微调
互相检查,让小模型也能解决大问题。
众所周知,LLM 很强大,但执行复杂推理的能力还不够强。
举个例子,在 GSM8K 数据集上,Mistral-7B 即使使用思维链(CoT)等技术,也只能达到 36.5% 的准确度。尽管微调确实也能有效地提升推理能力,但大多数 LLM 依靠的微调数据都是经过 GPT-4 等更强大模型蒸馏过的,甚至可能原本就是这些强大模型合成的。
同时,研究者们也在积极开发一种能提供辅助但也更困难的方法:使用一个更优的教师 LLM 来提升推理能力。
为了在没有更优模型的前提下提升推理能力,一种颇有希望的范式是利用 LLM 自身之中的知识。举个例子,一种名为 RAP 的方法采用了一种自我探索式的解决方法,即通过自我奖励的反馈来迭代式地提升 LLM 的推理性能。不幸的是,研究表明这一范式具有两大根本性问题。
第一,在执行推理时,LLM 往往难以有效地探索解答空间。这种自我探索式方法往往会因推理步骤质量不佳而受困于某个解答空间,即使多次尝试也是如此。
第二,即使自我探索找到了高质量的推理步骤,小版本的大型语言模型(SLM)也难以辨别哪些推理步骤的质量更高,也难以确定最终答案是否正确,由此难以有效地引导自我探索。研究表明,基于基本的常规奖励的自我探索引导得到的结果并不比随机猜测更好。
更麻烦的是,小版本的大型语言模型(SLM)更容易出现上述两个问题,因为它们的能力更差一些。举个例子,GPT-4 能通过自我优化来提升输出结果,但 SLM 却很难做到这一点,甚至可能导致输出结果质量下降。这会严重妨碍神经语言模型的推广应用。
针对这些问题,微软亚洲研究院和哈佛大学的一个研究团队提出了 Self-play muTuAl Reasoning,即自博弈相互推理,简称 rStar。简单来说,该方法就类似于让两个学习平平的人互相检查考卷答案,最终提升得分,甚至达到比肩学霸的程度。该团队宣称 rStar 「无需微调或更优模型就能提升 SLM 的推理能力」。
- 论文标题:Mutual Reasoning Makes Smaller LLMs Stronger Problem-Solvers
- 论文地址:https://arxiv.org/pdf/2408.06195
- 代码地址:https://github.com/zhentingqi/rStar (尚待发布)
方法
为了解决上述难题,rStar 的做法是将推理过程分成了解答生成和相互验证两部分,如图 2 所示。
针对第一个难题,该团队引入了一个集合,其中包含丰富的类似人类的推理动作,可透彻地探索多种不同的推理任务空间。
针对第二个难题,他们设计了一个专门针对 SLM 的奖励函数,这能对中间步骤进行评估,从而避免依赖它们那往往并不可靠的自我评估。
此外,该团队还使用了另一个 SLM 作为判别器来增强 MCTS 过程,与判别器 SLM 互相验证每条轨迹的正确性。
使用 MCTS Rollout 自己生成推理轨迹
一个包含丰富的类人推理动作的集合。MCTS 生成的核心在于动作空间,其定义了树探索的范围。大多数基于 MCTS 的方法在构建树时都使用了单一动作类型。比如 RAP 中的动作是提出下一个子问题,而 AlphaMath 和 MindStar 中的动作是生成下一推理步骤。但是,依赖单一动作类型可能容易导致空间探索效果不佳。
为了解决这个问题,该团队回顾了人类执行推理的方法。不同的人解决问题的方法也不同:某些人会将问题分解成子问题,另一些则会直接解决问题,还有些人则会换个视角重新表述问题。此外,人们还会根据当前状态调整自己的方法,按需求选择不同的动作。
受人类推理过程的启发,该团队构建了一个更为丰富的数据集,其中包含 5 类动作,以尽可能地提升 SLM 正确解决复杂推理问题的潜力。
动作 1:提议一步思路。针对给定问题,该动作会让 LLM 基于已有的推理步骤生成接下来的一步思路。
动作 2:提议余下的思路步骤。该动作与标准 CoT 一样,能实现「快速思考」,从而解决只需少量步骤的简单问题。给定已经生成的推理步骤,它会让 LLM 直接生成剩余步骤,直到得到最终答案。
动作 3:提议下一个子问题及其答案。
动作 4:再次回答这个子问题。考虑到动作 3 有可能无法正确回答对应的子问题,因此这个动作的作用是再次回答它。
动作 5:重新表述问题 / 子问题。这个新动作是以更简单的方式重新表述该问题。具体来说,这里是让 LLM 清晰列出问题陈述中的所有条件。
以上五个动作定义了一个高度多样化的动作空间 {A1, A2, A3, A4, A5}。
在每个步骤 i,MCTS 从该空间选取一个动作 a_i。然后基于当前状态(即之前生成的轨迹 x ⊕ s_1 ⊕ s_2 ⊕ ... ⊕ s_{i−1}),使用该动作 a_i 让 LLM 生成下一推理步骤 s_i。请注意某些动作需要按顺序执行。图 3 给出了一个示例。
如表 1 所示,在提升最终推理准确度方面,每个动作都具有重要作用。
- 奖励函数
MCTS 的另一个关键组件是奖励函数,其作用是评估每个动作的价值并为树的扩展提供指示。针对 SLM,该团队设计了一个简单却有效的奖励函数。他们的方法灵感来自 AlphaGo,即基于每个中间节点对最终正确答案的贡献对它们进行评分。这样一来,经常得到正确答案的动作就能获得更高奖励,它们也就更可能在未来的 MCTS 树扩展中被选取。
这里将执行动作 a 后生成的节点 s 的奖励值定义为 Q (s, a)。一开始,所有未被探索过的节点都被分配了 Q (s_i, a_i) = 0,从而实现随机的树扩展。在抵达首个端节点 n_d 时,根据其是否得到正确答案而计算一个奖励分数 Q (s_d, a_d)。
然后,沿轨迹 t = x ⊕ s_1 ⊕ s_2 ⊕ ... ⊕ s_d 将该分数反向传播给每个中间节点。具体来说,对于每个 s_i,都以如下方式更新其 Q 值:Q (s_i, a_i) = Q (s_i, a_i) + Q (s_d, a_d)。为了计算端节点的 Q (s_d, a_d),这里使用的奖励值是自洽多数投票的似然(置信度)。
- 使用 MCTS Rollout 生成解答
下面描述 MCTS 生成候选推理轨迹的方式。从初始的根节点 s_0 开始,执行包括选取、扩展、模拟和反向传播在内的多种搜索。具体来说,模拟使用的是默认的 Rollout 策略。为了得到更准确的奖励估计,该团队会执行多次 Rollout。为了平衡探索与利用,他们使用了著名的 UCT(树的置信度上界)来选取每个节点。这个选取过程的数学形式为:
其中 N (s, a) 是之前的迭代中节点 s 被访问的次数,N_parent (s) 表示对 s 的父节点的访问次数。Q (s, a) 是估计的奖励值,会在反向传播过程中得到更新。c 是平衡探索与利用的常量。
一旦搜索到达某个端节点(可能是一个终端状态,也可能到达了预定义的最大树深度 d),便能得到一条从根到端节点的轨迹。将 Rollout 迭代得到的所有轨迹收集起来作为候选解答。接下来就需要对它们进行验证。
使用互恰性选择推理轨迹
基于收集到的所有轨迹,该团队提出使用推理互恰性来选择答案。
- 通过判别器 SLM 实现推理互恰性
如图 2 所示,除了目标 SLM 外,该团队还引入了一个判别器 SLM,其作用是为每个候选轨迹提供外部无监督反馈。
具体来说,对于 t = x ⊕ s_1 ⊕ s_2 ⊕ ... ⊕ s_d,遮掩从某个随机采样的步骤 i 处开始的推理步骤。然后将之前的推理轨迹 t = x ⊕ s_1 ⊕ s_2 ⊕ ... ⊕ s_{i-1} 作为 prompt 提供给判别器 SLM,让其补全剩余步骤。由于将之前的 i-1 个推理步骤作为了提示,因此难度降低了,判别器 SLM 便更有可能给出正确答案。
图 4 中比较了判别器 SLM 补全的答案是否与原始轨迹 t 匹配。如果两者一致,则认为 t 是可以最终选择的已验证轨迹。
由目标 SLM 选取最终轨迹。在对所有候选轨迹使用了推理互恰性之后,再回到目标 SLM,让其从已验证轨迹中选出最终轨迹。为了计算每条轨迹的最终分数,该团队的做法是用其奖励乘以通过 Rollout 得到的其端节点的置信度分数。最终分数最高的轨迹被选作解答。
实验
实验设置
rStar 适用于多种 LLM 和推理任务。该团队评估了 5 个 SLM:Phi3-mini、LLaMA2-7B、Mistral-7B、LLaMA3-8B、LLaMA3-8B-Instruct。
测试的推理任务有 5 个,其中包括 4 个数学任务(GSM8K、GSM-Hard、MATH、SVAMP)和 1 个常识任务(StrategyQA)。
实验细节请访问原论文。
主要结果
该团队首先评估了 rStar 在一般推理基准上的有效性。表 2 比较了 rStar 和其它当前最佳方法在不同 SLM 和推理数据集上的准确度。为了演示新生成器的效果,该团队还提供了 rStar (generator @maj) 的准确度,即不使用判别器,仅使用多数投票来验证答案而得到的准确度。
该团队指出了其中的三项关键结果:
1. 得到 rStar 助力的 SLM 解决问题的能力更强。比如,在 GSM8K 数据集上,使用少样本 CoT 的 LLaMA2-7B 的准确度只有 12.51%。但有了 rStar 的帮助,其准确度提升到了 63.91%,这一成绩接近使用微调得到的准确度,如图 1 所示。类似地,使用 rStar 的 Mistral 的性能甚至比微调版的 MetaMath 还高 4.18%。这样的提升表明,SLM 本身已经具备很强的推理能力,但需要引导才能生成和选出正确解答。
2.rStar 可以稳定地将被评估的多种 SLM 在不同任务上的推理准确度提升至当前最佳水平。相较之下,其它对比方法都无法稳定地在所有四个基准上取得优良表现。举个例子,尽管 SC(自我一致性)擅长三个数学任务,但却无法有效解决 StrategyQA 的逻辑推理任务。
3. 即使没有新提出的用于验证推理轨迹的判别器,新提出的 MCTS 生成器在提升 SLM 的推理准确度方面依然效果很好。比如,在 GSM8K 数据集上,rStar (generator @maj) 的准确度比 RAP 高 2.88%-16.39%、比 ToT 高 10.60%- 38.37%、比 SC 高 1.69% - 7.34%。
- 在高难度数学数据集上的结果
该团队还在一个更高难度的数学数据集上评估了 rStar。为此他们选择了 GSM-Hard 和 MATH 数据集。遵照同类研究的惯例,他们使用了 MATH-500,这是来自 MATH 数据集的一个包含代表性问题的子集。这样做是为了提升评估速度。如表 2 和 3 所示,rStar 能够显著提高 SLM 在这些高难度数学数据集上的推理准确度。
消融研究
- 不同 Rollout 的有效性
rStar 使用了 Rollout 策略来执行 MCTS 树扩展。更多 Rollout 会生成更多候选解答轨迹,但也会抬高推理成本。图 5 比较了在 GSM8K 上,SC、RAP 和 rStar 使用不同 Rollout 时的准确度。
这里得到两个关键观察结果:
1. 即使仅 2 次 Rollout,rStar 也能大幅提升 SLM 的推理准确度,这表明了其有效性;
2.Rollout 更多时对 rStar 和 SC 都有利,而 RAP 在 4 次 Rollout 之后往往会饱和甚至下降。一个原因是 RAP 的单类型动作空间会限制 MCTS 探索的效果。
- MCTS 生成器的有效性
该团队比较了 MCTS 生成器与其它三种生成器的效果。如表 4 所示,新提出的 MCTS 生成器全面胜过其它生成器。此外,针对 SLM 调整过的奖励函数的有效性也得到了证明,因为自我评估会降低新生成器的准确度。
- 判别器的有效性
该团队设置了两个评估实验。
第一个实验是将判别方法与多数投票和自我验证方法进行比较。结果见表 5(左),可以看到判别方法的优势非常显著。
第二个实验则是研究不同的判别器模型的影响。结果见表 5(右),可以看到选择不同的判别器模型通常不会影响推理互恰性方法验证答案的效果。值得注意的是,即使使用强大的 GPT-4 作为判别器,性能也只有略微提升(从 91.13% 提升到 92.57%)。这表明推理互恰性方法可以有效地使用 SLM 来验证答案。
#人工智能的终极里程碑却倒了
大模型的拟人行为,在让我们产生恐怖谷效应。
「图灵测试是一个糟糕的测试标准,因为对话能力和推理完全是两码事。」最近几天,AI 圈里一个新的观点正在流行。
如今已是生成式 AI 时代,我们评价智能的标准该变了。
「机器能思考吗?」这是艾伦・图灵在他 1950 年的论文《计算机器与智能》中提出的问题。图灵很快指出,鉴于定义「思考」的难度,这个问题「毫无意义,不值得讨论」。正如哲学辩论中常见的做法,他建议用另一个问题代替它。
图灵设想了一个「模仿游戏」,在这个游戏中,一位人类评判员分别与一台计算机和一名人类(陪衬者)对话,双方都试图让评判员相信自己才是真正的人类。
重要的是,计算机、陪衬者和评判员之间互相无法对视,他们完全通过文本进行交流。在与每个候选者对话后,评判员猜测谁是真正的人类。
图灵的新问题是:「是否存在可想象的数字计算机,能在模仿游戏中表现出色?」
论文链接:
https://academic.oup.com/mind/article/LIX/236/433/986238?login=false
这个由图灵提出的游戏,现在被广泛称为图灵测试,用以反驳广泛存在的直觉性认知:「由于计算机的机械性质,在原理层面上就不可能思考。」
图灵的观点是:如果一台计算机在表现上与人类无法区分(除了它的外貌和其他物理特征),那么为什么我们不将其视为一个有思维的实体呢?为什么我们要将「思考」的资格仅限于人类(或更广泛地说,仅限于由生物细胞构成的实体)?正如计算机科学家斯科特・阿伦森所描述的,图灵的提议是「一种反对『肉体沙文主义』的呼吁」。
图灵测试是一种思想而不是「方法」
图灵将他的测试作为一个哲学思想实验,而不是一种可以实际衡量机器智能的方法。然而,在公众的认知中,图灵测试已经成为人工智能(AI)的终极里程碑 —— 评判通用机器智能是否到来的主要标准。
如今,近 75 年过去了,关于 AI 的报道充斥着声称图灵测试已被通过的论调,尤其是像 OpenAI 的 ChatGPT 和 Anthropic 的 Claude 这样的聊天机器人的推出之后。
去年,OpenAI 的首席执行官山姆・奥特曼发文称:「面对技术变革,人们的适应能力和韧性得到了很好的体现:图灵测试悄然过去,大多数人继续他们的生活。」
各大媒体也发表了类似的标题,例如某家报纸报道称,「ChatGPT 通过了著名的『图灵测试』—— 表明该 AI 机器人具有与人类相当的智能。」
英国每日发行的老牌报刊 —— 每日邮报
甚至像 BBC 这样的全球最大媒体之一、具有广泛影响力的公共传媒机构甚至在 2014 年就提出计算机 AI 已经通过了图灵测试。
https://www.bbc.com/news/technology-27762088
然而,问题是:现代聊天机器人真的通过了图灵测试吗?如果是这样,我们是否应该像图灵所提议的那样,赋予它们「思考」的地位?
令人惊讶的是,尽管图灵测试在文化上具有广泛的重要性,长久以来,AI 社区却对通过图灵测试的标准没有达成一致意见。许多人怀疑,具备能够欺骗人的对话技能是否真正揭示了系统的底层智能或「思考」能力。
一千个人眼中很可能有一千个图灵测试标准。
图灵奖得主 Geoffery Hinton 在一次访谈中谈及了他的「图灵测试标准」,他认为 Palm 等聊天机器人可以解释笑话为何有趣,这可以视为其智能的标志。如今的大模型,如 GPT-4 非常擅长解释一个笑话为何有趣,这被认为是其图灵测试的一部分标准。
相比于其他科学家对于图灵测试严肃的定义,Hinton 的看法虽然诙谐,但仍是道出了他对「人工智能是否有思考能力」这一终极命题的思考。
访谈视频链接:https://www.youtube.com/watch?v=PTF5Up1hMhw
一场「图灵闹剧」
由于图灵并没有提出一个具有完整实际操作说明的测试。
他对「模仿游戏」的描述缺乏细节:
- 测试应该持续多长时间?
- 允许提出什么类型的问题?
- 人类的评判员或「陪衬者」需要具备什么样的资格?
对于这些具体问题,图灵并未详细说明。不过,他做了一个具体的预测:「我相信,大约在 50 年内,计算机可以通过编程变得极其出色,以至于普通的审问者在经过五分钟的提问后,识别出真实人类的概率不超过 70%。」简而言之,在五分钟的对话中,评判员有平均 30% 的几率会被误导。
有些人将这一随意的预测视为通过图灵测试的「官方」标准。2014 年,英国皇家学会在伦敦举办了一场图灵测试比赛,参赛的有五个计算机程序、30 个人类陪衬和 30 名评判员。
参与的人类群体多样,既有年轻人也有年长者,既有母语是英语的人也有非母语者,既有计算机专家也有非专家。每位评判员分别与一对参赛者(一名人类和一台机器)进行了多轮五分钟的并行对话,之后评判员必须猜测谁是人类。
一款名为「尤金・古斯特曼(Eugene Goostman)」的聊天机器人,扮演一名少年,竟然成功欺骗了 10 名评判员(欺骗率:33.3%)。
显然「欺骗率」已经超过了图灵当时所言的 30%。
尤金・古斯特曼(Eugene Goostman)模拟的是一名 13 岁男孩。
根据「在五分钟内有 30% 几率欺骗」的标准,组织者宣布:「65 年前的标志性图灵测试首次被计算机程序『尤金・古斯特曼』通过了图灵测试,这一里程碑将载入史册……」。
AI 专家在阅读这场图灵测试中的主角「尤金・古斯特曼(Eugene Goostman)」对话的记录后,对该聊天机器人通过图灵测试的说法嗤之以鼻,认为这个不够复杂且不像人类的聊天机器人并未通过图灵设想的测试。
有限的对话时间和评判员的专业水平不均使得这次测试更像是对人类轻信的考验,而非机器智能的展示。结果却是「ELIZA 效应」的一个鲜明例子 —— 这个效应得名于 1960 年代的聊天机器人 ELIZA,尽管其极其简单,但仍能让许多人误以为它是一个理解并富有同情心的心理治疗师。
这凸显了我们人类倾向于把能够与我们对话的实体赋予智能的心理倾向。
ELIZA 是图灵测试「发表」后的最早期聊天机器人之一,它是一个非常基础的罗杰斯派心理治疗聊天机器人。
另一项图灵测试比赛 —— 勒布纳奖(Loebner Prize)允许更长的对话时间,邀请了更多专家评委,并要求参赛机器至少欺骗一半的评委。有趣的是,当标准提高后,在近 30 年的年度比赛中,没有一台机器通过这一版本的测试。
图灵测试开始转向
尽管图灵的原始论文中缺乏关于如何具体实施测试的细节,但很明显,模仿游戏需要三名参与者:一台计算机、一位人类陪衬者和一位人类评判员。然而,随着时间的推移,「图灵测试」这一术语在公众讨论中的含义逐渐演变为一个明显弱化的版本:任何人与计算机之间的互动,只要计算机表现得足够像人类,就被视为通过了图灵测试。
例如,当《华盛顿邮报》在 2022 年报道「谷歌的 AI 通过了一个著名测试 —— 并展示了该测试的缺陷」时,他们指的并不是模仿游戏,而是谷歌工程师布雷克・莱莫因(Blake Lemoine)认为谷歌的 LaMDA 聊天机器人具有「感觉能力(sentient)」。
2024 年,斯坦福大学发布的一份新闻稿宣布,斯坦福团队的研究「标志着人工智能首次通过了严格的图灵测试之一」。但这里所谓的图灵测试是通过比较 GPT-4 在心理调查和互动游戏中的行为统计与人类的行为统计来完成的。
这种定义可能与图灵的初衷相去甚远:斯坦福团队的定义是「我们认为,当 AI 的回应在统计上无法与随机选取的人类回应区分开来时,它就通过了图灵测试。」
最新的,声称聊天机器人通过图灵测试的案例来自 2024 年的一项研究,该研究采用了「双人模式」的测试:与图灵的「三人」模仿游戏(其中裁判会同时询问计算机和人类陪衬)不同,这里每个裁判只与计算机或人类互动。
研究人员招募了 500 名人类参与者,每人被分配为裁判或人类陪衬。每位裁判与陪衬、GPT-4(提示了人类编写的如何欺骗裁判的建议)或 ELIZA 聊天机器人版本玩一轮五分钟的游戏。通过网络界面交谈五分钟后,裁判猜测他们的对话对象是人类还是机器。
最后,人类陪衬在 67% 的回合中被判定为人类;GPT-4 在 54% 的回合中被判定为人类,ELIZA 在 22% 的回合中被判定为人类。作者将「通过」定义为超过 50% 的时间欺骗评委 —— 也就是说,超过随机猜测的概率。按照这个定义,GPT-4 通过了,尽管人类对手的得分仍然更高。
令人担忧的是,大多数人类判断者在五分钟的对话之内被 GPT-4 欺骗了。使用生成式人工智能系统冒充人类传播虚假信息或进行诈骗是社会必须应对的风险。但如今的聊天机器人真的通过了图灵测试吗?
答案当然是,这取决于你谈论的是哪个版本的测试。一场由专家评委和更长对话时间组成的三人模仿游戏仍然没有被任何机器通过(有人计划在 2029 年举行一个超严格的版本)。
由于图灵测试的重点是试图骗过人类,而不是更直接地测试智能。许多人工智能研究人员长期以来一直认为图灵测试是一种干扰,是一种「不是为了让人工智能通过,而是为了人类失败」的测试。但该测试的重要性在大多数人眼中仍然占据主导地位。
进行对话是我们每个人评估其他人类的重要方式。我们很自然地认为,能够流利交谈的智能体必须拥有类似人类的智能和其他心理特征,如信仰、欲望和自我意识。
然而,如果说人工智能的发展历史教会了我们什么,那就是这些假设往往是站在错误的直觉上的。几十年前,许多著名的人工智能专家认为,创造一台能够在国际象棋比赛中击败人类的机器需要与人类完全智能相当的东西。
人工智能先驱 Allen Newell 和 Herbert Simon 在 1958 年写道:「如果一个人能设计出一台成功的国际象棋机器,他似乎已经深入到人类智力的核心。」认知科学家 Douglas Hofstadter 在 1979 年预测,未来「可能会有程序可以在国际象棋比赛中击败任何人,但…… 它们将是通用智能的程序。」
当然,在接下来的二十年里,IBM 的 DeepBlue 击败了世界国际象棋冠军加里・卡斯帕罗夫,使用的是一种与我们所说的「通用智能」相去甚远的蛮力方法。同样,人工智能的进步表明,曾经被认为需要通用智能的任务 —— 语音识别、自然语言翻译,甚至自动驾驶 —— 都可以由缺乏人类理解能力的机器来完成。
图灵测试很可能会成为我们不断变化的智力观念的又一个牺牲品。1950 年,图灵直觉地认为,像人类一样交谈的能力应该是「思考」及其所有相关能力的有力证据。这种直觉至今仍然很有说服性。但也许我们从 ELIZA 和 Eugene Goostman 身上学到的东西,以及我们可能仍能从 ChatGPT 及其同类产品中学到的东西是,能够流利地说出自然语言,比如下棋,并不是通用智力存在的确凿证据。
事实上,神经科学领域中有越来越多的证据表明,语言流利程度与认知的其他方面出奇地脱节。麻省理工学院神经科学家 Ev Fedorenko 等人通过一系列细致而令人信服的实验表明,他们所谓的「正式语言能力」(与语言生成相关的能力)背后的大脑网络与常识、推理和我们可能称之为「思考」的其他方面背后的网络大体上是分开的。这些研究人员声称,我们直觉上认为流利的语言是一般智力的充分条件,这是一种「谬论」。
图灵在 1950 年的论文中写道:「我相信,到本世纪末,词语的使用和普遍受教育的观点将会发生巨大的变化,人们将能够谈论机器思考,而不会遭到反驳。」如今的我们还没有到达那个地步。图灵的预测是否只是偏离了几十年?真正的改变是否发生在我们对「思考」的概念上?—— 还是说真正的智能比图灵和我们所认识到的更复杂、更微妙?一切还有待观察。
有趣的是,最近谷歌前 CEO 埃里克・施密特在那场斯坦福大学的演讲里也发表了观点。
在很长一段历史中,人类对宇宙的理解更多是神秘的,科学革命改变了这种情况。然而现在的 AI 却再次让我们无法真正理解其中的原理。知识的本质是否正在发生变化?我们是否要开始接受这些 AI 模型的结果,与此同时不再需要它们解释给我们听呢?
施密特是这样说的:我们可以将其比作是青少年。如果你有个十来岁的孩子,你知道他们是人类,但你却无法完全理解他们的想法。我们的社会显然适应青少年的存在。我们可能会有无法完全理解的知识系统,但我们理解它们的能力范围。
这可能就是我们能够获得的最好结果。