认知能力可能是近年来非常热的一个词,尤其是的生成式AI领域,LLM的认知能力备受大家关心,但LLM在解决复杂问题或多步骤问题时问题解决能力依然力不从心。最近,来自德国奥尔登堡大学计算智能实验室的研究人员Oliver Kramer和Jill Baumann提出了一种创新的方法——认知提示(Cognitive Prompting),通过模拟人类认知过程来提升LLM的问题解决能力。这项研究将在ICLR 2025会议上发表,本文将为各位读者朋友详细解读这一突破性的技术。
图片由修猫创作
我用这两天很多朋友看过的一篇文章《揭秘LLM数不清小数点?牛津等高校最新发现,LLM都在以10为基数对数字进行编码》我写的题目测试了国内的Deepseek V2.5和智谱glm-4-plus以及ChatGPT-4o,只有智谱glm-4-plus(用了认知Prompt作为SYSTEM PROMPT)能正确输出答案。
在AI产品开发的前沿,我们经常面临这样的挑战:如何使AI的思维过程更接近人类,更具有结构化和可解释性?认知提示技术的出现为这一问题提供了解决方案。这种方法通过引导LLM使用一系列模仿人类认知操作(Cognitive Operations,简称COPs)的步骤来解决问题,从而实现更加系统化和人性化的推理过程。
认知提示的核心思想是将复杂的问题分解为一系列认知步骤,例如目标澄清、任务分解、模式识别等。这种方法不仅提高了模型解决多步骤推理任务的能力,还增强了其推理过程的可解释性和灵活性。这项技术无疑开启了一个充满可能性的新领域。
在深入探讨认知提示之前,我们有必要先了解当前LLM在推理能力方面面临的主要挑战。尽管像GPT-3、LLaMA等模型在文本生成和理解方面取得了惊人的进展,但它们在处理需要多步推理的复杂任务时仍然存在明显的局限性。
现有LLM的局限性
1.缺乏结构化思维:LLM往往倾向于生成流畅的文本,但在需要系统性思考的任务中表现不佳。
2.推理过程不透明:模型的"思考"过程通常是一个黑盒,难以解释和验证。
3.难以处理多步骤问题:在需要分步解决的复杂问题中,LLM容易迷失或产生错误的中间结果。
4.缺乏人类式的问题分解能力:LLM不能像人类那样自然地将大问题分解为小问题。
现有提示技术的不足
为了应对这些挑战,研究人员已经提出了多种提示技术,如少样本提示(few-shot prompting)、思维链(Chain of Thought, CoT)等。然而,这些方法仍然存在一些局限性:
1.依赖于特定任务的示例:少样本提示需要为每种任务类型提供特定的示例,缺乏通用性。
2.缺乏灵活性:CoT等方法虽然提供了一定的推理结构,但往往是预定义的,缺乏根据问题特点动态调整的能力。关于动态推理您可以看下《重磅:用DSPy写最佳推理轨迹搜索DOTS,让LLM能动态推理 |乔治梅森大学和腾讯AI最新》
3.认知过程模拟不足:现有方法主要关注输出的结构,而非模拟人类的认知过程。
正是在这样的背景下,认知提示技术应运而生,通过更加系统化和人性化的方法来增强LLM的推理能力。
认知提示的核心思想是通过模拟人类的认知过程来指导LLM进行结构化思考。这种方法不仅提高了模型解决复杂问题的能力,还增强了推理过程的可解释性。让我们深入了解认知提示的关键组成部分和工作机制。
认知操作(COPs)
认知操作是认知提示方法的基础,它们模拟了人类在解决问题时的思维步骤。研究者定义了以下几种主要的认知操作:
1.目标澄清(Goal Clarification):明确定义问题的目标,确保模型理解任务的核心要求。
2.分解(Decomposition):将复杂问题分解为更小、更易管理的部分。
3.过滤(Filtering):聚焦于最相关的信息,忽略无关细节。
4.重组(Reorganization):重新安排信息以揭示潜在的结构或模式。
5.模式识别(Pattern Recognition):识别重复出现的模式或关系。
6.抽象(Abstraction):从识别的模式中提取基本原则。
7.泛化(Generalization):将抽象的原则应用到更广泛的问题上。
8.整合(Integration):将各个组成部分综合成一个连贯的解决方案。
这些认知操作不仅模拟了人类的思维过程,还为LLM提供了一个结构化的问题解决框架。
研究者提出了两种实现认知提示的方式:静态认知提示和反思性认知提示。
1.静态认知提示:
- 使用预定义的固定顺序的认知操作序列。
- 优点:提供了一个一致的、可预测的推理结构。
- 缺点:缺乏灵活性,可能不适合所有类型的问题。
2.反思性认知提示:
- 允许LLM根据任务的需要动态选择下一个认知操作。
- 优点:更加灵活,能够适应不同类型和复杂度的问题。
- 缺点:实现复杂度较高,可能需要更多的计算资源。
实验设置
为了评估认知提示的效果,研究者使用了Meta的LLaMA模型(8B和70B参数版本),并在以下两个任务上进行了测试:
1.数学推理:使用GSM8K数据集,这是一个包含约7,000个训练样本和1,500个测试样本的小学数学词问题集。
2.常识推理:使用了一个包含伦理问题的常识数据集的子集。
研究者比较了三种情况下模型的表现:
- 不使用认知提示
- 使用静态认知提示
- 使用反思性认知提示
这种实验设置不仅允许评估认知提示的整体效果,还能比较静态和反思性两种方法的相对优势。
认知提示在数学推理和常识推理任务中都展现出了显著的性能提升,特别是对于较大规模的模型。我们可以看一下这些结果。
数学推理任务(GSM8K数据集)
尽管前些天我已经写了一篇文章谈这个数据集,但目前它依然是学术界乃至整个工业界公认的数据集《耶鲁:GSM8K多个LLMs已超过94%,基准已失效,用问题链评估LLMs的CoT数学推理》
在GSM8K数据集上的实验结果令人印象深刻:
1.8B参数模型:
- 在所有提示技术下,得分保持在0.7左右。
- 这表明对于较小的模型,认知提示的效果可能受到模型本身能力的限制。
2.70B参数模型:
- 无提示:0.87分
- 静态认知提示:0.89分
- 反思性认知提示:0.91分
- 显著的性能提升证明了认知提示对大型模型的有效性。
3.认知操作序列分析:
- 最常见的序列是"目标澄清 → 分解 → 模式识别"。
- 较短的序列出现频率更高,表明简洁的推理路径往往更有效。
- 涉及泛化和重组的较长序列出现频率较低,可能用于处理更复杂的问题。
这些结果表明,认知提示不仅提高了模型的整体性能,还使其能够采用更接近人类的结构化思维方式来解决数学问题。
常识推理任务
在常识推理任务中,结果也不错:
1.8B参数模型:
- 无提示:0.605分
- 使用认知提示:超过0.74分
- 显著的性能提升,证明了认知提示对较小模型在复杂任务中的有效性。
2.70B参数模型:
- 无提示:0.84分
- 反思性认知提示:0.81分
- 有趣的是,大型模型在无提示情况下表现最佳,这可能暗示了过度推理的风险。
3.认知操作序列分析:
- 常识推理任务中出现了更多样化的序列组合。
- 超过300种不同的序列被使用,反映了常识推理问题的多样性和复杂性。
这些结果揭示了一个重要洞察:认知提示在不同规模的模型和不同类型的任务中可能需要不同的策略。对于较小的模型,认知提示可以显著提升性能;而对于大型模型,可能需要更谨慎的应用,以避免过度推理。
认知提示技术的出现为增强LLM的推理能力开辟了一条新的道路。通过模拟人类的认知过程,这种方法不仅提高了模型的问题解决能力,还增强了其推理过程的可解释性和灵活性。让我们深入探讨这项技术的意义、局限性以及未来的发展方向。
技术意义
1.结构化思维的突破:认知提示成功地在LLM中引入了结构化思维的能力,使模型能够以更加系统化的方式处理复杂问题。
2.提高可解释性:通过明确的认知操作步骤,模型的推理过程变得更加透明和可解释,这对于AI系统的可信度和可靠性至关重要。
3.灵活性和适应性:特别是反思性认知提示,展现了模型根据任务需求动态调整推理策略的潜力,这种灵活性对于处理多样化的实际问题至关重要。
4.性能提升:在数学和常识推理任务中的显著性能提升,证明了这种方法在增强LLM推理能力方面的有效性。
对AI产品开发的启示
作为AI产品开发者,我们可以从这项研究中获得以下重要启示:
1.提示设计的新思路:认知提示为我们提供了一个新的框架,可以用来设计更加结构化和有效的提示。其实这条认知提示的核心已经写在上文了,喜欢用coze或者Dify以及元宝的朋友完全可以用这个认知提示提升自己的产品推理能力。当然我在这个基础上又加上了领域问题识别,可以自动对问题进行分析并纳入到相对应的领域进行COP,如果您对此有兴趣,可以加群和我聊这个话题。
2.任务分解的重要性:将复杂问题分解为可管理的子任务,不仅可以提高模型的性能,还可以使整个过程更加清晰。
3.动态提示的潜力:反思性认知提示的成功表明,设计能够根据任务动态调整的提示系统可能是未来的一个重要方向。
4.模型规模与提示策略的平衡:研究结果显示,不同规模的模型可能需要不同的提示策略。在开发AI产品时,我们需要根据具体的模型和任务来调整认知提示的应用方式。
5.增强人机交互:通过使AI的推理过程更加人性化和可解释,认知提示技术有潜力显著提升人机交互的质量和效率。
然而,要充分发挥认知提示的潜力,我们还面临着诸多挑战。如何在不同规模的模型和不同类型的任务中找到最佳的认知提示策略?如何平衡推理的深度和效率?如何设计更加通用和自适应的认知操作序列?这些都是我们需要在未来研究中深入探索的问题。
文章来自于微信公众号“AI修猫Prompt”,作者“AI修猫Prompt”
【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。
项目地址:https://github.com/n8n-io/n8n
在线使用:https://n8n.io/(付费)
【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。
项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file
【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。
项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file
在线使用:https://vectorvein.ai/(付费)
【免费】ffa.chat是一个完全免费的GPT-4o镜像站点,无需魔法付费,即可无限制使用GPT-4o等多个海外模型产品。
在线使用:https://ffa.chat/
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0