多模态生成模型-LLaVa-Chef(2024)

摘要

在全球化背景下的在线食谱分享领域迅速发展的大潮中,对于理解和生成食物食谱的研究出现了显著的增长。近期,大型语言模型(LLMs)如GPT-2 [40] 和 LLaVA [32] 的进展,为自然语言处理(NLP)方法深入探索与食物相关的各项任务开辟了新路径,这些任务包括但不限于食材识别和全面食谱生成。尽管大型语言模型(LLMs)在性能和多模态适应性方面表现出色,但针对特定领域的训练对于它们的有效应用仍然是至关重要的。本研究评估了现有的大型语言模型(LLMs)在食谱生成方面的表现,并提出了一种名为LLaVA-Chef的新模型,该模型通过多阶段方法在精心筛选的多样化食谱提示数据集上进行训练。

  • 我们优化了视觉食物图像嵌入(embedding)到语言空间的映射。
  • 我们通过在相关食谱数据上微调LLaVA,使其适应食物领域。
  • 我们使用多样化的提示(diverse prompt)来提升模型对食谱的理解。
  • 我们通过使用自定义损失函数对模型进行惩罚,改善了生成食谱的语言质量。

LLaVA-Chef在预训练的大型语言模型(LLMs)和先前的工作上展示了显著的改进。通过详细的质量分析发现,与现有方法相比,LLaVA-Chef能够生成更详细的食谱,并且对食材的提及更为精确。

1. 简介

食物在促进健康福祉方面的意义日益增强,因此,理解健康生活方式的食谱已成为一个关键的研究领域。通过在线平台和移动应用程序,食谱数据的近期增长创造了丰富的数据资源,推动研究努力朝着开发人工智能驱动的解决方案的方向发展,这些解决方案包括食物识别、食材建议以及个性化食谱的制定,同时在考虑饮食限制、文化偏好和宗教考量的基础上进行。尽管取得了实质性的进展,但仅从食物名称、图像或食材生成食谱或烹饪步骤仍然是一个重大的挑战。尽管计算机视觉社区已经利用最先进的深度学习技术从图像中提取食材,并且自然语言处理(NLP)应用已经促进了从食物名称或食材生成食谱,但多模态语言-视觉模型的最新进展为通过融合视觉和文本数据来打造可行的现实世界解决方案提供了充满希望的道路。

大型语言模型(LLMs)[20, 22, 41, 47]已经展示出从大量文本甚至多模态数据[25, 28, 32]中快速学习的能力。例如,通过整合从预训练的视觉-语言模型中提取的视觉特征,一些LLMs [5, 28, 32] 显示出在处理视觉-语言任务方面的增强能力,如图像字幕caption生成、视觉问答和视觉推理reasoning。尽管这些模型在通用应用中表现出色,但当它们遇到专业领域时,由于缺乏足够的领域特定训练[26, 34],它们的专长会急剧下降。这种不足通常表现为输出中充满了幻觉、不准确性和重复文本,如图2所示,这是由两个模型生成的食物食谱。

图2:由LLaVA-Chef模型、Chef-Transformer [16](开源食谱生成模型)和LLaVA [26](最佳预训练模型)生成的样本食谱。我们可以看到之前模型存在幻觉、重复测试和不准确的问题。

 

最初的研究专注于使用计算机视觉方法进行食物分类到食材检测[8, 19, 23, 43]。一些研究人员使用文本-视觉模型学习了独特的食物嵌入[35, 43],而其他研究人员则使用图像字幕生成模型生成了食物名称[11]。Chef Transformer [16] 模型接收一系列食材并生成食谱,而 [11, 17, 46] 则从食物图像预测食材作为生成食谱的中间步骤。最近的一项研究 [53] 对 LISA [25] 模型进行了微调,以处理包括食物分类、食谱生成和分割在内的多种食物任务。尽管有各种各样的尝试,但没有一个模型被证明在生成有效食谱方面取得了成功。此外,这些模型大多数缺乏健壮的评估或者没有公开可用。

