AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


多模态大模型数据处理策略总结:兼看RAG增强编程语言翻译任务的简单方案
发布日期:2024-07-31 11:49:46 浏览次数: 1670


今天是2024年7月31日,星期三,北京,晴。

今天是2024年7月份的最后一天,时间过的真的太快了!

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

一个是融合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之后,还是有一定提升的。

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

数据加工在多模态模型训练中扮演着重要角色,对模型的鲁棒性和性能至关重要,关于多模态模型的处理,可以看看最近的工作《Data Processing Techniques for Modern Multimodal Models》:https://arxiv.org/pdf/2407.19180

文章综述了在多模态模型训练中常用的数据加工技术,并将这些技术归为四类:数据质量、数据量、数据分布和数据安全

其中:

1、数据质量

数据质量一直是模型训练中的关键因素。为了提高单模态数据的质量,已经做出了重大努力,例如 WebText。在多模态设置中,不仅要提高每个单独模态的质量,还要提高图像和文本配对之间的对齐度。提高训练数据质量的大多数技术可以分为两类:数据过滤和数据增强

1)数据过滤

质量过滤侧重于单个数据样本,根据特定属性应用标准进行过滤。这可以单独或同时用于文本和图像数据。

图像属性过滤器:图像分辨率是质量的关键方面;分辨率较低的图像通常质量较低,信息也较少。分辨率过滤器在MLLM和基于扩散的模型中广泛使用。

例如,Stable Diffusion 和 EMU 等著名工作使用分辨率过滤器处理训练数据集,只保留超过特定分辨率阈值的图像。同样,BLIP应用分辨率过滤器来排除低质量图像。长宽比是另一个重要因素。长宽比极端的图像很难处理成训练功能通常要求的正方形形状。Deepfloyd 和 EMU 根据长宽比过滤他们的训练图像。SDXL 也强调了长宽比对提高模型性能的重要性。

高级过滤器:除了基于图像的固有属性的过滤器外,还可以根据抽象和高级概念定义过滤器。

标注人员引导的过滤器:一些模型使用专家注释者根据美学质量过滤数据。例如,EMU依赖具有摄影专业知识的注释者选择最高质量的图像,然后用于微调模型。这导致生成的图像在视觉吸引力和文本忠实度方面显著受到偏好。

模型引导的过滤器:其他作品,如 Stable Diffusion1.5 和 Stable Diffusion2.1,使用较小的模型对每个图像进行评分,并根据这些评分进行过滤。这些评分可以代表美学质量或水印强度。

来源过滤器:数据来源可以表明数据的质量。例如,来自社交平台(例如 Instagram)的图像通常带有用户反馈,如点赞或转发,这可以从用户的角度表明图像的质量。EMU 使用图像上的点赞数量作为过滤器来选择高质量的图像。

2)数据增强

随着视觉语言模型的进步,使用早期模型版本或封闭源API(如 ChatGPT)生成高质量的文本和图像数据已成为可能。这些生成的数据可以用于进一步训练和改进模型。这个领域的许多工作集中在为图像生成高质量的文本字幕。

例如,BLIP 使用从早期 BLIP 模型检查点初始化的字幕模型为网络图像生成字幕。同样,MiniGPT-4 利用早期检查点为微调数据集生成描述,由ChatGPT-4进一步优化这些字幕。在LLaVA-1.5的训练中,使用了大规模GPT标注数据集,如LAION-GPT-V 和 ShareGPT-4V 来提升性能。

2、数据分布

分布平衡侧重于根据预定义的标准产生一个平衡且多样化的数据集。数据采样在多模态数据处理中广泛使用。虽然通常用于过滤更高质量的数据,它也有助于平衡训练数据的分布。文本和图像是视觉语言模型的两个主要数据源,对应于过滤和平衡的两个维度。

以图像为导向的平衡:在EMU模型中,通过使用图像分类模型利用不同领域的视觉概念来平衡图像。图像去重是数据处理中的另一个常见做法。在MMC4数据集中,使用像phash这样的模型来识别视觉上相似的图像,以去除重复项。MMC4数据集在开发如OpenFlamingo等视觉语言模型时很受欢迎。

以文本为导向的平衡:以文本为导向的数据平衡在 MLLMs 中更为常见。在 LLaVA 中,根据名词短语的频率对图像字幕进行采样。目标是排除罕见的名词短语,并减少过于常见的名词短语。为了使文本字幕被包含,频率必须至少为三次。

