Towards Code-Oriented LM Embeddings for Surrogate-Assisted Neural Architecture Search
本文提出了面向代码的语言模型嵌入(COLE),这是一种低成本策略,它利用现成的语言模型将神经网络架构表示为 PyTorch 代码,从而在不进行专门微调的情况下实现具有竞争力的代理辅助神经网络架构搜索,并显著降低了寻找最优模型所需的评估预算。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
以下是用简单语言和日常类比对该论文的解读。
核心难题:寻找最佳食谱代价高昂
想象你是一位厨师,试图找到制作蛋糕的绝对最佳食谱。你拥有一本巨大的食谱书,其中包含数百万种可能的配料组合(面粉、糖、鸡蛋、香料)和制作方法(烘焙时间、温度)。
在人工智能领域,这被称为神经架构搜索(NAS)。这里的“食谱”是神经网络的设计方案,而“试吃”则是训练 AI 以观察其表现如何。问题在于,“试吃”每一道食谱都需要耗费漫长时间,并消耗巨额算力。你不可能把书里的每一款蛋糕都烤一遍。
为了解决这个问题,科学家们使用代理模型(或称“口味预测器”)。这就像一位美食评论家,只需看着纸上的食谱就能猜出蛋糕的味道如何,从而让你无需真正去烤制。目标就是找到一位既快速、廉价又极其准确的评论家。
旧方法:将食谱翻译成外语
过去,为了让评论家理解食谱,科学家们不得不将神经网络的复杂代码翻译成一种奇怪且简化的文本格式(就像把食谱转换成化学分子式列表或某种奇怪的图表)。
可以这样理解:你拥有一位大语言模型(LM),它就像一位精通烹饪的大厨,因为它阅读过数百万本真实的食谱和烹饪书。但你不是给它看实际的食谱,而是递给它一份用从未见过的语言写成的翻译稿(比如"ONNX 转文本”或“推导树”)。
为了让这位大厨理解这种新语言,你必须花费数周时间对其进行微调—— essentially 相当于从头开始重新教育它。这既缓慢又昂贵,完全违背了拥有一个快速“口味预测器”的初衷。
新想法:直接展示真实食谱
本文作者 Pranav Somu 及其团队有一个简单的洞察:神经网络本身就是用代码编写的。 它们看起来就像 Python 编程脚本。
既然“大厨们”(如 CodeLlama 这样的大语言模型)已经在数万亿行真实计算机代码上接受过训练,它们就已经能够完美地阅读这些食谱了。它们不需要被重新教育。
解决方案(COLE):
与其将食谱翻译成奇怪的格式,他们直接将原始 Python 代码输入到预训练好的 AI 中。
- 无需微调:他们直接使用“现成”的 AI(保持冻结状态)。这就像雇佣了一位已经懂得如何阅读你特定食谱书的大厨,无需参加任何培训研讨会。
- 嵌入(Embedding):AI 读取代码并将其转化为一个数学“指纹”(即嵌入),该指纹捕捉了食谱的精髓。
- 预测器:一个小型、简单的计算器(回归头)查看该指纹,并预测该架构的性能表现。
他们的发现
该团队使用两个不同的“食谱书”(搜索空间)测试了这一想法,并发现了一些令人惊讶的结果:
- 原始代码胜出:当他们向 AI 提供实际的 Python 代码时,其性能预测效果远好于提供那些奇怪的、经过翻译的文本格式。这就像大厨说:“我理解真实的食谱;你不需要把它翻译成化学分子式给我看。”
- 无需训练:他们证明了无需花费数周时间对 AI 进行微调。“现成”的模型立即可用且效果出色。
- 更快的搜索:当他们使用这种方法(配合名为 BANANAS 的算法)搜索最佳 AI 架构时,发现最佳设计的速度快得多。
- 对于一项任务(CIFAR-100),他们仅用比旧方法少 34% 的计算机评估次数,就达到了前 1% 的最佳可能设计。这就像通过品尝 66 款蛋糕而不是 100 款,就找到了最佳蛋糕食谱。
为什么这很重要
这种方法就像给搜索引擎配备了一个通用翻译器。因为每个神经网络都可以写成代码,而代码是这些 AI 模型已经流利掌握的通用语言,所以这种方法几乎适用于任何类型的架构,无需进行定制工程。
简而言之:作者没有强迫一个聪明的 AI 去学习一种新的、奇怪的语言来理解神经网络,而是直接用它已经掌握的语言与它交流:代码。这节省了时间、金钱,并取得了更好的结果。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。