选择性检索增强代码补全技术解析 📅 发布时间:2026/7/9 15:17:11 👁️ 浏览次数: 通过选择性检索增强仓库级代码补全大型代码语言模型在补全任意程序函数代码方面表现出色但面对大型软件开发项目时正确的代码补全可能依赖于代码仓库中其他地方定义的API调用或函数。检索增强生成通过从仓库中获取相关上下文来解决此问题从而丰富模型的理解并改善其输出。但执行检索需要时间并会减慢生成速度它总是最佳选择吗在今年的国际机器学习会议上发表的一篇论文中我们研究了这个问题并发现实际上80%的情况下检索并没有提高代码生成的质量。方法概述为了解决这种低效问题我们微调了一个大型语言模型以确定检索是否可能有所帮助并根据答案输出两个特殊令牌中的一个。为了进行微调我们使用了一个通过以下方式构建的数据集从开源许可证的仓库中采样代码随机掩码代码行并从仓库的其他地方检索相关代码。然后我们比较了大型语言模型在有和没有附加上下文的情况下对掩码代码的重建效果。随后根据检索是否改善了生成效果来为示例打标。在实验中我们发现在代码补全任务上在我们的数据集上微调的代码大型语言模型其表现甚至优于总是执行检索的模型——但由于选择性检索推理速度提高了70%。在论文中我们还报告了大量实验旨在证明我们的方法能够很好地推广到不同的模型和不同的代码补全任务。技术细节创建我们数据集的所有步骤——采样和掩码代码、检索相关代码、以及在有/无检索上下文的情况下进行代码生成——都可以自动化这使得我们的方法是自监督的它不需要人工标注并且可以扩展到任意大的数据集规模。我们试验了多种从仓库检索上下文信息的方法包括使用基于Transformer的语义嵌入来匹配代码序列的UniXCoder以及使用n-gram数据、语法树和代码流语义的CodeBLEU。然而两者都没有比更高效的Jaccard相似度两个符号序列的交集与并集之比表现得更好。因此在我们的大多数实验中我们使用Jaccard相似度进行检索。我们假设使用结构感知分块而不是固定行分块的语义检索可以获得更好的性能。我们将此留作未来的工作。对于模型微调我们使用了“中间填充”机制即掩码代码从代码序列中切出前面和后面的部分用特殊令牌标识。训练目标由输入字符串组成掩码代码附加在字符串末尾同样用特殊令牌标识。这使得模型能够利用掩码代码前后的上下文信息研究表明这比训练模型在前后的部分之间插入生成的代码能产生更好的结果。在微调过程中我们有两个训练目标正确重建缺失的代码以及准确评估检索到的信息何时有助于重建。准确性与延迟评估与现有模型如StarCoder相比我们的方法称为Repoformer在多个基准测试包括RepoEval和针对长格式代码补全的新基准CrossCodeEval上提高了准确性并减少了推理延迟。我们通过一个现实的“在线服务”场景来说明Repoformer降低延迟的能力。我们假设工作仓库已被索引。给定一个包含当前文件的代码补全请求系统同时启动三个进程使用Repoformer做出检索决策使用代码大型语言模型生成没有跨文件上下文的代码补全检索跨文件上下文并使用它生成代码补全。在一系列固定的选择阈值下Repoformer的选择性检索能够同时提高准确性和推理速度。这种性能在广泛的阈值设置下也保持稳定。更有趣的是Repoformer能够作为一个即插即用的策略模型减少作为检索增强生成中生成模型的各种强大代码大型语言模型的推理延迟。凭借超过85%的检索决策准确率Repoformer确保仅在检索增加价值时才使用上下文检索。进一步的分析表明所提出的策略提高了Repoformer对检索的鲁棒性减少了有害检索并增加了通过检索改进的实例数量。FINISHED更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手或者 我的个人博客 https://blog.qife122.com/对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享
【Linux入门篇】Linux运维必学:Vim核心操作详解,告别编辑器依赖 🍃 予枫:个人主页📚 个人专栏: 《Java 从入门到起飞》《读研码农的干货日常》💻 Debug 这个世界,Return 更好的自己! 引言 作为程序员,我们每天和编辑器打交道的时间,不亚于和咖啡相… 2026/7/8 13:43:58
专注时钟:在线番茄工作法工具,重塑高效工作流 在数字时代,保持高度专注已成为稀缺而珍贵的“超能力”。面对无处不在的干扰,如何有效管理时间、提升工作效率?我们为您介绍一款基于经典番茄工作法设计的在线工具——专注时钟,帮助您在浏览器中轻松实现高效、可持续的工作节奏。… 2026/7/8 14:34:57
CANN多模态引擎:打通文本-图像-音频的AIGC推理新范式 cann组织链接:https://atomgit.com/cann ops-nn仓库链接:https://atomgit.com/cann/ops-nn 当用户输入“生成一段海浪声伴随日落海滩的4K视频”,当医疗系统要求“根据CT影像和医生笔记生成3D病灶标注”——多模态AIGC正从“单点生成”迈向“… 2026/5/17 2:49:34
【Springboot毕设全套源码+文档】基于SpringBoot的水族馆商品销售与经营管理系统(丰富项目+远程调试+讲解+定制) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… 2026/7/9 15:15:05
工厂研发试制总打乱生产?AIPS用“模拟计划”破局 引言:创新与交付的永恒矛盾 在制造业,尤其是涉及非标定制、新品试制的工厂里,一个经典的“左右互搏”难题长期存在:研发部门要创新、要试制新产品,而生产部门要保交付、要稳产能。 研发拿着一个新零件或一条试制线需求… 2026/7/9 15:15:05
C++与GPU交互优化:提升图形渲染效率的核心策略 1. 项目概述:为什么C与GPU交互是图形渲染的命门?如果你正在用C写图形程序,无论是游戏引擎、CAD软件还是数据可视化工具,大概率都遇到过这样的场景:场景稍微复杂一点,帧率就开始“跳水”,CPU明明… 2026/7/9 15:13:03
3ds Max 插件开发对比:MAXScript vs Python API 在 2024 年的 3 大差异 3ds Max 插件开发深度对比:MAXScript与Python API在2024年的技术决策指南1. 技术架构与开发范式差异MAXScript作为Autodesk官方开发的专用脚本语言,其核心优势在于与3ds Max的深度集成。最新版本中,MAXScript的即时编译速度提升了40%… 2026/7/9 15:13:03
智体技能评估与演化:框架与基准 26年6月来自Rutgers大学和北卡大学(夏洛特分校)的论文“Agent Skill Evaluation and Evolution: Frameworks and Benchmarks”。 智体(Agent)能力的提升彻底改变了智体系统的构建、评估与部署方式。随着技能库规模的不断扩大&… 2026/7/9 15:13:03
如何快速下载B站视频:BilibiliDown全平台使用终极指南 如何快速下载B站视频:BilibiliDown全平台使用终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/b… 2026/7/9 15:09:00
机器视觉与PLC集成:轮毂缺陷检测与字符识别误差控制在0.2mm内 机器视觉与PLC集成:轮毂缺陷检测与字符识别误差控制在0.2mm内的技术实现轮毂作为汽车关键零部件,其表面质量直接影响行车安全与美观。传统人工检测效率低且易漏检,而采用机器视觉与PLC集成方案可实现微米级精度检测。本文将深入解析高精度视觉… 2026/7/9 0:01:04
GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比 GBase 8a与MySQL 8.0:ALTER TABLE语法差异深度解析与实战指南1. 两种数据库的ALTER TABLE能力全景对比在数据库架构设计和运维过程中,表结构变更(DDL操作)是不可避免的需求。GBase 8a作为国产分析型数据库代表,与开源M… 2026/7/9 0:03:06
【大数据毕业设计】基于多源旅游数据的景区热度分析与推荐系统的设计与实现 基于 Django 的旅游偏好挖掘与景区推荐系统(源码+文档+远程调试,全bao定制等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… 2026/7/9 0:05:09
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/8 20:15:17
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/8 14:25:08