【极客技术】矩阵乘法突破可能会带来更快、更高效的人工智能模型。

计算机科学家们发现了一种新的方法,可以通过消除先前未知的低效性,比以往更快地相乘大型矩阵,Quanta Magazine 报道。这可能最终加速像 ChatGPT 这样的人工智能模型,后者在功能上严重依赖矩阵相乘。近期发表的两篇论文提出的发现被报道为十多年来矩阵相乘效率方面的最大改进。

将两个矩形数字数组相乘,即矩阵相乘,在当今的人工智能模型中起着至关重要的作用,包括语音和图像识别、来自各大供应商的聊天机器人、人工智能图像生成器以及像 Sora 这样的视频合成模型。除了人工智能,矩阵数学对于现代计算非常重要(例如图像处理和数据压缩),即使在效率方面略微提高也可能带来计算和功耗的节省。

图形处理单元(GPU)在处理矩阵乘法任务方面表现出色,因为它们能够同时处理多个计算。它们将大型矩阵问题分解为较小的部分,并使用算法同时解决这些问题。

完善该算法一直是过去一个世纪以来矩阵乘法效率突破的关键,甚至在计算机出现之前就已经如此。在2022年10月,我们报道了由 Google DeepMind 的一种人工智能模型 AlphaTensor 发现的一种新技术,重点是针对特定矩阵大小(例如4x4矩阵)的实际算法改进。

相比之下,清华大学的段然、周仁飞,加州大学伯克利分校的吴宏勋,以及麻省理工学院的弗吉尼亚·瓦西莉耶夫斯卡·威廉姆斯、徐印展和徐子轩(在第二篇论文中),进行的新研究旨在通过降低复杂度指数ω,实现在所有矩阵大小上的广泛效率提升来寻求理论上的改进。与AlphaTensor 等立即找到的实际解决方案不同,新技术着眼于基础性改进,可以在更广泛的范围内转变矩阵乘法的效率。

接近理想值

传统的方法将两个n×n矩阵相乘需要n³次独立的乘法运算。然而,这种新技术改进了 Volker Strassen 在1986年提出的“激光法”,降低了指数的上限(记为前面提到的ω),使其接近理想值2,这代表了理论上所需的最小操作次数。

传统的方法将两个充满数字的网格相乘可能需要对一个3x3网格进行高达27次的数学计算。但是通过这些进展,这一过程被大幅加快,通过显著减少所需的乘法步骤。这一努力将操作最小化到略高于网格一边平方的两倍,并由一个因子2.371552调整。这是一件重要的事情,因为它几乎实现了将正方形的尺寸加倍的最佳效率,这是我们所能希望的最快速的方法。

以下是事件的简要回顾。在2020年,Josh Alman 和 Williams 通过在约2.3728596处建立了对ω的新上限,引入了矩阵乘法效率方面的重大改进。到了2023年11月,段然和周仁飞揭示了一种解决“激光法”中的低效率问题的方法,将ω的新上限设置为约2.371866。这一成就标志着自2010年以来该领域取得的最重大进展。但就在两个月后,Williams 及其团队发表了第二篇论文,详细介绍了减少ω上限至2.371552的优化方法。

这项2023年的突破源自对“激光法”中的“隐藏损失”的发现,即有用的数据块被无意中丢弃。在矩阵乘法的背景下,“块”指的是将大矩阵分割为更小部分以便更容易处理的片段,“块标记”是对这些片段进行分类以确定哪些保留、哪些丢弃的技术,优化乘法过程以提高速度和效率。通过修改激光法标记块的方式,研究人员能够显著减少浪费并提高效率。

尽管乍一看,降低ω常数可能看起来微不足道——将2020年的记录值降低了0.0013076,但段然、周仁飞和Williams 的累积工作代表了自2010年以来该领域观察到的最重大进展。

“这是一项重大的技术突破,”哈佛大学理论计算机科学家 William Kuszmaul 在 Quanta Magazine 的报道中如是说。他表示,“这是我们在矩阵乘法领域见到的十多年来最大的改进。”

虽然预计会有进一步的进展,但目前方法存在一定的局限性。研究人员认为,对问题的更深入理解将会导致开发出更好的算法。正如周仁飞在 Quanta 报告中所说,“人们仍处于对这个古老问题的理解的早期阶段。”

这些技术进展在实际应用中有着广泛的影响。对于AI模型而言,矩阵运算步骤的减少可能会转化为更快的训练时间和更高效的任务执行。这可能会使得更复杂的模型能够更快地进行训练,潜在地推动AI能力的进步,以及更复杂的AI应用的开发。此外,效率的提升可能通过降低所需的计算能力和能源消耗,使得AI技术更易获得,也将减少AI对环境的影响。

对AI模型速度的具体影响取决于AI系统的具体架构以及其任务对矩阵乘法的依赖程度。算法效率方面的进展通常需要与硬件优化相结合,以充分实现潜在的速度提升。但随着算法技术的改进不断积累,随着时间的推移,AI将变得更快。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 话管理: SQLAlchemy 使用话(Session)来管理对象的持久化状态。 话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值