AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


用伪代码Prompt让LLM进行图推理,生成更精准内容 | 最新
发布日期:2024-10-09 08:11:19 浏览次数: 1646 来源:AI修猫Prompt


最近有研究发现,当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. **保持透明和诚信**
   - **透明合作**:在合作过程中保持透明,明确告知隐藏影响者合作的目的和方式,避免引起他们的反感。
   - **诚信营销**:确保所有营销活动真实可信,避免夸大宣传或虚假信息,维护品牌的信誉。

通过以上策略,我们可以有效利用这些隐藏影响者的影响力,提升品牌的社交网络营销效果,同时保持用户的信任和品牌的真实性。



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询