与此同时,如果一个名词短语出现得过于频繁(超过 100 次),则只随机选择包含该短语的 100 个字幕。

除了采样,LLaVA模型还使用GPT-4和ChatGPT从COCO图像生成深入和多样化的对话。

在创建CLIP模型的预训练数据集时也发现了类似的处理方法。为了确保涵盖广泛的视觉概念,作者使用Wikipedia中经常出现的词汇构建基础查询。这些查询过滤文本字幕,确保只有包含查询词之一的字幕被包含在数据集中。

3、数据安全

数据安全在开发道德和值得信赖的模型中至关重要。数据安全包括两个问题:数据毒性和社会偏见及不公平性。虽然没有统一的数据毒性定义,但通常包括暴力、色情、冒犯性和不道德的内容,也称为不适合工作场所(NSFW)

有偏见和不公平的数据更为微妙,指的是数据中的社会偏见或刻板印象。

偏见和公平性的定义比 NSFW 数据更为模糊,因为它通常取决于特定的下游任务和文化背景

其中:

有毒数据:对于多模态数据集,有毒数据可以出现在图像和文本内容中。例如LDNOOBW这样的词表被创建用来过滤有害文本。对于图像安全,CLIP嵌入通常用于将图像与有毒文本列表进行比较,相似度高的图像被标记为不安全。

例如,在LAION-5B数据集中,作者使用基于CLIP嵌入的Q16分类器和他们自己的专门的色情和性内容分类器来过滤不适当的图像。Stable Diffusion 1.5 和 2.1 使用这个带有 NSFW 过滤器的 LAION 数据集。

社会偏见和公平性:在 MLLMs 中解决偏见和公平性是一个新兴的研究领域。已经有一些工作来分析和评估语言模型中的社会偏见,并且类似的技术可以应用于处理多模态训练数据中的文本。对抗性数据增强(CAD)是一种常用的技术,用于平衡文本数据中的代表性偏见。

CAD也可以被用来通过翻转现有数据中的性别代词来平衡偏见,从而生成新的样本。在扩散模型中,社会偏见和刻板印象已被认识到为问题,但大多数去偏见工作集中在模型训练而不是数据加工。

当然,目前已经有一些对应方案,可以从以下表格中找到对应结果:

表I提供了MLLMs和扩散模型的总结,清晰地比较了不同类型模型中使用的技术。根据表I,可以看到的一些结论:

  • 扩散模型更侧重于图像数据质量,如美学和分辨率,而MLLMs更侧重于文本数据质量及其与图像的对齐。

  • 扩散模型通常需要大规模数据,如LAION-5B,在数据加工过程中应用数据安全过滤器以去除有毒数据。MLLMs经常使用策划数据集,这些数据集规模较小,并且在数据加工中需要较少的额外安全处理。这是因为MLLMs内部的LLM模型已经用大规模文本数据进行了训练。因此,MLLMs的大部分工作只是正确地将图像投影到文本标记中。

  • 无论是扩散模型还是MLLMs,都利用分布平衡技术来获取在文本或图像主题方面具有代表性和多样性的数据集。

  • 数据增强已成为生成高质量数据以进行模型训练的流行技术,特别是对于MLLMs。由于MLLMs利用现有的LLM框架,如LLaMA,该框架具备强大的文本理解和生成能力,这些模型不需要高度多样化的文本集。然而,为了使模型理解文本和图像之间的关联,文本与图像的良好对齐至关重要。

  • 文本对齐是MLLM训练中数据质量的核心方面。在像MiniGPT-4和LLaVA-next这样的模型训练中,由LLM或早期检查点生成的合成数据比未处理的原始数据具有更好的文本对齐。对于扩散模型,使用合成图像-文本数据进行训练较少见。

  • 在扩散模型和MLLMs使用的数据加工技术中,有一种趋势是增加使用基于模型的过滤器,如使用ChatGPT或NSFW分类器来改进训练数据。然而,标注人员仍被用作数据质量的最终裁判。特别是在微调阶段,需要极高质量的数据,标注人员可以显著提高数据质量。

总结

本文主要看了看两个问题,一个是融合RAG增强不同编程语言之间的翻译效果,一个是关于多模态的数据处理的一些维度和思路。

里面的一些结论性的东西都很有趣,大家可以多品品,会有收获。



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询