在本文中,我们通过提出 LLaVA-Chef 来解决现有方法的局限性,LLaVA-Chef 是一个强大的多模态语言和视觉模型,用于学习食物食谱,这是通过精心策划和多样化的提示集来实现的,这些提示集专门针对训练模型处理食物领域任务。我们的模型扩展了 LLaVA [32],它以 Vicuna [12] 作为基础大型语言模型(LLM)和 CLIP [39] 作为视觉编码器。我们模型的架构如图 1 所示。模型将视觉和文本嵌入进行拼接concatenate,并将它们输入到主干大型语言模型(LLM)中以生成所需的输出。

图 1:LLaVA-Chef 的架构及不同的训练阶段(如灰色所示)。模型的输入 𝑋𝑡 、𝑋𝑖𝑛𝑔 和 𝑋𝑖 分别代表食谱标题、食材和图像。𝑌𝑖𝑛𝑠𝑡 代表生成的食谱指导(与真实指导 𝑋𝑖𝑛𝑠𝑡 进行比较以计算损失)。在训练阶段-0(S-0)中,图像到文本映射层被微调。而在其余的训练阶段 S-1、S-2 和 S-3 中,主干 LLM 被微调。给定一个食谱,我们采样一个提示,然后使用 𝑋𝑡 和 𝑋𝑖𝑛𝑔 替换<name>和<ingredirents>。图像 𝑋𝑖 从 CLIP 中提取的视觉特征在语言空间中进行映射,并与语言嵌入拼接后通过主干 LLM。冻结和可训练符号指示哪些层被微调(例如,CLIP 被冻结,而映射层和 LLM 是可训练的)。

遵循 [26] 中的方法,首先我们通过微调映射来改善与食物相关的图像的跨模态表示。接着,模型在独特的提示上进行微调,以减少幻觉并提高食谱文本的质量。在随后的训练阶段中,我们通过引入超过100个独特的提示来生成食谱的不同属性,即标题、食材和烹饪说明,从而提高了模型对食物领域的适应性。最后,我们通过基于文本生成指标的新颖缩放项对模型进行惩罚,最终导致性能的改进。因此,通过在多个阶段逐渐增加提示多样性和任务复杂性的增强,我们的模型系统地掌握了处理广泛食谱的专业技能。我们在 Recipe1M 数据集 [45] 上评估了我们的模型,特别是测试样本中至少包含一个图像的样本。与预训练的 LLMs 相比,我们的模型在大多数指标上始终获得更高的分数。而其他模型无法获得超过 0.1 的 CIDEr 分数,我们的模型则取得了显著的 21 分领先。对生成的食谱进行定性评估,确认了我们的模型的优势。

2. 相关工作

大型基础模型:像 BERT [24] 和 GPT-2 [40] 这样的大型语言模型(LLMs)的出现标志着从文本摘要到推理的文本理解的重大飞跃。这一成功激发了人们对更优秀 LLMs 的探索及其在视觉-语言任务中的应用,包括图像字幕caption生成和视觉问答。在像拥有1750亿参数的GPT-3.5 [7] 这样的大型语言模型(LLMs)成功的基础上,最近出现的一些较小规模的模型,如Mistral [22] 和 Phi-2 [20],在各种语言任务上展示了令人鼓舞的性能,这表明它们在效率和资源使用上可能具有潜在优势。此外,最近的一些专有模型,如GPT-4 [1] 和 BARD [2],由于它们的多模态能力而引起了显著的关注,但它们的专有性质限制了它们的可访问性和计算可行性。

另一方面,开源的多模态大型语言模型(LLMs)[5, 14, 26, 28, 39, 55] 在各种视觉-语言任务中展示了其有效性。这些多模态模型的核心是一个为理解视觉数据而微调的基础LLM。一种常见的方法是使用预训练的视觉-语言编码器(例如,CLIP [39])来提取视觉特征,然后通过映射层[32, 55]或交叉注意力模块[5, 14, 28]将这些特征与语言嵌入相结合。这种方法已经在医学[26, 34]、金融[33, 52]和法律[4, 13]等领域取得了成功的应用。尽管一些研究已经探索将这些模型应用于食物领域[11, 18, 27, 53],但由于训练策略无效或不充分,它们的性能仍然有限。

