用伪代码Prompt让LLM进行图推理,生成更精准内容

最近有研究发现,当LLM面对结构化数据,特别是图数据时,LLM的表现却不尽如人意。这几天,来自希腊和法国的研究团队提出了一种创新方法——利用伪代码提示来增强LLM的图推理能力。我基于这项研究先写了一个伪代码的SYSYTEM PROMPT运行出了一个社交网络分析的结果,再用这个结果写了一段代码,运行出了下面的图。我的评价只有一句:LLM图推理还是要用Pseudo prompt。

在这里插入图片描述

在这里插入图片描述

01

伪代码提示的力量

尽管LLM在自然语言处理领域取得了显著成就,但在处理图结构数据时仍面临重大挑战。先前的研究表明,LLM在解决某些看似简单的图问题时存在困难。例如,Wang等人(2023a)的研究显示LLM具有初步的图推理能力,而Fatemi等人(2024)的研究则发现LLM在一些基本图任务(如计算图的边数)上表现不佳。这种矛盾的结果凸显了LLM在图推理领域的不稳定性,也促使研究者思考:如何才能有效提升LLM在图推理任务中的表现?

研究团队提出了一种新颖的方法:使用伪代码作为提示来增强LLM的图推理能力。这种方法的核心思想是将算法逻辑以伪代码的形式呈现给LLM,从而引导模型按照结构化、模块化的方式进行问题解决。在这里插入图片描述

  • 图任务:展示了一个简单的图结构。
  • 伪代码:提供了计算边数的算法步骤。
  • 提示:将图任务转化为自然语言问题。
  • 最终提示:结合伪代码和问题,形成完整的提示。
  • 输出:按照伪代码prompt输出

这一方法具有以下几个关键优势:

1. 减少歧义: 相比自然语言,伪代码提供了更清晰、更精确的指令,减少了理解上的歧义。

2. 结构化思维: 伪代码prompt引导LLM按照算法逻辑进行推理,促进了结构化思维。

3. 增强可解释性: 通过提供清晰的步骤,伪代码prompt使得LLM的推理过程更加透明和可解释。

4. 融入领域知识: 伪代码允许研究者将图论和算法设计的专业知识直接注入到prompt中。这一点很重要,可以减轻LLM的先验知识匮乏导致的幻觉。

02

实验设计:全面且系统的评估

为全面评估这种方法的有效性,研究团队设计了一个复杂而系统的实验:

1. 图任务范围:

研究涵盖了10种不同复杂度的图算法问题:

在这里插入图片描述

- 节点计数

- 边计数

- 节点度数计算

- 邻居节点识别

- 连通分量计数

- 循环检测

- 最小生成树

- 最短路径计算

- 二分图检测

- 拓扑排序

2. 图类型和规模:

- 主要使用Erdős–Rényi随机图

- 根据节点数量将图分为三类:

* 小型(5-11个节点)

* 中型(11-21个节点)

* 大型(21-51个节点)

- 特殊任务使用特定图类型:

* 拓扑排序任务使用有向无环图

* 二分图检测任务使用随机二分图和Erdős–Rényi图

3. 数据集规模:

- 总计生成6,600个问题实例

- 对于图级属性任务,每种图大小生成100个问题

- 对于节点级属性任务,每种图大小生成500个问题

- 对于边级属性任务,每种图大小生成500个问题

4. 模型选择:

实验采用了两种代表性的LLM:

- GPT-3.5-Turbo:代表专有模型

- Mixtral 7x8B:代表开源模型

5. 对比方法:

研究比较了多种提示方法:

- 零样本提示(0-SHOT)

- 单样本学习(1-SHOT)

- Build-a-Graph提示(BAG)

- 零样本思维链(0-COT)

- 伪代码提示(PSEUDO)

- 伪代码提示+单样本学习(PSEUDO+1-SHOT)

6. 评估指标**:**

使用准确率(正确答案数/总查询数)作为主要评估指标

这种全面的实验设计确保了研究结果的可靠性和普适性,为后续研究提供了坚实的基础。

03

深入分析伪代码提示的效果

1. 整体性能提升

实验结果显示,伪代码提示方法在多数任务中都带来了性能提升。特别是在LLM原本表现欠佳的任务中,这种提升更为显著。例如:

- 对于GPT-3.5-Turbo,在边计数任务中:

