今天是2024年7月20日,星期六,北京,天气晴。
我们来看看大模型NLP-prompt工程总结:29个NLP任务下的39种方法。
实际上,关于prompt这块的工作,已经有2个了,包括:《The Prompt Report: A Systematic Survey of Prompting Techniques》(https://arxiv.org/abs/2406.06608)
《A Systematic Survey of Prompt Engineering in Large Language Models: Techniques and Applications》(https://arxiv.org/abs/2402.07927)
我们今天来看第三个,一方面为了加深印象,另一方面还是看看其差异性,从NLP经典任务出发做了调研,对我们的实际生产的技术选型有实际意义。
另一个的,我们来面向社区成员进行社区第26讲,来回顾下过去半年的大模型进展,然后再看看对应这半个月的一些新鲜事儿,感兴趣的可以参加。
知其然,更知其所以然,尽可能不要碎片化阅读。
供大家一起思考并参考。
一、大模型NLP-prompt工程总结:29个NLP任务下的30种方法
我们来看看大模型在特定任务上的雕花,来看个NLP里面的prompt工程总数,《A Survey of Prompt Engineering Methods in Large Language Models for Different NLP Tasks》(https://arxiv.org/abs/2407.12994),阅读并呈现了44篇研究论文的综述,其中讨论了29个不同NLP任务上的39种不同的提示方法
这对于增强我们对大模型prompt工程的理解是有帮助的,我们可以看看其提示工程方法与NLP任务的分类体系,以及其对这些工作进行的分析和比较结结论。
如针对每类NLP任务,都以表格的形式整理出了其对应的sota方案。
1、39种不同的提示方法
在具体量化指标上,论文列举了39种不同的提示方法。
- Basic/Standard/Vanilla Prompting: 直接向LLMs提出查询,不进行任何提示工程。
- Chain-of-Thought (COT): 生成一系列中间推理步骤来增强LLMs的复杂推理能力。
- Self-Consistency: 通过不同的推理路径选择最一致的答案。
- Ensemble Refinement (ER): 在COT和Self-Consistency的基础上,通过多次生成和投票选择最终答案。
- Automatic Chain-of-Thought (Auto-COT): 自动生成推理链,减少对训练数据点的依赖。
- Complex COT: 选择复杂数据点提示以增加LLMs的推理性能。
- Program-of-Thoughts (POT): 生成Python程序,将计算部分交给Python解释器。
- Least-to-Most: 解决CoT在解决比示例更难的问题时的不足。
- Chain-of-Symbol (COS): 使用符号表示推理步骤,以改善空间问题的表达。
- Structured Chain-of-Thought (SCOT): 使用程序结构来组织中间推理步骤,以更准确地生成代码。
- Plan-and-Solve (PS): 解决CoT的计算错误、遗漏步骤错误和语义理解错误。
- MathPrompter: 针对数学问题解决任务,通过生成代数表达式和Python函数来提高有效性。
- Contrastive CoT/Contrastive Self-Consistency: 提供正面和负面示例来增强LLMs的推理能力。
- Federated Same/Different Parameter Self-Consistency/COT (FED-SP/DP-SC/COT): 使用同义词众包查询来提高推理能力。
- Analogical Reasoning: 利用类比推理,使用相关经验解决新问题。
- Synthetic Prompting: 使用LLMs生成合成示例,增强现有手工示例。
- Tree-of-Thoughts (TOT): 通过树状结构搜索组合空间,每个节点代表部分解决方案。
- Logical Thoughts (LOT): 使用逻辑等价来改善零样本推理能力。
- Maieutic Prompting: 使用深度递归推理来引出各种假设的演绎解释。
- Verify-and-Edit (VE): 后编辑CoT生成的推理链,以获得更符合事实的输出。
- Reason + Act (REACT): 结合推理和行动,解决多样化的语言推理和决策任务。
- Active-Prompt: 通过识别最相关的数据点作为示例,帮助LLMs适应不同任务。
- Thread-of-Thought (THOT): 处理长混乱上下文,保持信息流的连贯性。
- Implicit Retrieval Augmented Generation (Implicit RAG): LLM自己检索给定上下文中的重要部分,然后回答问题。
- System 2 Attention (S2A): 两步提示策略,解决LLMs因不相关上下文而做出错误判断的问题。
- Instructed Prompting: 明确指示语言模型忽略问题描述中的不相关信息。
- Program Prompting: 通过编写Python程序来解决问题,并通过外部Python解释器运行代码以获得最终答案。
- Chain-of-Verification (COVE): 通过生成验证查询来检查基线响应中的错误,并修正这些错误。
- Chain-of-Knowledge (COK): 通过动态知识适应和答案整合来解决幻觉问题,提高准确性。
- Chain-of-Code (COC): 使LLM的代码导向推理更好,生成伪代码并模拟解释器的输出。
- Program-Aided Language Models (PAL): 使用LLM读取自然语言问题并生成混合自然语言和编程语言语句的推理步骤。
- Binder: 一种无需训练的神经符号技术,将输入映射到程序中,以增加对语法的覆盖范围并解决更广泛的查询。
- Dater: 探索LLMs在少样本学习中的表基推理,通过分解证据和查询来提高效率。
- Chain-of-Table: 将CoT技术应用于表格设置,通过多步骤表格提示方法提高表格理解的准确性。
- Decomposed Prompting (DECOMP): 将复杂问题分解为更简单的子问题,然后由特定于子问题的LLMs解决。
- Three-Hop Reasoning (THOR): 模仿人类情感/情绪理解任务的推理过程。
- Metacognitive Prompting (MP): 基于元认知概念,包括理解输入文本、初步判断、批判性评估、做出最终决定和评估整个过程的置信度。
- Chain-of-Event (COE): 用于摘要任务,通过提取特定事件并按时间顺序整合它们。
- Basic with Term Definitions: 在基本提示指令中添加医学术语定义,以帮助LLM在回答问题时获得更多上下文。
2、29个不同的NLP任务的应用
并分析了它们在29个不同的NLP任务(包括数学问题解决、逻辑推理、常识推理、多跳推理、社交推理、上下文问答等)中的应用。
根据提供的文档内容,以下是29个不同的自然语言处理(NLP)任务的列表:
- Truthfulness: 评估模型在事实性陈述上的准确性。
- Free Response: 评估模型生成无约束文本回答的能力。
- Code Generation: 涉及输入或输出为编程语言代码的任务。
- Dialogue System: 评估模型在用户与机器对话环境中的语言生成能力。
- Conversational Contextual Question-Answering: 评估模型理解文本并回答一系列相互关联问题的能力。
- Spatial Question-Answering: 评估模型处理空间推理的能力。
- Context-Free Question-Answering: 评估模型依赖其内嵌知识库或开源知识库回答问题的能力。
- Contextual Question-Answering: 评估模型仅依赖给定上下文回答问题的能力。
- Social Reasoning: 评估模型理解人类社交互动的能力。
- Causal Reasoning: 评估模型处理因果关系的能力。
- Multi-Hop Reasoning: 评估模型连接来自不同上下文部分的证据以回答问题的能力。
- Commonsense Reasoning: 评估模型使用人类常识进行判断的能力。
- Logical Reasoning: 评估模型遵循一系列命令并解决问题的能力。
- Mathematical Problem Solving: 评估模型在非表格环境中执行数学计算的能力。
- Table-Based Truthfulness: 在表格环境中评估模型的事实性陈述能力。
- Table-Based Question-Answering: 涉及在表格环境中的问答任务。
- Table-Based Mathematical Problem Solving: 在表格环境中评估模型的数学计算能力。
- Recommender System: 评估模型处理输入并推荐最相关项目列表的能力。
- Emotion/Sentiment Understanding: 评估模型理解人类情感或情绪的能力。
- Machine Translation: 评估模型在两种语言之间翻译的能力。
- Named Entity Recognition: 评估模型识别给定输入文本中预定义类别或类别的对象的能力。
- Word Sense Disambiguation: 评估模型在不同上下文中区分单词不同含义的能力。
- Summarization: 评估模型将长文本分解为保留关键信息的较小片段的能力。
- Paraphrasing: 评估模型使用不同单词重写输入文本同时保持原始语义的能力。
- Stance Detection: 评估模型确定文本作者对某个主题或目标的态度的能力。
- Natural Language Inference: 评估模型确定假设是真、假还是未定的能力。
- Relation Extraction: 评估模型识别预定义类别或类别的对象或命名实体之间的语义关系的能力。
- Language-Based Task Completion: 评估模型遵循基于语言的导航命令以完成任务的能力。
- Multilabel Text Classification: 评估模型将每个输入分配到一组预定义目标标签的能力。
二、老刘说NLP技术社区第26讲
转眼间,7月份已经过半,我们乘着周末时间,来进行新一次的技术分享,作老刘说NLP技术社区第26讲《2024年上半年大模型发展回顾暨7月份半月度KG/RAG/LLM技术总结》,时间定在今晚(2024-07-20)。
一同回顾过去半年来大模型发展的进展,以及过去半个月出现的一些有趣的工作进展,其实这个是很有趣的,常总结,常回顾。
本次社区分享将进行如下工作的汇报:
部分内容很有趣:
2月回顾(部分)
3月回顾(部分)
4月回顾(部分)
5月回顾(部分)
6月回顾(部分)
7月份也出现了一些关于音视频大模型的进展,尤其是照片动起来的一些工具,很有现实意义
如GraphRAG的一些思路,这个我们也在25讲中专门做了回顾:
总结
本文主要回顾了老刘说NLP20240718大模型进展早报,有些技术以及开源项目的新动向。
然后看了下关于查询改写这块的一个新思路,但这种方法依旧很费token,并且对召回搜索的要求比较高。
这也是当前很多工作是用时间复杂度来换取性能优化空间的一个真实写照。
参考文献
1、ttps://arxiv.org/abs/2407.12994
关于我们
老刘,NLP开源爱好者与践行者,主页:https://liuhuanyong.github.io。
老刘说NLP,将定期围绕大模型&知识图谱&RAG&文档理解四大主题,进行前沿技术、实践项目等总结等内容,欢迎关注。
对大模型&知识图谱&RAG&文档理解感兴趣,并对每日早报、老刘说NLP历史线上分享、心得交流等感兴趣的,欢迎加入社区,社区持续纳新。
加入会员方式:关注公众号,在后台菜单栏中点击会员社区->会员入群加入