食谱理解:食物领域的早期研究主要专注于食物图像分类[19, 23]。在此基础上,研究兴趣转向了更复杂的任务,包括食材检测[8, 11, 43]、食谱检索[10, 45, 50]、食材替代建议[27, 37]和自动食谱生成[6, 11, 16, 46, 53]。在食谱生成方面的显著尝试包括 Chef Watson [48] 采用的基于知识表示模式的贝叶斯网络方法。Wang 等人[51]提出了一种从食物图像生成食谱的结构感知生成方法。DoD [43] 探索了通过使用 BLIP-2 [28] 和 Falcon 7B [3] 学习食物名称和食材的细粒度嵌入来进行食物识别的方法。RecipeGPT [18] 利用 GPT-2 [40] 架构,而 RecipeMC [46] 则在 GPT-2 之上采用蒙特卡洛树搜索(Monte Carlo Tree Search)来进行食谱生成。

更近期的工作,如 RecipeGM [42] 和 Chef Transformer [16],专注于从预先指定的食材列表生成食谱。FIRE [11] 利用 BLIP [29] 模型生成食物标题,并使用基于 ViT 的多类分类器提取食材列表,然后使用模型 T5 [41] 生成食谱。FoodLMM [53] 对 LISA [25],一个多模态模型,进行了微调,以处理包括分类、食材检测、分割和食谱生成在内的多样化食物相关任务。虽然 FoodLMM 在多个任务上相比基线模型表现有所提升,但其食谱生成能力仍然是进一步改进的对象。

3. 视觉指令跟随数据

在LLaVA [32] 用于视觉指令调整的成功基础上,我们将其适应于食物食谱生成。食谱包括文本元素(标题 𝑋𝑡、食材 𝑋𝑖𝑛𝑔 和烹饪说明 𝑋𝑖𝑛𝑠𝑡)和视觉信息(食物图像 𝑋𝑖),如图 3 所示。尽管有几项努力尝试从食物图像估计烹饪说明,但与人类相比,没有一项能够生成好的食谱。此外,关于仅从图像、标题、食材或它们的组合生成完整食谱的研究非常匮乏。为了填补这一空白,我们开发了专门设计的指令调整提示,用于预测 𝑌𝑡、𝑌𝑖𝑛𝑔、𝑌𝑖𝑛𝑠𝑡 或它们的组合。我们的方法包括通过部分微调模型来对齐食物图像嵌入与相应的文本属性,然后通过多模态融合对完整模型进行微调,以估计所需的食物属性。

图3:来自Recipe1M数据集的食谱示例。标题表示为𝑋𝑡,图片表示为𝑋𝑖,原料表示为𝑋𝑖𝑛𝑔,烹饪步骤表示为𝑋𝑖𝑛𝑠𝑡。

 

3.1. 食物概念对齐数据 food aception align data

为了将食物图像嵌入与文本嵌入对齐,我们从标题 𝑋𝑡、原料 𝑋𝑖𝑛𝑔 和关联的食物图像 𝑋𝑖 中随机抽取一个问题提示 𝑋𝑝,用于生成烹饪步骤 𝑌𝑖𝑛𝑠𝑡。表1展示了带有占位符的示例提示。提示 𝑋𝑝 包含占位符令牌 <𝑛𝑎𝑚𝑒> 和 <𝑖𝑛𝑔𝑟𝑒𝑑𝑖𝑒𝑛𝑡𝑠>,分别对应于标题 𝑋𝑡 和食材 𝑋𝑖𝑛𝑔。在训练过程中,我们用它们的实际值替换这些占位符,从而得到最终的提示 𝑋𝑞。这个精炼的提示作为模型的查询,如图 1 所示。在整个训练过程中,我们将输入结构化为单轮指令遵循格式,如下例所示:

在训练过程中,优化仅专注于将视觉特征映射到语言嵌入的层。这种针对性的优化旨在细化视觉嵌入并增强它们与食物领域的对齐,最终提高 LLM 在食谱生成方面的性能。

3.2. 视觉指令调整数据 visual instruction tuning data