在这里插入图片描述

  • 小型图:PSEUDO方法达到90%准确率,比0-SHOT提高12个百分点

  • 中型图:PSEUDO方法达到34%准确率,比0-SHOT提高18个百分点

  • 大型图:PSEUDO方法达到9%准确率,比0-SHOT提高7个百分点

  • 对于Mixtral 7x8B,在连通分量计数任务中:

  • 小型图:PSEUDO+1-SHOT方法达到75%准确率,比0-SHOT提高40个百分点

  • 中型图:PSEUDO方法达到63%准确率,比0-SHOT提高23个百分点

2. 模型差异化表现

研究发现,伪代码提示对不同模型的影响并不一致。这一发现强调了prompt工程需要针对不同模型进行定制化设计的重要性。例如:

  • 在循环检测任务中:

  • 对GPT-3.5-Turbo,PSEUDO方法显著提升了性能(小型图从43%提升到76%)

  • 对Mixtral 7x8B,PSEUDO方法反而降低了性能(小型图从85%降至33%)

3. 图规模的影响

研究清晰地表明,随着图规模的增大,LLM的性能普遍下降。这一发现对于处理大规模图数据的prompt设计提出了挑战。例如:

在这里插入图片描述

  • 在节点度数计算任务中,GPT-3.5-Turbo的性能随图规模增大而显著下降:

  • 小型图:75%准确率

  • 中型图:24%准确率

  • 大型图:6%准确率

4. 节点计数vs边计数

一个令人惊讶的发现是,LLM在节点计数任务上表现出色,但在边计数任务上却困难重重。这种差异在大型图上尤为明显:

  • GPT-3.5-Turbo在大型图上的表现:

  • 节点计数:100%准确率

  • 边计数:仅2%准确率

5. 单例示范的有效性

研究表明,在使用伪代码提示时,仅需一个示例就能达到良好的效果,有时甚至优于多个示例。例如:

  • 在最小生成树任务中,对于小型图:

  • PSEUDO+1-SHOT方法达到64%准确率

  • 增加更多示例并未带来显著改善

6. 伪代码风格的影响

研究还探讨了不同伪代码风格对LLM性能的影响:

  • 在最小生成树任务中:

  • Python风格伪代码:31%准确率

  • 普通伪代码:24%准确率

  • 复杂伪代码(多函数):29%准确率

这表明,伪代码的具体表达方式也会影响LLM的理解和执行。

04

伪代码提示的优势所在

1. 结构化思维的引导

伪代码提示为LLM提供了一个清晰的问题解决框架,引导模型按照算法逻辑进行推理。这种结构化的思维方式有助于LLM更好地理解和解决图算法问题。例如,在最短路径计算任务中,伪代码明确指出了使用广度优先搜索的步骤,这大大提高了LLM找到正确解决方案的概率。

2. 歧义性的减少

相比自然语言描述,伪代码具有更低的歧义性。这使得LLM能够更准确地理解任务要求,从而生成更精准的答案。例如,在边计数任务中,伪代码清晰地指出了遍历边列表并累加计数的过程,避免了可能的误解。

3. 步骤分解的优势

伪代码提示将复杂的图算法问题分解为一系列简单步骤。这种分解不仅使得问题更容易解决,也提高了推理过程的可解释性。在连通分量计数任务中,伪代码明确列出了初始化、遍历和合并组件的步骤,使LLM能够逐步推理。

4. 领域知识的融入

通过伪代码,研究者可以将图论和算法设计的专业知识直接注入到提示中。这种方式有效地弥补了LLM在特定领域知识上的不足。例如,在最小生成树任务中,伪代码包含了Kruskal算法的核心思想,这对LLM的正确推理起到了关键作用。

05

实践启示

这项研究为prompt工程师们提供了宝贵的实践指导:

1. 领域特化的提示设计

针对特定领域的问题,如图算法,使用该领域的专业语言(如伪代码)可能比一般的自然语言提示更有效。例如,在拓扑排序任务中,使用描述有向无环图特性的伪代码可以显著提高LLM的性能。

2. 模型特化的策略

不同的LLM可能对同一种提示方法有不同的反应。因此,在设计prompt时需要考虑目标模型的特性。研究显示,GPT-3.5-Turbo和Mixtral 7x8B在某些任务上对伪代码提示的反应存在显著差异,这强调了针对特定模型优化prompt的重要性。

