多模态大模型数据处理策略总结:兼看RAG增强编程语言翻译任务的简单方案

我们来继续看看两个话题:

一个是融合RAG增强不同编程语言之间的翻译效果,关于代码之间翻译的进展,刚好社区有人在提,所以特此来说说,流程很类似,也没太多新意,有点套领域的感觉。但可以看看在这个任务上,那种嵌入模型好一些,以及都有哪些好的代码模型效果更佳

一个是关于多模态的数据处理的一些维度和思路,这些在多模态领域的模型建模中十分重要,可以看看一些具体的总结。

供大家一起参考并思考。

一、融合RAG增强不同编程语言之间的翻译效果

可以看看,主要是利用检索增强大模型的代码翻译能力:《Enhancing Code Translation in Language Models with Few-Shot Learning via Retrieval-Augmented Generation》:https://arxiv.org/pdf/2407.19619

这个工作很有趣,介绍了一种通过检索增强生成(RAG)技术来提升代码翻译质量的新方法。该方法利用现有的代码翻译库,动态检索与新代码段最相关的示例,以指导模型进行翻译

该方法核心在于维护一个代码翻译示例的存储库,并根据输入的代码段动态检索最相关的示例。通过为模型提供多个上下文示例,RAG有助于更深入地理解翻译任务,从而生成更准确和可靠的代码。为此,使用了一种嵌入模型,该模型将代码片段转换为捕获其语义含义的数值向量。

在实验分析上,使用各种开放语言模型进行实验,包括Starcoder、Llama3-70B Instruct、CodeLlama-34B Instruct、Granite-34B Code Instruct、Mistral 8x22B和 Codestral,以及 GPT-3.5和 GPT-4o等商业模型,并在公开可用的Fortran-C++ 翻译数据集上进行了评估。

由于涉及到RAG检索,因此评估了不同样本数量(1、2、3)和各种嵌入模型的性能,如Nomic-Embed、Starencoder和CodeBERT。

1、具体实现架构

该任务实现从Fortran到C++的自动化代码翻译的准确性和上下文理解,如图1所示:

2、使用数据

1)Numerical Recipes Dataset:该数据集包含Fortran和C++代码片段的配对数据。为确保质量,标准化了代码风格,去除注释,处理空白和特殊字符。这个数据集的一个缺点是它依赖于特定函数库,这可能限制了其普遍适用性。该数据集包含298对Fortran-C++对。

2)HPC Fortran2CPP Dataset:数据集包含全面的Fortran到C++的翻译对,并从NASParallel Benchmarks(NPB)、Poly hedral Benchmark(PolyBench)和DataRaceBench(DRB)存储库中精心策划。

在处理上,先标准化代码风格,并通过相似性测试进行了额外的校准,以确保语义保真度,该数据集包含315对Fortran-C++对。

3)Stack-V2 Dataset:StackV2数据集是从GitHub上的大量存储库中收集的代码样本的综合集合,重点关注高性能计算和各种计算问题。该数据集包括大约五十万个Fortran代码片段,通过选择长度在1000到10000字节之间的文件,从这个数据集中采样了500个Fortran示例,优先选择星标和分叉事件计数最高的存储库,以确保高质量和多样化的样本。

由于Stack-V2没有Fortran-C++对,提取了包含元数据、代码和注释的文件。然后利用Llama3-70BInstruct模型提取可执行的Fortran代码,并丢弃其他元数据。

3、RAG过程

在嵌入生成和示例检索方面,为每个Fortran代码片段生成嵌入,使用各种嵌入模型,如 Nomic-Embed、Starencoder和CodeBERT来生成。

作为对比:

在少样本学习与检索增强生成方面,直接将检索到的结果作为fewshot送入模型:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

看下不同模型的效果,通过加入rag之后,还是有一定提升的。

二、关于多模态的数据处理的一些维度和思路</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值