多模态大模型数据处理策略总结:兼看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之后,还是有一定提升的。

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

数据加工在多模态模型训练中扮演着重要角色,对模型的鲁棒性和性能至关重要,关于多模态模型的处理,可以看看最近的工作《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增强不同编程语言之间的翻译效果,一个是关于多模态的数据处理的一些维度和思路。

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

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

  • 17
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值