3. 问题分解的重要性

将复杂问题分解为简单步骤不仅有助于LLM更好地理解和解决问题,也提高了结果的可解释性。在最短路径计算等复杂任务中,这种分解策略的效果尤为明显。

4. 示例的精简原则

在使用伪代码提示时,往往只需要一个精心设计的示例就能达到良好效果。这一发现有助于简化prompt设计过程,同时也降低了计算成本。

5. 规模适应性的考虑

随着处理对象(如图)规模的增大,LLM的性能可能会下降。在设计prompt时需要考虑这一因素,可能需要为不同规模的问题设计不同的提示策略。例如,对于大型图,可能需要更详细的步骤分解或更多的中间检查点。

6. 伪代码风格的选择

研究表明,不同风格的伪代码(如Python风格、普通伪代码、复杂多函数伪代码)对LLM的性能有不同影响。prompt工程师应该根据具体任务和目标模型选择最合适的伪代码风格。

对于正在开发AI产品的prompt工程师来说,这项研究提供了宝贵的启示:

1. 领域知识的重要性: 在设计prompt时,应考虑如何有效地将领域特定的知识和结构融入其中。

2. 问题分解的艺术: 将复杂任务分解为清晰、可执行的步骤是提高LLM性能的关键。

3. 模型特化的必要性: 不同的LLM可能需要不同的提示策略,需要针对特定模型进行优化。

4. 规模适应性的挑战: 随着问题规模的增大,可能需要调整提示策略以维持性能。

5. 持续实验和优化: prompt工程是一个需要不断实验和调整的过程,以找到最佳的提示方法。

伪代码提示方法为LLM在处理结构化数据和复杂算法问题方面开辟了新的可能性。我也把这项研究应用到实际中,如开篇介绍的那样,解决一个在社交媒体中寻找“隐藏影响者”的问题,实际代码中我将用户改为1000,实际找到46名,显示前5名,并分析说明如何利用这些隐藏影响者来进行营销:

OpenAI o1

图片

图片

上下滑动查看更多

Slide left and right to see more

在这里插入图片描述

隐藏影响者详细信息:  
用户ID: 856, 影响力分数: 981, 关注者数量: 8  
用户ID: 710, 影响力分数: 984, 关注者数量: 8  
用户ID: 387, 影响力分数: 968, 关注者数量: 5  
用户ID: 468, 影响力分数: 967, 关注者数量: 8  
用户ID: 781, 影响力分数: 988, 关注者数量: 8  LLM分析结果:  
在利用这些隐藏影响者进行营销时,我们需要考虑以下几个关键策略:  **### 1. **识别和分析隐藏影响者的特征****  - **活跃度与互动性**:隐藏影响者通常在社交网络中具有较高的活跃度和互动性,他们的帖子往往能引起大量用户的关注和讨论。  - **内容质量**:这些用户发布的内容通常具有较高的质量和原创性,能够吸引和保持粉丝的关注。  - **社区影响力**:他们在特定社区或兴趣群体中具有较高的影响力,能够影响其他用户的观点和行为。  **### 2. **建立自然的关系****   - **自然互动**:通过自然的方式与这些隐藏影响者互动,例如点赞、评论和分享他们的内容,逐步建立信任和关系。  - **合作机会**:提供合作机会,如邀请他们参与品牌活动、试用新产品或撰写产品评测,但要确保合作方式自然,避免过于商业化。**### 3. **内容共创****   - **共同创作内容**:邀请隐藏影响者参与品牌内容的创作,例如共同制作视频、撰写博客或发布联合帖子。这种方式不仅能提升内容的质量,还能借助他们的影响力扩大传播范围。  - **用户生成内容(UGC)**:鼓励隐藏影响者分享他们使用产品的体验,并将其作为用户生成内容进行推广。这种方式能够增强品牌的真实性和可信度。**### 4. **利用影响力进行推广****   - **口碑营销**:通过隐藏影响者的推荐和分享,提升品牌的口碑和知名度。他们的推荐往往比传统广告更具说服力。  - **定向推广**:利用隐藏影响者的影响力,针对特定目标群体进行定向推广,提高营销活动的精准度和效果。**### 5. **监测和优化****   - **数据分析**:通过数据分析工具监测隐藏影响者的表现和营销活动的效果,及时调整策略。  - **反馈机制**:建立反馈机制,收集隐藏影响者和用户的反馈,优化产品和营销策略。**### 6. **保持透明和诚信****   - **透明合作**:在合作过程中保持透明,明确告知隐藏影响者合作的目的和方式,避免引起他们的反感。  - **诚信营销**:确保所有营销活动真实可信,避免夸大宣传或虚假信息,维护品牌的信誉。  通过以上策略,我们可以有效利用这些隐藏影响者的影响力,提升品牌的社交网络营销效果,同时保持用户的信任和品牌的真实性。

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1558590.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【智能算法应用】正切搜索算法求解二维路径规划问题

