当前位置: 首页 > news >正文

CRINN:通过强化学习自动优化近似近邻算法

概述

本文的重点是优化高维向量空间中的近似近邻搜索(ANNS)。

近似近邻搜索是一种以略微牺牲搜索精度为代价来显著提高搜索速度的技术,最近已成为检索增强生成(RAG)和基于代理的 LLM 应用基础技术的组成部分。

传统的优化方法是由人工专家进行剖析、分析缓存缺失、调整数据结构并反复手动调整参数。

然而,这种方法既专业又耗费人力,而且在跟上硬件和应用环境的发展方面存在局限性。

因此,作者提出了一种新的优化框架–CRINN,它结合了 LLM 和强化学习。

CRINN 将代码执行速度视为一种奖励,并通过基于对比学习的强化学习自动生成高效的 ANNS 代码。

这样就能在不依赖人工调整的情况下生成连续改进的实现,从而在检索性能方面实现新的突破。

建议的方法

CRINN 将 ANNS 视为一个具有强化学习功能的优化问题,并将强化学习与对比学习相结合,以提高性能。
具体来说,该设计将现有的实现代码及其执行速度纳入提示,并允许 LLM 对某种实现更快的原因进行对比分析。

这样,模型就能学习到提高速度的模式,并生成新的、更好的代码。
生成的代码会被执行,并根据速度和可重复性给予奖励。

奖励用于执行基于组相对策略优化(GRPO)的强化学习,并按顺序更新模型。

奖励设计还侧重于每秒查询次数(QPS)和召回率之间的权衡,召回率范围[0.85,0.95]内的曲线下面积被用作标量奖励。

此外,以现有的名为 GLASS 的 ANNS 库为初始基础,对每个模块进行了顺序优化:图构建、探索和完善。

这种结构化方法将传统的专家协调自动化,并能开发出高效的搜索算法。

实验

实验测试了 CRINN 在 SIFT-128、GIST-960、MNIST-784、GloVe-25、GloVe-100 和 NYTimes-256 六个基准数据集上的性能。

我们选择了具有代表性的开源 ANNS 实现(如 ParlayANN、GLASS、NNDescent、PyNNDescent、Vearch 和 Voyager)进行比较。只使用 SIFT-128(欧氏距离)进行训练,然后根据其他数据集评估泛化性能。
结果,CRINN 在 MNIST-784 和 GIST-960 数据集上的处理速度提高了 85%,图构建模块的改进尤为显著。

另一方面,在一些数据集(如 NYTimes-256)上也观察到了性能下降,这表明优化可能会受到距离规模和数据特征的限制。
此外,增量模块优化的有效性也得到了证明,证实了底层 GLASS 持续改进的潜力。

总之,CRINN 集速度和准确性于一身,优于现有方法,为使用强化学习进行代码优化提供了一个新方向。

http://www.cnnetsun.cn/news/140761.html

相关文章:

  • vue和springboot框架开发的校园商店零售管理系统_pt87nuk3
  • vue和springboot框架开发的校园智能AI问答技术的快递物流管理系统_5kf8to85
  • 文件句柄数超限
  • 如何用 Oracle 的账号和权限来连接 ZooKeeper 的客户端认证、ACL 绑定到身份 2 个概念
  • 艾宝体案例 | 以人为本、灵活赋能:Spectris携手KnowBe4打造高效安全意识与合规培训体系
  • 面向2025:融合AI安全的网络安全学习路线与技能清单
  • 迎战2026:网络安全从业者必须掌握的核心技能与实战路线图
  • python-uniapp微信小程序的字典词韵查询系统的设计与实现_79zfkl8b
  • 7个免费网站帮你降低论文AI率,通过万方AIGC查重,亲测有效
  • 【Java毕设全套源码+文档】基于springboot的拍卖管理系统设计与实现(丰富项目+远程调试+讲解+定制)
  • 基于开源AI智能名片链动2+1模式多商户商城小程序的销售工作性质与能力要求研究
  • 科研人都懂的绘图痛:你是否还在为这些问题熬夜?
  • 传统vs智能:编辑分配效率对比实验报告
  • Watt Toolkit实战:构建电商价格监控系统
  • 技术演进中的开发沉思-258 Ajax:自定义事件
  • 幽冥大陆(五十三)人工智能开发语言选型指南——东方仙盟筑基期
  • 小程序python-uniapp巴山大峡谷景区酒店预定系统的设计与实现_98434fj3
  • 【Java毕设源码分享】基于springboot+vue的易家宜超市云购物系统设计与实现(程序+文档+代码讲解+一条龙定制)
  • 用AI一键识别网站技术栈:Wappalyzer的智能分析
  • 【Java毕设源码分享】基于springboot+vue的苹果批发销售管理平台设计与实现(程序+文档+代码讲解+一条龙定制)
  • 【Java毕设源码分享】基于springboot+vue的街道办管理系统设计与实现(程序+文档+代码讲解+一条龙定制)
  • 代码随想录算法训练营第三十八天:最长公共子序列,不相交的线,最大子序和,判断子序列
  • 电脑与手机互传工具--强大的Coolmuster Android Assistant
  • Nacos注册/配置中心
  • Vue-cli如何集成WebUploader完成百万文件分块上传?
  • HTML如何设计JQuery支持大文件上传的暂停与继续功能?
  • 35岁程序员失业,只能开滴滴?这五个大模型高价值转型方向,让你身价翻倍!
  • CSS margin(外边距)
  • 【计算机毕业设计案例】基于java+springboot+vue的流浪动物救助领养微信小程序基于springboot+微信小程序的宠物领养系统小程序(程序+文档+讲解+定制)
  • 宿主机net.ipv4.ip_forward设置 0 Docker网络直接“罢工”!