What a diff makes: automating code migration with large language models
一、文章主要内容总结本文聚焦大型语言模型(LLMs)在代码迁移中的应用,核心目标是解决依赖库版本更新(主版本/次版本语义变更)导致的项目兼容性问题。通过将代码差异文件(diffs)与LLMs结合,提出了一种零样本迁移方法,并开发了开源Python工具包AIMIGRATE,同时提供了相关数据集以支持该领域进一步研究。核心研究内容:问题背景:软件依赖库频繁更新易导致项目兼容性问题,现有解决方案或局限于特定库/语言,或难以满足小型项目需求,且未被现有基准测试覆盖。关键思路:利用diffs的特性(压缩代码变更、聚焦核心修改),结合LLMs的大上下文窗口(如GPT-4o的128k tokens),提升代码迁移的准确性和效率。实验设计:开展diff理解测试,验证LLMs对diffs的理解能力是否接近对完整代码的理解;选取三个跨领域案例(疾病传播模型TYPHOIDSIM、海洋粒子追踪工具PARCELS、LLM应用框架LANGCHAIN),对比三种迁移策略(黑盒模式、含目标库代码、含diffs)的性能;从测试通过率、行级匹配(召回率/精确率)、代码正确性三个维度评估效果。核心结果:含diffs的上下文在多数场景下优于原生LLMs,部分情况表现超过直接使用完整代码;