摘要 本文提出了基于正切搜索算法的二维路径规划方法,用于解决包含障碍物的复杂路径规划问题。通过在二维平面中建立障碍物模型和路径目标点,利用正切搜索算法进行路径搜索,找出从起点到终点的最优路径。实验结果显示,该算法在不…

5. PH47 代码框架软件开发环境搭建

5.1. 概述 PH47 软件开发环境搭建比较简单,但毫无疑问非常重要。主要涉及到 stm32 编译链接工具 Keil;代码编辑器 Visual Studio 或者 VS code。 若需要更进一步进行 PH47 框架在不同 stm32 芯片间移植,那么还需要Stm32CubeMx 初始化代码生成…

Python 如何使用 SQLAlchemy 进行复杂查询

Python 如何使用 SQLAlchemy 进行复杂查询 一、引言 SQLAlchemy 是 Python 生态系统中非常流行的数据库处理库,它提供了一种高效、简洁的方式与数据库进行交互。SQLAlchemy 是一个功能强大的数据库工具,支持结构化查询语言(SQL)…

小白入门《大模型应用开发极简入门》学习成为善用 AI 的人!

《大模型应用开发极简入门:基于 GPT-4 和 ChatGPT》这本书旨在为读者提供一个从零开始,快速掌握大语言模型(LLM)开发的入门指南,特别是基于 GPT-4 和 ChatGPT 的应用开发。书中内容涵盖了大模型的基础概念、架构原理、…

PCL 计算点云包围盒

目录 一、概述二、代码三、结果 一、概述 PCL中计算点云包围盒的简单使用案例 二、代码 moment_of_inertia.cpp #include <vector> #include <thread>#include <pcl/features/moment_of_inertia_estimation.h> #include <pcl/io/pcd_io.h> #include…

使用java分别输出二叉树的深度遍历和广度遍历

代码功能 这段Java代码定义了一个二叉树&#xff0c;并实现了两种遍历方法&#xff1a;深度优先搜索&#xff08;DFS&#xff09;和广度优先搜索&#xff08;BFS&#xff09;。通过DFS&#xff0c;代码从根节点开始&#xff0c;优先访问子节点&#xff0c;直至最深的节点&…

常用的十款文件加密软件分享|2024办公文件怎么加密?赶快码住!

在现代办公环境中&#xff0c;数据安全和隐私保护变得尤为重要&#xff0c;尤其是随着远程办公、跨平台协作的普及&#xff0c;文件的加密需求大大增加。为了保障敏感信息的安全性&#xff0c;选择合适的加密软件成为必不可少的一步。本文将为大家推荐2024年常用的十款文件加密…

‌视频画面添加滚动字幕剪辑:提升观众体验的创意技巧

在视频制作中&#xff0c;字幕不仅是传达信息的重要工具&#xff0c;也是提升观众体验的关键元素。本文将探讨如何在视频画面中添加滚动字幕剪辑&#xff0c;以提升观众的观看体验。 1打开软件&#xff0c;在功能栏里切换到“任务剪辑”版块上 2添加原视频导入到表格里&#x…

简单花20分钟学会top 命令手册 (linux上的任务管理器)

1. 介绍 top 是一个常用的 Linux 命令行工具&#xff0c;用于实时监视系统资源和进程的运行情况。用户可以通过 top 命令查看系统的 CPU 使用率、内存占用情况、进程列表等重要信息&#xff0c;帮助快速了解系统运行状态并进行性能监控。该工具可以认为相当于windows上的任务管…

探索Theine:Python中的AI缓存新贵