为了使我们的模型适应食物领域,我们精心策划了多样化的提示,旨在从食物图像和其他文本属性生成食谱的多个文本属性。这些提示有效地利用了 LLM 的多模态文本生成能力(通过多模态的数据来生成文本数据)。具体来说,每个提示都是为从 LLM 中产生特定输出而设计的。例如,一个提示指导模型仅基于图像生成食物名称。另一个提示则要求模型利用食物图像和提供的名称来预测烹饪说明。我们使用了 GPT-3.5 来生成以下目标输出的提示:食物名称(𝑌𝑡)、烹饪说明(𝑌𝑖𝑛𝑠𝑡)和烹饪食材(𝑌𝑖𝑛𝑔)。这些提示的示例在表 1 中呈现。在训练过程中,我们随机选择一个任务,然后选择与所选任务特定的提示。所选提示可能要求从提供的输入预测单个输出(标题、食材或说明)或多个输出。在食谱没有关联图像的情况下,使用空图像。

我们的多阶段微调过程逐步增强了模型对食物食谱的理解。最初(Stage-0),视觉嵌入被投影到语言领域,为后续学习奠定了基础(表1的第一句话:given ....)。Stage-1 专注于食谱理解,通过训练模型根据提供的食物图像、标题和食材生成烹饪说明(表1的第二句话:please ... )。后续的阶段(Stages-2 和 Stage-3)增加了任务复杂性并减少了输入信息,以促进更深层次的食谱知识获取。在烹饪步骤指示任务中,多样化的提示使模型接触到不同的输入模态(仅图像、仅标题、图像-标题和图像-标题-食材),从而增强了食谱生成的鲁棒性。最后,模型还被用于仅从图像预测食谱标题、食材和烹饪说明,这巩固了其从有限的视觉输入推断全面食谱信息的能力。

4. LLaVA-Chef:将LLaVA适应到食物领域

LLaVA-Chef 的性能通过精心设计的分阶段训练策略逐步提高,从而发挥其全部潜力,以下将详细描述。

4.1. Stage 0:食物领域适应

(图/食谱名/食材名都有)

为了弥合视觉和语言模态之间的差距,LLaVA 利用线性层将视觉特征投影到语言空间。在 Stage-0 中,我们专注于使用来自 Recipe1M 数据集[45] 的图像-食谱对来微调映射层。如图 1 所示,食物图像 𝑋𝑖、菜谱名称 𝑋𝑡 和食材名称 𝑋𝑖𝑛𝑔 被输入到模型中,模型被要求生成烹饪说明。通过标准交叉熵损失函数定义的优化来实现映射层的优化,如下所示:

其中,𝑝 (𝑌𝑖𝑛𝑠𝑡 ) 是真实烹饪说明的one hot-vector表示的概率,𝑝 ( ˆ𝑌𝑖𝑛𝑠𝑡 ) 表示模型预测的烹饪说明的概率(多分类对齐的问题)。这种微调旨在优化视觉嵌入与其相应的语言表示之间的对齐,增强模型捕捉与食谱相关的视觉信息细微之处的能力。请注意,这一步微调映射层以更好地理解食物图像。

4.2. Stage1:学习食谱展示语言

(图没有/食谱名/食材名有)

为了训练我们的模型从图像、标题和食材预测烹饪说明,我们整理了一个包含 35 个独特的提示数据集。每个提示都包含特殊令牌token: <name>代表食谱标题, <ingredient>表示列出的食材。在训练过程中,我们随机选择一个提示prompt,然后用食谱的标题和食材替换这些特殊令牌,并微调整个主干 LLM 模型。

这种方法使得模型能够从视觉和文本数据无缝地学习食物领域的嵌入。我们意识到并非所有食谱都可能有相应的图像,因此我们采用了一种处理缺失视觉的方法。当图像不可用时,我们用一个黑色(空)图像作为占位符替换它。这使得模型可以从剩余的文本属性(标题和食材)中学习,即使在没有图像输入的情况下也能估计烹饪说明。模型使用上述方程式 1 中定义的默认交叉熵损失函数进行优化。

4.3. Stage 2:通过提示多样性增强模型适应性

