跨界思考:大语言模型中创意幽默生成的新思维探索 [译]
摘要
链式思考 (Chain-of-Thought, CoT) 能够引导大语言模型 (LLMs) 进行逐步的逻辑推理,提高其逻辑思维能力。尽管 CoT 在处理逻辑问题上颇有成效,但对于需要非传统思维和创新突破的创意问题解决来说,它就显得不太适用了。
本文探讨了 LLMs 中的“思维飞跃”(Leap-of-Thought, LoT)能力,这是一种不拘一格、富有创造性的思维方式,特点是强烈的联想和知识的跳跃。我们通过研究 LLMs 在需要高度创造性和强联想思维的流行 Oogiri 游戏中的表现,来探索这种能力。Oogiri 游戏要求参与者对给定的图像、文本或两者进行出乎意料且幽默的回应,非常适合研究 LoT。
在研究中,我们首先创建了一个包含超过 130,000 个 Oogiri 游戏样本的多模态多语言数据集 Oogiri-GO,并发现大多数现有的 LLMs 在这个游戏中展现出 LoT 能力不足或失败。因此,我们提出了一个名为创造性思维飞跃 (Creative Leap-of-Thought, CLoT) 的新范式,用以增强 LLM 的 LoT 能力。
CLoT 首先把 Oogiri-GO 数据集转换成专门的 LoT 指令调整数据,用以训练预先训练过的 LLM,使其具备一定的 LoT 幽默生成和鉴别能力。接着,CLoT 采用一种探索性的自我完善方法,鼓励 LLM 通过对看似无关的概念进行创造性的比较和联系,生成更具创新性的 LoT 数据,并选取高质量的数据进行自我完善训练。
CLoT 不仅在 Oogiri 游戏中的幽默创造方面表现出色,如图 1 所示,还在“云朵猜测游戏”和“发散性联想任务”等多种任务中显著提升了创造性。这些发现为我们提供了新的视角,帮助我们理解并提升 LLMs 在不同领域创新应用中的创造力。相关的数据集、代码和模型将会在网上发布。 https://zhongshsh.github.io/CLoT/。
引言
大语言模型 (LLMs) 在解决问题的能力上带来了革命性的飞跃,开启了人工智能领域的一个新时代。特别是思维链 (CoT) 范式的提出和随后的发展,使得这些模型具备了更接近人类的逐步推理能力。这种能力的提升使得大语言模型在处理从语言理解到视觉理解等各种复杂推理任务上表现出色。正如图 1: (左) 所展示的,CoT 赋予了大语言模型一种连续的思考过程,每一个思考环节都是在前一个基础上进一步发展的。这种方法在逻辑处理上的精确性和严谨性得到了显著提升,对于需要密切逻辑推理的问题尤其有效。
然而,连续思维过程(CoT)的线性特性可能在培养创新思维和创造力方面存在局限性,这可能限制了创意问题解决中的解决方案。比如,在证明一个代数不等式时,人们通常会按照 CoT 的方式,步步为营地从一个不等式推导到下一个。但有时,一个直觉的闪光点,如几何上的洞察,可能带来更加创新的思路。这种突破性的思维,被称为“思维飞跃”(Leap-of-Thought,简称 LoT),也就是心理飞跃,它是一种通过联系不同概念、进行类比,从而实现知识的非线性跳转的思维艺术。与 CoT 的逻辑推理不同,图 1(右图)所展示的 LoT,推动了基于联想的思维,鼓励人们打破常规思维,连接看似毫不相关的想法,从而实现概念性的巨大飞跃。利用具有强大 LoT 能力的大语言模型(LLM)能够极大地激发创新潜能,推动创意应用领域的发展。
在这篇论文中,我们旨在初步探究并提升大语言模型(LLMs)的跳跃性思维(LoT)能力。不过,由于测量创意思维的复杂性和难以收集相关数据,全面评估 LoT 非常具有挑战性,因为就连人类生成新颖想法也不易。鉴于这些限制,我们建议通过日本传统创意游戏 Oogiri 的角度来研究 LLMs 的 LoT。在 Oogiri 中,参与者需要对图像、文本或两者的组合给出出人意料且幽默的反应,如图 2 所示。这个游戏要求 LLMs 展示出突如其来的洞察力和强大的联想能力,对基于连续思考(CoT)的方法提出了独特挑战,因此成为评估 LLMs 的跳跃性思维能力的理想平台。此外,Oogiri 在线上拥有广泛的人类创意内容,为我们编制一个广泛的跳跃性思维数据集提供了丰富素材。
我们研究了大语言模型 (LLMs) 在 Oogiri 游戏中的思维跳跃 (Leap of Thought, LoT) 能力,并推出了一个包含超过 13 万个英语、中文和日语高质量 Oogiri 样本的多语言、多模态数据集 Oogiri-GO。这个数据集旨在通过图像、文本或二者结合的输入,激发文字幽默。经过广泛的实验,我们发现,即便是先进的大语言模型和推理框架(如 GPT-4 和思维链 CoT),虽然它们在推理能力和丰富的幽默知识方面表现出色,但在创造性幽默生成方面的 LoT 能力仍有限。此外,我们还发现,直接在 Oogiri-GO 数据集上微调这些模型,并不能显著提高它们的 LoT 能力,需要更有效地利用幽默知识来激发创造性回应。
受到人类在“远程联想和自我完善”方面的心理训练启发,我们提出了一个旨在强化大语言模型创造力的新范式:创造性思维跳跃 (Creative Leap-of-Thought, CLoT)。CLoT 包括两个阶段:第一个是可关联指令调优阶段,通过设计指令模板将 Oogiri-GO 数据集转化为指令数据,并训练大语言模型提升 LoT 能力。核心在于指令模板的双重作用:一方面为模型提供线索,建立输入与创新回应之间的联系;另一方面,引入空白线索,鼓励模型进行自由探索和远程联想。
第二阶段是探索性自我完善。在这一阶段,大语言模型通过探索弱相关条件下不同概念之间的关联,生成更具创造性的 LoT 数据,并从中挑选高质量数据进行自我完善。这些弱相关条件可能为空白,或来自 Oogiri-GO 数据集中的对象名词集。空白条件赋予模型更大的自由度,而特定条件则帮助模型连接看似不相关或弱相关的概念,鼓励其超越传统认知的界限。这种策略有助于生成多样的高质量数据,促进模型的自我完善。
研究发现,CLoT 技术能显著提升像 Qwen 和 CogVLM 这类大语言模型 (LLMs) 在多种 Oogiri 游戏中的思维逻辑能力 (LoT)。具体而言,CLoT 能让 LLMs 产生更优秀的幽默内容,如图 1 所示。此外,在 Oogiri 游戏的选择题和排位题中,整合了 CLoT 的 LLMs 表现出比传统模型和集成了 CoT 的模型更高的量化性能。同时,CLoT 还能提升 LLMs 在“云猜测游戏”和“发散联想任务”等其他领域的创造性能力,展示了其广泛的适用性。
相关研究
(1) Oogiri 游戏
::: CJK* UTF8goth(大喜利) :::
是指一系列传统日本喜剧游戏的总称。在古代,Oogiri 包含了多种形式,如相扑表演、鬼故事讲述等。而现代的 Oogiri 游戏通常特指一种被称为 Tonchi
::: CJK* UTF8goth(頓智) :::
的类型,经常出现在游戏秀或智力问答节目中。在这些游戏中,玩家需要对提供的多模态内容,如问题或随机图片等,作出幽默且创新的回应,以营造出意想不到的喜剧效果,例如图 2 中所示。值得一提的是,日语和汉语里的“
::: CJK* UTF8goth 頓 :::
”代表“突然”,“
::: CJK* UTF8goth 智 :::
”则意味着“智慧、洞察力或直觉”。这正体现了 Oogiri 游戏与思维逻辑能力 (LoT) 中对于强大联想能力的需求,使得 Oogiri 成为了研究 LLMs 思维逻辑能力的理想场景。
(2) 多模态大语言模型与创新思维。 近期,结合多种模式(如文本、图像)的大语言模型引起了广泛关注,特别是它们在推理能力方面的杰出表现。与此同时,人们正越来越多地探究这些模型在如科学探索和创意写作等领域的创新潜力。
(3) 计算幽默 是结合计算机技术与幽默研究的一门学科,属于计算语言学和人工智能领域。这一分支涉及多种任务,包括识别幽默、解读幽默和创造幽默等。随着生成式大语言模型的进步,幽默创作逐渐成为研究热点。然而,幽默创作仍面临挑战,比如缺乏有力的笑点,以及在多模态背景下的局限性。
(4) 基于思维链的方法 通过提供模型一个“思维链”,即推理示例或一个简单的提示“让我们一步步思考”,鼓励大语言模型进行推理,而不是直接给出答案。这种方法旨在提高模型的推理能力。
Oogiri-GO 数据集
如第 2 节所述,在 Oogiri 游戏中,参与者要对提供的图像、文本或二者结合做出不按常理出牌且富有幽默感的回应。具体例子请见图 2。这个游戏考验参与者对情境的快速理解和丰富的联想能力,非常适合用来检验大语言模型(LLM)的思维跳跃(LoT)能力。基于此,我们收集了 Oogiri 游戏的数据,创建了一个名为 Oogiri-GO 的大型数据集,旨在成为测试和提升 LoT 能力的重要标准。
详细来说,Oogiri-GO 是一个包含超过 13 万个样本的多模态、多语言幽默数据集,涵盖英语、中文和日语。值得一提的是,其中 77.95% 的样本配有用户喜好标注,如点赞数,这反映了某个回答的受欢迎程度。正如图 2 所展示的,Oogiri-GO 包括三种类型的游戏,根据输入不同,分别是“文本到文本”(T2T)、“图像到文本”(I2T)和“图像 & 文本到文本”(IT2T)。更多示例请参见图 1。表 oogiridata 则概述了这些游戏类型的分布情况。为了培训目的,我们随机选择了 95% 的样本构建训练集,其余 5% 则用于构建测试集,以便进行验证和分析。
在创建 Oogiri-GO 数据集的过程中,我们遵循了三个主要步骤:在线数据收集、由大语言模型(LLM)进行的机器筛选,以及人工筛查。首先,为了积累充足的数据,我们从 Bokete 这一官方 Oogiri 游戏平台以及 Twitter 和微博等流行平台上获取 Oogiri 游戏相关数据,后两者同样存储了一些类似 Oogiri 游戏的内容。接着,为了避免数据中含有偏见、暴力、不当内容或攻击性语言等问题,我们对机器和人工筛选过程中的安全检查给予了格外重视。我们首先运用多模态大语言模型 Qwen-VL,通过设定安全检查相关的提示,对原始数据进行初步筛选。此后,剩余数据将经过人工检查。关于数据集构建的更多细节,请参阅附录。
创意思维跳跃 (CLoT)
为了提升大语言模型(LLM)在创意生成方面的思维跳跃(LoT)能力,我们提出了创新的创意思维跳跃框架(CLoT)。如图 3 所示,CLoT 包含两个阶段,旨在增强 LoT 能力。第一阶段是相关性指令调优,它将 Oogiri-GO 数据集转化为训练 LLM 的指令调优数据,目的是提高其 LoT 能力(详见第 4.1 节)。第二阶段是探索性自我提升,通过探索看似不相关概念之间的联系,鼓励 LLM 生成更富有创意的 LoT 数据,并从中选取高质量数据进行自我训练和完善(详见第 4.2 节)。最终,我们介绍了 CLoT 推理过程,用于激发经过训练的 LLM 的 LoT 能力(详见第 4.3 节)。
可关联指令调整
本文讨论了一种被称为“可关联能力”(LoT ability)的概念,主要涉及两方面:可关联生成和辨别能力 [@Lee2012]。简而言之,可关联生成能力使我们能够在给定一个输入时,通过遥远的关联找到与其看似无关的概念,进而产生创新性的回应,例如在 Oogiri 游戏中产生出人意料的幽默。而可关联辨别能力则用于评估看似不相关的输入和回应之间的匹配程度,并选择最具创造性的回应。
然而,现有的大语言模型(LLM),如 GPT4v [@gpt4],在这两方面都表现不佳,特别是在 Oogiri 游戏中的应用效果不尽人意,详见第 5 节。目前流行的 CoT(类似于提示技术)方法也难以改善这些能力。在一些情况下,CoT 甚至会降低 LLM(例如 Qwen-VL [@Qwen-VL])在类似 Oogiri 游戏中的表现,如第 5 节所述。
为应对这一挑战,我们提出了一种名为“可关联指令调整”的新方法。该方法基于 Oogiri-GO 数据集,利用 LoRA [@hu2021lora] 训练 LLM,以培养其可关联生成和辨别的能力。这一过程分为两个阶段:指令生成和辨别模板设计,以及可关联指令的学习。
(1) 指令生成与辨别模板设计。我们针对 LoT 设计了一系列指令模板,将 Oogiri-GO 数据集转换为指令调整数据,并通过这些模板训练 LLM 达到可关联生成和辨别的能力。如图 4 所示,这些模板主要包含两部分:特定于任务的提示和回应。针对不同能力的开发,这些模板有着特别的设计要求。
<a name="fig:template" />::: figure*
:::在可关联生成方面,我们为用户输入设计了包含“特定任务提示”及两个可选项:“图像”和“条件”。这里的“特定任务提示”是为各种 Oogiri 游戏量身定制的模板。详细内容可参考附录,其中还包括一个图像转文字 (I2T) Oogiri 游戏的示例(见图 format_all)。至于“图像”条件,它根据 Oogiri 游戏的类型而异,比如在 I2T 游戏中是图像嵌入,在文本到文本 (T2T) 类型中则为空。而“条件”这一选项,有 的概率设置为空,或者随机选取一个与任务相关的名词。这样的设计能引导大语言模型 (LLM) 更好地将游戏输入与正确答案联系起来,并在 的概率下促使其发挥创造性思维。此外,“特定任务响应”是 Oogiri-GO 数据中的标准答案,LLM 在训练过程中需要预测它们。这项任务要求 LLM 在表面上不相关的输入和响应之间建立联系,激发创新回应,如 Oogiri 游戏中的幽默元素。这种生成能力有助于 LLM 跳出常规思维,培养远程联想能力。
在可关联鉴别方面,我们的目标是培养 LLM 基本的逻辑思维 (LoT) 鉴别技巧。利用 Oogiri-GO 数据,我们设计了一系列选择题,以加强 LLM 在逻辑思维上的选择能力。此外,考虑到 Oogiri-GO 数据中有 77.95% 包含了人类偏好的注释(如各个回答的点赞数,详见第 [3] 节 (#sec:oogirigo)),我们还设计了排名题来提升 LLM 的排名能力。
在选择题的例子中,如图 format_all (c) 展示的那样,"特定任务提示"部分包括了真实答案 (真实答案,GTR) 的随机排列、由 BLIP2 生成的图片描述、来自其他图片的 GTR、以及由 Qwen-14B 修改过的 GTR。更多细节请参见附录。在这里,“特定任务回应”指的就是 GTR。此设计目的在于帮助大语言模型 (LLM) 更好地学习如何选择基于逻辑推理 (逻辑推理,LoT) 的答案。而在排名题中,如图 format_all (d) 所示,目的是让 LLM 学会根据人类喜好,对给定输入的不同回答进行排序。通过这样的选择和排名训练,LLM 能更好地识别和排序基于 LoT 的回答,使其与人类的创造性偏好更加吻合。
(2) 关联指令式学习。我们利用上述指令模板,将 Oogiri-GO 数据集中的 130,000 个样本扩展到超过 500,000 个指令,格式如图 4 所示。在训练过程中,LLM 需要根据“用户输入”来预测“特定任务的回应”,这里的“用户输入”包括了“特定任务提示”和如图片、文本等两个额外的条件。为防止模型过度拟合,我们仅使用 LoRA 对 LLM 进行标准训练。详细内容见附录。
探索性自我提升
在完成与关联性相关的指令调整后,我们旨在通过大语言模型(LLM)产生更高质量的创新数据,进而用这些数据训练大语言模型,实现自我提升。为此,我们引入了一个名为“探索性自我提升”的创新阶段,其灵感来源于人类在思维训练中的“远程联想与自我精炼”过程,这也被视作一种心理飞跃。远程联想是指将不相关的概念或思想联系起来,创造新思维,而自我精炼则是利用这些创新成果来强化自己的思维训练能力。基于此,我们为大语言模型设计了两种类似的思维训练流程,旨在提升其思维能力。
::: table* :::
(1) 探索性远程联想。本环节的关键是激发大语言模型在弱相关条件下产生多样的创意回应。具体做法是,我们从 Oogiri-GO 训练数据的文本中提取了一组名词,记为 ,详见附录。对每个用户输入 (参见图 4),我们设定 个弱相关条件 。这些条件可能为空,以便为大语言模型提供更多自由空间,概率为 ,或者从 中随机选取名词,促使大语言模型建立跨概念联系。然后,我们将条件 加入用户输入 ,并输入给大语言模型,以产生幽默的候选内容 。通过变换不同的条件 ,我们可以生成总共 个不同的候选内容 。
大语言模型 (LLM) 首先根据其在第 4.1 节学习到的能力,对候选回答进行排名。然后,模型将排名前两位的候选答案与真实答案 (GTR) 混合,选出排名第一的答案作为最终回应。如果最终选中的答案恰好是真实答案,这个样本就会被舍弃。这样的筛选过程可以提高后续选择的准确率,因为 选项的问题往往比 选项的问题更具挑战性,正如第 5 节所展示的。重复这个过程,我们可以逐步收集到更多高质量的新数据。
这种方法的关键在于一系列弱关联条件 ,它们鼓励大语言模型进行跨领域的联想。由于这些条件的存在,模型在自由发挥的同时,也被引导着去寻找看似无关概念间的联系。这种方式有助于建立起表面上看似无关或联系较弱的概念之间的桥梁,激发大语言模型去探索超出常规思维范围的知识。这种探索能力是我们的 CLoT 方法与 CoT 的主要区别,CoT 更多地引导大语言模型利用其固有的推理能力,而不强调对知识的探索。
(2) 自我完善。我们将上述生成的指令与第 4.1 节中的传统指令调优样本结合,创建了一个包含超过 550,000 个样本的数据集,用于再次训练大语言模型。这些数据因其探索策略而具有高度多样性,有助于防止在自我完善阶段的性能下降 [@hataya2023contamination; @shumailov2023model],并且能够提高 LoT 在多个创新任务上的表现,如第 5 节所述。更多细节和讨论见第 5.5 节。
Algorithm 1 Inference Step of CLoT
TODO: ADD IT
CLoT 推理
在经过第 4.1 节和第 4.2 节的两个 LoT-增强阶段之后,大语言模型 (LLM) 已经具备了强大的 LoT 能力。接下来,我们将介绍 LLM 如何发挥其 LoT 能力进行推理。具体而言,当接收到一个类似图 4 所示的 Oogiri 用户输入 时,LLM 首先根据第 4.2 节描述的探索性远程关联方法,构建出 个弱关联条件。随后,依据相同章节的方法生成 个相应的回答 。LLM 会利用它所掌握的排名技巧对这些回答进行排序,并通过其选择技巧从排名前两位的回答中挑选出最佳的一个。之所以先进行排名再选择,是因为第 5 节的实验表明,直接从众多选项中挑选出最佳答案的准确率并不高,而通过排名可以有效筛选掉质量较差的选项,从而提升选择的精准度。有关 CLoT 推理步骤的更多细节,请参阅算法 clot。
::: table* :::
实验
评估问题及其指标
在 [@hessel2023androids] 提出的幽默基准测试的启发下,我们首先开发了选择题和排名题(具体见第 4.1 节,例如图 [\fig:format_all] 中的 c-d 图)。接着,我们在 Oogiri-GO 测试数据集上用这些题目来量化评估大语言模型(LLM)的逻辑推理(LoT)能力。所谓选择题,即 T 题型,要求 LLM 从 个选项中选出 个符合“跳跃思维”幽默的回答。我们设计了四种 T 题型,分别是 2T1、3T1、4T1 和 5T2。例如,2T1 指的是两个选项:正确答案(GTR)和 BLIP2 [@li2023blip] 生成的图片标题。3T1 题型增加了无关答案,如其他图片标题;4T1 则进一步添加了 Qwen-14B 修改过的 GTR;而 5T2 则增设了额外的 GTR。这些题型难度逐渐增加,且类型丰富,以确保全面评估。在选择题评估中,我们主要采用准确率作为指标。此外,对于测试集中有明确人类喜好基准的回答,如点赞数,我们设计了排名题,它会对五个选项进行排序。评估时,我们采用了最高准确率和广泛认可的排名指标——规范化折扣累积增益(NDCG) [@jarvelin2002cumulated; @radlinski2010comparing]。更多实验细节可以在附录中找到。
通过选择和排名问题的评估
多模态多语言大语言模型的评估。 我们将我们开发的可关联指令调整 (AIT) 和 CLoT 技术应用于最新的开源多模态多语言模型 Qwen-VL,分别生成了 Qwen-VL 和 Qwen-VL 两种增强版本。在涉及英语、中文和日语的三项任务(IT2T, I2T 和 T2T)中,表 vlm 显示 Qwen-VL 在大部分情况下均优于其他模型。相比原版 Qwen-VL,Qwen-VL 在三项任务上的平均准确度分别提高了 6.8%、6.7% 和 4.3%。更值得注意的是,Qwen-VL 在这些任务上的准确率进一步提升,分别达到了 9.1%、10.4% 和 8.2%。这些成果展示了 CLoT 技术中可关联指令调整和探索性自我完善两个阶段的有效性。
非多语言多模态大语言模型的评估。 我们还将 CLoT 技术整合到了最新的非多语言多模态模型 CogVLM-17B 中,并在英语的 I2T 和 T2T 任务上进行了测试。如表 non-multilingual 所示,与标准版 CogVLM-17B 相比,CogVLM-17B 显著提高了性能,而 CogVLM-17B 的表现更是远超原版模型,凸显了我们技术的卓越性能。
单模态大语言模型的评估。 我们对只能处理纯文本信息的大语言模型进行了测试,采用的是英文 T2T 任务。表 1 llm 显示,无论是小型还是大型的大语言模型,它们在逻辑思维能力 (LoT) 方面都显得不足。幸运的是,我们开发的 CLoT 方法显著提升了这些模型的 LoT 能力,这从它们在准确性上的显著提高中可以看出。
与类似 CoT 的推理框架比较。 我们还发现,现有的推理框架在提升 LoT 能力方面不如 CLoT。图 1 reasoning 将 CLoT 与 CoT、CoT-SC 以及基于提示的 LoT (PLoT) 进行了比较,PLoT 采用的提示是“让我们跳出思维框架”。结果表明,类似 CoT 的框架并没有提升大语言模型在 LoT 方面的表现,而 CLoT 则能够持续地增强大语言模型的性能。
我们的实验和分析显示,与依赖 CoT 方法不同,单凭提示是不能直接实现 LoT 的。因为大语言模型固有的推理能力和广泛知识不足以赋予其 LoT 能力。但是,通过我们提出的 CLoT 方法训练后,大语言模型能够有效地执行各种创造性任务。此外,采用特定的提示技巧还可以进一步增强通过 CLoT 训练的大语言模型的 LoT 能力。这些发现提示我们,LoT 可能是大语言模型一个未被包含的、额外的通用推理能力。
<a name="fig:user-study" />人类评价
我们开展了一项用户偏好调查,旨在评估大语言模型 (LLM) 的创造力水平。在此研究中, 我们挑选了六种大语言模型,让它们回答共计十八个问题, 涉及三种不同的任务类型:IT2T、I2T 和 T2T。我们设置了选择题形式,让用户挑选出 他们认为最具创意和幽默感的回答。 如图 5 所展示,通过 154 份有效问卷的统计分析得出,用户在三种任务中普遍更倾向于选择 CLoT 的结果,这突显了 CLoT 在创造高质量创意内容方面的强大能力。更多关于用户研究的 详细信息请见附录。
::: figure*
:::在其他创意任务上的评估
为了验证 CLoT 的广泛适用性,我们将其应用于另外两种创意性任务:云朵猜测游戏(Cloud Guessing Game, CGG)和发散性联想任务(Divergent Association Task, DAT)。在 CGG 中,大语言模型(LLM)的任务是辨认白云的形状,并从提供的选项中选择匹配的形状。例如,在图 6(c) 中的白云呈猫形,而图 6(d) 中的则似人形。这些白云图像由控制扩散模型生成,受图 6(b) 所示蒙版的引导。评估标准是 top-1 准确率,具体细节见附录。DAT 是一种经典的创造力测试,要求参与者从十个不相关名词中选出语义距离最大的词。为了简化测试,我们把 DAT 基准转化为一系列选择题,并以平均语义距离(ASD)作为评判标准。这些题目考验了 LLM 在挑选与给定词差异最大的词时的判断力。具体细节亦见附录。通过 CGG 和 DAT,我们能够测试 LLM 在语言推理(LoT)方面的能力,尤其是其远程联想思维能力,同时也提供了不同的评估方法。如图 6(e-f) 所示,CLoT 显著提升了 SoTA Qwen-VL 在 CGG 和 DAT 任务上的表现。具体来说,集成 CLoT 的 Qwen-VL 在 CGG 任务上的表现提升了约 8%,在 DAT 任务上提升了约 5%,从而充分证明了 CLoT 的优秀泛化能力和迁移性。
<a name="fig:generalization" />消融研究
弱关联条件的研究。 为了激发远程联想的可能性,我们默认使用从整个数据集的名词库中随机选取的弱关联条件,详见第 4.2 节 4.2。
我们进行了一项实验,使用与当前图片标题紧密相关的名词作为强关联条件,来检验弱关联条件的效果。如图 7(左侧)所示,使用弱关联条件在激发大语言模型(LLM)的创新能力方面表现更佳。相比之下,强关联条件给出的直接线索限制了语言输出的多样性。
自我完善的轮次研究。 在 Oogiri 游戏中,我们通常进行一轮自我完善。接下来,我们探讨了增加自我完善轮次是否能进一步提升语言输出(LoT)的能力。结果如图 7(右侧)所示,一轮自我完善就已经取得了令人鼓舞的成绩,而增加轮次并没有带来显著的改善。如图 7(左侧)所示,条件集合的多样性对于自我完善过程非常重要,因为它决定了能否在远程联想阶段产生高质量和多样化的数据。不过,在第二轮自我完善中,条件集并未扩大,这限制了性能的进一步提升。有效增加条件集的规模是未来进一步研究的关键方向。更多详细讨论请参见附录,但这超出了本文的研究范围,我们将在未来的研究中继续探索。
结论
在这篇文章中,我们提出了一种名为创造性思维跳跃 (Creative Leap-of-Thought, CLoT) 的新范式,旨在增强大语言模型 (LLM) 在进行思维跳跃 (Leap-of-Thought, LoT) 时的能力。CLoT 方法首先搜集了一个包含多种形式的 Oogiri-GO 数据集,并将其转化为训练数据,目的是让大语言模型在处理指令时能更好地进行思维跳跃。接下来,CLoT 创新性地引入了一种自我完善的探索机制,允许大语言模型通过在不同概念之间寻找相似性,自主生成更有创造性的思维跳跃数据。同时,它还能从中挑选出高质量的数据进行自我训练,以此来提高自身的完善度。我们的实验结果表明,CLoT 在多种创造性任务上都展现出了显著的有效性和广泛的适用性。
附录简介
这份附录的内容安排如下。在附录 8中,我们首先细致概述了本论文的创新点,同时强调我们提出的 CLoT 技术并不仅限于幽默内容的生成。其实,CLoT 更注重大语言模型在“思维拓展”方面的潜能。接下来,在附录 9中,我们从多个角度阐述 CLoT 的卓越之处。我们分别展示了 CLoT 在英语、中文和日语等语言中的表现,突出其跨语种的灵活性。此外,为了展示 CLoT 在激发创意方面的影响力,我们还展示了它如何为同一 Oogiri 游戏数据样本提供多种创新的解决方案。最后,我们还提供了针对不同大语言模型的多种 Oogiri 游戏幽默回应案例。附录 10详细描述了 Oogiri-GO 数据集的构建过程,包括数据的采集和机器及人工筛选过程。在附录 11中,我们详尽地介绍了本文中的主要实验内容。附录 12则全面介绍了其他的创意任务。此外,附录 13探讨了自我完善阶段中的两个核心问题:完善的轮次和潜在的性能问题。最后,在附录 14中,我们通过一系列讨论,解答了关于“思维拓展”概念的重要疑问。
我们论文的[新颖之处]。
本文的创新点主要包括:
- ([开创性探索]) 我们可能是首个深入研究多模态大语言模型(LLMs)中“跳跃思维”(Leap-of-Thought,LoT)能力的团队。这意味着我们挑战 LLMs 跳出传统思维模式,发展出一种与常见的顺序思维能力(比如基于思维链的方法)同等重要的非顺序思维技巧。LoT 能力对于 LLMs 的创造性探索和发现至关重要。相关研究见 @wei2022chain、@zhang2022automatic、@kojima2022large、@yao2023tree、@long2023large。
- ([大型创造性数据集]) 鉴于当前领域探索创造性的大型数据集稀缺且收集这类数据存在挑战(具体参见附录 13.1),本研究选择了 Oogiri 游戏作为研究 LLMs LoT 能力的理想平台(详见附录 8.2),并收集了超过 13 万个 Oogiri 游戏的创意数据样本,构建了一个大型创造性数据集,命名为 Oogiri-GO。
- ([提高 LoT 能力的新方法]) 我们的实验和分析显示,仅凭现有 LLMs 的内在推理能力和丰富知识很难激发 LoT 能力。因此,我们提出了一种名为“创造性跳跃思维”(Creative Leap-of-Thought,CLoT)的新方法,通过关联指令调整和探索性自我改进,显著提高了 LLMs 的 LoT 能力。后续的实验证实了这种方法在不同创造性任务上的有效性和广泛适用性。
本文提出的 CLoT 并非专为幽默创作而设计
在这篇论文中,我们主要是探讨大语言模型在“思维飞跃”(Leap-of-Thought,LoT)方面的能力。这种能力是一种重要的认知技能,类似于“思维链”(Chain-of-Thought)[@wei2022chain; @zhang2022automatic; @kojima2022large; @yao2023tree; @long2023large],我们并不是专门研究幽默创作。选择以 Oogiri 游戏为幽默创作的研究对象,主要基于以下三个理由:
(1) Oogiri 游戏是研究大语言模型“思维飞跃”能力的理想平台。正如相关研究所述,Oogiri 游戏与“思维飞跃”的特点高度吻合,它要求玩家在面对多种信息时能够跳脱传统思维,进行创新思考。同时,Oogiri 游戏中的三种主要类型(图像到文本、文本到文本和图像 + 文本到文本)与多模态大语言模型处理的输入和输出形式相符,非常适合用来探究大语言模型在“思维飞跃”方面的表现;
(2) Oogiri 游戏拥有大量经过人工标注的创意数据集。这个游戏在网上非常流行,吸引了众多用户参与,他们创作的内容构成了一个丰富的“思维飞跃”研究数据集;
(3) Oogiri 游戏方便用于“思维飞跃”能力的可视化评估。与大多数认知测试不同 [@beketayev2016scoring; @olson2021naming],Oogiri 游戏作为一个结合文本和图像的多模态任务,非常适合以一种直观而有趣的方式展示“思维飞跃”的能力。此外,这种展示方式,结合 Oogiri 游戏本身的趣味性,能吸引更多人参与到“思维飞跃”能力的测评中,提高了研究的准确性和广泛性。
更多实验结果
这一节我们提供了额外的实验数据,来进一步证明我们的 CLoT 技术在提升大语言模型(大语言模型)理解和转换思维(LoT)能力方面的显著成效。这些数据涵盖了 CLoT 在不同语言环境下的表现(详见附录 9.1)、对单张图片生成的多样化回应(详见附录 9.2),以及在创造 Oogiri 风格幽默方面的进步(详见附录 9.3)。尽管幽默感是个很主观的话题,但这些额外的结果足以证明 CLoT 在利用创新思维创作高质量幽默内容方面的出色能力。
多语言表现分析
在正文的表格 2 中,我们汇总了所有语言的数据。这一节,我们分别展示了在英语(EN)、中文(CN)和日语(JP)等不同语言环境下,各个多模态大语言模型的表现。如图 9 所示,以 Qwen-VL 为基准模型进行比较,可以看出我们的 CLoT 技术不仅显著提升了基准模型的性能,还在不同语言的多个评价指标上超越了其他先进的大语言模型。这个实验进一步强调了 CLoT 技术的有效性和创新性。
大语言模型在 Oogiri 游戏中的多样化回应
为了体现 CLoT 的创新能力,我们展示了 Qwen-VL 在相同 Oogiri 游戏样例中的不同回应,如图 10 中所示。为了公正评价 CLoT 的创造力,我们选用了数据量适中的中文 Oogiri 游戏数据集。相比之下,英文 Oogiri 数据集较小,可能无法充分展现 CLoT 的优势;而日文 Oogiri 数据集最大,可能会过度强调 CLoT 的强项。为了让不同语言背景的读者都能理解,图 10 中还提供了中文 Oogiri 回应的英文翻译。但是,由于文化差异和其他限制,翻译可能无法完全传达原本中文回应的意图。尽管如此,图 10 中展示的回应多样性突显了 CLoT 在多角度思考和发散性思维方面的能力,展现了它的跨界思维能力。
Oogiri 风格幽默生成的更多范例
为了展示 CLoT(一种技术方法)的有效性,我们提供了一些使用多模态多语言大语言模型进行幽默生成的额外范例。这些模型在主文的第 2 表中有所提及。图 11 和 12 分别展现了中文和日文环境下,将图文组合转化为文本的任务结果。由于英文 Oogiri 数据在这一类型任务中的样本不足,我们没有展示相应的英文任务结果(更多详情请参见附录 14.1)。图 13、14 和 15 展示了从图像到文本的转化结果,而图 16、17 和 18 则展示了从文本到文本的转化结果。最后,在图 19 中,我们补充展示了一些针对中文 Oogiri 样本的 Qwen-VL 响应。
图 e9: 展示了大语言模型在日本 Oogiri 图片到文本样本中的反应,其中 "@" 符号表示这些反应的英文翻译。
图 e6: 展示了大语言模型在英文 Oogiri 文本到文本样本中的反应。
图 e4: 展示了大语言模型在中文 Oogiri 文本到文本样本中的反应,其中 "@" 符号表示翻译内容。
图 e5: 展示了大语言模型在日文 Oogiri 文本到文本样本中的反应,其中 "@" 符号表示这些反应的英文翻译。
图 e10: 展示了 Qwen-VL 在中文 Oogiri 图片到文本样本中的反应,其中 "@" 符号表示这些反应的英文翻译。
构建 Oogiri-GO 数据集
本节详细介绍了 Oogiri-GO 数据集的收集和筛选流程。在附录 10.1 中,我们讲述了数据集的起源和发展过程。以 Bokete 为例,我们解释了数据爬取的目的和关键技术。另外,附录 10.2 和 10.3 分别详细说明了利用机器和人工进行数据筛选的步骤和方法。
网络数据采集简介
我们主要从 Bokete (https://bokete.jp) 这个官方 Oogiri 游戏平台,以及 Twitter (https://twitter.com) 和微博 (https://m.weibo.cn) 等其他流行平台采集 Oogiri 游戏的数据。这些平台还包含了一些类似 Oogiri 游戏的数据。通过对这些平台的广泛数据采集,我们总共收集了超过 20 万个未经筛选的原始样本。其中,Bokete 网站以其庞大的数据量和用户活跃度成为了互联网上最重要的 Oogiri 游戏专用平台。因此,我们将其作为案例研究,全面介绍了我们的数据采集方法。
具体来说,如图 20 (a) 展示的,爬取 Bokete 网站主要分为两个步骤:
(1) [搜集 Oogiri 问题的 ID]。在 Bokete 网站,Oogiri 问题是由官方或用户上传的内容,通常以图像形式出现。即使是文本到文本 (T2T) 类型的内容,文本也被嵌入到图片中。玩家需要根据这些图片创作出有创意的回答。起初,我们从“最佳”、“上升”、“流行”等不同栏目获取主页上的问题 ID 和每个问题下的用户 ID。特别的,用户的主页上展示了他们以往创意回答和评分的历史,这使我们能够从这些记录中扩大问题 ID 的范围。通过这种反复的过程,我们逐渐增加了问题 ID 和用户 ID 的数量。
(2) [采集 Oogiri 数据样本]。接下来,使用我们收集到的问题 ID,我们爬取特定问题下所有的创意回答(答案),以此来编制 Oogiri 数据。同时,我们还记录了这些回答的评分信息,以便后续在 CLoT 框架中训练大语言模型 (大语言模型) 的辨别能力。
为了更直观地展示网络数据采集的过程,我们在下方提供了这两个步骤的核心代码示例。
def processing_url(url, page):''' 此函数主要用于第一步骤,即搜集大笑话题的问题 ID参数说明:url (str): Bokete 网站的基础链接,例如 https://bokete.jp/boke/legendpage (int): 基础链接的页码,如 1'''url = f'{url}?page={page}'print('正在处理', url)# 获取并处理该 url 的网页内容r = requests.get(url)r.raise_for_status()# 解析网页,查找所有的超链接 <a></a>soup = BeautifulSoup(r.text, 'html.parser')links = soup.find_all('a', href=True)for link in links:# 提取并保存用户 idif "/user/" in link['href']:with open('user.txt', 'a') as f:f.write(link['href'].split('/')[-1] + '\n')# 提取并保存大笑话题的问题 idif "/odai/" in link['href']:with open('question.txt', 'a') as f:f.write(link['href'].split('/')[-1] + '\n')
def processing_odai(odai, page):''' 此函数专注于第二步骤,即收集大笑话题的具体数据样本参数说明:odai (str): 特定问题的 ID,例如 6902364page (int): 该问题的网页页码,如 1'''url = f'https://bokete.jp/odai/{odai}?page={page}'print('正在处理', url)# 访问并获取该 url 的网页内容r = requests.get(url)r.raise_for_status()# 解析网页内容soup = BeautifulSoup(r.text, 'html.parser')# 找到并记录问题的图片链接img = soup.find('a', href=f"/odai/{odai}").find('img')link = 'https:' + img.get('src')# 搜集并保存用户 idlinks = soup.find_all('a', href=True)for link in links:if "/user/" in link['href']:with open('user.txt', 'a') as f:f.write(link['href'].split('/')[-1] + '\n')# 查找所有回答texts = soup.find_all('a', class_='boke-text')stars = soup.find_all('div', class_='boke-stars')times = soup.find_all('div', class_='boke-information-label')for text, star, t in zip(texts, stars, times):with open('data.jsonl', 'a') as f:f.write(json.dumps({'id': text['href'].split('/')[-1], # id'text': text.text, # 内容'attitudes_count': star.text, # 评价'created_at': t.text, # 创建日期'pics': { # 图片信息'pid': odai, # 问题编号'url': link, # 图片链接}}, ensure_ascii=False) + '\n')
不同于 Bokete 网站上问题与答案分开展示的方式,其他一些平台上的数据可能会把问题和答案整合在同一张图片中。正如图 20 (b) [^2] 中所展示的那样。在这种情形下,我们需要把问题和答案分离开,以便创建格式统一的 Oogiri 数据集。为此,我们运用 PaddleOCR [^3] 技术来识别图片中的文字。接着,通过分析文字的具体位置,我们对图片进行裁剪,从而区分出问题和答案,创造出分开展示问题和答案的 Oogiri 数据样本。
利用大语言模型 (LLM) 进行机器筛选
在按照附录 10.1 所述收集了原始的 Oogiri 数据之后,我们必须意识到,作为喜剧游戏的 Oogiri 游戏可能包含带有偏见或其他类型冒犯性幽默的回答。而且,由于 Oogiri 游戏允许任何互联网用户参与,这种问题随着游戏在网络上的传播而日益增多。因此,对这些原始数据进行有效过滤显得尤为重要。为此,我们使用了一种名为 Qwen-VL 的多模态语言模型来作为初步筛选原始数据的工具,主要是为了避免包含有偏见、暴力、露骨内容、冒犯性语言等问题。这种筛选是通过设置特定的安全检查提示来完成的。Qwen-VL 筛选模板的设计大致如下:
::: mdframed 这张图片或文本是否包含与 <Label>(如暴力、露骨内容、冒犯性语言等)相关的内容?或者图片和文本组合是否展现了与 <Label> 相关的隐喻?如果是,请以“是”回答;如果不是,请以“否”回答。
文本内容为:<Text> :::
此外,为了提高安全检查的效果,我们还使用了 NudeNet [^4] 所采用的 <Label>,涵盖了与不适合工作场所 (NSFW) 内容相关的众多关键词。经过这样的机器筛选,样本数量最终减少至大约 160,000 个。
手动筛查
尽管机器筛选已成功识别出数据集中的大多数不适当内容,但仍有一些含蓄的隐喻性内容难以完全排除。因此,我们辅以翻译软件,开展了手动筛查工作,以此进一步提升数据集的品质。手动筛查的标准与机器筛查一致,主要是移除与特定<Label>相关的内容。手动筛查的过程可以分为两个阶段:
(1)[ 手动检验。] 我们对数据集中的每个样本进行了细致的审查,以确认是否含有与特定关键词相关的内容。这一检验过程涵盖了图像和文字的仔细检查,以确保准确识别和标记不适当的内容。
(2)[ 迭代式筛查。] 为了保证手动筛查的准确性和一致性,我们进行了两轮迭代式手动筛查。每一轮都由不同的人员进行,以减少个人主观判断的影响,从而提高数据集的可靠性。在手动筛查之后,我们成功地进一步减少了数据集中不适当内容的比例,使样本数量精确到超过 130,000 份。手动筛查的引入对于确保数据集的高品质和对不适当内容的敏感检测起到了关键作用。
实验详情
实施细节之详解
指标。 本文深入探讨了一系列实验,包括受到[@hessel2023androids]中幽默基准测试启发的选择题和排名题。我们还进行了用户研究,直接评估幽默生成的有效性,以及其他如云猜测游戏(Cloud Guessing Game,CGG)和分歧联想任务(Divergent Association Task,DAT)等创意任务的表现。每个实验都有其专门的评估指标。
(1) 在选择题中,我们使用分类准确率来评估。具体而言,就是将大语言模型(LLMs)正确回答的问题数除以总问题数,得出准确率。
(2) 在排名题中,我们采用了常用的归一化折扣累积增益(Normalized Discounted Cumulative Gain,NDCG)[@radlinski2010comparing]作为评估标准。我们重点关注 top-1 准确率,因为在排名中,位于榜单顶部的位置通常更为关键 [@tang2018ranking]。
(3) 在用户研究方面,我们通过调查统计了不同类型 Oogiri 任务中各大语言模型获得的总票数,并计算出每个模型在各类任务中所占的票数比例。详细信息请参见附录 11.5。
(4) 对于其他创意任务,我们分别采用了分类准确率和平均语义距离(Average Semantic Distance,ASD)作为 CGG 和 DAT 任务的评估标准。ASD 代表所有测试样例的平均语义距离,其计算方式是基于每个选择题后的十个单词。更多详细信息,请查阅附录 12。
可关联指令调整的关键参数。 对于“图像”这一设置,它取决于 Oogiri 游戏的类型,比如,在图片到文本 (I2T) 游戏中使用图像嵌入,在文本到文本 (T2T) 类型中则不设置。在设置“条件”这一选项时,有一半的概率将其设为空,否则会随机选择“任务特定响应”中的一个名词。我们把这个概率值 设置为 0.50。这样的配置是基于这样一个事实:训练大语言模型 (大语言模型) 进行可关联生成有助于远距离的自我完善,我们的目标是使模型能够无条件地控制跳跃式思维的生成。
探索性自我完善的超参数。 在进行探索性远距离关联时,我们生成了 个弱关联条件 。这些条件可能以 的概率为空,给予大语言模型更多自由空间,或者从名词集 中均匀随机选取,以促使大语言模型建立不同概念之间的联系。然后,我们把条件 加入到用户输入 中,并输入到大语言模型以生成幽默候选 。重复这个过程并更换不同的条件 ,我们可以生成总共 个候选 。我们将 的值定为 5,这不仅是为了控制排序的难度,以确保可靠的结果,也是为了与可关联指令调整过程中的歧视性选择数量保持一致。随后,大语言模型会根据其在第 4.1 节(正文)中学到的判别排序技巧对这些候选进行排序。最后,它将排名前两的候选与实际回应混合,并选择排名最高的作为最终回应。
在这篇论文中,我们不仅考虑了排名机制,还引入了一个选择过程,目的是为了实现探索性的远程联想思维。这个决策是基于我们的实验结果,正如实验部分所展示的,大语言模型(LLM)在处理选择题时,选项越少,准确度就越高。直接让大语言模型(LLM)从 个选项中挑选答案是非常具有挑战性的。因此,我们设计了一个两步流程:先排名,后选择。此外,我们从排名结果中选出前两名,以确保大语言模型(LLM)在解决选择题时的准确性。
训练的超参数设置。 我们使用 Qwen-VL 和 CogVLM 的官方代码进行实施和训练。所有模型均使用 8 个 Nvidia A100(40G)GPU。每个模型的训练和超参数设置如下:
-
Qwen-VL 采用 AdamW 优化器进行训练,参数设置为 。学习率设为 ,权重衰减系数为 。训练过程的批量大小为 64。Qwen-VL 中的 LoRA 设置为排名 64,标准化参数 16,丢失率 0.05。
-
CogVLM-17B 同样使用 AdamW 优化器,参数设置 。学习率设为 ,权重衰减系数为 。训练过程的批量大小为 128。CogVLM-17B 中的 LoRA 设置为排名 10,标准化参数 1,丢失率 0.00。
指令模板详解
<a name="fig:template2" />在数据收集和筛选工作完成后,下一步就是将搜集到的 Oogiri 数据转换成适合训练模型的指令调整数据。我们专门设计了一些适应于“语言思考”(LoT)的指令模板,用来把 Oogiri-GO 数据集转换为指令调整数据,进而训练大语言模型(LLM),使其具备联想生成和区分能力。这些模板主要包括图 21 所示的两大部分:针对特定任务的提示和回应。针对不同的能力,我们对这些模板做了特别设计。接下来,我们将详细介绍每个任务的指令模板。
图像到文本的指令模板。 根据图 21 的分类,图像到文本的指令模板可以分为以下四种类型:
这里的标签 <Image>、<Response>、<Condition> 和 <Content > 作为占位符,用于插入视觉图像嵌入、文本回应、文本条件和文本选项内容。带条件的指令条件来源于真实回应中的名词,而用于排名的指令选项则来自于 Oogiri 数据中的多个答案。此外,我们以“3 个中选 1”(3T1)选择为例,来说明选择类指令的运作。对于其他类型的选择指令,只需稍微调整选项数量和量词即可。
我们为每项任务定制了三个原始指令模板。这个选择基于 Oogiri-GO 中三个任务的具体要求,即我们希望 LLM 能够基于给定图像或文本生成出人意料且幽默的内容。因此,过多的提示模板对于这些任务的广泛适用性并不必要,我们的实验也证实了这一点。在图像到文本任务中,我们对比了使用三个模板和五十个模板的效果,其中五十个模板是通过使用 Qwen-14B 重写原有三个模板得到的。实验结果显示,提示模板的数量并不会显著影响 LLM 的表现。
文本到文本指令模版。 文本到文本的指令模版和图像到文本的模版很相似,可以分为以下四类:
这里的标签 <Question> 代表了大喜利数据的文本问题。
图像&文本到文本指令模版。 图像&文本到文本的指令模版和其他两项任务相似,但由于其独特的性质,我们在模版中加入了一个特殊字符 [MASK]。图像&文本到文本的指令模版如下:
从正文中的表 1 可以看出,IT2T 类别的数据量远低于其他两种大喜利游戏类型。因此,有必要增加更多数据来改善 IT2T 的指令调整。值得一提的是,IT2T 可以被看作是一种遮蔽语言模型(MLM)任务 [@sinha2021masked; @salazar2019masked; @bitton2021data]。因此,我们打算通过为 I2T 和 T2T 数据类型创建 MLM 任务来达成这个目标。细节如下:
这里,我们会随机选择大喜利答案中的名词或动词短语,用 [MASK] 替换它们,然后用这些被替换后的大喜利答案作为 <Answer with [MASK]>。
LoRA 微调技术详解
LoRA 是一种在微调大语言模型 (LLM) 时常用的技术。其核心在于通过学习一对秩分解矩阵,有效减少可训练参数的数量,同时保持模型原始权重的不变。目前,LoRA 因其卓越的适应能力而受到青睐。我们采用相关指令数据对大语言模型进行 LoRA 训练。
以下代码展示了在训练 Qwen-VL 过程中,如何将 LoRA 分别插入到其文本模块和视觉模块。第一个代码片段说明了如何在 Qwen-VL 的文本处理部分加入 LoRA,第二个代码片段则展示了在其视觉处理部分如何应用 LoRA。
# 在 Qwen-VL 的文本模块中加入 LoRAQWenLMHeadModel((transformer): QWenModel((wte): Embedding(151936, 4096)(drop): Dropout(p=0.0, inplace=False)(rotary_emb): RotaryEmbedding()(h): ModuleList((0-31): 32 x QWenBlock((ln_1): RMSNorm()(attn): QWenAttention((c_attn): Linear(in_features=4096, out_features=12288, bias=True) # + LoRA(c_proj): Linear(in_features=4096, out_features=4096, bias=False) # + LoRA(attn_dropout): Dropout(p=0.0, inplace=False))(ln_2): RMSNorm()(mlp): QWenMLP((w1): Linear(in_features=4096, out_features=11008, bias=False)(w2): Linear(in_features=4096, out_features=11008, bias=False)(c_proj): Linear(in_features=11008, out_features=4096, bias=False))))......
# 在 Qwen-VL 的视觉模块中加入 LoRA 技术QWenLMHeadModel((transformer): QWenModel(......(visual): VisionTransformer((conv1): Conv2d(3, 1664, 核大小=(14, 14), 步长=(14, 14), 无偏置)(ln_pre): LayerNorm((1664,), eps=1e-06, 有元素仿射)(transformer): TransformerBlock((resblocks): ModuleList((0-47): 48 x VisualAttentionBlock((ln_1): LayerNorm((1664,), eps=1e-06, 有元素仿射)(ln_2): LayerNorm((1664,), eps=1e-06, 有元素仿射)(attn): VisualAttention((in_proj): 线性层(输入特征=1664, 输出特征=4992, \有偏置) # + LoRA(out_proj): 线性层(输入特征=1664, 输出特征=1664, \有偏置) # + LoRA)(mlp): 顺序((c_fc): 线性层(输入特征=1664, 输出特征=8192, 有偏置) # + LoRA(gelu): GELU(近似='none')(c_proj): 线性层(输入特征=8192, 输出特征=1664, 有偏置)))))(attn_pool): 重采样器((kv_proj): 线性层(输入特征=1664, 输出特征=4096, 无偏置)(attn): 多头注意力((out_proj): 非动态量化线性层(输入特征=4096, \输出特征=4096, 有偏置) # + LoRA)(ln_q): LayerNorm((4096,), eps=1e-06, 有元素仿射)(ln_kv): LayerNorm((4096,), eps=1e-06, 有元素仿射))(ln_post): LayerNorm((4096,), eps=1e-06, 有元素仿射)))(lm_head): 线性层(输入特征=4096, 输出特征=151936, 无偏置))
在研究 LoRA 如何正确插入时,我们借助 Oogiri-GO I2T 数据开展了三组关联性指令调整实验。这些实验分别将 LoRA 独立插入到 Qwen-VL 的文本模块、视觉模块,以及同时插入这两个模块中。通过实验,我们发现在 3T1 测评标准下,只将 LoRA 插入文本模块的准确率(38.8)比同时插入文本和视觉模块的效果(37.0)更好,而仅插入视觉模块时的准确率最低,仅为 25.4。因此,我们决定只在 Qwen-VL 的文本模块中进行 LoRA 的训练。
提取弱相关条件的方法
本文的核心在于引导大语言模型 (LLM) 在弱相关条件下产生多样化的创意反应。我们从 Oogiri-GO 训练资料的文本中,提取了一系列物体名词,以此作为弱相关条件的基础。下面将详细介绍我们的提取过程。
首先,我们从 Oogiri-GO 数据的回应中提取出名词。为了适应不同语言,我们运用了 NLTK、Jieba [^5] 和 Janome [^6] 等多语言词性分析工具。
具体来说,我们利用 NLTK 这个支持自然语言处理研究和开发的开源 Python 工具包,来从英语文本中提取名词。以下是核心代码示例:
from nltk import word_tokenize, pos_tagdef extract_nouns(text):tokens = word_tokenize(text)tagged_words = pos_tag(tokens)conditions = [word for word, pos in tagged_words if pos.startswith('N')]return conditions
对于中文文本,我们选用了广泛使用的中文分词工具 Jieba 来进行词性分析。下面是核心的实现代码:
import jieba.posseg as psgdef extract_nouns(text):tagged_words = psg.cut(text)conditions = [x.word for x in tagged_words if 'n' in x.flag]return conditions
至于日文文本,我们采用专门的日本语形态学分析引擎 Janome 来提取 Oogiri-GO 语料库中的名词。下面是核心实现代码,其中 tag 表示名词的标签:
from janome.tokenizer import Tokenizertokenizer = Tokenizer()def extract_nouns(text):tokens = tokenizer.tokenize(text)conditions = []for token in tokens:if tag == token.part_of_speech.split(',')[0]:conditions.append(token.surface)return conditions
通过以上三种词性分析工具,我们成功地从 Oogiri-GO 中提取了名词。接着,我们进行了去重处理,并经过手动质量筛选,形成了用于 CLoT 中弱相关条件抽样的最终名词集合 。这些条件将用于生成多样的创意反应。
用户研究详情
我们开展了一项用户偏好研究,旨在直接检验大语言模型(LLM)的创造性。如图 22 所示,这是用户研究的问卷首页,用户在此可选择问卷的语言。接着,我们会根据用户选择的语言提出一系列选择题,并邀请用户选出最具创造力和幽默感的回答,如图 23 展示的那样。我们选取了六种先进的大语言模型来为三种任务(IT2T、I2T、T2T)生成十八个问题的回答,这些回答来自不同的大语言模型,随机排列在选项中。
通过在线调查平台 [^7] 进行的广泛调研,我们共收集到 154 份有效问卷,总计 2772 票。通过这些问卷,我们可以得出每个大语言模型在各个问题上的选中比例,如图 23(底部)所示。最终,我们统计了每个大语言模型在所有 Oogiri 任务样本中的总选中次数。这个总数与所有大语言模型的总选中次数之比,反映了用户对各个大语言模型的偏好程度。
其他创意任务的详细信息
在本节中,我们提供了包括云朵猜测游戏(CGG)、发散联想任务(DAT)等其他创意任务的实验细节和更多示例。
云朵猜测游戏(CGG)详解
云朵猜测游戏(Cloud Guessing Game, CGG)是一个挑战大语言模型 (LLM) 识别不断变化的白云形状并从选项中选择匹配形状的任务。CGG 的设计灵感源于白云形态的多变性,以及通过创造性思维将特定形状与各种云层形态相联系的能力,如主文中图 9 (c-d) 所展示的那样。因此,CGG 中对云形状的分类表现在一定程度上能反映出 LLM 的语言推理 (LoT) 能力。
具体而言,CGG 的数据构建过程是这样的:首先确定了四个类别:猫、人类和长颈鹿。我们从网上精选了每个类别中明显且彼此区分明确的图片。以猫为例,我们选用了主文中图 9 (a) 的猫图像,并使用 Photoshop 精心制作了图 9 (b) 所示的猫形状蒙版。接着,我们利用控制扩散模型 [@rombach2022high; @zhang2023adding; @huang2023scalelong; @shi2023exploring],根据以下提示生成了类似于主文中图 9 (c) 所示的白云猫图像。
::: mdframed (生成白云的提示)杰作、最高品质、白云++、层积云、高层积云、卷云、蓝天、光芒、高清聚焦、HDR、UHD、8K、细腻详尽、极致细节、逼真光线、真实、物理学效果、逼真、照片级真实感、解构 :::
我们通过控制扩散模型连续生成图像,手动筛选出每个类别中 30 张明确且难度适中的白云图像。这里的难度通过“controlnet_scale”系数调整,该系数用于控制蒙版控制的强度。系数越高,生成图像与蒙版的关联性越强,难度相对较低。最后,根据主文中图 6 (a) 的指导模板,我们为每个类别设计了四选一题,选项是从真实类别和随机抽取的无关词汇集合 ['椅子','杯子','唱歌','跳跃','说唱','篮球','电脑','鸡蛋','电话','房子','灯','鞋子'] 中组合而成,确保每个题目都经过人工审核,以保证题目的有效性和清晰度。
在研究的最后阶段,我们为每张白云图片设计了三个选择题。这些大语言模型 (LLMs) 的任务是选出与白云形状最相似的词。在主文图 9 (c) 展示的实验中,CLoT 是指按照表 2 描述的方法训练的 Qwen-VL+CLoT 模型。此外,我们以分类准确性为评价指标。图 9 (c) 的结果显示,提出的 CLoT 方法能有效提升 CGG 任务的表现,这也在一定程度上证明了 CLoT 方法的多功能性和高效性。
异构联想任务(DAT)详解
异构联想任务(DAT)是一个经典的创意测试,要求参与者在 10 个不相关名词中选出语义相距较远的词汇。这项测试基于一个发现:能选出具有较大语义距离的不相关名词的人通常具备更强的联想能力。我们利用这一点,来分析大语言模型(LLMs)在 DAT 基准测试中的联想思维能力。为了便于分析,我们把 DAT 测试转化为一系列选择题,使用 GloVe 测得的平均语义距离(ASD)作为衡量标准。这些问题考验 LLMs 从多个选项中找出与指定词汇差异最大的词。
具体而言,我们用以下示例指导 LLM 完成 DAT 任务。以下是一些词汇和选项的例子:
::: mdframed 例子 1:
[<Words>]: 吉他 放大器 弦 拾音器 旋律 和弦 歌曲 音乐家 音乐会
[<Options>]: A.工作室 B.帽子 C.钢琴 D.雨伞 :::
::: mdframed 例子 2:
[<Words>]: 吉他 放大器 弦 拾音器 旋律 和弦 歌曲 音乐家 音乐会
[<Options>]: A.火焰 B.橙色 C.钻石 D.地球 :::
::: mdframed 例子 3:
[<Words>]: 足球 放大器 马拉松 冲浪 排球 篮球 胡萝卜 跑步 瑜伽
[<Options>]: A.画布 B.电线 C.火山 D.手镯 :::
::: mdframed 例子 4:
[<Words>]: 胡椒 丝瓜 茄子 冲浪 大蒜 土豆 胡萝卜 豆 类体操
[<Options>]: A.钻头 B.蜜蜂 C.沙漏 D.砖头 :::
::: mdframed 例子 5:
[<Words>]: 无咖啡因 糕点 冲泡 烘焙 森林 户外 指南针 豆 背包
[<Options>]: A.蛋糕 B.鞭子 C.太空 D.河流 :::
自我完善的深入分析
在这一部分,我们将探讨为何在 Oogiri-GO 的 CLoT 应用中选择进行一次自我完善,以及为什么在“探索性自我完善”阶段 CLoT 没有出现性能下降。
自我完善过程的探讨
在主文的第 5 节,我们已经实证显示,增加更多回合并不会明显提升 LoT(思维的语言)能力。因此,在 Oogiri-GO 数据集上,我们选择了一次自我完善作为默认设置。接下来,我们将深入探讨这一现象的原因。实际上,为了达到多次自我完善的效果,有两种策略可行。
首先,是[增加创造性数据的多样性](策略 1)。这意味着在“可关联指令调整”阶段,为模型提供更广泛的创造性数据,以此增强其最初的 LoT 能力。这种多样化让 LLM 在多种弱关联条件下能有效地持续创造新数据;
其次,是[确保名词集 的多样性](策略 2)。这就是说,需要在名词集 中采用更丰富和有效的名词来抽取弱关联条件,以此提高 LLM 的联想能力,并确保新生成数据的质量。
<a name="fig:oneround" />我们首先探究了创意数据多样性对模型表现的重要影响。我们选用了 Oogiri-GO 数据集中的两个不同子集进行实验:一个专注于动物的子集和一个随机挑选的子集。动物子集包含了 10,000 个与动物有关的随机抽样回答,而随机子集则包括了从整个 Oogiri-GO 数据集中抽取的 10,000 个样本。如图 25(左侧)所示,尽管两者的数据量相同,但内容更加丰富多样的随机子集在性能上展现出了明显的优势。因此,在策略 1 中,为了提高大语言模型(LLM)在处理各种关联性较弱的情况下创造有效新数据的能力,收集广泛且多样化的创意数据显得尤为关键。然而,高质量创意数据的稀缺性带来了挑战,因为人类持续产出创新数据并非易事。另外,Oogiri-GO 数据集已经涵盖了大量在线 Oogiri 游戏的回答,这使得收集大量新数据变得更加困难。由此,创新数据的稀缺性成为了进一步拓展创意数据集多样性的一个限制因素。
我们还进行了一个简单实验,展示了 多样性对大语言模型 (LLM) 性能的巨大影响。实验中,我们从 随机抽取了 5% 的名词作为一个“随机”子集,并选取同等数量的与地点相关的名词,形成一个“仅地点”子集。图 25(右侧)的结果显示了 多样性对于提升大语言模型的 LoT(Language of Thought)能力的重要性。因此,在策略 2 中,扩大 中有效名词的多样性至关重要。然而,当使用大语言模型进行条件生成,利用 中的名词时,新生成的有效名词数量却有限。这是因为回应文本中的名词数量受限,而且这些名词大多数基于 的样本。这导致现有方法在扩大 的多样性时遇到难题,因为生成有效名词的数量有限。此外,从外部知识库引入新名词(甚至动词)到 是一个挑战,因为这需要确保新增的词汇能够有效引导创新思维。比如,一些外部条件可能与当前任务完全无关,这使得大语言模型难以利用现有知识来生成新的创造性数据。理想情况下,这些条件应与当前知识领域有一定关联度,但不是完全无关,这被称作“弱关联条件”。因此,扩展 的多样性本身就是一个难题,这限制了增强其多样性的可能性。
综上所述,由于存在的限制难以增加 和创新数据种类的多样性,目前的模式在提供足够多样性方面,以支持多次自我改进过程,存在挑战。文中第 5 节的实验显示,单轮自我完善已经能够有效地使用 和创新数据中已有的多样性。因此,进行多轮自我完善并不会显著增加性能,因为单轮自我完善已足以达到满意的效果。
在 CLoT 中自我提升不会导致性能下降
在训练大语言模型的过程中,我们遇到了一个称为“性能崩溃”的现象。这种情况常发生在使用大语言模型自身生成的数据时。由于这些模型表现出色,并被广泛应用,因此互联网上充斥着它们生成的各类文本,如回答、对话、聊天记录等。虽然这些文本看似与人类撰写无异,但实际上它们已经无可避免地污染了网络文本资源。这种污染可能会导致未来在更新大语言模型时,其性能出现下滑。网络上的这些自动生成的数据往往具有类似的模式或隐性特征。不断向大语言模型输入这些自生成的数据,即自我提升过程,可能会在训练中积累过多相似的数据,从而限制了模型输出的多样性,最终可能引发“性能崩溃”。
然而,在 CLoT 的研究中,我们发现**“探索性自我提升”阶段并不会导致性能下降**。这是因为,在这一阶段,生成的数据是在多种弱关联条件下生成的,这样既保证了内容的多样性,也减少了模式的重复;同时,在这一阶段,生成的数据还经过了“可关联指令调整”阶段中调整过的大语言模型的严格筛选。这一过程确保了数据的高质量,并有效减少了“性能崩溃”的风险。这两种机制有效保护了 CLoT 在提高大语言模型的思维跳跃能力时的稳定性。主文中的实验结果也证实,“探索性自我提升”不仅不会影响模型的性能,还大大促进了模型的思维跳跃能力。
进一步探讨
在这一节,我们将从更多角度深入探讨 CLoT 的相关问题。
Oogiri-GO 数据集中不含英语 IT2T 类型数据
主文中的表 1 和表 3 显示,Oogiri-GO 数据集中没有英语 IT2T 类型数据,主要原因有两个。
(1)[文化差异。] 首先,Oogiri 游戏源于日本的传统喜剧形式 [@oogiri],深受其文化背景影响。这类游戏目前在中国和日本等文化相似的国家流行。由于文化差异,英语国家的在线社区对复杂的 IT2T 类型 Oogiri 游戏并不太接受,相比之下,他们更偏好 I2T 或 T2T 格式的游戏。
(2)[复杂的制作过程。] 其次,网络上大量的 Oogiri 游戏数据依赖于博主和网站运营者的翻译传播。制作 IT2T 类型的 Oogiri 游戏数据需要特殊工具,比如光学字符识别 (OCR) [@memon2020handwritten; @li2023trocr]、图像编辑 [@perez2023poisson] 和机器翻译 [@stahlberg2020neural; @yang2020survey]。与之相比,其他类型的数据转化为英语就简单多了。IT2T 类型数据的复杂制作流程导致了英语版 IT2T 内容在互联网上的稀缺。
综上所述,由于英语 IT2T 类型数据稀少且制作过程中存在编辑与翻译图像文本的挑战,我们的 Oogiri-GO 数据集并未包含此类数据。然而,该数据集包含了大量其他类型的数据,足以满足验证和分析提出的 CLoT 的需求。
直接在 Oogiri-GO 上微调难以有效提升逻辑思维技能
在正文中,我们通过大量实验和分析证实了 CLoT 的“联想指令调整”和“探索性自我改进”阶段在提高大语言模型 (大语言模型) 的逻辑思维技能 (LoT) 方面的显著成效,从而实现了幽默的精彩创作。本节将再次探讨这两个阶段,强调单纯的直接微调方法在充分提升逻辑思维能力方面存在不足。
为验证这一点,我们进行了一项实验:模型按照正文中提到的“联想指令调整”阶段的模板直接进行微调。具体而言,模型仅根据图 6 (a) 所示的模板进行了微调。结果如图 26 所示,明显显示出直接在 Oogiri-GO 上进行微调与 CLoT 之间的性能差异。造成这种差异的两个主要原因是:
(1) 缺乏针对性的逻辑思维训练。 实际上,直接在特定的创意数据上进行微调,只能算作是对数据的精确拟合。这种拟合过程仅能捕捉到数据中已有的创意模式,并不能激发跳出常规思维框架以产生新颖想法的能力。此外,如附录 13.1 所述,创意数据本身就非常有限,过度依赖数据集拟合容易导致模型陷入固定的模式中。因此,有必要进行逻辑思维训练,以促进思维方式的转变。
(2) 创意水平参差不齐。 尽管 Oogiri-GO 的回答源于人类的创意,但这些回答在创意水平上存在很大差异。有些非常有创造性,而其他则相对平庸。即便对人类而言,产生有创意的回答也是一个挑战,这导致数据集中优秀创意实例的稀缺,从而影响了模型逻辑思维能力的培养。从普遍的创意回答中学习,对于培养强大的逻辑思维技能来说是不够的。
令人欣喜的是,CLoT 不只为大语言模型 (LLM) 提供了联想式训练,还充分利用了创意数据的丰富多样性。这使得大语言模型能够识别并创造出非凡高质量的创意性回应。这种创新的方法最终实现了比直接微调更优越的性能表现。
如何进一步提升 CLoT 的能力?
虽然 CLoT 在提升大语言模型 (LLM) 的思维跳跃能力方面已取得显著成效,但在未来仍有改善的空间。例如,正如附录 14.2 所述,像 Oogiri-GO 这样的数据创意质量不一,CLoT 利用这种多样性提高了大语言模型辨识创意数据的能力,进而辅助创造高质量的创意内容。更进一步,这些包含人类排名的人工注释数据可以被用来创建评估器,通过采用创新的人类反馈强化学习 (RLHF) 技术,有效提升 CLoT 的表现,这对于提升大语言模型至关重要。
此外,我们的研究表明,单凭提示是不足以充分激发大语言模型的思维跳跃能力的。尽管大语言模型拥有丰富的知识储备和出色的推理能力,但目前仍需要额外的训练才能激发这一能力。因此,探索如何通过提示最大化激活思维跳跃能力或尽量减少大语言模型的训练,成为一个值得研究的方向。另外,像 LoRA 这类调整大语言模型指令的方法,不可避免地会导致一些固有知识的遗忘。对于创意任务而言,保留尽可能多的原始知识非常重要。因此,未来的研究应该关注持续学习的方法,确保模型能最大程度地保留现有知识。
[^1]: 共同第一作者 通讯作者
[^2]: https://m.weibo.cn/detail/4909366778531862
[^3]: https://github.com/PaddlePaddle/PaddleOCR
[^4]: https://github.com/notAI-tech/NudeNet
[^5]: https://github.com/fxsjy/jieba
[^6]: https://github.com/mocobeta/janome
[^7]: https://www.wjx.cn