文章目录 探索Theine&#xff1a;Python中的AI缓存新贵背景&#xff1a;为何选择Theine&#xff1f;Theine是什么&#xff1f;如何安装Theine&#xff1f;简单的库函数使用方法场景应用场景一&#xff1a;Web应用缓存场景二&#xff1a;分布式系统中的数据共享场景三&#xff1…

【DFDT】DFDT: An End-to-End DeepFake Detection Framework Using Vision Transformer

文章目录 DFDT: An End-to-End DeepFake Detection Framework Using Vision Transformerkey points贡献方法补丁提取和嵌入基于注意力的补丁选择多流transformer块多尺度分类器实验DFDT: An End-to-End DeepFake Detection Framework Using Vision Transformer 会议/期刊:App…

Java 函数式编程(1 万字)

此笔记来自于B站黑马程序员 good Java 历史版本及其优势 函数式编程, Stream API 一.函数伊始函数、函数对象 函数对象 行为参数法 延迟执行 a-lambda b-方法引用 复习小测 Math::random () -> Math.random()Math::sqrt (double number) -> Math.sqrt(number)Student:…

光路科技TSN交换机:驱动自动驾驶技术革新,保障高精度实时数据传输

自动驾驶技术正快速演进&#xff0c;对实时数据处理能力的需求激增。光路科技推出的TSN&#xff08;时间敏感网络&#xff09;交换机&#xff0c;在比亚迪最新车型中的成功应用&#xff0c;显著推动了这一领域的技术进步。 自动驾驶技术面临的挑战 自动驾驶系统需整合来自雷达…

揭秘!尤雨溪成立的VoidZero如何改变前端世界

前言 Vue和Vite之父尤雨溪宣布成立公司 VoidZero&#xff0c;目前已经融资3200万。这篇文章欧阳将带你了解VoidZero是如何改变javascript的世界&#xff01; 加入欧阳的高质量vue源码交流群、欧阳平时写文章参考的多本vue源码电子书 痛点1: 工具太多&#xff0c;学不动 公司…

Library介绍(四)

标准单元描述 标准单元主要由以下几个部分构成&#xff0c;分别是引脚电容、power、timing组成。其中引脚电容主要包含input/output pin的电容值。 power主要包含每个pin的leakage power和internal power。 timing主要包括cell的input pin到output pin的rise delay和fall del…

Shuffle Net系列详解 (1) Shuffle Net论 V1论文理论部分详解

Shuffle Net 系列 论文精讲部分0.摘要1. 引文2. 相关工作3. Approach方法3.1 Channel Shuffle for Group Convolutions 通道重排针对分组卷积3.2 模型块Blocka Blockb Blockc Block 3.3 模型整体架构 4 实验5 总结 论文精讲部分 本专栏致力于深度剖析轻量级模型相关的学术论文…

浏览器书签的同步和备份工具Elysian

什么是 Elysian &#xff1f; Elysian 是一个自托管工具&#xff0c;用于将您经常使用的书签从浏览器的书签工具栏备份到您的家庭实验室。包括服务和浏览器插件两部分。 Elysian 主要专注于将您浏览器的常用书签备份到您家庭实验室中运行的 Elysian 服务器。浏览器插件使用 chr…

利用1688商品数据洞察市场:优化策略,提升业绩

对1688商品通过API接口的数据进行详细分析&#xff0c;可以帮助商家更好地了解商品的市场表现、用户需求及行为&#xff0c;从而优化商品供应和销售策略。以下是对1688商品数据的详细分析&#xff0c;包括需要分析的具体数据、分析过程及结果、以及基于分析结果的建议。 一、需…

【日记】我不想调回去啊啊啊(341 字)

正文 新电脑不知道为什么有时键盘会突然没反应。 今天没有客户&#xff0c;工作上几乎没什么可说的。唯一听到的消息&#xff0c;似乎是我可能不久之后就要被调回去&#xff0c;因为市分行有人要人事调动。 救命啊&#xff01;我不想回市分行。在下面吃住都比市分行好&#xff…

C语言之扫雷小游戏(完整代码版)

说起扫雷游戏&#xff0c;这应该是很多人童年的回忆吧&#xff0c;中小学电脑课最常玩的必有扫雷游戏&#xff0c;那么大家知道它是如何开发出来的吗&#xff0c;扫雷游戏背后的原理是什么呢&#xff1f;今天就让我们一探究竟&#xff01; 扫雷游戏介绍 如下图&#xff0c;简…