(通过promt三个都可以会没有)

Recipe1M 数据集 [45] 为每个食谱提供了四个属性:图像、标题、食材和烹饪说明。其中,图像提供了视觉信息,后三者作为文本属性。为了多样化我们的训练提示,我们扩展了最初的 35 个提示集,利用 GPT-3.5 生成各种与食谱相关的任务的提示,将总数增加到 102 个提示,其中一些示例在表 1 中展示。这些提示是特定任务的,明确定义了每个预测场景的输入和目标输出。在训练过程中,我们随机选择一个任务(预测什么)和一个相应的提示。我们选择保留交叉熵作为我们的损失函数。这种方法促进了模型的泛化能力,使它能够通过微调从图像、标题或食材预测所需输出(例如,标题、食材或说明),如图 1 所示。为了进一步提高泛化能力,我们采用了最多 50% 的食材在训练过程中从输入中省略的策略。这迫使模型根据剩余信息推断缺失的食材,最终导致所有任务,包括仅从图像或标题生成烹饪说明的性能得到提高。

4.4. 优化食谱输出语言

不可微分的评价标准按照缩放因子加入到其他损失函数中

为了提高语言质量和使预测更接近真实情况,我们在阶段 2 的训练基础上,通过引入额外的惩罚损失来扩展我们的模型训练。这个惩罚损失基于通常用于评估机器翻译和文本摘要任务的 BLEU [36] 和 Rouge [30] 分数。然而,人们不能直接将这些指标作为额外的损失项进行优化,因为它们是非可微分的(例如,它们基于 n-gram 计数)。取而代之的是,我们提出了一种新的形式化方法,我们使用这些分数作为交叉熵损失的乘法或缩放因子。令 𝑌𝑙𝑎𝑏𝑒𝑙 表示真实的食谱,𝑌𝑝𝑟𝑒𝑑 为生成的食谱(注意:𝑙𝑎𝑏𝑒𝑙 可以指任何输入,如标题、图像、食材和/或烹饪说明)。接下来,定义 𝐿𝑏𝑙𝑒𝑢 = 1 − 𝐵𝐿𝐸𝑈 (𝑌𝑙𝑎𝑏𝑒𝑙 , 𝑌𝑝𝑟𝑒𝑑 ) 为 SacreBLEU 分数 [38] 的惩罚,𝐿𝑟𝑜𝑢𝑔𝑒𝐿 = 1 − 𝑟𝑜𝑢𝑔𝑒𝐿(𝑌𝑙𝑎𝑏𝑒𝑙 , 𝑌𝑝𝑟𝑒𝑑 ) 为 Rouge-L [31] 的惩罚。由于更高的分数更好(以 1 为最高分),我们通过减去它们来惩罚。然后,我们将这两个惩罚结合起来形成一个联合缩放惩罚:

接下来,我们将(每个样本的)缩放惩罚 𝐿𝐵𝑅 与交叉熵损失(𝐿𝐶𝐸)相乘,如下所示:

因此 𝐿𝐵𝑅,虽然不可微分,但作为一个(每个样本的)缩放常数,当任何一个指标的值下降时,它都会缩放和惩罚整体损失;最终损失仍然可微分。这种多目标方法有望生成更流畅、更准确、语义上更一致的食谱说明,我们将在接下来的章节中进行探讨。

5. 实验

5.1. 实验准备

数据集:我们利用了 Recipe1M [45],这是一个大规模的食谱数据集,拥有 100 万个食谱和 819,000 张食物图像。每个食谱包括一个标题、一个食材列表和烹饪说明,其中一些样本还附带一个或多个图像。Recipe1M 已经提供了训练、验证和测试的划分。在训练阶段,我们使用了整个训练集,包括 720,639 个食谱(其中 619,508 张图像)。然而,在测试阶段,我们专注于至少包含一张图像的食谱。在清理测试集,去除缺少图像或包含损坏样本的样本后,我们得到了两个精心挑选的测试子集。

  • 𝑡𝑒𝑠𝑡50𝑘:来自 Recipe1M 测试集的所有 50,507 个测试样本,这些样本至少包含一张图像。
  • 𝑡𝑒𝑠𝑡1𝑘:我们又随机选择了另外 1,000 个样本作为 𝑡𝑒𝑠𝑡1𝑘 集,用于详细的定性分析。

指标:为了评估生成的文本质量与真实情况的对比,我们采用了几种图像字幕和语言翻译指标。这些指标包括 BLEU [36],这是一个基于精度的指标,专门为机器翻译设计,Rouge [30],这是一个面向召回的文本摘要指标,METEOR [15] 和 CIDEr [49],这些指标专门为评估图像字幕质量而开发,与人类主观判断有很强的相关性。语言模型不确定性的度量——困惑度 [21] 也被包括在内,以提供有关生成文本流畅性和连贯性的额外见解。

模型训练:我们模型, LLaVa-Chef在NVIDIA RTX A6000中进行四个阶段训练,batch size设置为32。批量大小为32。我们将学习率设置为2e-5,并使用余弦学习调度器,预热比例为0.03。第0、1和2阶段采用了标准的交叉熵损失函数。在第3阶段,损失是基于BLEU(λbleu = 1.01)和Rouge-L(λrougeL = 1)进行放大的。这种多目标方法优先考虑了语言质量,最终在与真实食谱相比时,提高了生成文本的忠实度。我们的模型和数据在https://github.com/mohbattharani/LLaVA-Chef上公开可用。

5.2. LLaVa 微调结果

我们的研究对食谱生成进行了比较,涉及多个高性能的开源通用大型语言模型(LLMs)。我们还评估了Chef Transformer [16](在RecipeNLG数据集[6]上微调的T5 [41]),这是截至2023年12月唯一可用的开源食谱生成模型。在从Recipe1M数据集中抽取的1000个样本测试集(test1k)上进行评估(详细见表2),结果显示LLaVA [32],一个多模态LLM,在所有竞争者中表现最佳,包括Chef Transformer。因此,LLaVA被选中进行进一步分析和微调,以在Recipe1M数据集上提升性能。我们的训练协议采用了多阶段微调方法。最初,在阶段-0,我们对投影层进行了为期两个周期(2 epochs)的微调。随后,在剩下的三个阶段(阶段1-3)中,整个模型在每个阶段都进行了两个周期(2 epoches)的微调。

表2中我们分析当前开源LLMs在食品领域的性能表现出了有趣的结果。在仅文本模型的情况下,Chef-Transformer在BLEU-1和BLEU-2得分上较高,但在SacreBLEU、METEOR和Rouge-L得分上低于LLaMA,这表明在生成质量上可能存在权衡。然而,在比较所有模型时,LLaVA似乎表现更佳。较高的困惑度得分表明,除了LLaMA、MiniGPT-4和LLaVA之外,所有模型在生成高质量语言方面都存在困难,可能会产生幻觉文本或不完整的句子。尽管Mistral在标准基准测试中表现令人印象深刻,但其较高的困惑度得分以及其他指标低于Phi-2的得分,让人对其在这一特定情境下的有效性产生疑问。InstructBLIP [14]生成的食谱更像是标题而不是烹饪步骤。MiniGPT-4 [55]的训练数据包含了与烹饪说明配对的食物图片,因此在几个指标上与Chef-Transformer在食谱生成方面具有可比性。总体而言,LLaVA脱颖而出,在大多数指标上取得了显著的性能。

开源大型语言模型(LLMs):由于食谱生成领域的基准测试有限,我们研究了在Hugging Face排行榜(2023年12月20日)上表现突出的LLMs。这些模型包括广为人知的模型如GPT-2 [40]和LLaMA [47],以及近期表现优异的模型如Mistral(7B参数)[22]和Phi-2 [20]。在我们的研究中,我们还考虑了四个多模态模型,包括InstructBLIP [14]、MiniGPTv2 [9]、MiniGPT-4 [55]和LLaVA [32],因为它们在视觉-语言任务上表现出色。此外,我们还评估了Chef Transformer [16],这是一个专门为食谱生成而设计的微调T5 [41]模型,提供了一个开源的比较选项。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值